Add basic starter assets for azd init

Fixes #135

@puicchan in case she has additional feedback

Azure Dev CLI Install Instructions
Install scripts
MacOS/Linux

May elevate using sudo on some platforms and configurations

bash:
curl -fsSL https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/uninstall-azd.sh | bash;
curl -fsSL https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/install-azd.sh | bash -s -- --base-url https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029 --version '' --verbose --skip-verify

pwsh:
Invoke-RestMethod 'https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/uninstall-azd.ps1' -OutFile uninstall-azd.ps1; ./uninstall-azd.ps1
Invoke-RestMethod 'https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/install-azd.ps1' -OutFile install-azd.ps1; ./install-azd.ps1 -BaseUrl 'https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029' -Version '' -SkipVerify -Verbose

Windows
PowerShell install
powershell -c "Set-ExecutionPolicy Bypass Process; irm 'https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/uninstall-azd.ps1' > uninstall-azd.ps1; ./uninstall-azd.ps1;"
powershell -c "Set-ExecutionPolicy Bypass Process; irm 'https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/install-azd.ps1' > install-azd.ps1; ./install-azd.ps1 -BaseUrl 'https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029' -Version '' -SkipVerify -Verbose;"

MSI install
powershell -c "irm 'https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/azd-windows-amd64.msi' -OutFile azd-windows-amd64.msi; msiexec /i azd-windows-amd64.msi /qn"

Standalone Binary

Linux -

x86_64 - https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/azd-linux-amd64.tar.gz
ARM64 - https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/azd-linux-arm64.tar.gz

MacOS -

x86_64 - https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/azd-darwin-amd64.zip
ARM64 - https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/azd-darwin-arm64.zip

Windows - https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/azd-windows-amd64.zip

MSI

https://azuresdkreleasepreview.blob.core.windows.net/azd/standalone/pr/2029/azd-windows-amd64.msi

Container
docker run -it azdevcliextacr.azurecr.io/azure-dev:pr-2029

Documentation

learn.microsoft.com documentation

title: Azure Developer CLI reference (preview)
description: This article explains the syntax and parameters for the various Azure Developer CLI Preview commands.
author: alexwolftmsft
ms.author: alexwolf
ms.date: 04/26/2023
ms.service: azure-dev-cli
ms.topic: conceptual
ms.custom: devx-track-azdevcli
Azure Developer CLI reference (preview)
This article explains the syntax and parameters for the various Azure Developer CLI Preview commands.
azd
The Azure Developer CLI (azd) is an open-source tool that helps onboard and manage your application on Azure
Options
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
  -h, --help         Gets help for azd.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd auth: Authenticate with Azure.
azd config: Manage azd configurations (ex: default Azure subscription, location).
azd deploy: Deploy the application's code to Azure.
azd down: Delete Azure resources for an application.
azd env: Manage environments.
azd init: Initialize a new application.
azd monitor: Monitor a deployed application.
azd package: Packages the application's code to be deployed to Azure. (Beta)
azd pipeline: Manage and configure your deployment pipelines.
azd provision: Provision the Azure resources for an application.
azd restore: Restores the application's dependencies.
azd template: Find and view template details.
azd up: Provision Azure resources, and deploy your project with a single command.
azd version: Print the version number of Azure Developer CLI.

azd auth
Authenticate with Azure.
Options
  -h, --help   Gets help for auth.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd auth login: Log in to Azure.
azd auth logout: Log out of Azure.
Back to top

azd auth login
Log in to Azure.
Synopsis
Log in to Azure.
When run without any arguments, log in interactively using a browser. To log in using a device code, pass
--use-device-code.
To log in as a service principal, pass --client-id and --tenant-id as well as one of: --client-secret,
--client-certificate, or --federated-credential-provider.
azd auth login [flags]

Options
      --check-status                           Checks the log-in status instead of logging in.
      --client-certificate string              The path to the client certificate for the service principal to authenticate with.
      --client-id string                       The client id for the service principal to authenticate with.
      --client-secret string                   The client secret for the service principal to authenticate with. Set to the empty string to read the value from the console.
      --federated-credential-provider string   The provider to use to acquire a federated token to authenticate with.
  -h, --help                                   Gets help for login.
      --redirect-port int                      Choose the port to be used as part of the redirect URI during interactive login.
      --tenant-id string                       The tenant id or domain name to authenticate with.
      --use-device-code                        When true, log in by using a device code instead of a browser.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd auth: Authenticate with Azure.
Back to top

azd auth logout
Log out of Azure.
Synopsis
Log out of Azure
azd auth logout [flags]

Options
  -h, --help   Gets help for logout.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd auth: Authenticate with Azure.
Back to top

azd config
Manage azd configurations (ex: default Azure subscription, location).
Synopsis
Manage the Azure Developer CLI user configuration, which includes your default Azure subscription and location.
Available since azure-dev-cli_0.4.0-beta.1.
The easiest way to configure azd for the first time is to run azd init. The subscription and location you select will be stored in the config.json file located in the config directory. To configure azd anytime afterwards, you'll use azd config set.
The default value of the config directory is:

$HOME/.azd on Linux and macOS
%USERPROFILE%.azd on Windows

The configuration directory can be overridden by specifying a path in the AZD_CONFIG_DIR environment variable.
Options
  -h, --help   Gets help for config.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd config get: Gets a configuration.
azd config list: Lists all configuration values.
azd config list-alpha: Display the list of available features in alpha stage.
azd config reset: Resets configuration to default.
azd config set: Sets a configuration.
azd config unset: Unsets a configuration.
Back to top

azd config get
Gets a configuration.
Synopsis
Gets a configuration in the configuration path.
The default value of the config directory is:

$HOME/.azd on Linux and macOS
%USERPROFILE%\.azd on Windows

The configuration directory can be overridden by specifying a path in the AZD_CONFIG_DIR environment variable.
azd config get <path> [flags]

Options
  -h, --help   Gets help for get.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd config: Manage azd configurations (ex: default Azure subscription, location).
Back to top

azd config list
Lists all configuration values.
Synopsis
Lists all configuration values in the configuration path.
The default value of the config directory is:

$HOME/.azd on Linux and macOS
%USERPROFILE%\.azd on Windows

The configuration directory can be overridden by specifying a path in the AZD_CONFIG_DIR environment variable.
azd config list [flags]

Options
  -h, --help   Gets help for list.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd config: Manage azd configurations (ex: default Azure subscription, location).
Back to top

azd config list-alpha
Display the list of available features in alpha stage.
azd config list-alpha [flags]

Options
  -h, --help   Gets help for list-alpha.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd config: Manage azd configurations (ex: default Azure subscription, location).
Back to top

azd config reset
Resets configuration to default.
Synopsis
Resets all configuration in the configuration path.
The default value of the config directory is:

$HOME/.azd on Linux and macOS
%USERPROFILE%\.azd on Windows

The configuration directory can be overridden by specifying a path in the AZD_CONFIG_DIR environment variable to the default.
azd config reset [flags]

Options
  -h, --help   Gets help for reset.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd config: Manage azd configurations (ex: default Azure subscription, location).
Back to top

azd config set
Sets a configuration.
Synopsis
Sets a configuration in the configuration path.
The default value of the config directory is:

$HOME/.azd on Linux and macOS
%USERPROFILE%\.azd on Windows

The configuration directory can be overridden by specifying a path in the AZD_CONFIG_DIR environment variable.
azd config set <path> <value> [flags]

Examples
azd config set defaults.subscription <yourSubscriptionID>
azd config set defaults.location eastus

Options
  -h, --help   Gets help for set.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd config: Manage azd configurations (ex: default Azure subscription, location).
Back to top

azd config unset
Unsets a configuration.
Synopsis
Removes a configuration in the configuration path.
The default value of the config directory is:

$HOME/.azd on Linux and macOS
%USERPROFILE%\.azd on Windows

The configuration directory can be overridden by specifying a path in the AZD_CONFIG_DIR environment variable.
azd config unset <path> [flags]

Examples
azd config unset defaults.location

Options
  -h, --help   Gets help for unset.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd config: Manage azd configurations (ex: default Azure subscription, location).
Back to top

azd deploy
Deploy the application's code to Azure.
azd deploy <service> [flags]

Options
      --all                   Deploys all services that are listed in azure.yaml
  -e, --environment string    The name of the environment to use.
      --from-package string   Deploys the application from an existing package.
  -h, --help                  Gets help for deploy.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

azd down
Delete Azure resources for an application.
azd down [flags]

Options
  -e, --environment string   The name of the environment to use.
      --force                Does not require confirmation before it deletes resources.
  -h, --help                 Gets help for down.
      --purge                Does not require confirmation before it permanently deletes resources that are soft-deleted by default (for example, key vaults).

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

azd env
Manage environments.
Options
  -h, --help   Gets help for env.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

Back to top

azd env get-values
Get all environment values.
azd env get-values [flags]

Options
  -e, --environment string   The name of the environment to use.
  -h, --help                 Gets help for get-values.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd env: Manage environments.
Back to top

azd env list
List environments.
azd env list [flags]

Options
  -h, --help   Gets help for list.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd env: Manage environments.
Back to top

azd env new
Create a new environment.
azd env new <environment> [flags]

Options
  -h, --help                  Gets help for new.
  -l, --location string       Azure location for the new environment
      --subscription string   Name or ID of an Azure subscription to use for the new environment

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd env: Manage environments.
Back to top

azd env refresh
Refresh environment settings by using information from a previous infrastructure provision.
azd env refresh [flags]

Options
  -e, --environment string   The name of the environment to use.
  -h, --help                 Gets help for refresh.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd env: Manage environments.
Back to top

azd env select
Set the default environment.
azd env select <environment> [flags]

Options
  -h, --help   Gets help for select.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd env: Manage environments.
Back to top

azd env set
Manage your environment settings.
azd env set <key> <value> [flags]

Options
  -e, --environment string   The name of the environment to use.
  -h, --help                 Gets help for set.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd env: Manage environments.
Back to top

azd init
Initialize a new application.
azd init [flags]

Options
  -b, --branch string         The template branch to initialize from.
  -e, --environment string    The name of the environment to use.
  -h, --help                  Gets help for init.
  -l, --location string       Azure location for the new environment
      --subscription string   Name or ID of an Azure subscription to use for the new environment
  -t, --template string       The template to use when you initialize the project. You can use Full URI, <owner>/<repository>, or <repository> if it's part of the azure-samples organization.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

azd monitor
Monitor a deployed application.
azd monitor [flags]

Options
  -e, --environment string   The name of the environment to use.
  -h, --help                 Gets help for monitor.
      --live                 Open a browser to Application Insights Live Metrics. Live Metrics is currently not supported for Python apps.
      --logs                 Open a browser to Application Insights Logs.
      --overview             Open a browser to Application Insights Overview Dashboard.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

azd package
Packages the application's code to be deployed to Azure. (Beta)
azd package <service> [flags]

Options
      --all                  Deploys all services that are listed in azure.yaml
  -e, --environment string   The name of the environment to use.
  -h, --help                 Gets help for package.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

azd pipeline
Manage and configure your deployment pipelines.
Options
  -h, --help   Gets help for pipeline.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd pipeline config: Create and configure your deployment pipeline by using GitHub or Azure Pipelines.
Back to top

azd pipeline config
Create and configure your deployment pipeline by using GitHub or Azure Pipelines.
azd pipeline config [flags]

Options
      --auth-type string        The authentication type used between the pipeline provider and Azure for deployment (Only valid for GitHub provider). Valid values: federated, client-credentials.
  -e, --environment string      The name of the environment to use.
  -h, --help                    Gets help for config.
      --principal-name string   The name of the service principal to use to grant access to Azure resources as part of the pipeline.
      --principal-role string   The role to assign to the service principal. (default "contributor")
      --provider string         The pipeline provider to use (github for Github Actions and azdo for Azure Pipelines).
      --remote-name string      The name of the git remote to configure the pipeline to run on. (default "origin")

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd pipeline: Manage and configure your deployment pipelines.
Back to top

azd provision
Provision the Azure resources for an application.
Synopsis
Provision the Azure resources for an application.
The command prompts you for the following values:

Environment name: The name of your environment.
Azure location: The Azure location where your resources will be deployed.
Azure subscription: The Azure subscription where your resources will be deployed.

Depending on what Azure resources are created, running this command might take a while. To view progress, go to the Azure portal and search for the resource group that contains your environment name.
azd provision [flags]

Options
  -e, --environment string   The name of the environment to use.
  -h, --help                 Gets help for provision.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

azd restore
Restores the application's dependencies.
azd restore <service> [flags]

Options
      --all                  Restores all services that are listed in azure.yaml
  -e, --environment string   The name of the environment to use.
  -h, --help                 Gets help for restore.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

azd template
Find and view template details.
Options
  -h, --help   Gets help for template.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd template list: Show list of sample azd templates.
azd template show: Show details for a given template.
Back to top

azd template list
Show list of sample azd templates.
azd template list [flags]

Options
  -h, --help   Gets help for list.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd template: Find and view template details.
Back to top

azd template show
Show details for a given template.
azd template show <template> [flags]

Options
  -h, --help   Gets help for show.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

azd template: Find and view template details.
Back to top

azd up
Provision Azure resources, and deploy your project with a single command.
azd up [flags]

Options
  -e, --environment string   The name of the environment to use.
  -h, --help                 Gets help for up.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

azd version
Print the version number of Azure Developer CLI.
azd version [flags]

Options
  -h, --help   Gets help for version.

Options inherited from parent commands
  -C, --cwd string   Sets the current working directory.
      --debug        Enables debugging and diagnostics logging.
      --no-prompt    Accepts the default value instead of prompting, or it fails if there is no default.

See also

Back to top

I think that makes a lot of sense @wbreza.
So my proposal might be:

Author a skeleton for empty for both Bicep/TF  and publish to Azure-Samples
Add an additional prompt after azd init and selecting "Empty template" that prompts for either TF or Bicep

Could we also add a .devcontainer definition?

Done

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azd-bicep-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-bicep-starter -b pr/2029

View Changes | Compare Changes

Project: azd-terraform-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-terraform-starter -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-cosmos-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-cosmos-sql -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-java-postgresql-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-postgresql-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aks
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aks -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/2029

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azd-bicep-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-bicep-starter -b pr/2029

View Changes | Compare Changes

Project: azd-terraform-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-terraform-starter -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-cosmos-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-cosmos-sql -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-java-postgresql-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-postgresql-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aks
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aks -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/2029

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azd-bicep-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-bicep-starter -b pr/2029

View Changes | Compare Changes

Project: azd-terraform-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-terraform-starter -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-cosmos-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-cosmos-sql -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-java-postgresql-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-postgresql-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aks
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aks -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/2029

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azd-bicep-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-bicep-starter -b pr/2029

View Changes | Compare Changes

Project: azd-terraform-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-terraform-starter -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-cosmos-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-cosmos-sql -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-java-postgresql-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-postgresql-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aks
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aks -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/2029

View Changes | Compare Changes

Repoman Generation Results
Repoman pushed changes to remotes for the following projects:
Project: azd-bicep-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-bicep-starter -b pr/2029

View Changes | Compare Changes

Project: azd-terraform-starter
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/azd-terraform-starter -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-cosmos-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-cosmos-sql -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-csharp-sql
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-csharp-sql -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-java-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-java-postgresql-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-java-postgresql-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-aks
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-aks -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-nodejs-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-nodejs-mongo-terraform -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-aca
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-aca -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-swa-func
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-swa-func -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo -b pr/2029

