use  ternary operators in

the text will be blood red.

Thanks, let me take a look.

Fixed in 0.1.1, more context see https://github.com/octref/vetur/issues/3#issuecomment-267816816


Flutter web on mobile browser when Desktop Site is on

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Enable web-support
Find IP address of your machine.
Run flutter run -d web-server --web-port 8080 --web-hostname <IP_ADDRESS> --web-renderer canvaskit
Open android emulator or your android physical device which is on same network as the machine where previous command was run.
Open chrome browser
Launch the app with weburl as IP address found in Step 2 and port 8080. For example <IP_ADDRESS>:8080
Click on the button in the code provided. The box will change color.
Enable Desktop-mode from settings of Chrome (on android device/emulator)
Repeat step 7.

Expected results
Flutter web should work in desktop mode on mobile/tablet browsers without any issue.
Actual results
There is no click and the UI is stretched as well.
Code sample
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    home: _HomePage(),
  ));
}

class _HomePage extends StatefulWidget {
  const _HomePage({
    Key? key,
  }) : super(key: key);

  @override
  State<_HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<_HomePage> {
  Color currentColor = Colors.pink;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
      child: SizedBox.square(
        dimension: 200,
        child: ColoredBox(
          color: currentColor,
          child: FilledButton.tonal(
              onPressed: () {
                currentColor = (List.from(Colors.primaries)..shuffle()).first;
                setState(() {});
              },
              child: const Text('Button')),
        ),
      ),
    ));
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[!] Flutter (Channel stable, 3.13.6, on macOS 14.0 23A344 darwin-arm64, locale en-IN)
    • Flutter version 3.13.6 on channel stable at /Users/rahul/fvm/versions/stable
    ! Warning: `flutter` on your path resolves to /Users/rahul/fvm/versions/3.3.0/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/rahul/fvm/versions/stable. Consider adding /Users/rahul/fvm/versions/stable/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/rahul/fvm/versions/3.3.0/bin/dart, which is not inside your current Flutter SDK checkout at /Users/rahul/fvm/versions/stable. Consider adding /Users/rahul/fvm/versions/stable/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ead455963c (2 weeks ago), 2023-09-26 18:28:17 -0700
    • Engine revision a794cf2681
    • Dart version 3.1.3
    • DevTools version 2.25.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/rahul/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] IntelliJ IDEA Community Edition (version 2023.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.83.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.74.0

[✓] Connected device (4 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554             • android-arm64  • Android 14 (API 34) (emulator)
    • Rahul’s iPad (mobile)       • <private_data> • ios            • iOS 17.0.3 21A360
    • macOS (desktop)             • macos                     • darwin-arm64   • macOS 14.0 23A344 darwin-arm64
    • Chrome (web)                • chrome                    • web-javascript • Google Chrome 117.0.5938.149

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

</details>

This is basically duplicate of https://github.com/flutter/flutter/issues/124569 as the issue is closed due to inactivity.

Hi @imrhk, I ran the code sample you shared above in desktop mode but I cannot seem to reproduce the issue. See the recording below.
What version of chrome are you using?
Do you see any errors when you use the chrome inspector tool?
Is there any additional information you can provide?
https://github.com/flutter/flutter/assets/88313112/cd91aab4-cc67-4c3f-b68e-b24f66bc68b7

I tired it on physical device and it still showed unexpected behaviour. Here is the chrome info

Do you see any errors when you use the chrome inspector tool?

There is nothing in log. When "Enable desktop-mode" is clicked the app refreshes itself as the size returned from MediaQuery.of(context).size is different.

Hi @imrhk, what device are you testing on?
I tested it on my Pixel 7 and it worked just fine. Is this also limited to only android or is iOS affected as well?

I have OnePlus 7T Pro running Android 12 but issue was seen on emulator with sdk 34. Nothing phone 2 also had this problem. I don't have iOS device so couldn't say about that.

If you could try this on android emulator downloaded from android studio with sdk 34, you might have this issue repro

@imrhk I can reproduce this issue on Chrome browser with my device Realme 6, Android 11.
Also, I have simplified the sample code as below (with only one Container with the given size).
Additional info

The issue only occurs in canvaskit renderer whilst it doesn't occur in HTML renderer:

Canvaskit: ❗
HTML: ✅

Issue doesn't occur on iOS Safari browser (verified on iPhone 7, iOS 15.7.9)

Demo
https://github.com/flutter/flutter/assets/104349824/566f76e7-66b5-4ffb-b3d1-0d7744c261c1

Sample code (minimal)
import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    home: _HomePage(),
  ));
}

class _HomePage extends StatefulWidget {
  const _HomePage({
    Key? key,
  }) : super(key: key);

  @override
  State<_HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<_HomePage> {
  Color currentColor = Colors.pink;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: SizedBox(
          width: 200,
          height: 200,
          child: Container(
            alignment: Alignment.center,
            color: Colors.red,
            child: const Text('Button'),
          ),
        ),
      ),
    );
  }
}

flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.13.7, on macOS 14.0 23A344 darwin-x64, locale en-VN)
    • Flutter version 3.13.7 on channel stable at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2f708eb839 (3 days ago), 2023-10-09 09:58:08 -0500
    • Engine revision a794cf2681
    • Dart version 3.1.3
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio Giraffe.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.83.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.74.0

[✓] Connected device (3 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos            • darwin-x64     • macOS 14.0 23A344 darwin-x64
    • Chrome (web)     • chrome           • web-javascript • Google Chrome 117.0.5938.149

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.16.0-10.0.pre.68, on macOS 14.0 23A344 darwin-x64, locale en-VN)
    • Flutter version 3.16.0-10.0.pre.68 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    ! Warning: `flutter` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/huynq/Documents/GitHub/flutter/bin/dart, which is not inside your current Flutter SDK checkout at /Users/huynq/Documents/GitHub/flutter_master. Consider adding /Users/huynq/Documents/GitHub/flutter_master/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 7d79472531 (17 minutes ago), 2023-10-13 04:35:46 +0200
    • Engine revision ffb3b5b67f
    • Dart version 3.3.0 (build 3.3.0-19.0.dev)
    • DevTools version 2.28.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-34, build-tools 32.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio Giraffe.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.13.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio Giraffe.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.83.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.74.0

[✓] Connected device (4 available)
    • RMX2001 (mobile) • EUYTFEUSQSRGDA6D                         • android-arm64  • Android 11 (API 30)
    • iPhone (mobile)  • d9a94afe2b649fef56ba0bfeb052f0f2a7dae95e • ios            • iOS 15.7.9 19H365
    • macOS (desktop)  • macos                                    • darwin-x64     • macOS 14.0 23A344 darwin-x64
    • Chrome (web)     • chrome                                   • web-javascript • Google Chrome 118.0.5993.70

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

I have the same issue , when i try to run my flutter web on mobile in desktop my flutter web's appbar hide and lag the site also...
How can i solve this problem??
Link:- krishnabhattacharya.github.io

Any updates on this?

Same problem with stretched on mobile browser when Desktop Site is on.

same problem on all flutter apps!!


Deleting Clusters messes with Storytelilng

The behavior for this issue got solved in the following way:
If a cluster gets deleted that is active in the current storytelling, it will close


Current day is not refreshing

Current day is not updated after manually changed date on the phone. Using setCurrentDate(Date dateTimeMonth) in onResume() method is not helping. Is there a way to refresh current day?

Ah interesting testcase scenario. Could you give me more exact infomation on the steps you did to cause this and what version as well please? From what I understand this is what you described:

Launch sample
Minimise app
Change current system datetime to yesturday
Resume app
The current date is not change to the system datetime?

Thanks.

I've tried this out and I can confirm that is a problem. I'll look into this. Maybe we need to listen for dateTime changes and then update current date accordingly?

Am i correct in that this also happens on normal time progression?
So when a activity using this widgets does not get killed for multiple days the today indicator never gets updated?

Yeah, I don't think it would. But that is easily solved by overriding onResume method in your activity and calling setCurrentDate on the calendar to update the current date.

setCurrentDate does not help to reset the (default) yellow Today bubble for me. should it?
I did override onResume and use setCurrentDate regularly to move the (default) blue indicator on recyclerview scrolls but the today indicator does not update.

Ahh, I see what you mean. Yes, I think it might be a bug in the code in that case. But the good thing is that it should be a single line change hopefully. The calendar stores 2 different Calendar instances. One for the current selected day that the user can select when clicking on a date and the one which you can set via setCurrentDate.
Then theres the one which stores what the actual today date is so that it can draw that indicator. The code should re-initalise that date also. which I believe should be simple as todayCalender = Calendar.getInstance(locale); in the setCurrentDate method so that both internal calendars are updated.

Yes, i believe so as well. Had a quick glance at the code. hope to maybe get around to fork it next week (or are you about to upgrade yourself?).

Released under:
dependencies {
    compile 'com.github.sundeepk:compact-calendar-view:1.8.8'
}

Now setCurrentDate will correctly update the current day indicator.

Closing this issue since it has been fixed by simply setting the date onResume


Make equipment equipable

In GitLab by @Asacolips on Jun 9, 2020, 09:27
Acceptance Criteria

[ ] Re-use the logic for preparing spells to make equipment equipable.

In GitLab by @Asacolips on Jul 6, 2021, 17:08
Added a first pass at this in 1.1.0-beta1. Currently, this only applies logical changes to weapons for piercing calculations.


Reaction-emojis should not have a human skin colour

Gitea version (or commit ref): dea3d84
Can you reproduce the bug at https://try.gitea.io:

[x] Yes
[ ] No
[ ] Not relevant

Description
The thumbs-up and thumbs-down emojis currently have a human skin colour, whereas the faces are in "smiley-yellow". The thumbs should be in that same yellow.
Screenshots

