Fix vpm multi touch

Fixes #787
This PR is ready for review.
Risk
This PR makes no API changes.
Testing Plan

Prepare a VPM app and connect to Core
Use a single touch to press down, move and release. Correction Action items received
Touch one pointer; receive an ACTION_DOWN, touch another pointer without release first; receive an ACTION_POINTER_DOWN. Release one of the pointers; ACTION_POINTER_UP is received. Release the other pointer; ACTION_UP is received.

Summary
A private static class was introduced to handle the translation of SDL touch events to Android motion events.
Changelog
Bug Fixes

Multitouch is now better supported
ACTION_CANCEL should not be received between multiple pointer touch begins

CLA

[x] I have signed the CLA

Codecov Report

Merging #790 into develop will decrease coverage by 0.11%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             develop    #790      +/-   ##
============================================
- Coverage      43.22%   43.1%   -0.12%
  Complexity      2794    2794
============================================
  Files            362     362
  Lines          16505   16549      +44
  Branches        1707    1714       +7
============================================
  Hits            7134    7134
- Misses          9062    9106      +44
  Partials         309     309

Impacted Files
Coverage Δ
Complexity Δ

...n/java/com/smartdevicelink/proxy/SdlProxyBase.java
5.27% <0%> (-0.09%)
6 <0> (ø)

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 3001ffe...c7ff33e. Read the comment docs.


[Bug]: type User = any

Package
lucia-auth
Describe the bug
In lucia-auth/auth/index.d.ts there is typescript error: 1. Cannot find namespace 'Lucia'. [2503]
export type User = ReturnType<Lucia.Auth['_transformDatabaseUser']>

This is internals of the library, but this problem reflect in the code. For example:
const { user } = await event.locals.auth.validateUser()

returns user:any which is not true, because according to validateUser() it should return:
validateUser: () => Promise<{
    user: null;
    session: null;
} | {
    user: User;
    session: Session;
}>;

This results in not having type completion when it comes to user object
"lucia-auth": "^1.8.0",
"@sveltejs/kit": "^1.20.2",

Have you declared the namespace in a d.ts file as described in the documentation?

@pilcrowOnPaper yes, here is my app.d.ts file:
declare global {
	/// <reference types="lucia-auth" />
	namespace Lucia {
		type Auth = import('$lib/lucia').Auth
		type UserAttributes = Omit<import('@prisma/client').AuthUser, 'id'>
	}
}

PS: using export {} in the end of file makes the things even worst, because in makes auth undefined

Property 'auth' does not exist on type 'Locals'. [2339]

@pilcrowOnPaper  Cannot find namespace 'Lucia' seems to be fixed when I use separate globals for Lucia. But the user is still any

That usually means the import() path is incorrect, or you just need to restart the TS server/VScode. Or there's a TS error in your Lucia configuration.

Is  Omit<import('@prisma/client').AuthUser, 'id'> defined?

@pilcrowOnPaper example above is straight from lucia sveltekit repo examples folder, and there is type for username defined there:
/// <reference types="lucia-auth" />
declare namespace Lucia {
	type Auth = import('$lib/server/lucia.js').Auth;
	type UserAttributes = {
		username: string;
	};
}

/// <reference types="@sveltejs/kit" />
declare namespace App {
	interface Locals {
		auth: import('lucia-auth').AuthRequest;
	}
}

Did you get it fixed? The only thing that could be wrong is that you might need to define it using global in .d.ts

no, the user is undefined unfortunately – even when I downloaded v1 sveltekit example, the issue was there.

Can you try using the v2 beta examples? If that doesn't work, I'm not really sure what I can do.

@pilcrowOnPaper in v2 I see the types, but user object is located within session – guess this is one of breaking changes from v1 :D

I'm going to close this since

I cannot replicate the issue
It seems to be fixed with v2

Hi, I've faced the same issue, the solution lies in correcting the Auth type on the .d.ts file. In the guys case the dynamic import of type Auth = import('$lib/server/lucia.js').Auth; must not be working, probably because of the svelte's $lib shortcut.

FWIW, I was having the same issue and the above comment helped fixing it.  I forgot to export the type Auth = typeof auth . Thanks @PrisionMikeLime

My issue was not doing an inline import. Maybe that's a typescript quirk?
This works:
declare namespace Lucia {
	type Auth = import("~/lib/lucia.server").Auth
	type DatabaseUserAttributes = import("~/lib/lucia.server").DatabaseUserAttributes
	type DatabaseSessionAttributes = {}
}

But this doesn't:
import type {
	Auth as MyAuth,
	DatabaseUserAttributes as MyDatabaseUserAttributes,
} from "~/lib/lucia.server"

declare namespace Lucia {
	type Auth = MyAuth
	type DatabaseUserAttributes = MyDatabaseUserAttributes
	type DatabaseSessionAttributes = {}
}

I had the same issue. I have solved it by wrapping the example in declare global like so:
declare global {
  declare namespace Lucia {
    type Auth = import("./services/auth/lucia").Auth;
    type DatabaseUserAttributes = {
      username: string;
    };
    type DatabaseSessionAttributes = {
      hello: string;
    };
  }
}

Can confirm that in the following configuration: sveltekit + prisma, declaring the Lucia namespace inside the global namespace of app.d.ts is required
Here is my full file
// /app.d.ts
declare global {
	namespace App {
		interface Locals {
			auth: ReturnType<Lucia.Auth['handleRequest']>;
		}
		// interface Error {}
		// interface PageData {}
		// interface Platform {}
	}

	/// <reference types="lucia" />
	namespace Lucia {
		type Auth = import('./lib/lucia').Auth;
		type DatabaseUserAttributes = import('./lib/lucia').DatabaseUserAttributes;
		type DatabaseSessionAttributes = import('./lib/lucia').DatabaseSessionAttributes;
	}
}

export {};


Add comments for concurrent data table tests.

Fix #74.

Coverage remained the same at 95.41% when pulling 9512eceba9cef70a08ddb577017b440263088d97 on lmwnshn:concur_comments into<PHONE_NUMBER>4cbb6a2a0a1779deccec74c240ede5 on cmu-db:master.


Include query string (closes #198).

Fixed according to the specification:

The ? is excluded from the query string. If a URL contains no ?, there is no query field. If there is a ? but no query, the query field exists with an empty string.

:grey_exclamation: Build Aborted

The PR is not allowed to run in the CI yet

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-08-30T12:17:06.874+0000

Duration: 3 min 16 sec

Steps errors
Expand to view the steps failures

Load a resource file from a library

Took 0 min 0 sec . View more details here
Description: approval-list/elastic/ecs-dotnet.yml

Error signal

Took 0 min 0 sec . View more details here
Description: githubApiCall: The REST API call https://api.github.com/orgs/elastic/members/andreycha return the message : java.lang.Exception: httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/andreycha : httpRequest: Failure connecting to the service https://api.github.com/orgs/elastic/members/andreycha : Code: 404Error: {"message":"User does not exist or is not a member of the organization","documentation_url":"https://docs.github.com/rest/reference/orgs#check-organization-membership-for-a-user"}

:robot: GitHub comments
To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)


domd-gen3: optee: add appends for optee 4.1.0

This patch basically switches OP-TEE for prod-devel-gen3 to version 4.1.0. It relies on new meta-xt-security layer from meta-xt-common.
From now on OP-TEE configuration will be per-product, not per-platform, as different products on the same platform may have different OP-TEE configuration.
This patch also removes meta-xt-rcar-domx as it was used only to hold per-platform OP-TEE recipe.

I believe @al1img will make similar change by himself.


make label more unique so it wont overwrite

The "title" and "label" in categories.json need to be comparatively unique for the module.
Categories.json with matching labels (such as "get started") will overwrite others.

Changed the label for IDP's get started category.json file so it wont overwrite other category.json files with the Get started label.
Changed some links to /docs/category/get-started that were going to the wrong get-started category page.

I don't know why the bullet style changed in this file - I only changed the link: https://github.com/harness/developer-hub/pull/2162/files#diff-86a3c406b9d46d112695e230abb6418bfdabf5752d4d8730887019ad32117291

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


Updated logout step to work in karaf mode

BROOKLYN-323: Simplify LogoutApi
relative urls for swagger html

PR depends on https://github.com/apache/brooklyn-server/pull/578
Previously when you are on the API page dropdown menu was not visible.

Tested, LGTM

I think that's the wrong way to fix the problem. The swagger page is opened with target=_blank so it's a separate on from the main application. This makes it surprising - say you click on the rest api page which opens a new tab (you could even miss that), then click back on applications. Now you have to identical tabs.
We should either:

remove the frame from the swagger page so it's obvious that a new tab is opened. With no way to click on the application tab (which brings even more confusion)
Open the swagger ui in the same window

@neykov I changed it to open in the same tab.
Can you check again whether it looks consistent UX.

LGTM.  This has been changed back and forth in the past, so @ahgittin, @m4rkmckenna any comments?

@bostko could you revisit Alex and Svet's comments?

@bostko looks good. Will test and merge if ok.

@bostko Looks like this negatively impacts logging out of the non-Karaf distribution. After logging out I've found that:

master non-karaf: prompts for re-authentication.
master karaf: 405 error POST is not supported by this URL
this pr karaf: displays page with "login" in big text. Clicking it prompts for re-authentication.
this pr non-karaf: displays page with "login" in big text. Clicking it logs the user back in without requiring re-authentication.

We should prompt the user to re-authenticate in the standard distribution.

@sjcorbett thanks for the notes!
I added in apache/brooklyn-server#578 an unauthorize call which seems to solve the issues in classic mode.
Could you check both PRs again,
Thanks!

@bostko thanks for the update. I've confirmed that the browser requires re-authentication in both cases.


MC 1.12-pre2 deprecated SQL class, SQL fails

Spigot/ MC 1.12 pre-release 2
"File" method appears to work fine, though I didn't start to load it yet.
Initially, I used "url" instead of "uri" for the config, and it correctly overwrote the values in the config file, "Do it THIS way, try again!" I changed the label to uri, made sure spaces-not-tabs as displayed by Notepad++
  backend: sql
<config stuff>
  backends:
    sql:
      user: <correct_username>
      password: <password>
      type: sql
      uri: mysql://<someip>/<database>

Error log:
14.05 13:56:54 [Server] INFO Enabling PermissionsEx v1.23.4
14.05 13:56:54 [Server] INFO Initializing sql backend
14.05 13:56:54 [Server] WARN Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
14.05 13:56:54 [Server] INFO ========== UNABLE TO LOAD PERMISSIONS BACKEND =========
14.05 13:56:54 [Server] INFO Your configuration must be fixed before PEX will enable
14.05 13:56:54 [Server] INFO Details: Unable to connect to SQL database
14.05 13:56:54 [Server] INFO =======================================================
14.05 13:56:54 [Server] INFO ru.tehkode.permissions.exceptions.PermissionBackendException: Unable to connect to SQL database
14.05 13:56:54 [Server] INFO at ru.tehkode.permissions.backends.sql.SQLBackend.<init>(SQLBackend.java:118) ~[PermissionsEx-1.23.4.jar:?]

