ValueError: Required Redis database module searchlight with version >= 20600 not installed. Refer to Redis Stack documentation:

Tried the given code
from redisvl.extensions.llmcache import SemanticCache
llmcache = SemanticCache(
    name="llmcache",                     # underlying search index name
    prefix="llmcache",                   # redis key prefix for hash entries
    redis_url="redis://localhost:6379",  # redis connection url string
    distance_threshold=0.1               # semantic cache distance threshold
)

and getting given error
using python 3.9 and redisvl==0.2.1
ValueError: Required Redis database module searchlight with version >= 20600 not installed. Refer to Redis Stack documentation:

Can you share the output of the MODULE LIST command on your Redis instance (using Redis cli)?
and verify which version of Redis you are using?

@tylerhutcherson  i am using redis-cli 7.2.5

You have the wrong version of  Redis, follow the instructions here for your OS https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/

@bsbodden
Since I am using ubuntu OS,I am using these steps from the official documentation
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis-stack-server

And it installing redis-cli 7.2.5 version.
Here what I should change?

The instructions you followed should have installed the proper version of Redis with the modules required. It is possible that you had a prior version on your Linux machine and that's what's running. Try a ps aux | grep redis and if the right Redis is running you should see something like:
root         8  0.0  0.4 3102496 150696 ?      Sl   Jun18   0:03 /opt/redis-stack/nodejs/bin/node -r /opt/redis-stack/share/redisinsight/api/node_modules/dotenv/config share/redisinsight/api/dist/src/main.js dotenv_config_path=/opt/redis-stack/share/redisinsight/.env
root         9  0.1  0.1<PHONE_NUMBER>6 ?        Sl   Jun18   2:12 /opt/redis-stack/bin/redis-server *:6379
root        63  0.0  0.0   2884  1280 pts/0    S+   17:38   0:00 grep redis

The from the redis-cli you can type module list to confirm that the modules have been correctly loaded:
<IP_ADDRESS>:6379> module list
1) 1) "name"
   2) "bf"
   3) "ver"
   4) (integer) 999999
   5) "path"
   6) "/opt/redis-stack/lib/redisbloom.so"
   7) "args"
   8) (empty array)
2) 1) "name"
   2) "ReJSON"
   3) "ver"
   4) (integer) 999999
   5) "path"
   6) "/opt/redis-stack/lib/rejson.so"
   7) "args"
   8) (empty array)
3) 1) "name"
   2) "graph"
   3) "ver"
   4) (integer) 999999
   5) "path"
   6) "/opt/redis-stack/lib/redisgraph.so"
   7) "args"
   8) 1) "MAX_QUEUED_QUERIES"
      2) "25"
      3) "TIMEOUT"
      4) "1000"
      5) "RESULTSET_SIZE"
      6) "10000"
4) 1) "name"
   2) "search"
   3) "ver"
   4) (integer) 999999
   5) "path"
   6) "/opt/redis-stack/lib/redisearch.so"
   7) "args"
   8) 1) "MAXSEARCHRESULTS"
      2) "10000"
      3) "MAXAGGREGATERESULTS"
      4) "10000"
5) 1) "name"
   2) "timeseries"
   3) "ver"
   4) (integer) 999999
   5) "path"
   6) "/opt/redis-stack/lib/redistimeseries.so"
   7) "args"
   8) (empty array)
6) 1) "name"
   2) "redisgears_2"
   3) "ver"
   4) (integer) 999999
   5) "path"
   6) "/opt/redis-stack/lib/redisgears.so"
   7) "args"
   8) 1) "v8-plugin-path"
      2) "/opt/redis-stack/lib/libredisgears_v8_plugin.so"

FYI redis-cli is just the command line interface and it's version it's not necessarily the version of the Redis server you're running. +

@bsbodden
I installed the redis as per the official documentation
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis

But still getting the
ValueError: Required Redis database module searchlight with version >= 20600 not installed. Refer to Redis Stack documentation
``` error in **SemanticCache()** and  empty module list.
Here is the screenshot
![Uploading Screenshot from 2024-07-03 14-40-58.png…]()

The sudo app-get install redis will not install the right version, you need to do a sudo apt-get install redis-stack-server. See https://redis.io/docs/latest/operate/oss_and_stack/install/install-stack/linux/

@bsbodden
Worked it thanks

@bsbodden
How to configure the maximum cache size in redis-stack-server
from documentation I could find this configuration- https://redis.io/docs/latest/operate/oss_and_stack/management/config-file/
but which is the exact key in configuration which decides the total storage size of the semantic cache


Sieve rules do not seem to get processed

I am unable to get any rules processed by the LDA.
I have installed modoboa using the online installer, and enabled the sieve rules according to the documentation here:
http://modoboa.readthedocs.org/en/latest/integration/imap_and_smtp.html#managesieve-sieve
At first, dovecot refused to restart because of this line:
service managesieve {
  # Max. number of ManageSieve processes (connections)
  process_count = 1024
}

Which gives this error when enabled:
doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/20-managesieve.conf line 32: Unknown setting: process_count

Commenting it out seems to work, and I also get a response from Pigeonhole on port 4190:
"IMPLEMENTATION" "Dovecot Pigeonhole"
"SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave"
"NOTIFY" "mailto"
"SASL" "PLAIN"
"STARTTLS"
"VERSION" "1.0"
OK "Dovecot (Ubuntu) ready."

Creating rules from the Modoboa webinterface also seems to be ok (and also works from Roundcube), but even the simplest of rules (Send to spam is Subject contains 'hello') gets ignored.
Is there something I am missing?

Try to edit the 20-lmtp.conf file and to modify the mail_plugins settings as follows:
mail_plugins = $mail_plugins quota sieve

This seems to have been the issue indeed.
With that change the filters work fine, both from Modoboa and Roundcube.
Thanks!


Null out TGC domain if blank

Closes #1601

+1

@frett This should likely solve the problem with SSO sessions not working under MFA. Would you please merge and re-test?


Feature/92 create reusable Input components

Overview

Implemented "Input" component
Based on it, implemented "SearchInput" component and "NumberInput" component

Review Points

I'll write a comment on each parts where I especially want you to take a look at.

Note

Decided to create SearchInput component separately from Input component, because to add Search Icon, we needed to wrap input tag with div tag, which is unnecessary for normal inputs. Didn't want to make Input component too complex.

Decided to create NumberInput component separately from Input component, because to default input with type "number" accept "e","E","+","-",and leading zero. We needed some logic to except these inputs when we want, and this logic will be unnecessary for normal inputs. Didn't want to make Input component too complex.

Screenshots
Input(Rounded), search input, number input
https://github.com/genesis-tech-tribe/nishiki-frontend/assets/99339182/53dcb512-0f79-4f58-9350-6604f4af584a
Input(Square)
https://github.com/genesis-tech-tribe/nishiki-frontend/assets/99339182/501af181-419a-4bda-be92-6bbd0104ba4a

@kanta1207
Thank you for your implementation!! I have nothing to add other than @uskayyyyy 's points.
After handling points by @uskayyyyy,  you can merge it.
@uskayyyyy
Thank you for your detailed review!

@kotaaaa
Thank you for your comment !
@uskayyyyy
Thank you for your review! I fixed all the things we discussed about. I added 🚀 stamp to the topic I resolved.
Please take a look at them again on your convenience !

@uskayyyyy Resolved 2 additional points you mentioned!
Please confirm them again when you're available!

Added "h" prop to Input comp, to set the fixed height.  For now there're "h-10" and "h-12" in design, so set them as "sm" and "md".
The reason why I didn't use "height" was because "height" is already used in default "InputHTMLAttributes", that require us to omit default "height" if we want to use our original "height" property.
I thought it's better to keep  default "height" property from  "InputHTMLAttributes" as it is, so decided to use "h" as our original height property.

Thank you for modifying the code many times. The search input looks perfect to me! I approve because it's good enough to merge!
As for the input focus style, may I hear why you chose border rather than ring? After a concern, you can choose either update or merge right away. Thank you for your excellent job!
Small differences I found:
Using border, the content shrinks: https://github.com/genesis-tech-tribe/nishiki-frontend/assets/99148565/d65a7877-066c-4efe-bef4-f53df04ddc06
Using ring (or box-shadow), the content does not shrink, but the border remains: https://github.com/genesis-tech-tribe/nishiki-frontend/assets/99148565/d7d668e9-9718-4769-b16c-5248fbe02c8a
Using ring with border-transparent, the content does not shrink, and the border becomes invisible: https://github.com/genesis-tech-tribe/nishiki-frontend/assets/99148565/50a83d2f-08fc-4891-bb48-cf52dddc8871

Thank you for your comment and the precise reviews!
And sorry, should've mentioned that...
The context is, I tried using only "ring", and border persists, so I just went for changing "border".
Using ring with border-transparent is definetly the best!! Couldn't come up with that.
Thank you for bring it up. I will follow your advice and fix it, and then will merge it!


feat(SDK): add Ximmerse SDK as a new SDK option.

This integration is compatible with Ximmerse SDK v2.0.1(available here).
Setup up process is very similar to any other SDK:

Import Ximmerse SDK v2.0.1
Add Scripting Define Symbols: VRTK_SDK_XIMMERSEVR
Drag VRCameraRig to the scene
Use quick switch to set SDK to XimmerseVR
Actual Boundaries = VRCameraRig(scene object)
Actual Headset = CenterEyeAnchor(scene object)
Actual Left Controller = LeftHandAnchor(scene object)
Actual Right Controller = RightHandAnchor(scene object)
Model Alias Left Controller = _VisibleObject(scene object, child of LeftHandAnchor)
Model Alias Right Controller = _VisibleObject(scene object, child of RightHandAnchor)

There were the following issues with your Pull Request

Commit: e7c56b10f21c1c12faaddd38c9e4d04886ff8919
Your commit message body contains a line that is longer than 72 characters

Guidelines are available at https://github.com/thestonefox/SteamVR_Unity_Toolkit

This message was auto-generated by https://gitcop.com


ACTION REQUIRED: Changes to pulling Chainguard Images

Hey there Chainguard here.
We noticed that you are using Chainguard Images, thank you! We wanted to make you aware of an upcoming change that will impact your project.
Starting August 16, 2023 public users will no longer be able to pull images from our registry (cgr.dev/chainguard) by tags other than latest or latest-dev. Please see the announcement for more information.
You are currently using the following.
In https://github.com/navikt/familie-prosessering/blob/65d5b1ebee2cd12030fd298feb058bad8ae5a8e1/Dockerfile:

cgr.dev/chainguard/node:18

Our goal is to prevent your project from experiencing any disruptions. Please see the migration guide for options.
If there's more we can do to help please reply to this issue or email us at<EMAIL_ADDRESS>Thank you!

Johan har fikset


After end of playlist and option "Skip to next track" second swipe is not working

I have folders with multiple tracks and also folders with just one track.
Currently I have the activated the option for second swipe: Skip to next track.
If my daughter listens the card with just one track inside it, and the track ended she wants to rehear it.
Therefore she swipes the card again. The systems does not react.
I assume this is because of the second swipe option. It wants to play the next track which does not exist, so nothing will be played.
Is it possible that the system recognizes that the playlist is ended because there is no track in the playlist and then replays the whole folder?
There is a workaround to start playing another card. But this is just a workaround in my opinion. The user friendly way was to replay the playlist, even if it is not the selected option for second swipe.
Would be great if this could be implemented :)

Is there any possibility to implement this? would be great :)

The behavior above could be easily changed if desired now that https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/914 was fixed in 2.0.
in https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/develop/scripts/rfid_trigger_play.sh
PLAYPLAYLIST=skipnext needs to be PLAYPLAYLIST=yes if the playlist is over.


Clean up the mess around daml process runner working directory

In a normal project, the test library code will be running in the project root (although I can see the use case when we want to use this property though). Now, we are testing the library against a test project, which is under src/main/resources/pingpong, but the working directory for the test library during the test run is the project root of this whole project. Which is not what we want, we want the project root will be src/main/resources/pingpong in our tests.
Since I can see why someone want to use this option, I think we should keep it.
Now the behavior of the daml executable is to look for a daml.yaml in one of the parent folders, and if there is none, it will use the default SDK whatever that is, silently. Question is: do we want that behavior, or we want to error out. I tend to favor the latter, since that is more explicit. I just got bitten by this behavior... But this is something we need to decide on.
There is another option, to not rely on daml.yaml, but use and environment variable to specify the SDK version, but I think that's not a real option. We might want other settings from daml.yaml as well.
Now the implementation details of this is another question. We had to hurry with this PR, so a lot of quick'n dirty stuff went in. It would be very good to clean this whole mess up, with proper error handling, etc.
Originally posted by @bartfaitamas in https://github.com/digital-asset/lib-daml-jvm-test/pull/40/review_comment/create

Fixed in #42.


[NEW ICONS]: Arc Browser, Stylus & TiDB

Add New Icon(s)
Icon Details

Icon ID
Icon

arcbrowser-auto

arcbrowser-dark

arcbrowser-light

stylus-auto

stylus-dark

stylus-light

tidb-auto

tidb-dark

tidb-light

Notes

Arc Browser is a freeware web browser that aims to act as an operating system for the web and tries to integrate web browsing with built-in applications and features.
Stylus is a preprocessor CSS language that aims to enhance the flexibility and maintainability of CSS code. It provides a set of features and syntax improvements over standard CSS syntax, making it easier and more efficient to write and manage stylesheets for web development.
TiDB is an open-source distributed SQL database that is designed to support hybrid transactional and analytical processing (HTAP) workloads.

Closing
tandpfun/skill-icons#997, tandpfun/skill-icons#1007, tandpfun/skill-icons#960
Checklist

[x] Added icon(s) to the appropriate directory
[x] Updated documentation with the new icon(s)
[x] Verified the icon(s) display correctly
[x] If the icon has light and dark, verified the auto switch works correctly

ik what you mean ill do it


pickJsonSchemaProperties and $beforeInsert / $beforeUpdate hooks usage

Hey.
I've got a model with $beforeInsert, $beforeUpdate hooks where I set timestamps. I also want to use pickJsonSchemaProperties = true to clean all unwanted data.
class Page extends Model {
  static tableName = 'pages'

  static pickJsonSchemaProperties = true

  static jsonSchema = {
    type: 'object',
    required: ['url', 'seoTitle', 'seoDescription', 'isVisible'],
    properties: {
      url: { type: 'string', minLength: 2, maxLength: 20 },
      seoTitle: { type: 'string', minLength: 3, maxLength: 55 },
      seoDescription: { type: 'string', minLength: 10, maxLength: 154 },
      isVisible: { type: 'boolean' }
    }
  }

  $beforeInsert() {
    const date = new Date().toISOString()

    this.createdAt = date
    this.updatedAt = date
  }

  $beforeUpdate() {
    this.updatedAt = new Date().toISOString()
  }
}

The problem is that before hooks run first and my timestamps are cut after. Is it the correct behaviour or is it supposed to filter data -> run before hooks -> insert into db?

Json schema properties are picked in $formatDatabaseJson which is the last step before database. So what's happening is expected. One solution is to add the timestamps to jsonSchema.

@koskimas  Yeah, but this way I can pass this properties which I don't want to. Do I need to always clean the incoming data from them? This kinda kills the pickJsonSchemaProperties purpose.

I not following... Do you mean that you don't want createdAt and updatedAt to come from the outside world? Leaving them out from jsonSchema doesn't guarantee that. So nothing changes if you add createdAt and updatedAt to jsonSchma. If you want to be absolutely sure that createdAt is never updated (updatedAt gets overwritten in every case) you can override $parseJson to remove createdAt before a model instance is created.

@koskimas My use-case is the form data coming from client. The incoming object can be for example { url: 'page', ..., createdAt: 'hello' }.
I need to remove the fields that I don't want to receive so I wanted to set pickJsonSchemaProperties = true. This way, all incoming object properties that are not defined in jsonSchema are removed. Then I wanted hooks to add timestamps and save to database.
If I add timestamps to the schema, they won't be deleted and if received from outside - they will be replaced in before hooks.
Do you suggest to do this way or something better in this use-case?

I don't know if you read the comment I deleted, but that was a brain fart on my part. I can see why you would think that the properties are filtered as the first thing when pickJsonSchemaProperties is true. That makes absolute sense since jsonSchema is the "outside world schema" and not the database schema. pickJsonSchemaProperties is kind of an anti feature. Before, there was no such property and non-jsonSchema properties were always stripped. Then I realised that that's not what people always want and I made it optional, and then later changed the default value to true. It actually should work as you expect, but that's a breaking change and I don't know if I want to change it yet again.
You can achieve this by implementing $parseJson hook which is executed as the very first thing when a model is created.
class Person extends Model {
  $parseJson(json, opt) {
    delete json.createdAt;
    delete json.updatedAt;
    return super.$parseJson(json, opt);
  }
}

@koskimas yeah, I saw you turned pickJsonSchemaProperties false in 0.8.0.
Sorry, I'm a bit confused, I want to remove all fields that are not in jsonSchema properties.

if I use $parseJson to delete fields, I need to list all fields I want to delete (but I don't know all of them)
if I use pickJsonSchemaProperties = true and define this two fields (createdAt, updatedAt) in schema, their values will be replaced in beforeInsert/beforeUpdate hooks (but I have to control that they are replaced)

I'm a bit confused what to choose. Maybe beforeInsert/beforeUpdate can be executed after incoming fields are checked with jsonSchema so hooks will be not affected to fields removal?

And even if I define this fields in schema and use pickJsonSchemaProperties = true this will not work as createdAt is not replaced in beforeUpdate hook, only updatedAt is replaced. So, in this beforeUpdate hook I'll need to delete createdAt or something else =/

class Page extends Model {
  static tableName = 'pages'

  static pickJsonSchemaProperties = true

  static jsonSchema = {
    type: 'object',
    required: ['url', 'seoTitle', 'seoDescription', 'isVisible'],
    properties: {
      url: { type: 'string', minLength: 2, maxLength: 20 },
      seoTitle: { type: 'string', minLength: 3, maxLength: 55 },
      seoDescription: { type: 'string', minLength: 10, maxLength: 154 },
      isVisible: { type: 'boolean' }
    }
  }

  $beforeInsert() {
    const date = new Date().toISOString()

    this.createdAt = date
    this.updatedAt = date
  }

  $beforeUpdate() {
    this.updatedAt = new Date().toISOString()
  }

  $parseJson(json, opt) {
    delete json.createdAt;
    delete json.updatedAt;
    return super.$parseJson(json, opt);
  }
}

@koskimas thank you :)

@koskimas maybe the second variant can be included in the library with some model flag, smth like persistOnlySchemaProperties = true, what do you think?

@koskimas maybe the second variant can be included in the library with some model flag, smth like persistOnlySchemaProperties = true or maybe pickJsonSchemaProperties = true can work this way by default, what do you think?


Using Themes_on_rails and Liquid together

@chamnap  and others, kindly help out, i'm new to ruby on rails, i'm currently working on a project that required user to have a sub-domain under the main website, i'm currently using theme_on_rails to create themes but don't know how i can bring together, the templates (html and CSS) which reside on theme directory and Liquid engine.
i'll appreciate your help.
regards

Just add
gem 'liquid-rails'
It will work.

Thanks @chamnap i've done exactly but after loading the theme, it still make reference to the default page. {{ content_for_layout }} is loading from the main view not from the themes. do i need to adjust anything in the router?


panic due to concurrent map writes

I'm sometimes getting this panic when running multiple requests in parallel using a single webdav client:
	/usr/local/Cellar/go/1.14.6/libexec/src/runtime/panic.go:1116 +0x72 fp=0xc0001d9448 sp=0xc0001d9418 pc=0x10351d2
runtime.mapassign_faststr(0x1c15400, 0xc00001f0b0, 0x1ce5cd4, 0xd, 0x64)
	/usr/local/Cellar/go/1.14.6/libexec/src/runtime/map_faststr.go:291 +0x3de fp=0xc0001d94b0 sp=0xc0001d9448 pc=0x101529e
net/textproto.MIMEHeader.Set(...)
	/usr/local/Cellar/go/1.14.6/libexec/src/net/textproto/header.go:22
net/http.Header.Set(...)
	/usr/local/Cellar/go/1.14.6/libexec/src/net/http/header.go:37
github.com/studio-b12/gowebdav.(*BasicAuth).Authorize(0xc0005585c0, 0xc00001f0e0, 0x1ce1500, 0x8, 0x1cdc5ce, 0x1)
	/Users/jarek/go/pkg/mod/github.com/studio-b12/gowebdav@v0.0.0-20200303150724-9380631c29a1/basicAuth.go:32 +0x1d0 fp=0xc0001d9578 sp=0xc0001d94b0 pc=0x18d1c80
github.com/studio-b12/gowebdav.(*Client).req(0xc00001f0e0, 0x1ce1500, 0x8, 0x1cdc5ce, 0x1, 0x1e96e40, 0xc0002807a0, 0xc0001d97a0, 0x0, 0x0, ...)
	/Users/jarek/go/pkg/mod/github.com/studio-b12/gowebdav@v0.0.0-20200303150724-9380631c29a1/requests.go:28 +0x283 fp=0xc0001d9740 sp=0xc0001d9578 pc=0x18d6353
github.com/studio-b12/gowebdav.(*Client).propfind(0xc00001f0e0, 0x1cdc5ce, 0x1, 0x26cdc00, 0x1d1eebf, 0xcb, 0x1acf280, 0xc00028d2f0, 0xc0001d98b0, 0x0, ...)
	/Users/jarek/go/pkg/mod/github.com/studio-b12/gowebdav@v0.0.0-20200303150724-9380631c29a1/requests.go:93 +0x114 fp=0xc0001d9808 sp=0xc0001d9740 pc=0x18d7544
github.com/studio-b12/gowebdav.(*Client).ReadDir(0xc00001f0e0, 0x1cdc5ce, 0x1, 0x1cdc5ce, 0x1, 0x1cdc5ce, 0x1, 0xc0002a8520)
	/Users/jarek/go/pkg/mod/github.com/studio-b12/gowebdav@v0.0.0-20200303150724-9380631c29a1/client.go:164 +0x1a6 fp=0xc0001d98e8 sp=0xc0001d9808 pc=0x18d2476

Should parallel calls using single webdav client be supported?

@jkowalski Can you please provide code to reproduce this behavior? And what WebDav server do you use?

package main

import (
	"log"
	"net/http"
	"net/http/httptest"
	"sync"

	"github.com/studio-b12/gowebdav"
	"golang.org/x/net/webdav"
)

func basicAuth(h http.Handler) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		if user, passwd, ok := r.BasicAuth(); ok {
			if user == "user" && passwd == "password" {
				h.ServeHTTP(w, r)
				return
			}

			http.Error(w, "not authorized", 403)
		} else {
			w.Header().Set("WWW-Authenticate", `Basic realm="x"`)
			w.WriteHeader(401)
		}
	}
}

func main() {
	mux := http.NewServeMux()
	mux.HandleFunc("/", basicAuth(&webdav.Handler{
		FileSystem: webdav.Dir("/"),
		LockSystem: webdav.NewMemLS(),
	}))

	server := httptest.NewServer(mux)
	defer server.Close()

	cli := gowebdav.NewClient(server.URL, "user", "password")

	var wg sync.WaitGroup

	for i := 0; i < 2; i++ {
		wg.Add(1)

		go func() {
			defer wg.Done()
			f, err := cli.ReadDir("/")
			log.Printf("f: %v err: %v", f, err)
		}()
	}

	wg.Wait()
}

Run this with go -race repro.go and it prints:
╰─➤  go run -race repro                                                                                1 ↵
==================
WARNING: DATA RACE
Read at 0x00c00011cf50 by goroutine 9:
  github.com/studio-b12/gowebdav.(*Client).req()
      /Users/jarek/Projects/gowebdav/requests.go:45 +0x1276
  github.com/studio-b12/gowebdav.(*Client).propfind()
      /Users/jarek/Projects/gowebdav/requests.go:94 +0x15a
  github.com/studio-b12/gowebdav.(*Client).ReadDir()
      /Users/jarek/Projects/gowebdav/client.go:164 +0x1fb
  main.main.func1()
      /Users/jarek/Projects/repro/main.go:48 +0x9f

Previous write at 0x00c00011cf50 by goroutine 8:
  github.com/studio-b12/gowebdav.(*Client).req()
      /Users/jarek/Projects/gowebdav/requests.go:54 +0xd48
  github.com/studio-b12/gowebdav.(*Client).propfind()
      /Users/jarek/Projects/gowebdav/requests.go:94 +0x15a
  github.com/studio-b12/gowebdav.(*Client).ReadDir()
      /Users/jarek/Projects/gowebdav/client.go:164 +0x1fb
  main.main.func1()
      /Users/jarek/Projects/repro/main.go:48 +0x9f

Goroutine 9 (running) created at:
  main.main()
      /Users/jarek/Projects/repro/main.go:46 +0x4de

Goroutine 8 (running) created at:
  main.main()
      /Users/jarek/Projects/repro/main.go:46 +0x4de

The bug is because two different instances of req() are both racing to update request headers stored in c.headers
I think there are 2 required fixes:

Ensure you're setting c.auth only once - use mutex or sync.Once for that
Change Authorize() method to take http.Headers and set authentication directly on each request instead of on Client - move the call after copying headers from c.headers

I actually have made a fix and will send PR shortly.

@jkowalski thank you for your report and patch.
i skimmed though your improvement.
it's definitely a solution.
Here are my points which I have to think more about.

API changes in Authorize. I'd love to avoid it.
Losing the context (Client) in Authorize.
The Mutext, which is just needed for concurrency.

Any updates on this? without a fix in #37 I can reproduce this issue very frequently.

We are seeing the same error and I would love to see the fix merged :)

@jozuenoon I suppose you could use @jkowalski's fork for the time being.
@jkowalski What is the reason for moving to http.Request from Client?
Also, in requests.go, why are the Authorize call and the Header.Add loop rearranged? It's been quite a while since I've worked on this but if I remember correctly, that order was important.

The race condition is due to unsafe changes to c.auth and parallel modifications to the Client from two separate goroutines.
While i'm sure this could be made safer with a mutex around client, it's not really necessary to share the client (for writes) at all, since all requests are individually authorized anyway. The client in this case just provides additional headers to be set on each request, which is what my PR is doing.

@jkowalski thank you!
I changed my mind and applied your patch to keep the library working.
we should face #38 as next task.
Welcome!


bluejeans_list should display the meeting id so its easier to cancel meetings

It does when -detail option is provided.

Should be present by default because its required to cancel the meeting


html Status Page

Discussing #88 I posted a command to use a browser to render a dynamic web page on the LCD of the RaspiBlitz without using too much resources.
This weekend I've toyed around with that idea and made some svg-graphics that should render on the pi. The html-code so far is only a mockup, but it's possible to breathe life into this. @frennkie has already prepared python code to make the info-page more flexible.
I'd love to hear feedback from everyone. It's okay to shoot me down, if you think this is not the RaspiBlitz-Way of doing it. I won't take it personal.
You can take a look at it right here: https://jsfiddle.net/raumi75/g8zae1tL/2/
Please feel free to fork and improve it!

This would be a dark mode
https://jsfiddle.net/raumi75/g8zae1tL/31/

Great work. i hope you already got some feedback on twitter. Let me know if you have further revisions ready - I will share on twitter to get more feedback on it.

I am putting this on the v1.1 release milstone. But no pressure and no promise - the main focus of the 1.1 release will be making maintenace and recover easier - but every cool improvement otherwise that is ready by then (targeting (late) April) I love to include :)

i like the darkmode! will look good with a fancy case for the raspi.

@raumi75 I'm making progress on this.. do want to complete the mockup...?! :-D

HTML status page will get replaced with WebUI login on v1.8.0 release. Closing issue.

Closing issue.

Wasn't closed until now. Closing.


New version: Levitsky.FontBase version 2.16.8

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[X] Does your manifest conform to the 1.0 schema?

Microsoft Reviewers: Open in CodeFlow

#28016


sap.ui.table.Table: Multi-row selection via Shift key produces text selection artifacts

OpenUI5 version: latest
Browser/version (+device/version): Firefox, Chrome, IE 11
Any other tested browsers/devices(OK/FAIL):
URL (minimal example if possible): http://jsbin.com/reqitu/1/edit?html,output
User/password (if required and possible - do not post any confidential information here):
Steps to reproduce the problem:

Run the example and click on row 2
Shift-click on row 6
Note that the rows are selected, but each browser shows some sort of text selection artifact

What is the expected result? No browser artifacts during selection
What happens instead? In Chrome, you get ragged text selection after the text of the first selected row and up to the text of the last selected row.
In Firefox, the text of the last selected row is highlighted.
In IE, the text of all selected rows (except the first) is briefly highlighted.
Any other information? (attach screenshot if possible)

Quick and easy work around using CSS for now ?
http://jsbin.com/bipoqafavi/2/edit?html,css,output

Hi Chuck,
sorry for the delay.
In earlier releases we had disabled text selection quite aggressively to avoid these visual issues when the browser marks selected text. However, we had lots of complaints because users wanted to select text to copy&paste it. For some texts in the UI it might be less likely, but we as a framework cannot really decide in advance which controls contain texts that users may want to copy.
So we allow text selection on mouse-operated platforms, I think we are more restrictive on touch devices, but still this solution is not perfect - I'm sure some touch device users will also curse the app for not allowing to copy some text.
To avoid your visual issue, text selection would need to be disabled, as shown in the workaround above. But for the reasons I just explained, this is not something we should globally do. Not even only on Lists.
Do you have any suggestions?
Regards
Andreas

Hi Andreas,
Maybe just a boolean property on the table control to allow text selection, at least then the developer is in control of whether or not text in the table is selectable, I am sure there are as many reasons for restricting text copy from a client perspective as there are for allowing it.
Regards Sean

Hi Sean,
well, I believe that reasons for not allowing selection are mainly the visual ones. Not allowing it because the text is "copyright protected" or something reminds me of the nineties when people building websites "protected" the images from saving by handling right-clicks, thus disabling the context menu, which people mostly used for saving images.
Sure, you are right that in many cases there is nothing useful to copy, but even then allowing the selection would not harm if it wouldn't cause these visual issues. You never know whether a user may want to copy even "useless" text.
Anyway, it might still be useful to offer an easier way to prevent selection. But this would then not be restricted to the List control, but be useful for any control displaying text (and even for some that don't because even whitespace may exhibit this selection behavior). So this might be either a boolean property on e.g. the Control base class or something "lighter", like a CSS class like in your workaround. But in both cases we'd need to make sure that controls for text input which are children are not affected...
Further thoughts?
Regards
Andreas


Error: Parser could not be created (treesitter highlight)

I got this error
vim.schedule lua callback: ...s/nvim-linux64/share/nvim/runtime/lua/vim/treesitter.lua:116: Parser could not be created for buffer 14 and language "typescriptreact"
stack traceback:
	[C]: in function 'error'
	...s/nvim-linux64/share/nvim/runtime/lua/vim/treesitter.lua:116: in function 'get_parser'
	/home/jo/plugins/blink.cmp/lua/blink/cmp/utils.lua:85: in function 'highlight_with_treesitter'
	...lugins/blink.cmp/lua/blink/cmp/windows/documentation.lua:77: in function 'callback'
	.../jo/plugins/blink.cmp/lua/blink/cmp/sources/lib/init.lua:77: in function 'fn'
	...jo/plugins/blink.cmp/lua/blink/cmp/sources/lib/async.lua:86: in function 'cb'
	...jo/plugins/blink.cmp/lua/blink/cmp/sources/lib/async.lua:44: in function 'resolve'
	...plugins/blink.cmp/lua/blink/cmp/sources/lib/provider.lua:91: in function <...plugins/blink.cmp/lua/blink/cmp/sources/lib/provider.lua:91>

Since I’m on mobile, I can’t do PR. but the culprit is there https://github.com/Saghen/blink.cmp/blob/cfaf9fc89a4b0ad36bba7a2605ae9b2f15efbf52/lua/blink/cmp/utils.lua#L85
my current solution right now is to make root_lang = "tsx" if root_lang == "typescriptreact"

@Saghen I am getting a variant of this crash:
Error executing vim.schedule lua callback: ...ik/.nvim/share/nvim/runtime/lua/vim/treesitter/_fold.lua:72: Parser could not be created for buffer 11 and language "blink-cmp-signature"
stack traceback:
	[C]: in function 'assert'
	...ik/.nvim/share/nvim/runtime/lua/vim/treesitter/_fold.lua:72: in function 'compute_folds_levels'
	...ik/.nvim/share/nvim/runtime/lua/vim/treesitter/_fold.lua:275: in function 'fn'
	...ik/.nvim/share/nvim/runtime/lua/vim/treesitter/_fold.lua:251: in function <...ik/.nvim/share/nvim/runtime/lua/vim/treesitter/_fold.lua:247>

Repro steps:

In Lua, use snippet:
Invoke snippet and start typing "foo (and crash is hit).

I'm on Neovim 0.11 nightly and blink.cmp v0.8.2:
NVIM v0.11.0-dev-1427+gd3951be4a0
Build type: RelWithDebInfo
LuaJIT 2.1.1734355927
Run "nvim -V1 -v" for more info

Should I file a formal bug report in the issue tracker?


there is a problem with TdMediaService

Bug Report

i tried used RWD service like in docs by
import { TdMediaService } from '@covalent/core';
app loading is catch and i get error in console: No provider for TdMediaService

What is the expected behavior?
Load service and start broadcast
Which version of Angular and Material, and which browser and OS does this issue affect?
Angular 4.0.0
2.0.0-beta.5
Other information
i tried use covalent beta and night build, file responsible for that service (media.service.d.ts) in TS is different than in master branch

ok i fixed it, i didn't add CovalentMediaModule to module..

ok i fixed it, i didn't add CovalentMediaModule to module..

StaticInjectorError(AppModule)[SearchComponent -> TdLoadingService]:
  StaticInjectorError(Platform: core)[SearchComponent -> TdLoadingService]:
    NullInjectorError: No provider for TdLoadingService!
Error: StaticInjectorError(AppModule)[SearchComponent -> TdLoadingService]:
  StaticInjectorError(Platform: core)[SearchComponent -> TdLoadingService]:
    NullInjectorError: No provider for TdLoadingService!

When i import from
 import { CovalentMediaModule} from '@covalent/core/media';
and no error when i import from
import { CovalentMediaModule} from '@covalent/core';

You need to import everything from either @covalent/core or everything from the secondary entry points.. if you mix them you will get this error..


Storage Account creation section needs amendments

I was able to use this template but needed to make some amendments, as the property "accountType" for "sku" no longer exists. Also, I needed to use a newer API version in order for this to succeed:
Original:
{
"apiVersion": "2015-05-01-preview",
"type": "Microsoft.Storage/storageAccounts",
"name": "[parameters('applicationDiagnosticsStorageAccountName')]",
"location": "[parameters('computeLocation')]",
"sku": {
"accountType": "[parameters('applicationDiagnosticsStorageAccountType')]"
},
"tags": {
"resourceType": "Service Fabric",
"clusterName": "[parameters('clusterName')]"
}
},
Fixed:
{
"apiVersion": "2018-07-01",
"type": "Microsoft.Storage/storageAccounts",
"name": "[parameters('applicationDiagnosticsStorageAccountName')]",
"location": "[parameters('computeLocation')]",
"sku": {
"name": "[parameters('applicationDiagnosticsStorageAccountType')]"
"tier": "standard"
},
"tags": {
"resourceType": "Service Fabric",
"clusterName": "[parameters('clusterName')]"
}
},

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

ID: b67ccf12-3864-82ad-a502-db5aa58c0b6f
Version Independent ID: 6c0deb7f-99cc-7560-0064-3c9fda351d98
Content: Azure Service Fabric Event Aggregation with Windows Azure Diagnostics
Content Source: articles/service-fabric/service-fabric-diagnostics-event-aggregation-wad.md
Service: service-fabric
GitHub Login: @srrengar
Microsoft Alias: srrengar

Thanks for the feedback! We are currently investigating and will update you shortly.

@MicahMcKittrick-MSFT @AdamSharif-MSFT feel free to edit the doc with the change :)

@AdamSharif-MSFT I submitted a fix. Once the PR merges the changes will go live in a few hours.


Rendering a model Tutorial - Meshconverter FAILED with an unspecified error

Hi, I was reading the tutorial about how to load an render a model with this TK using the provided files and I run into this problem.
No matter what file I've tried or how many times I tried, it always fails at loading the .obj file with an unhelpful error (80004005)

According to the source code, it fails at the LoadFromOBJ function, where the WaveFrontReader doesn't read the vertices/indices:
(
if (wfReader.indices.empty() || wfReader.vertices.empty())
return E_FAIL;
)
But how and why?
What am I doing wrong?
I've tried with other .obj files as well with no luck...
Thanks for you time and sorry to bother you!

Fixed in the November 2021 release
https://github.com/microsoft/DirectXMesh/releases/tag/nov2021


[BUG] azure-storage-blob version 12.1.0 is missing

Describe the bug
azure-storage-blob version 12.1.0 is missing here: https://repo1.maven.org/maven2/com/azure/azure-storage-blob/
Expected behavior
Version 12.1.0 should exist at https://repo1.maven.org/maven2/com/azure/azure-storage-blob/
Screenshots

Setup (please complete the following information):

OS: Mac OS
Library/Libraries: [e.g. com.azure:azure-storage-blob:12.1.0 (groupId:artifactId:version)]
App Server/Environment: Desktop Machine
Frameworks: SBT Build tool

Additional context
Running SBT build tool locally complaining that azure-storage-blob version 12.1.0 is missing here: https://repo1.maven.org/maven2/com/azure/azure-storage-blob/. So we are unable to build the project as dependency is missing.
Below is the error report

@amishra-dev could you please follow up with @kirankbs?

Hi @kirankbs (Kiran),
We discovered an issue in older versions listed below of the SDKs for Storage which we have removed from Maven. To upgrade to the latest version please change the dependency version in your pom.xml to a newer one listed below. We strongly recommend moving to the latest SDK if you are using any of these affected versions.
If you need to use an older Azure Storage REST API version, please read the sample here about using an older Service Version with a newer SDK. We apologize for the inconvenience this may have caused.

SDK
Versions Removed
Recommended Version

Azure Storage Blob
12.0 to 12.6.1
12.14.1

Azure Storage File Datalake
12.0 to 12.1.2
12.7.1

Azure Storage File Share
12.0 to 12.4.1
12.11.1

If you need further help
please create a ticket at aka.ms/azsupt.
Issue Type: Technical
Service Type: Blob Storage
Summary: #JavaSDKv12
Problem type: Development
Problem subtype: Client library or SDK

@amishra-dev In your guidelines it states:

Dependable

100% backward compatible

This is not true in the current case for 2 different reasons:

library is completely removed, so we can't go back or develop locally with the current version as is doesn't exist.
updating to 12.14.1, which is a minor bump, introduces a new constructor, which means a breaking change.

As you also state in the guidelines:

Consistent

All differences from the guidelines must have good reasons.

I assume there is a serious issue that you are trying to manage and you have a good reason for that.
I'm interested in what's being done for these situations not to happen again?


Doesn't compile, missing cache/cache.h

From make,
-o objs/addon/src/ngx_http_gluu_ox_module.o
/home/jeff/gluu/gluu-nginx/src/ngx_http_gluu_ox_module.c
In file included from /home/jeff/gluu/gluu-nginx/src/ngx_http_gluu_ox_module.c:24:0:
/home/jeff/gluu/gluu-nginx/src/ngx_http_gluu_ox_module.h:34:25: fatal error: cache/cache.h: No such file or directory
#include "cache/cache.h"

andriybobyr, are we just missing some of your local changes?

Jeff,
We had to pause development of this plugin. I just updated the readme with an explanation. This is an important development priority for us, just one that is not currently sufficiently funded. Hopefully can get back to work on it later this year.
Thanks for your understanding.


Error with messages

There are always memory errors after calling up the message dialog.
Information:

OS: Ubuntu
OS version: 24.10.
Program version: v.0.6.2
Comes with version: v.0.6.2
Operating mode: native
Location of error: on run

The error has something to do with the order in which the provider is emptied. You can fix this with:
// free the provider
if (provider != NULL)
{
 	g_object_unref(provider);
    	provider = NULL;
}
if (main_loop != NULL)
{
    	g_main_loop_unref(main_loop);
    	main_loop = NULL;
}

The rest comes before the code part.


Unable to see life cycle management with Data lake store Gen2

Unable to see life cycle management with Data lake store Gen2

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

ID: 9a558a9e-10d0-ea34-8780-d9084f87f952
Version Independent ID: 60dda4e0-7630-f358-aa3a-6a992eae61e2
Content: Managing the Azure Storage lifecycle
Content Source: articles/storage/blobs/storage-lifecycle-management-concepts.md
Service: storage
Sub-service: common
GitHub Login: @mhopkins-msft
Microsoft Alias: mhopkins

@srinadhayarram Thanks for your question. We are checking on this and will respond to you soon.

@srinadhayarram Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

Hi @srinadhayarram. Are you enrolled in the multi-protocol access preview? Please see the Note in the opening section of this article for more information. Also, please review the "Azure Blob storage lifecycle management policies" section of https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-known-issues#support-for-other-blob-storage-features. Thanks!

Hi @Tessa,
We are enrolled for preview. But still unable to see Blob API support with
soft delete and Life cycle management.
Can you provide, how to check multi access protocol enabled or not?
Thank You,
Srinadha Yarram
On Tue, Oct 1, 2019 at 7:49 PM Tessa Wooley<EMAIL_ADDRESS>wrote:

Hi @srinadhayarram https://github.com/srinadhayarram. Are you enrolled
in the multi-protocol access preview? Please see the Note in the opening
section of this article for more information. Also, please review the
"Azure Blob storage lifecycle management policies" section of
https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-known-issues#support-for-other-blob-storage-features.
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/39625?email_source=notifications&email_token=AJA7HJJ3UYKUF2OPPTXHTYTQMPV2BA5CNFSM4I26YB2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEADGBVY#issuecomment-537288919,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJA7HJIY4SSMRKSTXK7UZW3QMPV2BANCNFSM4I26YB2A
.

I am able to see Life cycle management in portal now.
Thank You,
Srinadha Yarram


Improve analytics events

For debugging and UX design purposes (e.g: to make effective design decisions based on real user behaviour). These are the events we have right now:
For our users: you can always disable error reporting and analytics from the settings page (its optional), but we should probably make that more obvious (something to discuss in another issue)

Application start
Checking for updates
Notifying update
Select image
Re-select image
Select Drive
Reselect drive
Flash
Restart
Restart after failure
Done
Validation Error
Out of Space
Flash Error
Invalid Image

These are the events we want to have:
Global

[x] Application Start
[x] Application attempted to close while flashing
[x] Application attempted to close while not flashing
[x] Show exit while flashing warning
[x] Cancel flashing warning
[x] Agree flashing warning

Updates

[x] Checking for Updates (include current version)
[x] Notifying Update (include the latest version)
[x] Update accepted
[x] Update dismissed
[x] Update dismissed and put to sleep
[x] No Update

Image

[x] Open image selector
[x] Image selector dismissed
[x] Select image (include image data)
[x] Change image
[x] Show image info modal
[x] Show image info tooltip
[x] Multiple images inside archive

Drive

[ ] No drives (only after you select the image)
[x] Auto-select drive (include drive)
[ ] Auto-deselect drive (include drive and image)
[x] Select drive (include drive, and if using unsafe mode)
[x] Open drive modal
[x] Drive modal dismissed
[x] Toggle drive selection (include drive)

Header

[ ] Click help icon
[ ] Click on settings

Footer

[x] Click on Etcher logo
[x] Click on “an open source project by”
[x] Click on Resin.io logo
[x] Click version

Settings

[x] Click on back button
[x] Toggle setting (include setting name and new value)
[x] Accept setting warning (include setting name)
[x] Dismiss setting warning (include setting name)

Flash

[ ] Click flash (include drive and image, is validation enabled, is unmounting enabled)
[ ] Show elevation dialog
[ ] No elevation needed
[ ] Elevation successful
[ ] Elevation rejected
[ ] Flashing process started
[ ] Flashing half through
[ ] Flashing is about to complete
[ ] Flashing error
[ ] Validation started
[ ] Validation half through
[ ] Validation is about to complete
[ ] Validation failed
[ ] Out of Space error
[ ] Retry after error
[ ] Dismiss error modal
[ ] Unmounting before flash (include drives that are getting unmounted)
[ ] Unmounting after flash (include drives that are getting unmounted)
[ ] Unmount successful (before and after flash)
[ ] Unmount error (before and after flash)
[ ] Flash complete (include total elapsed time)
[ ] Use same image
[ ] Use different image

Notice that for all modal events, we should include whether the modal was dismissed by clicking the "X" icon, or by clicking somewhere in the app.
We want to report the following user information:

Operating system
Operating system version
Operating system architecture
Etcher architecture
Total RAM of the computer
CPU information (number of cores, etc)

If it helps, this is what grep -R analytics.logEvent reports on the current codebase:
lib/gui/app/components/modal/services/modal.js:    analytics.logEvent('Open modal', {
lib/gui/app/components/modal/services/modal.js:          analytics.logEvent('Modal accepted', {
lib/gui/app/components/modal/services/modal.js:            analytics.logEvent('Modal rejected', {
lib/gui/app/components/modal/services/modal.js:          analytics.logEvent('Modal rejected', {
lib/gui/app/components/safe-webview.js:      analytics.logEvent(event)
lib/gui/app/components/safe-webview.js:      analytics.logEvent(message.data || message)
lib/gui/app/components/drive-selector/controllers/drive-selector.js:        analytics.logEvent('Toggle drive', {
lib/gui/app/components/drive-selector/controllers/drive-selector.js:        analytics.logEvent('Drive selected (double click)')
lib/gui/app/components/update-notifier.js:    analytics.logEvent('Close update modal', {
lib/gui/app/components/flash-error-modal/services/flash-error-modal.js:        analytics.logEvent('Restart after failure')
lib/gui/app/modules/analytics.js: * analytics.logEvent('Select image', {
lib/gui/app/modules/image-writer.js:  analytics.logEvent('Flash', analyticsData)
lib/gui/app/modules/image-writer.js:      analytics.logEvent('Elevation cancelled', analyticsData)
lib/gui/app/modules/image-writer.js:      analytics.logEvent('Done', analyticsData)
lib/gui/app/modules/image-writer.js:      analytics.logEvent('Validation error', analyticsData)
lib/gui/app/modules/image-writer.js:      analytics.logEvent('Drive unplugged', analyticsData)
lib/gui/app/modules/image-writer.js:      analytics.logEvent('Input/output error', analyticsData)
lib/gui/app/modules/image-writer.js:      analytics.logEvent('Out of space', analyticsData)
lib/gui/app/modules/image-writer.js:      analytics.logEvent('Child died unexpectedly', analyticsData)
lib/gui/app/modules/image-writer.js:      analytics.logEvent('Flash error', _.merge({
lib/gui/app/app.js:  analytics.logEvent('Application start', {
lib/gui/app/app.js:    analytics.logEvent('Not checking for updates', {
lib/gui/app/app.js:  analytics.logEvent('Checking for updates', {
lib/gui/app/app.js:      analytics.logEvent('Update notification skipped', {
lib/gui/app/app.js:      analytics.logEvent('Update notification skipped', {
lib/gui/app/app.js:    analytics.logEvent('Notifying update', {
lib/gui/app/app.js:    analytics.logEvent('Update check user error', {
lib/gui/app/app.js:      analytics.logEvent('Close application', {
lib/gui/app/app.js:    analytics.logEvent('Close attempt while flashing')
lib/gui/app/app.js:        analytics.logEvent('Close confirmed while flashing', {
lib/gui/app/app.js:      analytics.logEvent('Close rejected while flashing')
lib/gui/app/app.js:    analytics.logEvent('Navigate', {
lib/gui/app/os/open-external/services/open-external.js:    analytics.logEvent('Open external link', {
lib/gui/app/pages/main/controllers/image-selection.js:      analytics.logEvent('Invalid image', image)
lib/gui/app/pages/main/controllers/image-selection.js:        analytics.logEvent('Possibly Windows image', image)
lib/gui/app/pages/main/controllers/image-selection.js:        analytics.logEvent('Missing partition table', image)
lib/gui/app/pages/main/controllers/image-selection.js:      return analytics.logEvent('Select image', image)
lib/gui/app/pages/main/controllers/image-selection.js:    analytics.logEvent('Open image selector')
lib/gui/app/pages/main/controllers/image-selection.js:        analytics.logEvent('Image selector closed')
lib/gui/app/pages/main/controllers/image-selection.js:    analytics.logEvent('Reselect image', {
lib/gui/app/pages/main/controllers/drive-selection.js:      analytics.logEvent('Select drive', {
lib/gui/app/pages/main/controllers/drive-selection.js:    analytics.logEvent('Reselect drive')
lib/gui/app/pages/main/controllers/main.js:    analytics.logEvent('Show selected image tooltip', {
lib/gui/app/pages/finish/controllers/finish.js:    analytics.logEvent('Restart', options)
lib/gui/app/pages/settings/controllers/settings.js:    analytics.logEvent('Toggle setting', {


Revert "Darwin test fix: allow 1μs timestamp difference"

What is the purpose of this change? What does it change?
This PR reverts the workaround for reading node timestamps with nanoseconds precision, but go only being able to restore microseconds on macOS and OpenBSD.
The go changes to fix #1087 and #1307 are included in Go 1.10. Restic by now requires at least Go 1.11 and therefore the workaround is no longer necessary.
Was the change discussed in an issue or in the forum before?
Fixes #1087 .
Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[ ] I have added tests for all changes in this PR
[ ] I have added documentation for the changes (in the manual)
[ ] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[x] I'm done, this Pull Request is ready for review

Btw, I've manually tested that the test works on macOS Catalina with Go 1.14.


"edit" should capture stderr from spawned process and include it in error

It would make problems with users' emacs-server or vim remote setups more immediately apparent if edit spawned the editor process and captured its stderr so any error messages reported by the editor could be included in the error if the editor process fails.

Would this make sense as the default behavior of run-process and other io.launcher words?


[SPARK-27979][BUILD][test-maven] Remove deprecated --force option in build/mvn and run-tests.py

What changes were proposed in this pull request?
This is a second try of #24824.
Since Apache Spark 2.0.0, SPARK-14867 deprecated --force option and made it ignored. This PR cleans up the related code completely at 3.0.0.
BEFORE (Jenkins)
========================================================================
Building Spark
========================================================================
[info] Building Spark using Maven with these arguments:  -Phadoop-2.7 -Pkubernetes -Phive-thriftserver -Pkinesis-asl -Pyarn -Pspark-ganglia-lgpl -Phive -Pmesos clean package -DskipTests
WARNING: '--force' is deprecated and ignored.
...
========================================================================
Running Spark unit tests
========================================================================
[info] Running Spark tests using Maven with these arguments:  -Phadoop-2.7 -Phive-thriftserver -Phive -Dtest.exclude.tags=org.apache.spark.tags.ExtendedHiveTest,org.apache.spark.tags.ExtendedYarnTest test --fail-at-end
WARNING: '--force' is deprecated and ignored.

AFTER (Jenkins)
========================================================================
Building Spark
========================================================================
[info] Building Spark using Maven with these arguments:  -Phadoop-2.7 -Pkubernetes -Phive-thriftserver -Pkinesis-asl -Pyarn -Pspark-ganglia-lgpl -Phive -Pmesos clean package -DskipTests
...
========================================================================
Running Spark unit tests
========================================================================
[info] Running Spark tests using Maven with these arguments:  -Phadoop-2.7 -Pkubernetes -Phive-thriftserver -Pyarn -Pspark-ganglia-lgpl -Phive -Pkinesis-asl -Pmesos -Dtest.exclude.tags=org.apache.spark.tags.ExtendedHiveTest,org.apache.spark.tags.ExtendedYarnTest test --fail-at-end

How was this patch tested?
Manually check the Jenkins logs.

Hi, @srowen . This is the second try.
cc @gatorsmile , too.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/11607/
Test PASSed.

Test build #106363 has started for PR 24833 at commit 58873b1.

SGTM. If it causes any other build job to fail, I should be able to fix the config in Jenkins. There shouldn't be any other changes needed in the Spark code. (I updated the master builds to not use --force)

Thank you so much for the updating, @srowen ! I checked that from the last Maven build log.
+ MVN='build/mvn -DzincPort=3742'
+ set +e
+ [[ hadoop-2.7 == hadoop-1 ]]
+ build/mvn -DzincPort=3742 -DskipTests -Phadoop-2.7 -Pyarn -Phive -Phive-thriftserver -Pkinesis-asl -Pmesos clean package

Test build #106363 has finished for PR 24833 at commit 58873b1.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/106363/
Test PASSed.

Thank you, @srowen and @HyukjinKwon .
Merged to master.

@srowen @dongjoon-hyun could you also fix the jenkins job since it's broken by this PR?
https://amplab.cs.berkeley.edu/jenkins/view/Spark QA Compile/job/spark-master-compile-maven-hadoop-2.7/
Unable to parse command line options: Unrecognized option: --force

Thank you for pinging me, @zsxwing . Yes. We need to fix the following script for that job in the Jenkins server as @srowen did on the master Jenkins.
+ [[ master < branch-1.5 ]]
+ MVN='build/mvn --force -DzincPort=3067'
+ MVN_FLAGS=(-DskipTests -P"$HADOOP_PROFILE" -Phive-thriftserver -Pkinesis-asl -Pspark-ganglia-lgpl -Pmesos)

I'd love to have the fix this kind of issue, but unfortunately, I don't have the access for that so far, @zsxwing .

BTW, @srowen . This job seems to have a different source because master Maven is okay after your fix~

Oh, nevermind. The compile job failed and I hadn't updated that. I had updates the test jobs previously. I don't think anything was overwritten. OK, should be OK now unless I'm missing more master jobs.

Thank you so much for the swift fixes, @srowen !


Responsiveness of check project.php page

Responsiveness of check project.php page currently its like this

and the toggle button for dark mode is also covering  toggle button for drop-down


chore: release version 0.7.3

Fixes #496
Changes proposed in this pull request:

updated missing documentation
bumped version for mono package
generated changelog

@MaskingTechnology/jitar

@petermasking the publication and versioning by lerna still needs to be done. We cannot merge the branch before we've done that. But please review the changes first, so I can publish using this branch.


Use clang-tidy for every file compiled with the host compiler.

Not sure if this is useful, but let me give it a try.

Should be done @stlankes Running clang-tidy on code compiled by the cross compiler is difficult because not all flags are supported by clang. See slack for more info.

👍


Adding ScenarioTest for schema violations and locked transactions

Hi Alexander,
I have been playing around with this project -- it's super cool. I added some class to generalize this a bit more. If this overcomplicates things, please let me know. Also, I added a new ScenarioTest to test these new classes. They compile, but there is usually multiple runtime errors due to some Schema violations and transactions being locked. I'd LOVE to figure out how to get these runtime exceptions to go away.
Addison

I committed some additional changes. I'm not sure if there is anything else I need to do in order for you to preview and leave comments.

@acs254 I am taking a second look now. Thank you for your patience and understanding regarding minimal reproducing test cases.

@acs254 I created a new PR #205 to bring the work you started closer to completion (I made sure to keep your name on the commits you already provided, after squashing your six commits to one commit). I provided two example methods to load the same graph data, and demonstrated that both work in test cases. Thanks to you, I also noticed that the ScenarioTests were not running as part of the automated build, so I added them to the IsolateRemainingTestsCategory. Thank you!

@acs254 please comment on #205 if there is anything else you think needs to go in.


Replace old subgraph on legacy app

Describe the bug
The legacy dapp is using a deprecated subgraph url on both offset and redeem views. As a result no project filters are available.

hi

I can work on this project


Feature Expansion!

I just discovered this module and the idea opens up many possibilities in my mind! However all are limited by 1 thing: That everything goes into the same channel..
I feel like this module shines on discord servers with multiple games and multiple channels for different things.
With that said, I'd like to request the capability of selecting which channel the messages will go to! I'm not sure of how that could work though. Maybe the ability to select which webhook the module has active? With like a dropdown menu from your preregistered webhooks? Maybe another way, not sure.
Having everything in one channel is a spark...being able to forwards messages in appropriate channels will be a wildfire.

The simplest solution would be to allow the GM to save different webhooks in the settings, and then have a dropdown menu to select which one is being used. From there, it wouldn't be difficult to add in a feature to tag messages to send them to specific channels, defaulting to the one selected in the settings,
E.g. "#general @Gamemaster Who's bringing snacks next week" would send that message to the general channel and ping the user with either the "Gamemaster" character name or user name, depending on the current settings.
Would this cover what you're looking for?


Various fixes and adjustments

Theme should now be initialized based on system preferences.
Fixed some bugs reported in the last days.
Closes #75
Closes #273
Closes #272
Closes #267

The theme inizialization seems to be ok but the theme change doesn't trigger; I will fix this tomorrow maybe.

robots.txt is ok


Event::MediaAdded is not fired for medias added in local offer

The MediaAdded event documentation states that

This event fires both for negotiations triggered by a remote or local offer.

Which is not the case, since it is emitted only for media lines added via remote offer, and it seems that firing these event for local offer is explicitly disabled right here: 0, 1.
And, yeah, while this is an apply_answer() function it is also when local offer is being applied too, so i guess it should also cause MediaAdded event to fire.
So is this an expected behaviour and outdated documentation or a bug? I can prepare a PR if its the second case.

Very good question. 🤔
It sounds like a bug. @xnorpx, @k0nserv, @davibe anyone got thoughts?

We only use direct API, but if I remember correctly, it will fire for local added streams.

I don't think we should fire it when the user explicitly added the media, I believe this aligns with the spec too. I consulted our usage too, we don't expect it to fire on locally added media

So a PR adjusting the doc to that effect?

So a PR adjusting the doc to that effect?
I think so yes.

We only use direct API, but if I remember correctly, it will fire for local added streams.

I did verify that when we add our local streams  with direct API we are getting MediaAdded events.
(We are not using it)

I did verify that when we add our local streams with direct API we are getting MediaAdded events.

Ah, and Im using SDP api and not getting MediaAdded` for media that's added in local offer.