We should switch to twemoji to achieve this. Probably also moving the parsing emoji tags and converting to image tags in golang side

Should gitea not stick to utf8 and let the web browser decide what it looks like? ( Internet Explorer has pigment neutral emoji)  ... at least use a custom font for Vector instead of rasterizing them.

@Dmole if you use UTF-8 and let browsers decide how things look some emoji can get extremely confusing as each browser has a different emoji setup and some companies have imagined some emojis differently than others, I can't think of an example off the top of my head but I know that there are several emoji where on one phone it portrays happiness and on the other it looks angry/sad

Since I know next to nothing about go or web development, I have resorted to a hotfix for now: Overwriting the 6 reaction-emojis with Twemojis. If you want to do the same you need to download:

1f44d.png as thumbsup.png
1f44e.png as -1.png
1f606.png as laughing.png
1f615.png as confused.png
2764.png as heart.png
1f389.png as tada.png

And then copy the files to public/vendor/plugins/emojify/images before compiling.

UTF8:
👍 👎🙂🙁💓🎉

I'd support using Twemoji


cloudflare_tunnel_config ingress rules have extra origin_request configuration

Confirmation

[X] My issue isn't already found on the issue tracker.
[X] I have replicated my issue using the latest version of the provider and it is still present.

Terraform and Cloudflare provider version
Terraform v1.5.0
on darwin_arm64

provider registry.terraform.io/cloudflare/cloudflare v4.7.1
provider registry.terraform.io/hashicorp/aws v4.9.0
provider registry.terraform.io/hashicorp/random v3.5.1
provider registry.terraform.io/hashicorp/tls v3.3.0

Affected resource(s)

cloudflare_tunnel_config

Terraform configuration files
resource "cloudflare_tunnel" "tunnel" {
  account_id = var.cloudflare_account_id
  name       = "leet-tunnel"
  secret     = base64encode("[REDACTED]")
}

resource "cloudflare_tunnel_config" "tunnel" {
  account_id = var.cloudflare_account_id
  tunnel_id  = cloudflare_tunnel.tunnel.id
  config {
    ingress_rule {
      hostname = "test-tunnel.example.com"
      service  = "https://nginx.webservers.svc.cluster.local:443"
      origin_request = {
        no_tls_verify = true
      }
    }
    ingress_rule {
      service = "http_status:404"
    }
  }
}

Link to debug output
N/A
Panic output
No response
Expected output
+ ingress_rule {
              + hostname = "test-tunnel.example.com"
              + service  = "https://nginx.webservers.svc.cluster.local:443"

              + origin_request {
                  + no_tls_verify            = true
                }
            }

Actual output
+ ingress_rule {
              + hostname = "test-tunnel.example.com"
              + service  = "https://nginx.webservers.svc.cluster.local:443"

              + origin_request {
                  + connect_timeout          = "30s"
                  + disable_chunked_encoding = false
                  + http2_origin             = false
                  + keep_alive_connections   = 100
                  + keep_alive_timeout       = "1m30s"
                  + no_happy_eyeballs        = false
                  + no_tls_verify            = true
                  + proxy_address            = "<IP_ADDRESS>"
                  + proxy_port               = 0
                  + tcp_keep_alive           = "30s"
                  + tls_timeout              = "10s"
                }
            }

Steps to reproduce

Create a terraformed cloudflare_tunnel resource and respective cloudflare_tunnel_config resource.

The tunnel configuration should have an ingress rule where origin_request only contains a single item such as no_tls_verify

Run terraform apply

Expected: Output should only adjust origin request settings on Cloudflare for no_tls_verify
Actual: 7 total adjustments are made, including the expected one.
Additional factoids
Setting additional origin_request rules other than the specified one(s) results in extra configuration above the defaults you would find via hand creating the ingress rules in the Zero Trust console directly. This is not proper as defaults should be left in place unless specified.
References
No response

https://gist.github.com/ahrenstein/1f12a5a20ff166a1417c8b0a50041e71

addressed by #2504

@jacobbednarz but will it fix also problems in ingress_rule.origin_request? It also adds proxy_address and other props that are not a duration, but should be empty.
Adding origin_request in new plan after creating ingress_rules
esource "cloudflare_tunnel_config" "jaskinia_config" {
  account_id = cloudflare_account.main.id
  tunnel_id  = cloudflare_tunnel.jaskinia.id

  config {
    ingress_rule {
      hostname = "${local.cloudflare_domain}"
      service  = "https://traefik.traefik.svc.cluster.local:443"
      origin_request {
        origin_server_name = cloudflare_record.ingress.hostname
      }
    }
    ingress_rule {
      hostname = "*.${local.cloudflare_domain}"
      service  = "https://traefik.traefik.svc.cluster.local:443"
      origin_request {
        origin_server_name = cloudflare_record.ingress.hostname
      }
    }
    ingress_rule {
      service = "http_status:404"
    }
  }
}

generates plan:
# cloudflare_tunnel_config.jaskinia_config will be updated in-place
  ~ resource "cloudflare_tunnel_config" "jaskinia_config" {
        id         = "{some id}"
        # (2 unchanged attributes hidden)

      ~ config {
          ~ ingress_rule {
                # (2 unchanged attributes hidden)

              + origin_request {
                  + connect_timeout          = "30s"
                  + disable_chunked_encoding = false
                  + http2_origin             = false
                  + keep_alive_connections   = 100
                  + keep_alive_timeout       = "1m30s"
                  + no_happy_eyeballs        = false
                  + no_tls_verify            = false
                  + origin_server_name       = "ingress.{domain}"
                  + proxy_address            = "<IP_ADDRESS>"
                  + proxy_port               = 0
                  + tcp_keep_alive           = "30s"
                  + tls_timeout              = "10s"
                }
            }
          ~ ingress_rule {
                # (2 unchanged attributes hidden)

              + origin_request {
                  + connect_timeout          = "30s"
                  + disable_chunked_encoding = false
                  + http2_origin             = false
                  + keep_alive_connections   = 100
                  + keep_alive_timeout       = "1m30s"
                  + no_happy_eyeballs        = false
                  + no_tls_verify            = false
                  + origin_server_name       = "ingress.{domain}"
                  + proxy_address            = "<IP_ADDRESS>"
                  + proxy_port               = 0
                  + tcp_keep_alive           = "30s"
                  + tls_timeout              = "10s"
                }
            }

            # (1 unchanged block hidden)
        }
    }

It should only add origin_server_name and not override any defaults. Also the durations are a bit wonky.
They looks this way in CF UI after applying the plan:

and they are not correct as durations base value is seconds and the values are too big:

After fixing them in UI and running plan it treats them as ns and not s:
# cloudflare_tunnel_config.jaskinia_config will be updated in-place
  ~ resource "cloudflare_tunnel_config" "jaskinia_config" {
        id         = "{some id}"
        # (2 unchanged attributes hidden)

      ~ config {
          ~ ingress_rule {
                # (2 unchanged attributes hidden)

              ~ origin_request {
                  ~ connect_timeout          = "30ns" -> "30s"
                  ~ keep_alive_timeout       = "90ns" -> "1m30s"
                  ~ tcp_keep_alive           = "30ns" -> "30s"
                  ~ tls_timeout              = "10ns" -> "10s"
                    # (9 unchanged attributes hidden)
                }
            }
          ~ ingress_rule {
                # (2 unchanged attributes hidden)

              ~ origin_request {
                  ~ connect_timeout          = "30ns" -> "30s"
                  ~ keep_alive_timeout       = "90ns" -> "1m30s"
                  ~ tcp_keep_alive           = "30ns" -> "30s"
                  ~ tls_timeout              = "10ns" -> "10s"
                    # (9 unchanged attributes hidden)
                }
            }

            # (1 unchanged block hidden)
        }
    }

So I think this shouldn't be closed as it won't fix adding additional properties in ingress_rule.origin_request.


Merge helm-update-modernization-api-1.0.1-SNAPSHOT.9f5b058 into main

Created by Github action in refs/heads/CNPT-1215---wilfred-sonarscan

from a test


DRILL-6962: Added tests to verify that coalesce function doesn't throw exception if use it with non-existing columns.

Done. Opened a PR:
https://github.com/mapr/drill-test-framework/pull/560


MMCA-4935-update cash account v2 to display closing balance in a new row

After these changes, values for some Withdrawals are not being displayed properly. Instead of showing
-£200.50 its showing
-
£200.50


Support changing scheduler name + allowing live migrations on PVCs with multiple node replicas.

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind enhancement
What happened:
Can't set schedulerName for any virt-launcher pods from either VM or VMI resource types. Adding the option to do so will allow the usage of some storage-aware schedulers such as stork to only schedule to nodes that has the block replicas of the PVCs, and that gives kubevirt node failover advantage when using portworx as storage provider. Going that route will allow live migrations without needing to have shared PVCs (it's the current condition that triggers live migration flag) as shared PVCs have higher IO overhead than the PVCs node replicas.
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

KubeVirt version (use virtctl version): v0.25.0
Kubernetes version (use kubectl version): v1.16.2
VM or VMI specifications: both
Cloud provider or hardware configuration: on prem, portworx as storage provider, stork as scheduler.
OS (e.g. from /etc/os-release): RancherOS and CentOS
Kernel (e.g. uname -a): 4.12
Install tools: n/a
Others: n/a

Allowing to set the scheduler name should not be an issue. We can just add the scheduler field to our VMI spec and pass it through, to the pod.
Allowing live migrations with replicas sounds nice. Is it somehow visible on the PVC that it has node replicas? Could you point us to some documentation?

Great.
As for your replicas question, setting up the replicas would be done in the storage class that the PVC is created from (parameters.repl). The PVC has a spec.storageClassName key that points to the storage class that has the replicas count.

