Address disappears in Receive flow

Scenario:

Tap "Receive" from the main screen and see the Receive screen
Tap "Change" - see two addresses (in my fresh wallet I was seeing new address and default address)
Tap any of these two addresses to select and get back to the main Receive screen
Assume that the address was selected by mistake and tap "Change" again
I was seeing only "Default"  address, I think I expect to see both

Wallet crashes.
Steps to reproduce the behaviour:
1.go to "Receive" screen.
2. Tap "Change".
3. Select to address.
Expected: address selected.
Actual: Wallet crashes.

checked


Added linting with Github Actions

need to add some docs, but spawned separate issue for that. closing


Fix some SSL_dup issues and provide better documentation for it

SSL_dup() is a very strange function and it doesn't behave the way one might expect it to, and not in accordance with the man page. There are two primary code paths:

If the SSL object is in a state where the first handshake has started or completed then we up ref the SSL and return back a reference to the same SSL, i.e. it does not  do a dup.

If the SSL object has not yet started the first handshake then

We create a new SSL object from the same SSL_CTX
We copy some selected settings from the src SSL object to the dest SSL object

Probably when SSL_dup was first written it dup'd all of the setting in the SSL object. But it doesn't do that any more and hasn't done so for a very long time. For example a selection of settings that it doesn't "dup" include:
tlsext_host_name
tlsext_debug_callback
tlsext_status_type
mtu
psk_client_callback
psk_server_callback
psk_find_session_callback
psk_use_session_callback
max_early_data
sigalgs
client_sigalgs
min_proto_version
max_proto_version
groups
max_pipelines
...
(this is just a small selection the list goes on...)
Keeping SSL_dup maintained and current is a hard job. In practice I believe this function to be rarely used. IMO the best way forward is to simply document what it does do and not attempt to  fix all the various settings.
Potentially we might consider deprecating it entirely. However I have not taken that step in this PR, as I thought that might be controversial. That could be a follow up PR.
One setting that I have fixed is that for min_proto_version/max_proto_version. This probably really should be "dup'd". Thanks to Rebekah Johnson for reporting this issue.
While looking into this problem I realised that the current BIO handling in SSL_dup is broken to the extent that if you call SSL_dup before a handshake has started, but after you have set BIOs on your SSL object, then it is likely to crash, or at least fail in some unexpected way:
Firstly the SSL_dup code was passing a BIO ** as the destination argument for BIO_dup_state. However BIO_dup_state expects a BIO * for that parameter. Any attempt to use this will either (1) fail silently, (2) crash or fail in some other strange way.
Secondly many BIOs do not implement the BIO_CTRL_DUP ctrl required to make this work.
Thirdly, if rbio == wbio in the original SSL object, then an attempt is made to up-ref the BIO in the new SSL object - even though it hasn't been set yet and is NULL. This results in a crash.
This appears to have been broken for a very long time with at least some of the problems described above coming from SSLeay. The simplest approach is to just remove this BIO dup capability from the function.
Once this is approved, I will create a 1.1.1 backport PR.

24 hours has passed since 'approval: done' was set, but this PR has failing CI tests.  Once the tests pass it will get moved to 'approval: ready to merge' automatically, alternatively please review and set the label manually.

Travis eventually ran and reported a doc-nits issue. I've rebased this to resolve a conflict with master, and pushed a fixup to address the travis failure.
@t8m please reconfirm?

This pull request is ready to merge

Pushed to master. Backport to 1.1.1 in #12245.


Can't install

Hey, I wanted to try this package out, but I could not install it.
$ go get -v github.com/LyricalSecurity/gigo
github.com/LyricalSecurity/actions (download)
Username for 'https://github.com':

go get tries to get LyricalSecurity/actions which is not a public repo, it's embedded into gigo but go get doesn't know that, it looks for the real repo.
If I cd to the now cloned but not built project:
$ sh build.sh
main.go:7:3: cannot find package "github.com/LyricalSecurity/actions" in any of:
	/usr/local/go/src/github.com/LyricalSecurity/actions (from $GOROOT)
	<mygopath>/src/github.com/LyricalSecurity/actions (from $GOPATH)

I'm assuming it's because you use some kind of import rewriting, and this import fails:
https://github.com/LyricalSecurity/gigo/blob/master/main.go#L7
Also note that your build instructions are not idiomatic go. I should be able to go install github.com/LyricalSecurity/gigo and have the binary in my $GOPATH/bin. I should not have to run your build script and copy the binary into my path.

Hi,
go get definitely won't work with this in its current state - though I can see that changing easily enough in the future. What version of go are you trying this with? We're working off of go 1.4.2- where it appears to work on the variety of platforms we support.

I'm on 1.4.2 and linux.
Have you tried completely removing gigo before installing it? May be a catch 22 scenario.

Here is a dockerfile that reproduces it:
FROM golang:1.4.2
RUN go get -v github.com/LyricalSecurity/gigo

Command:
$ docker build -t gigo .
Sending build context to Docker daemon 97.79 kB
Sending build context to Docker daemon
Step 0 : FROM golang:latest
 ---> 121a93c90463
Step 1 : RUN go get -v github.com/LyricalSecurity/gigo
 ---> Running in 72dcdd182bbf
github.com/LyricalSecurity/gigo (download)
github.com/LyricalSecurity/actions (download)
# cd .; git clone https://github.com/LyricalSecurity/actions /go/src/github.com/LyricalSecurity/actions
Cloning into '/go/src/github.com/LyricalSecurity/actions'...
fatal: could not read Username for 'https://github.com': No such device or address
package github.com/LyricalSecurity/gigo
	imports github.com/LyricalSecurity/actions: exit status 128
github.com/codegangsta/cli (download)
INFO[0001] The command [/bin/sh -c go get -v github.com/LyricalSecurity/gigo] returned a non-zero code: 1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Nuts - as am I. We did exactly that (repeatedly) prior to publish, and
I did it again with our current repository, just in case.
On 15-05-01 03:59 PM, Nick Gauthier wrote:

I'm on 1.4.2 and linux.
Have you tried completely removing gigo before installing it? May
be a catch 22 scenario.
--- Reply to this email directly or view it on GitHub:
https://github.com/LyricalSecurity/gigo/issues/2#issuecomment-98220390

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlVD254ACgkQ1rPjlpT926irlwCeMZUcCrrq8UFXD1qHy1rhNZgx
uzgAmwZoYaBE/3dJYTUNPGMe1ZKzUM6s
=rzA3
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Brilliant - thanks. I can hack on that later.

--c

On 15-05-01 04:01 PM, Nick Gauthier wrote:

Here is a dockerfile that reproduces it:
github.com/LyricalSecurity/gigo ```

Command:

``` $ docker build -t gigo . Sending build context to Docker daemon
97.79 kB Sending build context to Docker daemon Step 0 : FROM
golang:latest ---> 121a93c90463 Step 1 : RUN go get -v
github.com/LyricalSecurity/gigo ---> Running in 72dcdd182bbf
github.com/LyricalSecurity/gigo (download)
github.com/LyricalSecurity/actions (download) # cd .; git clone
https://github.com/LyricalSecurity/actions
/go/src/github.com/LyricalSecurity/actions Cloning into
'/go/src/github.com/LyricalSecurity/actions'... fatal: could not
read Username for 'https://github.com': No such device or address
package github.com/LyricalSecurity/gigo imports
github.com/LyricalSecurity/actions: exit status 128
github.com/codegangsta/cli (download) INFO[0001] The command
[/bin/sh -c go get -v github.com/LyricalSecurity/gigo] returned a
non-zero code: 1 ```

--- Reply to this email directly or view it on GitHub:
https://github.com/LyricalSecurity/gigo/issues/2#issuecomment-98220665

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlVD284ACgkQ1rPjlpT926js+gCgtUBBdv2nXQTb8lsX6UQRJY6v
TN0AoOsbcAeTH5RwwC1nWsUVckczlANG
=GYSA
-----END PGP SIGNATURE-----

Great! Figured it was the MVP of reproduction examples.

Same problem as original poster.

Same problem


[ENT-39] Implement pause and unpause

N.b.: still in draft status
This PR adds pause and unpause functionality as part of the enterprise feature set. Pause quiesces a Pachyderm cluster, terminating all worker pods and restarting all pachd pods in a special paused state; unpause reverses this.
It adds two subcommands to pachctl: pachctl enterprise pause and pachctl enterprise unpause.

Re. changing Deployment.Spec.Template.Annotations, that does indeed cause the deployment to execute a rolling restart of each pachd pod. By setting the annotation to the current timestamp, one knows that it will be a change.

I implemented graceful stop of the gRPC server in order to let Pause return.

IMO this is fundamentally the wrong approach.  Normally high level feedback would be provided in a design doc, but the first I saw the doc or this PR was this morning.  I saw a doc for the Velero backup stuff, but nothing for pause/unpause.  Since there is already an implementation, I'm going to provide feedback here.
Having pachd scale down itself is difficult to reason about for the same reasons self-modifying code is difficult to reason about.  It's usually possible to express what you want with a system that doesn't self-modify.  Both the enterprise server and pachctl could do this easily and sanely.
It looks like we decide whether the cluster is paused based on reading a value out of the database at startup? That seems like it could eventually give the wrong value if you called Pause then Unpause in between container restarts.  Setting a parameter or environment variable is a better approach.  In order to keep track of whether the pachds are done switching, we would need to write back to the database once they are done switching modes, for each pachd, not just the one serving the RPC.  The source of truth for the pachd mode should always be its k8s configuration.
An RPC called Pause should block until the cluster is paused, and should be idempotent and retryable.  This will make it easy for the caller to move onto whatever is next, knowing that pause is done.  On a non-pachd system this could be implemented as polling the k8s API or waiting for events.
Pachd does a lot of things and has a lot of people changing it's source at once; I don't think an approach where you have to go around trying to stop everything is a good idea.  The shutdown path for all of these services is totally untested (because it hasn't been important), and it's too easy to leak worker or master background processes and totally break this feature.
A better approach is to use the enterprise server, which IIRC receives heartbeats from all the clusters it manages, and could connect back to them if it wanted to.  Pause scales pachd to 0 and makes sure that's done, then returns.  Pachctl could also work for single cluster deployment for people who don't have an enterprise server.  I don't thing k8s access is really that much to ask considering this operation will probably done by administrators prior to upgrading (which also needs k8s access).  Data scientists will probably not be backing up pachyderm themselves.  If they aren't backing up postgres and object storage, why do they need to use Pause/Unpause?
As far as this implementation goes:
Sprinkling branches throughout the initialization does not inspire confidence that everything which needs to be disabled has been disabled.  We should create another pachd mode called pause, spin up just the enterprise server, database and external API to serve the unpause RPC.  This would be easy to do if pause was just another pachd mode.  Alternatively you could initialize a database connection sooner.

Per our meeting this morning, I’ll rework this PR:

Rather than use a database value, pachd will take a command line argument, which will be set by the redeployment machinery.
This will start it in paused mode, which will be an independent mode of operation.
The Pause & Unpause RPCs will be idempotent.
I will add an additional RPC to indicate whether the workspace is paused, partially paused (i.e., some pachds running in paused mode and some not) or unpaused.
I will add license & identity APIs to the paused mode API set.

Summarize the approach in a "Design Doc" and share it in eng for feedback.
Add some integration tests

Both done.

Design Question: Right now it looks to me like we aren't scaling down pachds, mainly pausing them from doing background work and scaling down their workers. Is this intentional?

Correct. It would be possible to scale pachd down to one pod, and then scale back up, but I figured that the additional complexity is probably not worth it, especially given our longer-term direction to do this remotely, from the enterprise server.

What are the major costs that customers have in a cluster that's driving this feature - is it the "work" done by pachd, or the pods themeselves? Is this something we'd do in the future?

In this case, we’re not worried about cost but mutable state. If cost does end up being a driver for pause, then I think it would be appropriate to consider scaling pachd down to a single pod.

Offline discussion delved into the need to support pausable modes
other than full and the interplay with Helm, which may not manage the
pause state because we do not wish to reset the pause state after a
Helm operation.  The issue here is determining which state to unpause
into.  This is what we decided on:

A new environment variable UNPAUSED_STATE which indicates
the original start-up state of the cluster.
The Pause RPC will no longer track the previous mode of the
cluster; it will just set the current mode to paused if it is not
already set.
The Unpause RPC will set the current mode of the cluster to the value of
UNPAUSED_STATE, or if it is unset to full mode.

The value of UNPAUSED_STATE will be plumbed through to
Unpause from the main package via server.EnvFromServerEnv.

Helm will be used to set UNPAUSED_STATE appropriately.


Revert deprication commit to fix travis

Reverts chef/chef#5022 which is breaking the poise travis tests.

:-1: This should be fixed on the Poise side.

(and I'm working on that :)

sweet @coderanger if you are on that and can get it green fairly quickly then I agree its the way to go.

Poise master is green again.


DBError on Server Start

Getting following Error with the last update and the Server is Unable to start.
AzerothCore rev. 203f2ec7eb24+ 2022-09-27 08:40:27 -0600 (Playerbot branch) (Unix, Release, Static) (worldserver-daemon)
<Ctrl-C> to stop.

   █████╗ ███████╗███████╗██████╗  ██████╗ ████████╗██╗  ██╗
  ██╔══██╗╚══███╔╝██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝██║  ██║
  ███████║  ███╔╝ █████╗  ██████╔╝██║   ██║   ██║   ███████║
  ██╔══██║ ███╔╝  ██╔══╝  ██╔══██╗██║   ██║   ██║   ██╔══██║
  ██║  ██║███████╗███████╗██║  ██║╚██████╔╝   ██║   ██║  ██║
  ╚═╝  ╚═╝╚══════╝╚══════╝╚═╝  ╚═╝ ╚═════╝    ╚═╝   ╚═╝  ╚═╝
                                 ██████╗ ██████╗ ██████╗ ███████╗
                                ██╔════╝██╔═══██╗██╔══██╗██╔════╝
                                ██║     ██║   ██║██████╔╝█████╗
                                ██║     ██║   ██║██╔══██╗██╔══╝
                                ╚██████╗╚██████╔╝██║  ██║███████╗
                                 ╚═════╝ ╚═════╝ ╚═╝  ╚═╝╚══════╝

     AzerothCore 3.3.5a  -  www.azerothcore.org

> Using configuration file       /root/azeroth-server/etc/worldserver.conf
> Using SSL version:             OpenSSL 1.1.1n  15 Mar 2022 (library: OpenSSL 1.1.1n  15 Mar 2022)
> Using Boost version:           1.74.0

Daemon PID: 24075

Process priority class set to -15

Loading modules configuration...

Using modules configuration:
> mod_ahbot.conf
> AutoBalance.conf
> mod_customlogin.conf
> GainHonorGuard.conf
> mod_moneyforkills.conf
> npc_enchanter.conf
> playerbots.conf
> pocketportal.conf
> RandomEnchants.conf
> reagent_bank.conf
> mod-save-inventory.conf

Initializing Scripts...
> Loading C++ scripts

Opening DatabasePool 'acore_auth'. Asynchronous connections: 1, synchronous connections: 1.
DatabasePool 'acore_auth' opened successfully. 2 total connections running.

Opening DatabasePool 'acore_characters'. Asynchronous connections: 1, synchronous connections: 2.
DatabasePool 'acore_characters' opened successfully. 3 total connections running.

Opening DatabasePool 'acore_world'. Asynchronous connections: 1, synchronous connections: 1.
DatabasePool 'acore_world' opened successfully. 2 total connections running.

Updating Auth database...
>> Auth database is up-to-date! Containing 1 new and 34 archived updates.

Updating Character database...
>> Character database is up-to-date! Containing 1 new and 61 archived updates.

Updating World database...
>> World database is up-to-date! Containing 111 new and 3171 archived updates.

Opening DatabasePool 'acore_playerbots'. Asynchronous connections: 1, synchronous connections: 1.
DatabasePool 'acore_playerbots' opened successfully. 2 total connections running.

Updating Playerbots database...
DBUpdater: Given update include directory "/root/azerothcore-bots/modules/mod-playerbots/sql/playerbots/archive" does not exist, skipped!
>> Playerbots database is up-to-date! Containing 0 new and 0 archived updates.

Closing down DatabasePool 'acore_playerbots'.
Asynchronous connections on DatabasePool 'acore_playerbots' terminated. Proceeding with synchronous connections.
All connections on DatabasePool 'acore_playerbots' closed.
Could not prepare statements of the Playerbots database, see log for details.
Closing down DatabasePool 'acore_playerbots'.
Asynchronous connections on DatabasePool 'acore_playerbots' terminated. Proceeding with synchronous connections.
All connections on DatabasePool 'acore_playerbots' closed.

In mysql_stmt_prepare() id: 37, sql: "SELECT `name`, `text`, `say_type`, `reply_type`, `text_loc1`, `text_loc2`, `text_loc3`, `text_loc4`, `text_loc5`, `text_loc6`, `text_loc7`, `text_loc8` FROM `ai_playerbot_texts`"
Table 'acore_playerbots.ai_playerbot_texts' doesn't exist
In mysql_stmt_prepare() id: 37, sql: "SELECT `name`, `text`, `say_type`, `reply_type`, `text_loc1`, `text_loc2`, `text_loc3`, `text_loc4`, `text_loc5`, `text_loc6`, `text_loc7`, `text_loc8` FROM `ai_playerbot_texts`"
Table 'acore_playerbots.ai_playerbot_texts' doesn't exist

Thanks

Getting following Error with the last update and the Server is Unable to start.
AzerothCore rev. 203f2ec7eb24+ 2022-09-27 08:40:27 -0600 (Playerbot branch) (Unix, Release, Static) (worldserver-daemon)
<Ctrl-C> to stop.

   █████╗ ███████╗███████╗██████╗  ██████╗ ████████╗██╗  ██╗
  ██╔══██╗╚══███╔╝██╔════╝██╔══██╗██╔═══██╗╚══██╔══╝██║  ██║
  ███████║  ███╔╝ █████╗  ██████╔╝██║   ██║   ██║   ███████║
  ██╔══██║ ███╔╝  ██╔══╝  ██╔══██╗██║   ██║   ██║   ██╔══██║
  ██║  ██║███████╗███████╗██║  ██║╚██████╔╝   ██║   ██║  ██║
  ╚═╝  ╚═╝╚══════╝╚══════╝╚═╝  ╚═╝ ╚═════╝    ╚═╝   ╚═╝  ╚═╝
                                 ██████╗ ██████╗ ██████╗ ███████╗
                                ██╔════╝██╔═══██╗██╔══██╗██╔════╝
                                ██║     ██║   ██║██████╔╝█████╗
                                ██║     ██║   ██║██╔══██╗██╔══╝
                                ╚██████╗╚██████╔╝██║  ██║███████╗
                                 ╚═════╝ ╚═════╝ ╚═╝  ╚═╝╚══════╝

     AzerothCore 3.3.5a  -  www.azerothcore.org

> Using configuration file       /root/azeroth-server/etc/worldserver.conf
> Using SSL version:             OpenSSL 1.1.1n  15 Mar 2022 (library: OpenSSL 1.1.1n  15 Mar 2022)
> Using Boost version:           1.74.0

Daemon PID: 24075

Process priority class set to -15

Loading modules configuration...

Using modules configuration:
> mod_ahbot.conf
> AutoBalance.conf
> mod_customlogin.conf
> GainHonorGuard.conf
> mod_moneyforkills.conf
> npc_enchanter.conf
> playerbots.conf
> pocketportal.conf
> RandomEnchants.conf
> reagent_bank.conf
> mod-save-inventory.conf

Initializing Scripts...
> Loading C++ scripts

Opening DatabasePool 'acore_auth'. Asynchronous connections: 1, synchronous connections: 1.
DatabasePool 'acore_auth' opened successfully. 2 total connections running.

Opening DatabasePool 'acore_characters'. Asynchronous connections: 1, synchronous connections: 2.
DatabasePool 'acore_characters' opened successfully. 3 total connections running.

Opening DatabasePool 'acore_world'. Asynchronous connections: 1, synchronous connections: 1.
DatabasePool 'acore_world' opened successfully. 2 total connections running.

Updating Auth database...
>> Auth database is up-to-date! Containing 1 new and 34 archived updates.

Updating Character database...
>> Character database is up-to-date! Containing 1 new and 61 archived updates.

Updating World database...
>> World database is up-to-date! Containing 111 new and 3171 archived updates.

Opening DatabasePool 'acore_playerbots'. Asynchronous connections: 1, synchronous connections: 1.
DatabasePool 'acore_playerbots' opened successfully. 2 total connections running.

Updating Playerbots database...
DBUpdater: Given update include directory "/root/azerothcore-bots/modules/mod-playerbots/sql/playerbots/archive" does not exist, skipped!
>> Playerbots database is up-to-date! Containing 0 new and 0 archived updates.

Closing down DatabasePool 'acore_playerbots'.
Asynchronous connections on DatabasePool 'acore_playerbots' terminated. Proceeding with synchronous connections.
All connections on DatabasePool 'acore_playerbots' closed.
Could not prepare statements of the Playerbots database, see log for details.
Closing down DatabasePool 'acore_playerbots'.
Asynchronous connections on DatabasePool 'acore_playerbots' terminated. Proceeding with synchronous connections.
All connections on DatabasePool 'acore_playerbots' closed.

In mysql_stmt_prepare() id: 37, sql: "SELECT `name`, `text`, `say_type`, `reply_type`, `text_loc1`, `text_loc2`, `text_loc3`, `text_loc4`, `text_loc5`, `text_loc6`, `text_loc7`, `text_loc8` FROM `ai_playerbot_texts`"
Table 'acore_playerbots.ai_playerbot_texts' doesn't exist
In mysql_stmt_prepare() id: 37, sql: "SELECT `name`, `text`, `say_type`, `reply_type`, `text_loc1`, `text_loc2`, `text_loc3`, `text_loc4`, `text_loc5`, `text_loc6`, `text_loc7`, `text_loc8` FROM `ai_playerbot_texts`"
Table 'acore_playerbots.ai_playerbot_texts' doesn't exist

Thanks

This has now been fixed, you need to update your playerbot database.

Oh alright.
Will check quickly
Thanks

Sorry but i have already the newest update. Where said error occur

redo delete your playerbot database and see if at boot time everything is created again, otherwise you can create a manual, or you can even update just the text of playerbots.

thanks for your time and advice will do as you say.

Okey it is working again :) thanks
For people with similar problem:
use mysql-cmd
DROP DATABASE acore_playerbots;

at Server Boot recreate the Database and all done.


Some URLs thare are known to firefox/chrome, but are not detected by the sblookup

Example:
$  echo "https://mypaypal.accounts.loginpage.memekjandaperawan[.]com/main-index.php" | sblookup -apikey=$apikey
safebrowsing: 2018/10/20 09:58:12 database.go:111: no database file specified
safebrowsing: 2018/10/20 09:58:15 database.go:389: database is now healthy
safebrowsing: 2018/10/20 09:58:15 safebrowser.go:551: Next update in 30m17s
Safe URL: https://mypaypal.accounts.loginpage.memekjandaperawan.com/main-index.php

But
https://transparencyreport.google.com/safe-browsing/search?url=https:%2F%2Fmypaypal.accounts.loginpage.memekjandaperawan.com%2Fmain-index.php&hl=de

shows that this page is unsafe. I assume that the data sources differ. I that the expected behavour?

Another one
$  echo "https://myapplidcancelation.serveirc[.]com/earlymorn" | sblookup -apikey=$apikey
safebrowsing: 2018/10/29 08:12:04 database.go:111: no database file specified
safebrowsing: 2018/10/29 08:12:07 database.go:389: database is now healthy
safebrowsing: 2018/10/29 08:12:07 safebrowser.go:551: Next update in 30m17s
Safe URL: https://myapplidcancelation.serveirc.com/earlymorn

vs.
https://transparencyreport.google.com/safe-browsing/search?url=https:%2F%2Fmyapplidcancelation.serveirc.com%2Fearlymorn

Sorry, duplicate of #30


Search Page Result Sorting

When reports are searched, you should be able to sort by

Relevance
Report number

Asc and dsc, default Relevance

Being handled by #10


FileStore

Use case: Shared Persistent Kubernetes Volume :)

Understandable. Just thought that a basic file store would also have its place within this repo because it is less exotic than some of the other stores.


editor anomaly with screen reader (NVDA for blind users)

Problem Description
i use NVDA screen reader (free and open source see nv access.org) with spyder version 6. in the editor panel of spyder, during moving the text cursor with up dans down arrows, NVDA is supposed to annonce line content. when a line is empty, NVDA annonce the content of the prevuous one. it doesn't say "empty line"
this anomly  probably comes from use of UI Accessible class object the editor panel
What steps reproduce the problem?
first sttep : open spyder version 6
step 2 : to to text editor panel ou open a python code
step 3 : install  and run NVDAscreen reader
step 4 to to editor pan with ctrl + shift + e shortcut
step 5 : move the text cursor with up and down arrows.
1.
2.
3.
What is the expected output? What do you see instead?
NVDA is supposed to annonce the text line content or "empty line" if the line is empty !
here, if a code line is followed by an empty line, NVDA will annonce correctly the content of the first line with code. when moving down the text cursor on the empty line, NVDA will repeat content of the the prévious text line instead of "empty line"
Paste Traceback/Error Below (if applicable)
no error genrated

PASTE TRACEBACK HERE
not applicable

Versions

Spyder version: 6.0.0  (standalone)
Python version: 3.11.9 64-bit
Qt version: 5.15.8
PyQt5 version: 5.15.9
Operating System: Windows-10-10.0.22631-SP0

Dependencies
Mandatory:
aiohttp >=3.9.3                  :  3.10.5 (OK)
asyncssh >=2.14.0,<3.0.0         :  2.17.0 (OK)
atomicwrites >=1.2.0             :  1.4.1 (OK)
chardet >=2.0.0                  :  5.2.0 (OK)
cloudpickle >=0.5.0              :  3.0.0 (OK)
cookiecutter >=1.6.0             :  2.6.0 (OK)
diff_match_patch >=20181111      :  20230430 (OK)
github >=2.3.0                   :  2.4.0 (OK)
importlib_metadata >=4.6.0       :  8.4.0 (OK)
intervaltree >=3.0.2             :  3.1.0 (OK)
IPython >=8.13.0,<9.0.0,!=8.17.1 :  8.27.0 (OK)
jedi >=0.17.2,<0.20.0            :  0.19.1 (OK)
jellyfish >=0.7                  :  1.1.0 (OK)
jsonschema >=3.2.0               :  4.23.0 (OK)
keyring >=17.0.0                 :  25.3.0 (OK)
nbconvert >=4.0                  :  7.16.4 (OK)
numpydoc >=0.6.0                 :  1.8.0 (OK)
parso >=0.7.0,<0.9.0             :  0.8.4 (OK)
pexpect >=4.4.0                  :  4.9.0 (OK)
pickleshare >=0.4                :  0.7.5 (OK)
psutil >=5.3                     :  6.0.0 (OK)
pygments >=2.0                   :  2.18.0 (OK)
pylint >=3.1,<4                  :  3.2.7 (OK)
pylint_venv >=3.0.2              :  3.0.3 (OK)
pyls_spyder >=0.4.0              :  0.4.0 (OK)
pylsp >=1.12.0,<1.13.0           :  1.12.0 (OK)
pylsp_black >=2.0.0,<3.0.0       :  2.0.0 (OK)
pyuca >=1.2                      :  1.2 (OK)
qdarkstyle >=3.2.0,<3.3.0        :  3.2.3 (OK)
qstylizer >=0.2.2                :  0.2.3 (OK)
qtawesome >=1.3.1,<1.4.0         :  1.3.1 (OK)
qtconsole >=5.6.0,<5.7.0         :  5.6.0 (OK)
qtpy >=2.4.0                     :  2.4.1 (OK)
rtree >=0.9.7                    :  1.3.0 (OK)
setuptools >=49.6.0              :  73.0.1 (OK)
sphinx >=0.6.6                   :  8.0.2 (OK)
spyder_kernels >=3.0.0,<3.1.0    :  3.0.0 (OK)
superqt >=0.6.2,<1.0.0           :  0.6.7 (OK)
textdistance >=4.2.0             :  4.6.2 (OK)
three_merge >=0.1.1              :  0.1.1 (OK)
watchdog >=0.10.3                :  5.0.1 (OK)
yarl >=1.9.4                     :  1.9.7 (OK)
zmq >=24.0.0                     :  26.2.0 (OK)
Optional:
cython >=0.21                    :  3.0.11 (OK)
matplotlib >=3.0.0               :  3.9.2 (OK)
numpy >=1.7                      :  2.1.0 (OK)
pandas >=1.1.1                   :  2.2.2 (OK)
scipy >=0.17.0                   :  1.14.1 (OK)
sympy >=0.7.3                    :  1.13.2 (OK)

Hi @FrancoisLB thank you for the report and sorry for the late response! I think I was able to reproduce this. Seems like adding a space over the blank line enables the reader to detect the line as empty. Also, checking the Qt issue tracker, seems like this behavior has been reported (https://bugreports.qt.io/browse/QTBUG-69472) so seems like this accessibility issues with NVDA come from Qt itself :/ What do you think @ccordoba12 ?

What do you think @ccordoba12?

@dalthviz, yep, it seems that's the case, which means there's little we can do about it. Could post a comment on the issue you referenced saying that that's still a problem and it's important for Spyder users to get a fix at some point? Thanks!
@FrancoisLB, Qt is the graphical toolkit on top of which Spyder is built. But it's a C++ library, so it's not so easy for us to make changes on it.
But we'll leave your issue open in case someone else in the future reports a similar problem and to monitor the situation with Qt from time to time.


Use vscode workspace service

This MR is a breaking change:

Services.install({ workspace }) doesn't exist anymore. Instead, the default workspace folder can be provided to getConfigurationServiceOverride and updated through the vscode api (vscode.workspace.updateWorkspaceFolders)
StandaloneServices.initialize shouldn't be used directly but initialize from vscode/services instead (and the new method retuns a promise that should be awaited before creating an editor and interacting with monaco)
initialize from vscode/extensions should be called and awaited before interacting with the vscode api. It can take the default extension as parameter to override it
getJsonSchemas was replaced by synchronizeJsonSchemas to simplify usage

These changes allow to remove most of the hacks that were due to the poor lifecycle management we had there, now it's much more close to how vscode works
What it adds:

it registers a memory filesystem on the file scheme
it exposes a createModelReference method that creates a model reference from a file on the memory filesystem (the method take a second argument with the file content to be written to the memory filesystem before creating the model); this method is already called internally a lot (on a ctrl+click with LSP for instance) and vscode is not designed to have model not created via a reference (it can no longer count references or even know there is an existing instance)
configuration and configurationDefaults from extension manifests are now used
a registerFileSystemOverlay method is exposed (from service-override/files) to be able to plug a remote filesystem. It also exposed a SimpleTextFileSystemProvider class for simple usages. Note that there is no a filesystem registered on file so we can't use registerTextModelContentProvider on file` anymore)
it implements more of the vscode.workspace api