Going back to text method for the time being.

The warning message is unrelated to your error. Unfortunately, you cut out the majority of the actual stacktrace for the real error so we can't help you much with that.

I'll edit the message to put the stack trace in.

Unfortunately PermissionsEx is currently unmaintained and no further updates are planned. Because of this, all pull requests are being closed. If you are looking for an actively maintained permissions plugin, take a look at LuckPerms. It is compatible with major server platforms and can import data from PEX.


[Feature]: CTRL F in server.cfg

Scope
Web
Feature Description
You can press CTRL F on your keyboard on txAdmin cfg editor so you can find your resource names easier
Use Case
You can find resource names easier
Proposed Solution
No response
Additional Info
No response

Done.
Also added CTLR+R for restart, and CTRL+; to comment the line(s)


Contact Information Link Filter

Hi, thanks for your great work. It helps me a lot in my job.
In my use case, I found that it is inefficient to traverse all the URLs to find emails in the same domain (filtered by DefaultLinkFilter).  To my understanding, most of the websites show the contact emails on the home pages or contact-us/about-us pages. To speed it up, we can visit sub-pages whose URLs contain "about-us" or "contact-us" to extract emails. Of course, everything has an exception (No contact information pages found). It's a tradeoff!
For the implementation, I created a new filter ContactInfoLinkFilter and slightly modified EmailExtractor.
I also set a boolean parameter use_default to handle the exception as mentioned above. If use_default is True, return the URLs found by DefaultLinkFilter instead of an empty list [], when ContactInfoLinkFilter doesn't find any URLs. Finally, my script passed all the test cases including yours and mine.
Thank you so much for whether you accept this request or not.

@chiaminchuang Thanks for the great pr!


Improve the REPL

A part of #87

@imkiva I'm a little bit unsure 'bout what to do with ConfigSavers.


Correction for raw affiliation Department of Chemistry, Al Imam Mohammad Ibn Saud Islamic University (IMISIU), P.O. Box 5701, Ri-yadh 11432, Saudi Arabia; National Center for Scientific Research (CNRS), National School of Chemistry of Rennes, University of Rennes, ISCR-UMR6226, F-35000 Rennes, France ;

Correction needed for raw affiliation Department of Chemistry, Al Imam Mohammad Ibn Saud Islamic University (IMISIU), P.O. Box 5701, Ri-yadh 11432, Saudi Arabia; National Center for Scientific Research (CNRS), National School of Chemistry of Rennes, University of Rennes, ISCR-UMR6226, F-35000 Rennes, France ;
raw_affiliation_name: Department of Chemistry, Al Imam Mohammad Ibn Saud Islamic University (IMISIU), P.O. Box 5701, Ri-yadh 11432, Saudi Arabia; National Center for Scientific Research (CNRS), National School of Chemistry of Rennes, University of Rennes, ISCR-UMR6226, F-35000 Rennes, France ;
new_rors: 015m7wh34;05gxjyb39;02feahw73;00adwkx90
previous_rors: 015m7wh34;05gxjyb39;02feahw73
works_examples: W4377690838
contact: 3434fa7b67e281e0f6230d3efe3f5dde:dda074d70c5c984ea44cb2277bd029cb @ univ-rennes.fr

This issue was accepted and ingested by the OpenAlex team on 2024-10-10. The new affiliations should be visible within the next 7 days.


Installation Error for macOS

Having some trouble installing the file with the updated requirements.txt file using both pip and a fork of the repo. Error is when building the wheel for xformers
clang: error: unsupported option '-fopenmp'
ninja: build stopped: subcommand failed
Python 3.9.17
pip 23.2.1

Hey @udm17 ,
Thanks for following up. Please try to install it using venv. Alternatively, you can try this method: https://github.com/laiyer-ai/llm-guard/issues/36#issuecomment-1806849616
Hope it works. Please let me know

As a follow up, I updated my python to version 3.11.5 and now it's working. I also had to install torch

Yeah, torch installation is how we solve it in Docker build of the API

i am using 3.11.5 with pyenv, installed torch separately, still getting same error.
`Collecting torch==2.0.1 (from -r requirements.txt (line 12))
Using cached torch-2.0.1-cp311-none-macosx_10_9_x86_64.whl (143.1 MB)
Collecting transformers==4.36.1 (from -r requirements.txt (line 13))
Using cached transformers-4.36.1-py3-none-any.whl.metadata (126 kB)
Collecting xformers==0.0.22 (from -r requirements.txt (line 14))
Using cached xformers-0.0.22.tar.gz (3.9 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [20 lines of output]
Traceback (most recent call last):
File "/Users/nara/.pyenv/versions/guard/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in
main()
File "/Users/nara/.pyenv/versions/guard/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nara/.pyenv/versions/guard/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-build-env-bzd4mkf5/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-build-env-bzd4mkf5/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "/private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-build-env-bzd4mkf5/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 480, in run_setup
super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
File "/private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-build-env-bzd4mkf5/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "", line 23, in
ModuleNotFoundError: No module named 'torch'`

Hey @nara , you can try to install torch by running pip install torch.
Additionally, in our Slack, there was another way to resolve it by installing xformers pip install llm-guard --no-build-isolation

@asofter thank you for reply. tried both but no luck.
with --no-build-isolation, getting new error
Collecting fuzzysearch==0.7.3 (from llm-guard)
Using cached fuzzysearch-0.7.3.tar.gz (112 kB)
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [14 lines of output]
running dist_info
creating /private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch.egg-info
writing /private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch.egg-info/PKG-INFO
writing dependency_links to /private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch.egg-info/dependency_links.txt
writing requirements to /private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch.egg-info/requires.txt
writing top-level names to /private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch.egg-info/top_level.txt
writing manifest file '/private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch.egg-info/SOURCES.txt'
reading manifest file '/private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
adding license file 'AUTHORS.rst'
writing manifest file '/private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch.egg-info/SOURCES.txt'
creating '/private/var/folders/68/122823fj3yq0c4kqtsvtpzlh0000gn/T/pip-modern-metadata-1hf0l54n/fuzzysearch-0.7.3.dist-info'
error: invalid command 'bdist_wheel'
[end of output]

For this error, you can try to do pip install wheel(https://llm-guard.com/get_started/installation/#using-pip)

tried it. it works when i created a venv with conda 3.11.5 version, but failed when i created with penv.
can you please let know what you are using for venv?

I use venv for that

I can confirm that on MacOS if you install torch then, wheel and finally pip install llm-guard --no-build-isolation it will work.


FYI the guide also works with DietPi

See https://github.com/MichaIng/DietPi/issues/3377#issuecomment-896750673

Awesome!
Actually, this guide should also be generally applicable for image files with partition information. :)
I just added this here.

Yes I would advertise this clearly ... it's a long guide that takes some time to follow properly, so we want to give people confidence that they're not wasting their time.


Update dependencies

There's some dependencies issue with Node.js v15 so I created PR #47
However, it seems that our codebase has some linting issues with the @chatie/eslint-config.
@padlocal would you like me to fix those problems for you so that we can run npm run lint successfully?

Thanks for updating the dependencies!
Let's see what can we improve next!


Custom exposure times

I also changed the grab_images() function to a grab_image() function, because we were averaging the frames together anyway. We now just have the camera grab one frame, with exposure specified by the exposure_time component.

I added a change of the exposure time to the tests. There probably isn't a reliable way to test what it does to the image.


Porcupine Issue:  PICOVOICE_STATUS_TO_EXCEPTION 00000136

Have you checked the docs and existing issues?

[X] I have read all of the relevant Picovoice Porcupine docs
[X] I have searched the existing issues for Porcupine