@azaiter #3258 should add the first step. Regarding to the PVCs. We would end up with PVCs which are readwriteonce, but where the scheduler can schedule pods to different hosts based on the replica count?

@rmohr Let's take a simple 3 storage/compute nodes topology (A, B, and C):
if the PVC that is tied to a storage class has repl value of 2, two of the above nodes will have the volume replicated to them and synced at all times, say A and C.
If you schedule a pod using a scheduler that is aware of the storage state (like stork for example), it will only schedule the VMI pod to either A or C only. And if node A dies, and if the pod happens to be on it, the pod will get recreated to node C, thus preserving the VMI state on both nodes.
That brings the second part of this issue request: allowing live migrations of PVCs that are created from a storage class that has repl value of > 1. So if you taint a node, the re-created pod will be automatically assigned to the second node that has the PVC, and the VMI will run as intended. I've recently tested this manually on about 6 VMIs and it appears to be working as intended (taint the node => delete the VMI pods => the recreated VMI pods on another node work as intended).
Hope that explains it. Thanks for the PR!


Build benchmarks as part of make build

This should make it easier to ensure that benchmarks can be run on a variety of platforms.
Note that in light of #43510 we may additionally want to build bluepill with TAGS=cmsis-nn but keeping that as a separate change in the interest of incrementally improving our CI coverage.
Manually confirmed that make build now also builds the benchmarks.

@njeffrie: I just merged master and this PR is ready for review.


prometheus federation hava a bug

montior link :
promtheus（central node）<- prometheus（federation node）-> job: node_exporter -> consul_sd_configs ->  some_node <IP_ADDRESS>:9100
when some_node  port 9100 is down, central node consider federation node is down，and then whole federation node  is not available...

In a simple test set-up that I did, the central node always reported federated node as 'up' as long as it was running. This is because following params matches always succeed on a running federated Prometheus server.
  params:
     'match[]':
       - '{job="prometheus"}'
       - '{__name__=~"job:.*"}'

I notice 'context deadline exceeded' error message in the screenshot. This could be due to the prom query failing for something specific in your environment. Please provide the central/federated/node_exporter version and config files to reproduce the issue.

Thanks for your report. It looks as if this is actually a question about usage and not development.
It makes more sense to ask questions like this on the prometheus-users mailing list or our forums rather than in a GitHub issue. In our community channels, more people are available to potentially respond to your question, and the whole community can benefit from the answers provided.


Issues with ё in RU dictionary

Hi,
We have recieved information from user that terms containing "ё" in RU dictionary are being flagged as typos/errors . Could this be adjusted?

Dictionaries are not maintained here. See readmes.


Ensure cohort 1 call is scheduled week of 09.28.15

Cohort 1 call is scheduled for Friday at 4PM PST!

@gemmabusoni I was thinking, should we create a calendar event for this? Invite everyone just to make sure no one forgets?

Closing because the call happened! I do like @paked's idea though.


MB-14008 - Remove IconButtons console error

Co-authored-by: Katy Chambers<EMAIL_ADDRESS>Co-authored-by: Juan Ruiz<EMAIL_ADDRESS>Jira ticket for this change
Summary
This PR should remove a console error that resulted from setting an icon attribute that was removed in the react-uswds button.
Setup to Run Your Code

💻 You will need to use two separate terminals to test this locally.
Terminal 1
Start the UI locally.
make client_run

Terminal 2
Start the Go server locally.
make server_run

Additional steps

Access the office app as a TXO
Navigate to the move details page of any move
Note that the console is free of the icon error

Verification Steps for Author
These are to be checked by the author.

[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

Verification Steps for Reviewers
These are to be checked by a reviewer.

Frontend

[ ] User facing changes have been reviewed by design.
[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] There are no new console errors in the browser devtools
[ ] There are no new console errors in the test output
[ ] If this PR adds a new component to Storybook, it ensures the component is fully responsive, OR if it is intentionally not, a wrapping div using the officeApp class or custom min-width styling is used to hide any states the would not be visible to the user.

Warnings

:warning:
This PR does not include changes to unit tests, even though it affects app code.

Messages

:book:
:link: MB-14008

  Generated by :no_entry_sign: dangerJS against 3ed86f5cb7c0835e0d42965bf59f57d10282c9a6


[4.1][Bug] field and filter names being changed by Backpack

Bug report
What I did
Upgraded from v3.6 to v4.1 by following instructions in documentation.
What I expected to happen
Expected behavior similar to v3.6 where field and filter names matched the 'name' attribute of the field/filter definition.
What happened
(1) Field names are being array-ified based on the 'entity' attribute (I think?). The following example creates a field named series[line][manufacturer_id] instead of a field named manufacturer_id. Because the field is not named manufacturer_id, the dependent ajax filter returns 0 results.
            [
                'tab' => 'Basics',
                'name' => 'manufacturer_id',
                'label' => 'Manufacturer',
                'type' => 'select2',
                'entity' => 'series.line.manufacturer',
                'attribute' => 'name',
                'options' => (function ($query) {
                    return $query->orderBy('name')->get();
                }),
            ],

(2) Filter names are being camelCased based on the 'name' attribute. The following example creates a filter named manufacturerId instead of a filter named manufacturer_id. The downstream effect is similar to the renamed field example when dependent filters are used.
        $this->crud->addFilter(
            [
                'name' => 'manufacturer_id',
                'type' => 'select2',
                'label'=> 'Manufacturer',
            ],
            function() {
                return \App\Catalog\Models\Manufacturer::orderBy('name')->get()
                    ->pluck('name', 'id')->toArray();
            },
            function ($value) { // if the filter is active
                if (! is_null($value)) {
                    $this->crud->addClause('whereHas', 'series', function ($series) use ($value) {
                        return $series->whereHas('line', function ($line) use ($value) {
                            return $line->where('manufacturer_id', $value);
                        });
                    });
                }
            }
        );

What I've already tried to fix it
I've read all of the issues and pull/merge requests I can find about these two similar changes. They appear to have been done on purpose, but I can not find an explanation.
Backpack, Laravel, PHP, DB version
When I run php artisan backpack:version the output is:
### PHP VERSION:
PHP 7.3.5-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: May  3 2019 10:00:24) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.5-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

### LARAVEL VERSION:
v7.21.0@3ccdb116524de408fdc00715b6f06a1031ddace9

### BACKPACK VERSION:
4.1.15@6c751de946a9c8511dd32eb7bfa3ca6a568849f5

@pxpm will know more about this, for sure. But until he gets to this, I'll try to help:

(1) I believe in FIELDS it's been done to allow for dot notation names, not just for 1-1 relationships but any type of relationship. In Backpack 4.1, upon addField() backpack goes a but further and tries to guess things for you, so that you don't have to specify everything for a field. For relationships especially, this is useful because most of the times you can just specify the name and it'll figure out the rest. In this particular use case, I think what's happening is that your manufacturer_id gets overwritten by the addField() statement with series[line][manufacturer_id] because it sees a chained relationship inside entity. And I see we might not have a way to tell Backpack "please don't overwrite my name, I know what I'm doing here". @pxpm correct me if I'm wrong and we DO have a way to avoid this - I remember we talked about this at some point but can't remember the resolution. Anyway, to fix this issue for you and others that have the same problem, if we don't already have a solution, I propose we add another optional attribute, something like overwrite_name that you could set to false, and the Backpack would know NOT to touch your name; so something like this inside FieldsProtectedMethods.php - what do you think @trip-somers  & @pxpm ?