I don't think we should fire it when the user explicitly added the media, I believe this aligns with the spec too.

I'm okay with both options, just want to be sure that it works as expected and won't change someday.

So a PR adjusting the doc to that effect?

Works for me. I'll prepare a PR (regarding RTX cache drop ratio) in the next few days and i can update this doc there. So feel free to close this issue, or I'll close it after doc is updated.

I did verify that when we add our local streams with direct API we are getting MediaAdded events.

Ok. So PR to fix docs and change this behavior.


Unable to detect if unauthenticated right after redirect login

Library

[ ]<EMAIL_ADDRESS>or<EMAIL_ADDRESS>[X]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>[ ]<EMAIL_ADDRESS>
Description
Hi, I have a React.js app and I want to ensure that only authenticated users can access certain pages/routes.  We login using the loginRedirect and when MS redirects back to our application I understand we should await handleRedirectPromise to determine if the user has authenticated correctly.  The problem is that the first return value from handleRedirectPromise is null and so our application assumes that the user is not authenticated.  However, a subsequent invocation of handleRedirectPromise returns with an authenticated response as expected.  Am I doing something wrong?  What is the correct pattern to determine if the user is unauthenticated?
I did see the page load example and tried to model my code after that.  Other issues like this one are trying to determine if the user is authenticated, not unauthenticated.
Here's an excerpt of my authentication provider code that wraps MSAL as a React Context.  My React route handler calls the isAuthenticated function to determine if the user is authenticated.  The problem is that the handleRedirectPromise in the isAuthenticated function returns null so the app thinks the user is unauthenticated and redirects the user back to the login page, but after that function that does the authentication check completes, the handleRedirectPromise promise completes in my setMsalInstance method with an authenticated response...but it's too late, the app has already assumed the user is not authenticated.
export const AuthenticationProvider: Function = ({
  config,
  children,
}: AuthenticationContextProps) => {

  (function setMsalInstance() {
    if (!msalInstance) {
      ...
      msalInstance = new msal.PublicClientApplication(msalConfig);

      msalInstance.handleRedirectPromise()
        .then((tokenResponse) => {
            //After my isAuthenticated method completes, this returns with a tokenResponse showing user is authenticated.
        })
        .catch((error) => {throw error});
    }
  })();

  const isAuthenticated = async (): Promise<boolean> => {
    const tokenResponse = await msalInstance.handleRedirectPromise();

    if (tokenResponse != null) {
      return true;
    }
    else{
      return msalInstance.getAllAccounts().length > 0; //<---tokenResponse is ALWAYS null right after a redirect from MS, and there are no accounts.
    };
  }

@jasonjohnlee handleRedirectPromise will only resolve once. What seems to be happening here is that you're calling it twice and the 2nd one (inside isAuthenticated) is immediately returning null because the first has already started doing what it needs to do. You can kind of think of handleRedirectPromise as the resolution of the unresolved promise from loginRedirect.
What you should do instead is ensure that you wait for the first handleRedirectPromise to resolve before calling any other msal function. Then in your isAuthenticated function all you need to do is call getAllAccounts

Thanks @tnorling !  Removing the handleRedirectPromise in isAuthenticated solved the problem of the null response.  It also required me to redesign/rethink how I performed this unauthenticated check.  I originally thought I'd be able to do a simple if statement in the router to see if the user was authenticated before going to certain routes, but I had to change my approach to make my AuthenticationProvider a React pipeline Component in addition to a context.  The component will return a null rendering if the user is unauthenticated (which the user is initially), then will re-render with the requested route(which is a child component of the AuthenticationProvider) when handleRedirectPromise returns with a response or there are logged in accounts.  If handleRedirectPromise returns and there is no response or logged in accounts, I redirect to the sign in page.


Tweet regarding Meet Our Contributor blog post

Provide the actual tweet content between the commented colons

Check out our first article from the Meet Our Contributors blog series, highlighting five amazing folks from the India region who actively contribute to the upstream Kubernetes projects.
https://kubernetes.io/blog/2022/01/10/meet-our-contributors-india-ep-01/

/validate

/validate


High CPU load on newish install (v1.23.5 / arm64 / Ubuntu 22.04)

Hi,
This is my first attempt at building a microk8s install on standalone hardware. I am using three Raspberry PI 4B 8GB models connected via a Ubiquiti ethernet switch. Am observing high CPU utilization (most of the nodes are sitting at 100%+). Best guess is it's something to do with the networking.
Output of hostnamectl on the main node is below (other two nodes are identical with the exception of different hostnames). DNS is handled via a host file in each node. Am using microSD cards for storage on each of the devices. I followed the tutorial from here https://ubuntu.com/tutorials/how-to-kubernetes-cluster-on-raspberry-pi#4-installing-microk8s
--
Static hostname: k8s-node-1
Icon name: computer
Machine ID: 6093d688d7da43a8a57c215d962a0d13
Boot ID: 43e5b601c3a940ba83a4e758a12a4b61
Operating System: Ubuntu 22.04 LTS
Kernel: Linux 5.15.0-1005-raspi
Architecture: arm64
Things of interest I have found from investigating this:

There is a noticeable pause when executing microk8s commands.
Top three processes by CPU load are calico-node, k8s-dqlite and kubelite.
Am seeing multiple warnings (WARNING:Unknown index 67239 seen, reloading interface list) and errors (ERROR:Unknown interface index 67265 seen even after reload) in the logs from networkd-dispatcher.

Copy of the inspection report is attached. Am assuming this sort of CPU load shouldn't be there on a newish install. Not certain where to do go next and given Ubuntu 22.04 is very new thought I'd reach out here.
inspection-report-20220423_094411.tar.gz

From what i can see, 100% cpu seems to indicate that one or more of the components are crashlooping or aren't healthy.  Dqlite is a little sensitive to slow disk.  Some users have better success with non HA cluster.  If you don't need HA, then you can disable it. microk8s disable ha-cluster.
This will definitely nuke the contents.  So it is best to start from scratch if you want to give this a try.
Fyi, Kubernetes will continue to actively access its data store (etcd or dqlite) even if there is little workload running.

I have investigated further and feel I have a better idea of what is occurring. Tentative root cause is later versions of Ubuntu for Raspberry Pi not including the vxlan kernel module by default.
Adding the vxlan module required installing the following two ubuntu packages: linux-modules-extra-5.15.0-1005-raspi linux-modules-extra-raspi
Steps taken so far:

I deleted the existing cluster and rebuilt it with ha-cluster disabled. System load was better after that was done.
Trying to re-enable dns, dashboard and ingress hit issues with a number of pods stuck at the creation stage.
Describing the failed pods gave the below error:
--
Warning  FailedCreatePodSandBox  5m1s (x106 over 28m)  kubelet  (combined from similar events): Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "0534e2955afd9c4bbcbcb58d15c7db215bc8643926a18ee7412e36908bb5609c": open /var/snap/microk8s/common/run/flannel/subnet.env: no such file or directory
--
Digging into the flannel logs gave the below error message. Main part of interest was 'VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false' and 'Error registering network: operation not supported'. This put me on the path of an issue with vxlan.

--
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379219]: PrevNode.Value: {"Network": "<IP_ADDRESS>/16", "Backend": {"Type": "vxlan"}}
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379227]: {"Network": "<IP_ADDRESS>/16", "Backend": {"Type": "vxlan"}}
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: I0424 16:25:11.571747  379072 main.go:514] Determining IP address of default interface
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: I0424 16:25:11.572623  379072 main.go:527] Using interface with name eth0 and address <IP_ADDRESS>
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: I0424 16:25:11.572691  379072 main.go:544] Defaulting external address to interface address (<IP_ADDRESS>)
Apr 24 16:25:11 k8s-node-1 flanneld[379072]: warning: ignoring ServerName for user-provided CA for backwards compatibility is deprecated
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: I0424 16:25:11.574521  379072 main.go:244] Created subnet manager: Etcd Local Manager with Previous Subnet: None
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: I0424 16:25:11.574558  379072 main.go:247] Installing signal handlers
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: I0424 16:25:11.645680  379072 main.go:386] Found network config - Backend type: vxlan
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: I0424 16:25:11.645835  379072 vxlan.go:120] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: E0424 16:25:11.652054  379072 main.go:289] Error registering network: operation not supported
Apr 24 16:25:11 k8s-node-1 microk8s.daemon-flanneld[379072]: I0424 16:25:11.652243  379072 main.go:366] Stopping shutdownHandler...
Apr 24 16:25:11 k8s-node-1 systemd[1]: snap.microk8s.daemon-flanneld.service: Main process exited, code=exited, status=1/FAILURE
Apr 24 16:25:11 k8s-node-1 systemd[1]: snap.microk8s.daemon-flanneld.service: Failed with result 'exit-code'.
Apr 24 16:25:11 k8s-node-1 systemd[1]: snap.microk8s.daemon-flanneld.service: Scheduled restart job, restart counter is at 4026.
Apr 24 16:25:11 k8s-node-1 systemd[1]: Stopped Service for snap application microk8s.daemon-flanneld.