SDK
Python
Porcupine package version
3.0.2
Framework version
Pythonh 3.11
Platform
Raspberry Pi
OS/Browser version
Deboam GNU/Linux 12 (bookworm)
Describe the bug
This is an output of the exact error when I try to run my code.
Traceback (most recent call last):
  File "/home/evan/Documents/Python/Gemini Images/inky041924.py", line 113, in <module>
    main()
  File "/home/evan/Documents/Python/Gemini Images/inky041924.py", line 105, in main
    wait_for_wake_word(picovoice_api_key)
  File "/home/evan/Documents/Python/Gemini Images/inky041924.py", line 18, in wait_for_wake_word
    porcupine = pvporcupine.create(access_key=pico_key, keywords=["Art-Frame"])
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/evan/Documents/Python/Gemini Images/myenv/lib/python3.11/site-packages/pvporcupine/_factory.py", line 69, in create
    return Porcupine(
           ^^^^^^^^^^
  File "/home/evan/Documents/Python/Gemini Images/myenv/lib/python3.11/site-packages/pvporcupine/_porcupine.py", line 198, in __init__
    raise self._PICOVOICE_STATUS_TO_EXCEPTION[status](
pvporcupine._porcupine.PorcupineActivationRefusedError: Initialization failed:
  [0] Picovoice Error (code `00000136`)
  [1] Picovoice Error (code `00000136`)
  [2] Picovoice Error (code `00000136`)

The code equivalent (where I am not outputting the image it displays to the inky display, but instead running this on Windows and opening the image it generates in the windows file viewer, works perfectly. This bug seems to be specific to Raspberry Pi OS
Steps To Reproduce
I created a test script to run my code in windows, which works:
import pvporcupine
import pyaudio
import struct

def main():
	# Configuration parameters
	access_key = "ACCESS_KEY_HERE"
	keyword_path = r"C:\Users\Evan Alexander\AppData\Local\Programs\Python\Python312\Lib\site-packages\pvporcupine\resources\keyword_files\windows\Art-Frame_en_windows_v3_0_0.ppn"

	try:
		# Create a Porcupine object with the given access key and keyword file
		porcupine = pvporcupine.create(access_key=access_key, keyword_paths=[keyword_path])

		# Set up audio input stream
		pa = pyaudio.PyAudio()
		audio_stream = pa.open(
			rate=porcupine.sample_rate,
			channels=1,
			format=pyaudio.paInt16,
			input=True,
			frames_per_buffer=porcupine.frame_length
		)

		print("Listening for the wake word 'Art-Frame'...")

		# Main loop to process audio frames
		while True:
			# Read frame from audio input stream
			pcm_frame = audio_stream.read(porcupine.frame_length)
			pcm_frame = struct.unpack_from("h" * porcupine.frame_length, pcm_frame)

			# Process frame to detect keyword
			result = porcupine.process(pcm_frame)
			if result >= 0:
				print("Wake word 'Art-Frame' detected!")

	except KeyboardInterrupt:
		print("Exiting...")
	finally:
		# Clean up resources
		if porcupine is not None:
			porcupine.delete()
		if audio_stream is not None:
			audio_stream.close()
		if pa is not None:
			pa.terminate()

if __name__ == '__main__':
	main()

The equivalent code in linux returns the error:
import pvporcupine
import pyaudio
import struct

def main():
	# Configuration parameters
	access_key = "ACCESS_KEY_HERE"
	keyword_path = "/home/evan/.local/lib/python3.11/site-packages/pvporcupine/resources/keyword_files/raspberry-pi/Art-Frame_raspberry-pi.ppn"
	# Adjust the path to the location where you have saved the keyword file on your Raspberry Pi

	try:
		# Create a Porcupine object with the given access key and keyword file
		porcupine = pvporcupine.create(access_key=access_key, keyword_paths=[keyword_path])

		# Set up audio input stream
		pa = pyaudio.PyAudio()
		audio_stream = pa.open(
			rate=porcupine.sample_rate,
			channels=1,
			format=pyaudio.paInt16,
			input=True,
			frames_per_buffer=porcupine.frame_length
		)

		print("Listening for the wake word 'Art-Frame'...")

		# Main loop to process audio frames
		while True:
			# Read frame from audio input stream
			pcm_frame = audio_stream.read(porcupine.frame_length)
			pcm_frame = struct.unpack_from("h" * porcupine.frame_length, pcm_frame)

			# Process frame to detect keyword
			result = porcupine.process(pcm_frame)
			if result >= 0:
				print("Wake word 'Art-Frame' detected!")

	except KeyboardInterrupt:
		print("Exiting...")
	finally:
		# Clean up resources
		if porcupine is not None:
			porcupine.delete()
		if audio_stream is not None:
			audio_stream.close()
		if pa is not None:
			pa.terminate()

if __name__ == '__main__':
	main()

Try to run the Windows version of the code and notice that it works. Then try to run the linux version of the code on a Raspberry Pi and observe the error
Expected Behavior
The code should run on linux. This is just a small version of the whole code I am trying to run. Here is my complete code, which should accept a wake word, allow me to dictate a prompt, transcribe the prompt to text, send the test to DALLE-3 to generate an image, display that image on my inky impressions.
import os
import requests
import pyaudio
import wave
import struct
from dotenv import load_dotenv
from PIL import Image
from io import BytesIO
from pathlib import Path
from inky.auto import auto
from gpiozero import Button
import signal
import openai
import pvporcupine
import pvcobra

def wait_for_wake_word(pico_key):
	porcupine = pvporcupine.create(access_key=pico_key, keywords=["Art-Frame"])
	pa = pyaudio.PyAudio()
	stream = pa.open(format=pyaudio.paInt16, channels=1, rate=porcupine.sample_rate,
					 input=True, frames_per_buffer=porcupine.frame_length)

	print("Listening for the wake word...")
	while True:
		pcm = stream.read(porcupine.frame_length)
		pcm = struct.unpack_from("h" * porcupine.frame_length, pcm)
		keyword_index = porcupine.process(pcm)
		if keyword_index >= 0:
			print("Wake word detected")
			break

	stream.stop_stream()
	stream.close()
	pa.terminate()
	porcupine.delete()

def record_audio_until_silence(pico_key):
	cobra = pvcobra.create(access_key=pico_key)
	pa = pyaudio.PyAudio()
	stream = pa.open(format=pyaudio.paInt16, rate=cobra.sample_rate, channels=1,
					 input=True, frames_per_buffer=cobra.frame_length)

	print("Recording...")
	frames = []
	last_voice_time = time.time()
	while True:
		pcm = stream.read(cobra.frame_length)
		pcm = struct.unpack_from("h" * cobra.frame_length, pcm)
		if cobra.process(pcm) > 0.2:
			last_voice_time = time.time()
			frames.append(pcm)
		elif (time.time() - last_voice_time) > 3:
			print("Silence detected, stopping recording.")
			break

	stream.stop_stream()
	stream.close()
	pa.terminate()
	cobra.delete()

	return b''.join(frames)

def transcribe(audio_data, api_key):
	# Save audio to a temporary file
	wav_path = Path("temp_recording.wav")
	with wave.open(str(wav_path), 'wb') as wf:
		wf.setnchannels(1)
		wf.setsampwidth(pyaudio.get_sample_size(pyaudio.paInt16))
		wf.setframerate(16000)
		wf.writeframes(audio_data)

	# Transcribe audio
	with open(wav_path, 'rb') as audio_file:
		transcription_response = openai.audio.transcriptions.create(
			model="whisper-1",
			file=audio_file,
			api_key=api_key
		)
	transcription = transcription_response
	print("Transcription:", transcription)
	return transcription

def generate_image(prompt, api_key, inky_display):
	response = openai.Image.create(
		prompt=prompt,
		n=1,
		size="1024x1024",
		model="dall-e-3",
		api_key=api_key
	)
	image_url = response['data'][0]['url']
	image_response = requests.get(image_url)
	image_bytes = image_response.content
	image = Image.open(BytesIO(image_bytes)).resize(inky_display.resolution)
	return image

def main():
	load_dotenv()
	openai_api_key = os.getenv('OPENAI_API_KEY')
	picovoice_api_key = os.getenv('PICOVOICE_API_KEY')
	inky_display = auto(ask_user=True, verbose=True)
	button_a = Button(5)

	while True:
		wait_for_wake_word(picovoice_api_key)
		audio_data = record_audio_until_silence(picovoice_api_key)
		prompt = transcribe(audio_data, openai_api_key)
		image = generate_image(prompt, openai_api_key, inky_display)
		inky_display.set_image(image)
		inky_display.show()

if __name__ == '__main__':
	main()

Thanks for reaching out. Typically a PorcupineActivationRefusedError means your account has been flagged by Picovoice Audit System. Picovoice Audit System can delete accounts in case of Picovoice Terms of Use violations, such as suspicious activities, creating multiple accounts, providing false or inaccurate information.
If you think there is a mistake, please send an email to<EMAIL_ADDRESS>with your name, surname, country, city and project details. We’ll investigate it further.

Thank you Eris, I just sent an email with an explanation. I hope to hear from you soon.

Have you checked the docs and existing issues?

[x]  I have read all of the relevant Picovoice Porcupine docs
[x]  I have searched the existing issues for Porcupine

SDK
Python
Porcupine package version
3.0.2
Framework version
Pythonh 3.11
Platform
Raspberry Pi
OS/Browser version
Deboam GNU/Linux 12 (bookworm)
Describe the bug
This is an output of the exact error when I try to run my code.
Traceback (most recent call last):
  File "/home/evan/Documents/Python/Gemini Images/inky041924.py", line 113, in <module>
    main()
  File "/home/evan/Documents/Python/Gemini Images/inky041924.py", line 105, in main
    wait_for_wake_word(picovoice_api_key)
  File "/home/evan/Documents/Python/Gemini Images/inky041924.py", line 18, in wait_for_wake_word
    porcupine = pvporcupine.create(access_key=pico_key, keywords=["Art-Frame"])
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/evan/Documents/Python/Gemini Images/myenv/lib/python3.11/site-packages/pvporcupine/_factory.py", line 69, in create
    return Porcupine(
           ^^^^^^^^^^
  File "/home/evan/Documents/Python/Gemini Images/myenv/lib/python3.11/site-packages/pvporcupine/_porcupine.py", line 198, in __init__
    raise self._PICOVOICE_STATUS_TO_EXCEPTION[status](
pvporcupine._porcupine.PorcupineActivationRefusedError: Initialization failed:
  [0] Picovoice Error (code `00000136`)
  [1] Picovoice Error (code `00000136`)
  [2] Picovoice Error (code `00000136`)

The code equivalent (where I am not outputting the image it displays to the inky display, but instead running this on Windows and opening the image it generates in the windows file viewer, works perfectly. This bug seems to be specific to Raspberry Pi OS
Steps To Reproduce
I created a test script to run my code in windows, which works:
import pvporcupine
import pyaudio
import struct

def main():
	# Configuration parameters
	access_key = "ACCESS_KEY_HERE"
	keyword_path = r"C:\Users\Evan Alexander\AppData\Local\Programs\Python\Python312\Lib\site-packages\pvporcupine\resources\keyword_files\windows\Art-Frame_en_windows_v3_0_0.ppn"

	try:
		# Create a Porcupine object with the given access key and keyword file
		porcupine = pvporcupine.create(access_key=access_key, keyword_paths=[keyword_path])

		# Set up audio input stream
		pa = pyaudio.PyAudio()
		audio_stream = pa.open(
			rate=porcupine.sample_rate,
			channels=1,
			format=pyaudio.paInt16,
			input=True,
			frames_per_buffer=porcupine.frame_length
		)

		print("Listening for the wake word 'Art-Frame'...")

		# Main loop to process audio frames
		while True:
			# Read frame from audio input stream
			pcm_frame = audio_stream.read(porcupine.frame_length)
			pcm_frame = struct.unpack_from("h" * porcupine.frame_length, pcm_frame)

			# Process frame to detect keyword
			result = porcupine.process(pcm_frame)
			if result >= 0:
				print("Wake word 'Art-Frame' detected!")

	except KeyboardInterrupt:
		print("Exiting...")
	finally:
		# Clean up resources
		if porcupine is not None:
			porcupine.delete()
		if audio_stream is not None:
			audio_stream.close()
		if pa is not None:
			pa.terminate()

if __name__ == '__main__':
	main()

The equivalent code in linux returns the error:
import pvporcupine
import pyaudio
import struct

def main():
	# Configuration parameters
	access_key = "ACCESS_KEY_HERE"
	keyword_path = "/home/evan/.local/lib/python3.11/site-packages/pvporcupine/resources/keyword_files/raspberry-pi/Art-Frame_raspberry-pi.ppn"
	# Adjust the path to the location where you have saved the keyword file on your Raspberry Pi

	try:
		# Create a Porcupine object with the given access key and keyword file
		porcupine = pvporcupine.create(access_key=access_key, keyword_paths=[keyword_path])

		# Set up audio input stream
		pa = pyaudio.PyAudio()
		audio_stream = pa.open(
			rate=porcupine.sample_rate,
			channels=1,
			format=pyaudio.paInt16,
			input=True,
			frames_per_buffer=porcupine.frame_length
		)

		print("Listening for the wake word 'Art-Frame'...")

		# Main loop to process audio frames
		while True:
			# Read frame from audio input stream
			pcm_frame = audio_stream.read(porcupine.frame_length)
			pcm_frame = struct.unpack_from("h" * porcupine.frame_length, pcm_frame)

			# Process frame to detect keyword
			result = porcupine.process(pcm_frame)
			if result >= 0:
				print("Wake word 'Art-Frame' detected!")

	except KeyboardInterrupt:
		print("Exiting...")
	finally:
		# Clean up resources
		if porcupine is not None:
			porcupine.delete()
		if audio_stream is not None:
			audio_stream.close()
		if pa is not None:
			pa.terminate()

if __name__ == '__main__':
	main()

Try to run the Windows version of the code and notice that it works. Then try to run the linux version of the code on a Raspberry Pi and observe the error
Expected Behavior
The code should run on linux. This is just a small version of the whole code I am trying to run. Here is my complete code, which should accept a wake word, allow me to dictate a prompt, transcribe the prompt to text, send the test to DALLE-3 to generate an image, display that image on my inky impressions.
import os
import requests
import pyaudio
import wave
import struct
from dotenv import load_dotenv
from PIL import Image
from io import BytesIO
from pathlib import Path
from inky.auto import auto
from gpiozero import Button
import signal
import openai
import pvporcupine
import pvcobra

def wait_for_wake_word(pico_key):
	porcupine = pvporcupine.create(access_key=pico_key, keywords=["Art-Frame"])
	pa = pyaudio.PyAudio()
	stream = pa.open(format=pyaudio.paInt16, channels=1, rate=porcupine.sample_rate,
					 input=True, frames_per_buffer=porcupine.frame_length)

	print("Listening for the wake word...")
	while True:
		pcm = stream.read(porcupine.frame_length)
		pcm = struct.unpack_from("h" * porcupine.frame_length, pcm)
		keyword_index = porcupine.process(pcm)
		if keyword_index >= 0:
			print("Wake word detected")
			break

	stream.stop_stream()
	stream.close()
	pa.terminate()
	porcupine.delete()

def record_audio_until_silence(pico_key):
	cobra = pvcobra.create(access_key=pico_key)
	pa = pyaudio.PyAudio()
	stream = pa.open(format=pyaudio.paInt16, rate=cobra.sample_rate, channels=1,
					 input=True, frames_per_buffer=cobra.frame_length)

	print("Recording...")
	frames = []
	last_voice_time = time.time()
	while True:
		pcm = stream.read(cobra.frame_length)
		pcm = struct.unpack_from("h" * cobra.frame_length, pcm)
		if cobra.process(pcm) > 0.2:
			last_voice_time = time.time()
			frames.append(pcm)
		elif (time.time() - last_voice_time) > 3:
			print("Silence detected, stopping recording.")
			break

	stream.stop_stream()
	stream.close()
	pa.terminate()
	cobra.delete()

	return b''.join(frames)

def transcribe(audio_data, api_key):
	# Save audio to a temporary file
	wav_path = Path("temp_recording.wav")
	with wave.open(str(wav_path), 'wb') as wf:
		wf.setnchannels(1)
		wf.setsampwidth(pyaudio.get_sample_size(pyaudio.paInt16))
		wf.setframerate(16000)
		wf.writeframes(audio_data)

	# Transcribe audio
	with open(wav_path, 'rb') as audio_file:
		transcription_response = openai.audio.transcriptions.create(
			model="whisper-1",
			file=audio_file,
			api_key=api_key
		)
	transcription = transcription_response
	print("Transcription:", transcription)
	return transcription

def generate_image(prompt, api_key, inky_display):
	response = openai.Image.create(
		prompt=prompt,
		n=1,
		size="1024x1024",
		model="dall-e-3",
		api_key=api_key
	)
	image_url = response['data'][0]['url']
	image_response = requests.get(image_url)
	image_bytes = image_response.content
	image = Image.open(BytesIO(image_bytes)).resize(inky_display.resolution)
	return image

def main():
	load_dotenv()
	openai_api_key = os.getenv('OPENAI_API_KEY')
	picovoice_api_key = os.getenv('PICOVOICE_API_KEY')
	inky_display = auto(ask_user=True, verbose=True)
	button_a = Button(5)

	while True:
		wait_for_wake_word(picovoice_api_key)
		audio_data = record_audio_until_silence(picovoice_api_key)
		prompt = transcribe(audio_data, openai_api_key)
		image = generate_image(prompt, openai_api_key, inky_display)
		inky_display.set_image(image)
		inky_display.show()

if __name__ == '__main__':
	main()

I tried this code of yours:
import pvporcupine
import pyaudio
import struct

def main():
	# Configuration parameters
	access_key = "MY_API"
	keyword_path = r"C:\Users\Bilal\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pvporcupine\resources\keyword_files\windows\helfen_windows.ppn"

	try:
		# Create a Porcupine object with the given access key and keyword file
		porcupine = pvporcupine.create(access_key=access_key, keyword_paths=[keyword_path])

		# Set up audio input stream
		pa = pyaudio.PyAudio()
		audio_stream = pa.open(
			rate=porcupine.sample_rate,
			channels=1,
			format=pyaudio.paInt16,
			input=True,
			frames_per_buffer=porcupine.frame_length
		)

		print("Listening for the wake word 'Helfen'...")

		# Main loop to process audio frames
		while True:
			# Read frame from audio input stream
			pcm_frame = audio_stream.read(porcupine.frame_length)
			pcm_frame = struct.unpack_from("h" * porcupine.frame_length, pcm_frame)

			# Process frame to detect keyword
			result = porcupine.process(pcm_frame)
			if result >= 0:
				print("Wake word 'Helfen' detected!")

	except KeyboardInterrupt:
		print("Exiting...")
	finally:
		# Clean up resources
		if porcupine is not None:
			porcupine.delete()
		if audio_stream is not None:
			audio_stream.close()
		if pa is not None:
			pa.terminate()

if __name__ == '__main__':
	main()

But I'm getting this error:
Traceback (most recent call last):
  File "F:\Projects\PicoVoice\pcpine.py", line 13, in main
    porcupine = pvporcupine.create(access_key=access_key, keyword_paths=[keyword_path])
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Bilal\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pvporcupine\_factory.py", line 69, in create
    return Porcupine(
           ^^^^^^^^^^
  File "C:\Users\Bilal\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pvporcupine\_porcupine.py", line 198, in __init__
    raise self._PICOVOICE_STATUS_TO_EXCEPTION[status](
pvporcupine._porcupine.PorcupineInvalidArgumentError: Initialization failed:
  [0] Keyword file (.ppn) file has incorrect format or belongs to a different platform.
  [1] Picovoice Error (code `00000136`)
  [2] Loading keyword file at `C:\Users\Bilal\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pvporcupine\resources\keyword_files\windows\helfen_windows.ppn` failed with `INVALID_ARGUME

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\Projects\PicoVoice\pcpine.py", line 50, in <module>
    main()
  File "F:\Projects\PicoVoice\pcpine.py", line 42, in main
    if porcupine is not None:
       ^^^^^^^^^
UnboundLocalError: cannot access local variable 'porcupine' where it is not associated with a value

Is there any way to solve this? Btw I trained the file on the Porcupine console and got my .ppn file and I put it inside the keywords file where all other files are available.

@MuhammadBilal848 I'm not sure. I suggest opening a separate issue with Pico. I learned how to use the wake word by following this guy's code if this helps: https://github.com/DevMiser/AI_Art_Frame/blob/main/AIArtFrame.py

@MuhammadBilal848 I'm not sure. I suggest opening a separate issue with Pico. I learned how to use the wake word by following this guy's code if this helps: https://github.com/DevMiser/AI_Art_Frame/blob/main/AIArtFrame.py
I also think your keyword file is in the wrong place. It should be in AppData local yes, but in sitepackages where all your other python libraries are. Looks like you're adding it to some sort of cache folder?
Honestly I'm not sure sorry. It has to be a configuration issue though because my code works but again I'm not an expert

I found out the problem. I exported the model of Android Build while I was trying to run it on Windows. I downloaded the model on windows and now it is working.


Running inside of a crontab

Whenever I am running my code inside of a cron script, I get this error:
Traceback (most recent call last):
  File "/home/dhuck/projects/notebooks/COVID/update.py", line 466, in <module>
    main()
  File "/home/dhuck/projects/notebooks/COVID/update.py", line 456, in main
    save(world, world_file)
  File "/home/dhuck/projects/notebooks/.env/lib/python3.6/site-packages/altair_saver/_core.py", line 157
+, in save
    Saver = _select_saver(method, mode=mode, fmt=fmt, fp=fp)
  File "/home/dhuck/projects/notebooks/.env/lib/python3.6/site-packages/altair_saver/_core.py", line 72,
+in _select_saver
    raise ValueError(f"No enabled saver found that supports format={fmt!r}")
ValueError: No enabled saver found that supports format='vega'

This runs fine whenever I run the script as a user. I have added export DISPLAY=:0; before my script as noted here to no avail. I am calling altair_saver like so:
world_file    = f'{PWD}/data/world_covid.vg.json'
save(world, world_file)

I attempted installing the nodeJS packages which resulted in a malformed chart.

This was an issue with selenium, not altair_saver. If anyone else ends up on this issue, I solved it by setting up my crontab like so:
   SHELL=/bin/bash
   15 20 * * * PATH=$PATH:/usr/local/bin/:/usr/bin/:/usr/sbin/:/bin && export DISPLAY=:0 &&  /home/dhuck/altair_saver_script.sh

altair-saver wasn't able to detect that selenium and chromedriver are installed without having those inside the $PATH.

This is how altair_saver determines if selenium is available: https://github.com/altair-viz/altair_saver/blob/a4be53dad5df23d68f37f2bb9f0782ab79ef7c96/altair_saver/savers/_selenium.py#L99-L142
If this code raises an error, selenium is considered unavailable.

I'm getting the same error - (not running inside a crontab - running from a jupyter notebook being served by a docker container) - i just copied and pasted that code into a notebook and what i found is the same thing noted in this comment from SO - for whatever reason, the "--no-sandbox" option has to be the first argument given to the webdriver. If "--headless" comes before "--no-sandbox" then it doesnt work.
https://stackoverflow.com/questions/53073411/selenium-webdriverexceptionchrome-failed-to-start-crashed-as-google-chrome-is#comment102570662_53073789

That should be a pretty straightforward fix; the relevant code is here: https://github.com/altair-viz/altair_saver/blob/fd19a884e2b12c2635813c46ec909a93100d8f90/altair_saver/savers/_selenium.py#L128-L135
Can you check whether rearranging those statements fixes the issue?

I'm rearranging the order in #59

Hey - sorry for the delay in follow-up. I tested a bit more thoroughly and it seems that it was not the order of adding the options that was actually responsible for the problem in my case - it was the fact that the call to os.geteuid does not return 0 and so the flag is never added (i had stripped out the conditional block before).
Again, for context, this is being run from a Jupyter notebook being served from a Docker container. Hope that helps.

Can you help me understand why --no-sandbox is required in this case?


Document component descriptions/props

Adds short descriptions for each component/provider
Adds argTypes descriptions for components/providers

Currently branched off https://github.com/inrupt/solid-ui-react/pull/182

Looks good - just missing prop descriptions on LogoutButton.

Looks good - just missing prop descriptions on LogoutButton.

@ajacksified just fixed — apparently the description doesn't show unless I also set control: { type: null } 🤷♂

I've also added TableColumn docs in — annoyingly there doesn't seem to be a way to use the 'subcomponent' documentation and have customised argTypes for the subcomponent, so it's a separate story to Table, with a note saying go look at Table for the full examples.


Feature: upgrade apiserver-network-proxy to v0.0.15

Ⅰ. Describe what this PR does

upgrade the apiserver-network-proxy to the latest release version
use destHost proxy strategy by default

Ⅱ. Does this pull request fix one issue?
NONE
Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.
NONE
Ⅳ. Describe how to verify it
follow the yurt-tunnel tutorial
Ⅴ. Special notes for reviews
NONE

@charleszheng44 please fix the unit test error.

LGTM


Add support for insecure TLS connections to Connect Servers

Intent

This PR provides support for customer environments whose internal servers use self-signed SSL certificates, but for some reason, these certificates cannot be verified.
Resolves #2202
Type of Change

[ ] Bug Fix

[x] New Feature

[ ] Breaking Change

[ ] Documentation

[ ] Refactor

[ ] Tooling

Approach

There are two agent APIs involved in the flows effected (POST /test-credentials and POST /deployments/{target}). The test-credentials API endpoint already supported an insecure option within it's body. I have replicated this into the deployments/{target} endpoint. The insecure option is now required for both APIs.
The credential object on the agent already supports an insecure attribute but it is not persisted. There was already code within the agent that implemented the insecure TLS functionality if set. Since we were looking for a global setting to enable insecure TLS, the API endpoint handlers each take the parameter passed in their body and update the memory copy of the account's insecure setting they are using to connect to the server. This allows this flag to be changed and immediately go into effect for the next test or deployment.
On the extension/UX side, a configuration setting for the Posit Publisher has been defined Verify Certificates. You can access this setting within the settings UX for VSCode.

There is now an extensionSettings object which is exported out of the extension.ts source, which can be used to retrieve the value for validateCertificates (called as extensionSettings.validateCertificates()).
To present this configuration option to the user and have them understand enabling vs disabling, it was decided that we would flip the option to represent enabling the verification of TLS certificates vs. enabling the insecure option of skipping verification of TLS certificates. Since the agent codebase extensively uses the option "insecure", the use of this setting within the code requires flipping its value to convert between insecure vs. validate certificates. I've added comments at each location we use it for the future. I thought about providing another method call within
As the appropriate API calls are made within the extension, they simply call the new method within the API client to retrieve the current value. Since there is no caching, the user should see the effect of a change immediately as long as the code retrieves this value at the last possible moment.
There are two scenarios in which you can see the effect of this PR.
The first is when creating a new credential. If validation of the server URL errors with a credential error, this error message is displayed with a link to the new configuration setting:

If the user clicks on the link within the error message, the multi-stepper stays open and the setting is made visible. They can alter this setting and then simply hit return within the multi-stepper to continue without TLS verification.

If verification is successful, then the next step for the multi-stepper is shown as expected.
Once a user has the credential established, then deployment attempts will use the current setting value from the configuration.
If a user changes this setting back to disabled after it was required to be enabled to create credentials, then they will see a deployment error. Currently, it is shown as follows (although there is a triage item to be evaluated to improve this message/functionality).

Automated Tests

Automated tests have been updated on the agent. The area in which the functionality has been implemented is within the extension framework, which will require integration tests to be written for it.
Directions for Reviewers

To setup a connect server which fails TLS certificate validation:

Within the connect repo's ssl directory, run just certificates
It will create an alwayssecure.rsc.crt file which you can open and add it to your keychain.
Start with setting this certificate to Trust Always
Update your etc/hosts file to include a definition of alwayssecure.rsc to be <IP_ADDRESS>
From the root directory of the connect repo, run just start
Use a browser to connect to https://alwayssecure.rsc:3443/, and you should be able to access the Connect dashboard without issue.
Change the certificate to Never Trust within the keychain
You'll need to open a new browser instance or window, but then attempt to connect to the connect server once again. You should see the warnings or stop pages for an insecure setting. Chrome will allow you bypass it, but Safari stops you cold (at least with my system settings).

Now you can create a credential within the publisher extension and verify the new functionality. Be sure to:

Create a credential to a different server than alwayssecure.rsc, to confirm regression
Create a credential to alwayssecure.rsc when it is not trusted. Validate the error is encountered during the new Credential flow, and confirm the link brings up the settings page. Enable the option and then press return on the multi-stepper, and it should proceed forward to the API key input. Complete the credential creation.
With a credential in place, try deploying a project with the insecure TLS option still enabled. It should deploy successfully.
Change the insecure TLS option to be disabled and try deploying once again. It should fail with the error displayed.

NOTE: if you have any issues with recreating an insecure server, check with either Bill or Kevin (who have set this up). Bill was unable to use YETI to do this, so you will need to use the direct starting of a server within the connect repo.
Checklist

[ ] I have updated CHANGELOG.md to cover notable changes.

Requested changes pushed up in the latest commit.


pls implement self-update cmd

to streamline the update-process, it would be great to have a "self-update" command.
recently a lot of developers started to implement a update-cmd for their binaries, like i.e. minio-cli, restic, resticprofile, …
that boils down update-procedure of the not packaged/auto-updated binary to one line in cron:
5 5 * * 6 root  mcli update
6 5 * * 6 root  restic self-update
7 5 * * 6 root  resticprofile self-update
simple & effective. works very well

ok. Seems this can be implemented following https://github.com/restic/restic/tree/46d08d94040f581df7bbf5eacca69434ba80a79e/internal/selfupdate
PR is welcome!

good. unfortunately, I'm not a dev.
hopefully, some dev like the idea and go for it.

ok. Seems this can be implemented following https://github.com/restic/restic/tree/46d08d94040f581df7bbf5eacca69434ba80a79e/internal/selfupdate
PR is welcome!

Maybe I would try to implement this feature.


Cannot find module './utils/polyfill'

Guidelines

Please include a demo of the issue/behavior/question you have

Please try to be as detailed as possible

You may fork one of the following starter templates if you would like:

CodeSandbox

StackBlitz

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Cannot reproduce please provide a demo of the issue. Also, try to upgrade to v4.3.0.


dropdown selector functionality - part way there

Working towards #140. This is not totally perfect (there are some resetting behaviors that still need work).
What this does:

Populates the states into the view drop down on load.
When the view is changed to a state, the counties are added to the county drop down and the zoom goes to that state.
When the view is changed back to United States - Water Use, the view is changed back to national.
When a county is selected in the drop, the county and appropriate circle are highlighted.
When the view changes, the highlighted county/circle are reset.
The "zoom out" button does not appear on load.
The zoom out button is hidden when the view selector changes to national view and appears when view selector changes to a state.

What this still needs (hoping all but maybe the first one can just come in a different PR):

Remove current counties when view changes rather than just appending (tried but can't get that darn ENTER-UPDATE-EXIT stuff down).
Reset what is shown in the county dropdown when you switch states, should go back to --Select County --.
Hook up to the solution for showing values in the category selector (#139)

Things we could do:

Sleeker zoom out button & better way to indicate it is active or inactive (maybe just greyed out)
Some way to skip all of it if we are on mobile?
On mobile only, someone can click a state and zoom to that view, then click a county and highlight/get details. They need to use "zoom out" to get back to everything else?

Looking cool!
Some of your comments are "on mobile" like "Some way to skip all of it if we are on mobile?", but isn't this PR for mobile only? a la #89 ?

@jread-usgs well that's just the issue I am having. All of my code will still affect the dropdown divs, but the only way you can actually see them is on mobile thanks to https://github.com/USGS-VIZLAB/water-use-15/blob/master/layout/css/custom.css#L193-L195. I'm not sure how to detect if we are in a mobile-sized window within the d3 code to use that to skip these functions.

https://www.w3schools.com/howto/howto_js_media_queries.asp might be helpful?

how to detect if we are in a mobile-sized window within the d3 code to use that to skip these functions - see my comment above about the function i'm working on. let's wait on that until i can get my PR in (about legends/category selects/buttons), because I think I can help.
In my PR I'm currently using window width as the way to decide whether to show buttons on the left or the bottom. I thought about looking specifically for mobile vs desktop but then figured we'd want the buttons to move when the screen is narrow regardless of whether it's mobile or desktop. Open to opinions on that, and on whether we should use different rules for legend placement vs dropdowns. Either way, I think a call to window.matchMedia within the resize function I'm working on would be fine to include.

OK, worked on some of the suggested things. Here's what it's like to hide and resize when at national vs state views. Personally, the zooming into a state view seems fine, but zooming out seems choppy and weird to just have those things appear. Wondering how we make it smoother.

One more thing - could you sort the county names alphabetically?


[Feature]: Persistent server logs

Is your feature request related to a problem? Please describe.
The server logs in Hub Admin are a real time stream of the application. It would be great if these are persistent and queryable for future reference. Tried to track down an issue that occured last night, and was not able to do that.
Describe the solution you'd like
Logs need to be stored somewhere. Ideally this could be an R2 as mentioned here. But I also noticed Logpush is only available on enterprise plans, so that's not happening.. But maybe I'm miossing something here, and there are other solutions!

We plan to support them once we move to Workeds instead of Pages. Thanks for creating the issue to keep track of it!


Plugablitity - NoSQLs

Decide if we can support NoSQLs too.. ideally, we should be able to..
In order to support millions of customers, the product should be customizable for different no databases which exist currently and which may come up in the future.
However, we can define a few popular NoSQLs as a priority and get to fix the pluggability issues in the current architecture

By Design we need SQL Support. So closing this


After most recent Spotify update app no longer works.

After Spotify updated to <IP_ADDRESS>.gad02a02e the app no longer works, I think it's something with the webhelper, maybe just different ports but I'm not sure.

I'm investigating this issue right now. It seems like they're just forcing HTTPS on their local server.

This issue doesn't seem to be present on v0.0.5. Any more info on your current environment?

Correction, it seems like some of the ports did become dynamic. I have written a fix for v0.0.6.

Just gave the new update a try the windows zip works on windows 10. Thank you.
The other thing instead of separating the artist and album name with " - " you might want to do it in js with "artist + ' ' + '-' + ' ' + album;" that way the - doesn't show up on the waiting for spotify and connecting to spotify screen before the artist and album name have loaded, but that's just nitpicking.

I can certainly hide the separator while Spotispy is still connecting, but since this issue is solved I will go ahead and close it.


TAJO-2019: Replace manual array copy with System.arraycopy()

Manual copying of array contents can be replaced by calls to System.arraycopy(). It makes code line lighten.

+1 LGTM.


Add nix way in readme

I have completed the implementation of the antidote configuration option for home-manager, making it easy to manage the list of antidote plugins through home.nix.
prs
https://github.com/nix-community/home-manager/pull/4027
https://github.com/nix-community/home-manager/pull/4172

Wow! Thanks so much for this. Cheers!


Request: support custom timeout in stop_trace/2

I was getting timeout errors after the function passed to apply/2 was finished. Turned out I needed to increase the timeout in stop_trace/2. It would be nice if it could be customized by the user.
The generated stacks.out file in my case was 81 MB. Admittedly, the resulting flame graph is noisy enough that it's difficult to drill in, but the high-level picture is still somewhat insightful. The noise and large file size are due in part to me testing a recursive algorithm.

I would really love this feature as well

Would anyone like to add this feature in a PR? I assume this implies exporting one more function — apply/6 or smth like that.

I took a stab at this, but I'm not sure if it is idiomatic Erlang.
https://github.com/proger/eflame/pull/15


[Question] How to get progress from advancedmedia?

I am opening multiple video files for processing via openAdvanced()
Here's some sample code:
$ffmpeg = FFMpeg::create();
$format = new X264;
$format->setAudioCodec("aac");

$video = $ffmpeg
    ->openAdvanced([$input1, $input2]);

$video
    ->filters()
    ->custom('[0:v][1:v]', $filter, '[out]');

// listener
$format->on('progress', function ($video, $format, $percentage) {
    echo $percentage;
});

$video
     ->map(['[out]', '1:a'], $format, $fileName)
     ->save();

The progress event does not work in this case.
I can see from the code that the data for this event is hardcoded in AdvancedMedia.
But maybe there are some options to get a percentage of progress? Maybe I didn't see something ...

ProgressListener only works fine with single input, single file, because the listener calculates the progress from the current size of the file.
If you have multiple complicated inputs, ffmpeg just doesn't provide any possibilities to calculate progress accurate.
So, AdvancedMedia set standard progress listener for the first input, but it is not accurate.


Extract markdownit module

Extract markdownit module :

[x] new url : https://github.com/Geminii/markdownit-module
[x] add documentation single layout
[x] add test on the module

Module is already extracted into nuxt-community/markdownit-module (preserving previous contributions. Would you please open a PR to update repo? (the ones here should be eventually removed)

Module is already extracted into nuxt-community/markdownit-module (preserving previous contributions. Would you please open a PR to update repo? (the ones here should be eventually removed)

Module is already extracted into nuxt-community/markdownit-module (preserving previous contributions). Would you please open a PR to update repo? (the ones here should be eventually removed)

You're right, I didn't see that it already existed because I could have proposed a PR directly in this repo.
Thanks to point it. I will update this issue and associate a PR.

Module is already extracted into nuxt-community/markdownit-module (preserving previous contributions). Would you please open a PR to update repo? (the ones here should be eventually removed)

You're right, I didn't see that it already existed because I could have proposed a PR directly in this repo.
Thanks to point it. I will update this issue and associate a PR.


Breaking down Components to other Components

Description
Salvaging components by breaking them down into other components.

Implemented in 0.8.0


Added the "alexa_sequence" service to start flashbriefing via HA

@lubeda thanks for contributing this. As we are doing a platform rewrite, I went ahead and implemented this in the my dev build. I also managed to implement it using the play_media service that already exists. I'll be documenting this in the next day or so in the wiki after further testing.


Remove Velero-plugin-for-csi from operator csv (#1407)

Why the changes were made

Cherry-Pick of https://github.com/openshift/oadp-operator/pull/1407
How to test the changes made

/override ci/prow/4.12-e2e-test-aws
restore succeeds, but application not working flake


No devices in the routine speak

Hello,
all seems to work fine, but in the DEVICES fiels, I can see only THIS DEVICE, instead of all Alexa devices.
Looking at the logs, I can see: failed to load routines: failed to load smarthome devices: "{"success":true}"
Thanks a lot for any help,
Enrico

I'm getting this too. Im trying to get the event node to work and this is the only debug message I receive


how to add animationFunction and animationStyle as props to component

Did you even look at the code? There's a defaultProps object. It has this:
animationStyle: value => ({
    transform: [{
      translateX: value,
    }],
}),
animationFunction: (prop, value) => Animated.spring(prop, {
    toValue: value,
    friction: 8,
}),

Srly... just have a quick look at the source next time.


metrics.transactionMetrics.last?.resourceFetchType returns network instead of cache, but the first transactionMetrics have localCache

Hi,
The CachedImageSync is playing animation even if the image comes from cache.
After debugging I have metrics.transactionMetrics.count equal 2 and it returns resourceFetchType = .localCache in the first object, not the last one.
Do you have this as well or it's just me?
Thanks!

After some investigations it comes from the default cache policies (which will return 2 transactions in some case, the first one is the cached one according to apple).
I opened a PR for this issue:
https://github.com/lorenzofiamingo/swiftui-cached-async-image/pull/25

I am not 100% sure but I think this is not the right fix. The reason why there are two values is that first the image was loaded from cache but was stale (expired) which is why the new data was fetched from the network resulting in two transaction values. In this case the animation should run, no?


missing "view the api" on new spaces

Describe the bug
Previously, when a new space was created, instructions for accessing the model via API were generated, and a link to this page called "view the API" appeared at the bottom of the app page. This doesn't seem to be the case currently.
According to this post https://discuss.huggingface.co/t/gradio-iframe-embedding/13021/12?u=summerstay the SDK version needs to be pinned to 2.9.4 for this to show up. I don't know how to do that on my space.
Reproduction
create a minimal new gradio space with this app.py
`import gradio as gr
from sentence_transformers import SentenceTransformer
model_Q = SentenceTransformer('flax-sentence-embeddings/multi-QA_v1-mpnet-asymmetric-Q')
def getVectors(sentences):
vectors = []
splitSentences = sentences.split('/*/')
for sentence in sentences:
vectors.append(model_Q.encode(sentence))
return vectors
interface = gr.Interface(fn = getVectors,
inputs = "text",
outputs = ['text'],
title = 'get vectors',
description = 'get vectors for search')
interface.launch(inline = False)
`
Logs
No response
System Info
Using the https://huggingface.co/spaces/ website from Chrome on Windows.

But the API still seems to work properly when I follow analogous instructions from another page.

Hey there! This is an issue with Gradio 3.0, so what you might see are Spaces using older and newer versions. I would suggest you to follow-up in Gradio since this is unrelated to the huggingface_hub library. See https://github.com/gradio-app/gradio/issues/1390


Commands /otg biome -m or -d do not work on spigot and -s acts weirdly.

OTG Plugin or Mod

[X] OTG Plugin for Spigot

OTG Version

[X] Other - 1.12.2 V9 R9

Forge or Spigot Versions
Spigot 1.12.2 R0.1 (git-spigot-dcd1643-e60fc34)
What other plugins are you running?
Development branch Dregora
Description
Both /otg biome -m as -d result in the output of /otg biome as shown below

/otg biome -s results in two outputs:

/otg biome -f behaves as expected.

Issue was already posted before: https://github.com/PG85/OpenTerrainGenerator/issues/451
My bad!


WIP: Feature/oscp validate against other ca url

Added support validate ocsp against other certificate authorities.
This should make it possible to check if a certificate is valid given a specific certificate authorities ocsp address has been provided.

XML changes are because of me using mvn release:update-versions


Improve documentation site

move documentation out of the repo's README to /docs Readme should link to the website instead.
improve the structure to be as following

Getting started

What is Puppeteer?
Installation (cover install and configuration)
System requirements (mention Node/TS version by Puppeteer and hardware requirements by browsers)
First script

Core concepts

Browser Management
Page Interaction
JavaScript Execution
Network Control

Advanced Topics

Debugging
Interception
Headless mode
Screenshots and PDFs
Cookies
File uploads and downloads

Browser support
WebDriver BiDi support
Community

Contributing
Troubleshooting
Links

cc @Lightning00Blade @matthiasrohmer

Hello Alex,
May I work on this? Also, I am not sure about how the first part is supposed to be done:

move documentation out of the repo's README to /docs Readme should link to the website instead.


Only reference logfile when log level > info

This avois duplication entries like in this sample.
Last login: Sun Sep 29 15:50:41 2024 from <IP_ADDRESS>

INFO: BOOTSTRAP COMPLETE

Review the progress in /var/log/install-cloud-in-a-box.log
INFO: DEPLOYMENT COMPLETED SUCCESSFULLY

Review the progress in /var/log/install-cloud-in-a-box.log

I think the duplicate entries are because the backups are made every time add_status is executed.
How would that be?
$ git diff
diff --git a/include.sh b/include.sh
index 7551f44..9b8f63f 100644
--- a/include.sh
+++ b/include.sh
@@ -96,12 +96,13 @@ add_status(){
        text="$text\n\nReview $BOOTSTRAP_LOGFILE to analyze what went wrong"
    fi

-   sudo cp /etc/issue.net /etc/.issue.net.backup
-   sudo cp /etc/issue /etc/.issue.backup
-   sudo touch /etc/motd
-   sudo cp /etc/motd /etc/.motd.backup
+   for file_status in /etc/issue.net /etc/issue /etc/motd; do
+      if [ -e "$file_status" ];then
+         sudo cp "$file_status" "${file_status}.backup"
+      else
+         sudo touch "${file_status}.backup"
+      fi
+      (cat "${file_status}.backup"; echo -e "$text") | sudo tee $file_status >/dev/null
+   done

-   (cat /etc/.issue.net.backup; echo -e "$text") | sudo tee /etc/issue.net >/dev/null
-   (cat /etc/.issue.backup ; echo -e "$text") | sudo tee /etc/issue
-   (cat /etc/.motd.backup ; echo -e "$text") | sudo tee /etc/motd
 }


Replace firewalled git protocol with ssh in installer script

In our organization, most destination ports are blocked for outgoing connections by the central firewall. That includes git protocol. This is likely the case for many other companies.
When running the installation of the dev version -u development, the step that git-clones BCbio code fails with timeout. Replacing the URL with the one based on https protocol works fine. HTTPS is usually opened everywhere.
https://github.com/bcbio/bcbio-nextgen/blob/6425cd368115133b9dbc2baf1350cd687c98ecef/scripts/bcbio_nextgen_install.py#L26

Andrey;
Thanks much for the report and fix. It looks like Rory included a fix for this here:
https://github.com/bcbio/bcbio-nextgen/commit/5fde7ed5c581705a672a777e762f8592699dc823#diff-0fbc5ca64bdacca541df9d00ac73ce5bR26
so if you get the latest hopefully it will work cleanly in your environment. Let us know if you hit any other firewall issues and thanks again.


[Feature Request] Maintain devbox package update on Nix repository

Current Behavior
The  devbox package on Nix repository is old (0.1.0) and looks like not actively maintained.
Expected Behavior
Be able to install and update devbox using Nix.

It looks like this is up to date on unstable, and in the beta for the new release (https://search.nixos.org/packages?channel=23.05&show=devbox&from=0&size=50&sort=relevance&type=packages&query=devbox).
We probably need to ensure that new versions get pulled into Stable releases where possible

I'm running NixOS 23.05 and have run up against the binary wrapping issue that has recently been fixed (e.g., iex -S mix doesn't currently work for me), so it would be great if I could update to latest Devbox.
I believe it is possible to use individual packages from unstable when otherwise running stable NixOS, but obviously that's not as straightforward for novice NixOS users like me. :)


feat(model-server): add endpoint /about

Show the server version in the endpoint.
Link to the endpoint in the title bar.

What's the state of this PR?

What's the state of this PR?

This comment is valid and open.
I did not work on this PR because it has a low priority in comparison to other tasks I am working on.

:tada: This PR is included in version 8.15.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[Autocomplete] Not refreshing options (used with async calls)

[ x] The issue is present in the latest release.
[ x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
Hello,
i'm implementing one autocomplete that call async function to retrive places in the world.
actually when i write a specific address ( ex. " viale dezza, melegnano" )
the api returns a single option ( https://nominatim.openstreetmap.org/search?format=json&addressdetails=1&polygon_svg=1&namedetails=1&q=viale dezza, melegnano )
and the state is updated, but the options inside the autocomplete select are not updated.
Expected Behavior 🤔
when i write a specific address i would like to see the only one option that the api return
Steps to Reproduce 🕹
----- > : https://codesandbox.io/s/recursing-night-m529o
Steps:

click inside the autocomplete
open console
write "Viale dezza, melegnano"

Context 🔦
autocomplete with react leflet etc.

@diimii Thank you for the feedback. It's the second time I see somebody facing this problem. I think that we could improve the documentation on this matter. Basically, you need to disable the built-in filter: filterOptions={x => x}.
What do you think of the following diff? I wonder how we could better document this point 🤔
diff --git a/docs/src/pages/components/autocomplete/GoogleMaps.tsx b/docs/src/pages/components/autocomplete/GoogleMaps.tsx
index 7937bc834..a90c467b1 100644
--- a/docs/src/pages/components/autocomplete/GoogleMaps.tsx
+++ b/docs/src/pages/components/autocomplete/GoogleMaps.tsx
@@ -43,6 +43,10 @@ interface PlaceType {
   };
 }

+const fetch = throttle((request: { input: string }, callback: (results?: PlaceType[]) => void) => {
+  (autocompleteService.current as any).getPlacePredictions(request, callback);
+}, 200);
+
 export default function GoogleMaps() {
   const classes = useStyles();
   const [inputValue, setInputValue] = React.useState('');
@@ -65,14 +69,6 @@ export default function GoogleMaps() {
     setInputValue(event.target.value);
   };

-  const fetch = React.useMemo(
-    () =>
-      throttle((request: { input: string }, callback: (results?: PlaceType[]) => void) => {
-        (autocompleteService.current as any).getPlacePredictions(request, callback);
-      }, 200),
-    [],
-  );
-
   React.useEffect(() => {
     let active = true;

@@ -97,7 +93,7 @@ export default function GoogleMaps() {
     return () => {
       active = false;
     };
-  }, [inputValue, fetch]);
+  }, [inputValue]);

   return (
     <Autocomplete
diff --git a/docs/src/pages/components/autocomplete/autocomplete.md b/docs/src/pages/components/autocomplete/autocomplete.md
index 3a1a2042c..3cfaf6e37 100644
--- a/docs/src/pages/components/autocomplete/autocomplete.md
+++ b/docs/src/pages/components/autocomplete/autocomplete.md
@@ -82,11 +82,21 @@ Head to the [Customized Autocomplete](#customized-autocomplete) section for a cu

 ## Asynchronous requests

+The component supports two different asynchronous use-cases.
+
+- [Load on open](#load-on-open): it waits for the component to be interacted with to load the options.
+- [Search as you type](#search-as-you-type): a new request is made for each keystroke.
+
+### Load on open
+
+It displays a progress state as long as the network request is pending.
+
 {{"demo": "pages/components/autocomplete/Asynchronous.js"}}

-### Google Maps place
+### Search as you type

 A customized UI for Google Maps Places Autocomplete.
+It's important to throttle the requests as well as disable the built-in filtering with `filterOptions={x => x}`.

 {{"demo": "pages/components/autocomplete/GoogleMaps.js"}}

@diimii When the options are filtered on the server you should disable the built-in filtering of Autocomplete. Pass an identity function to filterOptions prop, like below:
filterOptions={x => x}

The Google Maps demo implements an async call.

@oliviertassinari Can I submit this pull request if @diimii doesn't want to?

@igorbrasileiro Definitely :)

@igorbrasileiro Hi, I wanted to talk about Autocomplete with you and can't find a contact anywhere. If you mind, could you please send me an email ?

this could be useful
                  `<Autocomplete
                            fullWidth
                            id="combo-box-demo"
                            options={top100Films}
                            getOptionLabel={(option) => option.title}
                            //setDataSend = my state ( const [ dataSend, setDataSend] = useState({}) )
                            onChange={(e,v) => setDataSend({exampleName : v})}
                            renderInput={(params) =>
                                <TextField
                                    {...params}
                                    label="exampleName"
                                    variant="outlined"
                                    size="small"
                                    required
                                    name="exampleName"
                                    />
                            }
                        />`

I think we have something similar in this gist https://gist.github.com/sibelius/9b89371f2b846dcdb8bed3165ac372c3
it is an Autocomplete that integrates with Relay (graphql client to consume async data)
We have a connection of items (similar to array), we want to lazy load them when the user reaches the end of the dropdown
our problem is that the loadMoreItems of react-window-infinite-loader is only called once
we also need to refetch items when user search some of them
this component could be a lazy list of users, a lazy list of products

I still think this could use some clarification in the docs. I was losing my mind trying to figure out why on earth it wouldn't display my options once it got down to a seemingly low number of returned options.
What is the purpose of the option filter and why would it only be filtering sometimes? It seems that if my returned option list drops down to 3 or fewer options it stops displaying options unless I override this filter ...

Hi, I was losing my mind trying to figure out why certain options, retrieved through asynchronous requests, were not rendered.
In order to solve the issue, as suggested by @oliviertassinari, I had to set filterOptions property. This is strange and unintuitive.
I'm using<EMAIL_ADDRESS>+<EMAIL_ADDRESS>

@maurosbu We covered it in v5: https://next.material-ui.com/components/autocomplete/#search-as-you-type.

@oliviertassinari Many thanks! It would also be useful to have an example for this use case (with requests throttling).

@maurosbu True, https://next.material-ui.com/components/autocomplete/#google-maps-place was meant to cover it all.

@oliviertassinari many thanks for your help and for such a great framework.

@oliviertassinari filterOptions={x => x} saved my afternoon!

I'm using the filterOptions to add two All options (All Internal && All Agencies). Disabling the built-in filter will remove these All options. Any suggestion?
filterOptions ={(options, params) => {
        if (items.length > 0) {
          const filtered = filter(options, params);
          const ret:IBusinessUnit[] = [
            {
              name: `All ${BU_FILTER_KEYS.internalKey} (${internalItems.length})`,
              value: BU_FILTER_KEYS.internalLabel,
              category: '',
              id: 0,
              short_name: '',
              service_company_branch_id: '',
              firstLetter: '',
            }];
          if (agencyItems.length > 0) {
            ret.push({
              name: `All ${BU_FILTER_KEYS.externalKey} (${agencyItems.length})`,
              value: BU_FILTER_KEYS.externalLabel,
              category: '',
              id: 0,
              short_name: '',
              service_company_branch_id: '',
              firstLetter: '',
            });
            ret.push(...filtered);
          }
          return ret;
        }
        const filtered = filter(options, params);
        return [...filtered];
      }}


DO NOT MERGE: See if the bench-bot is working for forks

/benchmark runtime pallet pallet_balances

/benchmark runtime pallet pallet_balances

/bench runtime pallet

/bench runtime pallet

/bench runtime pallet

/bench runtime pallet pallet_balances

/bench runtime pallet pallet_balances

/bench runtime pallet pallet_balances


Unable to run tests

I forked the repo today and figured I would like to get to know the code since we are evaluating if we might want to use this gem.
How ever I am unable to get the tests to run. I get the following error when I run bundle exec rake test:
active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `enum' for #<Class:0x007f8dec28bfa0> (NoMethodError)
	from /Users/Albin/Kod/acts_as_list/test/test_list.rb:80:in `<class:EnumArrayScopeListMixin>'
	from /Users/Albin/Kod/acts_as_list/test/test_list.rb:78:in `<top (required)>'
	from /Users/Albin/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/rake_test_loader.rb:10:in `require'
	from /Users/Albin/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/rake_test_loader.rb:10:in `block (2 levels) in <main>'
	from /Users/Albin/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/rake_test_loader.rb:9:in `each'
	from /Users/Albin/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/rake_test_loader.rb:9:in `block in <main>'
	from /Users/Albin/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/rake_test_loader.rb:4:in `select'
	from /Users/Albin/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rake/rake_test_loader.rb:4:in `<main>'

Does any one recognise this?
So far I tried it with ruby 1.9.3, 2.1 and 2.2 and all have yielded the same output.
My debugging up to this point.

The error occurs in test_list.rb when trying to create the class EnumArrayScopeListMixin < Mixin.
I have established that the tests think Im running rails 4 (which I am)
The class where the error is thrown inherits from ActiveRecord::Base via Mixin

Is there any more information that might be help full if I provided?
I don't have much experience with minitest so it might be something super obvious I am missing.

Found out what the problem was. I was running activerecord-4.0.13. enum was defined in rails 4.1
Should I leave this open?

@Albin-Willman Yeah, this has been a known issue with the test-suite, I am okay to let it depend on 4.1.


Accessibility Cleanup

Fixes Issue
Fixes the remaining issues in #2382
Changes proposed
Increase contrast ratio for footer links
Add labels to profile social links
Fix profile contrast
Fix docs link contrast
Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[ ] My change requires changes to the documentation.
[ ] I have updated the documentation accordingly.
[x] All new and existing tests passed.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

Would it be possible to add a screenshot for the before and after?

Footer - Before

Footer - After

Profile - Before

Profile - After

Docs - Before

Docs - After


Change sync message

Print out the block height during sync.
Needs to be tuned in the case of sync completion.

these are improvements, however what is happening at zingolib/src/lightclient/tests.rs? surely that's a generated file so you didn't repeat yourself?

Superceded by #258 and #259


[Moor generator 3.1.0] The getter 'languageVersionMajor' isn't defined for the class 'LibraryElement'

I got these errors when trying to run:
flutter packages pub run build_runner build
I am using moor 3.0.0, moor_ffi 0.6.0 and moor generator 3.1.0

[INFO] Generating build script...
[INFO] Generating build script completed, took 389ms
[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 7.2s
[SEVERE] Failed to snapshot build script .dart_tool/build/entrypoint/build.dart.
This is likely caused by a misconfigured builder definition.
[SEVERE] /C:/flutter/.pub-cache/hosted/pub.dartlang.org/moor_generator-3.1.0/lib/src/backends/build/generators/moor_generator.dart:42:37: Error: The getter 'languageVersionMajor' isn't defined for the class 'LibraryElement'. - 'LibraryElement' is from 'package:analyzer/dart/element/element.dart' ('/C:/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-0.39.4/lib/dart/element/element.dart').Try correcting the name to the name of an existing getter, or defining a getter or field named 'languageVersionMajor'.      final major = library.element.languageVersionMajor;                                    ^^^^^^^^^^^^^^^^^^^^/C:/flutter/.pub-cache/hosted/pub.dartlang.org/moor_generator-3.1.0/lib/src/backends/build/generators/moor_generator.dart:43:37: Error: The getter 'languageVersionMinor' isn't defined for the class 'LibraryElement'. - 'LibraryElement' is from 'package:analyzer/dart/element/element.dart' ('/C:/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-0.39.4/lib/dart/element/element.dart').Try correcting the name to the name of an existing getter, or
defining a getter or field named 'languageVersionMinor'.      final minor = library.element.languageVersionMinor;

This is fixed in develop. You can try running flutter pub upgrade to get around this or setting analyzer: ^0.39.5 as dev_dependency.
See https://github.com/simolus3/moor/pull/589

Yes, adding an explicit analyzer bound (or mostly just running flutter packages upgrade) should fix this.
The next moor_generator version will declare the proper dependency (thanks to @kuhnroyal).


ARROW-16262: [CI][Integration] Skip failing tests from kartothek integration

As discussed on https://github.com/apache/arrow/pull/12902#issuecomment-1102750381 there is an issue on the Kartothek integration https://github.com/JDASoftwareGroup/kartothek/issues/515
This PR aims to skip the failing tests.

@github-actions crossbow submit test-conda-python-3.7-kartothek-latest

The list of failed tests previous to the PR:
=========================== short test summary info ============================
FAILED tests/io/dask/bag/test_read.py::test_datetime_predicate_with_dates_as_object[4-dataframe-==-date-partition_on0]
FAILED tests/io/dask/bag/test_read.py::test_datetime_predicate_with_dates_as_object[4-dataframe->=-date-partition_on0]
FAILED tests/io/dask/bag/test_read.py::test_datetime_predicate_with_dates_as_object[4-metapartition-==-date-partition_on0]
FAILED tests/io/dask/bag/test_read.py::test_datetime_predicate_with_dates_as_object[4-metapartition->=-date-partition_on0]
FAILED tests/io/dask/dataframe/test_read.py::test_datetime_predicate_with_dates_as_object[4-==-date-partition_on0]
FAILED tests/io/dask/dataframe/test_read.py::test_datetime_predicate_with_dates_as_object[4->=-date-partition_on0]
FAILED tests/io/dask/delayed/test_read.py::test_datetime_predicate_with_dates_as_object[4-dataframe-==-date-partition_on0]
FAILED tests/io/dask/delayed/test_read.py::test_datetime_predicate_with_dates_as_object[4-dataframe->=-date-partition_on0]
FAILED tests/io/dask/delayed/test_read.py::test_datetime_predicate_with_dates_as_object[4-metapartition-==-date-partition_on0]
FAILED tests/io/dask/delayed/test_read.py::test_datetime_predicate_with_dates_as_object[4-metapartition->=-date-partition_on0]
FAILED tests/io/dask/delayed/test_read.py::test_datetime_predicate_with_dates_as_object[4-table-==-date-partition_on0]
FAILED tests/io/dask/delayed/test_read.py::test_datetime_predicate_with_dates_as_object[4-table->=-date-partition_on0]
FAILED tests/io/eager/test_read.py::test_datetime_predicate_with_dates_as_object[4-dataframe-==-date-partition_on0]
FAILED tests/io/eager/test_read.py::test_datetime_predicate_with_dates_as_object[4-dataframe->=-date-partition_on0]
FAILED tests/io/eager/test_read.py::test_datetime_predicate_with_dates_as_object[4-metapartition-==-date-partition_on0]
FAILED tests/io/eager/test_read.py::test_datetime_predicate_with_dates_as_object[4-metapartition->=-date-partition_on0]
FAILED tests/io/eager/test_read.py::test_datetime_predicate_with_dates_as_object[4-table-==-date-partition_on0]
FAILED tests/io/eager/test_read.py::test_datetime_predicate_with_dates_as_object[4-table->=-date-partition_on0]
FAILED tests/io/iter/test_read.py::test_datetime_predicate_with_dates_as_object[4-dataframe-==-date-partition_on0]
FAILED tests/io/iter/test_read.py::test_datetime_predicate_with_dates_as_object[4-dataframe->=-date-partition_on0]
FAILED tests/io/iter/test_read.py::test_datetime_predicate_with_dates_as_object[4-metapartition-==-date-partition_on0]
FAILED tests/io/iter/test_read.py::test_datetime_predicate_with_dates_as_object[4-metapartition->=-date-partition_on0]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser0-df3-read_kwargs3]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser0-df4-read_kwargs4]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser1-df3-read_kwargs3]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser1-df4-read_kwargs4]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser2-df3-read_kwargs3]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser2-df4-read_kwargs4]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser3-df3-read_kwargs3]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser3-df4-read_kwargs4]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser6-df3-read_kwargs3]
FAILED tests/serialization/test_dataframe.py::test_predicate_pushdown[True-serialiser6-df4-read_kwargs4]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[1-input_values0-date]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[1-input_values1-date]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[1-input_values2-date]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[5-input_values0-date]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[5-input_values1-date]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[5-input_values2-date]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[None-input_values0-date]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[None-input_values1-date]
FAILED tests/serialization/test_parquet.py::test_predicate_evaluation_date[None-input_values2-date]
FAILED tests/serialization/test_parquet.py::test_date_as_object[None] - TypeE...
FAILED tests/serialization/test_parquet.py::test_date_as_object[1] - TypeErro...
= 43 failed, 5243 passed, 416 skipped, 1 deselected, 41 xfailed, 1 xpassed, 72895 warnings in 1067.10s (0:17:47) =