(2) I believe in FILTERS it's been done to fix a small bug where the "Remove filters" button didn't show every time (#2829 and #2872), and for consistency - because throughout the filters we were using sometimes camelCase, sometimes snake_case versions of the input name, and this created random problems with some names.

Note - also related and relevant, your comment here.
This must've ruined your experience when upgrading to 4.1 @trip-somers - sorry for that. Looks like this change was very badly documented. It might be the case that we've over-optimized here - looks like when trying to fix a minor bug we introduced a major breaking change... 👀  And a badly documented one... Let's see how we can best fix this... It shouldn't be that difficult to upgrade dependant selects / dependant filters, or we should at least provide clear docs for it...

My experience has definitely not been bad at all. I'm not sweating these issues right now either. The helpful and thoughtful responses are a breath of fresh air in the open source community at large that seems to frequently close issues without comment and get defensive or even combative.
For my filters, it was slightly annoying but relatively easy to adjust my filter names to match how they'd be transformed. If you can point me to a relevant thread, I can post the code for my dependency-based filter. Seems small enough and easy to be included in the standard select2_ajax filter. I figure it's a common enough extension pattern that I'm not the only one affected, and including it in CRUD would elevate it from an extension to a feature.
The fields issue threw me for a loop because I needed to add a \Log::debug() to see what Backpack was even sending to my API (visually parsing the url-encoded query string was a nope for me). I was plenty surprised to see that manufacturer_id was somehow series[line][manufacturer_id], and I didn't want to start hacking my API to expect that without knowing how or why it was being changed.
Happy to be a part of any discussions related to fixes or adjustments.

Quick question about the overwriteFieldNameFromEntity() method: how would this actually work in practice? When parsing the form request data as suggested in the FAQ, you wouldn't be able to use dot-notation to retrieve the value.
$form = collect($request->input('form'))->pluck('value', 'name');

This would result in $form['series[line][manufacturer_id]'] rather than something like $form['series.line.manufacturer_id'], wouldn't it? Does it work different when the field is posted for create or update?

Encountered another side effect related to the field name change issue. I'll make the example as short as possible, building from what has been mentioned above...

If I use 'manufacturer_id' as the first of a series of select2_from_ajax dependencies in the Item form, the 'manufacturer_id' field name winds up being series[line][manufacturer_id].
If I use 'manufacturer_id' as the first of a series of select2_from_ajax dependencies in the Series form, the 'manufacturer_id' field name winds up being line[manufacturer_id].

This means the Line API Controller has to check for 2 fields other than the obvious manufacturer_id when processing a search request. If the field name isn't fixed, it makes API development... messy.

Hello @trip-somers and @tabacitu
Indeed this is a different scenario from the filters.
From screenshot above from @tabacitu I already saw a bug, introduced by me ofc. :smiling_imp: Sorry for that.
It reads: We should only change the 1-1 relation field names ... but actually we check relation_type equals to BelongsTo instead of HasOne.
In HasOne, a relation that makes sense you could edit in the same crud, we overwrite the name of the field as an array to allow us to have for example a field with name type on the main crud, with an HasOne relation with something that has also a type field name. Also for validation you validate as a Laravel array: relation.type => required
Again, sorry for introducing such bad experience.
Backpack is used in so many different ways that sometimes it gets very difficult to test every possible scenario.
I am working on a local branch in a way to solve this naming issues.
In the meanwhile change line 180 of FieldsProtectedMethods.php from BelongsTo to HasOne. It should solve your select issues.
Let me know,
Pedro

Thank you for checking this out. I will try it out tonight.

As you suggested, changing line 180 fixed the field name issue; however, it appears to have revealed that the actual ID is not being sent.
Instead of series[line][manufacturer_id], the field is now called manufacturer_id as expected, but instead of 8, the form value is Widget Manufacturer.

Can I get an update on the status of the select2 field dependencies issues? Has the dependency value issue from my last comment been acknowledged?
Are you aiming for 4.2 or a 4.1.x release?

@trip-somers hello.
Hope to find you well.
About the filters I think we already got to a consensus but will be pushed as a BC in 4.2.
About the fields I think there is something we can do in 4.1.
Correct me here if I am wrong, the only reason why you are using 'entity' => 'series.line.manufacturer', is to don't write 'model' => '\App\Catalog\Models\Manufacturer' right ?
Can you post me the two dependant fields that are not working for you ? Also the relations types.
I could not reproduce the last error you report about Widget Manufacturer.
This are my fieds:

$this->crud->addField([
            'name' => 'number',
            'type' => 'select2',
            'attribute' => 'name',
            'entity' => 'category',
        ]);

$this->crud->addField([
            'name' => 'select2_from_ajax',
            'type' => 'select2_from_ajax',
            'data_source' => backpack_url('features/fetch/article'),
            'dependencies' => ['number'],
            'include_all_form_fields' => true,
            'placeholder' => 'select smth',
            'minimum_input_length' => 0,
            'method' => 'POST',
            'entity' => 'article',
            'tab' => 'Relations',
            'label' => 'select2 from ajax depends on category'
        ]);

I am setting up a panel with pretty much all supported relations and some advanced use cases like dependant fields.  Apart from the renaming of the BelongsTo relations that should not happen I didn't found anything else broken for now.
Also you are using FetchOperation for your ajax routes or you setup your own API routes ? Could you make the change we discussed earlier and it's on PR: #3116 and guide me throw the rest of your error report?
Best,
Pedro

Regarding 'entity' vs 'model' -- I'm using 'entity' because the documentation for select2_from_ajax implies that 'entity' is required and 'model' is optional. There is nothing the documentation that I've seen that indicates why someone would choose one or the other, or if using both would be weird.
I am not using the FetchOperation. I am using the structure suggested in the documentation here: https://backpackforlaravel.com/docs/4.1/crud-how-to#add-a-select2-field-that-depends-on-another-field
It makes more sense for me to do that since 'manufacturer_id' field is used in 3 places and 'line_id' is used in 2 places. But also, I did not know that FetchOperation had been added.
Testing this morning shows the value being the id field instead of name. I know I was consistently receiving Widget Manufacturer instead of 8 when playing with this two weeks ago, but now I am unable to reproduce it. I will dig into that again tonight to see if I can figure out what I did.

I was intrigued so I looked at this now, and it's happening in one place but not another.
In my ItemCrudController, which works just fine:
            [
                'tab'                   => 'Basics',
                'name'                  => 'manufacturer_id',
                'label'                 => 'Manufacturer',
                'type'                  => 'select2_from_ajax',
                'entity'                => 'series.line.manufacturer',
                'attribute'             => 'name',
                'data_source'           => url('admin/api/manufacturer'),
                'placeholder'           => '- Select Manufacturer -',
                'minimum_input_length'  => 0,
            ],
            [
                'tab'                       => 'Basics',
                'name'                      => 'line_id',
                'label'                     => 'Line',
                'type'                      => 'select2_from_ajax',
                'entity'                    => 'series.line',
                'model'                     => 'App\Catalog\Models\Line',
                'attribute'                 => 'name',
                'data_source'               => url('admin/api/line'),
                'placeholder'               => '- Select Line -',
                'minimum_input_length'      => 0,
                'dependencies'              => ['manufacturer_id'],
                'include_all_form_fields'   => true,
            ],

From my SeriesCrudController, which definitely is sending 'Widget Manufactuer' as manufacturer_id:
            [
                'name'                  => 'manufacturer_id',
                'label'                 => 'Manufacturer',
                'type'                  => 'select2_from_ajax',
                'entity'                => 'line.manufacturer',
                'attribute'             => 'name',
                'data_source'           => url('admin/api/manufacturer'),
                'placeholder'           => '- Select Manufacturer -',
                'minimum_input_length'  => 0,
            ],
            [
                'name'                      => 'line_id',
                'label'                     => 'Line',
                'type'                      => 'select2_from_ajax',
                'entity'                    => 'line',
                'model'                     => 'App\Catalog\Models\Line',
                'attribute'                 => 'name',
                'data_source'               => url('admin/api/line'),
                'placeholder'               => '- Select Line -',
                'minimum_input_length'      => 0,
                'dependencies'              => ['manufacturer_id'],
                'include_all_form_fields'   => true,
                'wrapperAttributes' => [
                    'class' => 'form-group col-lg-6'
                ],
            ],

The only appreciable difference I can see are the 'entity' values, but I'm not sure why or how that would result in 'manufacturer_id' => 'Widget Manufacturer' instead of the expected 'manufacturer_id' => 8 in the line_id ajax request.

I am in the very weird position of can not fix and can not duplicate. I have moved fields, changed field names, and varied combinations of entity and model usage. I have tried to fix it on SeriesCrudController without luck. I have tried to cause it on ItemCrudController without luck.
I have confirmed that the two pages make equivalent ajax requests and receive equivalent responses, but somehow ItemCrudController is assigning the ID as the selected value -- <option value="8" data-select2-id="31">Widget Manufacturer</option> -- while SeriesCrudController is assigning the name -- <option value="Widget Manufacturer" data-select2-id="28">Widget Manufacturer</option>.
It makes no sense. I am at a loss.

I finally found it. I built a custom field called select2_from_ajax_plain that is designed to work with non-relationship. I extended it from select2_from_ajax but failed to change the field init function name. The result was that my new select2_from_ajax_plain field was breaking the init function for the select2_from_ajax fields on the page.
So this is back down to just the BelongsTo/HasOne mistake. My apologies if you spent much time trying to recreate this. I'm a unicorn.

Hey @trip-somers
Glad you found it.
My notes from friday:
....
- could not reproduce wrong sent of value using api or fetch operation.
- could be environment specific ? Ask for dev. environment.
- ask if user had overwritten any of the field files.

I was also getting into the last possible scenarios.
Don't mind the time I spent debugging this, I found more stuff that we can optimize, and built a complete relation panel to test further issues if needed, it's not a waste of time.
From this issue I think there is not much more to do here, filter names are going to be addressed in 4.2 as a BC, and I think #3116 has the fix for the issue of BelongsTo beeing renamed.
Thanks again for submitting the issue, if you found some more let us know so we can properly address it.
FYI: you can use unrelated ajax fields. We should update our docs accordingly, sorry for misdirecting you.
 $this->crud->addField([
            'name' => 'select2_from_ajax',
            'type' => 'select2_from_ajax',
            'data_source' => backpack_url('features/fetch/article'),
            'dependencies' => ['number'],
            'include_all_form_fields' => true,
            'placeholder' => 'select smth',
            'minimum_input_length' => 0,
            'method' => 'POST',
            //'entity' => 'article',
            'model' => 'Backpack\NewsCRUD\app\Models\Article',
            'attribute' => 'title',
            'tab' => 'Relations',
            'label' => 'select2 from ajax depends on category'
        ]);

It works just like removing model and adding entity => 'article', the difference is that if entity is set, we infer the model from the relation and some other attributes.
Best,
Pedro

Gave it a shot, and it still requires at least a model. My ajax request is a bit more abstract than that -- querying the parent Line  for a list of Groups that a Series can be assigned to. The Groups data exists as a json field on the Line rather than as its own model.
What I've got works, so I'll stick with it for now.

Hi guys,
Whew. It looks like this thread has advanced quite a bit. So much so that it's a bit difficult to follow.
So let me sum it up - please let me know if I've got it right/wrong.
Fields
✅ Problem 1 A - field names were array-ified for BelongsTo instead of HasOne

fixed by @pxpm in #3116
needs to be tagged as Backpack 4.1.18 for everyone to get the fix;

🟨 Problem 1 B - no way to tell Backpack "don't overwrite my field name"

mentioned by @tabacitu in https://github.com/Laravel-Backpack/CRUD/issues/3065#issuecomment-663351403
what do you think @pxpm & @trip-somers - is this still needed? wouldn't hurt though, right? I mean we should probably provide a way for the developer to take complete control over this (aka disable the new behaviour in 4.1 where we overwrite the field name), even if it's not exactly this solution;

✅ Problem 1 C - Getting Widget Manufacturer instead of 8 as the value of the field

turns out it was user error, due to a custom field (https://github.com/Laravel-Backpack/CRUD/issues/3065#issuecomment-674478286)

✅ Problem 1 D - Docs are unclear/wrong in saying that entity is mandatory

additionally, they don't make it clear if you should use model or entity;
I've worked on the docs a little bit, hopefully this provides all the information one needs to understand how fields containing relationships work; see https://github.com/Laravel-Backpack/docs/pull/171

Filters
🟨 Problem 2 - filter names get camelCased

@pxpm mentioned in https://github.com/Laravel-Backpack/CRUD/issues/3065#issuecomment-674759976 that we decided to fix this in 4.2 as a breaking change, but actually recently we decided it's best to fix this in 4.1, right way, so that fewer people get run into it; https://github.com/Laravel-Backpack/CRUD/pull/3069#issuecomment-674999998 gives more details; I'd rather we continue the conversation about this there, since it's already work-in-progress;

Bottom line, they will both get fixed in 4.1. Probably by the end of the week.

Let me know if I've misunderstood / missed something @trip-somers & @pxpm . I'm eager to finally see this closed, after we settle the 2 remaining yellow items above. It's been bugging me for past month, knowing we have these problems in our code.
Cheers!
PS. On the bright side @pxpm the demo you've been working on (that treats ALL relationship types and combinations) will be very useful in the future. I'll help a lot with maintenance and confirming/disproving bug reports - I'm 100% sure of it 😄 🥳

Everything looks good to me. My comment for 1B is that if the plan is to continue to transform HasOne field names, then there should be some kind of override for the developer or at least some kind of callout/warning in the docs that use of 'entity' will transform the field name of a HasOne relationship.
^ And now that I've written that out and read it back to myself, we're talking about a quirk that only effects 'HasOne' field names defined with an 'entity' value. Is it also limited to 'select2_from_ajax' field types? I don't know why that behavior was added, but maybe it just makes more sense to remove it since it has such a narrow scope. If the developer wants the field name to be array-ified, it seems like that should be the developer's call.

@trip-somers granted it's a narrow scope. What it does (not only if entity is present) is that it allows Backpack developers to use easily use 1-to-1 relationships, by just writing out a the relationship as a name, using dot notation.
So for example:
CRUD::field('user.details.emergency_contact');

This will add an input with the name details[emergency_contact] inside the form. That will automatically get saved thanks to the 1-to-1 details() relationship on the User model.
Without this feature, the only way to do it would have been to do:
CRUD::field('emergency_contact');

and either setup an accessor & mutator for it, or overwrite the save process to add this bit. So quite a lot more work.
Personally I never use 1-to-1 relationship, but quite a few people do. And since all other relationships worked fine inside Backpack, we were basically discriminating against 1-to-1 relationships 😅
The choice to transform the name from dot-notation to bracket-notation came because of inconsistencies between browsers - some support dot notation, others don't. So out of need.
I'm not happy with the unintuitive behaviour either, but I think it's best to provide support for 1-to-1 relationships too, and I hope we can fix this problem with better docs 🤞

That's a good explanation. I wasn't aware that short-hand even existed.

Separated issue 1B (the only one that's not done at the moment) into https://github.com/Laravel-Backpack/CRUD/issues/3150 so let's close this 🥳 🎉
Thanks a lot for the time and patience @pxpm and @trip-somers !


Enables to add or update a list member

I have added support for create_or_update member to a list as documented in the open issue by @aaugustin https://github.com/charlesthk/python-mailchimp/issues/24

Hi @gonzalomcruz thanks for your PR it is really appreciated !

When will this new feature make it to the version available via pip?


Backport 2.1: Documentation error in mbedtls_ssl_get_session

Description
Backport of #927 to mbedtls-2.1
Status
READY

retest

ported latest commit of the main PR
@sbutcher-arm please review

cc @andresag01 @mpg

@RonEld: The main PR has not been approved. As there are some change requests there, I will wait until after that is resolved before reviewing this PR.

@andresag01 The main PR is now approved, and I have pushed the latest commit

@gilles-peskine-arm I fixed the issue in the ChangeLog. It was caused by an erronous cherry-pick which I have missed
cc @mazimkhan


Update landing page

Summary
Update landing page / to have links to all explorer functionality.
Description
Regardless of redesigns/styling the client, it would be good to advertise what cuiloa can do.

Closed by #68


Feature to disable some http methods eg. TRACE

Possibility to disable TRACE.
Before when
curl -v -X TRACE localhost:8081 we have got 200
After we can add TRACE to jetty.disable.http-methods and curl will return 403
Fixes #1251

Pull Request Test Coverage Report for Build 4221

4 of 16 (25.0%)  changed or added relevant lines in 1 file are covered.
7 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.03%) to 36.392%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

azkaban-web-server/src/main/java/azkaban/webapp/WebServerProvider.java
4
16
25.0%

Files with Coverage Reduction
New Missed Lines
%

azkaban-common/src/main/java/azkaban/jobExecutor/AbstractProcessJob.java
2
60.71%

azkaban-exec-server/src/main/java/azkaban/execapp/JobRunner.java
5
76.13%

Totals

Change from base Build 4219:
-0.03%

Covered Lines:
10592

Relevant Lines:
29105

💛  - Coveralls

@HappyRay Could you take a look at this?

what are the other http methods that prefer to be disabled?


Translate April 24 covid report into German

Hello @nextstrain/german!
The situation report from 2020-04-24 is ready to be translated to German. The report focuses on Africa. We chose this region this week as the outbreaks in African nations are very important to understand and do not seem to be getting a lot of press. Please translate the Twitter post below! It is a bummer when the translation is great, but people do not know that because I used Google translate for the Twitter post.
Branch to translate on: sit-rep_de
File to translate: https://github.com/nextstrain/translations/blob/sit-rep_de/narratives/translations_ncov_sit-rep_de_2020-04-24.md You can translate directly in this file, but please remember to push often as other people may be working on the translation!
Link to preview: https://nextstrain.org/community/narratives/nextstrain/translations@sit-rep_de/ncov/sit-rep/de/2020-04-24
Twitter post to translate:
“We focus on Africa this week in our #COVID19 situation report. The report is now available in German. Thank you @, @, and @ for the rapid translation."
Logistics
Please update the translations board as you work on the translation: https://github.com/orgs/nextstrain/projects/7
Please assign yourself to the translation if you’re working on it this week.
When a translation is ready for publication -- at minimum meaning two people have worked on it and both agree that it’s ready -- please create a pull request to merge to master and tag me and the issue in it!
Discussion board for your team is here: https://github.com/orgs/nextstrain/teams/german
Standard rules for translation:
Note that the file to translate is in Markdown. In general, it is important not to change any formatting or links. (Although it is okay to update Wikipedia or CDC links to the appropriate language version.) Comments to help with translation are noted in comment symbols like <! -- Comment -->.
Please add your name under translators: with new line, tab, and dash, formatted just like authors are. Please also add a link to your professional page (can use Twitter) under translatorLinks:.
Note: You may know of other great resources available in German; please don’t add them to the situation report. We need to keep content the same across all translations, so we can be confident in the accuracy of what we publish. Thanks for understanding.
At minimum, I require two sets of eyes on every translation; one of those people should have a background in phylogenetics. Although if you have more, that’s fine too.
Feel free to use a live, online editor like hackmd (sign in with GitHub) to translate together.
Thank you all so, so much! :)

@Hirthe Guten Morgen! Ich werde diesen Report nicht übersetzen, weil er nicht für Europa ist. Ich kann wie letzte Woche Korrektur lesen. Tag mich einfach hier

@astridgall Alles klar :) Ich bin fertig mit der Uebersetzung. Kannst du ihn bitte korrigieren? Schoenes Wochenende :)

