Allow user to replace ingress network

Vendoring of swarmkit carries a change to support ingress network replacement and two important scheduler fixes:

Allow replacing ingress network docker/swarmkit#2028
scheduler: Fix accounting when task ends up in multiple groups docker/swarmkit#2031
scheduler: Correctly count tasks at bottom level of decision tree docker/swarmkit#2032

Vendoring of libnetwork carries:

change related to ingress network programmability docker/libnetwork/pull/1678
change to allow user to control container's interfaces prefix on bridge networks docker/libnetwork/pull/1667

This PR allows user to remove and (re)create the ingress network:

A fresh new cluster will come up with the default ingress network as today.
The ingress network can be removed and never be recreated.

$ docker network rm ingress
ingress

On creation, user can specify any parameter as for any other swarm network. Name can be anything.

$ docker network create -d overlay --opt com.docker.network.mtu=1200 --ingress my-ingress
syws4fv0sqrwkhblly297z569

The ingress network removal requires that no services depending on the network exist.

$ docker network rm my-ingress
Error response from daemon: rpc error: code = 7 desc = ingress network cannot be removed because service lbxksk0633cqzbqrlnwx9v4kp depends on it

Swarm services creation/update will make sure the ingress network is present before succeeding, if the service requires the routing mesh.

$ docker service create --name srv-on-rmesh -p 9000:8000 busybox top
Error response from daemon: rpc error: code = 7 desc = service needs ingress network, but ingress network is not present
$
$ docker service update --publish-add 7000:80 s0
Error response from daemon: rpc error: code = 7 desc = service needs ingress network, but ingress network is not present

Fixes #24220
Depends on docker/swarmkit/pull/2028 and docker/libnetwork/pull/1678

- A picture of a cute animal (not mandatory but encouraged)

/cc @thaJeztah @cpuguy83 @aaronlehmann @mavenugo

Is the custom ingress network still treated "special", i.e. is "icc" communication disabled by default?

@thaJeztah

is "icc" communication disabled by default

That has not changed, even now icc is not disabled on the ingress network.
What container cannot do today (and this PR does not change that) is to reach services via the ingress network on L4 ports other than the ones the services exposes. That is achieved internally, without user configurations needed on the ingress network creation.

@aboch but Service Discovery, VIP and LB are disabled on this Ingress network correct ?

but Service Discovery, VIP and LB are disabled on this Ingress network correct ?

Yes, forgot that is all disabled. It's all done internally and user does not and will not need to control it via network creation options.

hmm some mess happening with vendoring. let me look into that.

hmm, a docker-py integration test time out failed janky.

All green.
ping @aaronlehmann @mavenugo @cpuguy83 @thaJeztah @vdemeester

@aaronlehmann Addressed your comments. PTAL.

Updated.

LGTM

I see that this got moved to 17.05.0. Are there plans to backport it? The swarmkit vendoring has some important fixes that are already merged in the 17.03.x branch. For master, the vendoring had to happen in this PR, because the ingress network PR had already been merged in swarmkit, and required these corresponding engine changes.
I think including a fix in 17.03.1 but leaving it out of 17.04.0 would be bad. I suspect this issue will come up a lot now that we have a very fast release cycle.

@aaronlehmann is there a 17.04 swarmkit branch that those fixes can be cherry-picked into?

No. I had not been planning to create swarmkit branches for the monthly releases, as that would be difficult to manage. However, I can do it in this case if necessary.

Opened #31870 based on a swarmkit branch

This PR is required for other changes that follow...
am rebuilding the failing z. once it turns green, we can get this merged.

Just some quick testing with this feature (feature itself :+1:)
$ docker network rm ingress
$ docker service create --name web -p 8080:80 nginx:alpine
Error response from daemon: rpc error: code = 9 desc = service needs ingress network, but no ingress network is present

$ docker service create --name bla nginx:alpine
$ docker service update --publish-add 8080:80 bla
Error response from daemon: rpc error: code = 9 desc = service needs ingress network, but no ingress network is present

Perhaps we should add a more friendly error message, without the rpc error part, and with instructions to use the --ingress option (fine for a follow-up). Alternatively, should we automaticaly re-create the ingress network if it's not there?
$ docker network create foobar --ingress
Error response from daemon: Ingress network can only be global scope network

Looking good :smile:
$ docker network create --ingress -d overlay --attachable foobar
Error response from daemon: rpc error: code = 3 desc = ingress network cannot be attachable

$ docker network create foobar2 --ingress -d overlay
Error response from daemon: rpc error: code = 6 desc = ingress network (ryxyit48gbhwwq7xz3oepohbe) is already present

Also "nit" on the rpc error, perhaps we should make it more "friendly" (not a blocker).
$ docker network create foobar --ingress -d overlay
ryxyit48gbhwwq7xz3oepohbe

Not sure; is this suposed to be allowed?