It's another BIG PR, sorry for that
note that monaco 0.37 just got released, and since there is some breaking changes here, we can chose to no release it and wait for the update to monaco 0.37/vscode 1.78 that will follow

Sounds good, but it's a lot of code again.

note that monaco 0.37 just got released, and since there is some breaking changes here, we can chose to no release it and wait for the update to monaco 0.37/vscode 1.78 that will follow

It makes sense to me and I have more time to review it. 🙈  vscode release is after the 28th this month according to their plans.
Can you prevent semantic release, because then we could merge this in and have the 0.37 afterwards and then got to 1.78.0 once it is available.

Sounds good, but it's a lot of code again.

You're right ! It's the last big refactor until a long time I hope :crossed_fingers:

note that monaco 0.37 just got released, and since there is some breaking changes here, we can chose to no release it and wait for the update to monaco 0.37/vscode 1.78 that will follow

It makes sense to me and I have more time to review it. see_no_evil vscode release is after the 28th this month according to their plans. Can you prevent semantic release, because then we could merge this in and have the 0.37 afterwards and then advance to the version to 1.78.0 once next vscode is available.

I can just cancel the release pipeline after merging, I already did it

Good job. I was wondering if it makes sense to introduce unit test using vitest for testing the services instead of having only the demo for verification.