I have just validated locally while the CI gets available jobs:
$ time docker-compose run --rm conda-python-kartothek
...
tests/utils/test_ktk_adapters.py::test_get_partition_dataframe[False-False]
tests/utils/test_ktk_adapters.py::test_get_partition_dataframe[False-True]
  /kartothek/tests/utils/test_ktk_adapters.py:165: DeprecatedWarning: load_partition_indices is deprecated as of 5.3 and will be removed in 6.0. The `load_partition_indices` keyword is deprecated and will be removed.
    ds = ds.load_partition_indices()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
===================== 4680 passed, 408 skipped, 615 deselected, 41 xfailed, 1 xpassed, 801777 warnings in 903.95s (0:15:03) ======================

real	18m33.827s
user	0m0.338s
sys	0m0.359s

@github-actions crossbow submit test-conda-python-3.7-kartothek-latest

@jorisvandenbossche even though we are skipping more tests than the ones that failed (as seen on the logs) I think this is better than fully removing the kartothek integration. There are some job failures but don't seem to be related to the change. Let me know how can I trigger a new run of the failed jobs if you think it's necessary.
I think this is ready for review.


added kubernetes_sd_configs parameter to values.yaml and configmap

Please provide a description for what this PR is for.
This PR allows users that install Istio via helm to limit Prometheus kubernetes service discovery specifying namespaces they want Prometheus scrapes from.
If no options are specified, the default behaviour would be the same as it is today (scapes all the metrics from annotated applications).
It solves issue https://github.com/istio/istio/issues/16968
And to help us figure out who should review this PR, please
put an X in all the areas that this PR affects.
[x] Configuration Infrastructure
[ ] Docs
[x] Installation
[ ] Networking
[ ] Performance and Scalability
[x] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Hi @cebernardi. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

