distro/fedora: Refactor based on rhel-90

This pull request includes:

[X] adequate testing for the new functionality or fixed issue
[ ] adequate documentation informing people about the change such as
[ ] submit a PR for the guides repository if this PR changed any behavior described there: https://www.osbuild.org/guides/

This PR contains the code for Fedora 34,35 and 36 that uses the v2 API. The process to migrate the code has been taking RHEL 9.0 as the baseline and then migrating the packages from v1 (fedora33). With the changes, new image types are now available for Fedora:

fedora-iot-commit for aarch64
fedora-iot-container for x86_64 and aarch64
fedora-iot-installer for x86_64 and aarch64

It also removes the old v1 code (distro/fedora33) and splits each fedora version into its own directory:

distro/fedora34
distro/fedora35
distro/fedora36

Notes:
In order to make it work I had to make some tweaks:

Unpack the cloud server tools package group and list instead the containing packages, removing the fedora-release-cloud from the default packages. This was required because it collided with another fedora-release-identity coming from the blueprint. The identity used is fedora-release-identity-basic.

Additionally, when running in x86_64, syslinux-extlinux is added  to the cloud server tools package set, as it is listed as part of the package, but not for aarch64:
x86_64:
[root@helios08 ~]# uname -i
x86_64
root@helios08 ~]# dnf group info "Cloud Server Tools"
Last metadata expiration check: 0:03:59 ago on Fri 18 Mar 2022 09:42:43 PM IST.
Group: Cloud Server Tools
 Description: Software for servers and system images that run in "cloud" environments
 Mandatory Packages:
   cloud-init
   cloud-utils-growpart
   dracut-config-generic
   grubby
   rsync
   syslinux-extlinux
   tar

aarch64:
[root@ampere-hr330a-01 ~]# uname -i
aarch64
[root@ampere-hr330a-01 ~]# dnf group info "cloud server tools"
Last metadata expiration check: 0:05:05 ago on Fri 18 Mar 2022 03:42:33 PM EDT.
Group: Cloud Server Tools
 Description: Software for servers and system images that run in "cloud" environments
 Mandatory Packages:
   cloud-init
   cloud-utils-growpart
   dracut-config-generic
   grubby
   rsync
   tar

Core package is listed as group dependency. I tried to unpack it and use the listed packages but then I found package dependency issues for x86_64 and aarch64, which doesn't happen when I use  the group:

For x86_64:
panic: Could not depsolve: DNF error occured: MarkingErrors: Error occurred when marking packages for installation: Problems in request:
missing packages: dracut-config-rescue, zram-generator-defaults

For aarch64:
panic: Could not depsolve: DNF error occured: MarkingErrors: Error occurred when marking packages for installation: Problems in request:
missing packages: dracut-config-rescue, firewalld, plymouth, zram-generator-defaults

I kept the file system as ext4, as well as the disk size for the image types defined in v1, but kept the partition structure from v2 since it is not a straight forward migration. It felt better to keep the v2 partition structure as it was already proven to work.  Let me know if you'd prefer to keep the partitions as close as v1 and I'll bring the changes the best I can.

@thozza @achilleas-k @teg please take a look at your discretion.

Tests for fedora-iot-container and fedora-iot-installer are ready to push here, it depends on https://github.com/osbuild/gitlab-ci-terraform/pull/60 to add large fedora 35 runner.

Thanks a lot @jordigilh .
I still need to do a full review, but at the first glance, I'm not sure that having a separate distro definition for each Fedora version is what we would like to have in composer. At least for now. I would prefer composer to have only a single Fedora distro definition. What do you think @achilleas-k, @gicmo, @teg ?
Are there currently any differences between the F34, F35 and F36 definitions?

podman bug bz#2065292 blocked Container test, and the rest of tests can't be run in this case.

Indeed, thanks a ton @jordigilh !!

I still need to do a full review, but at the first glance, I'm not sure that having a separate distro definition for each Fedora version is what we would like to have in composer. At least for now. I would prefer composer to have only a single Fedora distro definition. What do you think @achilleas-k, @gicmo, @teg ?

Yeah, I think a single pipeline would be the aim/goal. It might not always work, e.g. if something changes fundamentally and we don't want to have an explosion of conditionals for old craft, it might makes sense to duplicate the code, esp. if this would correspond with a RHEL branch.

Thanks a lot @jordigilh .
I still need to do a full review, but at the first glance, I'm not sure that having a separate distro definition for each Fedora version is what we would like to have in composer. At least for now. I would prefer composer to have only a single Fedora distro definition. What do you think @achilleas-k, @gicmo, @teg ?
Are there currently any differences between the F34, F35 and F36 definitions?

Only for F34 and that's a package group that would need to be removed, compared to F35 and F36. I split because I considered it easier to remove the directory when the version EOL'd, rather than have to dig into the code and remove the parts belonging to that version.
I'll go ahead and merge them into one directory, following the existing code.

Looks like there are a few F35 manifests that are failing in CI (extra/missing packages)

Thanks a LOT for your work on this. heart I know that it must have been a lot to juggle the move to V2 and trying to keep Fedora definitions close to what they were when using V1.
In general, this PR looks great and there are mostly cosmetic issues. I added "a few" comments... Sorry roll_eyes Here are some more general notes:
* The Distribution, Arch and ImageType are defined as interfaces. We are not really good at using interface methods, instead of unexported structure members, so copying any such code from `rhel-90` is definitely acceptable. However, for the newly added code, please try to use the interfaces if possible. I commented a few places like this, but feel free to ignore comments to parts which are exactly the same in `rhel-90` code. https://github.com/osbuild/osbuild-composer/blob/f1006c5adb9d8fd6cd09feaf739bfb6d0df7d35e/internal/distro/distro.go#L37-L127

* There are some discrepancies in the image configurations, which are probably just missed changes. e.g. the default timezone, default image size of `qcow2`, etc. I assume that you have been reviewing the differences in the image tests which you regenerated (the huge JSON files in `test/data/manifests`). I would like to point out, that although the manifests changed completely, the `"image-info"` part of the file is agnostic to the manifest format and is a reasonably good "source of truth" for the image configuration. So reviewing at least changes to that section for previously supported images is very valuable. After the review, I think that you actually reviewed it, at least partially.

* It is a good idea to keep most of the functions copied from `rhel-90` definition as identical to `rhel-90` as possible (exceptions apply). The reason is that we are continuously de-duplicating copies of various functions with the aim to eventually share most of the code across various distro definitions. Keeping the code as similar as possible will make it easier to de-duplicate it eventually.

Thanks for the lengthily review and feedback! I have been looking at the packages in the manifests mostly, the only thing I noticed so far is the change to the fedora-release-identity package due to conflict that I mentioned already elsewhere. With the change in the structure it is hard to review them, and even harder without knowing exactly what is supposed to be kept and what should be changed with the migration. So thanks again for pointing out about the image-info section, I will take another look and see what I need to change to match the old manifest :smile:

Thanks a LOT for your work on this. heart I know that it must have been a lot to juggle the move to V2 and trying to keep Fedora definitions close to what they were when using V1.
In general, this PR looks great and there are mostly cosmetic issues. I added "a few" comments... Sorry roll_eyes Here are some more general notes:
* The Distribution, Arch and ImageType are defined as interfaces. We are not really good at using interface methods, instead of unexported structure members, so copying any such code from `rhel-90` is definitely acceptable. However, for the newly added code, please try to use the interfaces if possible. I commented a few places like this, but feel free to ignore comments to parts which are exactly the same in `rhel-90` code. https://github.com/osbuild/osbuild-composer/blob/f1006c5adb9d8fd6cd09feaf739bfb6d0df7d35e/internal/distro/distro.go#L37-L127

* There are some discrepancies in the image configurations, which are probably just missed changes. e.g. the default timezone, default image size of `qcow2`, etc. I assume that you have been reviewing the differences in the image tests which you regenerated (the huge JSON files in `test/data/manifests`). I would like to point out, that although the manifests changed completely, the `"image-info"` part of the file is agnostic to the manifest format and is a reasonably good "source of truth" for the image configuration. So reviewing at least changes to that section for previously supported images is very valuable. After the review, I think that you actually reviewed it, at least partially.

* It is a good idea to keep most of the functions copied from `rhel-90` definition as identical to `rhel-90` as possible (exceptions apply). The reason is that we are continuously de-duplicating copies of various functions with the aim to eventually share most of the code across various distro definitions. Keeping the code as similar as possible will make it easier to de-duplicate it eventually.

Thanks for the lengthily review and feedback! I have been looking at the packages in the manifests mostly, the only thing I noticed so far is the change to the fedora-release-identity package due to conflict that I mentioned already elsewhere. With the change in the structure it is hard to review them, and even harder without knowing exactly what is supposed to be kept and what should be changed with the migration. So thanks again for pointing out about the image-info section, I will take another look and see what I need to change to match the old manifest smile

Update:
Combed the manifests and found a few discrepancies. I was able to clean most of them but a few eluded me:

The rpmglibc-minimal-langpack is now added to the dependencies, I suspect it has to do with the kernel, but I am not sure. I was not able to remove it.
fedora-release-identity-* is still not aligned with the proper package due to conflict. I'm a bit worried that this will cause other issues down the road as now some of the fields in the os-release struct will not match. Example for qcow2:
Expected:

      "PRETTY_NAME": "Fedora 34 (Cloud Edition)",
      "VARIANT": "Cloud Edition",
      "VARIANT_ID": "cloud",
      "VERSION": "34 (Cloud Edition)",

Actual:
      "PRETTY_NAME": "Fedora 34 (Thirty Four)",
      "VERSION": "34 (Thirty Four)",

Thanks a lot for the update!

Update: Combed the manifests and found a few discrepancies. I was able to clean most of them but a few eluded me:

The rpmglibc-minimal-langpack is now added to the dependencies, I suspect it has to do with the kernel, but I am not sure. I was not able to remove it.

This is not really a big issue IMO.

fedora-release-identity-* is still not aligned with the proper package due to conflict. I'm a bit worried that this will cause other issues down the road as now some of the fields in the os-release struct will not match. Example for qcow2:
Expected:

      "PRETTY_NAME": "Fedora 34 (Cloud Edition)",
      "VARIANT": "Cloud Edition",
      "VARIANT_ID": "cloud",
      "VERSION": "34 (Cloud Edition)",

Actual:
      "PRETTY_NAME": "Fedora 34 (Thirty Four)",
      "VERSION": "34 (Thirty Four)",