Yep! everything that helps preventing regressions is worthwhile. I'm not sure how to do that though...

I have some ideas, but it will be likely be May before I come back to it.

Something like a monaco-editor/monaco-vscode-api test jumpstart / boilerplate kit that let's you then help to write specific tests shorter.


Ambadassor pod doesn't start due to failing readiness probe

Describe the bug
On a completely naked K3S single-node cluster, it seems that the Ambadassor pod is not getting up because the configured readiness probe is failing. This is a new behaviour in version 1.10.0, using version 1.9.1. This also seems to be not related to the base operating system, I tried the same with Ubuntu 20.04 and experience the same issue.
...
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  2m29s                default-scheduler  Successfully assigned ambassador/ambassador-85d494566b-zfprw to k3os-6444
  Normal   Pulling    2m29s                kubelet            Pulling image "docker.io/datawire/aes:1.10.0"
  Normal   Pulled     107s                 kubelet            Successfully pulled image "docker.io/datawire/aes:1.10.0"
  Normal   Created    106s                 kubelet            Created container aes
  Normal   Started    106s                 kubelet            Started container aes
  Warning  Unhealthy  44s (x21 over 104s)  kubelet            Readiness probe failed: HTTP probe failed with statuscode: 503

Log output of that pod:
2021/01/07 14:37:08 Started Ambassador
2021/01/07 14:37:08 AMBASSADOR_CLUSTER_ID=82f6d5ed-63a3-5d00-a1a2-0094c451ffcd
time="2021-01-07 14:37:08" level=info msg="[pid:15] started command []string{\"diagd\", \"/ambassador/snapshots\", \"/ambassador/bootstrap-ads.json\", \"/ambassador/envoy/envoy.json\", \"--notices\", \"/ambassador/notices.json\", \"--port\", \"8004\", \"--kick\", \"kill -HUP 1\"}" func="github.com/datawire/dlib/dexec.(*Cmd).Start" file="github.com/datawire/dlib@v1.1.0/dexec/cmd.go:143" CMD=entrypoint PID=1 THREAD=/diagd
time="2021-01-07 14:37:08" level=info msg="[pid:15] stdin  < not logging input read from file /dev/stdin" func="github.com/datawire/dlib/dexec.(*Cmd).Start" file="github.com/datawire/dlib@v1.1.0/dexec/cmd.go:145" CMD=entrypoint PID=1 THREAD=/diagd
time="2021-01-07 14:37:08" level=info msg="[pid:15] stdout > not logging output written to file /dev/stdout" func="github.com/datawire/dlib/dexec.(*Cmd).Start" file="github.com/datawire/dlib@v1.1.0/dexec/cmd.go:148" CMD=entrypoint PID=1 THREAD=/diagd
time="2021-01-07 14:37:08" level=info msg="[pid:15] stderr > not logging output written to file /dev/stderr" func="github.com/datawire/dlib/dexec.(*Cmd).Start" file="github.com/datawire/dlib@v1.1.0/dexec/cmd.go:151" CMD=entrypoint PID=1 THREAD=/diagd
time="2021-01-07 14:37:08" level=info msg="[pid:16] started command []string{\"/ambassador/sidecars/amb-sidecar\"}" func="github.com/datawire/dlib/dexec.(*Cmd).Start" file="github.com/datawire/dlib@v1.1.0/dexec/cmd.go:143" CMD=entrypoint PID=1 THREAD=/amb-sidecar
time="2021-01-07 14:37:08" level=info msg="[pid:16] stdin  < not logging input read from file /dev/stdin" func="github.com/datawire/dlib/dexec.(*Cmd).Start" file="github.com/datawire/dlib@v1.1.0/dexec/cmd.go:145" CMD=entrypoint PID=1 THREAD=/amb-sidecar
time="2021-01-07 14:37:08" level=info msg="[pid:16] stdout > not logging output written to file /dev/stdout" func="github.com/datawire/dlib/dexec.(*Cmd).Start" file="github.com/datawire/dlib@v1.1.0/dexec/cmd.go:148" CMD=entrypoint PID=1 THREAD=/amb-sidecar
time="2021-01-07 14:37:08" level=info msg="[pid:16] stderr > not logging output written to file /dev/stderr" func="github.com/datawire/dlib/dexec.(*Cmd).Start" file="github.com/datawire/dlib@v1.1.0/dexec/cmd.go:151" CMD=entrypoint PID=1 THREAD=/amb-sidecar
time="2021-01-07 14:37:09" level=info msg="Ambassador Edge Stack configuration loaded" func=github.com/datawire/apro/cmd/amb-sidecar.runE file="github.com/datawire/apro/cmd/amb-sidecar/main.go:123" CMD=amb-sidecar PID=16
time="2021-01-07T14:37:10Z" level=warning msg="statsd is not in use"
time="2021-01-07 14:37:10" level=error msg="Failed to create watch on /home/ambassador/.config/ambassador/: Changes might require a restart: no such file or directory" func=github.com/datawire/apro/cmd/amb-sidecar.triggerOnChange file="github.com/datawire/apro/cmd/amb-sidecar/files.go:56" CMD=amb-sidecar PID=16 THREAD=/license_refresh
E0107 14:37:12.425241       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
time="2021-01-07 14:37:12" level=error msg="0 filters configured" func="github.com/datawire/apro/cmd/amb-sidecar/filters/controller.(*Controller).Watch.func1" file="github.com/datawire/apro/cmd/amb-sidecar/filters/controller/controller.go:150" CMD=amb-sidecar PID=16 THREAD=/auth_controller
2021/01/07 14:37:12 http: proxy error: dial tcp <IP_ADDRESS>:8004: connect: connection refused
time="2021-01-07 14:37:12" level=error msg="Bad HTTP request: status_code=502" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:37:12" level=error msg="HTTP error 502 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
2021-01-07 14:37:12 diagd 1.10.0 [P15TMainThread] INFO: AMBASSADOR_FAST_RECONFIGURE disabled, not initializing cache
2021-01-07 14:37:12 diagd 1.10.0 [P15TMainThread] INFO: WILL NOT update Mapping status
2021-01-07 14:37:12 diagd 1.10.0 [P15TMainThread] INFO: thread count 5, listening on <IP_ADDRESS>:8004
E0107 14:37:13.473103       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
E0107 14:37:16.160640       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:37:18 diagd 1.10.0 [P15TMainThread] INFO: Ambassador 1.10.0 booted
[2021-01-07 14:37:18 +0000] [15] [INFO] Starting gunicorn 20.0.4
[2021-01-07 14:37:18 +0000] [15] [INFO] Listening at: http://<IP_ADDRESS>:8004 (15)
[2021-01-07 14:37:18 +0000] [15] [INFO] Using worker: threads
[2021-01-07 14:37:18 +0000] [35] [INFO] Booting worker with pid: 35
2021-01-07 14:37:18 diagd 1.10.0 [P35TAEW] INFO: starting Scout checker and timer logger
2021-01-07 14:37:18 diagd 1.10.0 [P35TAEW] INFO: starting event watcher
2021/01/07 14:37:18 Memory Usage 0.15Gi (24%)
    PID 1, 0.06Gi: busyambassador entrypoint
    PID 15, 0.04Gi: /usr/bin/python /usr/bin/diagd /ambassador/snapshots /ambassador/bootstrap-ads.json /ambassador/envoy/envoy.json --notices /ambassador/notices.json --port 8004 --kick kill -HUP 1
    PID 16, 0.11Gi: /ambassador/sidecars/amb-sidecar
    PID 35, 0.04Gi: /usr/bin/python /usr/bin/diagd /ambassador/snapshots /ambassador/bootstrap-ads.json /ambassador/envoy/envoy.json --notices /ambassador/notices.json --port 8004 --kick kill -HUP 1
E0107 14:37:20.061177       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
Calling Metriton
E0107 14:37:27.762765       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
E0107 14:37:45.182925       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:38:12 diagd 1.10.0 [P35TThreadPoolExecutor-0_0] ERROR: 07CBDB25-E63D-4E41-B9D5-13F502F76AE0: <IP_ADDRESS> "GET /ambassador/v0/diag/" 0ms 500 failure
time="2021-01-07 14:38:12" level=error msg="Bad HTTP request: status_code=500" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:38:12" level=error msg="HTTP error 500 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
E0107 14:38:25.393432       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:39:12 diagd 1.10.0 [P35TThreadPoolExecutor-0_0] ERROR: 33DC502C-F547-4127-9216-E43BC25A3F74: <IP_ADDRESS> "GET /ambassador/v0/diag/" 0ms 500 failure
time="2021-01-07 14:39:12" level=error msg="Bad HTTP request: status_code=500" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:39:12" level=error msg="HTTP error 500 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
E0107 14:39:21.269592       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
E0107 14:40:00.064385       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:40:12 diagd 1.10.0 [P35TThreadPoolExecutor-0_0] ERROR: ADA10DD0-8698-41AE-8C4E-BE0484EEE642: <IP_ADDRESS> "GET /ambassador/v0/diag/" 0ms 500 failure
time="2021-01-07 14:40:12" level=error msg="Bad HTTP request: status_code=500" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:40:12" level=error msg="HTTP error 500 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
E0107 14:40:38.978127       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:41:12 diagd 1.10.0 [P35TThreadPoolExecutor-0_0] ERROR: F957E7CC-8C70-4C26-83B6-AECF3B02EA27: <IP_ADDRESS> "GET /ambassador/v0/diag/" 0ms 500 failure
time="2021-01-07 14:41:12" level=error msg="Bad HTTP request: status_code=500" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:41:12" level=error msg="HTTP error 500 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
E0107 14:41:31.556394       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
E0107 14:42:07.755089       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:42:12 diagd 1.10.0 [P35TThreadPoolExecutor-0_0] ERROR: 40C09CC7-37F9-43FF-AB6A-245F985E5079: <IP_ADDRESS> "GET /ambassador/v0/diag/" 0ms 500 failure
time="2021-01-07 14:42:12" level=error msg="Bad HTTP request: status_code=500" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:42:12" level=error msg="HTTP error 500 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
E0107 14:43:03.716303       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:43:12 diagd 1.10.0 [P35TThreadPoolExecutor-0_0] ERROR: 6D6AC540-0FA4-4DDA-8904-DB7556DA77BB: <IP_ADDRESS> "GET /ambassador/v0/diag/" 0ms 500 failure
time="2021-01-07 14:43:12" level=error msg="Bad HTTP request: status_code=500" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:43:12" level=error msg="HTTP error 500 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
E0107 14:43:38.468523       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
E0107 14:44:10.853457       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:44:12 diagd 1.10.0 [P35TThreadPoolExecutor-0_0] ERROR: 1B445D22-97F4-42E6-9C6A-99486B66A4F5: <IP_ADDRESS> "GET /ambassador/v0/diag/" 0ms 500 failure
time="2021-01-07 14:44:12" level=error msg="Bad HTTP request: status_code=500" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:44:12" level=error msg="HTTP error 500 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
E0107 14:44:49.900943       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope
2021-01-07 14:45:12 diagd 1.10.0 [P35TThreadPoolExecutor-0_0] ERROR: 690AE2C7-FDE4-4C64-B9BA-98434A8F5F37: <IP_ADDRESS> "GET /ambassador/v0/diag/" 0ms 500 failure
time="2021-01-07 14:45:12" level=error msg="Bad HTTP request: status_code=500" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1.1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:72" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
time="2021-01-07 14:45:12" level=error msg="HTTP error 500 from http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true" func=github.com/datawire/apro/cmd/amb-sidecar/devportal/server.HTTPGet.func1 file="github.com/datawire/apro/cmd/amb-sidecar/devportal/server/http.go:79" CMD=amb-sidecar PID=16 component=devportal mhost= url="http://<IP_ADDRESS>:8877/ambassador/v0/diag/?json=true"
E0107 14:45:32.596711       1 reflector.go:178] k8s.io/client-go@v0.18.4/tools/cache/reflector.go:125: Failed to list *unstructured.Unstructured: ingressclasses.networking.k8s.io is forbidden: User "system:serviceaccount:ambassador:ambassador" cannot list resource "ingressclasses" in API group "networking.k8s.io" at the cluster scope