```bash
$ docker service create --name bla --network foobar -p 8000:80 nginx:alpine

This leads to both the tasks and the service to be connected to the ingress network, but no service-discovery because that's disabled on the ingress network;
$ docker inspect --format '{{ json .NetworkSettings.Networks }}' bla.1.lajdemjbffqnc8ioqwjkhica6 | jq .
{
  "foobar": {
    "IPAMConfig": {
      "IPv4Address": "<IP_ADDRESS>"
    },
    "Links": null,
    "Aliases": [
      "de35da431f8d"
    ],
    "NetworkID": "ryxyit48gbhwwq7xz3oepohbe",
    "EndpointID": "8baad501c5a580a9de5d600fc082ff3fd4c899b6a28a948ae42b69ff05c57952",
    "Gateway": "",
    "IPAddress": "<IP_ADDRESS>",
    "IPPrefixLen": 24,
    "IPv6Gateway": "",
    "GlobalIPv6Address": "",
    "GlobalIPv6PrefixLen": 0,
    "MacAddress": "02:42:0a:00:00:07"
  }
}

@thaJeztah
Re:

$ docker service create --name bla --network foobar -p 8000:80 nginx:alpine
This leads to both the tasks and the service to be connected to the ingress network, but no service-discovery because that's disabled on the ingress network;

This behaves the same way for --network ingress. So I guess this is okay.

Oh, you're right, it's only docker_gwbridge we're blocking, not ingress, sorry, I was confused :smile:

Also "nit" on the rpc error, perhaps we should make it more "friendly" (not a blocker).

I strongly dislike this error message formatting. The user doesn't need to see the RPC error code, or the fact that the error is an RPC error.
Would there be any objections to opening a PR that changes the error returned by the daemon to just the desc portion for all gRPC errors... such as:
Error response from daemon: ingress network (ryxyit48gbhwwq7xz3oepohbe) is already present

@aaronlehmann
Agree. But TBH the grpc... portion of the error helps me a lot to realize whether the error comes from the swarm leader instead of from the local engine.
Would it make sense to prepend a string which says the error is reported by the swarm leader ?
Something like Error response from swarm leader: ...

Agree. But TBH the grpc... portion of the error helps me a lot to realize whether the error comes from the swarm leader instead of from the local engine.

I'd think we'd be able to figure that out with a few seconds of grepping.

I'd think we'd be able to figure that out with a few seconds of grepping.

The reason for the request is some code is run on both swarm mgr and libnetwork.

Ah. That seems like a relatively narrow case. Are there few enough call sites that we could just prefix libnetwork errors with something like that when swarmkit is propagating a libnetwork error? I think showing the source of the error for every swarmkit-related message would keep the messages quite versbose.

Thanks @thaJeztah .Updated.

wait with merging this
I was chatting with @mavenugo on Slack, and he just thought of situations where some nodes are still on Docker 17.04 or 17.03. We need to test what happens in those situations, and make sure nothing breaks, or prevent the network from being removed in those cases.

@aboch @thaJeztah I tried these changes in a manager node along side another worker node with older version. It seems, the ingress network assumption is deeply rooted in the older version and it isnt going to be easy or even possible to support this scenario cleanly.
My observation :

On swarm init and swarm join, the ingress network is automatically created on the nodes
On docker network rm ingress in the manager, the ingress network is removed only on the manager. The worker that is in the older version doesnt remove the ingress network. Infact we can never remove this network either via the UX/API/grpc calls. Hence the ingress network is stuck in the older version for good.
This can cause more confusion if there are multiple managers with some of them in older versions
The user can now create a new ingress network, which is seen by all the nodes. But the older versions will treat this as a regular overlay network and not as ingress network.
Now one can create services with -p and the routing-mesh works only on the tasks on the nodes with newer version.

In order to avoid this confusion, is it possible to not allow removing the ingress network if any of the nodes is not capable of this feature ? Do we have swarm-node capabilities ?
Also prevent new nodes from joining the swarm if ingress network has been removed/modified ?

Well yes.
But in order to get into that state, you need to upgrade all your managers, or upgrade one and force it as leader, and leave some worker with the old image.
I do not even know how long such a cluster cluster can properly work.
I think we need to document that the ingress network removal should be attempted only after all nodes in the cluster have been updated to the new image.

Thinking further; do we also need to keep downgrade scenarios in mind, although I don't think we officially support that, I know it's done.

Also prevent new nodes from joining the swarm if ingress network has been removed/modified ?

I opened a ticket for that, because this may need wider / general discussion https://github.com/docker/docker/issues/31998

@thaJeztah @aaronlehmann @aboch @aluzzardi it seems we have a precedence to the above issue with the recently introduced secrets functionality as mentioned in https://github.com/docker/docker/issues/31998#issuecomment-288466276.
Going with this approach, I guess its okay if the older versions doesn't participate in the routing-mesh if the user deletes the ingress network and recreates another one.
But, I think we have to document the incompatibility issues and see if they are acceptable and inline with the discussion in https://github.com/docker/docker/issues/31998. WDYT ?

Agreed

Agree that we should take the same approach here as we did with secrets.
Long term we need a capability exchange mechanism in swarm mode so that the manager can intelligently block features that are not available on all the nodes. This has lot of details to be worked out.

This needs a rebase.
Let's try to get this merged. It's blocking a few PRs that need swarmkit vendoring. Or if we aren't ready to merge it, we need to revert the change in swarmkit for now so we can move forward.

@aaronlehmann I understand that this PR is blocking other Swarmkit vendoring PRs. I am waiting for @aboch to be back so that he can respond to the compatibility question.

@mavenugo
I think proper documentation in the update section will need to be added.
So that user will not attempt the ingress nw rm on a mixed version cluster.
Although I think it is very unlikely admin would remove the routing-mesh on a half upgraded prod environment, it is true casual user may hit the problem, so I am proposing we can follow the same approach used in docker network prune, where the cli client prints a clear warning and asks for user confirmation.
Something like
$ docker network remove ingress
WARNING! You are removing the routing-mesh network. Proceed only if all nodes in the cluster are at version 17.05.
Are you sure you want to continue? [y/N]

Higher level mgmt tools can already reject the request given they likely have notion of the engine version running on each node.

@aboch I agree. if we can do this change, I think we will have the necessary UX covered and also when the proper capability exchange mechanism arrives, it can be automated as well.
Can you pls take care of this change and we can get this merged.

@mavenugo Updated.

@aboch build failure that seems legit
15:08:31 ----------------------------------------------------------------------
15:08:31 FAIL: docker_cli_swarm_test.go:416: DockerSwarmSuite.TestSwarmIngressNetwork
15:08:31
15:08:31 [df0c8073844d8] waiting for daemon to start
15:08:31 [df0c8073844d8] daemon started
15:08:31
15:08:31 docker_cli_swarm_test.go:425:
15:08:31     c.Assert(err, checker.IsNil, check.Commentf(out))
15:08:31 ... value *exec.ExitError = &exec.ExitError{ProcessState:(*os.ProcessState)(0xc42020fb40), Stderr:[]uint8(nil)} ("exit status 1")
15:08:31 ... Error response from daemon: rpc error: code = 6 desc = ingress network (pmoutasdajym5jdq9jxs1zlx7) is already present
15:08:31
15:08:31
15:08:31 [df0c8073844d8] exiting daemon
15:08:34
15:08:34 ----------------------------------------------------------------------

Thanks @vdemeester
Now that I changed the cli to ask for confirmation, and not having a force option for docker network remove, I'd better change the respective integ test to use the API calls directly.

@aboch I think it is better to introduce the -f for docker network rm and handle it for all other regular remove case as well. This will also force the user to use this flag when removing the ingress network. But that is beyond the scope of this PR and hence am good with the current PR.

@mavenugo we can add the -f/--force flag in another PR (follow-up). I can take care of that 😉

Thanks @aboch @vdemeester . LGTM.

I am using 17.05 for my manager and worker nodes and am trying to create a new ingress network with custom subnet and then creating swarm service. But service doesn't seem to spawn any containers. I see some errors from docker logs. Seems like it keeps "looping over" Requesting Address from the new subnet. Can someone help out here?

My steps of reproducing are:

docker network rm ingress

docker network create --driver overlay --ingress --subnet <IP_ADDRESS>/16 --gateway <IP_ADDRESS> my-ingress
ikhelr9jnjllg8fr5xfk9p8bg

docker service create --network my-ingress ct:0.1
xa3gd5xvpgatbwwhis1of9lp2
Since --detach=false was not specified, tasks will be created in the background.
In a future release, --detach=false will become the default.

Observations:
docker service ls
ID                  NAME                   MODE                REPLICAS            IMAGE                           PORTS
xa3gd5xvpgat        condescending_spence   replicated          0/1                 172.28.x.x:5000/ct:0.1
[root@edesai-redhat-7-3-dcnm ~]# docker service ls
ID                  NAME                   MODE                REPLICAS            IMAGE                           PORTS
xa3gd5xvpgat        condescending_spence   replicated          0/1                 172.28.x.x:5000/ct:0.1
docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
e88846664160        bridge              bridge              local
fde9fb9ec622        docker_gwbridge     bridge              local
b3efd1b6e7f4        host                host                local
ikhelr9jnjll        my-ingress          overlay             swarm
5e8e58b59631        none                null                local
docker network inspect ikhelr9jnjll
[
{
"Name": "my-ingress",
"Id": "ikhelr9jnjllg8fr5xfk9p8bg",
"Created": "2017-06-28T10:57:37.24037921-07:00",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "<IP_ADDRESS>/16",
"Gateway": "<IP_ADDRESS>"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": true,
"Containers": {
"ingress-sbox": {
"Name": "ingress-endpoint",
"EndpointID": "940a99930934e923499d9ba59e87e166f5c1333a7010411f0968a1335d43bb59",
"MacAddress": "02:42:0b:0b:00:02",
"IPv4Address": "<IP_ADDRESS>/16",
"IPv6Address": ""
}
},

@edesai please open an issue instead of commenting on a closed pull request
Also keep in mind that the GitHub issue tracker is not intended as a general support forum,
but for reporting bugs and feature requests. For other type of questions, consider using one of;

the Docker Support Forums - https://forums.docker.com
the Docker community Slack channel (register here: http://dockr.ly/community)
StackOverflow

@thaJeztah Can driver of ingress network be customized, or can port 4789 UDP of overlay driver be changed?  In my scenario, 4789 UDP is already used by the underlying network of VMs which cannot be modified.
When I use weave network plugin v2 for swarm, communication between containers on different hosts works well, but it seems that the network is still blocked when routing mesh(LB) happens.


[kafka_consumer] Cleanup group coordinator lookup

You must have a known group coordinator to lookup the offsets for a
consumer group that stores its offsets in Kafka. I do not understand
why this code tries to handle unknown group coordinators by
firing requests to all the brokers as that seems like a waste of network
calls.
This only refactors the existing code to be cleaner. There is room for
additional error handling and logging. Plus potentially caching the
group coordinator value on the client's cluster metadata rather than
re-fetching it every time... instead just assume it's still the old one,
and if not catch the error and trigger a group coordinator lookup.
But that is left for a later PR, this one merely cleans up the existing
logic to make it easier to refactor later.

Note that it is late at night and I have not actually tested this code yet, so I may have fat-fingered something (which I'm sure I'll find tomorrow).
But wanted to get the PR up so that the logic refactoring can be reviewed, as I'm planning to do additional cleanup tomorrow.

Hello again @jeffwidman! Could you please rebase to get our new CI config? All new-style tests run on Travis now so forks will trigger builds.

@ofek that's great news. I love gitlab, but the inability to run on forks is a killer.
rebased.

tests are failing, and a quick look through travis reveals somewhat inscrutable logs so not an obvious fix, maybe later tonight I can dig into it further

@ofek my apologies, I am still interested in this, but am out on paternity leave / vacation / moving much of July / August, so won't be able to get to this until Sept/Oct time frame. For now it can sit, or someone else is welcome to pick it up.

@jeffwidman No worries, congratulations! See you in September 😄

Closing in favor of https://github.com/DataDog/integrations-core/pull/2730 as that takes care of cleaning up the group coordinator lookup by relying on some other code from https://github.com/dpkp/kafka-python/pull/1641


DS1307 - Unable to read more than 32 bytes at a time from RAM (remaining bytes are incorrectly returned as 0xFF)

There seems to be some limitation when reading more than 32 bytes at a time from the DS1307 RAM
Bytes 33-56 (1 index) will be returned as 0xFF no matter what
However if reading the first 32, then the last 24, it returns the correct bytes.
This is using Arduino Pro Mini
Is this a known issue / limitation?
I reviewed the code of the library and don't see anything that immediately stands out
Here is the first INO I was using, before I did a second test reading 32, then the remaining 24 separately
ds1307 Reader.zip

Could this be a limitation of the Adafruit_BusIO library? Adafruit_I2CDevice.cpp has this code:
#ifdef ARDUINO_ARCH_SAMD
  _maxBufferSize = 250; // as defined in Wire.h's RingBuffer
#elif defined(ESP32)
  _maxBufferSize = I2C_BUFFER_LENGTH;
#else
  _maxBufferSize = 32;
#endif

I do not quite understand what is going on though. The method Adafruit_I2CDevice::read() carries a comment stating that it cannot read more than maxBufferSize() bytes, yet it implements a loop that reads as many bytes as requested in maxBufferSize()-sized chunks. It may be worth recompiling the library with DEBUG_SERIAL defined.

Could this be a limitation of the Adafruit_BusIO library? Adafruit_I2CDevice.cpp has this code:
#ifdef ARDUINO_ARCH_SAMD
  _maxBufferSize = 250; // as defined in Wire.h's RingBuffer
#elif defined(ESP32)
  _maxBufferSize = I2C_BUFFER_LENGTH;
#else
  _maxBufferSize = 32;
#endif

I do not quite understand what is going on though. The method Adafruit_I2CDevice::read() carries a comment stating that it cannot read more than maxBufferSize() bytes, yet it implements a loop that reads as many bytes as requested in maxBufferSize()-sized chunks. It may be worth recompiling the library with DEBUG_SERIAL defined.

I think this must be it!  I'll play with these libraries (twi.h, wire.h, and the CPP you mentioned above) and see if the 328P can handle a 56 or 64 byte buffer.  If not, I guess a DUE or something would
Thanks!


Wiki / readme

Is there any readme available how to use this gem?
I tried to replace with jquery-ujs with vanilla-ujs, but it's not working just by changing gems.
For example, in jquery-ujs there is "ajax:beforeSend" but in vanilla-ujs there is no such event.

It's not a perfect drop-in replacement at the moment, more of an 80% solution (will work perfectly with a scaffolded Rails app, for example). How about adding this listener, and submitting a PR?

Is there any objective for this gem to be drop-in replacement? If yes, I can make PR for "ajax:beforeSend".

And what about documentation? Is it better to add some description in readme or put all information in github wiki?

DHH mentioned it recently, and wondered aloud if it would be a good fit for Rails 5.x. So yes, there is such an objective.
Walter

On Jul 16, 2016, at 8:44 AM, Miks Miķelsons<EMAIL_ADDRESS>wrote:
Is there any objective for this gem to be drop-in replacement? If yes, I can make PR for "ajax:beforeSend".
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@miks yes, of course it is thought as "almost" drop in replacement. Not everything is possible only via vanilla JS, but as much as is possible we should provide.


How many requests per second?

In response to my request, Egnyte has granted this to my Egnyte Connect API:
User (Access Token) Rate Limits
6	Calls per second
518,400	Calls per day
When doing a scan, I'm still getting
ResultCode | TopFailureReason
MBACKOFF | Could not get ACLs: ERR_403_DEVELOPER_OVER_QPS. See Mashery docs for   Egnyte for more info
I interpret this to mean SP Migration Manager is sometimes making more than six calls per second, but frankly, this seems like a reasonable limit which the Microsoft SharePoint Migration Manager should be able to work with.
How do I resolve this?

Should I ask for a higher limit than six calls per second?   If so, how much?
Is there a way to get the SP migration manager to handle such issues automatically?  E.g., catch the error, wait, retry.
Is there a way to throttle the number of calls per second that SP migration manager makes?

I realize questions 2 and 3 may be beyond the scope of this page, but really, for question 1, the documentation should show actual numbers in the text of the "Rate limit increase" email, "x calls per second" and "y calls per day".  Give practical values for x and y that will work with Migration Manager please.

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

ID: 89dafe22-954c-8eaf-6b93-9d33eb8a9f65
Version Independent ID: 89dafe22-954c-8eaf-6b93-9d33eb8a9f65
Content: Step 1: Connect to Egnyte - Migrate to Microsoft 365
Content Source: migration/mm-egnyte-step1-connect.md
Service: sharepoint-online
Sub-service: sharepoint-migration
GitHub Login: @JoanneHendrickson
Microsoft Alias: jhendr

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Hex colors in gradients may not be shrinked properly (regressed since 4.1.5)

Not a serious bug, but more of a degradation

clean-css version - npm ls clean-css: 4.1.7, but regressed since 4.1.5, most likely https://github.com/jakubpawlowicz/clean-css/issues/945
node.js version - node -v: v8.1.4
operating system: macOS 10.12.5

Configuration options
const CleanCSS = require('clean-css');
const fs = require('fs');

const input = fs.readFileSync('test.css', 'utf-8');
console.log(new CleanCSS().minify(input).styles);

Input CSS
.a {background-image:linear-gradient(to top, #AABBCC, #ffffff);}
.b {background-image:linear-gradient(to top, #AABBCC, #FFFFFF);}

Actual output CSS
.a{background-image:linear-gradient(to top,#abc,#ffffff)}
.b{background-image:linear-gradient(to top,#abc,#fffFFF)}

Expected output CSS
.a,.b{background-image:linear-gradient(to top,#abc,#fff)}

Hex colors in gradients are failing to shrink and some weird capitalisation if they are uppercase.

This is weird indeed. Thanks for catching it!

Thanks @ngyikp, it's fixed in 4.1.8.


Class lists: Update spreadsheet row order so student names are first

Who is this PR for?
secretaries, follow-on to https://github.com/studentinsights/studentinsights/pull/1746 and part of https://github.com/studentinsights/studentinsights/issues/1695.
What problem does this PR fix?
The row order for spreadsheets was wrong; secretaries want this to be alphabetical by student name since that's how they have to enter it in Aspen.

selfie


Allow Version Listing through 'Winget Search'

[x] Have you signed the Contributor License Agreement?
[x] Are you working against an Issue?

#520

This PR moves the workflow for ShowAppVersions into the workflow base and makes it available to the search command.
Intentionally left the search command as SearchSourceForMany to retain the same searching behavior.
PS C:\WINDOWS\system32> wingetdev search 7zip.7zip --versions
Multiple packages found matching input criteria. Please refine the input.
Name              Id                  Source
--------------------------------------------
7-Zip             7zip.7zip           winget
7-Zip Alpha (msi) 7zip.7zip.Alpha.msi winget
7-Zip Alpha (exe) 7zip.7zip.Alpha.exe winget
PS C:\WINDOWS\system32> wingetdev search -e 7zip.7zip --versions
Found 7-Zip [7zip.7zip]
Version
----------
22.01
22.00
21.07
21.06
<IP_ADDRESS>
16.04

Microsoft Reviewers: Open in CodeFlow

/azp run

We could add the optional argument as a hint to the output when we get ambiguous results.

What if we do the same thing we're doing for winget install with the "interactive / prompt" mode?
I've been looking at several issues this morning and thinking more about the other "mode" of behavior for WinGet.

UX is certainly the hard part here. I think that the interactivity / other "mode" is a bit of a tangent that's getting intermixed. At the root of the question in this PR is really more "how important is it to keep search behavior the same within a command"
I see it as this -

Do we truly want users to be able to list versions of a package through winget search?

If yes:

Do we want the search results when using the --versions argument to be consistent with winget show <query>  (search source for multiple) or  with winget search <query>  (search source for single) or, does this feature need to wait for the alternate "mode" of UX?

If  consistent with winget search -

Pro: Search results will be the same when using --versions
Pro: Partial package names / ids can be used
Pro: Packages can be matched by tag or command

Con: There is a higher likelihood that users will see Please refine your input message
Con: It may be hard to get to the single package a user wants a version for

If consistent with winget show -

Pro: It will be easier to get to a single package

Con: Full ID's, monikers, or names must be used
Con: Could lead to confusion as to why the same base command produces different search results

Pro: It will help the user refine their input before they go to use winget install

Let's get some user feedback: https://twitter.com/DenelonMs/status/1613963532873388032

So when search returns multiple results, do we want to do:
Option 1: "Multiple matches found, please refine input"
Or
Option 2: "List all versions as a new column for all matched ones" like
Id        Name       Versions
---------------------------------------
Foo1   Bar1         1.0, 2.0, 3.0
Foo2   Bar2         1.0, 2.0, 3.0

I guess 2 if user is expecting "consistency with search behavior"?

I think it's pretty much what was put in the original description. The user will need to refine the input to get versions with "search".

I think it's pretty much what was put in the original description. The user will need to refine the input to get versions with "search".

Ok, then this change is good at current state.

/azp run

/azp run

Somehow the license/cla task is stuck. And I cannot override it without changing project settings. Try close and reopen.


fix pouch github address url

Ⅰ. Describe what this PR did
fix wrong repo link in ctrd/README.md
Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how you did it
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

@u2takey  thanks a lot for your work! wish your enjoy hacking !!!

LGTM


Fix monitor smart pointers

Hi,
I just noticed a reference was missing in the header of utils.hpp
Somehow it worked on my debug build on my desktop but now when I install the plugin on my laptop it causes Hyprland to crash with a missing symbol error.

ty, merged!


Mutlitenant usage

Issue Description
In the documentation, the property contextBasedIsolation is explained as we have to add /tenant-### in front of our URL, but how to acheive this?
I have managed to exploit this by changing the URL in the manifest.json file, but in the OPA context, it is not wise to modify this file. So I suppose there's another option, but I don't know? Can you emphasize that point?
Issue Type

[X] Documentation is unclear
[ ] Documentation is incorrect
[ ] Documentation is missing
[ ] Other

Modiying the url in the manifest is more or less the way to go.
It kind of depend on your intended use case, if it's for specific tenant testing you could have in your url an additional parameter that then has an impact on the Component.js at runtime (loading the manifest and modiying it).
If you just wish tenant isolation for parallel processing this also require some changes / setup on the karma side.
Regardless of the situation modiying your manifest is more or less needed.
Another option would be if we started to also consider the sap-client as tenant indicator (which it is in any case and which is passed automatically to the odata calls)

Thank you for your answer, however, I don't think we are talking about the same thing.
My idea is to test an application in different scenario.
Let's take an example, I want to run OPA5 to test the application with zero data. I need to test the behavior of the application when the data is missing.
A second test would be to run the same application (still via OPA5) with relevant data. There I can validate that the application works correctly in both cases.
When testing an application, I don't think we should modify the manifest or the component.js, this would be nonsense. The application should be tested in isolation.
The concept of "tenant" seemed to me a good system to achieve these two data scenario, but according to your previous answer, it does not seem to be the right tool.
In your opinion, how can the mock server answer my problem?

On the contrary we agree as to what this is meant for :)
I'm sorry if i'm not clear enough, in the current setup where this was used the manifest was changed dynamically to refer to a specific tenant for a specific test (based on url parameter and the like).
Now you raise an interesting point about not changing the manifest or component that i can understand. The easiest way out would be to use the sap-client magic property (for ui5), that then loads the odata service with a specific additional parameter.
If i then map this parameter in the mockserver with the tenant concept we're done and you have what you want.
I'll try to squeeze this in this week.

Ok with version 2.1.37 you should be able to use the sap-client as a way to specify which tenant you want to reach.
This should then allow you to define your own set of data per tenant for your tests


UI Background Thread Error

Hello!
Thanks for a great library, it's worked wonderfully for me!
I just updated my project to Swift 4 (+ XCode 9) and I'm getting an "UI API called from background thread Group" error.
Specifically:
Pods/SwiftChart/Source/Chart.swift: runtime: UI API called from background thread: UIView.setNeedsDisplay() must be used from main thread only

I was able to silence it by unlocking the pod and adding self.setNeedsDisplay() to the 'main' thread.
open var series: [ChartSeries] = [] {
        didSet {
            DispatchQueue.main.async {
                self.setNeedsDisplay()
            }
        }
    }

Thanks for the report. I haven't tested the library with Xcode 9 yet. Does this error prevent the app to compile or crash something?

It makes it so the graph doesn’t load for ~20 seconds, i had a timer refreshing the data every 2 sec and it sometimes took 5-10 refreshes before it worked.
I read the new error message is to prevent putting ui on background threads because it can cause crashes, though in this instance, i didn’t experience any.

On Mar 28, 2018, at 11:10 PM, Giampaolo Bellavite<EMAIL_ADDRESS>wrote:
Thanks for the report. I haven't tested the library with Xcode 9 yet. Does this error prevent the app to compile or crash something?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Styling inside components

I have used the background image like this:
---
<Image src='https://farm5.staticflickr.com/4810/31993107578_77df74653c_k_d.jpg' alt='comenzando' />

# That's me!

After importing the component. The image is OK, but I can't seem to get the text right on the page, either it's on top or on the bottom. Can it be shown centered?

Sorry, not sure I understand the question. You mention a background image, but the code shows the img tag...

Ah, it was Image.

I've updated it (and reopen, if you don't mind)

For the Image component, you’ll need to pass the content as children iirc

Thanks. It is now in the image, but the style is not the same as the rest
of the deck. I'm using h1, it gets the font right, but not the size; it's
also on the top of the page. Does it have different styling then?

Besides, I cant style the content using the style attribute. Is there something I'm missing here?

In general, how can you change styling inside a component? For instance, I would like to make the font in the full-screen code bigger. Is that possible?

You could apply styling to the Image component. Something like:
`<Image
src="https://images.unsplash.com/photo-1462331940025-496dfbfc7564?w=2048&q=20"
style={{
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
}}