This is IMO a real issue. Some packages may be applying configuration during the installation conditionally based on the variant on which they are installed. @achilleas-k is currently working on refactoring of the dnf-json tool, which we use for dependency solving a DNF transaction. We also have couple of ideas how to reword the dependency solving to prevent the type of issues that you've encountered.
There are two options from my point of view:

Blocking this PR until we rework the depsolving in composer (can realistically take 1-2 weeks to be fully merged).
Get this version of Fedora definition in and change it once we rework depsolving. It would be good to add commented out lines of code which should be used once we fix depsolving, as part of this PR.

I'm OK with both approaches, since I know that you've already spent quite a lot of time on this PR and the issue would be present in composer for a limited time and won't affect our Fedora plans much. @gicmo any preference ^

Thanks a lot for the update!

Update: Combed the manifests and found a few discrepancies. I was able to clean most of them but a few eluded me:

The rpmglibc-minimal-langpack is now added to the dependencies, I suspect it has to do with the kernel, but I am not sure. I was not able to remove it.

This is not really a big issue IMO.

fedora-release-identity-* is still not aligned with the proper package due to conflict. I'm a bit worried that this will cause other issues down the road as now some of the fields in the os-release struct will not match. Example for qcow2:
Expected:

      "PRETTY_NAME": "Fedora 34 (Cloud Edition)",
      "VARIANT": "Cloud Edition",
      "VARIANT_ID": "cloud",
      "VERSION": "34 (Cloud Edition)",

Actual:
      "PRETTY_NAME": "Fedora 34 (Thirty Four)",
      "VERSION": "34 (Thirty Four)",

This is IMO a real issue. Some packages may be applying configuration during the installation conditionally based on the variant on which they are installed. @achilleas-k is currently working on refactoring of the dnf-json tool, which we use for dependency solving a DNF transaction. We also have couple of ideas how to reword the dependency solving to prevent the type of issues that you've encountered.
There are two options from my point of view:
1. Blocking this PR until we rework the depsolving in composer (can realistically take 1-2 weeks to be fully merged).

2. Get this version of Fedora definition in and change it once we rework depsolving. It would be good to add commented out lines of code which should be used once we fix depsolving, as part of this PR.

I'm OK with both approaches, since I know that you've already spent quite a lot of time on this PR and the issue would be present in composer for a limited time and won't affect our Fedora plans much. @gicmo any preference ^

Agreed. Personally, I'd go for 2 for now since I already had to make some changes in my code due to merge conflicts as work laded in the main branch while I was still working on my PR, but I will accept whatever decision is made :smile: .

Agreed. Personally, I'd go for 2 for now since I already had to make some changes in my code due to merge conflicts as work laded in the main branch while I was still working on my PR, but I will accept whatever decision is made 😄 .

Totally fine with me!

@jordigilh @achilleas-k Should I add test in this PR or in separate one? Thanks.

Let's test here

@achilleas-k I got error failed to create osbuild manifest: boot ISO image type \"fedora-iot-installer\" does not support blueprint customizations in fedora-iot-installer test. This PR does not include code change in PR #2375? Thanks.

Yes, it seems it doesn't.

Thanks @achilleas-k.
@jordigilh If you would like to add this feature in separate PR, I'll remove test commit in this PR. Thanks.

Thanks @achilleas-k. @jordigilh If you would like to add this feature in separate PR, I'll remove test commit in this PR. Thanks.

No worries, I'll add the feature in this PR. No need to remove your commit.

Thanks @achilleas-k. @jordigilh If you would like to add this feature in separate PR, I'll remove test commit in this PR. Thanks.

No worries, I'll add the feature in this PR. No need to remove your commit.

@henrywang PR updated with support to allow user and group customizations in iot-installer.

@jordigilh @achilleas-k @ondrejbudai All GCP tests are failed due to
ERROR: (gcloud.compute.instances.create) Could not fetch resource: - Quota 'IN_USE_ADDRESSES' exceeded.  Limit: 8.0 in region us-west1.

@achilleas-k @thozza added 2 new commits based on feedback that @thozza left earlier that I forgot to address. Once the tests are green I'll ping you both again to review the 2 new commits.

Manifest tests are failing, can someone take a look, please? :) I would love to see this merged.