To Reproduce
Install Ambassador (YAML method) on k3sos (I used v0.11.1)
Expected behavior
Readiness probe is successful.
Versions (please complete the following information):

Ambassador: 1.10.0
Kubernetes environment: bare metal, k3os VM
Kubernetes version: v1.18.9+k3s1
Kubernetes OS-Image: k3OS v0.11.1
Kubernetes Kernel-Version: 5.4.0-48-generic
Kubernetes Container-Runtime: containerd://1.3.3-k3s2

yeah, I am having this same problem
You can get the pods to come up with AMBASSADOR_LEGACY_MODE: true env var set
I wonder about this INFO: AMBASSADOR_FAST_RECONFIGURE disabled, not initializing cache because that seems like it should be enabled. Maybe there is a problem with the RBAC?

yeah, I am having this same problem
You can get the pods to come up with AMBASSADOR_LEGACY_MODE: true env var set
I wonder about this INFO: AMBASSADOR_FAST_RECONFIGURE disabled, not initializing cache because that seems like it should be enabled. Maybe there is a problem with the RBAC?

AMBASSADOR_FAST_RECONFIGURE should not be enabled unless you've explicitly set AMBASSADOR_FAST_RECONFIGURE=true in the environment, so that seems correct.
I'd actually love to see the configurations for these Ambassadors, if that's easy for either of you to share? This is definitely something I'd like to check out locally.

AMBASSADOR_FAST_RECONFIGURE should not be enabled unless you've explicitly set AMBASSADOR_FAST_RECONFIGURE=true in the environment, so that seems correct.
I'd actually love to see the configurations for these Ambassadors, if that's easy for either of you to share? This is definitely something I'd like to check out locally.

@kflynn sure, this is just a testing machine. What exactly do you need?

@kflynn sure, this is just a testing machine. What exactly do you need?

Ideally, all the YAML that's been applied to the cluster. 🙂
Thanks!

Ideally, all the YAML that's been applied to the cluster. 🙂
Thanks!

Whoops, hit SEND too early. Please don't send any real secrets or anything like that -- most important is RBAC, whatever Ambassador configuration resources are present, and knowing the namespace in which Ambassador is running. Thanks!

Whoops, hit SEND too early. Please don't send any real secrets or anything like that -- most important is RBAC, whatever Ambassador configuration resources are present, and knowing the namespace in which Ambassador is running. Thanks!

I am using the helm chart, 6.5.14 with these values overridden at the moment
ambassador-nlb:
  image:
    repository: docker.io/datawire/ambassador
    # tag: 1.9.1
  # see https://github.com/datawire/ambassador/issues/2691
  volumeMounts:
    - name: ambassador-pod-info
      mountPath: /ambassador/.ambassador_ignore_ingress
      readOnly: false
      subPath: labels
  env:
    ambassador_id: ambassador-nlb
    AMBASSADOR_ENVOY_BASE_ID: "1"
    AMBASSADOR_FAST_RECONFIGURE: "true"
    # AMBASSADOR_LEGACY_MODE: true
    # AMBASSADOR_ISTIO_SECRET_DIR: "/etc/istio-certs"
  enableAES: false
  metrics:
    serviceMonitor:
      enabled: true
  podAnnotations:
    traffic.sidecar.istio.io/includeInboundPorts: ""
    traffic.sidecar.istio.io/excludeInboundPorts: "80,443,22"
  service:
    annotations:
      service.beta.kubernetes.io/aws-load-balancer-internal: "true"
      service.beta.kubernetes.io/aws-load-balancer-type: nlb
    ports:
    - name: http
      port: 80
      targetPort: 8080
      protocol: TCP
    - name: https
      port: 443
      targetPort: 8443
      protocol: TCP
    - name: sftp
      port: 22
      targetPort: 2222

I am using the helm chart, 6.5.14 with these values overridden at the moment
ambassador-nlb:
  image:
    repository: docker.io/datawire/ambassador
    # tag: 1.9.1
  # see https://github.com/datawire/ambassador/issues/2691
  volumeMounts:
    - name: ambassador-pod-info
      mountPath: /ambassador/.ambassador_ignore_ingress
      readOnly: false
      subPath: labels
  env:
    ambassador_id: ambassador-nlb
    AMBASSADOR_ENVOY_BASE_ID: "1"
    AMBASSADOR_FAST_RECONFIGURE: "true"
    # AMBASSADOR_LEGACY_MODE: true
    # AMBASSADOR_ISTIO_SECRET_DIR: "/etc/istio-certs"
  enableAES: false
  metrics:
    serviceMonitor:
      enabled: true
  podAnnotations:
    traffic.sidecar.istio.io/includeInboundPorts: ""
    traffic.sidecar.istio.io/excludeInboundPorts: "80,443,22"
  service:
    annotations:
      service.beta.kubernetes.io/aws-load-balancer-internal: "true"
      service.beta.kubernetes.io/aws-load-balancer-type: nlb
    ports:
    - name: http
      port: 80
      targetPort: 8080
      protocol: TCP
    - name: https
      port: 443
      targetPort: 8443
      protocol: TCP
    - name: sftp
      port: 22
      targetPort: 2222

Ideally, all the YAML that's been applied to the cluster. 🙂
Thanks!

That's easy, this cluster is completely empty, I just installed the YAMLs from the YAML deployment method here: https://www.getambassador.io/docs/latest/tutorials/getting-started/

Ideally, all the YAML that's been applied to the cluster. 🙂
Thanks!

That's easy, this cluster is completely empty, I just installed the YAMLs from the YAML deployment method here: https://www.getambassador.io/docs/latest/tutorials/getting-started/

So, not sure how helpful this is, but what appears to be happening is that diagd is starting before all the configuration is created (and the configuration just never get created)

So, not sure how helpful this is, but what appears to be happening is that diagd is starting before all the configuration is created (and the configuration just never get created)

So I was able to reproduce this with k3d, where it's an RBAC problem: the ambassador clusterrole doesn't ask for permissions for ingressclasses.networking.k8s.io. I got it to work by adding the missing permission, using
kubectl edit clusterrole ambassador

to modify this section:
- apiGroups:
  - extensions
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - get
  - list
  - watch

to instead be
- apiGroups:
  - extensions
  - networking.k8s.io
  resources:
  - ingresses
  - ingressclasses
  verbs:
  - get
  - list
  - watch

Can one of y'all try this and see if it makes your systems happy?

this totally fixes the problem, I put a PR in for the chart at https://github.com/datawire/ambassador-chart/pull/157
Thanks for the help

Excellent news, and thanks for the PR! I'll get this sorted out on our end. 🙂

Excellent news, and thanks for the PR! I'll get this sorted out on our end. 🙂

Works now, thanks a lot!
NAMESPACE     NAME                                         READY   STATUS      RESTARTS   AGE
ambassador    ambassador-85d494566b-zfprw                  1/1     Running     7          17h

Works now, thanks a lot!
NAMESPACE     NAME                                         READY   STATUS      RESTARTS   AGE
ambassador    ambassador-85d494566b-zfprw                  1/1     Running     7          17h

Can one of y'all try this and see if it makes your systems happy?

Same here, this made it work for my Kind cluster. Thanks.

Can one of y'all try this and see if it makes your systems happy?

Same here, this made it work for my Kind cluster. Thanks.

Glad to hear it worked, thanks!! I've opened #3140 to track the YAML fix.

Glad to hear it worked, thanks!! I've opened #3140 to track the YAML fix.

I had the same problem on "single node in-house Kubernetes setup". Adding - ingressclasses in around line 84 of kubectl edit clusterrole ambassador fixes the issue.

I had the same problem on "single node in-house Kubernetes setup". Adding - ingressclasses in around line 84 of kubectl edit clusterrole ambassador fixes the issue.

Likewise had a similar issue with k3d. I appended the following to the rules of the ambassador ClusterRole in aes.yaml:
- apiGroups: [ "extensions", "networking.k8s.io" ]   resources: [ "ingressclasses" ]   verbs: ["get", "list", "watch"]

Likewise had a similar issue with k3d. I appended the following to the rules of the ambassador ClusterRole in aes.yaml:
- apiGroups: [ "extensions", "networking.k8s.io" ]   resources: [ "ingressclasses" ]   verbs: ["get", "list", "watch"]

for those needing the YAML
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: ambassador
  labels:
    product: aes
rules:
- apiGroups: [ "extensions", "networking.k8s.io" ]
  resources: [ "ingressclasses" ]
  verbs: ["list"]
...
...
...

for those needing the YAML
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: ambassador
  labels:
    product: aes
rules:
- apiGroups: [ "extensions", "networking.k8s.io" ]
  resources: [ "ingressclasses" ]
  verbs: ["list"]
...
...
...


add rtl

please add rtl
just change text nav and icon