`

That seems to work for me. Not sure why that wouldn't be the default styling for this use case though.

The Image component intentionally doesn't use the same styles as the default slide layout – if you want to center items, use the method described by @slushman


Loosen flask version requirement to >= 2

Later versions in the Flask 2.x series changed the API a fair bit.
Loosen the version requirement to >= 2, which allows people to continue
using 2.0.x and 2.1.x. Add tests using 2.0.3 to be sure this continues
working. Fixes #478.

There's a fair number of unit test failures because the examples depend on more recent features in flask-sqlalchemy (get_or_404, paginate). I could fix them, but I'd like to wait for guidance from @greyli before continuing.

It's unnecessary to add a separate test env for Flask 2.0.

@greyli Ok I think this is ready for review! Appreciate your support and encouragement on this

@greyli ready for another look!


Feature request: Get notifications

It would be great if we had a method to get the list of new notifications.
Now I'm not 100% sure, but from what I can tell, the way twitter does this is by querying this endpoint every few seconds
https://x.com/i/api/2/notifications/all.json

Yes, it can be done. I'll check the endpoint from Postman to test it. If it works, I'll get back to you

So I checked the endpoint in Postman, and it seems to working as intended but wow that endpoint is so bloated. It not only returns the notifications, but also recommended tweets and users.

It's hard for me to say since the response  that I'm seeing in the chrome network inspector is confusing to me. Though I think recommended tweets and users is an account setting - you can disable that yourself (I did so in the web UI)
Btw, there seems to be another endpoint that I think returns the number of notifications? I'm not sure about this one
https://x.com/i/api/2/badge_count/badge_count.json


Fix compatibility with PHP 7.3

Fix compatibility with PHP 7.3

Oh man, just found #244 .... sorry!


[Snyk] Upgrade gatsby from 5.11.0 to 5.12.4

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade gatsby from 5.11.0 to 5.12.4.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 7 versions ahead of your current version.
The recommended version was released 22 days ago, on 2023-09-05.

The recommended version fixes:

Severity
Issue
PriorityScore (*)
Exploit Maturity

Denial of Service (DoS) SNYK-JS-SOCKETIOPARSER-5596892
375/1000  Why? CVSS 7.5
No Known Exploit

Denial of Service (DoS) SNYK-JS-GRAPHQL-5905181
375/1000  Why? CVSS 7.5
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.

Release notes

Package name: gatsby

5.12.4 -<EMAIL_ADDRESS>

5.12.3 -<EMAIL_ADDRESS>

5.12.2 -<EMAIL_ADDRESS>

5.12.1 -<EMAIL_ADDRESS>

5.12.0 - 2023-08-24

5.12.0-next.1 - 2023-07-03

5.12.0-next.0 - 2023-06-15

5.11.0 - 2023-06-15

    from gatsby GitHub release notes

Commit messages

Package name: gatsby

0642eb7 chore(release): Publish
232ec13 fix(gatsby): don't break builds when using features unsupported by adapter (#38520) (#38521)
4b082d3 chore(release): Publish
da050e5 fix(gatsby): fix api function compilation on Windows (#38489) (#38491)
b6f1a10 chore(release): Publish
6a73ee1 fix: fix fetching adapters manifest from latest gatsby version (#38475) (#38482)
1fe0cf1 chore(release): Publish
1f9e806 fix: fix fetching adapters manifest from latest gatsby version
a1c87bc chore(release): Publish
b2d4aef feat(gatsby): Adapters (#38232)
7a2778b fix(gatsby-source-contentful): handle nullable fields (#38358)
2e08202 chore(docs): clarify react upgrade with --legacy-peer-deps (#38359)
e5126f9 fix(gatsby-source-wordpress): Set empty default alt tag for inline images (#38341)
668aa5f fix(deps): update dependency algoliasearch to ^4.18.0 for gatsby-source-npm-package-search (#38308)
06015b9 fix(deps): update minor and patch dependencies for gatsby-source-contentful (#38322)
544862b fix(deps): update minor and patch dependencies for gatsby (#38297)
cde8b49 fix(deps): update dependency verdaccio to ^5.25.0 for gatsby-dev-cli (#38318)
b074b85 fix(deps): update minor and patch dependencies for gatsby-source-wordpress (#38293)
176b1cc fix(deps): update dependency core-js to ^3.31.0 (#38309)
31df9ef chore(deps): update dependency webpack to ^5.88.1 for gatsby-plugin-mdx (#38306)
39c4987 chore(deps): update [dev] minor and patch dependencies for gatsby-graphiql-explorer (#38279)
1ebae56 chore(release): Publish next
6c7a0e3 fix(gatsby): copy slices overrides to 404.html copy (#38337)
0c8f948 chore(docs): Add DSG webpack limitation

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

👷 Deploy Preview for sage-dragon-9196d9 processing.

Name
Link

🔨 Latest commit
3ad19eaac86ac142156ed82a9d661f564f590668

🔍 Latest deploy log
https://app.netlify.com/sites/sage-dragon-9196d9/deploys/6513e4a4b3a9cc00077541ac


unable to run electron in bash shell

Issue Type: Bug
Install nodejs and npm
uname -aLinux emery-blagdon 4.4.0-17134-Microsoft #112-Microsoft Thu Jun 07 22:57:00 PST2018 x86_64 x86_64 x86_64 GNU/Linux# nodejs -vv10.6.0# npm -v
6.1.0

try to install electron
/mnt/c/Users/digitalrinaldo/Documents/assisted-reading-opengaze/javascript/node_modules/electron/dist/electron: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
VS Code version: Code 1.25.0 (0f080e5267e829de46638128001aeb7ca2d6d50e, 2018-07-05T13:11:58.697Z)
OS version: Windows_NT x64 10.0.17134

System Info

Item
Value

CPUs
AMD FX(tm)-9590 Eight-Core Processor            (8 x 4722)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: unavailable_softwarevideo_decode: enabledvideo_encode: enabledvpx_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
31.96GB (20.25GB free)

Process Argv
C:\Program Files\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions: none

This is the vscode repo, not the electron repo?

Do not reopen but you did not read the bug report carefully..
On Wed, Jul 11, 2018 at 10:58 AM Daniel Imms<EMAIL_ADDRESS>wrote:

Closed #54037 https://github.com/Microsoft/vscode/issues/54037.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/vscode/issues/54037#event-1728166678, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAwy4qWtJVUQxCX7sY77ktasehX6PEJeks5uFhKogaJpZM4VK-2x
.

unable to run electron in bash shell

Install nodejs and npm

try to install electron

/mnt/c/Users/digitalrinaldo/Documents/assisted-reading-opengaze/javascript/node_modules/electron/dist/electron: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

Where does VS Code come in here?


#579-and-#573

Fixes https://github.com/sussol/mobile/issues/579
Fixes https://github.com/sussol/mobile/issues/573

git dif should have been much smaller.. but had to add and else after if (rather then return) .. and everything was indented


Find command cannot restrict search results to show only projects/tasks

Design of application changed. Support for searching for both tasks and projected will no longer be included


Allow to return str instead bytes from generate_latest()

Because converting to bytes anyway happened at the end of function, have sense to return str instead bytes or have options to avoid extra transformation. (many API expected str)

I think the ship has sailed on this, any uses of generate_latest today will be using bytes and changing the return type would be a significant breaking change.

I think we can create a new function generate_latest_b() and return bytes, and original function will just call new function and convert to string.
Seems like the current behavior comes from Python2 era.


nightly no longer required

Hey there!
I just got this all setup last night - great work putting the guide together.
album_mood is now available in :latest docker tags.

Awesome, glad it worked for you! And thanks, I hadn't really tried latest in a while and didn't really want to mess up my existing library in case it wasn't working right. I'll update the readme!

Well, I completely forgot about this, but I finally updated the docs to no longer talk about the nightly part haha. I also updated the guide to reference the tool's new name "Kometa" instead of Plex-Meta-Manager.


Invalid certificate chain error using Neowave Winkeo key

Hello,
I'm currently performing some tests with different Fido2 keys and have an issue with one of the them: Neowave Winkeo model.
(https://neowave.fr/fr/produits/gamme-fido-2/winkeo-c-fido-2/)
When I try to register the key, I receive this error from the library:

Fido2NetLib.Fido2VerificationException: Invalid certificate chain
at Fido2NetLib.AuthenticatorAttestationResponse.VerifyAsync(CredentialCreateOptions originalOptions, Fido2Configuration config, IsCredentialIdUniqueToUserAsyncDelegate isCredentialIdUniqueToUser, IMetadataService metadataService, Byte[] requestTokenBindingId, CancellationToken cancellationToken)
at Fido2NetLib.Fido2.MakeNewCredentialAsync(AuthenticatorAttestationRawResponse attestationResponse, CredentialCreateOptions origChallenge, IsCredentialIdUniqueToUserAsyncDelegate isCredentialIdUniqueToUser, Byte[] requestTokenBindingId, CancellationToken cancellationToken)
at TB.Fido.Server.Api.Impl.Login.Current.Registration.MakeCredentialCommandHandler.Handle(MakeCredentialCommand request, CancellationToken cancellationToken)

After investigation, it appears that disabling the online revocation check make the registration works. (CRLDP extension is present in the attestation certificate)
To make it work, I basically commented this line like this:
// if the attestation cert has a CDP extension, go ahead and turn on online revocation checking             if (!string.IsNullOrEmpty(CDPFromCertificateExts(trustPath[0].Extensions)) && validationMode != FidoValidationMode.FidoConformance2024)                 //chain.ChainPolicy.RevocationMode = X509RevocationMode.Online;
I've seen some similar issues regarding the trust path chain validation, but it looks like this issue is different.
If you have any idea or solution about that, I would love it.
Thank you

If you can please provide a sample registration output, I would like try to get all the trust path issues put to bed prior to the next release.

Hello,
Here is a sample registration output from WebAuthn.
{ 	"id": "fkZPgHmaGs0RnxzAw5zMmzFlQPtNTNj7_6dwV-Rey8M", 	"rawId": "fkZPgHmaGs0RnxzAw5zMmzFlQPtNTNj7_6dwV-Rey8M", 	"type": "public-key", 	"extensions": {}, 	"response": { 		"attestationObject": "o2NmbXRmcGFja2VkZ2F0dFN0bXSjY2FsZyZjc2lnWEcwRQIgf-TKwKP3NRNIOMrkXEcUAomS4sjeyOJ_rR6kB7jFqKoCIQCZIUB1GvU9jqgVevgoLuo0OTRaToXU7vQ7m-8M7748-2N4NWOBWQSdMIIEmTCCBD-gAwIBAgIQZoGUWqM7jnhW2nmV4EZW1jAKBggqhkjOPQQDAjB0MQswCQYDVQQGEwJGUjETMBEGA1UEChMKQ2VydEV1cm9wZTEXMBUGA1UECxMOMDAwMiA0MzQyMDIxODAxHTAbBgNVBAMTFENlcnRFdXJvcGUgSWRlY3lzIENBMRgwFgYDVQRhEw9OVFJGUi00MzQyMDIxODAwHhcNMjAwNjIyMTIzMjIzWhcNMjgwMTIxMjMwMDAwWjCBsDELMAkGA1UEBhMCRlIxEDAOBgNVBAoTB05FT1dBVkUxIjAgBgNVBAsTGUF1dGhlbnRpY2F0b3IgQXR0ZXN0YXRpb24xJjAkBgNVBAMTHUZJRE8yIEF0dGVzdGF0aW9uIENlcnRpZmljYXRlMREwDwYDVQQHEwhHYXJkYW5uZTEhMB8GCSqGSIb3DQEJARYSY29udGFjdEBuZW93YXZlLmZyMQ0wCwYDVQQIEwRQQUNBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE64J-F8-nXNC8pToUHRksVq2b5RFvr5lOOlK6zpj1y0GHgOITTS7DiVd6cN_GtQr2e78HS0NIi7Aw_1AuPs7kh6OCAnQwggJwMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBMGA1UdIwQMMAqACENpBuFMW2NyMEwGCCsGAQUFBwEBBEAwPjA8BggrBgEFBQcwAoYwaHR0cDovL3d3dy5jZXJ0ZXVyb3BlLmZyL3JlZmVyZW5jZS9lY19pZGVjeXMuY3J0MFcGA1UdIARQME4wTAYNKoF6AWkrgxsBAQEBADA7MDkGCCsGAQUFBwIBFi1odHRwczovL3d3dy5jZXJ0ZXVyb3BlLmZyL2NoYWluZS1kZS1jb25maWFuY2UwggFKBgNVHR8EggFBMIIBPTBBoD-gPYY7aHR0cDovL3d3dy5jZXJ0ZXVyb3BlLmZyL3JlZmVyZW5jZS9jZXJ0ZXVyb3BlX2VjX2lkZWN5cy5jcmwwe6B5oHeGdWxkYXA6Ly9sY3IxLmNlcnRldXJvcGUuZnIvY249Q2VydEV1cm9wZSUyMElkZWN5cyUyMENBLG91PTAwMDIlMjA0MzQyMDIxODAsbz1DZXJ0RXVyb3BlLGM9RlI_Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDB7oHmgd4Z1bGRhcDovL2xjcjIuY2VydGV1cm9wZS5mci9jbj1DZXJ0RXVyb3BlJTIwSWRlY3lzJTIwQ0Esb3U9MDAwMiUyMDQzNDIwMjE4MCxvPUNlcnRFdXJvcGUsYz1GUj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0MBEGA1UdDgQKBAhMOoIVT46cGTAOBgNVHQ8BAf8EBAMCBPAwIQYLKwYBBAGC5RwBAQQEEgQQN4nakflDRryVw1DqIBLwOjAJBgNVHRMEAjAAMAoGCCqGSM49BAMCA0gAMEUCIQCzN40Mn6ZjEjc-EkfTEQBQQlrc9DQAo6TPDAB7s3ZtQgIgaYWXNanYmBPPcRxmpwXeO4g_t3lN3FPmvjdP2SXSOx9oYXV0aERhdGFYpEmWDeWIDoxodDQXD2R2YFuP5K65ooYyx5lc87qDHZdjRQAAAPo3idqR-UNGvJXDUOogEvA6ACB-Rk-AeZoazRGfHMDDnMybMWVA-01M2Pv_p3BX5F7Lw6UBAgMmIAEhWCC4-uaJY_iO-tqLGD50--2wxDg5RBcnlFEaWERzhKuYpiJYIJJlXkO7AuG4IMM9lOir_eP_ZtjHbZYfaRnBDLtQswfN", 		"clientDataJSON": "eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiRUdiUElHMGdwa2VtXzRnX0tNTjRPZyIsIm9yaWdpbiI6Imh0dHA6Ly9sb2NhbGhvc3Q6NTE4NSIsImNyb3NzT3JpZ2luIjpmYWxzZX0" 	} }
Thanks for your help.
When do you plan to perform the next library release ?

The CDP is at http://www.certeurope.fr/reference/certeurope_ec_idecys.crl, it's empty and there are no obvious issues with it.  Does your server lack outbound internet access or name resolution to get to the CRL file?  That would certainly cause this sort of problem.  I could not reproduce the problem you describe from my end.

Nothing to preview


App Settings creation in Azure Portal does not work at all

Steps to repro:

Open a Static Web app in Azure portal

Go to Configuration

Add an app setting, for example

AzureWebJobsStorage
{connection string}

(in preview portal): Click save
Expected: App Setting is saved
Actual: App Setting appears to be saved for 2 seconds then it disappears

(in public portal): Save button is disabled

Click on Show Values -> the Save button is enabled

Click Save
Expected: App Setting is saved
Actual: App Setting appears to be saved for 2 seconds then it disappears

https://user-images.githubusercontent.com/4922457/115230966-4e998080-a115-11eb-81eb-0b350c3a9a82.mp4

Hi @lbugnion , there are some restricted settings - AzureWebJobsStorage is one of them - #324

I see. In that case, is it documented anywhere, and why is there no error message? The current behavior is extremely confusing.

Docs should be updated soon. We're working on displaying a meaningful error instead of failing silently.

Hi! I can just add that I also have experienced similar problems with the Application settings discarding my settings. This happens regardless of the names of the settings. If for example I add four settings, it may save only the first two. It seems to help to wait before clicking the Save button.
Here's an example:
https://youtu.be/O7cbfiabJno?t=2760

Hi @anthonychu @lbugnion, I am suggesting that this issue can be closed now.
The documentation has been updated by Anthony with a list of reserved prefixes, and the UI is displaying a meaningful error when trying to add and save such an application setting 🙂

Closing as per @jon-a-nygaard suggestion. Thank you!


Please move jacksondc/pottershell to pottershell/pottershell

This will change the URL. I assume you're mostly OK with that.
I've changed my mind on how we should do releases. That's why this is happening. You'll be pleased - we're going to use GitHub Releases.

And to be clear, by URL I mean the website URL, not the GitHub URL (although that will obviously also change, but GitHub provides redirects nowadays).

It seems a little unnecessary to have a whole organization for it, but if you want to switch it's fine with me. Also pottershell.github.io/pottershell is much uglier, but if you really want to switch that's fine (we could also get pottershell.com). Yay GitHub releases!

I was planning to switch the project page to an organization page, so we'd get pottershell.github.io.
That's a total of 3 repos already, and we may want to add more in the future. I figured we'd have a separate org to not clutter upon your personal account. I've seen people do that for less repos.

I mean, if you don't mind having a couple Pottershell-related repos in your account, that's fine. I just figured it would be easier this way. Especially since then I don't have to bug you in case there's ever admin stuff, like repo creation or whatever.

No, it's fine. What do we need three repos for?

pottershell.github.io
data
pottershell (basically the current repo, sans data + gh-pages)

I can also imagine splitting up the current repo into separate ones, for maintainability reasons (among others, e.g. we may want to have a separate repo if we ever, in the distant, distant future, support csh).

Doesn't splitting it up just make it more difficult to maintain?


Deduplication of union find clusters explained

Hi, I've been reading your code of MinHash deduplication to find differences with my implementations or ideas of optimization. Is the filtering step using UnionFind parents to keep non duplicates and one sample of each cluster? That is why understand from here
https://github.com/ChenghaoMou/text-dedup/blob/e7b8401a297212c9764c1b0c8f6d89ba6a601dce/text_dedup/minhash.py#L300
At least, that is what I've been doing in my code, filter every sample id that union find vector says it is not a parent.
Also, may I ask why sharding is needed? Is the HF dataset class able to unload from memory and only allocate the current shard?
https://github.com/ChenghaoMou/text-dedup/blob/e7b8401a297212c9764c1b0c8f6d89ba6a601dce/text_dedup/minhash.py#L262-L272

Yes;
Sharding is introduced as an alternative to batching; this is more for the dataset iteration itself than actual deduplication. Iteration, one by one, is slow with large datasets.

Alright, many thanks.


Create lgs-hu

@derrobin154 Please rename lib/domains/eu/lgs-hu to lib/domains/eu/lgs-hu.txt and provide us with:

the university official website URL, if different from the domain you are submitting
an URL of a page on the official website where an IT-related long-term (>1 year) course is offered by the university
an URL of a page or another proof (.pdf or a screenshot are OK) showing that the university recognizes the domain which you are submitting as an official email domain for the students.

Before you ask for the Domain, lgs-hu.eu is the Domain to our iServ Panel, when you need a proof that the Domain is in Ownership from the School, you can look under  http://www.ludwig-geissler-schule.de then going to "E-Mail / iServ" in the left Sidebar and then click to "iDesk" and you come to the URL.
Greetings from Germany.

Hey,
The official Website is ludwig-geissler-schule.de, but, the school isn't a University but the School is a technical School / College, with for the apprenticed profession of computer technician.
However, I don't know how I can prove that the school provides students with the email address. I can only send you an e-mail from the e-mail address.
Greetings

@philipto
Sorry, I forgot to mark you.

@derrobin154 Thank you for the details. I found the proof at http://ludwig-geissler-schule.de/index.php?id=583, it says that the school idesk is located in the domain which you requested to add. Pull request merged. Thank you!


rez-pip does not create variants with a consistent order, potentially causing duplicates.

Unsure of what specific code is going wrong under the hood, but rez-pip is clearly not ordering the list of packages in its variants prior to creating the package, which can create duplicates with slightly different ordering. In this case, I installed google_api_core twice, and was confused when the second wasn't ignored for already existing. Then I noticed the variants looked like this:
variants = [
    ['python-2.7', 'protobuf-3.12.0+<3.18.0', 'futures-3.2.0+'],
    ['python-2.7', 'futures-3.2.0+', 'protobuf-3.12.0+<3.18.0']
]

Environment

OS Linux CentOS7
Rez version 2.106.0
Rez python version 3.7.7

To Reproduce

rez-pip google_api_core -i -p /temp_directory/rez --python-version 2.7
repeat the above again.

Expected behavior
The same install steps should be recognized as identical and skipped as already existing.
Actual behavior
The package gets installed again, with identical variants in a slightly different order, which I expect to cause unexpected and undesirable behavior when attempting to resolve.

Hello, any update on this ?


Chap 2: Transport endpoint is not connected: '/content/gdrive'

No luck to run the following cell, no matter I mount google drive as /content/gdrive  or /content/drive, same error information came out. Any idea?

What do you see after mounting ?
Can you do ls ?

Hi @suredream,
Please try one of these steps to get past this error:

Unmount and mount the drive again:

!fusermount -u drive
!google-drive-ocamlfuse drive

Go to Runtime on menubar and click on restart runtime option.
Or simply use the shortcut press CTRL + M

Terminate the session by going to : Runtime -> Manage Sessions, then Click on terminate for the session. Then you can re-mount the drive.

Use the argument force_remount = True like this

from google.colab import drive
drive.mount('/content/gdrive', force_remount=True)

Try to factory reset the runtime.

Using any one of this step, you should be able to mount mount the drive on Google Colab notebook.

@suredream did it work ?

Closing this as no further response received . Feel free to comment on this if any further help needed


Fix docstring of inspect_dataset

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


docs: type about extra server args

minor but important typo about configuration of extra server settings

thanks :kissing_heart:


[ Hexxen-1733-Ulisses-Spiele(Official)] Batch of minor fixes and improvements

Changes / Comments

Fixed a bug that caused rage and ambition to be handled incorrectly
Fixed several layout issues
Added a selection entry for NPC strategy
Added an input field for NPC health formula

Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
[x] Is this a bug fix?
[x] Does this add functional enhancements (new features or extending existing features) ?
[x] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Babel + Browserify bug.

When you try to using Babel + Browserify, then require('datatables') there is undefined jquery module.
To fix this you need to change path of jquery from:
module.exports = factory( require( 'jquery' ) );
to
module.exports = factory( require( './jquery' ) );

It sounds like you need to add a jquery define to your require paths. Putting an absolute path into DataTables would not be the correct answer here I think.

Your right thanks.


Added box shadow css on top container

Hey @ShashwatMDas, thank you for creating this pull request! Have a wonderful day...


Fixed a typo in the files package documentation

Thanks for this.
In the future, please use [skip ci] for changes that don't impact on code. Our CI matrix is large and takes quite a while to complete.

Will do.


Add an option to allow the app to launch without all required settings

Currently, Botkit will throw an error if, for example, the Slack token is missing.
This is less than ideal when used with the yeoman generator and the Glitch remixes, because in many cases it will result in an app that refuses to launch.
I propose adding an option that will allow the app to launch -- still emitting warnings about missing config -- but instead of becoming an active bot, will serve a "please configure me" web page on the index route.
This will require changes not only to Botkit core, but also to the various adapters.

I have added enable_incomplete parameters on all the adapters that will allow them to start up without a full configuration. They may fail or crash if used, but at least they'll start ... and emit a bunch of warnings!


Restore behavior where the link text is the unhashed db names

Previously, the links from the main page of the site did not have the "-HASH" suffix. It would be better, imo, to not show this suffix to the user in the link text.

So for the example the link text here would be "f7" not  "f7-8035c93", etc.

This is similar to:

#9

But slightly harder to fix with metadata because the index page doesn't take the metadata.title into account at the moment: https://github.com/simonw/datasette/blob/764738dfcb16cd98b0987d443f59d5baa9d3c332/datasette/templates/index.html#L13

{{ database.name }}{% if database.private %} 🔒{% endif %}

I think that may be a bug in Datasette itself: if you set a custom metadata title for a database surely that should be shown on the index page?


test: fix crate dependency suggestion

Fixes #377
cc @yoshuawuyts

It's a bit late but you could split on a pattern get the length of the array and subtract 1 to give you the number of occurrences


Example for posting an album

Please follow the guide below

Issues submitted without this template format will be ignored.
Rlease read them carefully and answer completely.
Do not post screenshots of error messages or code.
Put an x into all the boxes [ ] relevant to your issue (==> [x] no spaces).
Use the Preview tab to see how your issue will actually look like.
Issues about reverse engineering is out of scope and will be closed without response.
Any mention of spam-like actions or spam-related tools/libs/etc is strictly not allowed.

Before submitting an issue, make sure you have:

[ ] Updated to the lastest version v1.6.0
[ ] Read the README and docs
[ ] Searched the bugtracker for similar issues including closed ones
[ ] Reviewed the sample code in tests and examples

Which client are you using?

[x ] app (instagram_private_api/)
[x ] web (instagram_web_api/)

Describe your Question/
Can someone show me how I can post an album? Is there an example? Would be very happy if someone could help me out
Best
sali

Please review the documentation before submitting an issue.

Before submitting an issue, make sure you have:

[ ] Updated to the lastest version v1.6.0
[ ] Read the README and docs
[ ] Searched the bugtracker for similar issues including closed ones
[ ] Reviewed the sample code in tests and examples


Papers

Definitely need to change the style. Maybe we should add an image to the Paper object.

Nice, looks alright I think. Looking how others do it meta, google, apple. Should we add something that says paper, as it can be oral or workshop too?

ah yes! We should try to copy one of them! feel free to change this. Otherwise we can get @pierluigidovesi to fill in the data in settings.ts and merge this. Then later we can move this to a separate page?


Revert "Bump github.com/ray-project/kuberay/ray-operator (#1786)"

This reverts commit 38fee15a013552af42ea51feb002734a73c0b636.

What type of PR is this?
/kind bug
What this PR does / why we need it:
Released<EMAIL_ADDRESS>was removed :(
https://github.com/ray-project/kuberay/tags
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Currently, we can not build the kueue-manager-controller:
$ go build -o /tmp/kueue-manager cmd/kueue/main.go
go: downloading github.com/ray-project/kuberay/ray-operator v1.1.0-rc.0
pkg/controller/jobs/raycluster/raycluster_controller.go:20:2: reading github.com/ray-project/kuberay/ray-operator/go.mod at revision ray-operator/v1.1.0-rc.0: unknown revision ray-operator/v1.1.0-rc.0
pkg/controller/jobs/rayjob/rayjob_controller.go:23:2: reading github.com/ray-project/kuberay/ray-operator/go.mod at revision ray-operator/v1.1.0-rc.0: unknown revision ray-operator/v1.1.0-rc.0

Does this PR introduce a user-facing change?

NONE

/assign @trasc

It seems to be back?

@alculquicondor Really? I can not still see the tag "ray-operator/v1.1.0-rc.0" in kube-ray.
https://github.com/ray-project/kuberay/tags
Can you find the tag "ray-operator/v1.1.0-rc.0"?

Yes
https://github.com/ray-project/kuberay/releases/tag/v1.1.0-rc.0
@kevin85421 do you think there could be some form of missing permissions?

@alculquicondor I meant the "ray-operator/v1.1.0-rc.0": https://github.com/ray-project/kuberay/releases/tag/ray-operator/v1.1.0-rc.0
We need "ray-operator/v1.1.0-rc.0", right?

I don't think so.... Otherwise the bot wouldn't be able to build the binary.

Otherwise the bot wouldn't be able to build the binary.

It makes sense, but we already specify the ray-operator sub-directory: https://github.com/kubernetes-sigs/kueue/blob/0c5740d977f8fa73ac0c04d3007a0bf167784b9e/go.mod#L16
To perform go get<EMAIL_ADDRESS>doesn't the tag for the sub-directory need?

Uhmmm you are right. I don't know why the bot is not complaining, but let's merge this
/lgtm
/approve

Uhmmm you are right. I don't know why the bot is not complaining, but let's merge this
/lgtm /approve

I created an issue in kuberay side: https://github.com/ray-project/kuberay/issues/1983


Router is supposed to handle Temporarily_Disabled error from server

After introducing Stop BlobStore, there might be a server error Temporarily_Disabled when trying to access the BlobStore which has been stopped already. In ResponseHandler.java, we should add extra case to deal with Temporarily_Disabled error. The purpose is to notify failure detector that the store is not available and please avoid sending request to it.
#880

The issue is fixed in #988


APIM policies with C# code rules fail to convert valid XML into type System.XML.XmlDocument

Description of the issue
When running PSRule against APIM policies that sucessfully deploys on Azure, the rule fails due to being unable to convert the XML of the policy
To reproduce
Try to run PSRule against a bicep template that deploys the following policy for an API with rawxml as the format
<!--
    - Policies are applied in the order they appear.
    - Position <base/> inside a section to inherit policies from the outer scope.
    - Comments within policies are not preserved.
-->
<!-- Add policies as children to the <inbound>, <outbound>, <backend>, and <on-error> elements -->
<policies>
	<!-- Throttle, authorize, validate, cache, or transform the requests -->
	<inbound>
		<base />
		<set-backend-service base-url="{{backend}}" />
		<authentication-managed-identity resource="{{audiencee}}" />
		<set-variable name="originalHost" value="@(context.Rquest.Headers.GetValueOrDefault("X-Original-Host", "NotAvailable"))" />
	</inbound>
	<!-- Control if and how the requests are forwarded to services  -->
	<backend>
		<base />
	</backend>
	<!-- Customize the responses -->
	<outbound>
		<base />
	</outbound>
	<!-- Handle exceptions and customize error responses  -->
	<on-error>
		<base />
	</on-error>
</policies>

Expected behaviour
Conversion of the provided XML policy succeeds
Error output

##[error]AZR-000371: apim-name/api-name failed Azure.APIM.PolicyBase with the error 'Cannot convert value "<!-- Add policies as children to the <inbound>, <outbound>, <backend>, and <on-error> elements -->
<policies>
	<!-- Throttle, authorize, validate, cache, or transform the requests -->
	<inbound>
		<base />
		<set-backend-service base-url="{{backend}}" />
		<authentication-managed-identity resource="{{audiencee}}" />
		<set-variable name="originalHost" value="@(context.Rquest.Headers.GetValueOrDefault("X-Original-Host", "NotAvailable"))" />
	</inbound>
	<!-- Control if and how the requests are forwarded to services  -->
	<backend>
		<base />
	</backend>
	<!-- Customize the responses -->
	<outbound>
		<base />
	</outbound>
	<!-- Handle exceptions and customize error responses  -->
	<on-error>
		<base />
	</on-error>
</policies>" to type "System.Xml.XmlDocument". Error: "'X-Original-Host' is an unexpected token. Expecting whitespace. Line 15, position 89."'.

At /usr/local/share/powershell/Modules/PSRule.Rules.Azure/1.39.3/rules/Azure.APIM.Rule.ps1:384 char:21
+         $policies | ForEach-Object {
+                     ~~~~~~~~~~~~~~~~

at <ScriptBlock>, /usr/local/share/powershell/Modules/PSRule.Rules.Azure/1.39.3/rules/Azure.APIM.Rule.ps1: line 386
at global:GetAPIMPolicyNode<Process>, /usr/local/share/powershell/Modules/PSRule.Rules.Azure/1.39.3/rules/Azure.APIM.Rule.ps1: line 384
at <ScriptBlock>, /usr/local/share/powershell/Modules/PSRule.Rules.Azure/1.39.3/rules/Azure.APIM.Rule.ps1: line 326
at Rule 'Azure.APIM.PolicyBase', /usr/local/share/powershell/Modules/PSRule.Rules.Azure/1.39.3/rules/Azure.APIM.Rule.ps1: line 325

Module in use and version:

Module: PSDocs.Azure
Version: v1.39.3

Sorry , This issue was meant for the PSRule.Azure repository


Going reverse after some time

hey i love this .. but their is one problem .. it is going in reverse direction after some time .. not even reaching the end.

issue is solved : new adapter added and mad it one way. Happy coding :)


LaTeX Error: Unknown option '\MyColorOption' for package xcolor.

Cannot compile a document. I get a warning and error thrown by the xcolor package.
Package xcolor Warning: Package option `hyperref' is obsolete and ignored on input line 266.
C:\Users\rob5i\AppData\Local\Programs\MiKTeX\tex/latex/xcolor\xcolor.sty:266: LaTeX Error: Unknown option '\MyColorOption' for package xcolor.
The line in question in xcolor is: \edef\Gin@driver{\Gin@driver}