@Hirthe Super! Ich mache das im Laufe des Tages. Danke und schoenen Sonntag!
Sent from my iPad

On 25 Apr 2020, at 22:24, Hirthe<EMAIL_ADDRESS>wrote:
@astridgall Alles klar :) Ich bin fertig mit der Uebersetzung. Kannst du ihn bitte korrigieren? Schoenes Wochenende :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

@cassiawag This is ready. Here the tweet:
Diese Woche liegt der Schwerpunkt unseres #COVID19 Lageberichtes auf Afrika. Er ist nun in Deutsch verfügbar. Vielen Dank an @AstridGAGall und Elisabeth Hirth für die schnelle Übersetzung.

Published and tweeted: https://nextstrain.org/narratives/ncov/sit-rep/de/2020-04-24
Thank you so much @astridgall and @Hirthe!


Impossible to use preview with Scene().render()

Description of bug / unexpected behavior
The title. For example :
class Test(ThreeDScene):
    def construct(self):
         # cool scene goes there

Test().render()

and a config file with preview = True.
The config file is detected by manim, and the preview flag is introduced in config dict.
Expected behavior
The scene should open in a preview windows as it normally does with -p flag in CLI
How to reproduce the issue
See above.
Additional comments
The preview logic is run in main, which is called in main().
The issue is when not using manimcommand, main is not called.
A potential fix would be to move this logic into the renderer.

The preview config option in the config file is meant to change the behavior of the -p flag when called from the command line. If you are not using manim from the command line, it won't do anything, so this is expected behavior. (As a matter of fact, the original purpose of the [CLI] title of the config file was precisely to determine that the options contained therein will affect the command line, and not other parts of manim.)
Having said that, my opinion is that we shouldn't call an external program from the core library. My explanation is here cc @kolibril13 . I could be convinced otherwise if enough people feel this is an important feature.