Having a prod into the system made me realise the module wasn't available to install. Installing the extra files (above) cleared the issue and allowed the remaining pod creations to complete.
After this was confirmed as working I deleted the cluster and rebuilt it again with ha-cluster enabled. Have also enabled the dns, dashboard and ingress items. System is now sitting at ~35-40% CPU load.


nocode has stopped working 🔞

The app has stopped working for me.
Error code: 0
Problem:

Don't problem
go to this address
`
change this code in line 0
to this code
`
and project do successfully nothing 😉

Not works for me. Thank you! @MGazori

Not works for me. Thank you! @MGazori

Did you check file permissions?

Not works for me. Thank you! @MGazori

Did you check file permissions?

Yes I did. The permission of file   is 000 as expected.

ok, now change the ouwner of whole of nothing directory to :

The following file still did not work:

Error code: 0

Task failed successfully


KOGITO-2544 DMN align kogito to DROOLS-5344

[ERROR] Failed to execute goal on project decisiontable-springboot-example: Could not resolve dependencies for project org.kie.kogito.examples:decisiontable-springboot-example:jar:8.0.0-SNAPSHOT: Could not transfer artifact org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.27 from/to central (https://repo.maven.apache.org/maven2): Connection reset -> [Help 1]

Jenkins test again

Existing failures - 1
testAdult – io.quarkus.it.kogito.drools.DroolsTest

looks like Jenkins is not rebasing on top of master the PR


[AUTOPATCHER] Patches CVE-2019-15903 for expat

        Patches CVE-2019-15903 for expat.
        This patch and PR was automatically generated and needs human verification before merging.

Fixed in #1792 . Closing


Bug with Authentication autofill (On change event not triggered)

Environment
Docker
Version
0.14.3
Describe the problem
As mentioned in a discord post:
When using autofill for homarr credentials in the browser, the on change event is not triggered, therefore you manually have to change the autofilled string before homarr accepts it.

Thank you for your time 🙏
Logs
No response
Context
No response
Please tick the boxes

[X] I confirm that I attached the proper logs
[X] I've read the docs
[X] I've checked for duplicate issues
[X] I've tried to debug myself

still existing, close was accidental

I think this could be a good first issue, there is probably a property like onAutoFill that could revalidate the user's input


fix: helmfile should fail on duplicate release name after filtered by labels

This is a follow-up for #218, fixes the unintentional degradation that broken the use-case described in https://github.com/roboll/helmfile/issues/193#issuecomment-415434408

@osterman You can now safely define multiple releases sharing the same release name. An duplication error occurs when e.g. helmfile sync -l foo=bar finds two or more releases named the same, but that's after the label selector was applied to filter releases.


Open question: Image/BinaryData Support

Handling image data is an interesting challenge, and there are many different ways to do it.
Currently, Blueprint implements an <Image> element that accepts a source property expecting a value that is an SVG string, which on the backend is parsed by a juce::Drawable and drawn at paint time. This works nicely with Webpack's SVG file loader because it automatically reads require('path/to/svg.svg') statements and satisfies them by embedding the raw svg string from the file.
However, this maybe won't scale for larger, more complicated SVGs, and it totally ignores the other common image use case, which is big PNG files either read from disk or carried in BinaryData. One possible path forward is to support BinaryData directly with some kind of C++ interface that lets you register a key/value pair which is a name and a pointer to some specific binary data, and allow that pair to be referenced by the key on the javascript side. <BinaryDataImage sourceKey={'background'} />. I'm not convinced this is a great idea though.
On the flip side, this might be a good case for a problem that Blueprint intentionally does not solve, and leaves open to the user. For example, if you have a big PNG strip for drawing a knob and you use the juce ImageCache to speed that up, maybe the best approach for interfacing with that is to write a custom KnobView and register that view with the ReactApplicationRoot (#8). Then there's no reason for Blueprint to concern itself with binary data, and you can still take full advantage of the techniques that JUCE already has for interacting with it.

@nick-thompson, You game for me to have a crack at this? Following a URI pattern seems like it shouldn't be too hard. If it's a file path like URI load via file system, if it's URL follow a different model. Can start with file path and go from there.
Binary assets seem like they should be reasonably straight forward too. Maybe go for local URI's first and then support remote file loading as second step?

Definitely! Yea, let's go for local first and defer remote. So first step, then, is supporting data:, file:, and a custom bindat:? Or maybe just start with data: and file:.
data: should roughly match the Data URL spec https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs, and will have to edit the GainPlugin example to adapt the way it currently sends svg strings (I think can just prepend the data: with the mime type)
file:<filepath> maybe we only support absolute file paths for now? What would a relative file path be relative to? Wondering about things like iOS bundles.... maybe a "todo later" on that
bindat:<name> would be just a name-based lookup on BinaryData.

Realizing as I'm coming back to this just now, I definitely want to add http(s): support, so that you can write something like
let background = 'https://images.unsplash.com/photo-1593642703055-4b72c180d9b5';

<Image source={background} />

just as you would expect with <img src="https://images.unsplash.com/photo-1593642703055-4b72c180d9b5" /> in HTML, or as with React Native's Image.
Thinking it probably makes the most sense to focus on data/file/http schemes and come back to the bindat idea later.

 I've assigned your name here as well!

Great, thank you. I've assigned your name here as well!

This was a big one and it required lots of new things to understand for me but I finally got something working. There are lots of changes so before I submit a rotten PR, I'll let you check on my forked repo if the approach sounds right.
https://github.com/stfufane/blueprint/commit/4ba6fb41e03c020ebcd29575ada44fcb8a852db2
A few notes :

I split ImageView in .h and .cpp, it was becoming big and having only the .h had CMake recompile everything at every change, which was annoying.
I've created a separate class for the download task listener. I learnt that thread managing is a pain in the ass in the process :)
I removed a few lines from the example for my tests and forgot to put them back but realized it after the commit, I'll restore that when we validate the changes
@JoshMarler suggested a lock_guard for the drawable, I'd be happy to add that but didn't fully understand where that would happen and if that would affect every line where drawable is written to. I didn't find how to make it crash this way but I'll let you judge if that's necessary or not.

Let me know if I have to start from scratch or if there's something good in there :p
Cheers!

This was a big one and it required lots of new things to understand for me but I finally got something working. There are lots of changes so before I submit a rotten PR, I'll let you check on my forked repo if the approach sounds right.
https://github.com/stfufane/blueprint/commit/4ba6fb41e03c020ebcd29575ada44fcb8a852db2
A few notes :

I split ImageView in .h and .cpp, it was becoming big and having only the .h had CMake recompile everything at every change, which was annoying.
I've created a separate class for the download task listener. I learnt that thread managing is a pain in the ass in the process :)
I removed a few lines from the example for my tests and forgot to put them back but realized it after the commit, I'll restore that when we validate the changes
@JoshMarler suggested a lock_guard for the drawable, I'd be happy to add that but didn't fully understand where that would happen and if that would affect every line where drawable is written to. I didn't find how to make it crash this way but I'll let you judge if that's necessary or not.

Let me know if I have to start from scratch or if there's something good in there :p
Cheers!

I left a few comments inline on your branch.
Generally looks great! A couple things in there we can simplify. Also, you won't need a lock_guard if we use that juce::MessageManager::callAsync trick for getting the actual juce::DrawableImage swap to happen on the main thread.

I left a few comments inline on your branch.
Generally looks great! A couple things in there we can simplify. Also, you won't need a lock_guard if we use that juce::MessageManager::callAsync trick for getting the actual juce::DrawableImage swap to happen on the main thread.

Cool, thanks! Just read the comments, looks easier indeed :D I'll change that, should be straight forward this time. I actually had complications because of the thread in a thread due to the use of DownloadTask... I stuck to this comment https://github.com/nick-thompson/blueprint/pull/117#issue-507445831 and didn't realize it would cause this kind of trouble in my mind ^^'
What do you think about the use of onLoad/onError? They're native properties in javascript when loading an image or a script so I thought they'd feel natural in this context. What's the behaviour when using std::runtime_error?

Cool, thanks! Just read the comments, looks easier indeed :D I'll change that, should be straight forward this time. I actually had complications because of the thread in a thread due to the use of DownloadTask... I stuck to this comment https://github.com/nick-thompson/blueprint/pull/117#issue-507445831 and didn't realize it would cause this kind of trouble in my mind ^^'
What do you think about the use of onLoad/onError? They're native properties in javascript when loading an image or a script so I thought they'd feel natural in this context. What's the behaviour when using std::runtime_error?

Yea, I think this way is simpler :)
Yes +1 for onLoad, and in keeping with the  spec in web (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Img#image_loading_errors) I say +1 for onError too! Then we can skip the throw runtime_error bit and instead call the onError callback if it's present

Yea, I think this way is simpler :)
Yes +1 for onLoad, and in keeping with the  spec in web (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Img#image_loading_errors) I say +1 for onError too! Then we can skip the throw runtime_error bit and instead call the onError callback if it's present


fix(material/slider): Track fill style should only be applied when slider is focused, as opposed to when any ancestor is focused.

Stackblitz repro of original bug: https://stackblitz.com/edit/angular-yrsz1m?file=src/app/slider-overview-example.html

I ran an internal TGP on this change and there were only two screenshot failures, both of which are related and thus reasonable. This PR should be safe to merge.


Add ellipsoid shape to sdf

For the second part of https://github.com/osrf/sdformat/issues/376 and following up #389, this PR adds the ellipsoid simple shape. It is defined by a 3-component vector of doubles for its radii.
This wasn't branched off from #389, but it will need to be rebased on top of it to address a couple of related changes.
Depends directly on https://github.com/ignitionrobotics/ign-math/pull/182
Signed-off-by: Stephen Brawner<EMAIL_ADDRESS>

Rebasing onto master and resolving conflicts

the following is needed for Ubuntu CI: https://github.com/ignition-tooling/gzdev/pull/26

@osrf-jenkins run tests please

we should require version 6.8 of ignition-math6 in cmake/SearchForStuff.cmake
I guess we also aren't using gzdev in the GitHub workflow for this package, so it's not picking up the prereleases

Codecov Report

Merging #434 (c223cc3) into master (fc4dc8c) will increase coverage by 0.25%.
The diff coverage is 91.52%.

@@            Coverage Diff             @@
##           master     #434      +/-   ##
==========================================
+ Coverage   87.60%   87.85%   +0.25%
==========================================
  Files          63       64       +1
  Lines        9616     9905     +289
==========================================
+ Hits         8424     8702     +278
- Misses       1192     1203      +11

Impacted Files
Coverage Δ

src/Geometry.cc
91.26% <84.61%> (-0.77%)
:arrow_down:

src/Ellipsoid.cc
93.47% <93.47%> (ø)

src/Actor.cc
86.09% <0.00%> (+0.29%)
:arrow_up:

src/parser.cc
82.82% <0.00%> (+3.68%)
:arrow_up:

Continue to review full report at Codecov.

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

This added the prereleases in the github action workflow, which should be removed before a stable release is created.