Thanks for this message.
Recent updates to LaTeX (fall 2023) cause obsolete options to be flagged (hyperref and fixpdftex specifically). The latter is passage through an engine-dependent option, \MyColorOption, and this causes the error you see.
I'll post a revision today.  Meanwhile you can remove these two lines in the asmeconf.cls file
\ifpdftex\def\MyColorOption{fixpdftex}\else\ifluatex\def\MyColorOption{luatex}\else\def\MyColorOption{}\fi\fi
\RequirePackage[hyperref,\MyColorOption,dvipsnames,svgnames,x11names]{xcolor}

and replace them with this line
\RequirePackage[dvipsnames,svgnames,x11names]{xcolor}

The update is posted and should appear on the mirror sites during the next 24 hours.
https://ctan.org/pkg/asmeconf


A question about nuscences test set result

Hello, thanks for your work.
I have a question about nuscenes test set result listed in this paper

The mAP of FMF-Voxelnet-Base seems wrong, I get 64.6 according per-class AP.

We have updated the baseline code. There is a little improvement in the metrics (at least on Waymo). How many sweeps do you use?

Thanks for your reply. Sorry that my expression is not clear.  I have not implement the code, just read the paper list above.
I compute mAP by per class AP listed in the paper, just like:
(89.8 + 59.3 + 67.0 + 68.6 + 32.8 + 85.7 + 58.6 + 30.2 + 77.4 + 77.0) / 10 = 64.64.