i fixed it by add this code
`
.hc-offcanvas-nav li {
text-align: right !important;
}
span.nav-next, .hc-offcanvas-nav li.nav-back span {
left: 0 !important;
right: unset !important;

}
.hc-offcanvas-nav li.nav-parent .nav-item {
padding-right: 25px !important;
}
`

Added it as a native support now. Use rtl option.


Logging : Shaka UI should be in debug?

Have you read the Tutorials?
Yes
Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
lastest
What browser and OS are you using?
Chrome
Please ask your question
It seems that if we use the Shaka UI library, it must also be debugged for the logs but this is not indicated in the documentation.
Can you confirm that we need the UI library in debug for the logs?

Most logging is disabled at compile-time in production builds.  This is true for both UI and non-UI builds.
Debug builds have logging enabled and configurable at runtime.  The debugging strings make these builds larger.
Does this help?


Added method to update a Y.XMLFragment from a Prosemirror Doc Node

If the y-prosemirror utility functions were called from a Y.XMLElement perspective, instead of a Y.Doc with a xmlFragment key perspective, developers could re-use the utility functions to perform Y.XMLElement updates on the server. This would give developers another tool to build documents on a server before they are served to clients.
export const appendNodes = (
  yXmlFragment: Y.XmlFragment,
  jsonNodes: XmlNode[],
  schema: Schema
) => {
  // Create the initial state
  const json = yXmlFragmentToProsemirrorJSON(yXmlFragment)
  const doc = Node.fromJSON(schema, json)
  const state = EditorState.create({ doc, schema })

  // Create the new state
  const nodes = jsonNodes.map(node => Node.fromJSON(schema, node))
  const endPosition = state.doc.content.size
  const tr = state.tr.insert(endPosition, nodes)
  const newState = state.apply(tr)

  // Update the yDoc
  updateYXmlFragmentFromProsemirror(type, newState.doc)
}

I've had a slight change of heart from my initial comment. I really only needed updateYFragment export from the sync-plugin.
However, I do think the signature for yDocToProsemirrorJSON isn't quite right, because I have a use case where my Y.XmlFragment is not hanging off of the Y.Doc, which I think is a valid use case. I exported another function yXmlFragmentToProsemirrorJSON which converts a Y.XmlFragment to JSON and then had yDocToProsemirrorJSON use yXmlFragmentToProsemirrorJSON to preserve backward-compatibility and not add any duplication.


Add Unicode-3.0 license

I think this does not work, Did you check? It is not adding the license to https://github.com/eclipse-kuksa/kuksa-common/blob/main/sbom-tools/src/kuksa_sbom_utils/util/maplicensefile.py

Didn't check it, don't know why assumed it would read all *.gz files under licensestore folder


sending a string from TeX to Python seems to create hash table entries of \uffff ⟨character⟩?

Caused by https://github.com/latex3/latex3/issues/938, probably doesn't need to handle.


Getting version_1.1.13[p] to market

Here's what needs to happen; I can't do it all alone, even if I do most of it.

If you are willing to help comment on this issue; we can determine tasks later. If you do this I will add you as an assignee to this task. I'll ping you when work has started and we have enough interest.

Get started