View Changes | Compare Changes

Project: todo-python-mongo-terraform
Remote: azure-samples-staging
Branch: pr/2029
You can initialize this project with:
azd init -t Azure-Samples/todo-python-mongo-terraform -b pr/2029

View Changes | Compare Changes

Since there has been a lot of directional changes, I'm going to publish a new PR that looks cleaner but link this PR.
Thanks for all the early feedback. It's been really helpful.


Description key invalid quotation marks

Hi,
inserting html in the description key via MunkiAdmin converts quotation marks to some weird ones not being interpreted in package view in Managed Software Center.
Cheers
Thomas

Could you post an example? Is your system configured to convert standard quotes to smart quotes? MunkiAdmin should ignore those but I've seen the smart quotes cause headaches multiple times.

But should look like this (manually edited):

Yep, those look like smart quotes that OS X likes to automatically use. Could you try right-clicking on the description field and see if there are settings for those. There's also a global "off switch" for smart quotes in System Preferences -> Keyboard (if I remember the place correctly).

Woohoo, never seen that. You are right. Disabled and it works like charm!

Great!


Images on main CORTX page are gone!

In README.md we are missing images that used to be there:

https://github.com/Seagate/cortx/blob/assets/images/at_risk_data.jpg?raw=true
and
https://github.com/Seagate/cortx/blob/assets/images/cortx-logo.png?raw=true
are no longer there.

Saumya, can you please find and restore these images?  @Saumya-Sunder

Sure @johnbent I am on it.

Looks like these images were optimized by bot https://github.com/Seagate/cortx/pull/881 I am trying to see if the format has changed or they are still there. I will update the PR with changes here once done @johnbent and @justinzw


ISPN-9714 Update CacheNotifier to return CompletionStage

https://issues.jboss.org/browse/ISPN-9714
Documentation changes are https://github.com/infinispan/infinispan/pull/6401/commits/23f09962b642dc97340613d25a675f06c42bd425
It might be easiest to read that to see how the new changes actually change the listener operations.

run performance test please
library

Tests actually passed. Sadly it died due to RestartCounterTest not finishing, which happens on master as well.

run performance tests please

Hi @wburns, you need to rebase with upstream/master

@wburns sorry, I forgot to mention the reason.
For example: LazyInitializingExecutorService, BlockingTaskAwareExecutorServiceImpl and LazyInitializingBlockingTaskAwareExecutorService changed upstream. With that change, RadarGun broke.
We fixed RadarGun with https://github.com/radargun/radargun/pull/583
This is why your PR should be in sync with infinispan/master

Okay :)

run performance test please
library

Everything should be working, just need docs and polish code if needed.

run performance test please
library

run performance tests please
library

run performance tests please
library

Perf seems acceptable with latest run, however I will finish looking into some areas and rerun again.

run performance tests please
library

Rebased to get the REST test fixes.

run performance tests please
library

Updated per comments.

Added in docs as well, if you wanted to look it over @oraNod :)
https://github.com/infinispan/infinispan/pull/6401/commits/23f09962b642dc97340613d25a675f06c42bd425

Okay I updated all but
https://github.com/infinispan/infinispan/pull/6401#discussion_r238628310
https://github.com/infinispan/infinispan/pull/6401#discussion_r239006857
I will address those tomorrow.
Also I think we need a blocking sync option for the users that is ran on a different thread. Also need to let CI run and verify the reduction in thread pool size is okay.

Oh I also forgot to make the CacheNotifierImpl visit methods more inline friendly. I can do that tomorrow as well.

Okay all review comments should be addressed and I fixed the bug introduced that killed all tests :D

It looks like test failures are unrelated, running again just in case.

Let me try to summarize why I think we shouldn't assume that listeners that return void block:

There are at least 2 places in the documentation where we tell users to never ever block.
Async listeners currently run on a single thread per manager, so they aren't appropriate for long-blocking listeners either. The documentation recommends that users spawn their own threads for such listeners.
When the notification thread pool is full, the "blocking" listeners will run on the caller's thread anyway.
If we don't force void listeners to a separate thread then we don't have to allow null return values from "non-blocking" listeners.
If we keep saying that listeners should never block the calling thread, then we don't need to introduce an artificial separation between "blocking" and "non-blocking" listeners: none of the listeners block, and we just allow listeners to delay the operation that raised the event for a little longer by returning a CompletionStage<Void> instead of void.

The only downside I see is that we have some internal listeners that don't follow our advice and block the caller thread. I see no problem in changing those listeners to follow the documentation.

Let me try to summarize why I think we shouldn't assume that listeners that return void block:

There are at least 2 places in the documentation where we tell users to never ever block.

I think this can be removed now. Maybe we should simply state that the operation should not take an extended time period otherwise this can cause replication timeouts?

Async listeners currently run on a single thread per manager, so they aren't appropriate for long-blocking listeners either. The documentation recommends that users spawn their own threads for such listeners.