I am using Nuscenes-devkit to calculate the metrics. I will check if weighted average is implemented. Otherwise, I will updated the metrics in a new arxiv version.
Thanks for highlighting this issue.

Correct. Thanks for mentioning this mistake. There is a typo in the table.


GUI Window to set the Dashboard password.

At the moment, we have to add the Passwort for the Dasboard Login in the commandline. This have to be changed to GUI. Otherwise we have the need of a Commandline, although our motto is "a Plug and Play Node without the need of a commandline".
Also, if we provide a ready to go image, which boots directly in Fullscreen Hive, there is no option to see or enter the Commandline at the insallation Process.

Already integrated.


Simple example of reacton as a class

Hi, I feel this project should really help me but I am struggling to get how it would be beneficial compared to a class type structure.  Also, would there be a benefit to using Reacton within a class structure? I couldn't get that to work. I would very much appreciate your thoughts on the following button click examples below. In particular, how can Reacton work in classes? and would that structure typically be used in large Jupyter widget web-app projects?
Old school method (taken from Reacton docs)
import ipywidgets as widgets

clicks = 0  # issue 3
def on_click(button):
    global clicks  # issue 3
    clicks += 1
    button.description = f"Clicked {clicks} times"
button = widgets.Button(description="Clicked 0 times")
button.on_click(on_click)  #
button