Manifests and are GCP test:
Apr 23 10:11:52 ip-10-30-18-34.us-east-1.aws.redhat.com osbuild-worker[20281]: time="2022-04-23T10:11:52Z" level=info msg="[GCP] 🧹 Deleting uploaded image file: [MASKED]/image-733b6535d1732a718104754fea964193bab7a72a2d132a059290c757.tar.gz" jobId=d08c5774-3a11-4303-992f-2dbf91db601e
[3184](https://gitlab.com/redhat/services/products/image-builder/ci/osbuild-composer/-/jobs/2366562009#L3184)Apr 23 10:11:52 ip-10-30-18-34.us-east-1.aws.redhat.com osbuild-worker[20281]: time="2022-04-23T10:11:52Z" level=error msg="osbuild job failed: failed to insert image into GCE. HTTPErrorCode:400 HTTPErrorMsg:BAD REQUEST Errors:[code:\"PERMISSIONS_ERROR\"  message:\"Required 'read' permission for 'image-733b6535d1732a718104754fea964193bab7a72a2d132a059290c757.tar.gz'\"]" jobId=d08c5774-3a11-4303-992f-2dbf91db601e

@ondrejbudai the manifest tests are also failing for fedora. I forgot to run the tests to regenerate them once I changed the boot type to hybrid. I'm working on it.
Also, there is a change (https://github.com/osbuild/osbuild-composer/pull/2461#discussion_r835502340) that @thozza asked me to make a while ago that I need his feedback, but he's not available until this Friday. Can someone else help here?

Manifest tests are failing, can someone take a look, please? :) I would love to see this merged.

I'm on it.

Tests failing due to out capacity issues:
│ Error: Error requesting spot instances: InsufficientFreeAddressesInSubnet: There are not enough free addresses in subnet 'subnet-0e4e3490fbe18253b' to satisfy the requested number of instances.

@achilleas-k @thozza @ondrejbudai added two new commits that include an update to the osbuild commit ID in Schutzfile for fedora and the regenerated manifests for fedora-{34,35} on x86_64 and aarch64 due to the change in the rpm staged struct.

I think this is good to go now and I think this shouldn't conflict with any of the priority RHEL changes we need to merge right now, but I'm not 100% sure, so I'd like to hold off on this until https://github.com/osbuild/osbuild-composer/pull/2552 is merged.

Yeah, I'm sorry, we are currently fighting some fires that have a very high priority. I think we should be able to merge this on Monday though. Thanks for understanding.

Thanks @thozza for the in-depth review.  I missed all those details myself.
Since we need more bigger changes, I'd also like to ask for more detailed commit messages.  None of the commit messages have a description, only a subject, and sometimes the reason for the changes isn't clear from the one line summary.  It would be nice, especially on bigger commits or less obvious ones, to have a longer description in the commit messages for what's going on and why.

I propose to use values used for the same image types in rhel-90 distro definition. What do you think @gicmo / @achilleas-k ?

I think that makes sense, though I'm not an expert nor have I looked into what the official images do.

@achilleas-k @thozza I've changed the code as suggested. I've also reworded some of the commit messages to contain more detailed insight of the changes. Let me know if you want me to resolve the comments that I've addressed or you'd rather do that yourself and use them as checkpoints for the review.


Improve naming of theme properties throughout GUI code

I really wanted to introduce some sensible naming scheme for theme items by Godot 4, but ran out of time. So in this, and a couple follow-up PRs I'll try to clean up some names that are the most problematic for one reason or another. This PR also includes a second commit that fixes some random theming issues I've noticed while working on this. Put it in a dedicated commit so that it's clear which changes are not related to renames directly.
The list of changes:

ItemList:

bg -> panel
bg_focus -> focus

The name "bg" is used across several different controls, but is not consistent with other controls which call the main stylebox "panel". Calling it "bg" is a misnomer, as it's not just providing a background, but also adds offsets. Also we frown upon shortened names, and rename those occurrences for 4.0.
As for "bg_focus", here it is technically not too wrong, since it is drawn below the items (unlike Tree, where it is drawn above). However, the name doesn't fit the rest of the controls that have a dedicated focus style, and I feel like the order of drawing is an implementation detail that should not be reflected in the name. We may even want to introduce a theme constant to control whether it should be drawn above all or below, since there have been a few issues with that. So anyway, for consistency, this is now called "focus".

Tree:

bg -> panel
bg_focus -> focus

Same as ItemList, but also here focus is indeed drawn on top of everything, making it a completely wrong name.

ProgressBar:

bg -> background
fg -> fill

This should make the semantic meaning clearer, instead of referring to their draw order.

ScrollContainer:

bg -> panel

Same as previous entries, this is more consistent, not a shortened name, etc.

FileDialog:

*_icon_modulate -> *_icon_color
files_disabled -> file_disabled_color

Technically, colors assigned to icons are used for modulation, but we don't call them that in most theme properties, hence the rename. "files_disabled" is just weird and I think is an obvious one.

CheckButton:

on*/off* -> checked*/unchecked*

This makes the names consistent with CheckBox, and in general less awkward.

check_v_adjust -> check_v_offset

A couple of classes have this. We typically call adjustments like that offsets, hence the rename.

As for fixes, Panel had an unused style, RichTextLabel had an extra definition for the text outline which was never actually set, and SplitContainer had a regression in theme caching from a recent fix-up PR.

I've added the necessary conversion rules to the tool, but it will probably misbehave on some "bg" properties which were used elsewhere as well. The ones I've renamed are probably the most relevant cases, so it's better to include a rename, I think.
I also don't know if theme renames should be added to the C# list, as I don't see under what circumstances they would be found in C# code as regular camelCase properties. They should only be found in strings or in scene files, so the already include rules seem wrong to me, and I didn't add the new ones there.

Thanks!

Thank you personally! There were just too many inconsistencies and I'm glad it's being swiftly addressed in time!

There were just too many inconsistencies and I'm glad it's being swiftly addressed in time!

Well, some of it. I'll do another PR for buttons, but it may be controversial and it's not as bad currently as these properties were. There may be still some in GraphEdit and ColorPicker, as I didn't touch those to avoid conflicts with their refactoring PRs.


Configure bump_release plugin

This pull request is for adding the bump_release plugins only if at least one trigger is specified. It also adds a test case so we can test both with-triggers and without-triggers.

LGTM


Bump versions and update license file

$subject

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2832624419

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2832624419
Status: cancelled


traefik removes trailing slash, redirect loop with nginx and others behind

Do you want to request a feature or report a bug?
Bug
What did you do?
I have Traefik setup with consulCatalog as provider, Docker Registry 2 and other Nginx services all registered successfully.
Docker pull/push doesn't work, resulted in "Get /v2/: stopped after 10 redirects" error, tried to go to the same URL with browser resulted in redirect loop between "/v2" and "/v2/"
Go to any other site served by Nginx doesn't work if the URL doesn't end in an existed file. For example "/dir/index.html" works but "/dir" got redirected to "/dir/" by Nginx and again to "/dir" by Treafik.
What did you expect to see?
Traefik preserve and forward the exact request path.
What did you see instead?
Traefik remove trailing slash from path.
Output of traefik version: (What version of Traefik are you using?)

Version:      v1.7.0-rc3
Codename:     maroilles
Go version:   go1.10.3
Built:        2018-08-01_01:37:51PM
OS/Arch:      linux/amd64

What is your environment & configuration (arguments, toml, provider, platform, ...)?
defaultEntryPoints = ['https', 'http']

[entryPoints]
  [entryPoints.https]
  address = ':443'
    [entryPoints.https.tls]
    [entryPoints.https.proxyProtocol]
    trustedIPs = ['haproxy IP']
  [entryPoints.http]
  address = ':80'
    [entryPoints.http.redirect]
    entryPoint = 'https'

[api]
[ping]
[metrics]
  [metrics.prometheus]

[acme]
email =<EMAIL_ADDRESS>entryPoint = 'https'
onHostRule = true
storage = '/acme/storage'

Traefik docker container started with:
"--consul --consul.endpoint='consul:8500' --consul.prefix='production/traefik' --consul.watch=true --consulcatalog --consulcatalog.endpoint='consul:8500' --consulcatalog.exposedbydefault=false --consulcatalog.watch=true --api"

If applicable, please paste the log output in DEBUG level (--logLevel=DEBUG switch)
sorry I can't turn on DEBUG log on production server

sorry I didn't mention that this only affect traefik:1.7-alpine, my main production server on traefik:1.6-alpine doesn't have this bug.

this issue is more complicated than I thought, it just happened again while on traefik:1.6-alpine, I can't remember what exactly happened during the time it worked until it didn't.
but I resolved the issue by recreating the container with traefik:1.7-alpine (wouldn't work from the start) then immediately recreate the container with traefik:1.6-alpine.

Thanks for your interest in the project.
Could you provide us with a detailed reproducible use case?

Hello, it hasn't happened again in the last two days, so I haven't been able to narrow down the cause, will keep my eyes on this and update when I can.

Here's a repro for this issue:
Problem: Traefik redirect path with trailing slash to one that has no trailing slash with the following config:
[backends]
[backends.foo]
[backends.foo.servers.server1]
url = "http://localhost:8080"
weight = 1

[frontends]
[frontends.foo]
backend = "foo"
[frontends.foo.routes.match]
rule = "Path: /bar/{foo:.*}"   # this is what triggers the problem

e.g: When requesting for http://localhost/bar/a/ traefik responds with http 301 moved permanently to /bar/a.
Problem seem to be rooted in  routeRegexpGroup.setMatch. This diff shows the printf debug that I inserted to show the problem:
$ git diff -U7
diff --git vendor/github.com/containous/mux/regexp.go vendor/github.com/containous/mux/regexp.go
index da8114ca..64ea8b74 100644
--- vendor/github.com/containous/mux/regexp.go
+++ vendor/github.com/containous/mux/regexp.go
@@ -273,14 +273,17 @@ func (v *routeRegexpGroup) setMatch(req *http.Request, m *RouteMatch, r *Route)
                if len(matches) > 0 {
                        extractVars(path, matches, v.path.varsN, m.Vars)
                        // Check if we should redirect.
                        if v.path.strictSlash {
                                p1 := strings.HasSuffix(path, "/")
                                p2 := strings.HasSuffix(v.path.template, "/")
                                if p1 != p2 {
+                                       fmt.Printf("path          %s\n", path)
+                                       fmt.Printf("path.template %s\n", v.path.template)
+
                                        u, _ := url.Parse(req.URL.String())
                                        if p1 {
                                                u.Path = u.Path[:len(u.Path)-1]
                                        } else {
                                                u.Path += "/"
                                        }
                                        m.Handler = http.RedirectHandler(u.String(), 301)

Request to path with trailing slash is erroneously redirected to one without:
$ curl -v http://traefik:8181/bar/a/
*   Trying <IP_ADDRESS>...
* Connected to traefik (<IP_ADDRESS>) port 8181 (#0)
> GET /bar/a/ HTTP/1.1
> Host: traefik:8181
> User-Agent: curl/7.47.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Content-Type: text/html; charset=utf-8
< Location: /bar/a
< Date: Sat, 29 Sep 2018 15:34:05 GMT
< Content-Length: 41
<
Moved Permanently.

Here's the corresponding log from traefik:
$ src/github.com/containous/traefik/traefik -c traefik.toml --accesslog.                                                                 filePath=
path          /bar/a/
path.template /bar/{foo:.*}
<IP_ADDRESS> - - [29/Sep/2018:15:23:14 +0000] "GET /bar/a/ HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36            (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" 1 - - 0ms
<IP_ADDRESS> - - [29/Sep/2018:15:23:14 +0000] "GET /bar/a HTTP/1.1" 200 6 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36           (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" 2 "foo" "http://localhost:8080" 1ms

The check for strings.HasSuffix(..., "/") fails for path and path.template hence the erroneous redirect.


HELP

How do I use an if statement in dart to check whether if there is no data within the results? Please help thank you very much.

You can check numOfRows

I will add some more suitable method later


fix(RequestPasswordReset): fails when action called directly.

In the case where the request password reset action was called directly without the wrapping Strategy.action/4 the inner get_by... action is denied by the default policy.

Not even denied by the default policy, it raised an access error didn't it? Either way if thos solves it I am a happy panda


Migrate batch user creation to design system

Trello: https://trello.com/c/fShAozUE
This PR migrates the batch user upload/invite pages to the Design system. The two main commits in this branch are

Migrate BatchInvitationsController#new to design system
Migrate BatchInvitationPermissionsController#new to design system

but in order to make those two commits as small as I could there's several commits of tidying up and refactoring before each one.
A small change of behaviour introduced in this PR (other than the UX changes) is that we now exclude retired applications from the permission-selection list. We had a discussion about this last week, and it doesn't seem to make sense to give users permissions to retired applications, so this change makes the choice of applications a little easier.
There's a few things that I think could be improved and that I haven't tacked yet from our Figma concepts.

The breadcrumb trails could be more useful and allow stepping back to the invitation CSV upload from the permissions page
The CSV upload page is missing an info box on the latest iteration of the designs for resuming a partially completed batch
The permission check boxes for each application are presented as a straight list and do not have the filter indicated in the designs

I feel like it is worth landing this as it currently is and then having a round of enhancements/improvements. This is already quite a large change and it introduces some value in its current state.
Before

After

Rebasing/autosquashing on main

Thanks for the review @mike29736!


fix: handle blank level in microsite header

@chrisolsen - can you tag this PR with the issue# please?

:tada: This PR is included in version 3.4.0-alpha.64 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.58 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0-alpha.9 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.0.0-alpha.6 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 4.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


=fav broken on BSO

My fav'd items still show up on BSO but using the =fav command error's & it say's I'm at the favorite limit if I try to add another. My OSB does not have this issue.
ArtMatters#3174

user has been informed of the fix, issue can be closed

Should be fixed now.


Dependencies on destroy-all

Hi there,
I've been thinking quite a lot about this and I believe the order of dependency evaluation when running terragrunt destroy-all is wrong.
Let's say we have the following directory structure. My use case is kubernetes on AWS, but it doesn't really matter because it should replicate to any situation where I want to use apply-all/destroy-all in subdirectories.
|-| aws
|-|-| Module A
|-| kubernetes
|-|-| namespace_1
|-|-|-| Module B (depends on A)
|-|-|-| Module C (depends on B)
|-|-| namespace_2
|-|-|-| ...
When I am in the namespace_1 folder and run terragrunt apply-all, it will resolve dependencies and make sure that A is created first (or already), then B, then C. However, when running terragrunt destroy-all in the same directory, terragrunt prompts me whether to destroy A as well, which I find awkward because A does not depends on B or C.
The problem becomes even more striking when switching to module B's folder and running terragrunt destroy-all. This time, terragrunt wants to destroy B and A, but not C. Since module C depends on module B and I am going to destroy the latter one, I want to make sure C is properly destroyed as well.
In shorter terms, I believe the dependency graph should be inverted for destroy-all compared to apply-all.
I am aware that I am free to reject applying/destroying individual modules in the prompts and some of my problems are solved by using the --terragrunt-ignore-external-dependencies flag. This is more of a general issue.
Any thoughts?
Benjamin

I don't think it's a question of inverting the dependency graph, as the order that destroy happens in is correct. I believe it's more of a question of how Terragrunt discovers and prompts you about dependencies (e.g., see https://github.com/gruntwork-io/terragrunt/issues/272 and https://github.com/gruntwork-io/terragrunt/issues/524). Those needs improvement without a doubt, as the current behavior does not work properly in all circumstances.

Closing as duplicate of #272. If there is a different feature request here not captured by #272, please open a new issue. Thanks!


Fix cases.Title crash for concurrency

Regression of #19676 and #21814
Fix #23872
cases.Title is not thread-safe, it has internal state, so it can't be used as a global shared variable.

cases.Title is not thread-safe, it has internal state, so it can't be used as a global shared variable.

I feel like this should be a big fat warning in the docs, but alas, golang docs are just bad sometimes.


[DOCS] Rename AdditionalSettings.php to AdditionalConfiguration.php

The Problem/Issue/Bug:
The TYPO3 internal file AdditionalConfiguration.php was sometimes mistakenly referred as AdditionalSettings.php.
How this PR Solves The Problem:
Rename all occurrences of AdditionalSettings.php to AdditionalConfiguration.php.
Manual Testing Instructions:
It is only about documentation in comments and test data.
Automated Testing Overview:
It is only about documentation in comments and test data. No tests required.
Related Issue Link(s):
None.
Release/Deployment notes:
No.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Update ensure_byte_buf_has_allocated_buffer_member to include primary allocation

Update ensure_byte_buf_has_allocated_buffer_member to include primary allocation so that the code
struct aws_byte_buf *buf1 = malloc(sizeof(*buf1));

ensure_byte_buf_has_allocated_buffer_member(buf1);

can be replaced by
struct aws_byte_buf *buf1 = ensure_byte_buf_has_allocated_buffer_member(buf1);

Has this been added with the merged PR?

Hi @jmklix , which PR are you referring to? The issue comes from this comment and I believe it's still pending.


switch to store original filename in hdf5

suggested by @trautmane

dat2hdf5 ... -n stores the filename, -nn stores the given path, -nnn stores the absolute path.


Error when adding 'material.admin' to INSTALLED_APPS

I think that it is a bug.
Python 3.6
Django 1.11
The output:
Unhandled exception in thread started by <_pydev_bundle.pydev_monkey._NewThreadStartupWithTrace object at 0x7fc11b4b6400>
Traceback (most recent call last):
  File "/home/user/.pycharm/helpers/pydev/_pydev_bundle/pydev_monkey.py", line 589, in __call__
    return self.original_func(*self.args, **self.kwargs)
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 116, in inner_run
    autoreload.raise_last_exception()
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
    six.reraise(*_exception)
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/site-packages/django/apps/config.py", line 120, in create
    mod = import_module(mod_path)
  File "/home/user/.virtualenvs/pasodemo/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 941, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'material.admindjango'

You forgot  a comma at the end of a string

:man_facepalming: :see_no_evil: too many hours without sleep.
Can I delete this issue?


2055: TestAdapter: Test discovery fails on test projects that contain a large number of test files

Issue #
#2055
Bug
Test discovery fails for unit test projects with 100+ test files because the command line to execute node.js test discovery from C# exceeds the windows command line length limit of 8191 characters.
Fix
Updated the communication between the TestFramework class in C# and find_tests.js to provide the file path for a temp file that contains the list of test files in which to discover tests.  find_tests.js then reads the contents of the provided file to get the list of test files.  This prevents exceeding the command line length maximum for projects with a large number of test files.
Testing
Validated that test discovery works on large projects where it failed previously

@minestarks @amcasey This PR fixes an issue with the Test Adapter where tests discovery and execution is blocked if the tests path exceeds the command line limit.
Is this something we want to push for 15.9 ?

Thanks @lukedgr for fixing the issue.

Ported to 15.9. PR #2070


Broken permalinks when host not set

I'm setting up a hugo site for the first time, and the permalinks were wrong. I tracked down the error, but am not sure what the right fix is.
The problem occurs when a URL without a host is passed to URLPrep (helpers/url.go). The url gets passed to purell.NormalizeURLString, which parses out the host and passes it to idna.ToASCII. idna.ToASCII rejects the empty string, with error idna: invalid label "". On non-nil error, URLPrep returns its original input, which includes the trailing .html, so the permalink is to the ugly url, not the pretty one. The rest of hugo doesn't know this, so the link is broken.
I see several possible fixes. Possibly multiple or all of them should be done.

In URLPrep, instead of returning in on error, return x. Then the prettification gets kept. Also, print more context in the error message (the value of x, in, and err).
In URLPrep, detect missing host and log an error message explaining how/where to set it. (I still don't know how. The docs are voluminous. I just want to get my site working.)
In purell.NormalizeURLString, detect missing host and skip calling idna.ToASCII.
In idna.ToASCII, when passed "", return "".

Input requested on the correct direction here. Thanks.

That is one detailed issue report.
I think, however, it is better get a clear definition of the problem and a way to reproduce it before we talk about solving it, i.e:

What do you mean by "host is not set", something ala http://:8080/mysite?
And If so, I assume this comes from the baseURL setting. Why do you need a hostless setup?
Is your site source located online for others to look at?

To recap the baseURL logic:

The value set in config.toml (or similar) is the production value, i.e. the one used when you just run hugo
When you run hugo server that value is overridden to http://localhost:1313/ (and the server bound to <IP_ADDRESS>, which can overridden by `hugo server --baseURL=http://myhost:1313/ --bind=myhost``

Here's the top of my config.toml. It is not public yet, because I am still in the mess-around-with-it how-does-it-work stage.
languageCode = "en-us"
title = "Don't Panic"
baseURL = "https://commaok.xyz/"
theme = "hugo-cactus-theme"

I've done ~0 by way of configuration or work. Here are the hugo commands I've run:
$ go get github.com/spf13/hugo
$ cd $GOPATH/src/github.com/spf13/hugo/
$ hugo new site .
$ git clone https://github.com/digitalcraftsman/hugo-cactus-theme.git
$ hugo new post/new-entry.md
$ hugo server --buildDrafts

When I ran hugo server, I got a slew of warnings like:
ERROR 2017/01/24 22:07:14 Failed to normalize URL string (idna: invalid label ""). Returning in = "/", x = /
ERROR 2017/01/24 22:07:14 Failed to normalize URL string (idna: invalid label ""). Returning in = "/", x = /
ERROR 2017/01/24 22:07:14 Failed to normalize URL string (idna: invalid label ""). Returning in = "post", x = post
ERROR 2017/01/24 22:07:14 Failed to normalize URL string (idna: invalid label ""). Returning in = "post", x = post
ERROR 2017/01/24 22:07:14 Failed to normalize URL string (idna: invalid label ""). Returning in = "post/new-entry.html", x = post/compile-time-assertions

I then loaded localhost:1313 in the browser, clicked the link to my new-entry blog entry, and got a 404. The url bar showed a url ending in .html. Removing the trailing .html in the url bar loaded the correct page.

What do you mean by "host is not set", something ala http://:8080/mysite?

Sorry, I mean that the value passed to URLPrep has no host--it is something like "post/new-entry.html". I have no idea where that value came from.

And If so, I assume this comes from the baseURL setting. Why do you need a hostless setup?

I don't need a hostless setup (although I do think that everything should work with just relative URLs, in principle).
I have no idea what I'm doing--I came new to hugo, am trying to get things working, got a bunch of errors, confirmed that I had baseURL set, was overwhelmed by the docs, and went looking at the source to make sense of what was actually happening. And what I saw looked suspicious to me, thus the detailed bug report.

Those errors seem familiar, see:
https://discuss.gohugo.io/t/started-getting-failed-to-normalize-url-string-returning-in/5034
I notice you install via go get. We fill eventually track down that dependency (if it doesn't fix itself), but until then you will either have to:

Use a prebuild binary
Build with make (we use govendor, but does not check in the deps source. You will need govendor and then maybe do a govendor sync or something.

There are also some issues reported with the latest master that may or may not make you want to use a release version.

OK, the problem was https://go-review.googlesource.com/c/34770/ which caused https://github.com/golang/go/issues/18567 which notes that one of the problem is that x/net/idna newly rejects the empty string, which caused the problems I saw above. It has now been reverted, in https://github.com/golang/net/commit/f2499483f923065a842d38eb4c7f1927e6fc6e6d. So anyone else who encounters this issue can simply update their x/net repo.
I do think you might want to consider returning the partially cleaned url in case of error in URLPrep anyway.
I looked at the installation docs for instructions for installing from source (both readme and the giant docs site), and saw nothing, just prebuilt downloads, so I assumed go get was fine. You might want to add a line or three.


Spinner may not start/restart properly when stopped often

Consider the following basic program:
package main

import (
	"fmt"
	"time"

	"github.com/briandowns/spinner"
)

func main() {
	mySpinner := spinner.New(spinner.CharSets[11], 100 * time.Millisecond)
	mySpinner.Suffix = " Starting spinner"
	mySpinner.Start()
	time.Sleep(500 * time.Millisecond)

	i := 0
	for {
		mySpinner.Stop()
		fmt.Printf("This is message #%d\n", i)
		mySpinner.Restart()
		i += 1
		time.Sleep(500 * time.Millisecond)
	}
}

The expected behavior is that the fmt.Printf(...) lines are printed one by one, with just the spinner running below it. However, after some time (usually less than printing 100 lines in my limited testing), the spinner no longer appears below the output of invocations of fmt.Printf(...) and all that appears is just the lines being printed.
I've also tried wrapping the Restart() call like so:
for ok := true; ok; ok = !mySpinner.Active() {
    mySpinner.Restart()
}

but this doesn't seem to fix the issue - the execution proceeds without the spinner.

Thanks for filing this. What version are you using?

1.11.1 I believe (whatever import "github.com/briandowns/spinner" got me today), on darwin/amd64.

@alebcay After seeing some of the challenges with this project I've created an alternative spinner, and have been trying to see if mine suffers from any of the same limitations as this one. I wanted to reach out to see if you might be willing to try my spinner to see if you can reproduce this issue there, and if so raise an issue: https://github.com/theckman/yacspin


resolves #18

Coverage remained the same at 86.096% when pulling c7bdf80d4bd7eb5f1ecdbbb9fa75019ea23ab7cc on message_input_validation into 17c097f240c254bee2072899c8939e26cce1b47b on master.

Coverage remained the same at 86.096% when pulling fd12de69d5a9eceb2c72f3c5cb08aad799a24dc9 on message_input_validation into 17c097f240c254bee2072899c8939e26cce1b47b on master.


Fixed Redirect loop after successfully changing an expired password

per Issue #101
After successfully changing a password for because it was expired, a redirect loop happens because the warden session does not get updated correctly. In /app/controllers/devise/password_expired_controller.rb the warden session variable warden.session(scope)['password_expired'] is set to true. When the password is successfully updated, the warden session variable warden.session(scope)[:password_expired] is set to false - setting with the key as symbol :password_expired instead of the convention of the string 'password_expired'.
I've forked and committed the fix, will submit a pull request

I've come across this solution as well, although I'm not getting a redirect loop.

A separate outstanding pull request just merged in had the same modification.


Definitely file module 'ng' conflicts with angular definitely file module 'ng'

In api/angular-ui-router.d.ts, we declare module 'ng'. Which conflicts with another module which created by angular definitely type. Checkout  https://github.com/borisyankov/DefinitelyTyped/blob/master/angularjs/angular.d.ts
In definitely type repo, they have solved this problem in angular-ui-router definitely file. Checkout this https://github.com/borisyankov/DefinitelyTyped/blob/master/angular-ui-router/angular-ui-router.d.ts.
They have renamed module 'ng' with 'angular'.
Those changes in this repo will be very appreciated.

Okay, you're saying I should just copy the ts file from DefinitelyTyped?

@nateabele  Yes, I think. Same issue was raised for definitely type and they have changed it too over there. I think we should change it here also.

hi guys, do we have a resolution for this ? how can I fix this problem ?  thanks for the help

Why have this file at all?


helpers: introduce Stream()

Refs: https://github.com/Fishrock123/bob/issues/26
This turned out quite reasonable, I think. I might just like it. (It was pretty easy to implement, worked first try??)

Are you sure you want to implement a thenable ?
What about adding a method that returns a promise like stream.wait()

Ok, a little more complexity and this is now capable of this kind of thing:
  const streamSource = new Stream(fileSource, zlibTransform)
  const streamSink = new Stream(passThrough, fileSink)
  const stream = new Stream(streamSource, new PassThrough(), streamSink)

  await stream.start()

In which Streams are now also a partial passthough for conditional complexity reduction...
I also tried to get rid of bindSource and bindSink but it didn't go too well. Relatedly, I think that bindCb should move to start() (and or start should be thenable or return a promise).

@Raynos Is there anything wrong with it being thenable? I guess start could just return a promise, if it's bad...

PR for the start(exitCb) thing: https://github.com/Fishrock123/bob/pull/32

Is there anything wrong with it being thenable?

I'm not sure if it impacts debugging. For example, a thenable will not play well with unhandledRejections as it's invisible. However your implementation does throw the error if no-one is waiting on it with then()
The other issue with thenable is that someone might refactor
await stream

To
stream.catch(handleError)

And then be confused

I think that start() should maybe just take a callback and if none is provided return a promise. Should solve those concerns and make things simpler and more sensical.

:+1: for adding to start() thanks.

Simplified a lot.
Also stuff like Stream(Stream(Stream(...), ...), ...) now works.

landed as https://github.com/Fishrock123/bob/commit/5a460b4f1800f37f15ea78f857137bd6b276a88a

To be clear, await new Stream(streamSource, new PassThrough(), streamSink).start() doesn't quite work today. I've left the Promise returning out for simplicity for now, but the same is achievable by:
const stream = new Stream(streamSource, new PassThrough(), streamSink)
await util.promisify(stream.start.bind(stream))


Fails to infer the value at a given key for concrete types

TypeScript Version:  3.8.3

Search Terms:
Expected behavior:
TypeScript should infer the type of value when given the key for a concrete type.
Actual behavior:
TypeScript does not infer the type of value when given the key for a concrete type

Related Issues:
Code
type ValueOf<T> = T[keyof T];

type KeyFor<T, V> = ValueOf<{ [K in keyof T]: T[K] extends V ? K : never }>

type Thing = {
    a: number;
}

type Reader<T> = {
    get: <V>(key: KeyFor<T, V>) => V
}

// when dealing with a generic, TS correctly figures out that the return type is number
function getNumber<T>(reader: Reader<T>, numberKey: KeyFor<T, number>) {
    return reader.get(numberKey);
}

declare const thingReader: Reader<Thing>

// when dealing with the concrete type `Thing`, TS inference fails
function getNumberFromMyThing(numberKey: KeyFor<Thing, number>) {
    return thingReader.get(numberKey)
}

Output
"use strict";
function getNumber(store, numberKey) {
    return store.get(numberKey);
}
function getNumberFromMyThing(numberKey) {
    return thingReader.get(numberKey);
}

Compiler Options
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "strictBindCallApply": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "useDefineForClassFields": false,
    "alwaysStrict": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "downlevelIteration": false,
    "noEmitHelpers": false,
    "noLib": false,
    "noStrictGenericChecks": false,
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "esModuleInterop": true,
    "preserveConstEnums": false,
    "removeComments": false,
    "skipLibCheck": false,
    "checkJs": false,
    "allowJs": false,
    "declaration": true,
    "experimentalDecorators": false,
    "emitDecoratorMetadata": false,
    "target": "ES2017",
    "module": "ESNext"
  }
}

Playground Link: Provided

The problem here is that numberKey was immediately resolved to "a" (which is the right thing to do), so the type information that "a" really meant "All the keys whose values turned out to be numbers" was effectively lost at that point. It's the same as if you had written
    return thingReader.get("a" as const)

The higher-order example can't do this immediate resolution, so works as expected.
In general TS can't simultaneously do higher-order reasoning and immediate resolution at the same time, and this is a case where immediate resolution is general preferable.

I agree that resolving keys when possible is the correct behaviour. But it's not clear that TS can't simultaneously do higher-order reasoning and immediate resolution at the same time.
The type information "All the keys whose values turned out to be numbers" was not lost.
For example:
// will work as expected
function getNumberFromMyThing(numberKey: KeyFor<Thing, number>): number {
    return thingReader.get(numberKey)
}

getNumberFromMyThing("a") // number
getNumberFromMyThing("b") // error

In trying to workaround this limitation, I stumbled upon another oddity (Playground Link).
The following will work how I want:
type Value = boolean | number | string

type KeyFor<T, V extends Value> = ValueOf<{ [K in keyof T]: T[K] extends V ? K : never }>

type Thing = {
    a: number;
}

type Get<T> = {
    <K extends KeyFor<T, Value>>(key: K): T[K]
    <V extends Value>(key: KeyFor<T, V>): V
}

type Reader<T> = {
    get: Get<T>
}

function getNumber<T>(reader: Reader<T>, numberKey: KeyFor<T, number>) {
    return reader.get(numberKey);
}

declare const thingReader: Reader<Thing>

function getNumberFromMyThing(numberKey: KeyFor<Thing, number>) {
    return thingReader.get(numberKey)
}

But it seems that it should not.  It seems that the reader.get call in getNumber should match the first overload since KeyFor<T, number> should extend KeyFor<T, Value>, yet it does not. And because it does not, I can fallback to the previous signature, which works for the generic case. In the concrete case, the first overload matches, and I can use the resolved key to recover the type.
Interestingly, the following will match the first overload:
function getValue<T>(reader: Reader<T>, key:  KeyFor<T, Value>) {
    return reader.get(key);
}


[BUTTON IDEA]: Neumorphic Buttons

1. Name of button: Neumorphic Buttons
2. Description: Neumorphism or Soft UI is a combination of flat design and skeuomorphism. By adding intense drop/box shadows to elements.
3. Button Type (Animated, Special, etc...): Basic
4. Will you work on it?: Yes, I want to work on it just that this will be my second pull so help me out if needed.
5. Examples:

And one more thing please add the hacktoberfest-accepted tag after successful pull

Hi! I would like to contribute to this.

We already have neumorphic buttons on the website. Thank you though!


event not getting to start method

I am using current versions of Laravel & Inertia.js. I am also using IntertiaProgress 01.2 and looking to use it during a file upload with axios
The files all upload OK but the console shows:
app.js:33316 Uncaught (in promise) TypeError: Cannot read property 'defaultPrevented' of undefined
Tracing this back it points to here in the source of InertiaProgress:
start(event) {
   Promise.resolve().then(() => {
     if (event.defaultPrevented) {
       return
     }

     this.inProgress++
     clearTimeout(this.timeout)
     this.timeout = setTimeout(() => {
       Nprogress.set(0)
       Nprogress.start()
     }, this.delay)
   })
 },

If I console.log(event) I get undefined.
My upload() method:
upload(files) {
    let url = this.$route('library.upload');
    this.$root.showLoading = true;

    const uploadConfig = {
        timeout: 10000,
        onUploadProgress: function(progressEvent) {
            let percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total)
            InertiaProgress.progress(percentCompleted)
        }
    }

    InertiaProgress.start()

    axios.post(url, {
        files,
    },
        uploadConfig
    ).then(res => {
        let files = res.data.files
        if (files.length) {
            this.filesList = cloneDeep(files)
        }

        this.newFiles = []

        InertiaProgress.finish()
        this.$root.showLoading = false
    }).catch(err => {
        console.log(err)

        InertiaProgress.finish()
        this.$root.showLoading = false
    })

Did I miss something or is this an issue with the current version? Thanks.
PS: great work with Inertia.Js!

I've run into the same issue when you try to manually show the progress bar.
See line 109 in progress.js:
      if (event.defaultPrevented) {
If you call it as InertiaProgress.start({}) it won't trigger an error. However, I've found that InertiaProgress.finish() doesn't hide the progress bar.

So if you want to manually trigger the progress bar, I'd recommend just using nprogress directly, and not use this library.
The start, progress, and finish methods in this library are considered private, and are not meant to be called directly.

So if you want to manually trigger the progress bar, I'd recommend just using nprogress directly, and not use this library.
The start, progress, and finish methods in this library are considered private, and are not meant to be called directly.

Post installing this library, how then will the progress indicators gets called? Is it via inertiajs when clicking the inertia-link or are we meant to add some more code?

@maggz69 When you call InertiaProgress.init(), this library automatically registers event listeners for events that Inertia fires off when starting a visit, stopping a visit, and during file upload progress. This library uses that to display the loading bar.
Meaning, you need to do nothing...it's all handled for you. 👍

Thanks for this. I'm currently trying to troubleshoot this on my app because I have enabled the progress bar and whenever I click on the inertia-href, I can see the dom update the body with the nprogress class. I however don't see the progress bar on the page.
I haven't done anything fancy with intstalling the progress par, not event the config. Any advise on what the issue could be?

@maggz69 What version of inertiajs/inertia are you on?


Elm static template without model and decoder

Would it make sense to add an option to have a static template without a model and decoder?
I'm up for making a PR with the feature.

My use case would be to generate static templates with placeholder strings for the actual data, so a constant model in the Elm module is sufficient. This way I can e.g. easily share styles between h
a web app and transactional e-mails.

Published as 0.0.9

Awesome, thanks!

Ditto 🎉


Pb/update cypress again

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


show manual cron run's last time

Currently in the cron tasks, the 'Previous Time' only displays the previous time of when the cron library executes the function, but not any of the manual executions of the task.
Store the last run's time in memory in the Task struct and use that, when that time is later than time that the cron library has executed this task.
This ensures that if an instance admin manually starts a task, there's feedback that this task is/has been run, because the task might be run that quick, that the status icon already has been changed to an checkmark,
Tasks that are executed at startup now reflect this as well, as the time of the execution of that task on startup is now being shown as 'Previous Time'.
Added integration tests for the API part, which is easier to test because querying the HTML table of cron tasks is non-trivial.
Resolves https://codeberg.org/forgejo/forgejo/issues/949

(cherry picked from commit fd34fdac1408ece6b7d9fe6a76501ed9a45d06fa)

Test failure is related:
        api_admin_test.go:301:
            	Error Trace:	/home/runner/work/gitea/gitea/tests/integration/api_admin_test.go:301
            	Error:      	Not equal:
            	            	expected: "26"
            	            	actual  : "28"


fix duplicate definition with GCC 10

See https://github.com/ice/framework/pull/266

@remicollet There are failed Linux tests due to changed template. Do not consider macOS ones (they are almost all broken and I turn them off today).

Sorry, but I have no idea what you are talking about.
Please see the linked issue.
And provide a fix.

Fixed  in https://github.com/phalcon/zephir/pull/2087. Thank you for the patch.


Set-EntraDirSyncFeature should process multiple features at once

Describe the feature
A clear and concise description of this feature. Please describe what the feature does. You’ll be asked why it is important later.
Customer feedback:
It would also be nice if the cmdlet could process multiple features at one time i.e.. accept an array instead of a string for the feature parameter given that there are 19 features that can be activated - Tony Redmond
Set-EntraDirSyncFeature -Feature PasswordSync,PasswordWriteBack,UserWriteBack -Enabled:$true
Set-EntraDirSyncFeature: Cannot process argument transformation on parameter 'Feature'. Cannot convert value to type System.String.
How will this feature enhance your project and further the project’s overall goals? Who will benefit from this feature (i.e. all users; the project team)?
A concise statement about the importance of the feature and the impact it should have on your project.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

The Graph SDK cmdlet allows you to modify multiple settings at one time, so the Entra cmdlet should do so too
$SyncId = Get-MgDirectoryOnPremiseSynchronization | Select-Object -ExpandProperty Id
$Features = @{}
$Features.Add("softMatchOnUpnEnabled",$true)
$Features.Add("synchronizeUpnForManagedUsersEnabled",$true)
$Parameters = @{}
$Parameters.Add("features",$Features)
Update-MgDirectoryOnPremiseSynchronization -OnPremisesDirectorySynchronizationId $SyncId -BodyParameter $Parameters
has context menu


Adding a new README.md for QoS test

As this test is written for NCS5K DUT which is not fully OC Compliance and using GNMICli for configuration and telemetry. thats why OC path is not mention in README.md

Pull Request Functional Test Report for #3666 / d6ef4afd17945a7a6be1ebec36cc1a81e0945685
No tests identified for validation.
Help

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 55.268%

Totals

Change from base Build<PHONE_NUMBER>9:
0.0%

Covered Lines:
1983

Relevant Lines:
3588

💛  - Coveralls


Use the prometheusAddr variable

Variable hasn't been used by the Servicegraph Chart.
Fixes #7731

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
If they are not already assigned, you can assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Still valid PR

/assign @linsun

/lgtm

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mandarjog
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS [mandarjog]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


add support for CORS

Adds a --cors option to enable Cross-Origin Resource Sharing (CORS).
This may be out of scope for Orca since it can be handled at the HTTP layer by a downstream server but it was also very simple to add here.

Very cool. Two comments:

Would it better to enable CORS by default? Strictly-speaking this would be a breaking change, so the way you have it here is :+1: for v1. I'm interested in hearing your thoughts on this.
This probably deserves a test. An integration test might be nice, but I think an unit similar to this one would suffice.

@etpinard I have never seen CORS enabled by default in any HTTP service since it can be a security risk. I think I would leave it off in case we manage sensitive information in Orca down the road.

Beautiful.
:dancer:


When will release the video generator?

Thanks for your wonderful work!
I wonder know that when will release the video generator like video demo in Huggingface?

End of June!

End of June!

NOW IS THE TIME!!  orz

any news？

End of June!

any news？

End of June!

any news？

tonight !


Update PPP -- Tian You

Codecov Report
Base: 69.03% // Head: 69.03% // No change to project coverage :thumbsup:

Coverage data is based on head (097f568) compared to base (052d51b).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #150   +/-   ##
=========================================
  Coverage     69.03%   69.03%
  Complexity      608      608
=========================================
  Files           105      105
  Lines          2051     2051
  Branches        226      226
=========================================
  Hits           1416     1416
  Misses          561      561
  Partials         74       74

Impacted Files
Coverage Δ

...main/java/seedu/address/model/meeting/Meeting.java
84.26% <ø> (ø)

...va/seedu/address/model/util/DateTimeProcessor.java
62.50% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


ChatGPT Search Add-On does not work

System Details

OS: ArchLinux
Thorium Version 128.0.6613.189 (Official Build) stable

Problem
OpenAI released a Chrome Extension for the ChatGPT search today, but the extension doesn't work properly in Thorium and thus won't replace the Google search engine, which is the default for me.

I have the same problem on Google Chrome and Arch Linux, but also on Chromium and Void Linux. I think it's a Chromium problem on Linux.

@ooonea thanks for confirming. Alright, do you wanna contact the OpenAI support or should I do that?

We both think about it. More reporting is better than less reporting.

@RubenKelevra @ooonea Yeah, it's not Thorium specific. Use @SampeiNihira suggestion.

Hey @Alex313031, yeah I wasn't aware. I don't use Chrome.
Can you add ChatGPT as real search engine entry to the next version, so we can select it as replacement of Google?
Because the solution by @SampeiNihira adds it as site specific search engine, which means you have to add "GPT" in front of every search request.

The extension will now log an error: "'chrome_settings_overrides' is not allowed for specified platform."
With the following details:
{
   "chrome_settings_overrides": {
      "search_provider": {
         "encoding": "UTF-8",
         "favicon_url": "https://chatgpt.com/faviconDark.ico",
         "is_default": true,
         "keyword": "chatgpt.com",
         "name": "ChatGPT",
         "search_url": "https://chatgpt.com/?q={searchTerms}&hints=search&ref=ext"
      }
   },
   "content_scripts": [ {
      "js": [ "content_script.js" ],
      "matches": [ "https://*.chatgpt.com/*" ],
      "run_at": "document_start"
   } ],
   "description": "Change default search engine to ChatGPT search.",
   "differential_fingerprint": "1.95bb61ea1d4c2fd4f96fa02a3ea6943c7b9ae0f935b055dc1cd9884d8868e4f2",
   "icons": {
      "128": "images/icon128.png",
      "16": "images/icon16.png",
      "19": "images/icon19.png",
      "38": "images/icon38.png",
      "48": "images/icon48.png"
   },
   "key": "xxx",
   "manifest_version": 3,
   "name": "ChatGPT search",
   "update_url": "https://clients2.google.com/service/update2/crx",
   "version": "1.11"
}


Hard to debug log

Current logging system is very unhelpful. For example, grader may throw Err(InvalidIO) with out even telling which file it were trying operate on.

Another real example:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: NotPresent', interface/src/main.rs:102:43

agree


Travis to check service status

It would be good to see if there are any services that are not running ok:
....
test passed: Ambari:CheckStaus::HDFS
...
Test failed: Ambar:CheckStatus::BIGR
....

Are you thinking to do a full service check or just service is up and has not alerts.

Good question.  What do you think?

Minimum should check for each service:

is started
has no critical alert

Doing a full service check or more would be more costly.

Cool. IIRC travis is limited to 40 minutes so this makes sense.

ok so i can implement this as simple checkService in the top build.gradle for now.

Added code to create list of service with state and alert ... see commit 5e423c1


创空间移交后，原创空间创建者仍然收到仓库动态各种站内信轰炸

消息提示也没有个设置位置
希望逻辑改为仅当前创空间所有者才能收到站内信提示，即移交仓库的时候通知消息权限也一并移交
Thanks for your error report and we appreciate it a lot.
Checklist

I have searched the tutorial on modelscope  doc-site
I have searched related issues but cannot get the expected help.
The bug has not been fixed in the latest version.

Describe the bug
A clear and concise description of what the bug is.
To Reproduce

What command or script did you run?

A placeholder for the command.

Did you make any modifications on the code or config? Did you understand what you have modified?
What dataset did you use?

Your Environments (required)

OS: uname -a
CPU: lscpu
Commit id (e.g. a3ffc7d8)
You may add addition that may be helpful for locating the problem, such as

How you installed PyTorch [e.g., pip, conda, source]
Other environment variables that may be related (such as $PATH, $LD_LIBRARY_PATH, $PYTHONPATH, etc.)

Please @ corresponding people according to your problem:
Model related:  @tastelikefeet
Model hub related: @liuyhwangyh @tastelikefeet @wangxingjun778
Dataset releated: @wangxingjun778
Finetune related: @tastelikefeet  @Jintao-Huang
Pipeline related: @tastelikefeet @wangxingjun778
Contribute your model: @yingdachen

可能是由于创空间缺少“权限移交”功能造成的？模型和数据集都不仅有“转移”还有“权限移交“功能，只有创空间只能转移不能移交权限


Provide the ability for an extension to conditionally provide snippets that render the same as package.json-provided snippets

I'd like to be able to conditionally provide snippets based on some knowledge of the project type a user has opened with my extension. I previously opened #26943 requested when support for snippets but it was suggested that I just change to a CompletionItemProvider instead.
I've implemented a provider that reads the standard snippet JSON format in an attempt to provide the exact same behaviour as when the snippets were contributed via package.json:
export class SnippetCompletionItemProvider implements CompletionItemProvider {
	private completions = new CompletionList();

	constructor(filename: string) {
		const snippets = require(path.join("../../..", filename));
		for (const snippetType of Object.keys(snippets)) {
			for (const snippetName of Object.keys(snippets[snippetType])) {
				const snippet = snippets[snippetType][snippetName];
				const completionItem = new CompletionItem(snippetName, CompletionItemKind.Snippet);
				completionItem.filterText = snippet.prefix;
				completionItem.insertText = new SnippetString(
					isArray(snippet.body)
						? snippet.body.join("\n")
						: snippet.body,
				);
				completionItem.detail = snippet.description;
				completionItem.documentation = new MarkdownString().appendCodeblock(completionItem.insertText.value);
				this.completions.items.push(completionItem);
			}
		}
	}

	public provideCompletionItems(
		document: TextDocument, position: Position, token: CancellationToken,
	): CompletionList {
		return this.completions;
	}
}

This appears to work fine and renders snippets that look just like the built-in ones, with one exception - the placeholders are hidden in the built-in snippets but visible in mine:

I've been searching through the code and believe this is because of _rewriteBogousVariables from here.
I could copy that code into my completion provider, but it means I have to maintain it if there are any changes/bugfixes in the future. I think it would be better if Code exposed a way for us to be able to provide snippets that render the same as Code's but that we can be added conditionally. (Alternatively, is it possible #26943 could be re-considered? I think it would be a nicer solution!).

On reflection I've decided to leave this as-is. It means the user may see things like typedef ${1:Type} ${2:Name}(${3:params}); but that's probably better than seeing just typedef and then all these placeholders appearing when they complete.
I'll revisit if you add a better way to handle it.

Ok. Closing until you'll change your mind.


Feature/headers

Add headers property to ILEObject.

Only RPGLE is supported - though we could add CL quite easily
It is not recursive. It will only find the top level includes.

Eventually we will want to support recursive, but this is a huge improvement


Frame filtering

Hi all
I started to work with arduino+DW1000
I tryed examples, researshed DW1000.cpp library, and implemented few simple ideas.
Now I want to try frame filtering. I read user manual, ASP10 and ASP13 by Decawave.
Try to form MAC frame for frame filtering.
I use next configure on tranciever part.
`#define PAN_ID 0x5555
byte MAC[16] ={0x84, 0x22, 0x84, 0xAA, 0xAA, 0x88, 0x88, 0xAA, 0xAA, 0x44, 0x44, 0x01, 0x00, 0x00};
uint16_t Short_AD = 0x2222;
void setup() {
DW1000.newConfiguration();
DW1000.setDefaults();
DW1000.setDeviceAddress(PAN_ID);
DW1000.setNetworkId(Short_AD);
DW1000.enableMode(DW1000.MODE_LONGDATA_RANGE_LOWPOWER);
DW1000.commitConfiguration();
transmitter();
}`
and transmit my MAC array using DW1000.setData(MAC); function
On the reciever part I use next config:
#define PAN_ID = 0x5555;
uint16_t Short_AD = 0x1111;
void setup() {
DW1000.newConfiguration();
DW1000.setDefaults();
DW1000.setNetworkId(PAN_ID);
DW1000.setDeviceAddress(Short_AD);
DW1000.setFrameFilter(true);
}
for recieving use function DW1000.getData();
And reciever don't understand messages by tranciever
I don't understand what wrong with my code maybe I forgot something or something else
In mac header I point: Data frame and use PAN ID compression field bits. I don't use FCS bits and last 2 bits equal zero
Have you simplest example with frame filtering?
P.s It is part of code other configurations as in the example
Thank you for attention!)

@Diman142 Please use code highlighting with markdown https://guides.github.com/features/mastering-markdown/
Look at the old code https://github.com/thotro/arduino-dw1000/blob/master/src/DW1000.cpp#L1177 .
I disabled it by default because it caused some issues.
Best.

Ok I will use markdown I am sorry for first post.
But I in my code I Enabled frame filtering manually
DW1000.setFrameFilter(true);
I think that was enough because i do it after
setDefaults();
Or you want to tell me about tranciever part.
Shold I enabling filtering on tranciever part?

Now I try to use DW1000Mac.cpp library
Is this library work?

From DW1000Mac.cpp:

@todo everything, this class is only a prototype

So depends on what you need. It is limited, it's used by dw1000ranging.h.

I need to implement frame filtering and I want to do it using
DW1000Mac::generateShortMACFrame
In my tranciever and
DW1000Mac::decodeShortMACFrame
in my reciever
Does this class work?


GenericLocations lose their attributes

When a design with GenericLocations is uploaded, they lose their attributes.

Fixed.  Problems with load and serialize.


getDerivedStateFromProps for asynchronous setState

I am inquiring about what is hopefully an undiscussed use case related to the componentWillReceiveProps -> getDerivedStateFromProps changes. I read through the blog post and threads like https://github.com/reactjs/reactjs.org/issues/721.
The use case is a button which says either "Save", "Saving", or "Saved!". The idea is that the button component is shared across apps, which pass a prop to the button indicating whether the app is currently saving. The button component's purpose is to encapsulate the logic that temporarily shows the text "Saved!", when saving finishes.
This can be handled with componentWillReceiveProps pretty simply: https://jsfiddle.net/Luktwrdm/1137/ - if the status prop changes in a certain way, show the "Saved!" text, and then use a timeout to later change itself back to a ready state ("Save").
Without componentWillReceiveProps, this case seems to require both getDerivedStateFromProps and componentDidUpdate, and an extra key in the state: https://jsfiddle.net/Luktwrdm/1138/ - You can't do it all in didUpdate because otherwise the component would flash with the incorrect copy for a split second. And you can't do it all in getDerivedStateFromProps because it's static.
The purpose of this issue is to clarify - is this (the second fiddle) now the best way to handle such a situation? Am I missing some higher level structural way to avoid this complexity?
I can imagine other use cases, like notifications, where it might make sense for a component to react to its props changing by making a temporary state change. Is that an anti-pattern? Or something worth covering in the docs?

I think your first implementation is subtly broken because if status changes like:

STATUS_LOADING
STATUS_READY
wait small amount (e.g. 10ms)
STATUS_LOADING
STATUS_READY

then the second READY change will set done to true but the callback from the first READY change will immediately flip it back to false.
This isn't related to your question but it's to demonstrate that the logic you seem to consider straightforward in the "before" example is a bit wrong.
Regarding your specific question:

You can't do it all in didUpdate because otherwise the component would flash with the incorrect copy for a split second

What makes you think so? I think componentDidUpdate alone should work just fine:
https://jsfiddle.net/k4bwe6oy/5/
	constructor(props) {
  	super(props);

    this.state = { done: false, prevStatus: this.props.status }
    this.doneTimeout = null;
  }

  componentDidUpdate(prevProps) {
  	if (prevProps.status === STATUS_LOADING && this.props.status === STATUS_READY) {
   		clearTimeout(this.doneTimeout);
    	this.setState({ done: true });
      this.doneTimeout = setTimeout(() => {
        this.setState({ done: false });
      }, 1000);
    }
  }

  componentWillUnmount() {
	  clearTimeout(this.doneTimeout);
  }

(I also fixed the first issue by keeping track of the timeout.)
Perhaps you think that setState in componentDidUpdate is too late? The documentation explicitly says:

It would also cause an extra re-rendering which, while not visible to the user, can affect the component performance.

In this case there's no performance concern (the component tree is very shallow). The user will not see the intermediate state because setState in componentDidUpdate — just like in componentDidMount — is processed immediately and before React returns control to the browser.

Both points make total sense. You are right, I thought that setState() in componentDidUpdate caused an intermediate state. Sorry, I should have tested before posting, just have had the wrong idea in my head about that for a while now.
Really appreciate the response.

No problem!


Publish to PyPi

Could you publish this to PyPi to make it more accessible from PIP, etc?
Thanks.

Bitbucket: https://bitbucket.org/mjs7231/django-dbbackup/issue/2
Originally reported by: Mridang Agarwalla
Originally created at: 2012-03-11T17:40:48.987

All set. - http://pypi.python.org/pypi/django-dbbackup/1.2

Original comment by: Michael Shepanski

(Reply via mjs...@gmail.com):
You can install items in BitBucket through PIP.  But you're right. I should
read the PyPi docs and finally get it in there. I'll do that this week or
next. ;)

Original comment by: Michael Shepanski


Right shift/control/etc. get reported as left buttons on MacOS

From a different issue:
When recording keystrokes via dq, when encountering these keys (SHIFT、OPTION、CONTROL), it will be recorded as 'left' regardless of whether the press is 'left' or 'right'.
This only appears to be happening on MacOS. We'll need to figure out if this is a device_query or dependency issue.

I've done some testing with the underlying readkey library, it seems to be a macOS limitation within CGEventSourceKeyState. It might be worth trying to find another underlying library for macOS.


Fix redeclaration of streams in StreamingDataWidthConverter_hls

Closes #1106

Good catch, @iksnagreb ! Thanks for the PR, will be merged soon.


Getting Troubles when installing tf.2.10_gpu with anaconda virtual env.

Click to expand!
Issue Type
Build/Install
Source
source
Tensorflow Version
v2.10.0
Custom Code
Yes
OS Platform and Distribution
Windows 10
Mobile device
No response
Python version
3.9.13
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
<IP_ADDRESS>
GPU model and memory
NVIDIA GeForce RTX 2080 Ti
Current Behaviour?
Thanks to your attention!
I'm trying to install tf2.10_gpu using anaconda env.
The following packages have been successfully installed in anaconda env.:

tensorflow-gpu -->2.10.0
cuda-nvcc -->11.8.89
cudatoolkit -->11.3.1
cudnn --><IP_ADDRESS>

Under activated env., I have tested:
tf.test.is_built_with_cuda() --> True,
tf.test.is_built_with_gpu_support() --> True

But when training model with GPU, it seems that GPU does not work:
"This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags."

Under windows OS, I guess the problems lie in the wrong environment variable establishment on cuda. Or any other things? So how to add environment variable about cuda in virtual env under windows OS system? What should be linked as environment variable?

Deeply appreciated to your help!

Standalone code to reproduce the issue
None

Relevant log output
No response

Test this (from the official doc)
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
python3 -m pip install tensorflow
# Verify install:
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

Test this (from the official doc)
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
python3 -m pip install tensorflow
# Verify install:
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

Thank you for your reply!
It that means that the version of cudatoolkit and cudnn mismatch with tensorflow?

What do you mean?

Hi @MuellerJY ,
Please confirm whether you have also installed NVIDIA GPU driver ? Please refer the documentation attached here.
Also for tested configurations of CUDA,cuDNN please refer documentation here for Build/install.
Thankyou !

What do you mean?

Hi @MuellerJY ,
Please confirm whether you have also installed NVIDIA GPU driver ? Please refer the documentation attached here. Also for tested configurations of CUDA,cuDNN please refer documentation here for Build/install.
Thankyou !

Test this (from the official doc)
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
python3 -m pip install tensorflow
# Verify install:
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

I've tried. But new bugs occurs.
GPU can be successfully loaded but ptaxs

Hi @MuellerJY ,
Please confirm whether you have also installed NVIDIA GPU driver ? Please refer the documentation attached here. Also for tested configurations of CUDA,cuDNN please refer documentation here for Build/install.
Thankyou !

Thank you. I'll check!

What do you mean?

Sorry to interrupt you again.
I've met a new bug :(
When using:
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
python3 -m pip install tensorflow
GPU is now workable during model training, but here remains:
 Relying on driver to perform ptx compilation.
 Modify $PATH to customize ptxas location.
Presenting that the model is trained by GPU on first epoch and gradually turns to GPU.
Unfortunately, no ptxas.exe can be found in my activated env. under anaconda fold.
I found that it is recommended by using:
conda install -c nvidia cuda-nvcc
But it still not works.

Should specific version of cuda-nvcc be assigned when using conda install -c nvidia cuda-nvcc ? How to determine the version of cuda-nvcc to be installed
Is this problem due to the fact that I used a conda for cudnn and cudatoolkit installation?

Thank you so much.

Hi @MuellerJY ,
Please confirm whether you have also installed NVIDIA GPU driver ? Please refer the documentation attached here. Also for tested configurations of CUDA,cuDNN please refer documentation here for Build/install.
Thankyou !

Thank you. Please take a look at my new problem at your convenient.

Can you check with conda install -c conda-forge cudatoolkit-dev?


v1.5 not available on hassio

hello 1.5 is released can you please make it available on hassio?

i suspect this is the 1.5 work here: https://github.com/danielwelch/hassio-zigbee2mqtt/pull/144#issue-268566002

@brent0np Actually the new version of the hassio addon will be 1.5, but that has nothing to do with the version of zigbee2mqtt. It's just a coincidence, that they both have version 1.5.
Maybe @danielwelch will include version 1.5 of zigbee2mqtt in version 1.5 of the hassio addon, but we'll see

This is incorrect, the add-on versioning is pinned to zigbee2mqtt versioning. It’s explained in the README. Version 1.5 will contain zigbee2mqtt 1.5, and the work from PR #144 (which contains breaking changes!). Sorry, been a busy week for me, but I should be able to have the new version up either later this week or this weekend.
On Jul 16, 2019, 5:29 AM -0500, Florian Gareis<EMAIL_ADDRESS>wrote:

@brent0np Actually the new version of the hassio addon will be 1.5, but that has nothing to do with the version of zigbee2mqtt. It's just a coincidence, that they both have version 1.5.
Maybe @danielwelch will include version 1.5 of zigbee2mqtt in version 1.5 of the hassio addon, but we'll see
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@danielwelch thanks a lot for your effort ! i will wait for your update ! thanks a lot

Hi,
1.5.1 version is available and fixes 2 bugs present in 1.5.0

any news @danielwelch ?
thanks


Problem with dispatching

I call push in saga
yield put(push('/'));
And I get the error herer
https://github.com/supasate/connected-react-router/blob/master/src/selectors.js#L13
The same problem with Link to
Contains: store.render

In redux tool

Duplicate of #429
Just downgrade history to v4 for now:)

Thanks, It's work!


Flexo cannot save and serve files on linux 5.10.3 and OpenZFS 2.0.0

Hi,
maybe this is more of an information...
I am using flexo with (zfs) linux 5.10.3 and OpenZFS 2.0.0, coming from 5.9.14 everything was working.
From my research, I found it is due to a change in the kernel and how zfs does (or not) implement sendfile (or some sort of directIO)...
(had the sendfile issue with nginx yesterday and had to remove it to get it up and running)
here is an link to the issue https://github.com/openzfs/zfs/issues/1156 and another PR working on directIO https://github.com/openzfs/zfs/pull/10018
So my guess is, that flexo does some kind of "directIO" and this is failing now (with my setup).
However, I can confirm, it is still running with 5.10.3 and ext4 ...
So the problem is likely to be outside of flexo, I assume... but know you know about it ;-)
Thanks

The issue was solved (refs https://github.com/openzfs/zfs/pull/11378 and https://github.com/openzfs/zfs/pull/11351) and is available in the latest release OpenZFS 2.0.1 (https://github.com/openzfs/zfs/releases/tag/zfs-2.0.1).
As of today linux 5.10.5 and zfs 2.0.1 is available and flexo (and nginx) are working as before.

The issue was solved (refs https://github.com/openzfs/zfs/pull/11378 and https://github.com/openzfs/zfs/pull/11351) and is available in the latest release OpenZFS 2.0.1 (https://github.com/openzfs/zfs/releases/tag/zfs-2.0.1).
As of today linux 5.10.5 and zfs 2.0.1 is available and flexo (and nginx) are working as before.

Good to hear, thanks for reporting this.

Good to hear, thanks for reporting this.


Faraday::ConnectionFailed: execution expired when run query with long time idle.

Hi. All.
I'm using presto-client-ruby for my application to run query and get the results from the presto server. It works appropriately when I run a query right before create a new presto client. However, if I run a query using presto ruby client with long time interval from initialization of the client, it raises Faraday::ConnectionFailed: execution expired error.
Here is my code for initializing the presto ruby client:
client = ::Presto::Client.new(
      server: CONFIG[:presto_server],
      catalog: CONFIG[:presto_catalog],
      schema: CONFIG[:presto_schema],
      user: CONFIG[:presto_user],
      time_zone: CONFIG[:presto_timezone] || "Asia/Seoul",
      language: "English",
      properties: {},
      http_debug: Rails.env == "development" ? true : false,
    )

Did I miss something or do I need to initialize a client right before running a query?

Can you paste full stacktrace and the version of ruby and OS you used?

Yes. The ruby version is 2.2.2 and OS is Linux/Unix, CentOS 6 | 64-bit Amazon Machine Image (AMI).
Here is the full stack trace:
Faraday::ConnectionFailed
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:879:in `initialize'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:879:in `open'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:879:in `block in connect'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/timeout.rb:89:in `block in timeout'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/timeout.rb:99:in `call'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/timeout.rb:99:in `timeout'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:878:in `connect'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:863:in `do_start'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:852:in `start'
/opt/rubies/ruby-2.2.2/lib/ruby/2.2.0/net/http.rb:1375:in `request'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/rest_client-1.7.3/lib/restclient/net_http_ext.rb:51:in `request'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/faraday-0.9.1/lib/faraday/adapter/net_http.rb:82:in `perform_request'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/faraday-0.9.1/lib/faraday/adapter/net_http.rb:40:in `block in call'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/faraday-0.9.1/lib/faraday/adapter/net_http.rb:87:in `with_net_http_connection'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/faraday-0.9.1/lib/faraday/adapter/net_http.rb:32:in `call'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/faraday-0.9.1/lib/faraday/rack_builder.rb:139:in `build_response'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/faraday-0.9.1/lib/faraday/connection.rb:377:in `run_request'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/faraday-0.9.1/lib/faraday/connection.rb:177:in `post'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/presto-client-0.4.8/lib/presto/client/statement_client.rb:61:in `post_query_request!'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/presto-client-0.4.8/lib/presto/client/statement_client.rb:50:in `initialize'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/presto-client-0.4.8/lib/presto/client/query.rb:36:in `new'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/presto-client-0.4.8/lib/presto/client/query.rb:36:in `start'
/home/mywork/mywork/vendor/bundle/ruby/2.2.0/gems/presto-client-0.4.8/lib/presto/client/client.rb:40:in `run'
/home/mywork/mywork/app/models/calculator.rb:294:in `calculate_by_presto'

I see. http.rb:879 is this:
      s = Timeout.timeout(@open_timeout, Net::OpenTimeout) {
        TCPSocket.open(conn_address, conn_port, @local_host, @local_port)
      }

The error means opening a socket took too long time. Socket is not reused.
Does the problem happen consistently if the time interval exceeds certain threshold? Or does it occasionally succeed even if client sleeps for very long time after initialization?
If it's not consistent, I think kernel parameters need to be reviewed both on client and servers. Some parameters are important to establish TCP connections reliably under high load environment.
This is an article about TCP kernel parameters: http://docs.fluentd.org/articles/before-install#optimize-network-kernel-parameters

Do you have metrics about number of TCP connection established on presto-coordinator server? netstat -lant shows it. If there're thousands connections, listen backlog could be filled up (and coordinator can't accept new sockets).

Okay~ I'll take a look at both server side and client side again especially for kernel params.
I'll close this issue and will reopen if I could find out a point to be fixed in client side. :)
Thank you very much for your help. :+1:


Remove unsupported schema properties

What does this PR do?

uniqueItems for constrained lists are not currently supported in datamodel-code-generator: https://github.com/koxudaxi/datamodel-code-generator/issues/719

condict and minProperties are not currently supported in pydantic: https://github.com/samuelcolvin/pydantic/issues/1277#issuecomment-939633650. Suggestion is to use validators.

Motivation

Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached

Should we remove until supported?

Yeah, I can remove them and add a task for the backlog.


Latest update does not have latest firefox 129

Version
24.01.01
What desktop?
Official MATE
Explain the issue and what happens
There was an update today and there was no any update to Firefox
Explain how to reproduce the bug?
open ff, help, about.
What is the Expected behavior (if applicable)
it should show 129
Additional context (if applicable)
lets hope that other sw is updated

The last update was to upgrade to PKGBASE. A build is currently underway that should bring Firefox to the latest version before the end of the weekend.
I am closing this since it is in progress.


Add "export to Excel" button

Add a function that exports all finds to an Excel sheet. It would need:

Date Hunted
Coin Type
Year
Mint Mark
Variety
Error
Grade
Country

Done!


Cache dev shell in FlakeHub Cache

@lucperkins https://github.com/DeterminateSystems/magic-nix-cache/actions/runs/8482320311/job/23241344769 seems like this is causing CI to fail on main


Fix animation sampling making way too many keys

It was generating fps keys per frame :S
Adding small sample file:
anim_sampling.zip

Shouldn't that be times the frame step *= export_settings['gltf_frame_step'] + check for zero value?

@capnm not sure I follow, step is the number of frames it will advance between sampling points. It is a bit misleading that the 'frame' variable in this code is called time, maybe should rename it to frame

Sorry, you're right, LGTM :-) It was more broken than I thought.


Add unspecified scoring system

This could be used where the scale of scoring system is unspecified and do not correspond to a numeric representation. This must be used as the last resort.
Required in https://github.com/nexB/vulnerablecode/pull/397#discussion_r603774595 and https://github.com/nexB/vulnerablecode/pull/393#discussion_r603964317
Signed-off-by: Hritik Vijay<EMAIL_ADDRESS>

@sbs2001 done