[x] Let @Windows-XAML/template-10-developer-community know I'll do it
[x] Decide we want to update version 1 (@Quico20 can check this one for me)
[x] Determine there is enough interest (I'll act when we have 10 thumb-ups)

Admin kinda stuff

[x] Label issues  correctly (@darenm and @jerrynixon will do that)
[ ] Triage Version 1 Bugs  (@darenm and @jerrynixon will do that)
[ ] Triage all Version 1 Backlog  (@darenm and @jerrynixon will do that)

Final coding

[ ] Address all Version 1 Bugs
[ ] Address all Version 1 Backlog

Library

[ ]  Update nuspec Code
[ ] Submit to Nuget as preview (@jerrynixon has to do this one)
[ ] Verify the preview version of version 13.
[ ] Re-submit to Nuget as non-preview version (@jerrynixon has to do this one)

Template

[ ] Validate Hamburger template.
[ ] Validate Minimal template.
[ ] Validate Blank template.
[ ] Update the VSIX to support new Visual Studio
[ ] Upload the VSIX in the VS Gallery (@jerrynixon will have to do that)

Documentation

[ ] Upload the Samples build and work
[ ] Validate the Wiki
[ ] Update the Wiki (if necessary)
[ ] Update the home readme
[ ] Announce on Twitter

And, then we'll have it.

Well, giving I can't afford to rework the application around a new framework, and I need the updates... I'm in.

This is sad.  Very sad.  Microsoft just spent $7 billion on Github and doesn't see the value of a cross-platform, UI framework or at least a Windows only one?  They should be pouring money into it, not leaving it up to volunteers.
At this point, probably makes no sense to continue developing Windows only desktop applications.  The empty suits at Microsoft have no coherent stategy and have been consisently dropping the ball. Microsoft is no longer a leader, but a follower.  Soon, they will become irrelevant as more developers use Qt and browser based UI options. At that point, they will see the wisdom in divorcing themselves from the entire Microsoft development stack.

@Joebeazelman You know that Template10 has always been volunteer based with no official support from Microsoft, right? You may not be confused, but I know others have mistakenly thought that the Windows-XAML repo is an official Microsoft repository and that Jerry was working in some official capacity. Although Jerry is a Microsoft employee, T10 is not and never has been his job - it's always been a voluntary activity for him and anyone else that contributed.
As to your other points - I share the frustration that this platform has not taken off in the way many hoped it would. That said, desktop development on Windows is far from dead - amazing as it may seem, there are many many Windows Forms and WPF applications being created by developers every day, let alone the countless apps that are being maintained. The way that the desktop development experience is continuing to evolve, you can think of a lot of the UWP features as the way to light up Windows 10 capabilities in apps. Where that app starts from is becoming increasingly open - WinForms, WPF, UWP, PWA and so on. A lot of what Template 10 has always been about was simplifying a rich and complex API footprint into high-level wrappers that illustrate "best practices" for configuring and utilizing the underlying features - that's probably just as useful today as it ever was.
So, if you plan to build apps that not only run on Windows 10, but also leverage some of the best features, then using UWP and T10 makes sense. If, however, you want to build apps that look and feel the same on multiple platforms, then Xamarin, Electron and other technologies are likely better suited for what you want to do.

I'll try to help with T10.V1 beginning by sharing my T10.v1 modified code. I don't consider myself very good, since I haven't ever worked in a team before.
So I'll try to adapt!!!
By the way I admire Microsoft and for me UWP its a great plataform, My app is being developed for Windows Phone, Tablets and Desktop and it has been a fun experience!!! then I'll do the same app for xamarin.forsms and aim android and ios.

I'm in, too.

10 thumps-up ready

I could try and help with the wiki, i remember doing some things not in there or they had changed, i could give it a try and give examples when everything is ready :D, i would also love to try and do this on T10.V2 when its ready since i am moving my app on cross platform and i am thinking of using a lot of things from prism.
I am pretty new to Github and contributing on other projects so i hope i can do my best while i study!! 😄

So... I guess I have to migrate my application to another framework?

Yes. I am not going to do this. So many reasons. Look into Prism.Windows.


[drift] Resolve Race Condition in GCS lookup & then fetch

TL;DR
In iam drift detection we lookup the GCS files and then fetch them in a subsequent step. This could cause issues if the file is deleted or modified from the remote bucket in between the two operations.
Detailed design
Consider using object metadata to allow fetching by version in case the object is deleted and object versioning is enabled.
Also consider wrapping in a retry to handle failure case.
Alternatives considered
No response
Additional information
No response

Obsolete.


feat: upload a blob from ios/android

I understand the main use case of this plugin to be:

upload directly from a path when on ios/android. This will prevent some memory issues related to webview.

However, in some cases an app might still have some minor cases where they already have a blob and want to pass that (eg. an image created/edited on a canvas in the DOM; another example would be to have a client draw a signature on a canvas via a touch screen and save that in cloudinary).
So it will be helpful if we can still pass a blob even on ios and android, even though I understand this is not the main use case.
The docs could say something like this:

--
--
--

blob
Blob
The file to upload. For usage on the web. Also available on Android and iOS, but not recommended. Use path on Android and iOS to prevent memory issues when working with large files.

Unfortunately, a Blob cannot be transferred via the native bridge. That's why the official Filesystem plugin supports only the type string for data (see here). There is an capacitor-blob-writer plugin, but it has potential security risks (see here). I recommend to convert Blobs to base64 and to use the official Capacitor filesystem plugin if a file cannot be created directly on the native file system.
For this reason i am closing this issue.
Please let me know if you have any other ideas for implementation. Then we can open the issue again.

Hey @robingenz
I believe it can be helpful to not use the Swift integration at all in case a blob is passed. Meaning,whatever platform is used, if a blob is passed, the blob is uploaded via the web integration.
When passing a path, the file will be uploaded via swift/java.
There's no need to pass the blob to the native layer.
I do understand that it defeats the purpose of this plugin, but it's helpful because otherwise some apps will need to implement this plugin and implement their own uploading logic next to it just for when they need to save a blob from the WebView while using iOS/android.

Okay, got it. I can't modify the behavior of the Capacitor bridge but I can add a separate utils class, which can be directly used from every platform.


[firebase_messaging] Support getting the instance ID in addition to the token.

Is your feature request related to a problem? Please describe.
Currently firebase_messaging only supports getting the instance ID token. Our use case requires the stable ID. This is not currently exposed in the flutter plugin.
Describe the solution you'd like
A method for retrieving the stable instance ID.

See also: #1924

@talent-apps FYI #2328

Dup of https://github.com/FirebaseExtended/flutterfire/issues/2327

@Ehesp this is a dupe of itself?


[AutoPR logic/resource-manager] Adding in description of available filter options

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/3263

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/2073


feat: use cli outputs in pr comments

fix #85 and #86

Do you have a screenshot?

With verbose off:


Merge pull request #1 from ewolff/master

update

sdssd

This PR doesn't seem to include any changed code. So I won't be merging it. Please resubmit if you believe this is in error. Thank you!


Fix formatting for the README file.

There were issues with the formatting in the checklists for the README file. I was able to fix them by just adding an extra line for each time a topic in the checklist ended.

The issues don't seem to appear for me...

When I check the README on the main page of the github repo the issues can be seen clearly in the checklists

Nevermind, my markdown viewer didn't have that issue. It seems like an issue from my markdown viewer.


Create before_you_begin

@rkuchan @jwilder @kostasb @jackzampolin @rossmcdonald
First pass at a "Cluster stuff you can't ignore!" doc. Lemme know what you think. Would like to merge before Monday.

I feel like you should rename Use three and only three Meta nodes to USE THREE AND ONLY THREE META NODES!!! but that might be too aggressive. Looks great @beckettsean

@beckettsean, I was thinking that this could live in Installation Guidelines - what do you think? I could change the title to Installation Guidelines (Please Read).
I like that structure because it's consistent with the format of the docs for the other projects. I am, however, willing to break from that consistency if you feel strongly about it.

@rkuchan that works well for me, and I defer to your judgment.

@rkuchan I'll let you edit this branch directly and merge when you are ready, okay?


standard flow

So standard sort of works with flow, but not really see: #599 #600 I wonder if it would make sense to support flow out of the box ? Or maybe there should be a sibling project like flowtype/standard preconfigured to be used with flow type projects ?

Can't you use https://github.com/feross/standard#can-i-use-a-custom-js-parser-for-bleeding-edge-es6-or-es7-support

@thejameskyle Please see mentioned issues #599 and #600 which should explain why just custom parser is not enough.

There is also https://github.com/babel/babel-eslint/issues/366

See https://github.com/feross/standard/issues/592#issuecomment-241137907

I have created https://github.com/Gozala/standard-flow and https://github.com/Gozala/eslint-config-standard-flow based off react standard-react and eslint-config-standard-react

@Gozala Thanks for the link and publishing that module.

Awesome @Gozala -  I LOVE standard, but I need static type checking to write even better code.  I'll be using your library.  Please let me know if there's any way I can help.


Fee market bug fix

Bug Analysis
if (_enough_balance(cur)) {
    array[index] = cur;
    index++;
} else {
    prune(prev, cur);
}
prev = cur;
cur = relayers[cur];
-------------------------------------
after prune(prev, cur)
cur = relayers[cur] is address(0)
so `!valid` error returned

Severity
High
Impact
If there are not_enough_balance relayers in first top location. Contract will return !valid error.
We could use prune func to delist the relayers temporarily.
Highly recommended to do an upgrade to fix the issue.

Fixed https://github.com/helix-bridge/helix-ui/issues/432

Upgraded on darwinia: https://darwinia.subscan.io/extrinsic/0xb21a787f1c4bd5ab2cf0ce5c25d9e6167c6796b99faeac24db4f2ee66cc43429

Upgraded on ethereum: https://etherscan.io/tx/0xf35c7a85aca434eb01284d3e1ddab5317a7b38f586192e0212dea616546e9d61#eventlog


Smart Screen

I'm furious,  I want to install Signal Now App, and Defender blocks it! I try the 'it's OK
--- option and it keeps blocking it
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 4edaae97-455b-d25a-9228-5309e24b4aa3
Version Independent ID: d38e56a7-d553-e519-95a9-dc93e2cdc771
Content: Microsoft Defender SmartScreen overview (Windows 10) - Windows security
Content Source: windows/security/threat-protection/microsoft-defender-smartscreen/microsoft-defender-smartscreen-overview.md
Product: m365-security
Technology: mde
GitHub Login: @mjcaparas
Microsoft Alias: macapara

It's an install program, why would I take a picture of it?

It's an install program, why would I take a picture of it?

Wish I could help, but this repository is not intended for regular support issues, support requests or support questions.
Please use a real support instance like Microsoft Support or Microsoft Forums. This repository is intended for documentation improvement only.
You may want to look elsewhere for answers, unless you have suggestions for improving one or more specific pages in the MS Docs repository.
Disclaimer: I am not affiliated with Microsoft or the Microsoft Docs teams here on GitHub.
The intention of this repository is to improve on the existing documentation by providing the users a way to report factual errors, improvement suggestions and request updates for new versions.
The MS Docs team members might not have time to answer your question, both due to the small size of the team and the big workload.
Try the following resources to get in touch with users who may be able to help you:

TechNet forums: https://social.technet.microsoft.com/Forums/en-US/home
MSDN: https://social.msdn.microsoft.com/Forums/en-US/home
Microsoft Community: https://answers.microsoft.com/

Wish I could help, but this repository is not intended for regular support issues, support requests or support questions.
Please use a real support instance like Microsoft Support or Microsoft Forums. This repository is intended for documentation improvement only.
You may want to look elsewhere for answers, unless you have suggestions for improving one or more specific pages in the MS Docs repository.
Disclaimer: I am not affiliated with Microsoft or the Microsoft Docs teams here on GitHub.
The intention of this repository is to improve on the existing documentation by providing the users a way to report factual errors, improvement suggestions and request updates for new versions.
The MS Docs team members might not have time to answer your question, both due to the small size of the team and the big workload.
Try the following resources to get in touch with users who may be able to help you:

TechNet forums: https://social.technet.microsoft.com/Forums/en-US/home
MSDN: https://social.msdn.microsoft.com/Forums/en-US/home
Microsoft Community: https://answers.microsoft.com/

I didn't choose to come to this no-help forum, this is where it sent me. I guess I shouldn't be surprised by the response.

Sorry that your software sent you here. The developers need to hear about this obvious inconvenience.
Could you post the problem via the built-in Windows Feedback App, to post it where the devs read the tickets?


Deletes entire contents of .scss files

I'm ditching this processor because it lost my trust and confidence, and it really isn't useful unless you get --fix to work. For those who see this in the future, this processor and the other stylelint-config-styled-components was developed so irresponsibly and narrow-mindedly that it will literally delete the contents your existing .scss files if you modify them. When used in combination with lint-staged, the entire contents of files you spent the last hour or so editing will be gone. All staged filed lost ... everything lost. Be better stylelint-processor-styled-components.  I feel trolled.

You know this is an open source project and people are contributing their spare time to improve it, right? Maybe you should've done the same instead of being so ungrateful. Also, read the documentation, we aren't hiding from the lack of --fix which is not supported by Stylelint (it's impossible for processors to support it)


Always inline IIFEs

This is a rollforward of 0660acdb. I fully expect this to be rolled back again, but we don't know what cases triggered the original rollback.
IIFEs blocking optimizations are frequently coming up - and they are generated by Typescript.

#2100
#2103
http://stackoverflow.com/a/41986846/1211524

If someone can get me test cases that break, I'll update this optimization to address them.

I tested this out a while ago. If a Googler wants to look at the test failures and try to boil them down to minimal test cases they can ping me.

I can't give this much of my time, but I'm willing to import it and see what breaks.

One thought would be to restrict the "always inline" directive to the global scope. I'm guessing that nested IIFEs are what are causing the problem.

I already imported this and saw what breaks. I just didn't have time to investigate why things broke.

Import done & standard compiler tests pass.
Next level of testing initiated...

First attempt at doing wide testing failed due to a testing system problem related to having too many tests to run.
Trying again with a bit smaller set of tests.

@ChadKillingsworth
There seem to be a lot of cosmetic changes in this PR.
Could you remove those? They make it hard to see the important functional changes.
Thanks.

@brad4d I'm guessing that's from rolling forward a commit from 8 months ago. I'll re-do the changes from scratch.

@brad4d Rebased and kept the test formatting changes to a minimum - which means I didn't run the Google formatting tool on this commit.

@ChadKillingsworth
Thanks for your updates.
My review comments are all cosmetic, so I'm going to try again to get some useful test results without waiting for another update from you.

FYI, I am actually making slow progress on this.
I'm being extra careful since this change could introduce runtime failures rather than just compilation errors.
Currently I have 33 test targets that failed or were broken on my last attempt.
Likely many of these are flaky cases. I'm re-trying them to weed those out.

Sent for internal review.
All failing or broken tests either succeeded on rerun or were found to be already broken/failing without this change.

Submitting this internally.
Fingers crossed...

The change submitted successfully internally, and no one has screamed yet, so this PR should be closed by Monday's push to github.

And now we wait ...

Had to roll this back temporarily. See #2408
I'll roll it forward after the fix for that lands.


Extract region error

Thanks for making this software available. I'm getting an error that might trace down to node-iiif, or perhaps something wrong in my url syntax. Basically, this url in a test iiif server we set setup (using serverless-iiif 4.0.2)
https://iiif.trustedkidney.com/iiif/3/test/test1.svs/full/512,/0/default.jpg
Leads to this error:
Error: extract_area: bad extract area
But iiif certainly can read this image. These link works just fine,
https://iiif.trustedkidney.com/iiif/3/test/test1.svs/full/1000,/0/default.jpg
https://iiif.trustedkidney.com/iiif/3/test/test1.svs/info.json

It isn't clear when a size specification will fail, and it seems that it is different for each image.
What is going on here, and is there a way to fix it?

This looks a lot like what happens when the image extract/size calculation results in a rounding error. I've patched two of these in the past and thought I had them all squashed.
Does it still error out at values below 512? Can you try a few values between 512 and 1000 to see what the upper bound of the error is? What are the dimensions of your source image?

These are the dimensions of the source image,
{"@context":"http://iiif.io/api/image/3/context.json","id":"https://iiif.trustedkidney.com/iiif/3/test/test1.svs","type":"ImageService3","protocol":"http://iiif.io/api/image","profile":"level2","width":12600,"height":21604,"sizes":[{"width":12600,"height":21604},{"width":6300,"height":10802},{"width":3150,"height":5401},{"width":1575,"height":2700},{"width":787,"height":1350},{"width":393,"height":675},{"width":196,"height":337},{"width":98,"height":168}],"tiles":[{"width":512,"height":512,"scaleFactors":[1,2,4,8,16,32,64,128]}],"extraFormats":["jpeg","tif","tiff","webp"],"extraQualities":["color","gray","bitonal"],"extraFeatures":["canonicalLinkHeader","mirroring","profileLinkHeader","rotationArbitrary","sizeByDistortedWh","sizeByForcedWh","sizeByWhListed","sizeUpscaling"]}

More information here too. Seems that regenerating the pyramid (not ideal) using vips resolves this problem, but creates another.
 vips tiffsave test1.svs test1.tiff --compression jpeg --Q 90 --pyramid --tile --tile-width 256 --tile-height 256

Now,  this url (to the new tiff, not the svs) works fine:
https://iiif.trustedkidney.com/iiif/3/test/test1.tiff/full/512,/0/default.jpg

HOWEVER, Openseadragon is not able to correctly view this image, when directed to:
https://iiif.trustedkidney.com/iiif/3/test/test1.tiff/info.json

Did openseadragon stop working with iiif? or is their something about this version of iiif that breaks it?

To your other question,  currently the links are live, so you can test it yourself if you want. If it is a rounding issue, it will probably require a more careful scan than I'll do by typing stuff into the search bar, so that's why I made it available (for now) at a public link.

And here is some more information, I verified that my OSD implementation works just fine on other people's IIIF servers (not sure their implementations). Seems  that the errors in OSC are tracing back to image requests it's making on serverless-iiif. For example,
https://iiif.trustedkidney.com/iiif/3/test/test1.tiff/24576,32768,-11976,-11164/39,512/0/default.jpg

returns "Not Found." These sorts of errors are not appearing when I point to example IIIF (e.g. https://iiif.princeton.edu/loris/iiif/2/pudl0001%2F4609321%2Fs42%2F00000001.jp2/info.json). So it is making me think the root cause is some thing specific with serverless-iiif.
What are your thoughts? Is there a way to resolve this?

https://iiif.trustedkidney.com/iiif/3/test/test1.tiff/24576,32768,-11976,-11164/39,512/0/default.jpg

I see a couple of issues here:

The width and height of the requested extract region are negative, which is not supported by the IIIF Image API
The x and y offsets of the requested extract region are larger than the dimensions of the image as reported by https://iiif.trustedkidney.com/iiif/3/test/test1.tiff/info.json.

When I adjust the extract region to be within the bounds of the image, I get a valid result.
After some experimentation with the first image, I've found that any request below 787 pixels wide triggers the error. I'll look at the calculator and see what I can find out.

Looking more closely at the pyramid page dimensions:
{
"width": 787,
"height": 1350
},

It can't be a coincidence that the issue crops up right at one of the page boundaries, especially if regenerating the pyramid seems to resolve that part of the issue (which would rule out the rounding error I speculated about previously). Any request larger than 787 is going to use one of the larger frames and scale down, so it seems reasonable to suggest that the problem is with the data in pages 4 and 5. Regenerating the pyramid re-creates all 5 pages from the largest frame.
Is it possible that the initial pyramid is corrupted or truncated, or maybe didn't convert correctly the first time? If there's a way you can share the misbehaving pyramid TIFF file (test1.svs) with me, I might be able to see what's going on.

I'm going to go ahead and close this since it's been a while. Feel free to reopen it or create a new issue if you still need assistance.

Sure. My github username is also my username for gmail as well as the IIIF slack team.


[manila-csi-plugin] Remove cloud-provider-openstack-acceptance-test-csi-manila job trigger

What this PR does / why we need it:
This PR removes cloud-provider-openstack-acceptance-test-csi-manila Zuul CI job trigger. We don't use OpenLab CI infra anymore.
Release note:

NONE

/lgtm

Is anything in .zuul.yaml relevant anymore?

Maybe it's ok to delete the whole file.

we might want to migrate those step by step, remove each of them when the migration is done..

/lgtm
/approve


Unable to find type [Markdown.MAML.Model.MAML.MamlCommand]

Steps to reproduce
# Run the container
docker run -it --name platyps debian:latest

# Install prereqs and PowerShell 6
apt-get update && apt-get install -y liblttng-ust0 libicu57 liburcu4 liblttng-ust-ctl2

wget https://github.com/PowerShell/PowerShell/releases/download/v6.2.1/powershell_6.2.1-1.debian.9_amd64.deb --no-check-certificate

# Copy over PlatyPS and any PS module
docker copy C:\path\to\platyps platyps:/root/
docker copy C:\path\to\your\module platyps:/root/

# Run powershell
pwsh

# Import your modules
Import-Module /root/platyps/platyps.psm1
Import-Module /root/YourModule

# Make your output director
mkdir func

# Run PlatyPS
$MDHelp = @{
	'Module'		= "YourModule"
	'OutputFolder'		= "/func"
	'AlphabeticParamsOrder'	= $True
	'Verbose'		= $True
}
New-MarkdownHelp @MDHelp

# Error occurs
Unable to find type [Markdown.MAML.Model.MAML.MamlCommand].
At /root/PlatyPS/0.9.0/platyPS.psm1:162 char:17

Expected behavior
Convert the help into markdown
Actual behavior
Errors out:
Unable to find type [Markdown.MAML.Model.MAML.MamlCommand].
Environment data

PowerShell 6.2.1 on Debian Stretch
v0.14.0

You need to build c-sharp part of the project if you want to run it from source. Or you can simply get it from psgallery with Import-Module -Scope CurrentUser platyPS.

Does that work for Linux running PowerShell Core?
I have PlatyPS v0.14.0. I see the Markdown.MAML.dll file in the root of the module, but maybe Linux cannot use those out of the box?

Yes, it works on linux. Here is CI builds https://travis-ci.org/PowerShell/platyPS/builds

# Copy over PlatyPS and any PS module
docker copy C:\path\to\platyps platyps:/root/
docker copy C:\path\to\your\module platyps:/root/

You repro doesn't specify where you got the C:\path\to\platyps from.
You can do one of 2 things:

Build it yourself from sources, see linked instruction
Get it from gallery

Thanks for your help.
I was able to get it to work by:

Copying the Markdown.MAML.dll and YamlDotNet.dll files into the platyps/src/platyps directory
Importing the platyps module
Running New-MarkdownHelp


action.time is always 0 despite using .play()

Is there something I'm overlooking? I tried a number of approaches but it seems like the actions never start.

Whoops my registration code was wrong.


Update configure-identity-source-vcenter.md

Corrected VMware product name.

@rvandenbedem : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@suzizuber, approved for merge? Thanks.

#sign-off


Expose error utils in exports

Minor change: the existing utilities are simply exported for others to use.

Added dist files.


Implement mechanism to detect heap usage mismatches

We would need some kind of mode that would allow to detect and diagnose heap usage mismatches, typically allocating in one heap and deallocating in another.

Duplicate of issue #2.


management: Fix send_password_reset_email command

Fixes #10379

Merged, thanks @hackerkid!  I also added 69b2315a6eca124544c71333858362aa4686f44f on top, which makes the code for this a lot more robust to future similar issues.


Update fail messages for MaaS entity discovery

Entities should alway exist for the customers hardware and are created
when it is assigned to the account. This commit updates the error
messages generated to be clearer about the action support should take.
The use of entites is not RPC specific and so no additional
documentation should be required.
Closes-issue: https://github.com/rcbops/rpc-openstack/issues/155

:+1:

Minor maybe not worth changing. Otherwise happy to merge.


[OSPO Book]: broken "Edit this page" link.

Hi,
When visiting the OSPO Book Website, there is an "Edit this page" link in the right sidebar.  This link leads to a non-existing page.
As an example, on the home page of the OSPO Book, the link points to {1a} while I think it should point to {1b} (missing ospo-book between main and content).
{1a}: https://github.com/todogroup/ospology/edit/main/content/en/_index.md
{1b}:  https://github.com/todogroup/ospology/edit/main/ospo-book/content/en/_index.md
Same problem on the TOC page: {2a} while should be {2b}.
{2a}: https://github.com/todogroup/ospology/edit/main/content/en/toc.md
{2b}: https://github.com/todogroup/ospology/edit/main/ospo-book/content/en/toc.md
Thanks for looking into this,
Jean-François Gagné

Hi @jfg956  thanks for your feedback.
I found the key point of this issue:
We need to set this param in config.toml  at line  115
# Specify a value here if your content directory is not in your repo's root directory
# github_subdir = "ospo-book"

It works now.

The fix is deployed.

Thanks Chris Yang for fixing this, and Chris Abraham for deploying the fix.


there was an error running option A4 Audio

there was an error running option A4 Audio

any updates on this ?

Same error here

Same error. Can't find solution.


[Question] how to check scopes and roles for the same route

Describe the bug
I have a route that may be called by user (by the Authorize button from openapi) or by SPN (who generates access token in advance before calling fastapi).
From the examples given in the doc, I can whether check the scopes in case of users (auth code flow), whether check the roles in case of SPN (client crendentials flow). But I cannot figure out how to get them together, as my route shoud accept both cases. I could write some control inside of route, but I would like to get it done at Depends level.

@JonasKs
I want to use scopes to control permissions for users:

and use roles to control permissions to SPN:

From the fastapi-azure-auth doc, I can control one of them, I would like to how to control both of them in fastapi, as my route will accept both users and SPNs as client.

to control both scopes and roles inside the route is simply manually decode the access token , and checks the scopes or roles based the token is for user or spn, but I don't think this an elegant way to handle the permission, it would nice if we can do it at Depends or decorator level.

My strategy was to write a function that takes a scope or role name as a parameter. That function returns a callable that takes the user object as a parameter and checks if scopes or roles match the initial args. Then you can call that in the dependency part of the route.

If I weren't travelling I could send you a concrete example.

I believe this could solve your use case?

@bmoore , works like a charm, thanks a lot

Sorry, I cannot figure out the solution with your link, I expected to have something like:

dependencies=[Security(azure_scheme, scopes=[scope1, scope2], roles=[role1, role2])]

I'll have to investigate this, but I like the idea.
I've asked our identity department on how the combination of roles and scopes really are intended to be used together, since personally I only use roles with a default scope.
I'll update here when I hear back.
Glad you solved it in the mean time 😊 Thanks @bmoore !


Bug: Kafka consumes the same message twice

For some reasons, when you producing a message while consumer is down, and then consumes those messages, consumer consumes the same message twice. Here's an example:
Let's say you have 2 consumers
@broker.subscriber("one_topic", group_id='group', auto_commit=False)
async def base_handler(body: str, msg: KafkaMessage):
    print(body)
    await asyncio.sleep(10)
    print('after one')

@broker.subscriber("other_topic", group_id='group', auto_commit=False)
async def error_handler(body):
    print(body)
    print('after other')

And while application is down, you will produce 2 messages
await broker.publish("First", topic="one_topic", key=b'1')
await broker.publish("Second", topic="one_topic", key=b'1')

After you run your application you will get following logs

As you may see, the first message with the same id is repeated twice
If I produce those 2 messages after application is fully started, everything works fine
UPD: The problem is because of the same group id for 2 consumers

Seems like the problem is on Kafka settings side, not the framework. I close it for now, but we can reopen, if the problem is in FastStream


dag: add exporter_jmx for zookeeper

fix #153
follow https://github.com/TOSIT-IO/tdp-collection/pull/248

@nolimitkun to fix #149, i'm gonna need to merge this PR, are you ok with this ?


Some improvement in efficiency of JSON parsing

Thanks for the PR.
I'm not sure how useful this is however: the "train" scripts are just one-off scripts, normally not used by the end user. So performance problems are a non-issue as far as I know.
Do you have a use case where performance of that script is a problem?

I'm not sure how useful this is however: the "train" scripts are just one-off scripts, normally not used by the end user. So performance problems are a non-issue as far as I know.

I just read them and saw that it is done suboptimally. So I replaced with the solution I usually use in my software (untill recently I used ujson instead of mujson bcs was not aware of the latter).
Feel free to close if you don't like it.

ok thanks for the info,
I will keep it in mind if the package itself starts using json in some way (e.g. for #2)


Update index.html : certifications

Most certifications come with a badge, so I added that option. In the certification details simply add 'badge: https://link.to.badge'

Thank you!
Could you please also update the example site config.yaml file to contain this new option? the exampleSite/config.yaml is a big part of the theme documentation containing all the available options even if they are just commented.

I'll do that later this evening ;)

config file now includes badge line ;)

Merged. Thank you :D