Reacton (taken from Reacton docs)
import reacton

@reacton.component
def ButtonClick():
    # first render, this return 0, after that, the last argument
    # of set_clicks
    clicks, set_clicks = reacton.use_state(0)

    def my_click_handler():
        # trigger a new render with a new value for clicks
        set_clicks(clicks+1)

    button = w.Button(description=f"Clicked {clicks} times",
                      on_click=my_click_handler)
    return button

ButtonClick()

Old school method BUT in a class
The method I currently use for large projects.

import ipywidgets as widgets

class ButtonClick:
    def __init__(self):
        self.clicks = -1  # issue 3
        self.button = widgets.Button()
        self.button.on_click(self.on_click)
        self.on_click(_)

    def on_click(self,_):
        self.clicks += 1
        self.button.description = f"Clicked {self.clicks} times"
ButtonClick().button

My attempt using Reacton in a class but it doesn't work.
Is this even needed? I'm not sure. It would be nice to incorporate Reacton in existing code within a class based structure.
class ButtonClick_r:
    def __init__(self):
        self.ButtonClick()
        self.clicks= 0
        self.button = w.Button(description=f"Clicked {self.clicks} times",
                          on_click=self.my_click_handler)
    @reacton.component
    def ButtonClick(self):
        # first render, this return 0, after that, the last argument
        # of set_clicks
        self.clicks, set_clicks = reacton.use_state(0)

    def my_click_handler(self):
        # trigger a new render with a new value for clicks
        set_clicks(self.clicks+1)