The preview config option in the config file is meant to change the behavior of the -p flag when called from the command line. If you are not using manim from the command line, it won't do anything, so this is expected behavior. (As a matter of fact, the original purpose of the [CLI] title of the config file was precisely to determine that the options contained therein will affect the command line, and not other parts of manim.)
Having said that, my opinion is that we shouldn't call an external program from the core library. My explanation is here cc @kolibril13 . I could be convinced otherwise if enough people feel this is an important feature.

It makes sense,

I could be in favor of implementing something like Scene.preview() or Scene.show(), but I honestly don't think that's necessary.

I believe this is an excellent idea, and can be useful for people don't use CLI, for some reason (as an example, I personnaly prefer running a scene directly from my IDE). Futhermore, PIL, matplotlib, etc have such a feature, it would make sense that manim has it to.
I'll try to work on something like this.

It makes sense,

I could be in favor of implementing something like Scene.preview() or Scene.show(), but I honestly don't think that's necessary.

I believe this is an excellent idea, and can be useful for people don't use CLI, for some reason (as an example, I personnaly prefer running a scene directly from my IDE). Futhermore, PIL, matplotlib, etc have such a feature, it would make sense that manim has it to.
I'll try to work on something like this.

Like I said, I'm not opposed to it, but I would be weary of feature creep. By this I mean that it would be fine to have a simple show() method, but I believe it should be kept simple and straightforward. Remember manim is not a plotting/video-showing library, it is a rendering library. (At least for now!)

Like I said, I'm not opposed to it, but I would be weary of feature creep. By this I mean that it would be fine to have a simple show() method, but I believe it should be kept simple and straightforward. Remember manim is not a plotting/video-showing library, it is a rendering library. (At least for now!)

I see. So, before going any further, I would like to have the opinion of @ManimCommunity/core :
Here are the words of @leotrs :

It is not yet possible to use the preview flag -p from the comment line, that is why I currently used matplotlib.

I am against implementing the preview flag in this way. The reason is that the preview flag has nothing to do with manim itself and it just asks another application to run a file created by manim. This is what the command line command is important: to interface between manim and other applications. I could be in favor of implementing something like Scene.preview() or Scene.show(), but I honestly don't think that's necessary.
EDIT: the reason why I don't think it's necessary is because implementing such a method would remove only two lines from the script you have posted. It makes much more sense to me to explicitly call matplotlib with two lines of code) than to have the core manim codebase do that for you.

What are your thoughts? Should the user be able to preview a scene directly from a python file (not from the CLI)? Or should one use like Scene.preview() ?

I see. So, before going any further, I would like to have the opinion of @ManimCommunity/core :
Here are the words of @leotrs :

It is not yet possible to use the preview flag -p from the comment line, that is why I currently used matplotlib.

I am against implementing the preview flag in this way. The reason is that the preview flag has nothing to do with manim itself and it just asks another application to run a file created by manim. This is what the command line command is important: to interface between manim and other applications. I could be in favor of implementing something like Scene.preview() or Scene.show(), but I honestly don't think that's necessary.
EDIT: the reason why I don't think it's necessary is because implementing such a method would remove only two lines from the script you have posted. It makes much more sense to me to explicitly call matplotlib with two lines of code) than to have the core manim codebase do that for you.

What are your thoughts? Should the user be able to preview a scene directly from a python file (not from the CLI)? Or should one use like Scene.preview() ?

IIRC, all the CLI -p option does internally is call the function open_file_if_needed right? Why not add a boolean preview keyword parameter to Scene.render which does exactly that?
On the topic of opening external applications via manim, we already sort of do this with Mobject.show, no?

IIRC, all the CLI -p option does internally is call the function open_file_if_needed right? Why not add a boolean preview keyword parameter to Scene.render which does exactly that?
On the topic of opening external applications via manim, we already sort of do this with Mobject.show, no?

why not do a poll for this?..

why not do a poll for this?..

IIRC, all the CLI -p option does internally is call the function open_file_if_needed right? Why not add a boolean preview keyword parameter to Scene.render which does exactly that?
On the topic of opening external applications via manim, we already sort of do this with Mobject.show, no?

I would sooner remove Mobject.show than implement more functionality that depends on external applications.

IIRC, all the CLI -p option does internally is call the function open_file_if_needed right? Why not add a boolean preview keyword parameter to Scene.render which does exactly that?
On the topic of opening external applications via manim, we already sort of do this with Mobject.show, no?

I would sooner remove Mobject.show than implement more functionality that depends on external applications.

I don't think that it is very unusual to ask the operating system to open a generated file with the corresponding default viewer. For MacOS and Windows, this should be covered by open or start -- and for UNIXoid systems that use a window managers which is a part of freedesktop.org (which is certainly all of the mainstream ones like Gnome and KDE), there is xdg-open. (Actually, we are already using said logic in open_file in utils/file_ops.py.)
I don't really think that when making a call to any of these, that we introduce a dependency on an external application (although I can relate to @leotrs's worries of feature creep). Given the popularity of the -p flag (judging from questions on Discord), I can see how people who like to render within the script would find a similar functionality for there useful.
Personally, I wouldn't mind adding a keyword argument to render which calls the existing open_file function.

I don't think that it is very unusual to ask the operating system to open a generated file with the corresponding default viewer. For MacOS and Windows, this should be covered by open or start -- and for UNIXoid systems that use a window managers which is a part of freedesktop.org (which is certainly all of the mainstream ones like Gnome and KDE), there is xdg-open. (Actually, we are already using said logic in open_file in utils/file_ops.py.)
I don't really think that when making a call to any of these, that we introduce a dependency on an external application (although I can relate to @leotrs's worries of feature creep). Given the popularity of the -p flag (judging from questions on Discord), I can see how people who like to render within the script would find a similar functionality for there useful.
Personally, I wouldn't mind adding a keyword argument to render which calls the existing open_file function.

To what benefit exactly? If it works and provides a convenience to users I don't see why we shouldn't. Calling render directly from the script may prove beneficial in debugging as well and in the case of manim this heavily involves viewing the output of a rendered scene, hence why I think the option of previews should not be limited to the command line.

To what benefit exactly? If it works and provides a convenience to users I don't see why we shouldn't. Calling render directly from the script may prove beneficial in debugging as well and in the case of manim this heavily involves viewing the output of a rendered scene, hence why I think the option of previews should not be limited to the command line.

I can get behind using xdg-open, but I would be very much against using something like matplotlib (see here). And even then, if someone asks for a different application, or to add more features to the preview function, I would be very much against it.
But a simple clean call to xdg-open seems fine.

I can get behind using xdg-open, but I would be very much against using something like matplotlib (see here). And even then, if someone asks for a different application, or to add more features to the preview function, I would be very much against it.
But a simple clean call to xdg-open seems fine.


Support writing from an Object::read::File

I have an existing ELF file that I'd like to change the loader in (similar to the patchelf tool), but it doesn't look like there's any easy way to do that with this library.
Is there something technical that's stopping Object::read::File from being able to write files back out?

If you want to patch an executable you will have to use the low level writing interface. The high level one is only capable of producing object files. You could take a look at the elfcopy example: https://github.com/gimli-rs/object/blob/b237c5c603bda4fc77eec4db951d833b79cb543d/crates/examples/src/bin/elfcopy.rs

Alright, I'll give that all a look. Thanks for the help!

The technical reason is that object::read::File  tries not to make copies of anything, so you wouldn't be able to modify anything before writing back out, and there's no point writing without modifications.
Currently you need to do what either the objcopy or elfcopy examples do, but there's scope for adding something to the crate to make those easier.

I'm fine with the ways you linked you @philipc - I'm still looking into the use case I'm working on with my program, and I'm not positive I'll need to work with ELF files now anyway. If I do need to those examples should be more than fine, I'm always down for making everything more user-friendly though :)


Suggested Enhancement - Support Top Authors in blog/post/view

Hi Aaiyo,
I have made this simple query to show top authors in blog/post/view;

<?= Yii::t("app","Top Authors")?>

                <?php
                $query = new Query;
                $query->select(['author_id', 'username', 'COUNT(*) AS cnt'])
                    ->from('blog_post')
                    ->innerJoin('user', 'blog_post.author_id = user.id')
                    ->where('status = 1')
                    ->andwhere('isdel = 0')
                    ->orderBy('cnt DESC')
                    ->groupBy('author_id')
                    ->limit(4);

                $command = $query->createCommand();
                $rows = $command->queryAll();
                foreach ($rows as $r)
                {
                    echo '
'.Html::a($r['username'] . ' (' . $r['cnt'] . ')',["//blog/post/index","authorName"=>$r['username']]).'
';
                }
                ?>

Would you mind updating PostController / ActionIndex to support the following type of PostSearch;
http://localhost/blog/post/index?authorName=John+Doe
Regards,
Adam

Hi Aaiyo,
I've made the following changes to PostController / ActionIndex