That is a fair point, however this improves usability considerably imo (user doesn't have to maintain a thread pool just for notifications when we already would for them). As well as you can now have a longer running listener that delays the operation from completion if needed.

When the notification thread pool is full, the "blocking" listeners will run on the caller's thread anyway.

This is a decent point, however we also have the queue now as well. At worst case it divulges to what you want now. Or we could always have it throw an exception (ie. AbortPolicy), akin to a backpressure error. I personally like the exception and scale the notification thread pool by # of threads available.

If we don't force void listeners to a separate thread then we don't have to allow null return values from "non-blocking" listeners.

Not sure I see how that is possible. We still need to a way to get a CompletionStage from the user listener to know when it is complete. And taking any Object means it can be null, heh.

If we keep saying that listeners should never block the calling thread, then we don't need to introduce an artificial separation between "blocking" and "non-blocking" listeners: none of the listeners block, and we just allow listeners to delay the operation that raised the event for a little longer by returning a CompletionStage<Void> instead of void.

I don't think it is feasible to continue saying that listeners can't block. We do it so horribly bad ourselves, I can't even begin to imagine how users are violating it.

The only downside I see is that we have some internal listeners that don't follow our advice and block the caller thread. I see no problem in changing those listeners to follow the documentation.

Easier said than done sadly :( We have quite a few listeners that are blocking.

This is a decent point, however we also have the queue now as well. At worst case it divulges to what you want now. Or we could always have it throw an exception (ie. AbortPolicy), akin to a backpressure error. I personally like the exception and scale the notification thread pool by # of threads available.

Thinking back on my comment over night. I think running in the caller thread is probably fine. At worst case we divulge back to what you wanted. Just don't have the caveat of saying it can't block. But to be honest if they are getting that many backlogged requests they have something wrong, and when they go to look at performance they should see it :) Instead of getting random errors sometimes.

I have totally revamped the Listener javadoc and reformatted it so it is substantially easier to read as plain text.

Let me try to summarize why I think we shouldn't assume that listeners that return void block:

There are at least 2 places in the documentation where we tell users to never ever block.

I think this can be removed now. Maybe we should simply state that the operation should not take an extended time period otherwise this can cause replication timeouts?

If each listener invocation takes even 1s and there are 25 threads in the notification executor you can do 25 operations per second in the entire cache manager. I'd rather keep the rule that listeners must not block.

Async listeners currently run on a single thread per manager, so they aren't appropriate for long-blocking listeners either. The documentation recommends that users spawn their own threads for such listeners.

That is a fair point, however this improves usability considerably imo (user doesn't have to maintain a thread pool just for notifications when we already would for them). As well as you can now have a longer running listener that delays the operation from completion if needed.

I'd stay away from the business of providing thread pools to run user code. We only have a single thread pool for all the listeners in all the caches, they may need separate thread pools for some listeners or even for some values.

When the notification thread pool is full, the "blocking" listeners will run on the caller's thread anyway.

This is a decent point, however we also have the queue now as well. At worst case it divulges to what you want now. Or we could always have it throw an exception (ie. AbortPolicy), akin to a backpressure error. I personally like the exception and scale the notification thread pool by # of threads available.

Actually you removed the queue of the notifications executor :)
I'm not sure what you mean with the backpressure error, maybe you can open a JIRA and start a separate discussion?

If we don't force void listeners to a separate thread then we don't have to allow null return values from "non-blocking" listeners.

Not sure I see how that is possible. We still need to a way to get a CompletionStage from the user listener to know when it is complete. And taking any Object means it can be null, heh.

We can throw a NPE instead of having to check for null values and handle them explicitly.

If we keep saying that listeners should never block the calling thread, then we don't need to introduce an artificial separation between "blocking" and "non-blocking" listeners: none of the listeners block, and we just allow listeners to delay the operation that raised the event for a little longer by returning a CompletionStage<Void> instead of void.

I don't think it is feasible to continue saying that listeners can't block. We do it so horribly bad ourselves, I can't even begin to imagine how users are violating it.

I look at it the other way around: we currently block the caller thread while calling the listeners, so the users couldn't have written listeners that block for a long time or their apps wouldn't have worked.
By running sync listeners in a separate thread pool you're basically telling users they don't have to worry about writing efficient non-blocking code, because we'll take care of it. Nobody is going to go to the trouble of chaining CompletionStages if we tell them in the documentation that blocking code works just as well, but they are all going to be disappointed when they realize they need 100s of threads in the notification thread pool and their listeners still slow the cache down to a crawl.

The only downside I see is that we have some internal listeners that don't follow our advice and block the caller thread. I see no problem in changing those listeners to follow the documentation.

Easier said than done sadly :( We have quite a few listeners that are blocking.

Not in this PR obviously, but we have to change them all because they're setting a bad example for the users.

Also I still need to update documentation to reflect the reversion back to having sync be in the calling thread.

@wburns that's the problem when you only got one reviewer, he can delay integrating your PR until you submit to his demands :D
It would be nice if we had a way to detect listeners that block or just delay the operation for too long and warn the user, but I wouldn't do anything that would even remotely encourage users to block in their listeners.

Rebased, however I haven't changed it per the last review comments. I am guessing some stuff may fail due to conflicts and changes I need to look into more closely.

Okay tests should be finally fixed now, have to still work on rework comments.

Also reverted to no longer running sync listeners in another thread and we assume user can behave :)
I just need to update documentation and this should be ready, assuming tests pass.

I just need to update documentation and this should be ready, assuming tests pass.

@wburns Please feel free to ping me for a doc review/edit if you think that would be helpful.

Okay it should be ready now, assuming CI still passes after changes.

The test failures are unrelated. I thought the ClientEventsOOM was at first, however it is already failing on master, and I couldn't reproduce it locally and hasn't failed prior.

@danberindei @oraNod If you guys wanted to look this over again, I would LOVE to finally get this in.

I forgot to add one more general comment: when the user listener returns a CompletionStage, that stage may be completed on a user thread. Maybe we should switch to an Infinispan thread before we continue the command invocation?

I forgot to add one more general comment: when the user listener returns a CompletionStage, that stage may be completed on a user thread. Maybe we should switch to an Infinispan thread before we continue the command invocation?

I thought about this a bit before. It is a general issue with all of our thread continuations. I personally would love having Infinispan have two primary threads pools (computation/non blocking thread pool size related to # of cores and a blocking thread pool that is much larger that can be used for operations we know are blocking). This would reduce our thread pool configuration to nil.
To be honest I couldn't decide to what to do about this right now. We could document that we recommend the invocation is completed on one of our thread pools (async operations for example) or that the operation is continued on their thread.
I will create a JIRA so this covered before FINAL though.

I should have addressed all the comments, very little code has changed, mostly documentation. Will see if CI is still good.

I created https://issues.jboss.org/browse/ISPN-10075 regarding thread continuation problems.

I also created https://issues.jboss.org/browse/ISPN-10076 to handle the other two batching issues.

There was an unused import in BatchingClusterEventManagerImpl, I rebased and pushed to your branch.

Fixed one more import + added some new lines before <h4> tags in the Listener javadoc - they were bothering me too much :)
Jenkins looks good: I haven't seen LocalCacheStateTransferTest.testStateTransferWithClusterIdle before, but it's too unrelated.
Rebased + squashed + integrated. Thanks Will!


Rename application-cli page, update command reference & examples

Closes #1700

Hey @chris529 , I see your comments are all related to content which was copied form the client CLI. That is why I won't update it here in this PR. If you feel this should be updated, please create a corresponding issue in the lisk-sdk repo, thx.

@Tschakki Hey Mona, Yes I think most of the comments were related to the client CLI. Agreed and understood, so I will approve it.👍


Add support for Get API

bpfd does not support a Get API. To retrieve a given program, the application must retrieve all programs and filter out the program it needs. This PR adds a Get API to bpfd, which allows an application to retrieve a given program by it's program id. As part of this PR, the Load commands also return the same data returned by the Get for the program that was just loaded.
The API structures were also reworked so that all the Kernel Data is in its own structure and the bpfd based data is in its own structure. These new structs are returned by the List, Get and Load commands.

/hold
I think I found a bug. Let me investigate

Fixed the bug. bpfctl list --all was causing bpfd to panic when there was no ProgramInfo (programs not created by bpfd).
impl TryFrom<&Program> for V1ProgramInfo {
    type Error = BpfdError;

    fn try_from(program: &Program) -> Result<Self, Self::Error> {
-        let data = program.data().expect("program info not available");
+        let data = program.data()?;

And updated the code calling it to map to None when an error was seen (For example: rpc.rs line 129).


Automatically charge non-students double dues

https://wiki.robojackets.org/Non-GT_Members

Closed as duplicate of #1162


Bug leaks sensitive content: account email addresses shown on locked phones

Expected behavior
When the phone settings are set to "Settings > Configure notifications > On the lock screen: Hide sensitive notification content", K-9 Mail should not display any sensitive content about accounts or emails. It should just say Contents hidden.
Actual behavior
Even though the phone settings are set to "Hide sensitive notification content", K-9 Mail displays the different email addresses set up through K-9 Mail as it checks for new messages with each account. This is leaking sensitive content about the user of the phone (ah they have this email address, that email address, etc). It would be the equivalent of a chat app displaying the username in the Notifications when they get a new message even if they have told the app to hide sensitive content on notifications. Or their phone number when receiving a phone call, etc.
Steps to reproduce

Set up multiple email accounts in K-9 Mail
Set up phone to hide sensitive notification content
Lock phone
Watch K-9 Mail check for new mail and reveal account addresses

Environment
K-9 Mail version: v5.208

i'm going to change the title to better reflect the bug, maybe will help with getting a response and some labels.

for any others who encounter this, a workaround is to disable these default-on notifications:

go to each account you have in k-9 mail
Settings > Account settings
Notifications > disable "Sync notifications"

IMHO the best solution to solve this issue would be to hide the account address but still somehow show the account color to still indicate the account for the device owner who (sooner or later) knows the corresponding accounts.


ci: fix test parallelization

Description

Testing

Additional context

Codecov Report

Merging #147 (0697158) into main (bbc482a) will decrease coverage by 0.40%.
The diff coverage is n/a.

:exclamation: Current head 0697158 differs from pull request most recent head 32b6173. Consider uploading reports for the commit 32b6173 to get more accurate results

@@            Coverage Diff             @@
##             main     #147      +/-   ##
==========================================
- Coverage   92.46%   92.06%   -0.40%
==========================================
  Files          14       14
  Lines         504      504
  Branches       78       55      -23
==========================================
- Hits          466      464       -2
- Misses         29       30       +1
- Partials        9       10       +1

Flag
Coverage Δ

unittests-3.10
92.06% <ø> (ø)

unittests-3.11
?

unittests-3.8
92.06% <ø> (ø)

unittests-3.9
92.06% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes


Support for Christmas nicknames needed

As is customary, now is the time that people change their nicknames to their Christmas version. Unfortunately it's difficult to do this on Hubbit. Would it be possible to implement a nickname feature, where people can select an optional nickname?

I believe it's already possible, since the nicknames are retrieved from chalmers.it/LDAP, but I'm guessing that we have a somewhat permanent cache in hubbIT itself. Maybe we could simply set a reasonable expiration of the nickname cache to solve this issue.

Yes, 24 hours: https://github.com/cthit/hubbIT/blob/develop/app/models/user.rb#L44


[DevOps] Playground: Configure Nginx for Docker Deployment

Notes for Reviewers

This PR fixes #7743
Updated Nginx to upgrade HTTP to HTTPS for the Docker deployment.

Signed commits

[x] Yes, I signed my commits.

As the eslint issue is solved now (cc: @Chadha93), I have updated this PR.
It is now passing all the checks.


getGraphQlContext has an empty value.

getGraphQlContext has an empty value.
spring boot webflux 2.5.10
java 11
com.graphql-java-kickstart graphql-spring-boot-starter 12.0.0
I tried to use getContext from DataFetchingEnvironment , but it was deprecated and I tried to use getGraphQlContext but it is empty.
Even if you try to create a custom context by referring to the tutorial, it is empty. Confirmation is required.
(https://www.youtube.com/watch?v=YsM2VSnWUcg&list=PLiwhu8iLxKwL1TU0RMM6z7TtkyW-3-5Wi&index=21)
If it is not a bug, please guide.

Support for getGraphQlContext has been added to v13. Values can be retrieved from that context map like environment.getGraphQlContext().get(ServerWebExchange.class)


.visible() text isn't visible when piped

Chalk version: 4.0.0
Node version: 10.16.0
Bash version: 4.4.20

Observed
When text is run through chalk.visible(), it is not visible when output is redirected.
With this test script, print-test.js:
const chalk = require('chalk');

const HI = 'Hello, World!';

console.log('Normal string:', HI);
console.log('With chalk.visible:', chalk.visible(HI));
console.log('With chalk.green:', chalk.green(HI));

When run directly in the terminal:

This is as expected.
When this is piped through grep:

To double check, here is the same output hilighted - there is no invisible text:

Redirecting the output to a file has the same effect:

Expected
I would expect either:

a string returned from chalk.visible() to be printed exactly the same as a string which hadn't been wrapped with chalk.visible(), or
a string returned from chalk.green() would not be printed if the string returned from chalk.visible() were not printed.

I suspect I have misunderstood the point of .visible() though.

I guess this is a misunderstanding on my part on what visible() is meant to do.  It definitely isn't the opposite of hidden():
$ node print-test.js > output; cat output
Normal string: Hello, World!
With chalk.visible:
With chalk.hidden: Hello, World!
With chalk.green: Hello, World!

:slightly_smiling_face:

I've just tested this in a terminal with colours disabled (started with xterm -cm), and get the following:

So I guess this is working to spec, but I wonder if calling this out in the docs would be helpful.

Prints the text only when Chalk has a color level > 0. Can be useful for things that are purely cosmetic.

I don't think there's any better way of explaining this, honestly. It's just a matter of reading the Readme. Thanks for the suggestion, however :)


Python 2 -  update requirements and wrong format of log message

@codelucas  Can you take a look? It would be great to fix one log message and update requirements

Hey @korycins, thanks so much for this great work! 👍 💯 It actually fixes a few bugs but I was looking at the bugs earlier and forgot about this PR. Ive already sent fixes for the requirements.txt and the new .travis.yml for the python2 branch. Can you remove those parts (fix merge conflict) and then I can approve this and merge it (your fixes to the log msg and test are good, we need them).
Thanks

Closing for now until changes are made


Behaviour of select on mobile and touch devices

Background
I have moved to ui-select from Select2 but i have noticed that undesirable behaviour is happening in ui-select that does not happen in Select2. I am using AngularJS 1.3.20 and angular-ui-utils 3.0.0, angular-ui-date 0.0.8 and angular-ui-select 0.12.1.
Issue
When swiping up / down / left / right over ui-select the select button does not open and i am able to capture touchend,touchmove, swipeleft, swiperight, swipedown, swipeup events as expected. However, when i start my swipe / touch action on the ui-select firstly I get no events (click,touchstart,etc) and secondly the ui-select is opened even though it is not a click event but a swipe or touch event.
Even if we state that ui-select should open for such events, with the events not being propagated outside of the ui-select component  i am unable to override the behaviour and tell the ui-select not to open when the action is a touchstart / touchmove / swipeup / swipedown / swipeleft.
Would you be able to confirm if this is expected behaviour and secondly perhaps provide any suggestions for me to get around this?
many thanks

I have done some investigation and it seems like this is intended behaviour even though it pretty much makes the ui-select elements un-usable on mobile devices. I can see that all events except touchend fail to be propagated outside of the ui-select also making it difficult to do something else with that behaviour. If anyone has any suggestions i would really appreciate the help.

Swiping on the ui select component shouldn't do anything - if it is open, then it should just scroll through the dropdown if there are too many entries.
Event normalization is a difficult problem though. Better off using a library like hammer.js or fastclick IMO for this.

I've noticed that ui-select does not really work on mobile. I've confirmed this issue with Chrome on Android.
I can open the select but when I try to scroll, it scrolls the page instead. I am thinking this is an issue of an event not being captured correctly?


Multiple issue with mobilevit vision example while conversion to Keras 3 with TF backend

Working on converting the A mobile-friendly Transformer-based model for image classification keras.io example to keras 3 with TF backend and found multiple issues. Logging here as per https://github.com/keras-team/keras/issues/18468.
Issue 1:  tensorflow_addons package is imported but not being used. This line itself is causing error when I am running in local on macbook air m1. But not causing error in running on google colab.

Issue 2:  Issue in tf.nn.swish()
ValueError: A KerasTensor cannot be used as input to a TensorFlow function. A KerasTensor is a symbolic placeholder for a shape and dtype, used when constructing Keras Functional models or Keras Functions. You can only use it as input to a Keras layer or a Keras operation (from the namespaces `keras_core.layers` and `keras_core.operations`). You are likely doing something like:

x = Input(...)
...
tf_fn(x)  # Invalid.

What you should do instead is wrap `tf_fn` in a layer:

class MyLayer(Layer):
    def call(self, x):
        return tf_fn(x)

x = MyLayer()(x)

Issue 2 can be reproduced here.
Solution I tried: I replaced tf.nn.swish() with keras.activations.swish() and moved further to run notebook. This solution can be seen in notebook link of last issue.
Issue 3: AttributeError: module 'keras.applications.imagenet_utils' has no attribute 'correct_pad'
This can be reproduced here.
Solution I tried: Removed padding=imagenet_utils.correct_pad(m, 3) from layers.ZeroPadding2D(). This solution can be seen in notebook link of last issue.
Issue 4: Issue in checkpoint- ValueError: The filename must end in `.weights.h5`. Received: filepath=/tmp/checkpoint
This can be reproduced here
Solution I tried: Replaced checkpoint_filepath = "/tmp/checkpoint" with checkpoint_filepath = "/tmp/checkpoint.weights.h5". This solution can be seen in notebook link of last issue.
Issue 5: Issue while saving keras model for TFLite conversion. I got below error:
ValueError: Invalid filepath extension for saving. Please add either a `.keras` extension for the native Keras format (recommended) or a `.h5` extension. Use `tf.saved_model.save()` if you want to export a SavedModel for use with TFLite/TFServing/etc. Received: filepath=mobilevit_xxs.
When I tried to save using .keras extension but got below error:
OSError: SavedModel file does not exist at: mobilevit_xxs.keras/{saved_model.pbtxt|saved_model.pb}
When I tried to save using .h5 extension, I got below error:
ValueError: Unable to create dataset (name already exists)
Issue 5 can be reproduced here.

Currently,
model.savae('my_model.keras') # (recommended)
model.save('my_model.h5') # lagecy and will be deprecated

both are supported but it's warned that h5 will be deprecated. And for weight/state,
model.save_weight('my_model.weights.h5`)

but in tf.keras, it was
model.save_weight('my_model.h5`)

Confusing a bit, hopefully will sort out soon. I tried to load a .h5 file which was built with tf.keras to new keras-v3 but the filename should be end with .weights.h5, not sure why .weights term made compulsory instead of optional. Even though remaning the weight file from .h5 to .weights.h5 doesn't load the tf.keras weight keras-v3 model properly. Transforming is not gooing smooth! -_-
https://github.com/keras-team/keras/issues/18467#issuecomment-1791492135

I am able to resolve Issue 5: Issue while saving keras model fort TFLite conversion as well. I am to save and open model now. But I don't know why it is being crashed while converting to TFLite. I tried in Google Colab (Free version) and Kaggle notebooks. Is this because of memory?
@divyashreepathihalli @sampathweb @sachinprasadhs

@pksX01 , Could you track the RAM usage in colab, crash might be due to OOM issue.

Well in that case, it is related to the memory availability in your system, since colab offers only limited RAM capacity for free version.

But it's creating in Kaggle as well which provides almost 30 GB RAM for CPU.

Now, it didn't crash. I will open PR with the solutions/ modifications for the 5 issues mentioned in 1st comment in upcoming days.

Since PR is merged now, I think we can close this issue.


Package.getActivationCommands is deprecated.

Use activationCommands instead of activationEvents in your package.json
Commands should be grouped by selector as follows:
  "activationCommands": {
    "atom-workspace": ["foo:bar", "foo:baz"],
    "atom-text-editor": ["foo:quux"]
  }

Package.getActivationCommands (/Users/ruan/Downloads/Atom.app/Contents/Resources/app.asar/src/package.js:806:9)
Package.hasActivationCommands (/Users/ruan/Downloads/Atom.app/Contents/Resources/app.asar/src/package.js:731:20)
<unknown> (/Users/ruan/Downloads/Atom.app/Contents/Resources/app.asar/src/package.js:185:24)
Package.measure (/Users/ruan/Downloads/Atom.app/Contents/Resources/app.asar/src/package.js:163:15)
Package.load (/Users/ruan/Downloads/Atom.app/Contents/Resources/app.asar/src/package.js:177:12)
PackageManager.loadPackage (/Users/ruan/Downloads/Atom.app/Contents/Resources/app.asar/src/package-manager.js:355:14)

1+

Duplicate of #42. Will be resolved if #43 is merged.

+1

+1

+1

+1


Top level options in json configuration

What's done
Added a common configuration in rules-config.json
Actions checklist

[ ] Implemented Rule, added Warnings
[ ] Added tests on checks
[ ] Added tests on fixers
[X] Updated rules-config.json
[ ] Updated available-rules.md

Closes #201

https://github.com/cqfn/diKTat/issues/258
I guess we should do this in the current PR

https://github.com/cqfn/diKTat/issues/260
this should also be done here


Getting Started

Feature Description
Prepare for your Voyage by becoming familiar with the Chingu practices & procedures.
Major User Stories/tasks

[ ] Getting Started: 🚀 Understand the Voyage Process #11
[x] Getting Started: 📜 Review the Chingu Agile Methodology #2
[x] Getting Started: 🤔 Start thinking about project ideas & the technical stack #3
[x] Getting Started: 🙋 Do you have questions about Chingu or the Voyage process? #4

Additional Considerations
N/a

All complete or part of sprints. For reference:

wireframe (enabler)


fix release build (for now)

 Release build broken wegen warp

Pull Request Test Coverage Report for Build 756333156

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.005%) to 82.019%

Files with Coverage Reduction
New Missed Lines
%

operators/src/concurrency/thread_pool.rs
1
92.49%

Totals

Change from base Build 751399954:
-0.005%

Covered Lines:
15691

Relevant Lines:
19131

💛  - Coveralls


Selected Tag Font

Can you add a feature for changing font for selected tag I need to make it bold ?

You can add this festure and make a pull request.

You can add this festure and make a pull request.


⚠ Jenkins Plugins Artifactory has degraded performance

In 1115588, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1254 ms

Resolved: Jenkins Plugins Artifactory performance has improved in d992a50 after 34 minutes.


Add test cases to attributes processor

achieve 100% coverage for package attributesprocessor

Signed-off-by: Hui Kang<EMAIL_ADDRESS>

Codecov Report

Merging #312 into master will increase coverage by 0.09%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #312      +/-   ##
==========================================
+ Coverage   73.13%   73.22%   +0.09%
==========================================
  Files         110      110
  Lines        6539     6539
==========================================
+ Hits         4782     4788       +6
+ Misses       1509     1506       -3
+ Partials      248      245       -3

Impacted Files
Coverage Δ

processor/attributesprocessor/attributes.go
100% <0%> (+5.12%)
:arrow_up:

processor/attributesprocessor/factory.go
100% <0%> (+6.66%)
:arrow_up:

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 2031c4b...3925a9b. Read the comment docs.


Can't get it to work using lazy.nvim and treesitter folds

I've been fiddling with the configs, but I can't seem to get this to work.
I have set the following options before loading lazy:

And the following for the plugin config:

Regardless of the settings I chose, nothing seems to change. The statuscolumn ordering does not change and the folds are not registering mouse clicks.
I suspect it could be something with lazy loading, but I'm not sure how to go about diagnosing the issue.
I'm on nvim v0.9

What does set stc say?

Oddly, set stc returns an error message: Unknown option: stc.
I also tried lua print(vim.o.statuscolumn) and I get a similar error.

So that means the neovim version you're running does not include the statuscolumn option. You will need to update.

ok, I updated to the latest dev release v0.9.0-dev-1175+g89a525de9.
statuscolumn now has the following value %!v:lua.StatusCol()
however, the plugin doesn't seem to have any effect:

And what makes you say that?...

The callbacks weren't registering but I figured out I had to set foldcolumn=1 to show the actual fold column. All good now, thanks for the prompt feedback :-)


⚠ Bofrost.si has degraded performance

In 6fe3aea, Bofrost.si (https://www.bofrost.si) experienced degraded performance:

HTTP code: 200
Response time: 6583 ms

Resolved: Bofrost.si performance has improved in 13d6fad.


nth item

I came across this recipe by R. Hettinger:
>>> x = [False,True,True,False,True,False,True,False,False,False,True,False,True]
>>> nth_item(50, True, x)
-1
>>> nth_item(0, True, x)
1
>>> nth_item(1, True, x)
2
>>> nth_item(2, True, x)
4
>>> nth_item(3, True, x)
6

Code
>>> from itertools import compress, count, imap, islice
>>> from functools import partial
>>> from operator import eq

>>> def nth_item(n, item, iterable):
        indicies = compress(count(), imap(partial(eq, item), iterable))
        return next(islice(indicies, n, None), -1)

I thought this may be a useful addition.

I was a bit confused by the name. We have nth, which does return the nth item. However, this is "what is the index of the nth occurrence of a particular item?"
So with a better name I'm open to this. index_of_nth_occurrence isn't very snappy?

I agree.  nth_index makes more sense.

locate(n, item, iterable) , as in locate the nth item in this iterable?  Or where?
Numpy has a where method I believe.  They also have argwhere which more similar to this application.  Not sure if it is general enough to call index... I'm not attached to any of these names.

I've asked Raymond Hettinger on Twitter if he would bless the inclusion of this.
The implementation is dynamite, but I think we'll want to get the name and docstring right. Making "nth occurrence" be interpreted as 0-based is confusing in a way that "nth item" is not. A co-worker of mine suggested "find the index of the item, skipping the first n matches."
I might also suggest changing this to: locate(iterable, pred, n=0) to be more flexible. That is, "find the first index where pred is True, skipping the first n matches.
Thinking more generally, I wouldn't mind writing some more itertools that deal with locating indexes. Consider:

index_subsequence(iterable, sub, start=0, end=None) - find the index where the subsequence sub occurs in iterable. Like str.index(), but for generic iterables and no negative indexes.
index_item(iterable, item, start=0, end=None) - find the index where the item item occurs in iterable. Like list.index(), but for generic iterables and no negative indexes.

Re: blessings
Good call on pinging R. Hettinger.  That seems appropriate.
Re: names and docstring
You spotted two things that I would also change, 0-indexed n and the signature.
Looking at existing tools, there seems to be some variance in how "nth" is interpreted in the recipes.  The  nth tool feels 0-indexed:
Returns the nth item or a default value

>>> l = range(10)
>>> nth(l, 3)
3

Although other recipes (take and tail) seem to "go up to n", which happens to equal the length:
Return first n items of the iterable as a list

>>> take(3, range(10))
[0, 1, 2]

Since the idea of a "zeroth occurrence" of True is lacks meaning, I'm in favor of the second interpretation.  +1 for the new signature proposal.
Re: more itertools
While I like the idea of having tools for handling indices (a common problem), I would prefer to minimize the number to tools.  I'm cautious of a possible categorical explosion of index-based tools if not sufficiently generalized, although you and other contributors may have better approaches for handling this.  If it turns out there are many cases for indexing, I wouldn't mind a class with methods (similar to peek), perhaps  index() item (by default) and then index.subsequence(), index.nested(), etc.

See this branch for what I'm thinking of adding.

I'm still unsettled about adding extra index-based tools.  Thinking more generally, perhaps we restrict ourselves by looking for a particular index.  We could generalize further by yielding all indices that meet a condition.  I attempted to abstract locate and apply examples from PR#140.
import itertools as it

def locate(iterable, pred=bool):
    """Yield all indicies for which the callable *pred* is ``True``."""
    yield from it.compress(it.count(), map(pred, iterable))

iterable = [0, 1, 1, 0, 1, 0, 0]
idxs = locate(iterable)

# Similiar to `nth_item` and present `locate`
next(idxs)
# Out: 1

# # Similar to `item_index`, skipped the first match
next(idxs)
# Out: 2

# Unique, generalized to find all indicies
idxs = locate(iterable)
list(idxs)
# Out: [1, 5]

# Similar to `item_index(iterable, item, start=3, end=6)`
iterable = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
item = 'b'
[i for i in locate(iterable, pred=lambda x: x==item) if i > 3]
# Out: [5]

Since we can access all indices, we need not worry about skipping n or start and end keywords, but rather leave it to the user.   It's also nice that the implementation is already baked in Hettinger's recipe.  While similar to a list comprehension, I suspect a C-level speed up from the functional implementation (according to the SO post) plus the benefits of using generators.  sub_index still has utility, although I sense it is a coupling between windowed and generalized locate.  I'm curious on thoughts on this abstraction first.
In short, locate all indices may be a better approach than get the nth_item.

I like yielding the matching indexes in locate. Given that the other two apparently aren't faster than the naive loop versions they might not be worth including.

Closed by PR #140; the new locate tool will go in the next release.


Implement work queue support

fixes #4

I've prepared experimental consumer changes based on this branch, check it out @kibertoad
https://github.com/JUtupe/ktor-rabbitmq/tree/experimental/work-queue
It solves issue with multiple arguments in consumer lambda (It'll be easier to create new consumers 😄)
Those changes also prevent user from accessing channel directly from consumer (I'm not sure if we want to allow such option)
Feel free to merge it to this branch 😃

@JUtupe Merged, thank you!

@JUtupe If there are no additional comments, maybe you could merge this and publish a new version? We'd like to start using it :D

Yeah @kibertoad, I'll fix lint issues and release new version
ETA 15 minutes

@JUtupe Thanks a lot!

@kibertoad There was an error during JitPack build, i'll try to fix it.
https://jitpack.io/com/github/JUtupe/ktor-rabbitmq/v0.2.1/build.log

@kibertoad It's published https://jitpack.io/#JUtupe/ktor-rabbitmq/v0.2.3 :)


Add dataInsertedBy to SAME_AS

@russell-d-e  says it's already there

It's in the nodegroup but not exported by the tool.

@russell-d-e @kityansiu can we review this and make sure it is "done"

Just check this is done, PROV-S added added a NODE parent class of THING that has the dataInsertedBy relationship and SAME_AS uses this NODE class


added gaspump

GasPump is lowkey building NFT infrastructure on Fuel

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[BUG] Joystick interface/Thruster allocator wrong output

Description of the bug
Steering with the joystick does not yield the desired thrust output
Steps To Reproduce
No response
Additional Information
No response

Loading parameters lead to segfaults on my computer but not on the craptop.

Need to add try except to I2C connection


Allow verification suites to be run from the command line

Dude! Suite!
$ app/console op:suites:run -vvv
app.DEBUG: Running Entity Verification Framework with "0" suites
app.DEBUG: Retrieved 0 configured entities from configured
app.DEBUG: Completed Run of Entity Verification Framework, "0" Entities Verified with "0" suites.

:bell: @arothuis

Niiice (lunch time hier :wink:)
On Thu, Oct 8, 2015, 12:31 Reinier Kip<EMAIL_ADDRESS>wrote:

[image: :bell:] @arothuis https://github.com/arothuis
—
Reply to this email directly or view it on GitHub
https://github.com/SURFnet/conext-operations-support/pull/19#issuecomment-146489578
.

:+1:


Add a fixture to run the tests on a clone using the current branch instead of main

What does this PR do?

Add a fixture to run the tests on a clone using the current branch instead of main
Motivation

The current repository fixture always checkouts the main branch. In some cases, such as in the test_upgrade_python (see this PR that is currently failing), we need to run the tests on a clone using the local branch.

Additional Notes

I'm not sure I like the current implementation, even if it works. I'll be happy if you could challenge it!
Relates to https://datadoghq.atlassian.net/browse/AITS-277

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Changelog entries must be created for modifications to shipped code
[ ] Add the qa/skip-qa label if the PR doesn't need to be tested during QA.

Closed in favour of https://github.com/DataDog/integrations-core/pull/16019


SWB Wiki work log

Keep a log of all changes.

Edited
/home/sc-glossary/semantic-wikibase/app/LocalSettings.php
$wgSitename changed to 'SemanticGlossar'.
This has worked on the site and the search box now displays SemanticGlossar'.

Edited
/index.php?title=MediaWiki:Tweeki-navbar-brand
To add:
Semantic Glossar

edited
/index.php?title=Begriff_hinzufügen
→ put input elements in a table
→ fixed some typing errors


Use YearRange

In order to simplify the code, we are introducing the class YearRange
to deal with 1 year date ranges.

@andrewgarner @chao-xian is this ok for you now?


GlobalClass inheriting from abstract non-GlobalClass shows error in Create New Node create_dialog.

Godot version
v4.1.1.stable.mono.official
System information
Godot v4.1.1.stable.mono - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4090 (NVIDIA; <IP_ADDRESS>84) - AMD Ryzen 7 7700X 8-Core Processor (16 Threads)
Issue description
If I have a class that is marked as a GlobalClass for the purpose of being added as a node in the inspector, and that class inherits from an abstract class that is not marked as a GlobalClass, an error will be shown despite the whole process actually working successfully (derived note shows up and can be created).

The issue is logical, the engine has the top-most class showing up in its node list, yet it cannot determine its base class since the attribute is missing and thus the engine has no knowledge of what the base class is. If there was a way to check both a. Is a Node and b. inherit.isEmpty, then we can assume that the engine is missing a class and should show a proper error explaining that.
Steps to reproduce

Create abstract base class inheriting from Node.
Create derived class inheriting from base class.
Make derived class [GlobalClass].
Try to create a child node in the editor.

Minimal reproduction project
This project should show the error if the Create Node window is opened.
Test.zip

Can you please try this with a supported version, like 4.1.2 (only the latest patch version is supported, and it might already be fixed)

It works on 4.2.beta3, might be fixed by #81101.


Got at least one module with raw mappings

I am using react-native with scala.js , but i have problem in mapping source maps
  if(filename.indexOf('scalajs-output-') > -1) {
  return {
        code: src,
        filename,
        map: filename+".map",
      };
  } else {
   return transformer.transform(src,filename,options)
  }

Error :
error: bundling: Error: Got at least one module with raw mappings, but assets/scalajs-output-ios.js has a full source map

We're cutting down on the number of outstanding issues, in order to allow us to focus. I'm closing this issue because it has been open for over 60 days with no activity. If you think it should still be opened let us know why. PRs are always welcome.


Fix tests for MongoDB 7.0

Add MongoDB server 6.0 and 7.0 in CI
Upgrade CI to MySQL 8.0

Error message have changed. We don't need to assert on the error message as we already assert there is a BulkWriteException.
Caused by :: Write conflict during plan execution and yielding is disabled. :: Please retry your operation or multi-document transaction.

Codecov Report
Patch and project coverage have no change.

Comparison is base (af13eda) 90.57% compared to head (22ddf8d) 90.57%.

:exclamation: Current head 22ddf8d differs from pull request most recent head 9f17a50. Consider uploading reports for the commit 9f17a50 to get more accurate results

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff            @@
##             master    #2579   +/-   ##
=========================================
  Coverage     90.57%   90.57%
  Complexity      748      748
=========================================
  Files            34       34
  Lines          1783     1783
=========================================
  Hits           1615     1615
  Misses          168      168

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

@GromNaN what about the docker-composer file? in my case the tests were trying to run before mongoDB is fully initiated, so I made this change:
https://github.com/jenssegers/laravel-mongodb/pull/2577/files#diff-e45e45baeda1c1e73482975a664062aa56f20c03dd9d64a827aba57775bed0d3

@GromNaN what about the docker-composer file? in my case the tests were trying to run before mongoDB is fully initiated, so I made this change:

Thanks for the remainder. I imported your changes.

The transaction tests require a replicaset to work. We might add this in config in docker-compose in a future PR.


Nuxt.js support

Hey,
What version of NUXT are supported?
When using Nuxt.js v2.13.3, on universal mode with SSR, the components are still loaded on the client with JS
Thanks,
Lewis

Hello!
Do you mean that they are hydrated or that they are loaded?
For the later see https://github.com/maoberlehner/vue-lazy-hydration#prevent-javascript-bundle-loading

Just checked it in a Nuxt.js v2.13.3 environment: SSR only and delayed hydration works as expected.
For info about how to prevent loading of the JS see workarounds discussed in https://github.com/vuejs/vue/issues/9847
Thx!


Allow language selection on home page

On the landing page / home page, when a user is not logged in, it is not possible to select a language.
The default of English is used.
The language dropdown in the navbar that is visible after login should also be available when not logged in.

The language is stored (and read on page render) as an attribute of a user. As such, the language of not logged-in user is hard to set using the current system.


test failure on new dom node

when I try to glue  my new button, it can't help.
$('.index-buttons').append('test');
var clip = new ZeroClipboard.Client();
...
clip.glue("copy-token");

is there a better way to fix it?

Your code is all using the ZeroClipboard v1.x API.  If that is your intent, be sure to actually use that version of the library for both JS and SWF: https://github.com/zeroclipboard/zeroclipboard/tree/1.x-master
Otherwise, please correct all of your code to use the v2.x API.  If you are transitioning from v1.x to v2.x, the following documentation will likely help you<EMAIL_ADDRESS>


Add support for formatting the log lines with custom format

It seems bizzare to me that the only supported output format is JSON. JSON with timestamps as integers is NOT human readable.
Or maybe there is some other way to get a human-readable log in a file?

The original intent of this module was to spit out unformatted data to a file that is then imported into another reporting system. It wasn't really designed to be viewed by humans directly.
That being said, I'll take a PR add moment.js support for the time string.

And how about adding the possibility to add a transformation function to config (it would transform the event object into a nice string)?

Let's do one thing at a time.

I looked into this because we need a readable time format too. The solution is not straightforward because the data object is frozen, so values can't be modified:
https://github.com/hapijs/good/blob/master/lib/utils.js#L63
Should we clone the data object an "unfreeze" it, or should we use Object.seal() instead of Object.freeze()?

I don't really want to change the Object.freeze because people kept changing the objects and causing reporting bugs in other reporter objects. We could add another transform stream to the pipeline as a possibility?

Yes, freeze makes sense. We could add a transform stream, but the stream receives the frozen data object:
https://github.com/hapijs/good-squeeze/blob/master/lib/safe-json.js#L31
So we can't just do data.time = moment(...) because it raises an error (object property can't be modified). Unfreezing is not easy, all properties need to be copied recursively: http://stackoverflow.com/questions/19293321/opposite-of-object-freeze-or-object-seal-in-javascript

Actually, Hoek.clone() works, the cloned object is not frozen. I will work on a PR then and we can take it from there.

Clone is a very expensive operation. If you're logging requests with good-file, you're going to be cloning thousands and thousands of objects...
We could include an editable copy of the data object as well as the frozen one? We could also try to send a clean copy of data to each reporter so changes to the data object doesn't have any downstream impacts.

I think sending an editable copy in addition to the frozen one wouldn't work, because we had the same problem then, reporters may modify that object and the other reporter may receive a different one.
I like the second approach, sending a clean copy of data to each reporter. But how would you achieve that without cloning?

@arb Any news on this? An editable copy sounds good, but I think doing a clone is inevitable at some point. If you don't want to do the cloning in good or good-file, I will just create a custom reporter which does that.

Nothing new to add. I'm not sure how to send out a different instance when you push data through a stream and I don't want to drop the Freeze aspect. I'm kicking around ideas for dealing with this, but it's not going to happen any time soon.
If you're in a hurry, a custom reporter will be your best bet.

Ok, will do that then. Thanks.

Or maybe there is some other way to get a human-readable log in a file?

good-human.js
'use strict';

const GoodFile = require('good-file');

class GoodHuman extends GoodFile {
  _write(data, encoding, callback) {
    super._write(new Buffer(JSON.parse(data.toString()).data + '\r\n'), encoding, callback);
  }
}

module.exports = GoodHuman;

index.js/manifest.js
  reporters: {
    log: [
      { module: 'good-squeeze', name: 'Squeeze', args: [{ log: 'info' }] },
      { module: 'good-squeeze', name: 'SafeJson' },
      { module: path.join(__dirname, './good-human.js'), args: ['./human.log'] },
    ],
   ...

Now this line:
server.log(['info'], 'Server started at ' + server.info.uri);
Will look like this in the log file:
Server running at: http://localhost:52471