ButtonClick_r().button

Also, would there be a benefit to using Reacton within a class structure?

We have discussed this quite a bit. I think the only benefit is that it doesn't look so unfamiliar to Python users (I guess that is also what drives you to a class, right?).
The downside of a class is that we need to be clear about the lifetime of self, and can its properties be mutated? We can mirror this from the ReactJS world, but it also requires a decorator to make sure that outside of the class, it's state cannot be mutated (otherwise, why no stay with regular ipywidgets).
This is a very interesting topic, however, with no easy answers, so any feedback (like this) is very welcome.
My main question to you is, why would you want this? Is there a benefit from using classes over a (decorator) function?

My main question to you is, why would you want this? Is there a benefit from using classes over a (decorator) function?

I'm not sure I can answer that well.  A class structure generally helps to provide a clean API to programmatically control or interact with the web-app. By having the Widgets outside of this class structure would make it harder for variables to be passed between the widgets and would be harder to produce clean reliable code.
Generally speaking,  I am trying to determine some best practices for to develop Python web-apps. We are currently using a combination of Dash, Streamlit and Voila. Streamlit is great for small apps and has a consistent look and feel. But Voila (with Ipyvuetify) is better for larger more complex web-apps. But having multiple web-app frameworks and no consistent standards has caused a bit of a maintenance nightmare.  So I would like to reduce the number of web-app frameworks (ditch Streamlit and Dash and only use Voila) and create coding standards for the Voila apps.  However, Jupyter Widgets requires more callback functions than a Streamlit app, thus Voila is perceived to be harder to setup so it might be hard to sell this idea to the team.  I was hoping Reacton would ease those pains and help our transition to Voila only web-apps.
I would love to see a showcase example of a large Voila or Jupyter Widget project, ideally using a mixture of ipyvuetify, plotly, bqplot etc. Perhaps I should evaluate Solara! I've just been looking through the Solara tutorials.  I would be very interested in how an experienced software developer would structure a big project.  But there doesn't seem to be many teams able to share those projects (which must be frustrating for you).

A class structure generally helps to provide a clean API to programmatically control or interact with the web-app. By having the Widgets outside of this class structure would make it harder for variables to be passed between the widgets and would be harder to produce clean, reliable code.

I think that arbitrary interaction (n objects can have n^2 interactions) makes it very difficult to understand larger applications. Or am I misunderstanding what you meant?
In the case of Reacton, there are no widgets outside of any structure. The elements (which replace the widgets) are completely isolated in the scope of the function, nobody can mess with them except the component itself. I think this 'limitation' makes it easier to reason about a component.

I was hoping Reacton would ease those pains and help our transition to Voila only web-apps.