Add $authorName = false to method signature
Modify the queryParams by adding the following statement;
if ($authorName) { $req[basename(str_replace("\","/",get_class($searchModel)))]["authorName"] = $authorName;}

It works and gets the required result, but if you don't support the changes, they will be overwritten when you push the next update
Regards,
Adam

Hi Adam,
Current PostSearch model already accomodate such query. To search post by author name just put PostSearch[authorName]=.. . for example: http://localhost/blog/post/index?PostSearch[authorName]=John+Doe
I it okay?

Oh yes, true - perfect! Sorry for the oversight
Adam


Implement streaming zipfile creation for sending directories

Instead of creating a temporary zip file on disk to send when transferring a directory, this commit uses the zipstream-ng library to generate the zip file on the fly. This results in no disk usage, a much shorter startup time, and minimal memory usage.
For adding files to the stream from the directory, the walk function the zipstream-ng package provides was used since it preserves empty directories (obsoletes #422) as well as follows symlinks. Since files aren't actually read until they're about to be transferred, an os.access check is done to make sure that unreadable files are not added to the stream (which would cause it to crash mid-transfer).
I tested sending ~90GB and the transfer started immediately and finished successfully with minimal memory usage. Transfer speed was about the same as sending a non-zipped file.
(This is a cleaned up implementation of the proof of concept originally proposed here: https://github.com/magic-wormhole/magic-wormhole/issues/58#issuecomment-1672468894)

This is looking really nice, thanks for the PR! :partying_face:
My only minor hesitation is that it depends on two relatively-new libraries and I don't know what implications that may have for downstream packaging. (I haven't looked too closely at the libraries yet either).
Do you know if zipstream is in e.g. Debian or any distros yet?
Thanks again for your work on this, streaming large directories w/o using a ton of disk is a nice feature for sure!

I'm the maintainer of both of the added libraries (sorry, I had a disclaimer in the original comment but didn't copy it into the PR).
zipstream-ng is currently packaged in Debian (https://packages.debian.org/source/trixie/python-zipstream-ng) (though not the latest version yet), but iterable-io is not.
iterable-io is extremely small though (about 70LoC without comments) and can just be vendored into the code if packaging would be an issue. I did actually have it just copied in, but ended up extracting it out into it's own library since I had a couple of other unrelated projects that needed to use its functionality too.

Cool, thanks.
Great that the "bigger" dependency is already packaged :)
(Also, although I'm happy to do my best to make packaging easier, "making new software available" is what distros have chosen to do, so it's their problem overall).
Vendoring that lib would be worst-case, IMO -- better to let you continue to maintain it :)

Sorry for the delay .. trying to understand the implications of the last change and "deflate" expectations. Tested against Warp (but it doesn't auto-unpack anyway it seems).

The last commit only makes the "mode" check on incoming directories a bit looser so that it will accept just "zipfile" instead of only "zipfile/deflated". For sending data, the "mode" is unchanged since it's expected that other clients (or just older magic-wormhole versions) would be relying on the sent mode being the same "zipfile/deflate" as it always has been.
The other change was removing the compression parameter from the zipfile.ZipFile(...) call that reads the incoming zip. This is essentially a no-op because the zip is being opened in read-only mode and the specified compression value is only ever used for writing files (you can test this by creating a zipfile using compression=ZIP_LZMA and reading it back with ZipFile(..., mode="r", compression=ZIP_DEFLATED) - it still works).

Thanks again for the PR, sorry for the delays reviewing + merging!

Thanks for merging this! I think #422 and #232 can be closed now since they're about preserving empty directories which this PR added.

This works beautifully on an OS X (M1 mac studio)! Can't wait for it to be cut as a release in PyPI.

Great, always good to get test-reports (successful or not!)


unable to identify why am failing to merge

I'm submitting a ...
[ ] bug report
[ ] feature request
[ ] question about the decisions made in the repository
[ ] question about how to use this project

Summary

Other information (e.g. detailed explanation, stack traces, related issues, suggestions how to fix, links for us to have context, eg. StackOverflow, personal fork, etc.)

please link a PR

closed due to inactivity, please reopen with details


[Video / Animation Request] Conv1D / Conv3D

Hello,
I'm learning convnets and your animation videos on YouTube really helped me visualize and grok how Conv2D works intuitively.
Would you consider making animations for Conv1D / Conv3D layers?
Thanks,
Teddy

Hi, thanks for the positive feedback! I do have Conv1D/3D animations planned. They're currently pretty far down in the queue, but I'll bump them up in priority a bit in response to your request :)


Include equilibration timestep

Description
Different timestep for equilibration than for production.
Status
-I only modified it for OpenMM right now.

I corrected the typo and modified the amber equilibration.


Ability to define custom request headers for logmarker requests

Hi,
Currently, such behavior is implemented for the actual tests using the config field testoverride.input.headers of type map. Per my tests, these custom request headers are not used in the logmarker requests.
Considering the same configurability for the logmarker requests and extending its config API with this feature, makes it more flexible and avoids potential unnecessary logic customization or configuration on the custom WAF servers side.
If I'm missing any point here, I'd appreciate you're clarifying it.
Thanks.

Thanks @4lisalehi. I understand what you need. We'll need to add a new option for that.

@4lisalehi The name of the log marker header can be set through the LogMarkerHeaderName field in the configuration file. Is that good enough for you? Otherwise, I might not have understood what you asked.


Show full vscode URI when asking to open

This prompt isn't that helpful, if you are going to ask me whether it's ok to open a URI, I need to see what the URI is. It could be a tooltip on the truncated form. Also the truncated form could be longer.

The URL is cropped now because https://github.com/microsoft/vscode/issues/66628
Do you have a suggestion?

Tooltip? Or show the full URI path and only truncate the query?

We can't show tool tip on VS Code, since that uses a modal popup, which is native. Your screenshot shows web, right?
Well, even if we only truncate the query, it could be that it's the query that contains ?andPleaseStealCreditCard=1.

No I'm using desktop vscode. That's ok if there isn't really anything we can do.


Tweetledee errors

Hi,
I followed the steps for installation on my server but I am getting this error
"Call to undefined function mb_internal_encoding()" in tweetledee/tldlib/tmhUtilities.php on line 45.
Tweetledee Version: 0.4.1
PHP version: 5.4.26

It looks like the version of PHP on your server does not support this PHP built-in function.  mb_internal_encoding() is supported in all PHP5 versions.  Here is the documentation:
http://php.net/manual/en/function.mb-internal-encoding.php
I would check with your hosting provider to see if they are blocking this function for some reason.  If you have a local PHP install, you can test it there to confirm that this is the problem.

Thanks!

my pleasure

On Jun 1, 2015, at 11:00 AM, seunsodimu<EMAIL_ADDRESS>wrote:
Thanks!
—
Reply to this email directly or view it on GitHub.


Clear screen is always on

I am using TerminalMenu with default settings, just passing a title and options, but everytime a menu is created it the previous one is cleared.
I would like the menus to appear below each other is there a way to do that?
Thanks

Could you provide your code as an example ?

Also I think you are looking for the inverse of   -l, --clear-screen    clear the screen before the menu is shown

The current develop branch adds a new clear_menu_on_exit constructor parameter which defaults to True. Could you install the development version with
python3 -m pip install git+https://github.com/IngoMeyer441/simple-term-menu@develop

and set clear_menu_on_exit to False?

The clear_menu_on_exit is now released (v0.10.5). Please feel free to reopen if it does not work as expected.

The clear_menu_on_exit is now released (v0.10.5). Please feel free to reopen if it does not work as expected.


Move reflect-metadata to a peer dependancy

OS?
All
Versions.
All versions after 1.0.0-beta.20-1
Repro steps.
Look at the package.json in an installed angular-cli
The log given by the failure.
Mention any other details that might be useful.
If two modules import different versions of this module it will cause some very confusing errors. By including it as a peer npm will output a warning upon detecting a version mismatch and will only install the newer of the mismatched versions. Situations like this is the whole reason the concept of peer dependencies exists

#3655 pull request removes the need for reflect-metadata in cli and @ngtools webpack. If & when merged, this issue will no longer be required.

Fixed by https://github.com/angular/angular-cli/pull/3655


Export-Excel to same file name

Hi,
As I remember, When I run Export-Excel -Path C:\test.xlsx, if test.xlsx is existed in the same path, the file was overwrited.
But, now I found if the same file is existed, it did not overwrite the file. Is it normal behavior?
FYI, I did not specify append switch.
Thanks.

Best to check and remove the xlsx file then export if you want it overwritten.


Fix bug with MultilineMethodCallBraceLayout

Before submitting the PR make sure the following are checked:

[ ] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[ ] Used the same coding conventions as the rest of the project.
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[ ] All tests are passing.
[ ] The new code doesn't generate RuboCop offenses.
[ ] The PR relates to only one subject with a clear title
and description in grammatically correct, complete sentences.

Fix https://github.com/bbatsov/rubocop/issues/3462
The idea is that we can still consider a method call "single line" even
when the receiver spans multiple lines

(Woops, this is a bit broken, going to fix and re-open)


eval_checksum as a folder checksum

There're two problems in eval_checksum:

There's no specification of order in os.listdir(), so the same folder can have different checksums;

Since the state is only affected by file contents, modifications in the relative path of the files may not change the checksum;

Attached to the issue there's a test illustrating problem 2.
min.txt

Good points.
Regarding the first problem, it looks like it's enough to sort the outputs of os.listdir (i.e. sorted(os.listdir(path))). Do you agree?
Now, the second problem. How do you propose we solve this? As I understand it, usually when people do checksums of a directory they actually just do a checksum of their contents, as logrun currently does, or somehow zip the directory into a single file and do a checksum of that file.
The only way I can think right now is to do some sort of tarfile-like joining of the whole directory into a single byte stream, and using these bytes as input for the hash. But this seems inefficient!

I agree with the sorting.
Assuming that state.update(a) and state.update(b) is the same as state.update(ab), ie, the chunks part is correct:
Sorting and running state.update(filename) before state.update(file contents) or state.update(dir name) before the recursive call seems to solve the issue.

I agree with the sorting.

:+1:

Assuming that state.update(a) and state.update(b) is the same as state.update
(ab), ie, the chunks part is correct:

I'm 99.9% sure that .update(a) followed by .update(b) is the same as
.update(a + b), but much more performant. I'll check.

Sorting and running state.update(filename) before state.update(file contents)
or state.update(dir name) before the recursive call seems to solve the issue.

But does it really solve the issue?
Imagine a case like this:
my_dir/
    file1.txt
    file2.txt

Where file1.txt contains abc and file2.txt contains def. Now,
for some reason, the directory changed and we'd have
my_dir/
    file1.txt

with file1.txt containing
abcfile2.txtdef

The two checksums would be the same, if we use your proposed method. I
understand that this seems like a pretty particular case (I mean, how
did the path get as part of the file here? haha), but it does bother me
a little that this is a relatively minor and easy to do change which is
able to fool the checksum system completely.

Oh, I just realised that in the end this is more robust than what we currently have (right now we can fool the checksum system by simply renaming a file!). So, I'm thinking I'll implement your idea now anyways, and bump the version to 0.2.0, since this is a "breaking" change.

Closing this issue.
If we sometime have a better ideia of how to do the checksum of a directory, then we can reopen.

Actually, if we replace all null bytes in the file contents and paths with two null bytes, then we can use a null byte followed by some other specific char as a separator between files.
In fact, I think we can do this fairly easily (and probably fairly efficiently) in Python with .replace('\0', '\0\0').


merge package template from arlac77/npm-package-template

Updated standard to latest version

Codecov Report

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

@@           Coverage Diff           @@
##           master      #96   +/-   ##
=======================================
  Coverage   86.32%   86.32%
=======================================
  Files          16       16
  Lines         117      117
=======================================
  Hits          101      101
  Misses         16       16

Continue to review full report at Codecov.

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

Coverage remained the same at 86.325% when pulling 33772fc9c2e7e1e49f1d79c5efcc8c5280c0699f on template-sync-1 into 6623d75826f23c399ea15ca9c139701a35319325 on master.

Coverage remained the same at 86.325% when pulling 33772fc9c2e7e1e49f1d79c5efcc8c5280c0699f on template-sync-1 into 6623d75826f23c399ea15ca9c139701a35319325 on master.


fix field name for LambdaInfo

I had to make this change to load this module in v0.5
Julia Version 0.5.0-dev+2845
Commit 4ce06c2 (2016-02-23 09:49 UTC)

Without this, I got ERROR: type LambdaInfo has no field code

Yeah, this is probably not wrong, but I need to fix a couple other things first. Let me see how far I can get.

This has been fixed.


AnalyticalModel: No curve wrapping in getDiscountCurve() method

What is this PR for?

Do not use
DiscountCurveFromForwardCurve-wrapper in getDiscountCurve() if given
curveName corresponds to forwardCurve. This is analogous to the
behaviour of getForwardCurve()
added documentation for getDiscountCurve() and getForwardCurve() in
the interface

What type of PR is it?
Improvement
Questions:
Is it problematic for others user to have this more strict behaviour of AnalyticalModel::getDiscountCurve()?

Looks very good to me. The wrapping should be done outside (calibrated curves, etc.), if needed.
I will think a little if this could break anything... (but UnitTests are OK).

It depends what you call break. There is e.g. a fallback-behaviour in SwapLeg::getValue() where the forward can also be calculated from a discountCurve. However, I removed this Feature in the parallel pull-request as I think that this implicit behaviour is dangerous


Not compatible with Play 2.7

With Silhouette 5.0.6 and Play 2.7.0-RC3:
java.lang.AbstractMethodError: Method com/mohiva/play/silhouette/api/actions/DefaultSecuredErrorHandler.play$api$http$Status$_setter_$REQUEST_HEADER_FIELDS_TOO_LARGE_$eq(I)V is abstract
	at com.mohiva.play.silhouette.api.actions.DefaultSecuredErrorHandler.play$api$http$Status$_setter_$REQUEST_HEADER_FIELDS_TOO_LARGE_$eq(SecuredAction.scala)
	at play.api.http.Status.$init$(StandardValues.scala:221)
	at com.mohiva.play.silhouette.api.actions.DefaultSecuredErrorHandler.<init>(SecuredAction.scala:299)
	at com.mohiva.play.silhouette.api.actions.SecuredErrorHandlerComponents.securedErrorHandler(SecuredAction.scala:363)
	at com.mohiva.play.silhouette.api.actions.SecuredErrorHandlerComponents.securedErrorHandler$(SecuredAction.scala:363)

This comes from new status having been added to the trait play.api.http.Status (in StandardValues).

Is it possible to help you with that?

@dejvid Yes, you can help with https://github.com/mohiva/play-silhouette/pull/553

I've released a snapshot version. Please report any issues back. I'll release a RC1 in a week if no issues will be reported.

I've released a RC1

Thanks. I am not sure if this is the right forum to ask this. I upgraded to Play 2.7 and Silhouette 6. At first I got the error
Error:(24, 7) class PasswordRepository needs to be abstract, since value classTag in trait DelegableAuthInfoDAO of type scala.reflect.ClassTag[com.mohiva.play.silhouette.api.util.PasswordInfo] is not defined
class PasswordRepository(utilities:HelperMethods,userRepo:UsersRepository,messagesApi: MessagesApi,langs:Langs) extends DelegableAuthInfoDAO[PasswordInfo]{
Then I tried to define the value as follows
class PasswordRepository(utilities:HelperMethods,userRepo:UsersRepository,messagesApi: MessagesApi,langs:Langs) extends DelegableAuthInfoDAO[PasswordInfo]{
override val classTag = ClassTagPasswordInfo
Is this the right way to do things?
abstract val classTag: ClassTag[T]
The class tag for the type parameter.

Please see http://discourse.silhouette.rocks/t/problem-with-passwordinfodao-implmentation-in-silhouette-version-6-1/366


what is the '*.lab.gz' file?

I have AMI Headset wavs, but *.lab.gz is not.
I thought the *.lab.gz file is vad binary archive file of kaldi(from compute-vad), but it seems not.
How can I get the *.lab.gz files?
Thanks.

I found what the *.lab.gz is.
cat tmp.vad.lab
# 1 0 0 1 1

import numpy as np
np.loadtxt('tmp.vad.lab', dtype=object)
# array(['1', '0', '0', '1', '1'], dtype=object)

Hi. I assumed that the VAD would be automated. Any updates on this?

@gogyzzz please look at examples, lab.gz si basically [start] [end] segmentation
@shuvam-creditmate you are welcomed to add this functionality, maybe just create wrapper in kaldi

Hi. I assumed that the VAD would be automated. Any updates on this?

Yes. the *.lab.gz has VAD information, but I wonder what VAD for making it.
It is from htk? *.lab is htk format.

@shuvam-creditmate Thanks, I created rttm and segment file using some script. It seems to work.

@gogyzzz did you end up finding/creating a script to generate the VAD files?

@tylercollins590 You can create a simple python script using https://www.idiap.ch/software/bob/docs/bob/bob.kaldi/master/index.html#. The documentation is well done and it won't take much time to implement.


Build fails with python3

The build process fails when the build environment is changed to python3.
I get the following error
[rtd-command-info] start-time: 2018-10-30T11:10:38.801231, end-time: 2018-10-30T11:10:38.813137, duration: 0, exit-code: -1
python3.5 -mvirtualenv --no-site-packages --no-download /app/user_builds/traceshader/envs/latest
Traceback (most recent call last):
  File "/app/readthedocs/doc_builder/environments.py", line 150, in run
    env=environment,
  File "/usr/lib/python2.7/subprocess.py", line 390, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1024, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Hi @p3trus, are you trying to build python3 project? Is the code open?


Feature request to have a static link to the latest timelapse photo

I would like to easily access the latest photo captured by timelapse operation from a static URL like /media/latest.jpg. Would that feature be possible to have built-in? I could of course solve this in many ways just with shell scripting, web server etc. However, I believe some others might benefit from this and I expect it to be rather simple implementation.
I know there is cam_pic.php but it is having the dimensions of the video stream which I'm setting lower than for timelapse photos. I would like to have an easy way to see and automatically fetch the latest timelapse shot as I'm running the timelapse constantly with certain interval.

I am looking into providing a php url that will return the latest time lapse.

Using the url /cam_picLatestTL.php will return the jpeg of the latest time lapse images


Muzei should tell you if your selected source was removed

When the selected source is removed, Muzei defaults back to the Featured Art source. It would be nice if Muzei told you this happened to prevent user confusion.
This might be an appropriate snackbar for the Source settings screen as then it would be a contextual note of what happened since the last time you visited the settings screen.

Looking at you, Imgur >_>

Partially fixed: we now show a Toast when the source is reverted. Still looking at how best to integrate something visible into Muzei's UI so that you can see that it happened after the fact.


Added drop_retention_policy()

@roman-vynar Can you write a small test?

@aviau tests added.
Looks like Travis CI fails on some unrelated issue with flake.

Thank you for contributing!


New Microsoft Edge - Stuck on "Authorizing" (works on Google Chrome)

[x] I have searched through existing Issues and confirmed that this particular issue has not already been reported.
[x] I have read and performed all the steps listed in the Wiki.

What steps will reproduce the problem?

Install new Microsoft Edge
Install app from Chrome APP Store
Try to Authorize

What is the expected result?

Authorized and shows calendar

What happens instead?

Does not load past "Authorizing..."

Screenshot:

System Information:

Version:
Language: English
Timezone Offset: EST - 5:00
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 Edg/81.0.416.68

Verified on multiple PCs.

Works flawlessly on Chrome, doesn't work on new Edge.

https://github.com/manastungare/google-calendar-crx/wiki/Supported-Browsers


We need it to update our app to ruby 3.3.

We were updating our app to ruby 3.3 but we got this error:
--------------------------------------------------------------------------------
GEMS
install required gems
--------------------------------------------------------------------------------
Your Ruby version is 3.2.2, but your Gemfile specified 3.3.0
--------------------------------------------------------------------------------
RUBOCOP
linter and formatter

@hvillero 3.3 images have been released! I've based this on bookworm vs bullseye, so keep an eye out for anything strange.

https://hub.docker.com/repository/docker/krsyoung/rails-run
https://hub.docker.com/repository/docker/krsyoung/rails-build
https://hub.docker.com/repository/docker/krsyoung/anony-base