If you want to customize I would recommend you use the Prometheus operator in the istio/installer repo.
The Prometheus install here is just meant to get people up and running with Istio, we cannot support every production use case

@howardjohn I see..
Unfortunately we're not in a position to introduce Prometheus operator any sooner and I really hoped the community saw a value in offering an option to "limit" Prometheus scraping to selected namespaces.
If this is not the case please feel free to close this PR.
Thank you all for your attention


[WIP] OS dependent shortcut keys

Don't merge.
Typescript help needed to make this less :hankey: . Currently method is copypasta'd to each view.

Ref #39

@willl suggested if we can get the keyboard combo from omnisharp-atom.cson keymap

Looks good to me.

:+1: Looks good to me too.
Just a note, I see that in the command palette code, they actually wrap .keystrokes in humanizeKeystroke(bindings.keystrokes).
You can see that code in action here: https://github.com/atom/command-palette/blob/51028abeb1bbb072b82fc9aaa6ecd1123abcf0f3/lib/command-palette-view.coffee#L58
Which is defined here: https://github.com/atom/underscore-plus/blob/2046d1562896761e3c38b7a647ac30b87b46ea20/src/underscore-plus.coffee#L179
`# Humanize the keystroke according to platform conventions. This method
attempts to mirror the text the given keystroke would have if displayed in
a system menu.`

Will have a look to see if lodash has something similar.

Think we should kill this, project auto starts now?

No longer needed!


I want to erase token when logout

I want to erase token when logout. but I do not know how to do it.
Is it a design policy that uses JWT_VERIFY_EXPIRATION to create and erase repeatedly, just pretend to log out and invalidate token after 5 minutes? I am sorry I do not understand.
Or can you implement logout in other ways?

help me!

Hi @kawasakikou,
the JWT token has an expiration time (issued + JWT_EXPIRATION_DELTA) and will be invalid after that time.
https://github.com/flavors/django-graphql-jwt/wiki/Token-expiration
There is no way to invalidate a token from server side before its expiration time, when user logouts simply remove token from local storage.

There is no way to invalidate a token from server side before its expiration time, when user logouts simply remove token from local storage.

Thank you @mongkok !!

when user logouts simply remove token from local storage.
When implementing Logout, how do I remove the local storage token?

I am implementing CreateUser, Login with reference to How to GraphQL
https://github.com/howtographql/howtographql/blob/master/content/backend/graphql-python/4-authentication.md