Not really a bug, but more a question

Hi,
I'm a flutter/dart newbie and last week I found out about your shoppinglist app on flutterawesome.com. I thought it was a fun and useful project so that on Monday I embarked into trying to understand your code and the architecture you've chosen.
I unzipped the file, installed it, and started to check it with AndroidStudio as an IDE connected to my mobile phone. I have installed pocketbase, which I have also been discovering... then for the past day and half I've been stuck at the login page and I was wondering if you would have any idea of what I did wrong.
From pocketbase, I've created a couple of users and collection named shoppinglist which I fed with a few articles. Navigating with pocketbase, these are associated with the following url :
http://<IP_ADDRESS>:8090/_/#/collections?collectionId=_pb_users_auth_&filter=&sort=-created
and
http://<IP_ADDRESS>:8090/_/#/collections?collectionId=3mv593ieqawcouz&filter=&sort=-created.
However, when, from the IDE, I run the app on my phone I cannot pass the login page. The error I get is
ClientException: {url: http://localhost:8090/api/collections/users/auth-with-password, isAbort: true, statusCode: 0, response: {}, originalError: ClientException with SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = localhost, port = 41496, uri=http://localhost:8090/api/collections/users/auth-with-password}
The port number varies, but the rest of the error message is unchanged. I have not found error number list on Pocketbase so that I cannot fully identify errno = 111, while "Connection refused" is rather broad. The app login requests do reach pocket_base_prov.dart/login method but
final authData = await _pb.collection('users').authWithPassword(email, password);
does not seem to fill the variable, if I trust a set of debugPrint(); positioned before and after the corresponding line.
I guess I did not set the communication between pocketbase and the app properly. At the same time installing pocketbase is rather straightforward as there is no external host, so that I'm a bit stuck, so that I've thought about reaching to you in case you would have any suggestion.
Many Thanks & Best Wishes
PAscal

Hi Pascal,
I think the problem is the following:
When you run the app on your phone, the app tries to connect to localhost:8090. But this is the phone localhost and not the localhost of the pc where PocketBase ist running. You have to compile the phone app with the correct ip address of your pc. This is most probably something like 192.168.0.xxx. Please check this to be sure about the address.
So your build command should look like this:
flutter build apk --dart-define=SHOPPINGLIST_HOST=http://192.168.0.xxx:8090
If you look at the README.md, I made a paragraph about this. Search for Important.
You can also try to run the app on your pc. This should work on Windows, Linux and macOS. This might be easier for the start. There is also a paragraph about run configurations in VSCode to handle this.
Another idea is to run PocketBase on fly.io as I do it. There is a detailed description how to do this in the PocketBase repo here on github. This works really good and costs nothing. I use it for several months now and can't complain. When you run PocketBase outside of your pc on a real domain (public ip address), you don't have these problems and the url for your PocketBase server is always the same.
Hope this helps

I updated the README.md. I hope this topic is now better described.

Hi,
Thanks a lot for your feedback and apologies for my late reply.
I've tried first to change localhost for the computer IP address. It showed positive signs with the error message not popping up immediately, the circular progress bar kept rotating but eventually a "Connection timed out" message popped up
ClientException: {url: http://192.168.x_hiddennumbers_x:8090/api/collections/users/auth-with-password, isAbort: true, statusCode: 0, response: {}, originalError: ClientException with SocketException: Connection timed out (OS Error: Connection timed out, errno = 110), address = 192.168.xxxx, port = 46620, uri=http://192.168.xxxx:8090/api/collections/users/auth-with-password}.
Next, I've set back the initial settings (i.e. localhost), then checked with a virtual device (Pixel & API 30), which led back to the initial connection refused error message.
ClientException: {url: http://localhost:8090/api/collections/users/auth-with-password, isAbort: true, statusCode: 0, response: {}, originalError: ClientException with SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = localhost, port = 49920, uri=http://localhost:8090/api/collections/users/auth-with-password}
I have then engaged in setting up PocketBase on Fly.io. It was the first time I was doing so and the first time I was using Docker, so that it was not that straightforward. I've managed eventually to set up the admin email parameters, recreated 3 users and a couple of products. Yet, I cannot connect with any of these users so that I kept on spreading debugPrints in the code to try to follow what it does and to spot where it goes wrong.

I/flutter (17099): !!! login_page _isLoading: true
I/flutter (17099): !!! login_page _email<EMAIL_ADDRESS>I/flutter (17099): !!! login_page _password: Test0000
I/flutter (17099): !!!!!!!!!!!!!  You're in Login !!!!!!!!!!!!!
I/flutter (17099): !!!!!! authData: {"token":"","record":null,"meta":{}} !!!!!!
I/flutter (26453): !!! _userName :  !!!
I/flutter (26453): !!! _pb.authStore.token :  !!!
E/flutter (17099): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: NoSuchMethodError: The getter 'id' was called on null.
E/flutter (17099): Receiver: null
E/flutter (17099): Tried calling: id
E/flutter (17099): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:38:5)
E/flutter (17099): #1      PocketBaseProvider.login (package:shoppinglist/provider/pocket_base_prov.dart:56:71)
E/flutter (17099):
E/flutter (17099): #2      _LoginCardState._submit (package:shoppinglist/view/login_page.dart:101:9)
E/flutter (17099):
#1 corresponds to "prefs.setString(PrefKeys.accessModelPrefsKey, _pb.authStore.model.id ?? '');"
#2 corresponds to "await Provider.of(context, listen: false).login(_email, _password);"
However, I'm unclear how to check #0 and the "Unhandled Exception" associated information.
In parallel, PocketBased seems to be properly pinged...
I/flutter (10034): !!!!!! ensureKeepAlive.timer: Instance of '_Timer' !!!!!!
I/flutter (10034): !!!!!! doHealthCheck.value: {"code":200,"message":"API is healthy.","data":{"canBackup":true}} !!!!!!
with the expect 200 code being received.
The circular bar keeps running ad-vitam-eternam, without any error message popping up.
I face the same situation if I fill up the login field with a gmail address. When selecting the "forgot pwd" icon, I see the “an email was sent message” popup. Eventually I get a PocketBase email, but ticking the verify button, opens a webpage with the following message “Invalid or expired verification token.”. If it can bring some insight, the url is https://sharedshoppinglist.fly.dev/_/#/auth/confirm-verification/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb2xsZWN0aW9uSWQiOiJfX3BiX3Rlc3RfY29sbGVjdGlvbl9pZF9fIiwiZW1haWwiOiJwYXNjYWwuanAuYW5kcmVAZ21haWwuY29tIiwiZXhwIjoxNjk5MjY1Njk4LCJpZCI6Il9fcGJfdGVzdF9pZF9fIiwidHlwZSI6ImF1dGhSZWNvcmQifQ.B4lKwqGjlvFYYDqr6r9G4MKeXXm94-RddYzi8sA61yE.
As a result, and sadly enough, I still cannot rule out a setting issue with PocketBase/Dockers/fly.io trio... even though ping is OK... and I'm unclear about what could be my next attempt to fix the issue(s).
Best Wishes
PAscal

By the way: if you want to use the I forgot my password, please send me a new one feature from PocketBase, you have to configure a SMTP Server inside of PocketBase. You need an account for this SMTP server to send e-mails! Otherwise you will never get an e-mail from your PocketBase server.
Please check the PocketBase documentation for this.

Hi,
Many thanks for your suggestion and patience.
Trying to run shoppinglist as a native app for my pc Windows (Desktop), eventually worked. Out of the 3 users I had previously created, one systematically returned a error message but it was clear the user was not recognised, I still don't know why. In contrast, the 2 other users worked fine.
It motivated me to try running the app with a virtual device and while using my IP address. It returned "ClientException with SocketException: Connection timed out (OS Error: Connection timed out, errno = 110)".
Then, I realized that I had typed 'http://xxxx.fly.dev' which I corrected with 'https://xxxx.fly.dev'. Tried with my phone and previously created users, only to face 'Failed to authenticate'. Somehow, creating a new user made it work with my phone, Windows (Desktop), and a virtual device. I'm unclear why Pocketbase does not recognized the old users but overall shoppinglist app seems to work as it should, which is what matters.
Many thanks again for your suggestions and patience. I'll definitely remember to start testing as a native app before moving to a phone.
Best Wishes
PAscal


IntelliJ region comments are marked as errors with klint

It looks like if the code contains intellij's region comments, klint reports them with
"Missing space after // (cannot be auto-corrected)"
Expected Behavior
Given a region comment like
//region LIFECYCLE
    fun onViewResumed() {
        runDisplayCountrySpecificViewsLogic()
    }
//endregion

Klint should not trigger any error
Region comments should be handled as an exception to the comment spacing rule.
Context
This is happening to me on Android Studio 3.1.4 and Detekt version 1.0.0.RC7-3
Maybe this issue is related to https://github.com/shyiko/ktlint/issues/273
Thoughts?

Fixed in 0.29.0.


Update introduction.md

https://github.com/MicrosoftDocs/OfficeDocs-SharePoint/issues/3487
Fixed typo

@MikePlumleyMSFT PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


docs: Add CiliumPodIPPool option in BGP Adv. Path Attributes docs

Updates BGP Advertised Path Attributes documentation with the new SelectorType option: CiliumPodIPPool added by https://github.com/cilium/cilium/pull/28310

/test

@danehans could you please take a look?

/test


[Error] ImportError: cannot import name 'UNet2DConditionModelMusic' from 'diffusers'

One gets the following error on executing the Quickstart code.
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
[d:\ai-stuff\T2A\mustango\01.ipynb](file:///D:/ai-stuff/T2A/mustango/01.ipynb) Cell 1 line 3
      [1](vscode-notebook-cell:/d%3A/ai-stuff/T2A/mustango/01.ipynb#W1sZmlsZQ%3D%3D?line=0) import IPython
      [2](vscode-notebook-cell:/d%3A/ai-stuff/T2A/mustango/01.ipynb#W1sZmlsZQ%3D%3D?line=1) import soundfile as sf
----> [3](vscode-notebook-cell:/d%3A/ai-stuff/T2A/mustango/01.ipynb#W1sZmlsZQ%3D%3D?line=2) from mustango import Mustango
      [5](vscode-notebook-cell:/d%3A/ai-stuff/T2A/mustango/01.ipynb#W1sZmlsZQ%3D%3D?line=4) model = Mustango("declare-lab/mustango")

File [d:\ai-stuff\T2A\mustango\mustango.py:12](file:///D:/ai-stuff/T2A/mustango/mustango.py:12)
      [9](file:///D:/ai-stuff/T2A/mustango/mustango.py:9) from modelling_deberta_v2 import DebertaV2ForTokenClassificationRegression
     [11](file:///D:/ai-stuff/T2A/mustango/mustango.py:11) from diffusers import DDPMScheduler
---> [12](file:///D:/ai-stuff/T2A/mustango/mustango.py:12) from models import MusicAudioDiffusion
     [15](file:///D:/ai-stuff/T2A/mustango/mustango.py:15) class MusicFeaturePredictor:
     [16](file:///D:/ai-stuff/T2A/mustango/mustango.py:16)     def __init__(self, path, device="cuda:0", cache_dir=None, local_files_only=False):

File [d:\ai-stuff\T2A\mustango\models.py:24](file:///D:/ai-stuff/T2A/mustango/models.py:24)
     [22](file:///D:/ai-stuff/T2A/mustango/models.py:22) from diffusers.utils.torch_utils import randn_tensor
     [23](file:///D:/ai-stuff/T2A/mustango/models.py:23) # from diffusers.utils import randn_tensor
---> [24](file:///D:/ai-stuff/T2A/mustango/models.py:24) from diffusers import DDPMScheduler, UNet2DConditionModel, UNet2DConditionModelMusic
     [25](file:///D:/ai-stuff/T2A/mustango/models.py:25) from diffusers import AutoencoderKL as DiffuserAutoencoderKL
     [26](file:///D:/ai-stuff/T2A/mustango/models.py:26) from layers.layers import chord_tokenizer, beat_tokenizer, Chord_Embedding, Beat_Embedding, Music_PositionalEncoding, Fundamental_Music_Embedding

ImportError: cannot import name 'UNet2DConditionModelMusic' from 'diffusers' (d:\ai-stuff\T2A\mustango\venv\lib\site-packages\diffusers\__init__.py)

We have provided the UNet2DConditionModelMusic implementation in the diffusers directory.
After cloning the repo, you can try:
cd diffusers
pip install -e .

to install diffusers.

Please follow the steps here for installation: https://github.com/AMAAI-Lab/mustango#installation

just a suggestion: could write a setup.py for the project. This could help in publishing the project as a package on PyPI.


License breaks helm chart

Describe the bug
After adding the license header in https://github.com/apache/incubator-answer/commit/3d2187d8491d582a41481e8a52f142e2750e500e
the helm chart doesn work anymore, because the apiversion of the serviceaccount is being mistakenly seen as a comment.
Removing the license header, and then the chart works again. This only happens in the service account, because it is the only one that is deployed conditional depending on the values.
https://github.com/apache/incubator-answer/blob/main/charts/templates/serviceaccount.yaml
See an explanation here:
https://github.com/argoproj/argo-helm/issues/507#issuecomment-793127686
To Reproduce
Steps to reproduce the behavior:

Go to the charts directory
run helm template .

Expected behavior
The serviceaccount rendered correctly

Screenshots
The serviceaccount is missing the apiversion, because it is seen as a comment

Platform (please complete the following information):

Device: [e.g. Desktop, Mobile]
OS: [e.g. macOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Explanation can be seen here
https://github.com/helm/helm/issues/4191
Can be solved by changing
{{- if .Values.serviceAccount.create -}}
to
{{ if .Values.serviceAccount.create -}}


[terra-collapsible-menu-view] Enhancement to allow always collapsed menu items

Feature Request
We would like to request an update for terra-collapsible-menu-view with a new feature:

optional parameter (an array) of items, which should populate the submenu (be always in the submenu) instead of the default menu-items. Even if there is enough space to show them.
This should make the three dot (thin hamburger) button always shown, since there are (at least one) menu item inside the submenu dropdown.

Description
Business requirements for physician documentation requires these abilities for the toolbar of autotext phrases (with favorites).
Jira: PHYSDOCSVC-9823
as we see now the CollapsibleMenuView doesn't support these functions.
We would like to achieve the following:

AC#1 Make Collapsible menu view visible when at least one menu item is added
AC#2 Reorder option appears always in the drop-down (as a default menuitem)
Basically: we want to introduce a new functionality in this component: an option to be able to always show the 'three dot / thin hamburger' menu button at the end whenever we have at least one item in the whole menu item list. Also, we would want to populate the submenu with at least one menuitem (reorder).

Additional Context / Screenshots
Related miro board: Autotext
The UX for the collapsible menu view: attached to jira
@ Mentions
@ryanthemanuel

@ryanthemanuel
API spec update
(more of a prop update)
introduce new prop in CollapsibleMenuViewItem component: isCollapsed
isCollapsed (bool): Puts the menu item under the collapsed (more) menu. Note: More button will be always shown if at least one item is marked as collapsed.
alternative name ideas: isAlwaysCollapsed, isAlwaysHidden (because in the CollapsibleMenuView visible and hidden children is used as terms for the menu items which are always shown and which are put under the more button).
If you have a favorit or something else would be considered more accurate and more domain specific we can update it the way you would like it.
POC demo

@EPAMMarcell We will want to avoid setting an isCollapsed per item as it could result in item reordering on resize or confusion from our users if we prevent it from reordering.
The desired behavior would be all items either above a specific index or all items within a given bucket as hidden. The bucket would likely be more explicit for our consumers, so that would be the ideal behavior.
I put together a prototype using the bucket approach.
https://github.com/cerner/terra-framework/compare/alwayshidden-prototype
The prop is an array of items that is concatted onto the existing hidden items. Within the resize logic we calculate assuming the more button always if the hidden items bucket is present.

PR Merged.


Problematic word boundary match int 932* rules

The 932* rules, such as 932237 for example, use a word boundary match to ensure that "something" follows a command word. At a word boundary, two adjacent tokens must not both match \w and \W, i.e., one must be a word token and the other must not. This means that "something" must be a word token if the previous token was a space, redirect, etc. If "something" is not a word token, such as the dash character, then the word boundary match will fail.
Example: some-command --help would not match a search for some-command.
A possible solution to this problem might be to replace the word boundary match \b with \S.
This issue was discovered in #3394 by @EsadCetiner.

@theMiddleBlue Any thoughts on this one?

True, that kind of thing should be caught by other rules though right? So set --help would not be blocked but ${IFS} would be.

Yes, absolutely! Apologies for the late response!


Error: Parameter token or opts.auth is required

Hi! There is a bug with v1.2.0
Error: Parameter token or opts.auth is required
My workflow's step:
...
      - name: publish
        uses<EMAIL_ADDRESS>        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
          projectName: xxx
          directory: .
          # Optional: Enable this if you want to have GitHub Deployments triggered
          #gitHubToken: ${{ secrets.GITHUB_TOKEN }}
...

Has anyone found a workaround to this, or do we need to just keep using 1.1.0 for now?


fix(resolver): show error when the domain has not a cardano address

Related to YOMO-1122

thanks @stackchain 🙏🏻


Testing with requestAnimationFrame

Hi, I have a WebGL app that I'd like to test, but now I'm stumbling upon making the app animate for debugging purposes. So far karma has been "ignoring" requestAnimationFrame (likely because once a test is run, it is "stopped".
One solution would be for example to "block" the execution of the program, is there any way to accomplish that?

Do you have a small sample to test with?

Two years later, no further discussion. Closing.


fix: Destroying while initialization is incomplete results in an error and a blank screen

… a blank screen
Type of Change

[ ] feat: A new feature
[x] fix: A bug fix
[ ] docs: Documentation only changes
[ ] style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
[ ] refactor: A code change that neither fixes a bug nor adds a feature
[ ] perf: A code change that improves performance
[ ] test: Adding missing or correcting existing tests
[ ] chore: Changes to the build process or auxiliary tools and libraries such as documentation generation

Resolves

Fixes: Destroying while initialization is incomplete results in an error and a blank screen

Describe Changes

Describe what this Pull Request does

Thanks for your contributions.


directory update, deprecation fix

include move ghost into lib/charms/layer
fix deprecated call to nginxlib

@johnsca can you review this?
Signed-off-by: Adam Stokes<EMAIL_ADDRESS>

LGTM :+1:


Design Panel - Element Alignment

As an editor I want to be able to set the alignment on elements
Acceptance Criteria

The user is able to set the alignment on an element
The alignment options are updated based on the amount of elements selected

Design

This isn't working correctly. Too many buttons are disabled for single elements (for single elements, they should align against the page). /cc @samitron7

Created following up PR for single element selection. #1246 and closes this issue.


Get table name from Resources

Hi,
I'm trying to get the table name from Resources section with Ref but doesn't work.
I have this configuration in serverless.yml:
custom:
  capacities:
    - table: { Ref: tblUser }
      read:
        minimum: 5
        maximum: 1000
      write:
        minimum: 5
        maximum: 500

resources:
  Resources:
    tblUser:
...

And when I deploy I get this error:
Serverless: Configure DynamoDB Auto Scaling …
Serverless:  - Building configuration for resource "table/[object Object]"
Serverless: Skipping DynamoDB Auto Scaling: data.charAt is not a function!

Thanks!

Never mind, I just needed to setup like this:
custom:
  capacities:
    - table: tblUser


install dependencies before building the NPD containers.

Fixes https://github.com/kubernetes/test-infra/issues/23202

/assign @Random-Liu

/lgtm
/approve

/lgtm
/hold
hold for @Random-Liu to have a chance to review, but feel free to unhold

/lgtm

/retest

@SergeyKanzhelev all the tests are failing with the ginkgo version incompatibilty while running kubernetes e2e tests.  I have been struggling to resolve the test failure in the https://github.com/kubernetes/kubernetes/blob/master/hack/ginkgo-e2e.sh#L169.

/retest

@SergeyKanzhelev all the tests are failing with the ginkgo version incompatibilty while running kubernetes e2e tests. I have been struggling to resolve the test failure in the https://github.com/kubernetes/kubernetes/blob/master/hack/ginkgo-e2e.sh#L169.

Is there a PR you are working on it? Would just upgrading to latest would solve it?

Is there a PR you are working on it? Would just upgrading to latest would solve it?

No, let me create a PR. Nope it is not working.

Is there a PR you are working on it? Would just upgrading to latest would solve it?

The error is the
  flag provided but not defined: -ginkgo.timeout
  Usage of /home/prow/go/src/k8s.io/node-problem-detector/kubernetes/platforms/linux/amd64/e2e.test:
    -add_dir_header
      	If true, adds the file directory to the header of the log messages (DEPRECATED: will be removed in a future release, see https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components)
    -allow_dynamic_housekeeping
      	Whether to allow the housekeeping interval to be dynamic (default true)

might need to update the ginkgo tests, any suggestions to resolve this issue.

/test pull-npd-e2e-kubernetes-gce-ubuntu

/unhold

/retest


ancient_pack: don't sort slots

Problem
We don't need to sort the slots for ancient storage packing. These slots will
be sorted by different criteria later.
Summary of Changes
Don't sort the slots for ancient storage packing.
Fixes #

A follow up of https://github.com/anza-xyz/agave/pull/1730

won't do.


Support client_os_hostname

Vertica released v 12.0.4, with client protocol v 3.14.
In this protocol version, Vertica support new field - client_os_hostname. It is reported in user_sessions and sessions.
Please add support for Vertica protocol v 3.14, and add client_os_hostname. this should be populated by hostname as reported by os.
socket.gethostname() analog in Javascript would do.

We plan to add support for this in the next patch release


Changed opnsenseWGName character requirements

Added a character length requirement and allowed dashes and underscores. This is in line with the validation done by the OPNsense gui, see here, and updated the error text.
I tested this on a working configuration, using the following code:
import re
import json

config = json.loads(open("./PIAWireguard.json", 'r').read())

if config['opnsenseWGName'] == '' or not re.search("^([0-9a-zA-Z._\-]){1,64}$", config['opnsenseWGName']):
    print("Please define opnsenseWGName variable with the correct value in the json file. " +
    "Should be a string between 1 and 64 characters. Allowed characters are alphanumeric characters, dash and underscores.")

Using the following strings:
Valid strings (expected passes)

"PIA" (Pass)
"PIA_VPN" (Pass)
"This_is_a_64_character_string_6E1A20416ACF569F929AD751197BA2DW1G" (Pass)

Invalid strings (expected failures)

"PI A" (failed)
" PIA" (failed)
"PIA " (failed)
"$PIA" (failed)
"This_is_a_65_character_string_6E1A20416ACF569F929AD751197BA2DWG1Z" (failed)

I really appreciate you making and maintaining this very useful script.
Thanks!
Chase

Happy to merge, matches the upstream check in OPNsense itself, so I see no problem with this 😊


chore(.github): add probot configurations

This PR adds configurations for several bots that will help manage issues and pull requests for us.

Codecov Report

Merging #2491 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2491   +/-   ##
=======================================
  Coverage   99.74%   99.74%
=======================================
  Files         154      154
  Lines        2707     2707
=======================================
  Hits         2700     2700
  Misses          7        7

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 9e29d73...12540da. Read the comment docs.

Released in<EMAIL_ADDRESS>


Upgrade to yaml.v3

The UnmarshalStrict api is no longer available in v3 but the same functionality is supported using a Decoder with KnownFields(true) set.
Changes from map[interface{}]interface{} to map[string]interface{} were required to avoid panic. It seems that the decoder is providing more explicit type information for deeply nested values.

[x] Is unit test coverage still above 80%?
[x] Have you updated all applicable documentation?
[x] Have you followed the guidelines in our Contributing document?

Since the full checks passed, I don't think they need to be re-run if you address the "superficial" concerns in the review.


Refine big player design with samo playhead

Fixes #643
@sudara
Done fiddling with this, maybe a good thing for samo to check out as it is our ‘flagship’ player
But perhaps this state is more desirable than the time under the play button state that currently exists.
That's up to you!

Fresh off the presses from @smoofles (also in figma)

I'd like to get Percy rendering the waveform so we can better test playback — most ideally we'd move the waveform to svg (away from canvas). But we could also use this hack to render the canvas as an image when in the percy context https://gist.github.com/Robdel12/d4e42b8d7dd73a145ecde238454df764

@ofsound Looking sweet! Does it make sense to you that we only show the playhead when playback has started?

@ofsound Looking sweet! Does it make sense to you that we only show the playhead when playback has started?

Yeah, that would be my inclination, have the new orange elements only show once they would start moving.
As far as animating this, I'd guess something hit from whilePlayingCallBack() in single_playback_controller?
Would .line-progress and .time-progress be wrapped by an element that is its own Stimulus class?

I'd like to get Percy rendering the waveform so we can better test playback — most ideally we'd move the waveform to svg (away from canvas). But we could also use this hack to render the canvas as an image when in the percy context https://gist.github.com/Robdel12/d4e42b8d7dd73a145ecde238454df764

An SVG waveform would be awesome! Seems pretty do-able.

As far as animating this, I'd guess something hit from whilePlayingCallBack() in single_playback_controller?

Exactly, although it's a bit awkward because we need to update both single_playback_controller and playlist_playback_controller — this is why big_play_controller exists — to be the place where anything related to the waveform and big button can happen.
Right now there is duplication in the whilePlayingCallback() that is ripe for moving into a method on bigPlay — then in addition to updating the waveform we can update the playhead.
    this.bigPlay.percentPlayed = this.percentPlayed()
    this.bigPlay.waveform.update()
    this.bigPlay.timeTarget.innerHTML = this.time

Would .line-progress and .time-progress be wrapped by an element that is its own Stimulus class?

Yeah, if they can be easily positioned together, that means you'll only need to add and update 1 stimulus target. Otherwise you could do them both. Do you think we'll just manually update position of the element?

@sudara Please review my stimulus code from these last commits at your convenience

@ofsound Looking good! Welcome to the team. #jstune #juniordev #stimulus #framework
The codeclimate complaints are legit (more duplicated code that can be shared) but for now let's merge this! I'm not 100% it was the right move for setup the whole bigPlay/delegate abstraction given that it's only 2 places and the stimulus API to talk from controller to controller is a bit limited/hacky (this.application.getControllerForElementAndIdentifier)


rev-list, merge bases, and detecting unpushed commits

First off, thank you for the excellent library! git2-rs has been a joy to work with.
I apologize if this is a dumb question, but: Is it correct that git2-rs (and maybe more fundamentally libgit2) cannot handle revspecs like HEAD...@{u} in something like a revwalk?
I'm trying to replicate the git command git rev-list --right-only --count HEAD...@"{u}" ^ /dev/null, which I use to test if a repo has unpushed commits. I think from the docs and https://github.com/alexcrichton/git2-rs/blob/master/examples/rev-list.rs#L57 that push_range (and maybe RevWalk overall) cannot take in a range of the sort I need, but I wanted to check to be sure.
If I'm correct, do you have any advice for getting around this? I'm new to learning the internals of git, so I've very possibly overlooked something obvious.
Thanks!

Ok, thanks. I'll ask the libgit2 folks! If it turns out that git2-rs is missing an API, I'll make another issue/a PR. Thanks!


Crossref awards API fix and enable backups for Dynamo Table

Updates to the Crossref awards API to handle contact/contributor info
Also turned on PointInTimeRecovery for our DMPs DynamoTable. There is another option to create Replica tables, but the PointInTimeRecovery was easiest to enable at this point. Will need to monitor to see how it impacts cost
Removed some lines from the AWS CF templates for OpenSearch domain info that is no longer relevant
Removed the old private subnet references since those resources no longer exist

@jupiter007 can you review and approve this PR when you have a chance?


Add transaction items limit to TransactionSessionBase

I want to merge this change because it adds a limit of transaction items to TransactionSessionBase.
This results in adding the limit to the following two mutations:

PaymentGatewayInitialize
TransactionInitialize

⚠ This is a port of https://github.com/saleor/saleor/pull/15740

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations

Docs

[ ] Link to documentation:

Pull Request Checklist

[ ] Privileged queries and mutations are either absent or guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migrations are either absent or optimized for zero downtime
[ ] The changes are covered by test cases
[ ] All new fields/inputs/mutations have proper labels added (ADDED_IN_X, PREVIEW_FEATURE, etc.)
[ ] All migrations have proper dependencies
[ ] All indexes are added concurrently in migrations
[ ] All RunSql and RunPython migrations have revert option defined

@IKarbowiak added in https://github.com/saleor/saleor/pull/15795 as there were more comments to address, I will update this and everything below main after above is approved.


Add extra-source-files

Add extra-source-files (CHANGELOG.md, README.md) to the Cabal file.

Closing issue because library is being deprecated.


Invalid test.asdf files in the RTD documenation

Many (most? all?) of the result test.asdf files shown in the readthedocs.io (RTD) documentation are not valid ASDF files using asdf 2.10.1 .
The "Hello World" example at
https://asdf.readthedocs.io/en/stable/asdf/overview.html#hello-world
from asdf import AsdfFile

# Make the tree structure, and create a AsdfFile from it.
tree = {'hello': 'world'}
ff = AsdfFile(tree)
ff.write_to("test.asdf")

# You can also make the AsdfFile first, and modify its tree directly:
ff = AsdfFile()
ff.tree['hello'] = 'world'
ff.write_to("test.asdf")

produces the following test.asdf file
#ASDF 1.0.0
#ASDF_STANDARD 1.5.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
--- !core/asdf-1.1.0
asdf_library: !core/software-1.0.0 {author: The ASDF Developers, homepage: 'http://github.com/asdf-format/asdf',
  name: asdf, version: 2.10.1}
history:
  extensions:
  - !core/extension_metadata-1.0.0
    extension_class: asdf.extension.BuiltinExtension
    software: !core/software-1.0.0 {name: asdf, version: 2.10.1}
hello: world
...

using asdf 2.10.1 and Python 3.9.7.
The RTD documentation gives this result
test.asdfb'#ASDF' 1.5.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
--- !core/asdf-1.1.0
asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf',
  name: asdf, version: 2.7.5}
history:
  extensions:
  - !core/extension_metadata-1.0.0
    extension_class: asdf.extension.BuiltinExtension
    software: !core/software-1.0.0 {name: asdf, version: 2.7.5}
hello: world
...

The asdftool issues this error
ValueError: Input object does not appear to be an ASDF file or a FITS with ASDF extension
with the current RTD version of test.asdf.
This is not surprising given that the current RTD version of test.asdf starts with this line:
test.asdfb'#ASDF' 1.5.0

This issue is, of course, related to Issue #1102

Both asdf 2.7.5 and the latest asdf version will write correct asdf files. It looks like the there is a bug in the RTD documentation in printing the contents of the generated asdf file.

This is likely a problem with https://github.com/asdf-format/sphinx-asdf

It looks like it may be necessary to regenerate all of the test.asdf result files in the RTD documentation
as some of the ASDF content has changed significantly somewhere between asdf versions 2.7.5 and 2.10.1 .
Example: In the section "Saving Arrays"
https://asdf.readthedocs.io/en/stable/asdf/arrays.html?highlight=sharing
the Python code
from asdf import AsdfFile
import numpy as np

tree = {'my_array': np.random.rand(8, 8)}
ff = AsdfFile(tree)
ff.write_to("test.asdf")

now produces this test.asdf file
#ASDF 1.0.0
#ASDF_STANDARD 1.5.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
--- !core/asdf-1.1.0
asdf_library: !core/software-1.0.0 {author: The ASDF Developers, homepage: 'http://github.com/asdf-format/asdf',
  name: asdf, version: 2.10.1}
history:
  extensions:
  - !core/extension_metadata-1.0.0
    extension_class: asdf.extension.BuiltinExtension
    software: !core/software-1.0.0 {name: asdf, version: 2.10.1}
my_array: !core/ndarray-1.0.0
  source: 0
  datatype: float64
  byteorder: little
  shape: [8, 8]
...
?BLK09???unn0d&?,??ş?x?ո??W????n??4???w??D????I?U?u??ȍ??ea??<tS7???L??>(??7+}????+
?N??@?n?C???"??t???v??ܦ??ʄ0????P#??????84???l?u?S????lR????c????????              ?2???L??T:???z??U???7??????0M??}??p?U
                                                                    S??I?gC???????Ă?`$???љ{????P?????
                                                                                塺???|N]4+?????A+????D?????!߃?????eΠ3˞??N?????????.O???݈?v????k?;??PX`??B???W?H??x~????,A9??X?????L~l??@??D????"?׾??4
in???NJ]?P%????r?.??0?H??V???ܪ?۳??_?>?????'D3???????*?????r?????W!????<%???????q????'??2???z?̽5???$[N?e??I??z-?d???#ASDF BLOCK INDEX
%YAML 1.1
---
- 513
...

whereas the RTD documentation gives this result
test.asdfb'#ASDF' 1.5.0
%YAML 1.1
%TAG ! tag:stsci.edu:asdf/
--- !core/asdf-1.1.0
asdf_library: !core/software-1.0.0 {author: Space Telescope Science Institute, homepage: 'http://github.com/spacetelescope/asdf',
  name: asdf, version: 2.7.5}
history:
  extensions:
  - !core/extension_metadata-1.0.0
    extension_class: asdf.extension.BuiltinExtension
    software: !core/software-1.0.0 {name: asdf, version: 2.7.5}
my_array: !core/ndarray-1.0.0
  source: 0
  datatype: float64
  byteorder: little
  shape: [8, 8]
...BLOCK 0:
    allocated_size: 512
    used_size: 512
    data_size: 512
    data: b'0077393b4d43883f436c308562b3e63ff44d9df3...'#ASDF BLOCK INDEX
%YAML 1.1
---
- 528
...

The numpy.ndarray of float64 data in the 2.10.1 version is encoded as raw binary (as expected), but the 2.7.5 version has the data stored as a b'string' .

Your misunderstanding what is going on in the RTD. The sphinx directive for asdf files in RTD is not just reading the asdf file as text and displaying the output as you are doing manually. Instead the directive is reading the asdf file using the file using the asdf library and generating a more human readable representation. Namely, its displaying the block header information in a human-readable way and then displaying data using a binary buffer.

Note that the directive seems to have been neglected so there are some slight formatting issues which need do be addressed.

The documentation may need to be updated to be clear that displays of asdf files will perform some interpretation of the binary information in order to facilitate better human readability.
Unfortunately, its a bit of a tradeoff between human-readability and "this is what you should get" outputs.


Adding ownership file

Required to make the Solace charts official in Artifact Hub

Retracting this PR, will change approach


No game list

Game list (roms) not available in docker
Adding rom manually to /usr/local/share/cloud-game/assets/games in the dock doesn't help

What's in the logs?

Where are logs located?

Normally, you run this for the server logs:
docker logs cloud-game-local

(or what your container called)
For the client (browser) logs you can press F12 and click on the "Console" tab then reload the app page to see what it prints out.


Can't create driver instance

case:
when I try connecting the MySQL after I create it in DBeaver,the software just says
Can't create driver instance
Can't load driver class 'com.mysql.jdbc.Driver'
java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0

Try to download version 3.6.5.
In driver editor check what version of mysql driver are you using. If it is 6.0.2 then switch to any previous version. You can choose driver version right in download dialog.

Add a comment here if solution above won't help.

Sorry if this is naïve - but isn't this caused by the JRE version being used to run DBeaver is too low for the expected JRE version that this jdbc driver requires as a minimum?
Major version 52 being Java 1.8, so a lower version is being used to launch/run DBeaver itself such as 1.7.

I too had to revert back to version 5.1.40
Everything was fine with JRE, still it was showing the same error.


Clients within the product context should invoke APIs within the JVM

In IS, we have SOAP services and REST services.
Typically, client applications within the server context user local transport for SOAP services.
Yet there are places which does not do so. For example, authenticationednpoint webapp has some services which are invoked remotely.
When it comes to REST services, even there a similar pattern can be followed and OSGi services can be invoked.
So, there should be an option to let API be invoked remotely, yet by default it should be within JVM.

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Homey template update (logo & header changes)

Summary
Updated logo URL to S3 bucket
Removed duplicate header (seems to be generated automatically when selecting JSON webhook format)
Changes
Notes for Reviewers
Other logo URLs (with different size images) suitable for use:
https://homey-logos.s3.eu-west-1.amazonaws.com/logos/128.png
https://homey-logos.s3.eu-west-1.amazonaws.com/logos/512.png
Checklist

[x] Scope: The referenced issue is addressed, there are no unrelated changes.
[x] Compatibility: The changes are backwards compatible, they don't break existing deployments.
[x] Testing: The changes are tested.
[x] Documentation: Relevant documentation is added or updated.

@nejraselimovic Perhaps I should have used the word redundant rather than duplicate. I tested using a 'custom' webhook with the following settings:

It resulted in a webhook with the following headers:
Cache-Control: no-cache, private
Content-Encoding: gzip
Content-Type: application/json  <-----------------------------------------
Date: Thu, 15 Jul 2021 13:27:50 GMT
Server: nginx/1.14.2
Transfer-Encoding: chunked
Vary: Accept-Encoding

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.5
Connection: keep-alive
DNT: 1
Host: webhook.site
Referer: https://webhook.site/
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0

Using the current/ active Homey template with the following settings:

It resulted in a webhook with the following headers:
Cache-Control: no-cache, private
Content-Encoding: gzip
Content-Type: application/json <-----------------------------------------
Date: Thu, 15 Jul 2021 13:28:20 GMT
Server: nginx/1.14.2
Transfer-Encoding: chunked
Vary: Accept-Encoding

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.5
Connection: keep-alive
DNT: 1
Host: webhook.site
Referer: https://webhook.site/
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0

I haven't checked what's happening on the TTN server side but it seems that specifying a JSON payload automatically includes the required header. As your more obviously more familiar with the server side of things I'll leave it up to you to pick the best approach.


Policy crud2

Adding max-page-size to our search calls
Added endpoint to ValidatePolicy
Updated CreatePolicy to make a call to ValidatePolicy
NEXT PR:
Add refresh setting for elasticsearch
Add filtering in ListPolicy
Add a basic, preliminary UpdatePolicy

Final commit. This addresses all of the comments. A couple of UI changes need to be made now.

A failed validation on CreatePolicy now returns 400 instead of 500
ValidatePolicy will now return 400 on any unsuccessful compilations.


Unable to extract video from rts.ch

Hello,
I want to download some videos from http://www.rts.ch and for some links it doesn't work. For example, in the following:
http://www.rts.ch/sport/golf/6958198-golf-sergio-garcia-en-vedette-a-crans-montana.html
it doesn't work and on this one:
http://www.rts.ch/play/tv/meteo-midi/video/meteo-midi?id=6957946
it works.
I get the following from the first link:
% youtube-dl http://www.rts.ch/sport/golf/6958198-golf-sergio-
garcia-en-vedette-a-crans-montana.html
[RTS] golf-sergio-garcia-en-vedette-a-crans-montana: Downloading JSON metadata
[RTS] golf-sergio-garcia-en-vedette-a-crans-montana: Downloading webpage
ERROR: Unable to extract internal video id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
The verbose version is:
% youtube-dl --verbose http://www.rts.ch/sport/golf/6958198-golf-sergio-garcia-en-vedette-a-crans-montana.html
[debug] System config: []
[debug] User config: []
[debug] Command-line args: [u'--verbose', u'http://www.rts.ch/sport/golf/6958198-golf-sergio-garcia-en-vedette-a-crans-montana.html']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2015.07.21-gentoo_no_offensive_sites
[debug] Python version 2.7.10 -<EMAIL_ADDRESS>[debug] exe versions: ffmpeg 2.7, ffprobe 2.7
[debug] Proxy map: {}
[RTS] golf-sergio-garcia-en-vedette-a-crans-montana: Downloading JSON metadata
[RTS] golf-sergio-garcia-en-vedette-a-crans-montana: Downloading webpage
ERROR: Unable to extract internal video id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/youtube_dl/YoutubeDL.py", line 656, in extract_info
ie_result = ie.extract(url)
File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/common.py", line 275, in extract
return self._real_extract(url)
File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/rts.py", line 148, in _real_extract
'internal video id')
File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/common.py", line 566, in _html_search_regex
res = self._search_regex(pattern, string, name, default, fatal, flags, group)
File "/usr/lib64/python2.7/site-packages/youtube_dl/extractor/common.py", line 557, in _search_regex
raise RegexNotFoundError('Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract internal video id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
I have seen there is another bug (https://github.com/rg3/youtube-dl/issues/5099), but because the error is not the same I have open a new bug.
Just tell me if you need more inputs.

Can find any video on http://www.rts.ch/sport/golf/6958198-golf-sergio-garcia-en-vedette-a-crans-montana.html.

I'm not sure to understand: you can or you can't find a video ? If you can, which arguments do you use ?

Sorry, mistyped it. I can't find any video on this page, what do you expect youtube-dl to download from this URL?

The videos on the right of the page. When I click on them I can watch them on my web browser. As I can see, the url doesn't change.

Those videos are not related to 6958198-golf-sergio-garcia-en-vedette-a-crans-montana article.

Could you just explain me in a few words why ? Is it because youtube-dl doesn't find the video ? Or is there a way, for example by looking at the page source to know if the video is part of the page.

Articles with videos on the right hand side will be supported in the next version. Example you provided was misleading since it has videos from different dates and they look unrelated to the article itself. Exploring another articles of similar layout I've find out some that are definetely relevant to the article.

Ok, thank you for your help!


do not lower the case of extension id

This PR fixes #140120
Extension id is constructed as it is from the package.json while running extensions in desktop. But in web  extension id is lower cased, hence this caused the reported issue.
Fix is to construct the extension id in web in the same way as in desktop. But this causes data loss for the extension in web. Becuase the extension memento and storage are based on extension id and changing the cases will point the memento and storage to differen keys/locations.
Hence added migration step in web and it is done only if constructed extension id is not lower cased. Migration includes

Moving global and workspace memento and storage from old key to new key

This migration step happens only once as it is remembered at global and workspace level

I fail to understand how the ID of extension memento is any relevant unless we have 2 extensions with the same identifier but different casing competing? For an extension the way how we store the memento should be irrelevant because all they get is an object to set properties to, no?
Adding a second pair of eyes for review. And I think this needs some kind of integration test if possible.

But this causes data loss for the extension in web.

How often are upper-case characters used in extension ids? Knowing that and that given that web is relatively fresh might allow us loss data.

I fail to understand how the ID of extension memento is any relevant unless we have 2 extensions with the same identifier but different casing competing?

The actual fix for #140120 can cause the same extension to have different mementos before and after the fix. To explain in detail, in web, the extension id of GitHub.remotehub extension is lower cased which is github.remotehub. So currently the memento state of this extension is stored using the key github.remotehub.  With the fix, the extension id is not lower cased and remains as is which is GitHub.remotehub. So when the extension runs with the fix, the memento state is fetched using the key GitHub.remotehub which is not same as before. Hence the extension looses its data. This is same with storageUri which has files stored by the extension per workspace.
The fix without migration will cause data loss for GitHub.remotehub extension as it stored unresolved files and changes in memento and workspace storage. Actually I pushed this fix sometime back and reverted it as soon as we saw this data loss.

How often are upper-case characters used in extension ids? Knowing that and that given that web is relatively fresh might allow us loss data.

I do not have numbers but definitely all GitHub extensions as upper case publisher id and there are others too. I think data loss is severe here because as I said before GitHub.remotehub extension stores changes here and loosing it might be quite annoying to user.

@sandy081 I am still puzzled.
Let me try to recap what your code is doing:

using IStorageService you migrate the key <extension ID lowercase> to <extension ID realcase> in global and workspace storage (this maps to ExtensionContext.globalState and ExtensionContext.workspaceState)
using IFileService you migrate the globalStorage/<extension ID lowercase> and workspaceStorage/<workspaceId>/<extension ID lowercase> to <extension ID realcase> (this maps to ExtensionContext.globalStorageUri and ExtensionContext.workspaceStorageUri)

At first I was thinking this is only a storage service migration, but in fact this is 2 migrations of 2 entirely different things in the same method. This was hard to understand for me at first because mainThreadStorage is about mementos and not about the globalStorageUri and workspaceStorageUri.
So why is the migration of globalStorageUri and workspaceStorageUri triggered from $getValue? I think that makes no sense because those properties are used in other contexts. I think if we want to migrate that, we need to do that before any extension is being activated.
Storage Service Migration
Why do we need to do this though? For an extension the way how mementos are persisted is not relevant. The fact that we store them in storage service is an implementation detail. We can easily continue to use the lowercase form and not migrate. I.e. we could just lowercase the extension ID in mainThreadStorage to preserve the data without the need for a migration.
Storage URI Migration
This is a path on disk that extensions can use to persist any amount of data. It is backed by a file system on desktop (local disk) but IndexDB (user data) on web. Same idea here: could we just keep the extension ID lowercase, given extensions just store stuff in those locations? Do they care about the casing of the parent folder they persist to?
And if we must migrate this data I think we have to do it before any extension is being activated.

@bpasero made changes as we discussed today.

Extracted extension storage related methods into IExtensionStorageService. I was having IExtensionsStorageSyncService for Settings Sync purpose. I merged this service into IExtensionStorageService and removed some redundant util functions in settings sync land in favour of this new service.

Moved extension storage migration into a util file which can be reused for other migration scenarios I have (migrating nightly/insiders to pre-release extensions)

renamed $getValue method to initializeExtensionStorage and key to extensionid

Please take a look.

Btw it looks like the call to migrateStorage is not awaited, there are 2 locations beginning from https://github.com/microsoft/vscode/pull/140122/files#diff-7b81baaeef780c48f07d57c4e97e78d33aed5a2b5ec97e8c7996e49facc90c1dR67

Good catch, missed it when I extracted the common code in to a function.
I will write unit tests migrateExtensionStorage util function

@bpasero updated. Please take a look.


popularity has a stronger influence on search results

I'm filing this here since the results are not the same between this and the current site - feel free to close if there's no ordering done in this codebase and we'll refile it in the correct place.
We should include a higher rating for popularity in search e.g. newsflash has about 10x more downloads than hackup on https://flathub.vercel.app/apps/search/news but is much lower down. We want to ensure that users get high quality apps by default.

Should be easy to do in https://github.com/flathub/backend/blob/master/app/apps.py#L100

Hrm, it's not as easy as sorting by popularity, as that's loosing the search focus.
Left is sorted by downloads, right is old:

Redisearch also doesn't support the useage of weight on NumericField

Hi, I've gone ahead and attempted to fix this myself.  I didn't see @razzeee comments from 2 days ago until now, and I've done exactly that, which is sort the downloads by total downloads. It's #152 if you want to review the changes.

I'm not convinced, that there's a sane way to do this. We might want a system, that actually can do the heavylifting for search that we want. Or try to come up with a weighted sorting algorithm on our own, but not sure that's worth it.


Regarding Hyperparameters

Thanks for opensourcing the code so quick.
can you let me know the Hyperparameters you used? I want to train my own?  Did you set batchsize 96 only?
and
net = models.MobileNetV2(n_class=1000)
I am getting error "name 'models' is not defined".
Did you understand the Theorm 1?

@tonylins so, if you trained it with 4 gpus, you split 256 batch to 256/4=64 batches for each gpu tower. Am I right?

@ildoonet Yes

How many epochs in your training?

How many epochs in your training? @tonylins

Can you please let us know that have you:

changed rmsprop to sgd (or nesterov)?
followed the paper that starting with learning rate=0.045 and decay by 0.98 for every epoch?

Thanks!

Could you please share the training script if possible?

@tonylins   Hi, Thanks for the effort in sharing the mobilenet-v2. I followed your network structure and trained it with SGD, however it could only reach 66% top1 and 88% top5. Big gap from the 71.8% top1.
In my train, the batch_size was set 128, lr began with 0.045 and a 0.1 drop after plateau detection strategy was employed. I wondered if you could share some of your experience and give me a light to gain better result. Really appreciate it.

Hi @blueardour,
I used batch_size 256 and init lr=0.045, decayed by 0.98 every epoch, and trained for 240~300 epochs. Also, it is recommended to use drop out rate 0.2 for faster training.
The data processing is:
normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
    input_size = 224
    train_dataset = datasets.ImageFolder(
        traindir,
        transforms.Compose([
            transforms.RandomResizedCrop(input_size, scale=(0.2, 1.0)),  # TODO: find a good scale ratio
            transforms.RandomHorizontalFlip(),
            transforms.ToTensor(),
            normalize,
        ]))

    train_loader = torch.utils.data.DataLoader(
        train_dataset, batch_size=batch_size, shuffle=(train_sampler is None),
        num_workers=n_worker, pin_memory=True, sampler=train_sampler)

    val_loader = torch.utils.data.DataLoader(
        datasets.ImageFolder(valdir, transforms.Compose([
            transforms.Resize(int(input_size/0.875)),
            transforms.CenterCrop(input_size),
            transforms.ToTensor(),
            normalize,
        ])),

Hi, tonylins. Thanks for your detail description.
Compared with your data processing, my experiment was different with：

the augmentation on the train set. I didn't employ the RandomResizedCrop but only a rand crop after resize original image to 256*256.
Also, I only train for 90 epochs.
I didn't apply the dropout.
Maybe these are the reasons for the accuracy gap, specially the data augment one.

My final train result:  top1 and top5 on training set: 73.1/ 91.84; top1 and top5 on evalution set: 67/ 88.17. It could be found that some bit of over-fitting in the training. Maybe the dropout can alleviate this.
By the way, where did you add the dropout? The input layer or certain deep layer?

@cxxgtxy In GluonCV we get 71.92%: https://gluon-cv.mxnet.io/model_zoo/classification.html#mobilenet
Our training parameters is here: https://raw.githubusercontent.com/dmlc/web-data/master/gluoncv/logs/classification/imagenet/mobilenetv2_1.0.sh
Our training log is here: https://raw.githubusercontent.com/dmlc/web-data/master/gluoncv/logs/classification/imagenet/mobilenetv2_1.0.log
PyTorch should have similar results with similar parameters.

@hetong007  Thanks!

@hetong007 Hi, thanks for your reference. DId you GluonCV use smooth loss or not?

Hi,
I use the hyper-parameters as your suggestion. After I trained 300 epochs, the top 1 is 71.41%. Any ideas about this? I check the official TF implementation, the smooth loss is applied. I wonder whether you use smooth loss or not. Thanks.

Hi, recently I found a more efficient setting by training only for 150epochs using cosine learning rate starting from 0.05 with weight decay 4e-5. No label smoothing is needed and you should get around 72% accuracy.

@tonylins Cool, I will have a try!

@D-X-Y Be sure to use dropout=0, which I just added.

@tonylins ok, thanks for your suggestion.

@tonylins COOL, I will try.

@tonylins Could you please clarify what you mean by "Be sure to use dropout=0, which I just added".
I can see that you are using nn.Dropout(0.2) in the code. (https://github.com/tonylins/pytorch-mobilenet-v2/blob/master/MobileNetV2.py)

@tonylins May I ask the total batch size, and the number of GPUs that you use?

@D-X-Y used batch size 256, 2 or 4 GPUs.

@tonylins Following your suggestion, I have trained 46 epochs, and the validation accuracy is 62.44. Is that similar to your training log? In addition, would you mind to share your training log with me for references?

Hi guys, I obtain 72% accuracy by using the suggested hyper-parameters from @tonylins. Thanks a lot for all the above discussion.

@D-X-Y Your training speed is so high. My training time is about 40mins per epoch.
And I will report my results when the training ends.

@tonylins  I use your latetest recommended hyper-parameters(cos 150 epcoch), after trained 120epochs, the validation acc is about  69.75. Can you check your training log? Thanks.
thanks@D-X-Y

@tonylins I also obtain a good top 1, which is more than 72%.
Thanks

@cxxgtxy @D-X-Y Hi guys, I have added the training recipe to README. I will close the issue for now. Feel free to reopen it if you encounter other problems!

Hi guys, I obtain 72% accuracy by using the suggested hyper-parameters from @tonylins. Thanks a lot for all the above discussion.

could you please share your training script? Thanks a lot. I can only get 71.3%.
BTW, did you use warmup?

@wangdongxuking61 I shared the script to train MobileNet here: https://github.com/D-X-Y/NAS-Projects/blob/master/BASELINE.md#performance-on-imagenet

@wangdongxuking61 I shared the script to train MobileNet here: https://github.com/D-X-Y/NAS-Projects/blob/master/BASELINE.md#performance-on-imagenet

3Q very much! ^_^

Hi,
For who concerns, I got 73.164% Top-1 accuracy for the MBv1. The key hyper-parameter is to set the initial learning rate to 1e-1.
options="$options --lr 1e-1 --lr_policy sgdr --lr_custom_step 120 --wd 1e-4 --nesterov

@blueardour Thank you for sharing this. Can you also post the training transforms? How many total epochs and what is the cycle length in sgdr? If you can point to the training repository/code that will be even better.

@mathmanu  Hi, I have the same model definition with this repo. So by using the dedicated hyerparamer is expected to obtain the 73% performance by the author's code.
For your question, I trained 120 epochs with SGDR without restart.  If you'd like to make clear of every detail of my training, refer my repo https://github.com/blueardour/model-quantization   (This repo is oriented for model quantization of different tasks, you might find many extra logic, just neglect those if you are focused only in full precision mobilenet training.)
ps. For parts of my training history:
Paper | Dataset | Network | Bit(A/W/G) | Paper report | My Accuracy | Comment
----- | ---- | ---------- | ------ | -------  |  ---------

| imagenet | v1 | 32/32/32 | 70.6 | 69.204 | cbas-0,preBN,fp16,wd5e-5,aug
| imagenet | v1 | 32/32/32 | 70.6 | 69.800 | cbas-1,wd1e-4,fp32,aug
| imagenet | v1 | 32/32/32 | 70.6 | 69.178 | cbas-2,wd1e-4,fp32
| dali     | v1 | 32/32/32 | 70.6 | 65.568 | cbas-3,
| imagenet | v1 | 32/32/32 | 70.6 | 72.446 | cbas-4,bs=256,fp32,wd1e-4
-    | imagenet | v1 | 32/32/32 | 70.6 | 73.164 | cbas-5
| imagenet | v1 | 32/32/32 | 70.6 | 55.780 | cbas-5, group-norm=8
| imagenet | v1 | 32/32/32 | 70.6 | 58.246 | cbas-5, group-norm=16
| imagenet | v1 | 32/32/32 | 70.6 | 70.310 | bacs-1,preBN
| imagenet | v1 | 32/32/32 | 70.6 | 67.200 | bacs-3,preBN
| imagenet | v1 | 32/32/32 | 70.6 | 71.652 | bacs-4,preBN
| imagenet | v2 | 32/32/32 | - | 70.416 | cbas-1,relu6
| imagenet | v2 | 32/32/32 | - | 72.288 | cbas-4
| imagenet | v2 | 32/32/32 | - | 71.800 | bacs-5


Every October: Update slack link

We have a slack invite link that expires every year (and is available for 2000 people). Message @MandyMeindersma (or someone on the board) on Slack to get the new link.
This link expires october 2nd 2024 so we gotta be on it lol
The link will also have to be updated if we get close to the 2000. When the invite link was made in 2023 we were at 4680 in the announcements channel. If we get close to 4500 then Mandy will have to email slack before October.
Acceptance criteria:

[ ]  Make PR with new updated link
[ ]  Clone this issue so we remember to do it for next year
[ ]  Add the amount of people in the announcements channel to the ticket number so we can keep track of how many people have used the link

This one can not be done until next october. but the other slack one can be done.
Also it's myself and @alex-wilmer  and @deejayjay  maintaing the repo now so make sure to tag all of us


GAS tariff not used in energy dashboard

I've configured my energy dashboard to use the integrations GAS tariff in combination with my P1 meter's GAS measurements, but it doesn't seem to calculate the costs. Any idea's?

Fixed it with a reset


r167 : import from 'three/webgpu' break gainmap-js

In r167 we now use import from 'three/webgpu'
It breaks @monogrid/gainmap-js with the error : WARNING: Multiple instances of Three.js being imported.
What will be the best workaround ?

Hi! unfortunately the decoder has only been developed with the WebGL Renderer in mind (it decoded in the GPU thanks to a custom shader).
WebGPU support has not started yet: the way you made it work for now is "don't pass the renderer parameter" which forces the library to create its own disposable WebGL Renderer but now it seems three.js is detecting a duplicate renderer.
I'll need to write a custom shader for the WebGPU Renderer in order to support this, I'll see when I'll be able to do that soon.
Thanks for reporting


Erroneous pipeline: no element "kvssink"

Hello,
I'm fairly certain that I've properly set the environment variables, but when I try to run the following command,
gst-launch-1.0 ksvideosrc ! videoconvert ! video/x-raw,format=I420,width=640,height=480 ! x264enc bframes=0 key-int-max=45 bitrate=512 tune=zerolatency ! h264parse ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="{myStreamName}" storage-size=512 access-key="{myAccessKey}" secret-key="{mySecretKey}" aws-region="us-east-1"
all I get back is: WARNING: erroneous pipeline: no element "kvssink"
any help would be much appreciated.

Are you using min-install-script or install-script?

I used export GST_PLUGIN_PATH=PWD and export LD_LIBRARY_PATH=PWD:$LD_LIBRARY_PATH from inside kinesis-video-native-build

I'm using min-install-script

Is libgstkvssink.so located in the native build directory? Because, the error you are seeing pops up when it cannot locate this specific library.

Can you verify libgstkvssink.so is in the native-build directory?
Because, the error you are seeing happens when this library is not located.

Well, that would be it. Thank you!

I can't find that file anywhere. How can I get it?

@wrigsa ,
min-install-script would install it.
To help you out a little, ensure you have done the following:

Installed pkg-config openssl cmake gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly log4cplus gst-libav (either using sudo apt-get or brew or in mungw based on platform)
Run ./min-install-script in native build directory
export GST_PLUGIN_PATH=/path/to/libgstkvssink.so

At the end of the min-install-script run, you should see the following:
[ 98%] Linking CXX shared module libgstkvssink.so
[ 98%] Built target gstkvssink
[100%] Linking CXX executable kinesis_video_gstreamer_sample_app
[100%] Built target kinesis_video_gstreamer_sample_app

Success!!!

Hi @wrigsa ,
Can you check if you are using wrong environment variables? You need export GST_PLUGIN_PATH=$PWD not PWD. Can you paste the output of echo $GST_PLUGIN_PATH so we can tell if that is the issue? Thanks.

@zhiyua-git this is the output: C:/msys64/home/sarah/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build
I think I'm just having trouble installing gstreamer

@wrigsa , once your gstreamer is installed correctly, you should be able to see the library after running ./min-install-script. Let us know if you have any other questions!

@wrigsa do you mind changing the repo name from amazon-kinesis-video-streams-producer-sdk-cpp to something shorter like kvssdk. On msys2 there were issue about path name being too long.

I've changed the path name and made sure everything is installed, but it still quits at 85%. These are the last few lines after I run ./min-install-script
[ 85%] Linking CXX shared library libproducer.dll
make[2]: Leaving directory '/home/sarah/kvssdk/kinesis-video-native-build'
[ 85%] Built target producer
make[1]: Leaving directory '/home/sarah/kvssdk/kinesis-video-native-build'
make: *** [Makefile:84: all] Error 2
Thank you guys for all of your help

Could you please include more info? It doesn't say anything about the error it encountered (assuming this starts off from a clean repo)

@MushMal
I'm getting the same error - although my build succeeds...
@wrigsa - any luck on your side?

pi@raspberrypi:~/Documents/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build $ export LD_LIBRARY_PATH=/home/pi/Documents/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build:$LD_LIBRARY_PATH
pi@raspberrypi:~/Documents/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build $ export GST_PLUGIN_PATH=/home/pi/Documents/amazon-kinesis-video-streams-producer-sdk-cpp-master/kinesis-video-native-build:$GST_PLUGIN_PATH
pi@raspberrypi:~/Documents/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build $ gst-launch-1.0 rtspsrc location="rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif" short-header=FALSE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name=streamone storage-size=512 aws-region="us-east-1"
WARNING: erroneous pipeline: no element "kvssink"

Hi @francoisdutoit ,
You GST_PLUGIN_PATH is pointing to wrong directory amazon-kinesis-video-streams-producer-sdk-cpp -master, run export GST_PLUGIN_PATH=/home/pi/Documents/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build:$GST_PLUGIN_PATH and see if it works. Thanks.

@zhiyua-git - thanks for the reply - but setting the GST_PLUGIN_PATH to kinesis-video-native-build - did not work. What I did to get it to work was to copy libcproducer.so, libproducer.so and libgstkvssink.so to /usr/lib/arm-linux-gnueabihf/gstreamer-1.0 and then setting my paths as below...
export LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/gstreamer-1.0:$LD_LIBRARY_PATH
export GST_PLUGIN_PATH=/usr/lib/arm-linux-gnueabihf/gstreamer-1.0:$GST_PLUGIN_PATH
I'm able to stream h264 now without any issues. :)

@francoisdutoit ,
Glad it worked!
Closing this ticket based on your response. Feel free to open a new issue if you face any issues in the future.


docs: Magic Wand tool

After LSF PR https://github.com/heartexlabs/label-studio-frontend/pull/1119
by @BradNeuberg

Just fixed a spelling mistake that the CI system caught. I don't have merge privileges so @makseq or someone else will have to merge when they are ready now that they've approved this PR.

Actually looks like my push to this branch didn't show up, maybe I don't have privileges. I fixed one spelling mistake the spelling CI caught, looks like someone on Heartex's side will have to make that change.

Sounds good, thanks :)
On Tue, Mar 14, 2023 at 3:00 PM Max Tkachenko @.***>
wrote:

@BradNeuberg https://github.com/BradNeuberg we are waiting for release
1.7.2, then we should merge this PR :)
—
Reply to this email directly, view it on GitHub
https://github.com/heartexlabs/label-studio/pull/3756#issuecomment-1468898039,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABEHUJOY5GXHNDA4OVDIBLW4DS7FANCNFSM6AAAAAAVMDYI6Y
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
Brad Neuberg
Website: http://codinginparadise.org

/git merge develop


PEAR-1860 - Standardize data fetching slices (part 1)

Description
Converts simple graphql queries to createApi. Moved around/consolidated some types but overall these ones are pretty straightforward swaps.
Checklist

[ ] Added proper unit tests
[ ] Left proper TODO messages for any remaining tasks
[ ] Scanned for web accessibility with aXe, and mitigated or documented
flagged issues

Screenshots/Screen Recordings (if Appropriate)

I looked around these areas: case summary > biospecimen section; cancer distribution; cart; cohort comparison; repository; cart; mutation and gene summary. Lemme know if I've missed anything.
Issues

Getting a runtime error if I add file(s) to the cart, then go to the cart:

__
Feel free to merge if 1. is fixed and this passes code review when I'm out.

Issue 1 is fixed. looks good. 👍


Escape quotes around GRUB_CMDLINE_LINUX value.

This fixes an issue in which GRUB_CMDLINE_LINUX would be appended to /etc/default/grub without any quotes around its value. In the event that the value contains spaces, this prevents grub2-mkconfig from succeeding.

Example without this change (on Amazon Linux 2):
GRUB_CMDLINE_LINUX=nouveau.modeset=0 rd.driver.blacklist=nouveau

and with this change:
GRUB_CMDLINE_LINUX="nouveau.modeset=0 rd.driver.blacklist=nouveau"

Hi @cartermckinnon
Thank you for the pull request, can you please sign the commit(s), see: CONTRIBUTING.md
Also can you please provide some context, were you only seeing this on AL2 (RHEL7-like) ? Which NVIDIA driver branch(es) is this targeting? Strange that this has not come up before.
So the other thing that I'm a bit fuzzy on is why this %post GRUB logic still exists in this .spec, it should have been moved to yum-packaging-nvidia-kmod-common since several branches ago, at least it did for RHEL8/RHEL9/Fedora.

RHEL7: rhel7/nvidia-kmod-common.spec#L84
RHEL8/RHEL9/Fedora: rhel8/nvidia-kmod-common.spec#L94

So maybe it would be better suited to make the change in that repo?

We (EKS Managed Nodes) have had a workaround in place for this for a couple years 😄. I believe we tried to get it addressed, and it was partly fixed; but I'm trying to close the loop. Our GPU AMI is based on AL2, so that's the only distro I have context on. In our latest release, we're installing nvidia-driver-latest-dkms version 470.57.02-1.el7, which has this issue. I can totally create a PR in the correct place (with signed commits -- sorry about that).

Thanks, Carter! Sorry it took so long to review this and get this into the code. I've merged in your change, as well as deployed it internally in upcoming driver branches (those after r525) and you should see those changes come back around in the nvidia-driver and nvidia-kmod-common repos here when we release those drivers.

Can this change also make it back into the 470 branch of the drivers?


Add storageClass placeholders in helm chart

In the default values, add storageClass placeholders for all third party services
The default value should be null (use cluster default storage class)

implemented in helm version 2.3.27


Split out a tools/setup from tools/ to decrease clutter

We now have a bunch of tools under tools, many of which are only used as part of the development environment setup process.  It probably makes sense to move a bunch of those into a setup/ subdirectory to both make their purpose more clear and clean up the directory of commands one is unlikely to run.  Good targets include:

download-zxcvbn
generate-test-credentials
generate-fixtures
postgres-init-dev-db
postgres-init-test-db
setup-git-repo
emoji_dump
install-phantomjs
py3_test_reqs.txt

If someone's going to work on this, please do 1 commit per command so it's easy to review and read, and please use grep to confirm you updated all references to the relevant command.

@timabbott working on this now.

BTW, we want to move to tools/setup/ or setup/?

tools/setup.  scripts/ is the scripts that are used in production, tools/ is scripts not used in production, and we already have a scripts/setup for the setup-only scripts used in production, so tools/setup would be the natural thing to do here.

Got it.

(Part of the motivation is that some of the development environment scripts are dangerous to run in production since they might e.g. delete the entire database without prompting; so we don't include them in the production tarball at all by excluding tools/)

ok


I need to understand the proper way to implement the grab API . because of async manner I couldn't able to handle it .

I am trying to get the text from one place and verify it in second place.
I am getting promise object instead of grabbed text

Provide console output if related. Use --verbose mode for more details.

# paste output here

Provide test source code if related

Scenario('FAV add & deletion from MIni guide and verify from settings fav list',(I) => {
    var text = "";
    I.navigateTo('watchTv')
    //for (var i =0 ; i<2;i++)
    {
           text = I.grabTextFromXpath();
           console.log("Sumiran within :: Channel name and number "+text);
           I.navigateTo('watchTv','options','addChannel');
            I.pressKey("Enter")
            console.log("after within :: Channel name and number "+text);
            I.navigateTo('settings','favorites','favoritesList')
            within({frame: "#SETTINGS"},() => {
                console.log("before checking:: Channel name and number "+text);
                I.seeTextEquals(text,'//*[@id="secondSubMenuList"]/div[2]/p[1]');
            })
    }
});

In Custom step file, I have written the function
 grabTextFromXpath : function() {
        var text;
          within({frame: "#ZAPPER"}, async() => {
          text = await I.grabTextFrom('//*[@id="animatedMiniguide"]/div[6]/div[1]/span[1]');
          console.log("EXACT :: Channel name and number "+text);

      });
      return text;
        }

In my test I am not getting text variable data.

CodeceptJS version:
NodeJS Version:
Operating System:
Protractor || WebDriverIO || Nightmare version (if related)
Configuration file:

# paste suite config here

I guess you can try to write your method using async:
async function grabTextFromXpath()
...

Then in your test file:
Scenario('FAV add & deletion from MIni guide and verify from settings fav list', async (I) => {
    var text = "";
    I.navigateTo('watchTv')
    //for (var i =0 ; i<2;i++)
    {
           text = await I.grabTextFromXpath();
           console.log("Sumiran within :: Channel name and number "+text);
...

I guess you can try to write your method using async:
async function grabTextFromXpath()
...

Then in your test file:
Scenario('FAV add & deletion from MIni guide and verify from settings fav list', async (I) => {
    var text = "";
    I.navigateTo('watchTv')
    //for (var i =0 ; i<2;i++)
    {
           text = await I.grabTextFromXpath();
           console.log("Sumiran within :: Channel name and number "+text);
...

Same thing happened ,
because of async function, I got the text result in later stage and code executed first .

Check the docs for within, please. There's an example about how to return a value.

Many Thanks to all . .


Package upgrade: flutter_secure_storage 4.2.0 --> 5.0.0

Summary
Package upgrade: flutter_secure_storage 4.2.0 --> 5.0.0
Changelog
[General] [Change] - Upgrade flutter_secure_storage from 4.2.0 to 5.0.0 (changelog)
Test Plan
Regression test the following areas:
./lib/main.dart
./lib/core/providers/wayfinding.dart
./lib/core/providers/user.dart

Deferred


chore: In Chinese language, the top navigation bar button needs to …

…be translated into Chinese
Fixes: #[Add issue number here]
Changes:

Screenshots of the change:

LGTM except couple some neats.

Changes in yarn.lock files should not be included. This file should remain the same. Please fix it.
Please modify your pull request title and description to something shorter in length.

Something like chore: add translation for "Resource" button for the pull request title;
Something like Changes: In Chinese language, the "Resource" button in  navigation bar needs to be translated into - -Chinese for description would be way better.
Delete the Fixes: #[Add issue number here] part,  since there is not an issue for it (You can definitely create an issue as well but it is up to you).
A couple of screenshots to show the before/after could help as well.

cc @Baoyuantop @guoqqqi @bzp2010 @juzhiyuan @SkyeYoung

@juxianzheng
You can see a preview of the changes in this section of the PR, please check it yourself after the changes are made

Here are some other questions

@guoqqqi  undefined has been fixed in #1029.
@juxianzheng pls merge current master into the PR branch. If you encounter some problems, please feel free to ping me :D

✅ Deploy Preview for apache-apisix ready!
Name	Link
🔨 Latest commit	882df08
🔍 Latest deploy log	https://app.netlify.com/sites/apache-apisix/deploys/6257d6363f3bb00009631752
😎 Deploy Preview	https://deploy-preview-1024--apache-apisix.netlify.app
📱 Preview on mobile
Toggle QR Code...
To edit notification comments on pull requests, go to your Netlify site settings.

Please note: each PR has its Preview Link, you could see what has been changed.

Plugin Hub needs to be updated with "插件市场"

✅ Deploy Preview for apache-apisix ready!
Name	Link
🔨 Latest commit	882df08
🔍 Latest deploy log	https://app.netlify.com/sites/apache-apisix/deploys/6257d6363f3bb00009631752
😎 Deploy Preview	https://deploy-preview-1024--apache-apisix.netlify.app
📱 Preview on mobile
Toggle QR Code...
To edit notification comments on pull requests, go to your Netlify site settings.

Please note: each PR has its Preview Link. So you could see what has been changed.

Plugin Hub needs to be updated with "插件市场"

I noticed that this issue was not addressed🤔

@juzhiyuan we need rerun the preview task to determine if the Plugin Hub's label problem has been fixed.

@Baoyuantop "插件市场" has been fixed.


Fix radial annotator right click exception

STR: right click on a radial annotator, get an exception.
I think this is right?

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 58.20%.  Consider uploading reports for the commit 2da89e9 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@               Coverage Diff                @@
##           development    #3863       +/-   ##
================================================
- Coverage        84.74%   58.20%   -26.55%
================================================
  Files             2105     1624      -481
  Lines            77769    50485    -27284
================================================
- Hits             65906    29383    -36523
- Misses           11863    21102     +9239

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


[misc] Switch from JSCS to ESLint

I understood from #3943 and #3217 that there was a plan to replace JSCS by ESLint, since development of JSCS has stopped. This PR performs that migration. The JSCS rules have been replaced by their (closest) equivalent in ESLint.
When running the new lint task I encountered quite some linting errors, despite the rules being equivalent. I went over the errors one by one, and concluded that ESLint is just much better at parsing and identifying the javascript styling. JSCS applied its indentation requirement incorrectly for example, or did not require the same object curly bracket spacing for import statements. All the errors have been fixed.
My suggestion would be to migrate from JSHint to ESLint as well, and to furthermore extend the ESLint config with the eslint:recommended rules, which are good at identifying common causes of bugs and errors.

I think switching from JSCS to ESLint would be a good time to consider Prettier (via eslint integration)
What do you think?

That's even easier of course. In that case I would let prettier handle the 'styling' part, and just extend the eslint:recommended rules for sane coding best practices.

@TheDancingCode - let's go with ESLint (recommended settings are fine) and Prettier. You can override to make the lines longer (140char is fine).

Just a couple of questions:

Do I remove JSHint as well? (I recommend it.)
Do I use the grunt plugins of Prettier and ESLint, or the modules directly in npm scripts? (I recommend the latter)
Do I also override Prettier to use single quotes?

@TheDancingCode I think you're right on all 3: remove jshint, use prettier/eslint directly and use the ---single-quote flag / config for prettier to minimise formatting changes.

Alright! Will do.


Adds calculator for spawn mass configuration

accidentally removed the maxcells bit on the first commit, so i readded it on the 2nd one.

Wtf, why do they need a website to calculate a simple formula? If they can't use a calculator they shouldn't be using MultiOgar lmfao.

XD

@MastaCoder idk. some people just dk how to calculate the right thing. i get questions on how to do this and that whatever

If they don't know how to calculate why are they using MultiOgar >:( It's explicitly stated in the code how to do it..


Remove git dependencies from Cargo.toml

Currently wash depends on oci-distribution, control-interface and wasmcloud-host as git dependencies rather than pulling them from crates.io. Once these crates are published, wash should be changed to pull them from crates.io. After this is completed, we can resume pushing releases of wash to crates.io for users to install via
cargo install wash-cli

To close this issue, we should also include the Cargo / crates.io tags in the repository README so we can have version / actively maintained / etc badges


Exalted 3e

Adding roll template, cast button and description box to sheet.

This branch appears to have some conflicts, could you resolve these so I can merge? Thanks!

Seems like me and another author was working on this sheet at the same time. Fixed the conflicts.


Why is calling init_args_and_threads multiple times from the same process not recommended?

Hi,
I need to initialize the coinrun library multiple times in the file (separately for train / test), and I was able to do so without any visible issues. I did notice though that it's mentioned in the function doc of init_args_and_threads  to not do this.
https://github.com/openai/coinrun/blob/601de520abec526c101eb87cb445c612a9087407/coinrun/coinrunenv.py#L95-L97
Is there a reason behind this? (Trying to understand why that is the recommendation to avoid any unknown issues)
/cc @christopherhesse @kcobbe

I wrote a quick wrapper to wrap a coinrun env inside a subprocess (pretty similar to SubprocVecEnv). https://gist.github.com/ankeshanand/24d6f45d17cc44a9e0c9d71a636d537e

Nice!  Is there a reason it doesn't just use SubprocVecEnv?

This is pretty similar to SubprocVecEnv albeit some minor differences.
From what I got, SubprocVecEnv expects a list of env_fns and converts them into a VecEnv. In this case, we already have a VecEnv (and thus don't need the unsqueeze when doing step) that we want to wrap in a subprocess.

Oh right, unfortunate.


Disable default features of git2 to enable avoiding openssl in builds

Problem
When depending on the cargo crate, the git2 dependency has default features enabled which forces bringing in the openssl dependency. It would be great if that dependency had default-features = false attached to it, perhaps even with a feature flag, so that dependents of cargo can have a more static binary experience.
Proposed Solution
I propose that we change the dependency in Cargo.toml for git2 to also disable default features. If the openssl dependency required for git2 and I'm missing the use case, then it would be great if that could be enabled in a feature flag that could be included as a default feature for cargo.
Notes
I may be missing a core reason why openssl is required for the git2 library, and would like to know if that's the case

I propose that we change the dependency in Cargo.toml for git2 to also disable default features. If the openssl dependency required for git2 and I'm missing the use case, then it would be great if that could be enabled in a feature flag that could be included as a default feature for cargo.
I may be missing a core reason why openssl is required for the git2 library, and would like to know if that's the case

I'm assuming its required to pull registries and git dependencies that require authentication.  If we allow it to be disabled, we need to make sure that the version of cargo pulled in by rustup / integrators has it enabled, whether by making sure they enable it or having it enabled by default.
In general, I'd recommend finding the reasons for why something is before removing it so you can plan for whatever that reason is.
Something else to keep in mind is that the cargo crate API is not a priority for the cargo team and we tend to discourage its use compared to calling cargo commands with the help of crates like cargo_metadata and escargot.


Wrong locale passed to symfony's MessageSelector

Given a translation file
# resources/lang/en/example.php
return [
  'items' => ':count item|:count items',
];

And app.fallback_locale of en,
Doing this in artisan tinker console will raise error:
Lang::setLocale('ru');
Lang::choice('example.items', 5);

The reason being the Translator calls symfony's MessageSelector's choice with locale parameter ru while passing key from en (:count item|:count items) which has different rule and thus throwing error.
Offending line.

May I know why this issue is closed? Is this not a bug? If it is, wouldn't keeping this open allow others to find this bug and maybe even send PR for it?

Also experiencing this issue. Any reason this is closed? Is a fix already in the pipeline?


CocoaPods

I'd be cool to also add CocoaPods support. I done this implementation myself last month for my library. Just follow this post and this checklist.

@lfarah Thanks for the suggestion, It took some time to figure it out since our dependencies didn't have the same names on Carthage and pods, this should be available pretty soon now

Awesome! 🎉

@lfarah  Happy to announce Cocoaods support \o/


[Bug]: Not able to use BM25Retriever with ElasticSearch Vector DB

Bug Description
Hi,
BM25 retriever works fine if i store the embeddings in local or Faiss vector db. But when i am storing it in ES vector db it starts giving below error:
from llama_index.retrievers import BM25Retriever
bm25_retriever = BM25Retriever.from_defaults(docstore=index_ins_es.docstore, similarity_top_k=3)

How to fix this please?
Version
8.48
Steps to Reproduce
from llama_index.retrievers import BM25Retriever
bm25_retriever = BM25Retriever.from_defaults(docstore=index_ins_es.docstore, similarity_top_k=3)
with ElasticSearch vector DB
Relevant Logs/Tracbacks
No response

🤖
Hello @amitguptadumka,
I'm here to assist you with your issue. From the information you've provided, it seems like you're trying to use the BM25Retriever with embeddings stored in ElasticSearch Vector DB. However, the BM25Retriever in LlamaIndex version 8.48 does not support embeddings. This is evident from the warning message in the _retrieve method of the BM25Retriever class:
if query_bundle.custom_embedding_strs or query_bundle.embedding:
    logger.warning("BM25Retriever does not support embeddings, skipping...")

This means that if you try to use embeddings with the BM25Retriever, it will simply skip them and log a warning message.
To resolve this issue, you would need to use a different retriever that supports embeddings, or modify the BM25Retriever to support embeddings, which could be a complex task requiring a deep understanding of both the BM25 algorithm and how embeddings work.
If you want to continue using the BM25Retriever, you should avoid using embeddings and instead rely on the text-based retrieval capabilities of the BM25 algorithm.
You can find more details in the source code.
I hope this helps! If you have any other questions or need further clarification, feel free to ask.
Best, Dosu
Sources

llama_index/retrievers/bm25_retriever.py

This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.
Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.
If you want to continue the conversation, start your reply with @dosu-bot.

But i am able to use it with Faiss vector DB. Basically i am trying to use hybrid way of lexical+semantic retrieval.
Can you please help me how to create a hybrid retriever as above. If BM is not supported what should i use for lexical?

@dosu-bot
The exact error message is as below:
ZeroDivisionError                         Traceback (most recent call last)
Cell In[6], line 4
1 from llama_index.retrievers import BM25Retriever
2 #nodes = service_context.node_parser.get_nodes_from_documents(documents)
3 #nodes = service_context.node_parser.get_nodes_from_documents(documents)
----> 4 bm25_retriever = BM25Retriever.from_defaults(docstore=index_ins_es.docstore, similarity_top_k=3)
File ~/anaconda3/envs/llama_index_venv/lib/python3.10/site-packages/llama_index/retrievers/bm25_retriever.py:58, in BM25Retriever.from_defaults(cls, index, nodes, docstore, tokenizer, similarity_top_k)
53 assert (
54     nodes is not None
55 ), "Please pass exactly one of index, nodes, or docstore."
57 tokenizer = tokenizer or globals_helper.tokenizer
---> 58 return cls(
59     nodes=nodes,
60     tokenizer=tokenizer,
61     similarity_top_k=similarity_top_k,
62 )
File ~/anaconda3/envs/llama_index_venv/lib/python3.10/site-packages/llama_index/retrievers/bm25_retriever.py:32, in BM25Retriever.init(self, nodes, tokenizer, similarity_top_k)
29 self._similarity_top_k = similarity_top_k
30 self._corpus = [self._tokenizer(node.get_content()) for node in self._nodes]
---> 32 self.bm25 = BM25Okapi(self._corpus)
File ~/anaconda3/envs/llama_index_venv/lib/python3.10/site-packages/rank_bm25.py:83, in BM25Okapi.init(self, corpus, tokenizer, k1, b, epsilon)
81 self.b = b
82 self.epsilon = epsilon
---> 83 super().init(corpus, tokenizer)
File ~/anaconda3/envs/llama_index_venv/lib/python3.10/site-packages/rank_bm25.py:27, in BM25.init(self, corpus, tokenizer)
24 if tokenizer:
25     corpus = self._tokenize_corpus(corpus)
---> 27 nd = self._initialize(corpus)
28 self._calc_idf(nd)
File ~/anaconda3/envs/llama_index_venv/lib/python3.10/site-packages/rank_bm25.py:52, in BM25._initialize(self, corpus)
48             nd[word] = 1
50     self.corpus_size += 1
---> 52 self.avgdl = num_doc / self.corpus_size
53 return nd
ZeroDivisionError: division by zero

Hey @amitguptadumka, to use hybrid search with elastic search, you should directly use the hybrid search query mode on the ElasticsearchStore itself.

Hey @amitguptadumka, to use hybrid search with elastic search, you should directly use the hybrid search query mode on the ElasticsearchStore itself.
For example:
query_engine = index.as_query_engine(vector_store_query_mode="hybrid")

@Disiok : So here i'm not exactly using query_engine to generate response rather my focus is just on the retriever for context. So while doing that i am not able to use hybrid way (semantic+lexical) with ES, since according to bot BM25 is not supported with elastic. just want to know how to build the lexical retriever to make it hybrid with ES?

you can pass the same option for retriever:
retriever = index.as_retriever(vector_store_query_mode="hybrid")

vector_store_query_mode="hybrid"

Sure @Disiok Thanks. Also wanted to know which retriever it usages internally for the lexical/keyword search and what ratio for top_k is being retrieved from both.

I am also getting division by zero using Chromadb. Sadly, ChromaDB doesn't support Hybrid search so I can't use the solution above...


[SPARK-48338][SQL] Check variable declarations

What changes were proposed in this pull request?

Checking wether variable declaration is only at the beginning of the BEGIN END block.
Why are the changes needed?

SQL standard states that the variables can be declared only immediately after BEGIN.
Does this PR introduce any user-facing change?

Users will get an error if they try to declare variable in the scope that is not started with BEGIN and ended with END or if the declarations are not immediately after BEGIN.
How was this patch tested?

Tests are in SqlScriptingParserSuite. There are 2 tests for now, if declarations are correctly written and if declarations are not written immediately after BEGIN. There is a TODO to write the test if declaration is located in the scope that is not BEGIN END.
Was this patch authored or co-authored using generative AI tooling?

No

@davidm-db

thanks, merging to master!


[WIP] Use config/secrets.yml and auto-filter credentials information

With this PR, you can put credentials information in your config/secrets.yml file, which has been added to the .gitignore file. The format of your secrets.yml file should be subdivided by provider, like so:
development:
  azure:
    client_id: xxxxxxxxxx
    client_secret: yyyyyyyyyy
    tenant_id: zzzzzzzzzz

test:
  azure:
    client_id: xxxxxxxxxx
    client_secret: yyyyyyyyyy
    tenant_id: zzzzzzzzzz

Within your specs, you can then refer back to this information like so:
Rails.application.secrets.azure
Rails.application.secrets.amazon
# and so on

With that in place, I added logic into the spec_helper to automatically filter on any subkeys you create under any particular provider. So, for the example above, it will filter "client_id", "client_secret" and "tenant_id".
When you run your tests and generate a new VCR cassette, the actual values for those keys inside the refresher.yml file will be replaced with e.g. <AZURE_CLIENT_ID>, <AZURE_CLIENT_SECRET> and <AZURE_TENANT_ID>, with "AZURE" replaced with whatever the provider name is.
This way you don't have to hand edit your test file(s) and the refresher.yml file every time you want to submit a PR.
As part of the PR, I modified the Azure refresher spec, too.

@Fryguy Made your suggested changes.

can you add secrets.yml.sample?

@kbrock Done.

Looks good! Thanks for doing this!

I like it.


Useful metrics

Operationally, there are some obvious things to measure per flow node. These should be exposed via /metrics if they aren't already:
DB connectivity:

number of active pool connections (vs. idle)
sql span histograms for journalling

One upper limit on how many concurrent stage operations we can sustain per second is (max pool connections) / <sql query span>.
Executor connectivity:

number of active fn invocations the executor is waiting on.

Error counts:

fn failures
db errors
lower-level errors: eg, socket availability (we might conceivably bump into this if we have a naive http/1.1 connection to the fn api).

For DB connectivity we have spans of the time taken by sql persistence operations (by operation). These are then collected in histogram by the prometheus mapper. I would argue that we also need quantiles (therefore use prometheus Summaries instead of Histograms), so I can add those.
Counters (number of connections, number of fn invocations, ...) are supported in prometheus but I'm not sure if opentracing has a concept for those (still, I'm a bit ignorant when it comes to opentracing).

I don't mind using raw prometheus (or something wrapped around it) if it means we can get counters out for useful things.

I don't think opentracing concerns itself with metrics/gauge stuff - and retconning numbers from the events is a bad idea, I assume we'll need to generate propmetheus metrics from internal gauge/counters alongside the event metrics.

Note: https://github.com/fnproject/flow/pull/114 adds a few of these.

DB timings (already there)
API call timings
Number of currently active Flows
Number of currently active Fn invocations
Duration of individual flows (aggregated as histogram / quantiles)