I am personally convinced by this. Actually, I think it's more Solara that will help you here since Reacton is quite bare-bone.
There is one project that we work on that is source-visible, but not open source: https://github.com/dominodatalab/low-code-assistant (docs at https://dominodatalab.github.io/low-code-jupyter-docs/ with some screen capture available). (Again, not open source, it has copyright, but it may give an idea of how to structure a larger application)
Without Solara, we (@mariobuikhuizen and I) would be unable to create an app like this, or with way more time, more bugs, and a slower pace.
I do plan to write more documentation on our views on how to write re-usable components/libraries, and how to write larger apps (they have different requirements/needs).
If you don't mind, I'd like to do a video call with you to discuss this some more, is that ok? (If possible, can you share your email address with me at<EMAIL_ADDRESS>

Note that low-code-assistant by domino is now called domino code assist and is no longer source visible either. Solara, and the website at https://github.com/widgetti/solara/ is an example of a larger (open source) project.


Re-generating a client/plugin overwrites other clients/plugins in the same output folder

What are you generating using Kiota, clients or plugins?
Kiota plugin
In what context or format are you using Kiota?
Windows executable
Client library/SDK language
None
Describe the bug
If I have multiple clients/plugins in one output folder and I attempt to re-generate one of them, the re-generation overwrites the output folder leading to the deletion of the other clients/plugins that existed in the same folder.
Expected behavior
The clients/plugins generated should not be deleted and only the modified client/plugin should be regenerated/
How to reproduce

Open new version of the extension
Load an open API description file
select endpoints and generate a client
Repeat steps 2 and 3 and store the newly generated client in the same output folder as the previous one.
Edit the one of the clients/plugins and regenerate the client/plugin
Observe issue

Open API description file
Any random description can be used
Kiota Version
1.16.0
Latest Kiota version known to work for scenario above?(Not required)
No response
Known Workarounds
No response
Configuration
No response
Debug output
Click to expand log
```

</details>

### Other information

_No response_

This is due to default value, setting of the cleanout option in the extension.

This is due to default value, setting of the cleanout option in the extension.
It should be safe/ok to set cleanoutput to false for plugin generation as the same files are regenerated and will therefore be safely overwritten/updated. The issue really comes with client generation where the paths are edited by removing paths. The generated requestbuilders from the earlier generation which are no longer used is what may necessitate the cleanoutput option to be true in this scenario.
Maybe what we need to here is

detect/prevent/notify the user when they are generating multiple clients in the same folder(or subfolder of an existing client)?
Set cleanoutput to false for plugin generation.

Ooh yeah this feels like a great option... So we would need to notify a user to save their clients in different output directories...

Love the option of notifying. Should we simply not support generating in the same output? now that we have the workspace file, we can easily identify this. I don't see a scenario for multiple generation in the same folder.

Yeah I think it just shouldn't be supported... Each client generation should be in it's own output folder

Love the option of notifying. Should we simply not support generating in the same output? now that we have the workspace file, we can easily identify this. I don't see a scenario for multiple generation in the same folder.

Just to clarify here, do you mean from the CLI end or from the extension end?
In my head, since a user need to explicitly pass the cleanoutput option in the CLI command, you could assume they know what they are doing.

Love the option of notifying. Should we simply not support generating in the same output? now that we have the workspace file, we can easily identify this. I don't see a scenario for multiple generation in the same folder.

I thought that having a DC I would generate more than 1 plugin to the same subfolder, apppackage folder for example.

Fair call on plugins. It could absolutely be in the same output folder.

This is due to default value, setting of the cleanout option in the extension.
It should be safe/ok to set cleanoutput to false for plugin generation as the same files are regenerated and will therefore be safely overwritten/updated. The issue really comes with client generation where the paths are edited by removing paths. The generated requestbuilders from the earlier generation which are no longer used is what may necessitate the cleanoutput option to be true in this scenario.
Maybe what we need to here is

detect/prevent/notify the user when they are generating multiple clients in the same folder(or subfolder of an existing client)?
Set cleanoutput to false for plugin generation.

Just to clarify here, the proposal is only to block the cleanouput option in client generation as we need to remove files(models,requestbuilders) for paths dropped during regeneration.
For plugin generation, the extension should not set the cleanoutput option as true. This is because, the target files will be the same and be overwritten/updated either way.

@andrueastman I wouldn't assume though they will know they can't have more than 1 in the same subfolder. I wouldn't. So the implementation should be for CLI and VS Code extension, whatever we decide is the right implementation

This makes sense. The CLI can block the operation to cater for both.

I think the ask is clear here. We can add this...


Compile new binaries for hyperscan v4.6.0

I attempted to build 4.6.0 on MacOS but was unsuccessful.   Failed at the link stage.  Opened 01org/hyperscan#69.

A friend suggested to try it with those cmake options (haven't had the opportunity to try those yet - will do that later and report back):
SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")
SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")

The libraries are now automatically built using travis ci. A built can be triggered if a contributor changes the file https://github.com/cerebuild/hyperscan-java/blob/master/.hyperscan-version directly on the master branch (not via pull request).

@gliwka can we push out a new release with the new 4.6.0 libs?

@eliaslevy Done, v0.4.10 has been published.
I'll try to incorporate the changes in hyper scan (i.e. the newly introduced pattern matching in combination with Levenshtein distance) in the upcoming weeks. It mostly hinges on #27.

Danke.

Looks lik the v0.4.10 release breaks my job when executing in EC2, but not locally on my Mac.  Reverting to v0.4.9 fixes the problem.
It is dying in Scanner. allocScratch with an java.lang.OutOfMemoryError, but that is probably wrong.  Scanner.allocScratch doesn't check the return value of hs_check_alloc for a specific error, so the problem may be something else.
I don't have time to debug it at the moment.  I'll try to find some time tomorrow.

@eliaslevy That would be much appreciated.

A bit more on the error I was seeing.  I've reproduced it on my MBP and narrowed it down to a call I make to Expression.validate on start up to check the expressions.  It only seems to trigger if there are sufficient concurrent threads, each of which run the same code.   In my case I need at least four threads for it to trigger, and it won't trigger if I run the code in the debugger.  The error goes away if I synchronize the call to Expression.validate.
The error report generated by the JVM shows two threads calling into hs_free_compile_error from validate with the top of the stack being:
Stack: [0x00007000055c4000,0x00007000056c4000],  sp=0x00007000056c2440,  free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libsystem_c.dylib+0x1b52]  strlen+0x12
C  [jna4845073464406839331.tmp+0x4073]  Java_com_sun_jna_Native_getStringBytes+0x23
j  com.sun.jna.Native.getStringBytes(Lcom/sun/jna/Pointer;JJ)[B+0
j  com.sun.jna.Native.getString(Lcom/sun/jna/Pointer;JLjava/lang/String;)Ljava/lang/String;+6
j  com.sun.jna.Pointer.getString(JLjava/lang/String;)Ljava/lang/String;+3
j  com.sun.jna.Structure.readField(Lcom/sun/jna/Structure$StructField;)Ljava/lang/Object;+134
j  com.sun.jna.Structure.read()V+100
j  com.sun.jna.Structure.autoRead()V+8
j  com.sun.jna.Function.invoke(Ljava/lang/reflect/Method;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+395
j  com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+344
j  com.sun.proxy.$Proxy3.hs_free_compile_error(Lcom/gliwka/hyperscan/jna/CompileErrorStruct;)I+24
j  com.gliwka.hyperscan.wrapper.Expression.validate()Lcom/gliwka/hyperscan/wrapper/Expression$ValidationResult;+77

Looks like it is dying in the call to strlen from JNA's Java_com_sun_jna_Native_getStringBytes.
I am not familiar with JNA, but I believe the issue is that CompileErrorStruct is created by passing it a native struct that has been allocated by hyperscan.  The call to hs_free_compile_error deallocates the the struct.  But JNA's Structure has a feature enabled by default that will read the contents of the native struct into the Java Structure after every native call.  So after calling hs_free_compile_error, JNA is trying to read the fields of the struct that hyperscan just freed.
In the single threaded case this is usually not a problem, as nothing will have modified that memory.  But in a multi-threaded environment, the memory could be allocated and modified by another thread, leading to an error when the original thread tried to read the fields.  Something changed between hyperscan 4.5.2 and 4.6.0 to make this more likely, but the problem was present before we upgraded to 4.6.0.
If I modify hyperscan-java to call errorStruct.setAutoRead(false); before every call to hs_free_compile_error, thus disabling read of the struct after the call to hs_free_compile_error, the error goes away.

Thank you very much for looking into this.
I'll open a issue for this and try to reproduce this using a simple test case.


small code clean up

small code clean up and notes on todo

Hey @Zwilla :)
Thanks for all of your PRs.
I have some security concerns around the large diffs here.
Is it possible for you to submit small diffs with only the exact improvement you've made?
Also, do you mind explaining what it is exactly you are fixing a bit more clearly?
Thanks.

https://github.com/kvhnuke/etherwallet/pull/882/commits/1753d94ee9e076dd1be73a90095bd95c83c510ba?w=1
Just add ?w=1 :)

I'm not merging anything this big. You tell us to be more secure but expect me to merge a 300 line diff with a description of "small code clean up".
I'm about to simply lock v3 for good as the issues stemming from pull requests and merges are causing more headaches than they are worth.
We would love you to contribute, but you must understand that we cannot trust you or this PR due to the fact it appears every single line has changed.

ok, for the future I will add the ?w=1 tag behind the merge url, than you can see how small it was.
https://github.com/kvhnuke/etherwallet/pull/882/commits/1753d94ee9e076dd1be73a90095bd95c83c510ba?w=1


[Feature] Show a key value pair form in dropdown widget like in the radio widget

Summary
The select/dropdown widget and the radio widget accept the same type of data. But the dropdown widget doesn't show a form in the property pane. See screenshots below. Both should have the same options in the property pane.

This is present for the multi-select widget, need to e fixed in the select widget

The issues here is that the compatibility between the JS mode and UI mode is not consistent, We often face data loss, Here we need to resolve that


Add prefix and subfix Power Rename

Description of the new feature / enhancement
It would be nice to have the ability to add a prefix or a subfix to files in power rename
Scenario when this would be used?
Say you want to add "_Pre" to the beginning of 100 files no matter the starting character.
Supporting information
No response

This is already possible with regular expressions.
Please refer to our documentation: https://docs.microsoft.com/en-us/windows/powertoys/powerrename#regular-expressions


Out of memory error on SubCenter-ArcFace-r100-gpu

When running on an 8GB NVidia Tesla P4, I get an out of memory error starting the SubCenter-ArcFace-r100-gpu build:
PluginError: insightface.Calculator@arcface-r100-msfdrop75 error - simple_bind error. Arguments:\\ndata: (1, 3, 112, 112)\\nTraceback (most recent call last):\\n  File \\\"../src/storage/./pooled_storage_manager.h\\\", line 160\\nMXNetError: cudaMalloc retry failed: out of memory
nvidia-smi shows two uwsgi processes using around 6GB memory:
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      3240	 C   uwsgi                            3233MiB |
|    0   N/A  N/A      3241	 C   uwsgi                            2727MiB |
+-----------------------------------------------------------------------------+

Interestingly the GPU still has over 1.5GB RAM free which is not being used.
Is it correct that it's using this much memory, and if so what is the minimum requirement to use it?

https://github.com/exadel-inc/CompreFace/issues/1034#issuecomment-1481932849
I gave a detailed answer here.
In short - you can run it on one process or use an older version.

Thank you. I will close this issue since there's already one open.


 Now I presume this is simply due to heuristics related to malicious apps trying to hide themselves and is therefor a false positive. I figured you would want to know and at least make some sort of declaration here or I see it's also on Softpedia.
https://www.virustotal.com/gui/file/82a8633c53e9f9106478b175490e8d215ddbf543b6ce76ef010955b0e71e78a7/detection

This issue is quite common with software written in AutoIt3. Because it's easy to whip up a standalone executable with AutoIt3, it's a popular language for hackers. An AutoIt3 executable packs the interpreter and the script file, if an Antivirus program flags the interpreter's signature, all programs compiled using AutoIt3 are affected as well.


Support for secondary bitmap?

This seems to be missing. Is that on purpose?

Yes, of course. I'll do it as soon as possible


Using under MIT and don't intend to upstream any changes from this fork

Create a new branch and change the URL in the README.md to point to your own GitHub Pages site.
Open a pull request with release-v1.0 as the base branch, and your new branch as compare.

Completed the task, please open the next step


addResourceBundle inside getStaticProps

Is your feature request related to a problem? Please describe.
I have a translation file, and some additional translation exist on the server. I am aware that I can call addResourceBundle in the client side, but I am wondering if this step could be done inside getStaticProps so addResourceBundle is done during page build. If so, can someone provide minimal example. Thank you
Describe the solution you'd like
An example of calling addResourceBundle inside getStaticProps

Why? Just add the namespace to serverSideTranslations.

@isaachinman , in this scenario, I get additional resource from getStaticProps and wish to append this to existing resource that comes from json file in the locale folder. If this can be done via serverSideTranslations please show me an example.
When using addResourceBundle on the client side, it would be done this way:
useEffect(() => {
    i18next.addResourceBundle(locale, '<namespace name>', dataFromRemoteServer, true, false);
  }, [dataFromRemoteServer])

Is there a way to achieve similar effect purely via getStaticProps?  Needs additional translation from the remote server to append to existing translation on the locale folder.

I've answered similar questions many times in issues on this repo. Of course it's possible to do what you are describing, but I'd first suggest you simply download the external data source as a build step prior to even running NextJs, and ensure it already exists in your public/locales directory.

@isaachinman sorry I have spent hours looked through the issues, I cannot get any example for this kind of scenario, its probably my fault but I really have tried. (In this case the translation is dynamic so it cannot be downloaded into locales before hand)

Hey @adithep  I think I had a similar issue, I was calling my translation server and then merging dictionaries
export async function getStaticProps() {
  /// ....

  // this is a dictionary object
  const serverTranslations = await translationService.fetch(locale, ['namespace']);
  // See https://github.com/isaachinman/next-i18next/blob/cfaba2659f09451aa695b2af7cefaabeda8a9da7/src/serverSideTranslations.ts#L107
  // for data type
  const fileTranslations = await serverSideTranslations(locale, ['namespace']);

  return {
    props: {
      ...mergeTranslations(serverTranslations, fileTranslations),
    },
  };
}

@adithep If you definitely need to do this in your NextJs runtime, you'll want to follow @SirMoustache's advice. You may need to wait for #1642. Let me know if I can answer any other questions 👍


Inverter information stream

I use a fork of this excellent add on for enphase system. Since few days, my firmware has changed to V8.
My question is: do you know if now there is some additional stream/JSON related to micro inverter status? Because some information are missing like individual micro inverter power/production and I still use integrated Enphase add-on in parallel.
Or perhaps I miss something?

I have V5 so I'm unable to answer - you might take a look at this old issue in case it helps? https://github.com/vk2him/Enphase-Envoy-mqtt-json/issues/29#issuecomment-1844038706

Thanks, but I can't find some such information.
Have a nice day.


If multiple documents of the same type exist with the same date only one is downloaded

Description of the bug
I have several "Wertpapierübertrag" documents in my account that are identical in their date, title and subtitle (wherefrom the time is extracted). This is nothing unusual if you have transferred multiple different stocks from another broker to Trade Republic.
Subsequently the destination file paths that are created from these data by pytr are identical and thus only one file will be downloaded whilst the others are skipped.
To Reproduce
Steps to reproduce the behavior:

Ran the command pytr dl_docs .
Noticed that the number of downloaded document did not match the expected number of documents

Expected behavior
All files should be downloaded.
E.g. by adding a number if the file already exists.
Alternatively you could extend the --format FORMAT_STRING argument and provide id or body as variables.
This should be sufficient to create unique file names, e.g.:
--format "{iso_date}{time} {title}{doc_num} - {id}"
Error log
File ... already in queue. Skipping...

Environment

OS: MacOS
pytr version: 0.1.2

Additional context
Unfortunately these documents do not have a doc_num.

Sounds like a problem that should be already fixed. Try pytr 0.1.4

No, it is the same with 0.1.4.
Just have a look into the code.
In the case that I described, iso_date, time, titleText and subtitleText are identical for the different files and doc_type_num is empty then the filepath will be the same for all the actually different files and we end up with "Skipping...".
        filename = self.filename_fmt.format(
            iso_date=iso_date, time=time, title=titleText, subtitle=subtitleText, doc_num=doc_type_num
        )
        if doc_type in ['Kontoauszug', 'Depotauszug']:
            filepath = directory / 'Abschlüsse' / f'{filename}' / f'{doc_type}.pdf'
        else:
            filepath = directory / doc_type / f'{filename}.pdf'

        filepath = sanitize_filepath(filepath, '_', 'auto')

        if filepath in self.filepaths:
            self.log.debug(f'File {filepath} already in queue. Skipping...')
            return
        else:
            self.filepaths.append(filepath)

Yes, I'm working on a fix

#29 is a better than the option to add the doc id to every file name. So only in case of duplicate file paths the id is added automatically. (Using the doc id for a cutom file name format is still possible.)


plugin/grpc/grpcstats: error tag values

The tag value for rpc status is the full text of the error, but it should just be a string of the error code.

The view tags used in the grpcstats package don't match with the tags used in other languages for the same views.
@odeke-em, can you make the Go ones consistent with the Java? See https://github.com/census-instrumentation/opencensus-java/blob/master/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java for reference.

SGTM! Let me jump on that.

I assigned this to myself and working on it!