Error - 500 - Undefined variable $tplCharacterId

i get the following error:

Oooops, Something went wrong!
| You have experienced a technical error. We apologize.
  |
  | Status: 'Internal Server Error'
  |
  | Message: Undefined variable $tplCharacterId

any help is welcome, thx.
DB

This happens when you are running a too new PHP version. Most likely you are trying to run it on PHP 8+ which is not yet supported.


Improves all aspects of the shell for greater usability.

Can't wait to try it out!

@vibbix Please visit my fork of this project to download the newest bits.


unable to upgrade connection: Forbidden

devspace dev` fails with unable to upgrade connection: Forbidden
start_dev: start sync: exec: unable to upgrade connection: Forbidden
fatal exit status

For some reason, it does not seem to be able to create the port forward.
However kubectl can connect to the cluster just fine.
Does any ServiceAccount need to be setup for this? If so, could you kindly provide an example for the permissions needed?
Debug output
#devspace dev --debug

19:34:34 info Using namespace 'default'
19:34:34 info Using kube context 'microk8s'
19:34:34 debug Use config:
version: v2beta1
name: app
pipelines:
    deploy:
        name: deploy
        run: |-
            run_dependencies --all                            # 1. Deploy any projects this project needs (see "dependencies")
            build_images --all -t $(git describe --always)    # 2. Build, tag (git commit hash) and push all images (see "images")
            create_deployments --all                          # 3. Deploy Helm charts and manifests specfied as "deployments"
    dev:
        name: dev
        run: |-
            run_dependencies --all       # 1. Deploy any projects this project needs (see "dependencies")
            create_deployments --all     # 2. Deploy Helm charts and manifests specfied as "deployments"
            start_dev app                # 3. Start dev mode "app" (see "dev" section)
images:
    app:
        name: app
        image: zitabel/app
        tags:
            - v0.0.1
        dockerfile: ./Dockerfile
deployments:
    app:
        name: app
        helm:
            chart:
                name: component-chart
                repo: https://charts.devspace.sh
            values:
                containers:
                    - image: zitabel/app:v0.0.1
                service:
                    ports:
                        - port: 8080
dev:
    app:
        name: app
        imageSelector: zitabel/app:v0.0.1
        devImage: ghcr.io/loft-sh/devspace-containers/javascript:17-alpine
        sync:
            - path: ./
        terminal:
            command: ./devspace_start.sh
        ssh:
            enabled: true
        proxyCommands:
            - command: devspace
            - command: kubectl
            - command: helm
            - command: git
        ports:
            - port: "9229"
            - port: "8080"
        open:
            - url: http://localhost:8080
commands:
    migrate-db:
        name: migrate-db
        command: |-
            echo 'This is a cross-platform, shared command that can be used to codify any kind of dev task.'
            echo 'Anyone using this project can invoke it via "devspace run migrate-db"'

19:34:34 debug Run pipeline:
name: dev
run: |-
    run_dependencies --all       # 1. Deploy any projects this project needs (see "dependencies")
    create_deployments --all     # 2. Deploy Helm charts and manifests specfied as "deployments"
    start_dev app                # 3. Start dev mode "app" (see "dev" section)

19:34:34 run_dependencies --all
19:34:34 Marked project excluded: app
19:34:34 create_deployments --all
19:34:34 Deploying 1 deployments concurrently...
19:34:34 deploy:app Deploying chart /home/elias/.devspace/component-chart/component-chart-0.8.4.tgz (app) with helm...
19:34:34 deploy:app Deploying chart with values:
 containers:
    - image: zitabel/app:v0.0.1
service:
    ports:
        - port: 8080

19:34:34 deploy:app Execute '/home/elias/.devspace/bin/helm upgrade app --values /tmp/3714250176 --install --namespace default /home/elias/.devspace/component-chart/component-chart-0.8.4.tgz --kube-context microk8s'
19:34:35 deploy:app Deployed helm chart (Release revision: 1)
19:34:35 deploy:app Successfully deployed app with helm
19:34:35 Deploying 0 deployments concurrently
19:34:35 start_dev app
19:34:35 dev:app DevPod Config:
name: app
imageSelector: zitabel/app:v0.0.1
devImage: ghcr.io/loft-sh/devspace-containers/javascript:17-alpine
sync:
    - path: ./
terminal:
    command: ./devspace_start.sh
ssh:
    enabled: true
proxyCommands:
    - command: devspace
    - command: kubectl
    - command: helm
    - command: git
ports:
    - port: "9229"
    - port: "8080"
open:
    - url: http://localhost:8080

19:34:36 dev:app Replacing Deployment app...
19:34:36 dev:app Replaced pod spec:
metadata:
  annotations:
    devspace.sh/container: container-0
    devspace.sh/imageSelector: zitabel/app:v0.0.1
    helm.sh/chart: component-chart-0.8.4
  creationTimestamp: null
  labels:
    app.kubernetes.io/component: app
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: devspace-app
    devspace.sh/replaced: "true"
spec:
  containers:
  - command:
    - sleep
    - "1000000000"
    image: ghcr.io/loft-sh/devspace-containers/javascript:17-alpine
    imagePullPolicy: IfNotPresent
    name: container-0
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
  dnsPolicy: ClusterFirst
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  terminationGracePeriodSeconds: 5

19:34:36 dev:app Scaled down Deployment app
19:34:36 dev:app Successfully replaced Deployment app
19:34:36 dev:app Waiting for pod to become ready...
19:34:36 dev:app Start selecting a single container with selector image selector: zitabel/app:v0.0.1
19:34:38 dev:app Selected app-devspace-76b64468-qvd7q:container-0 (pod:container)
19:34:38 dev:app open  Opening 'http://localhost:8080' as soon as application will be started
19:34:38 dev:app ports Start selecting a single pod with selector pod name: app-devspace-76b64468-qvd7q
19:34:38 dev:app sync  Start selecting a single container with selector pod name: app-devspace-76b64468-qvd7q
19:34:39 dev:app sync  Starting sync...
19:34:39 dev:app sync  Inject devspacehelper...
19:34:39 dev:app ports Port forwarding started on: 9229 -> 9229, 8080 -> 8080
19:34:39 dev:app term  Start selecting a single container with selector pod name: app-devspace-76b64468-qvd7q
19:34:39 dev:app ports Stopped port forwarding 9229
19:34:39 dev:app ports Stopped port forwarding 8080
19:34:39 dev:app Stopped dev app
19:34:39 start_dev: start sync: exec: unable to upgrade connection: Forbidden
19:34:39 fatal exit status 1

Local Environment:

DevSpace Version: 6.0.1
Operating System: linux
ARCH of the OS: AMD64

Kubernetes Cluster:

Cloud Provider: ubuntu microk8s installation
Kubernetes Client Version: v1.24.3-2+63243a96d1c393
Kubernetes Server Version: v1.24.3-2+63243a96d1c393
Kustomize Version: v4.5.4

/kind bug

Does not work for examples/quickstart-kubectl
#devspace dev --debug
20:11:39 info Using namespace 'default'
20:11:39 info Using kube context 'microk8s'
20:11:39 debug Use config:
version: v2beta1
name: quickstart-kubectl
deployments:
    quickstart:
        name: quickstart
        kubectl:
            manifests:
                - kube
dev:
    my-dev:
        name: my-dev
        imageSelector: zitabel/quickstart
        devImage: loftsh/javascript:latest
        sync:
            - path: ./
              excludePaths:
                - node_modules
        terminal:
            command: ./devspace_start.sh
        ssh: {}
        ports:
            - port: "3000"
        open:
            - url: http://localhost:3000

20:11:39 debug Run pipeline:
name: dev
run: |-
    run_dependencies --all
    ensure_pull_secrets --all
    build_images --all
    create_deployments --all
    start_dev --all

20:11:39 run_dependencies --all
20:11:39 Marked project excluded: quickstart-kubectl
20:11:39 ensure_pull_secrets --all
20:11:39 build_images --all
20:11:39 create_deployments --all
20:11:39 Deploying 1 deployments concurrently...
20:11:39 deploy:quickstart Applying manifests with kubectl...
20:11:40 deploy:quickstart deployment.apps/devspace configured
20:11:40 deploy:quickstart service/external unchanged
20:11:40 deploy:quickstart Successfully deployed quickstart with kubectl
20:11:40 Deploying 0 deployments concurrently
20:11:40 start_dev --all
20:11:40 dev:my-dev DevPod Config:
name: my-dev
imageSelector: zitabel/quickstart
devImage: loftsh/javascript:latest
sync:
    - path: ./
      excludePaths:
        - node_modules
terminal:
    command: ./devspace_start.sh
ssh: {}
ports:
    - port: "3000"
open:
    - url: http://localhost:3000

20:11:40 dev:my-dev Try to find replaced deployment...
20:11:40 dev:my-dev Replaced pod spec:
metadata:
  annotations:
    devspace.sh/container: default
    devspace.sh/imageSelector: zitabel/quickstart
  creationTimestamp: null
  labels:
    app.kubernetes.io/component: default
    app.kubernetes.io/name: devspace-app
    devspace.sh/replaced: "true"
spec:
  containers:
  - command:
    - sleep
    - "1000000000"
    image: loftsh/javascript:latest
    imagePullPolicy: Always
    name: default
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
  dnsPolicy: ClusterFirst
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  terminationGracePeriodSeconds: 30

20:11:40 dev:my-dev No changes required in replaced deployment devspace-devspace
20:11:40 dev:my-dev Waiting for pod to become ready...
20:11:40 dev:my-dev Start selecting a single container with selector image selector: zitabel/quickstart
20:11:40 dev:my-dev Selected devspace-devspace-5c5dd5b78f-bcsn9:default (pod:container)
20:11:40 dev:my-dev open  Opening 'http://localhost:3000' as soon as application will be started
20:11:40 dev:my-dev ports Start selecting a single pod with selector pod name: devspace-devspace-5c5dd5b78f-bcsn9
20:11:40 dev:my-dev sync  Start selecting a single container with selector pod name: devspace-devspace-5c5dd5b78f-bcsn9
20:11:41 dev:my-dev sync  Starting sync...
20:11:41 dev:my-dev sync  Inject devspacehelper...
20:11:41 dev:my-dev ports Port forwarding started on: 3000 -> 3000
20:11:41 dev:my-dev term  Start selecting a single container with selector pod name: devspace-devspace-5c5dd5b78f-bcsn9
20:11:41 dev:my-dev ports Stopped port forwarding 3000
20:11:41 dev:my-dev Stopped dev my-dev
20:11:41 start_dev: start sync: exec: unable to upgrade connection: Forbidden
20:11:41 fatal exit status 1
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$ devspace purge
info Using namespace 'default'
info Using kube context 'microk8s'
dev:my-dev Stopping dev my-dev
dev:my-dev Scaling up Deployment devspace...
purge:quickstart Deleting deployment quickstart...
purge:quickstart Successfully deleted deployment quickstart
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$
elias@jurij:~/code/app.steadiq.com/devspace/examples/quickstart-kubectl$ devspace dev --debug
20:11:53 info Using namespace 'default'
20:11:53 info Using kube context 'microk8s'
20:11:53 debug Use config:
version: v2beta1
name: quickstart-kubectl
deployments:
    quickstart:
        name: quickstart
        kubectl:
            manifests:
                - kube
dev:
    my-dev:
        name: my-dev
        imageSelector: zitabel/quickstart
        devImage: loftsh/javascript:latest
        sync:
            - path: ./
              excludePaths:
                - node_modules
        terminal:
            command: ./devspace_start.sh
        ssh: {}
        ports:
            - port: "3000"
        open:
            - url: http://localhost:3000

20:11:53 debug Run pipeline:
name: dev
run: |-
    run_dependencies --all
    ensure_pull_secrets --all
    build_images --all
    create_deployments --all
    start_dev --all

20:11:53 run_dependencies --all
20:11:53 Marked project excluded: quickstart-kubectl
20:11:53 ensure_pull_secrets --all
20:11:53 build_images --all
20:11:53 create_deployments --all
20:11:53 Deploying 1 deployments concurrently...
20:11:53 deploy:quickstart Applying manifests with kubectl...
20:11:53 deploy:quickstart deployment.apps/devspace created
20:11:53 deploy:quickstart service/external created
20:11:53 deploy:quickstart Successfully deployed quickstart with kubectl
20:11:53 Deploying 0 deployments concurrently
20:11:53 start_dev --all
20:11:53 dev:my-dev DevPod Config:
name: my-dev
imageSelector: zitabel/quickstart
devImage: loftsh/javascript:latest
sync:
    - path: ./
      excludePaths:
        - node_modules
terminal:
    command: ./devspace_start.sh
ssh: {}
ports:
    - port: "3000"
open:
    - url: http://localhost:3000

20:11:53 dev:my-dev Replacing Deployment devspace...
20:11:53 dev:my-dev Replaced pod spec:
metadata:
  annotations:
    devspace.sh/container: default
    devspace.sh/imageSelector: zitabel/quickstart
  creationTimestamp: null
  labels:
    app.kubernetes.io/component: default
    app.kubernetes.io/name: devspace-app
    devspace.sh/replaced: "true"
spec:
  containers:
  - command:
    - sleep
    - "1000000000"
    image: loftsh/javascript:latest
    imagePullPolicy: Always
    name: default
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
  dnsPolicy: ClusterFirst
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  terminationGracePeriodSeconds: 30

20:11:54 dev:my-dev Scaled down Deployment devspace
20:11:54 dev:my-dev Successfully replaced Deployment devspace
20:11:54 dev:my-dev Waiting for pod to become ready...
20:11:54 dev:my-dev Start selecting a single container with selector image selector: zitabel/quickstart
20:12:01 dev:my-dev Selected devspace-devspace-5c5dd5b78f-h99lt:default (pod:container)
20:12:01 dev:my-dev open  Opening 'http://localhost:3000' as soon as application will be started
20:12:01 dev:my-dev ports Start selecting a single pod with selector pod name: devspace-devspace-5c5dd5b78f-h99lt
20:12:01 dev:my-dev sync  Start selecting a single container with selector pod name: devspace-devspace-5c5dd5b78f-h99lt
20:12:01 dev:my-dev sync  Starting sync...
20:12:01 dev:my-dev sync  Inject devspacehelper...
20:12:01 dev:my-dev ports Port forwarding started on: 3000 -> 3000
20:12:02 dev:my-dev term  Start selecting a single container with selector pod name: devspace-devspace-5c5dd5b78f-h99lt
20:12:02 dev:my-dev ports Stopped port forwarding 3000
20:12:02 dev:my-dev Stopped dev my-dev
20:12:02 start_dev: start sync: exec: unable to upgrade connection: Forbidden
20:12:02 fatal exit status 1

examples/quickstart-kubectl/.devspace/logs/dev.dev:my-dev.log
{"level":"info","msg":"dev:my-dev Waiting for pod to become ready...","time":"2022-08-28T20:03:01+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:03:12+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:03:22+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:03:32+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:03:43+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:03:54+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:04:04+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:04:14+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:04:25+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:04:35+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:04:46+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:04:56+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:05:07+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:05:17+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:05:28+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:05:38+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-6cb8bfcff5-gdhtr has status: ContainerCreating","time":"2022-08-28T20:05:48+02:00"}
{"level":"info","msg":"dev:my-dev Waiting for pod to become ready...","time":"2022-08-28T20:06:40+02:00"}
{"level":"warning","msg":"dev:my-dev DevSpace is waiting, because Pod devspace-devspace-5c5dd5b78f-bcsn9 has status: ContainerCreating","time":"2022-08-28T20:06:51+02:00"}
{"level":"info","msg":"dev:my-dev Selected devspace-devspace-5c5dd5b78f-bcsn9:default (pod:container)","time":"2022-08-28T20:07:00+02:00"}
{"level":"info","msg":"dev:my-dev open  Opening 'http://localhost:3000' as soon as application will be started","time":"2022-08-28T20:07:00+02:00"}
{"level":"info","msg":"dev:my-dev sync  Inject devspacehelper...","time":"2022-08-28T20:07:01+02:00"}
{"level":"info","msg":"dev:my-dev ports Port forwarding started on: 3000 -\u003e 3000","time":"2022-08-28T20:07:01+02:00"}
{"level":"info","msg":"dev:my-dev Waiting for pod to become ready...","time":"2022-08-28T20:11:40+02:00"}
{"level":"info","msg":"dev:my-dev Selected devspace-devspace-5c5dd5b78f-bcsn9:default (pod:container)","time":"2022-08-28T20:11:40+02:00"}
{"level":"info","msg":"dev:my-dev open  Opening 'http://localhost:3000' as soon as application will be started","time":"2022-08-28T20:11:40+02:00"}
{"level":"info","msg":"dev:my-dev sync  Inject devspacehelper...","time":"2022-08-28T20:11:41+02:00"}
{"level":"info","msg":"dev:my-dev ports Port forwarding started on: 3000 -\u003e 3000","time":"2022-08-28T20:11:41+02:00"}
{"level":"info","msg":"dev:my-dev Waiting for pod to become ready...","time":"2022-08-28T20:11:54+02:00"}
{"level":"info","msg":"dev:my-dev Selected devspace-devspace-5c5dd5b78f-h99lt:default (pod:container)","time":"2022-08-28T20:12:01+02:00"}
{"level":"info","msg":"dev:my-dev open  Opening 'http://localhost:3000' as soon as application will be started","time":"2022-08-28T20:12:01+02:00"}
{"level":"info","msg":"dev:my-dev sync  Inject devspacehelper...","time":"2022-08-28T20:12:01+02:00"}
{"level":"info","msg":"dev:my-dev ports Port forwarding started on: 3000 -\u003e 3000","time":"2022-08-28T20:12:01+02:00"}

examples/quickstart-kubectl/.devspace/logs/errors.log
{"level":"error","msg":"Runtime error occurred: error closing listener: close tcp4 <IP_ADDRESS>:3000: use of closed network connection","time":"2022-08-28T20:07:01+02:00"}
{"level":"error","msg":"Runtime error occurred: error closing listener: close tcp6 [::1]:3000: use of closed network connection","time":"2022-08-28T20:07:01+02:00"}
{"level":"error","msg":"Runtime error occurred: error closing listener: close tcp4 <IP_ADDRESS>:3000: use of closed network connection","time":"2022-08-28T20:11:41+02:00"}
{"level":"error","msg":"Runtime error occurred: error closing listener: close tcp6 [::1]:3000: use of closed network connection","time":"2022-08-28T20:11:41+02:00"}
{"level":"error","msg":"Runtime error occurred: error closing listener: close tcp4 <IP_ADDRESS>:3000: use of closed network connection","time":"2022-08-28T20:12:02+02:00"}
{"level":"error","msg":"Runtime error occurred: error closing listener: close tcp6 [::1]:3000: use of closed network connection","time":"2022-08-28T20:12:02+02:00"}

Hi @trickkiste, I think you'll need to give RBAC permissions for a pod, pod/exec and pod/portforward.

Hello, @trickkiste! Thanks a lot for reporting this issue!
Has @pratikjagrut's answer provided you with the answer you were looking for?
We'd really appreciate it if you could update us on the present issue.
Thanks!

@alexandradragodan well, initially I did not even have RBAC enabled, when I ran into that issue. Now I have and put some RBAC permissions in place and it works now. However, I can not really narrow down the real cause of the issue, as other parts of my initial setup might have interfered negatively. First time getting a k8s cluster up and running and especially the user/permissions part is documented rather purely in Kubernetes.
Thank you all for your help and concern.
I hope, next time I can provide a more detailed bug report.

Glad you managed to get it working & Congratulations on running your first k8s cluster!
I will then close the present issue as it is no longer occurring.
For any further questions, we're happy to support.


Add more support for native apps

What is the problem you are seeing? Please describe.
There should be a consideration on finding issues of apps not made on top of  Blockstack.js if the reviewer diagnosis that it is not an obvious bug because of the absence of care.
How is this problem misaligned with goals of app mining?
If we want to have native apps made integrated with Blockstack, we should help them grow and give them a little more attention, as for now there is no official SDK and support for them.
It helps to bring more awareness to Desktop users and integration of Blockstack Auth to them, welcoming new developers and users to the community.
What is the explicit recommendation you're looking to propose?
If a reviewer (e.g., NIL) finds an issue, it can share them with the developers at the time. As the count is very low, it can not be a big task to do.
Describe your long term considerations in proposing this change. Please include the ways you can predict this recommendation could go wrong, and possible ways mitigate.
There are official SDKs for Web, Android, iOS made by Blockstack and specified development team.
It can be done until there are more developers focused on native apps and normally more stability in the toolkit and SDK, or there is an official SDK from Blockstack with the PBC support.
Additional context
We are passionate about Desktop just as Web. There was not ready toolkit to make native Desktop apps and give pure experience integrated with Blockstack Auth.
It made us do it by our self, we port Blockstack.js, and it is shared here. We built some apps on top of it, and they went well like BlackHole and now it is in the top most-used apps.
This month, three native apps were removed form mining because of one bug only happened on the NIL reviewer machine. Now NIL kindly shared the issue and helped to fix the problem, but it was late and led to very unfortunate removal.
This one little bug leads to removal of months of work. One was Marks one of the Winners of CBE2 and One Dadroit the 4th of last month. If there were more support like other platforms, such problems would not happen. So it would be nice to give them a little slack until these can grow and no need for extra care.

I understand that the reviewer shared the issue with you already. So, the issue could be closed, couldn't it?
Do you want to establish a process where each reviewers provides individual feedback?

I think I made my point clear that if we like to have native apps that have no official SDK or Lib, we can have a more collaborative way to help them grow.
Such bugs are not because of absence of care from developers (eg when a JS app has a corrupted login as the lib is stable) and they are because of the SDK being young and need more support.
I like to know more opinion about this, and this issue is meant to know that.

@larrysalibra any opinions here on how this would impact testing? Or how this conflicts with your current test plan? Thx.

Can we define support?

@larrysalibra please weigh in here. Moving to review.

The problem with native apps is that we don't have much insight into what they are doing because we don't control the operating system and it generally isn't easy or possible (ios) for us to put software between native apps and the rest of the internet to audit what they are doing or enforce a set of rules against them.
For these reasons, I would tend to take the opposite viewpoint and suggest that we consider excluding native apps both desktop and mobile until which time we have adequate means to enforce a set of "can't be evil" rules against them on behalf of users.

NIL is 50% of the score for debuting apps, but only 25% of the score for incumbents. This creates a dynamics that should be taken into account when changing the weight of NIL.


Adding support for PayPal Order to contain Items

Using the latest version of the SDK, PayPal returns an error on Order creation, if the PurchaseUnitRequest contains items because the unit_amount field is missing in the JSON.
I added the unit_amount field and also needed to add the Money and PurchaseUnitAmountBreakdown. The breakdown is required, if the unit_amount field is set. See the PayPal documentation of the unit_amount parameter within an item.
Example
purchaseUnits := []paypalsdk.PurchaseUnitRequest{
    {
        Amount: &paypalsdk.PurchaseUnitAmount{
            Currency: "EUR",
            Value:    "100.00",
        },
        Description: "Foo 42",
        Items: []paypalsdk.Item{
            {
                Name:     "Aufnahme 1",
                Currency: "EUR",
                Price:    "0.30",
                Quantity: 3,
            },
        },
    },
}
payerInfo := paypalsdk.PayerInfo{}
appContext := paypalsdk.ApplicationContext{
    BrandName: "Bar",
}

payPalClient := // client instantiation
order, err := payPalClient.CreateOrder(paypalsdk.OrderIntentCapture, purchaseUnits, &payerInfo, &appContext)
if err != nil {
     // will have an error
}

The error message tells us that the required field unit_amount is missing:
{"name":"INVALID_REQUEST","message":"Request is not well-formed, syntactically incorrect, or violates schema.","debug_id":"4730a542abbbb","details":[{"field":"/purchase_units/0/items/0/unit_amount","value":"","location":"body","issue":"MISSING_REQUIRED_PARAMETER","description":"A required field / parameter is missing."}],"links":[{"href":"https://developer.paypal.com/docs/api/orders/v2/#error-MISSING_REQUIRED_PARAMETER","rel":"information_link","encType":"application/json"}]}

Thank you for PR!


Consider adding reinforcing bolts on the left and right sides

Closing as won't fix; we can re-raise this if there are actually issues.


Investigate breaking endpoints & Error handling

Owner @TimAagaard

I just broke your API, sorry.  If you run /api/v0.1/countries/population/filter with:

{
    "year": 2020,
    "orderBy": "name"
}

The app hard crashes.  I double checked locally and Node crashes.  (So if you're around and awake you should restart the app)

If you run the same route with the values in the documentation, it runs fine

If you change the year to 2020 in situation 2, the route runs forever and never returns, which would cause Heroku's router to send back a 503 because your dyno is stuck processing.  I don't know if its actually stuck, or taking a really long time but it's been running for over 10 minutes locally without returning - no errors from Node.

This is just one route that I checked because I thought it had the potential to be expensive.
I'm going to test all of these routes tonight and try to break them.  Then I'm going to attempt to fix them.
If you don't have any objections we can start off by wrapping all the routes in a try/catch block that just returns an HTTP 500 if the catch block gets triggered.  That will prevent hard crashes.
I would also recommend implementing default values for all parameters.
Beyond that, it's going to be profiling the routes for time constraints.  Anything over 30s is going to cause a 503 on Heroku.
We could also implement caching to speed up repeated routes if you don't already have that.
Originally posted by @TimAagaard in https://github.com/MartinsOnuoha/countriesNowAPI/issues/90#issuecomment-1062015186

@MartinsOnuoha Just a status update.  I figured out what was wrong with the population/filter route.  you run a find() on the data  to get the population data for a specified year.  If the year isn't found, it returns undefined and crashes when you try to sort the data based on the undefined value.  I fixed this by wrapping the whole route function in a try / catch block, adding the 'next' param to the route function, and on catch(err) I run next(err), which will pass it to express' built in error handler and cause a 500 response.  I also made it so that when find doesn't find anything it replaces it with {year: year, value: -1} and then afterwards use filter() to remove any data that has -1 as the population value.
So, now it will return empty data instead of crashing if there is no population data for a given year....and if there are any other ways it could crash it will now just fail gracefully, returning an HTTP 500 and if not in production mode, will dump a stack trace to the console.
Over the next couple days I hope to have all routes handled like this.
I recommend a 3-prong approach to fixing this issue.

Wrap all route functions in a try / catch block that runs next() in the catch block to forward everything along to Express' error handler.

Deprecate all POST routes in favor of GET routes.  POST routes aren't idempotent, GET routes are.  Your POST routes are idempotent because they don't alter anything.  For backwards compatibility purposes (and because, lets face it, it's nicer to send an object with names rather than remember the order of values in a GET route), I propose that we move the functionality of the POST routes to GET routes and make redirect() the POST routes to the GET routes. This will set us up nicely for step 3

Caching.  Cache all GET routes.  A simple key/value store of the request route / response object.  Throw some middleware in there that checks whether the cache holds the response and returns the value if it does, if not next() it on through to the actual route.

I would send a PR for each step.
Let me know if that sounds like a good plan to you.

@MartinsOnuoha PR sent, pending review.  Should fix all hard crashes.  You can close this issue when deployed.  I will open new issues for deprecating POST requests while maintaining backwards compatibility and caching all requests.
If you would like to move this to TS, I'm more than game but you should create a new branch that is completely empty aside from stuff to support your CI/CD pipeline and open an issue for it.  I would also recommend going with<EMAIL_ADDRESS>as it has some nice improvements like handling async errors better and if we're going to rewrite this, we may as well future proof it.


Pressing the send button

When pressing the send button on the 1.0.4 and 1.0.3 versions of the wallet nothing happens. It seems that only the "clear" button functions on this page.

Are you connected, green dot in the bottom right? No error?

Yes, everything is connected as expected.

What seed type did you import? Perhaps you made a watch-only wallet.

Think that might be the issue, there is no seed icon at the bottom right beside the rest of the icons. Will this mean I missed the snapshot too? Also, is there a way I can convert to a seed wallet?
Thanks for the help!

At setup time (File->New/Restore), import private keys, and type the keys - not the addresses. This will make a normal / spendable wallet.

Importing my private key crashes the wallet. Any ideas? No error is given.

Yes it seems like I did the same thing. Will I be able to claim my BTCP?

Do you still have the seed? Create a new wallet with the seed again in 1.0.4.
I had the exact same issue. Could not send, and restoring from private keys crashed my wallet. Creating a new wallet in 1.0.4. with the seed worked though, I just managed to send my ZCL.
AFAIK you should be able to claim your BTCP

So I have the same problem with my zcl-electrum wallet.  Send button wont work. Created a new wallet with private key-wallet crashed.  Created another wallet with the seed- problem still there ( send button wont funtion).  Any other way to solve this problem ? Help is much appreciated

PS. When i sent zcl to the wallet in the 1st place. It was in 1.0.0 zcl-electrum version. Already updated to 1.0.4 but still...

Just tried to create another new wallet with seed and it works!.  Awesome


Cannot declare interface Psr\Log\LoggerAwareInterface, because the name is already in use

Describe the bug
Cannot install & activate plugin when required with composer
Versions
Shopware version: <IP_ADDRESS>
Plugin version: 3.2.0
To Reproduce
Steps to reproduce the behavior:

Require plugin with composer: composer require store.shopware.com/adyenpaymentshopware6
Install & Activate plugin ./bin/console plugin:install --activate AdyenPaymentShopware6
Error is thrown: Cannot declare interface Psr\Log\LoggerAwareInterface, because the name is already in use

Expected behavior
Plugin is installed & activated
Screenshots
If applicable, add screenshots to help explain your problem.

Downgrading the plugin to version 3.1.0 seems to fix the issue. So I assume in release 3.2.0 something broke

Hi @alessandroaussems,
unfortunately this problem persists because shopware requires that we add the core shopware libraries to the require block in our plugin's composer.json file.
Please refer to our docs for the available installation options

Having the same problem in our deploy flow. The vendor folder in the plugin should not contain the same dependencies as the shopware core. You should remove psr and monolog from this vendor folder, remove the php-webhook-module and php-api-library from dependencies in your composer.json and only autoload them from the included vendor folder. This way your plugin will work both via manual install and via composer install. Right now you're loading dependencies twice by having them required in composer.json and having them manually included in the plugin's vendor folder.

@GshopMaxime Since Adyen clearly doesn't care about fixing this issue. You can fix it by requiring the plugin as "adyen/adyen-shopware6" instead of "store.shopware.com/..." in your composer.json file. This way the dependencies don't cause issues.

HI @GshopMaxime and @alessandroaussems as I mention in my earlier comment, our docs specify the supported way to install the plugin, please follow the docs. Because of Shopware's marketplace requirements, we have to upload a zipped version of this repo with the vendor folder included. You can download the zip from the marketplace and upload it to your store via the admin interface. Alternatively, if you want to use composer, you can install it directly from here via packagist as @alessandroaussems also mentions.

Still seems to be an issue on shopware <IP_ADDRESS>

@peterojo You can solve this easily by adding this to your composer.json. Then the package will not get installed into the vendor folder.
    "replace": {
        "psr/log": "*"
    },


Question regarding Carousel component .

Is there any way to get a carousel component having both indicator buttons and next/prev buttons?

Like in pic, you can see above Carousel has both indicator and next/prev buttons.
Or can we merge both code for  Carousel with indicator buttons and Carousel with next/prev buttons ?????

Don't expect much from a CSS-only slider but here's an example:
https://codepen.io/saadeghi/pen/zYPWGOq?editors=1000

Got it. Thank you for the help.


High resolution image zoom result in black screen [BUG]

Steps to Reproduce

start a new android project with main.dart as below.
Run it on your device and wait the image to be loaded from internet.
It's fine at first, then try zoom it with both  your fingers and you will encounter a black screen.
I also attached the image in case you need it.

import 'package:flutter/material.dart';
void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: ZoomImageDemo(),
    );
  }
}

class ZoomImageDemo extends StatefulWidget {
  @override
  _ZoomImageDemoState createState() => _ZoomImageDemoState();
}

class _ZoomImageDemoState extends State<ZoomImageDemo> {
  double scale = 1.0;
  @override
  Widget build(BuildContext context) {
    return Material(
        child: Column(children: <Widget>[
          AppBar(
            title: Text("zoom/pan image demo"),
          ),
          Expanded(
            child: GestureDetector(
                onScaleUpdate: (value) {
                  setState(() {
                    scale = value.scale;
                  });
                },
                child: Transform.scale(
                  scale: scale,
                  child: Image.network(
                    "https://user-images.githubusercontent.com/6860451/61188926-e48ab680-a6b8-11e9-9eec-c14c9c3279f9.jpg",
                    fit: BoxFit.contain,
                    //enableLoadState: false,
//          mode: ExtendedImageMode.Gesture,
//          initGestureConfigHandler: (state) {
//            return GestureConfig(
//                minScale: 0.9,
//                animationMinScale: 0.7,
//                maxScale: 3.0,
//                animationMaxScale: 3.5,
//                speed: 1.0,
//                inertialSpeed: 100.0,
//                initialScale: 1.0,
//                inPageView: false);
//          },
                  ),
                )),
          )
        ]));
  }
}

Logs
Nothing strange happends during flutter run --verbose.
No Issues found using flutter analyze.
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel unknown, v1.7.8+hotfix.3, on Microsoft Windows [Version 10.0.17134.885], locale zh-CN)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.1)
[√] Chrome - develop for the web
[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
[√] Android Studio (version 3.4)
[√] VS Code (version 1.35.0)
[√] Connected device (3 available)

! Doctor found issues in 1 category.

Any help needed. Thx.

Any updates guys?

Hi i have the same issue, please help

The bug appeared with the release of 1.7.11, and it's still here in the new stable release 1.9.1 as well as the current dev release 1.10.1.
The specific commit that brought this regression rolled the flutter engine with the following changes:
https://github.com/flutter/engine/compare/8591bd32e6b6...f3761ba8d01f
I guess the new cache size formula is the problem but I have no idea how to circumvent or fix it.

Did I get it right that resizing the actual image within a certain size would prevent this bug to happen? If yes, what would be the actual size (w x h)?
I hope this gets sorted out soon. I guess many would face this issue!

You can circumvent this issue temporarily by requesting the old cache size at startup.
void main() {
  SystemChannels.skia.invokeMethod("setResourceCacheMaxBytes", 512 * (1 << 20));
  runApp(MyApp());
}

The numbers are from here: https://github.com/flutter/engine/compare/8591bd32e6b6...f3761ba8d01f#diff-5d38bce69c8511388c326277e128c0c3L31

You can circumvent this issue temporarily by requesting the old cache size at startup.
void main() {
  SystemChannels.skia.invokeMethod("setResourceCacheMaxBytes", 512 * (1 << 20));
  runApp(MyApp());
}

The numbers are from here<EMAIL_ADDRESS>
@graknol  It doesn't seem to work for me, unfortunately. Is there anything else I should other than adding that line? I actually tried to "await" it, and it never ends in main().

You can circumvent this issue temporarily by requesting the old cache size at startup.
void main() {
  SystemChannels.skia.invokeMethod("setResourceCacheMaxBytes", 512 * (1 << 20));
  runApp(MyApp());
}

The numbers are from here<EMAIL_ADDRESS>
@graknol It doesn't seem to work for me, unfortunately. Is there anything else I should other than adding that line? I actually tried to "await" it, and it never ends in main().

Have you tried to increase the number (like 1024 instead of 512)?
I should say that I'm on Android and a physical device, I think i read somewhere that it causes issues in the emulator, but I'm not sure.
My flutter version is: 1.9.1+hotfix.4

@graknol I am also using a physical device (Google Pixel 3a), and Flutter 1.9.1-hotifx.4.
I tried to increase by multiple of 2, and even tried 9999999, but I always get the same results: when I zoom in my image, at some point it disappears.
I am not using the same code as above, but a plugin: photo_view. Maybe I should try to change the code?

Ok also with the same code, I get that issue.

I am also using photo_view.
Really strange, maybe you need another solution then, I just hope it solves
it for someone as it solved it for me 🙂
On Tue, Oct 15, 2019, 10:52 Alessio Bianchetti<EMAIL_ADDRESS>wrote:

@graknol https://github.com/graknol I am also using a physical device
(Google Pixel 3a), and Flutter 1.9.1-hotifx.4.
I tried to increase by multiple of 2, and even tried 9999999, but I always
get the same results: when I zoom in my image, at some point it disappears.
I am not using the same code as above, but a plugin: photo_view. Maybe I
should try to change the code?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/36191?email_source=notifications&email_token=AAKNAPLTC3XVL7M23NQCK43QOWAGJA5CNFSM4IDWD322YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBH63JA#issuecomment-542109092,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKNAPOS66JA3E3ODHQ42P3QOWAGJANCNFSM4IDWD32Q
.

In the above comments/replies, I've seen some confusion in the method name:
SystemChannels.skia.invokeMethod("setResourceCacheMaxBytes"...
SystemChannels.skia.invokeMethod("Skia.setResourceCacheMaxBytes"... (confirmed by the docs)
With setResourceCacheMaxBytes, nothing happens and it seems ignored like any other random name.
With Skia.setResourceCacheMaxBytes called in the main() as suggested, I get the following error:
E/flutter (15598): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method Skia.setResourceCacheMaxBytes on channel flutter/skia)
E/flutter (15598): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:7)
E/flutter (15598): <asynchronous suspension>
E/flutter (15598): #1      main (package:aves/main.dart:17:23)
E/flutter (15598): #2      _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:229:25)
E/flutter (15598): #3      _rootRun (dart:async/zone.dart:1124:13)
E/flutter (15598): #4      _CustomZone.run (dart:async/zone.dart:1021:19)
E/flutter (15598): #5      _runZoned (dart:async/zone.dart:1516:10)
E/flutter (15598): #6      runZoned (dart:async/zone.dart:1500:12)
E/flutter (15598): #7      _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:221:5)
E/flutter (15598): #8      _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:305:19)
E/flutter (15598): #9      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)

What should be done to have an implementation of this method?
flutter version: Flutter (Channel stable, v1.9.1+hotfix.4, on Microsoft Windows [Version 10.0.18362.388], locale en-GB)

Figured it out:
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', 512 * (1 << 20));
  runApp(YourApp());
}

Thanks @graknol for the solution!

@deckerst I used exactly your code in main(), but I get MissingPluginException -> exactly the same you reported before:
E/flutter (31704): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method Skia.setResourceCacheMaxBytes on channel flutter/skia)
E/flutter (31704): #0      MethodChannel.invokeMethod
E/flutter (31704): <asynchronous suspension>
E/flutter (31704): #1      main
E/flutter (31704): #2      _runMainZoned.<anonymous closure>.<anonymous closure>  (dart:ui/hooks.dart:229:25)
E/flutter (31704): #3      _rootRun  (dart:async/zone.dart:1124:13)
E/flutter (31704): #4      _CustomZone.run  (dart:async/zone.dart:1021:19)
E/flutter (31704): #5      _runZoned  (dart:async/zone.dart:1516:10)
E/flutter (31704): #6      runZoned  (dart:async/zone.dart:1500:12)
E/flutter (31704): #7      _runMainZoned.<anonymous closure>  (dart:ui/hooks.dart:221:5)
E/flutter (31704): #8      _startIsolate.<anonymous closure>  (dart:isolate-patch/isolate_patch.dart:305:19)
E/flutter (31704): #9      _RawReceivePortImpl._handleMessage  (dart:isolate-patch/isolate_patch.dart:172:12)

Did you do something else as well?
Flutter (Channel stable, v1.9.1+hotfix.4, on Microsoft Windows [Version 10.0.16299.1087], locale en-US)

@abianche sorry I forgot to mention I had to switch to beta.
My version: Flutter (Channel beta, v1.10.7, on Microsoft Windows [Version 10.0.18362.388], locale en-GB)

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', 512 * (1 << 20));
  runApp(YourApp());
}

it's not work at v1.10.13

It seems like if you are on beta, then you need to include the "Skia." prefix, but if you're on stable you must exclude it.

I'm in master branch. it's stll not work for issue demo.

Figured it out:
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', 512 * (1 << 20));
  runApp(YourApp());
}

Thanks @graknol for the solution!
edit: I forgot to mention but the solution above does work for me. I don't get black images when zooming on it with photo_view.

Thank you!
WidgetsFlutterBinding.ensureInitialized(); fixed it for me again.
My full code is now:
void main() {
  zoomImageHotfix();
  runApp(MyApp());
}

void zoomImageHotfix() {
  WidgetsFlutterBinding.ensureInitialized();
  const maxBytes = 512 * (1 << 20);
  // Invoke both method names to ensure the correct one gets invoked.
  SystemChannels.skia.invokeMethod('setResourceCacheMaxBytes', maxBytes);
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', maxBytes);
}

Though, I really hope that the flutter team fixes the zoom/pan issue, this should not be viewed as a long term solution.
What I noticed was that it happened also if I panned the image a certain distance off screen.
That distance was shorter the more I zoomed in.
Which leads me to believe that the surface that the engine/skia writes to gets increased by elements moving off screen (increasing the resolution kinda).
In my head, the cache should not be filled with pixels that are off-screen. Am I crazy for thinking this?

@graknol do you run issue demo？？ 8000*9000 image is still not work

@graknol do you run issue demo？？ 8000*9000 image is still not work

No sorry, I'm running my own app that I had issues with.
The images that caused problems for me were about 8000x5000. The ones smaller than this were ok.
Could it be that your device doesn't have enough RAM? Try increasing the cache size to 768 * (1 << 20) with the code provided (invokeMethod with and without the Skia. prefix).

@graknol oh, it works when i increase size. thanks
but i doubt that why skia don't just handle image resoure in viewport? as painImageRect can define src to paint.

Figured it out:
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', 512 * (1 << 20));
  runApp(YourApp());
}

Thanks @graknol for the solution!
edit: I forgot to mention but the solution above does work for me. I don't get black images when zooming on it with photo_view.

Thank you!
WidgetsFlutterBinding.ensureInitialized(); fixed it for me again.
My full code is now:
void main() {
  zoomImageHotfix();
  runApp(MyApp());
}

void zoomImageHotfix() {
  WidgetsFlutterBinding.ensureInitialized();
  const maxBytes = 512 * (1 << 20);
  // Invoke both method names to ensure the correct one gets invoked.
  SystemChannels.skia.invokeMethod('setResourceCacheMaxBytes', maxBytes);
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', maxBytes);
}

Though, I really hope that the flutter team fixes the zoom/pan issue, this should not be viewed as a long term solution.
What I noticed was that it happened also if I panned the image a certain distance off screen.
That distance was shorter the more I zoomed in.
Which leads me to believe that the surface that the engine/skia writes to gets increased by elements moving off screen (increasing the resolution kinda).
In my head, the cache size should take into consideration pixels that are off-screen. Am I crazy for thinking this?

@graknol It doesn't work for me, Whether it is a beta branch or a stable branch.
Flutter (Channel stable, v1.9.1+hotfix.5, on Mac OS X 10.15 19A583, locale zh-Hans-CN)

This is my code
  WidgetsFlutterBinding.ensureInitialized();
  const maxBytes = 768 * (1 << 20);
  SystemChannels.skia.invokeMethod('setResourceCacheMaxBytes', maxBytes);
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', maxBytes);
  runApp(new MyApp());

Figured it out:
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', 512 * (1 << 20));
  runApp(YourApp());
}

Thanks @graknol for the solution!
edit: I forgot to mention but the solution above does work for me. I don't get black images when zooming on it with photo_view.

Thank you!
WidgetsFlutterBinding.ensureInitialized(); fixed it for me again.
My full code is now:
void main() {
  zoomImageHotfix();
  runApp(MyApp());
}

void zoomImageHotfix() {
  WidgetsFlutterBinding.ensureInitialized();
  const maxBytes = 512 * (1 << 20);
  // Invoke both method names to ensure the correct one gets invoked.
  SystemChannels.skia.invokeMethod('setResourceCacheMaxBytes', maxBytes);
  SystemChannels.skia.invokeMethod('Skia.setResourceCacheMaxBytes', maxBytes);
}

This worked for me. Thank you very much!

Using the zoomImageHotifx example solved it for me.  Our app zooms in on a large image and pans across in an animation.  We're on version 1.9.6.
Thank you @graknol!

@liushiqi9
I tried to replicate the issue using your code sample, but it seems to be crashing for me, as the app just quits. It's not loading the image before it crashes, so I am unable to test this issue.
Can you check if this is still a valid issue using latest Flutter version ?
Thanks.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


[BUG] [Analytics] Staging Explorer is sending Plausible events to prod

Our staging Explorer is sending events to prod Plausible
Not sure how long this bug has been there, but likely the last time we touched env variable DEPLOYMENT_STAGE
Seems like DEPLOYMENT_STAGE is prod for staging deployment

Added p2 tag due to low traffic on staging Explorer
https://czi-sci.slack.com/archives/C0244PQK934/p1680891576021769?thread_ts=1680827952.105059&cid=C0244PQK934

Added p2 tag due to low traffic on staging Explorer
https://czi-sci.slack.com/archives/C0244PQK934/p1680891576021769?thread_ts=1680827952.105059&cid=C0244PQK934


horizontal↔ and vertical↕

closes #2146
(and it's also probably better for screen readers?)

before
after

Alternative way of fixing this issue is to set --vp-font-family-base:
:root: {
  --vp-font-family-base: Inter, -apple-system, BlinkMacSystemFont, "avenir next", avenir, helvetica, "helvetica neue", ubuntu, roboto, noto, "segoe ui", arial, sans-serif;
}

instead of the defaults from VitePress:
'Inter', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'

or maybe we do both?

I’m inclined to change the definition of --vp-font-family-base to minimize churn and for better consistency with the Framework docs. Also it’s more internally consistent as we also have many instances of right→, ←left, up↑, and down↓. Not sure why these don’t also render as right➡, left⬅, up⬆, down⬇… thinking🤔 shrug🤷.

ok 🤷🤷


[DATA-1917] Cleanup deprecated model gen js files

The ModelService was deprecated and removed a while ago in favor of the PackageService. Remove deprecated generated JS files.

Friendly ping to make sure this is fine to remove @sbal13


Outdated cask: wondershare-video-converter-ultimate

wondershare-video-converter-ultimate
On brew cask install wondershare-video-converter-ultimate it downloads the latest version (5.7.2,735), but it fails to install due to checksum mismatch: brew update didn't fix the issue for me.
Error: Checksum for Cask 'wondershare-video-converter-ultimate' does not match.
Expected: d8e5d2359d89d53f917d8722d9f9fb3e6c40d1d9fd44431b121d192b0fd404d6
Actual:   a7b9e39bdb7022014a36f10b4257f78c4b52a6636988895cc6caa846d713d617
File:     /Users/balazs630/Library/Caches/Homebrew/Cask/wondershare-video-converter-ultimate--5.7.2,735.dmg
To retry an incomplete download, remove the file above.

If you ignore this guide, your issue may be closed without review.

Also note from that document:

If the maintainer was wrong in closing your issue, please do reply stating why! Closing an issue does not mean the conversation is over. If the guides themselves were unclear, help us improve them! Open first an issue or pull request stating what you found confusing and only then your other issue.

Error: Checksum for Cask 'wondershare-video-converter-ultimate' does not match.
Command: brew cask install wondershare-video-converter-ultimate
Output of command:
==> Hbc::Installer#install
==> Printing caveats
==> Hbc::Installer#fetch
==> Satisfying dependencies
==> Downloading
==> Downloading http://download.wondershare.com/cbs_down/video-converter-ultimate-mac_full735.dmg
/usr/bin/curl -q --show-error --user-agent Homebrew/1.6.1-16-g7166289 (Macintosh; Intel Mac OS X 10.13.4) curl/7.54.0 --fail --location --remote-time --continue-at - --output ~/Library/Caches/Homebrew/Cask/wondershare-video-converter-ultimate--5.7.2,735.dmg.incomplete http://download.wondershare.com/cbs_down/video-converter-ultimate-mac_full735.dmg
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 91.4M  100 91.4M    0     0  6585k      0  0:00:14  0:00:14 --:--:-- 6015k
==> Downloaded to -> ~/Library/Caches/Homebrew/Cask/wondershare-video-converter-ultimate--5.7.2,735.dmg
==> Verifying download
==> Determining which verifications to run for Cask wondershare-video-converter-ultimate
==> Checking for verification class Hbc::Verify::Checksum
==> 1 verifications defined
Hbc::Verify::Checksum
==> Running verification of class Hbc::Verify::Checksum
==> Verifying checksum for Cask wondershare-video-converter-ultimate
==> Note: running "brew update" may fix sha256 checksum errors
Error: Checksum for Cask 'wondershare-video-converter-ultimate' does not match.

Expected: a7b9e39bdb7022014a36f10b4257f78c4b52a6636988895cc6caa846d713d617
Actual:   71afe2815bd00791113c8e9cdb09cc10eecdd1c1681565bd0a59ca64299a9b00
File:     ~/Library/Caches/Homebrew/Cask/wondershare-video-converter-ultimate--5.7.2,735.dmg

To retry an incomplete download, remove the file above.

/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify/checksum.rb:42:in `verify_checksum'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify/checksum.rb:22:in `verify'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify.rb:21:in `block in all'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify.rb:19:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/verify.rb:19:in `all'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:138:in `verify'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:52:in `fetch'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/installer.rb:75:in `install'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:20:in `block in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:14:in `each'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/install.rb:14:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli/abstract_command.rb:35:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:98:in `run_command'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:168:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:101:in `<main>'
Error: Kernel.exit
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:173:in `exit'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:173:in `rescue in run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:156:in `run'
/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/cli.rb:132:in `run'
/usr/local/Homebrew/Library/Homebrew/cmd/cask.rb:8:in `cask'
/usr/local/Homebrew/Library/Homebrew/brew.rb:101:in `<main>'


Modal enter animation broken

Related to #32.
When the modal is opened, it no longer transitions into visibility. It just snaps in. The following code should create a transition effect:
https://github.com/PredixDev/px-modal/blob/8f5911e2838072ef1bbeb96e599423dc9aee5936/sass/px-modal.scss#L42-L44
This is a regression introduced by 185e9d399a2a3f88eb0aaa8ed707ff06e8831cec. It has to do with this bit of code:
https://github.com/PredixDev/px-modal/blob/8f5911e2838072ef1bbeb96e599423dc9aee5936/px-modal.html#L281
Calling refit() directly after the modal opens but before it animates in cancels the animation. See related #32.
Steps to reproduce

Create a simple modal:

<px-modal
    header-text="Magna Adipiscing"
    body-text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
    accept-text="Submit"
    reject-text="Cancel"
    open-trigger="{{openTrigger}}">
</px-modal>
<px-modal-trigger type="open" trigger="{{openTrigger}}">
  <button>Open modal</button>
</px-modal-trigger>

Open the modal

Expected behavior: The modal animates in from invisible to visible according to its CSS transition rules for background-color, visibility, and opacity.
Actual behavior: The modal does not animate and snaps into visibility.

Dismiss the modal. It correctly fades out of visibility.

Environment
Component: px-modal v3.2.2
Browser: Chrome 64
OS: OSX 10.12

I have tested this and it appears to be resolved. I will close this issue for now. Please let us know if you can still reproduce this issue.


Add fail_if_not_exists to MessageReference

https://discord.com/developers/docs/resources/channel#message-reference-object
I wanted to make this a parameter of the Reference function where you can pass in false if needed. Go doesn't support default parameter values so I don't know how I should go about doing that. Any pointer are appreciated.

Thanks for your contribution!


AutoModelSelect2TagField - New entries have same misleading CSS as existing entries

Just a wild suggestion, you might choose to ignore
I will try to explain with an example:
Let's say I have 'cat', 'dog', 'mouse' and if I start typing 'cat', it shows 'ca' in blue border giving an impression that 'ca' also exists in my DB, ideally it should not show 'ca' in dropdown or if it does then it should be like 'Add ca' with other suggestions following it below in the dropdown. I mean to say that if the user is typing something, what he types should not be part of auto suggest dropdown.

@theashishranjan I guess this is no longer within the package scope.


Can we use cross subscription / tenant as spoken networks for Azure FW hub-spoken architecture

I have 4 different subscriptions and each one has it's own VNET. All of them are peered each other. can I have one firewall to manage it? or do i need to have each firewall at every VNET?

how would i deploy the Azure firewall on existing VNET?

Can i deploy Azure firewall on any subnet? or are there any specific requirements?

@Vincent0818 These issues are designed for questions or issues regarding Azure documentation. For future questions, your best place to ask them is the Azure Networking MSDN Forum.

I have 4 different subscriptions and each one has it's own VNET. All of them are peered each other. can I have one firewall to manage it? or do i need to have each firewall at every VNET?

You can do either, and the main difference will be how you route your traffic and the potential latency difference for traffic to go to a different VNET before going out to the internet.

how would i deploy the Azure firewall on existing VNET?

You can follow this tutorial on how to deploy an Azure Firewall

Can i deploy Azure firewall on any subnet? or are there any specific requirements?

You can deploy the Azure Firewall on Any Subnet that is larger than /25, but it will be a best practice to put the firewall into it's own subnet.

@Vincent0818 We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Nodes are huddling together

The more the force layout runs, the closer the nodes come together, making them appear in a huddle and overlapping eachother.
They should be more spaced out for legibility and to clearly see the edges between them.

Maybe this technique could help, although it is d3 rendering. If its applicable, would require translation to canve custom rendering.

Also might be good to see how the current code differs from the simplest force example


Have option optional

I have a problem where skin option makes putting on fleeces or doing things in game is over ruled by the skin options, where I don't get a choice about it. I would like to be able to have the option to not have that active so it is a choice.

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

fixed as of 0.2.6


Consider signing index files

Current Implementation
Date, hour, country and version index files are plain, unsigned JSON arrays.
Suggested Enhancement
Wrap index files in SignedPayloads.
Expected Benefits
Attestation that there were no submissions during a time frame etc., basically because of the same reasons for which we sign the diagnosis keys themselves (proof of authenticity and validity, "undeniability").

Outdated

I don't see how this issue is outdated. Which part of the Google/Apple spec prevents signing of indices?

The ref implementation https://github.com/google/exposure-notifications-server shows how index files are used. We will keep to that approach, so we will not change the payload of the index file with signing information, which ensures compatibility for federation scenarios.
https://github.com/corona-warn-app/cwa-server/issues/203 is also changing the index files to the official approach, and hence the mentioned index files will not exist as is anymore. Still, signing the new-approach-index file still makes sense, but would need to be done with a different solution (e.g. transfer signature in header). We will track this once https://github.com/corona-warn-app/cwa-server/issues/203 is implemented.


Unable to access $httpPromise for POST request

I'm trying to handle a more graceful offline/timeout scenario for an app. The idea is to update the UI when a request fails with status 0 (i.e., api is offline or request timed out), and then once request is POST-ed to the server update UI with fresh data.
Here's the pseudo-code:
var a = new Article({text: 'we all try something'});
a.$save();
a.$promise.then(updateUI).catch(function(request) {
    if (request.status == 0) {
        // show an updated UI like "pending" status
        updatePendingStatus();
    }
});
// after a minute or two when the request is retried
// and submitted successfully, then update UI.
a.$httpPromise.then(updateUI);

However it seems a.$httpPromise is undefined. How do I achieve what I want?

*bump*

@demands Hey there :) Is there a reason why $httpPromise is not available on POST requests?

Ah, thanks for bumping again, @felippenardi.
This definitely looks like a bug -- PRs (either failing tests or fixes) gladly accepted!


Remove Clone requirement on SignalWith for Resource

I'm assuming this is a mistake because the point of with is to not clone, and the code compiles just fine with the bound removed.

Thanks!


Specifiying directory when renaming

It would be better specifiying directory using separator slash "/" when renaming.
Such as the name "foo/bar.png", the image will be saved in folder "attachmens/foo" with the name "bar.png".

Has this been implemented? How do i specify the directory i want my pastes to go to? Adding the file path as a prefix seems to have the slashes get filtered out?

even easier option

[ ] save image in same folder of the md

like https://github.com/mushanshitiancai/vscode-paste-image
thanks @reorx

I would use this option as well.
I would recommend a config option to enable/disable the feature.
If you wanted to get really fancy being able to configure defaults for directories would be nice.
I want to use the Obsidian default attachment directory about 75% of the time, but I have a few special cases where I would like to change (either all the time, or have the option to select).

I would love to see this implemented too!

Hey, until the plugin is updated, this is how I'm solving it -
https://github.com/reorx/obsidian-paste-image-rename/issues/82#issuecomment-2105595945


M365 Copilot Prompt: Find meeting time with another user - a prerequisite prompt example

This is a revision of the 'Find meeting time with another user' prompt. It demonstrates the concept of a 'prerequisite' prompt. A prerequisite prompt requires input from the user before performing any actions. In this case, it asks the user for the person they want to schedule a meeting with and the day for the meeting.
This technique allows for a single prompt to serve multiple purposes, akin to a function in programming that can be called with different arguments to produce different outcomes. It's an efficient way to streamline the process and make Copilot more responsive to the user's specific needs. Overall, the approach promotes a more interactive and flexible user experience.

Thanks @mjfusa ! Merged


how install v2 version

i see Initial support for multicolumn # 76 ，it‘s my want，how  to install this version ，with @?

ok


[WIP] deprecate GIL refs in function argument

This was built on-stream today, the goal is to add a deprecation warning to #[pyfunction] and #[pymethods] arguments which take a GIL ref. The span is wrong but otherwise this technique works. The code is also a bit of a bodge job as I was floundering a bit on-stream trying to figure out how to get it to work 😂
This is not in a reviewable state but I felt like pushing the code anyway so it can be found easily when I get a chance to tidy it up.

Will we get warnings from #[pymodule] with this?

No, and also not for pass_module or slf: &PyCell I think. I will add all those to the tracking issue.

Ok, with luck, this now passes CI!


Uri escape added for hg pull argument

Command Injection in kudu Mercurial deployment
Please look at https://msazure.visualstudio.com/Antares/_workitems/edit/14908983 for further details.

Looks good to me - let me know if I can just merge to this github.


Update DEPS for boringssl rev 9ac18632.

Skip OPENSSL_cpuid_setup when replaying.
For RUN-1614 (https://linear.app/replay/issue/RUN-1614/skip-checking-cpuid-during-replay-in-boringssl-bypassing-openssl-cpuid)

Hmm, this should have been auto-approved, cc @jazzdan ...

It was.  I'll avoid sending DEPS updates for manual review in the future.

Approveman probably was going so slowly because of the github service degradation today.


Please consider alternatives too

This issue mostly regards eslint-plugin-lit-a11y
I am following this @open-wc project and I think it has a great purpose but, at the same time, a very misleading message, please allow me to expand.
About lit-html
This library is great and popular but it's not the first, not the smallest, or even the fastest out there, but everything in the site, including this plugin, hence work related to such site, is promoted as recommendation for Web Components, and this is misleading for the following reasons:

there are various alternatives that do exactly what lit-html do, without any compromise when it comes to Web Components (ahem, Custom Elements) handling.
the recommendation part of this effort equation is misleading. It's not clear why other libraries are not recommended, and most of the things are about lit-html. If this was part of the library project there wouldn't be a single reason for me to open this issue, but since people believe this site is genuinely recommending best practices, it's not clear why everything lit- is in, but prior work and alternatives are ignored.
naming a11y plugins that work with every alternative as lit-a11y makes people think such plugin works only with lit-html. As this whole plugin goal is to improve accessibility for template literal DOM manipulation based libraries, and as there is also a special flag documented as useful escape for not still supported alternatives, like htm mentioned in the README, makes this whole effort look like promoted, or sponsored, by lit-html people (but AFAIK that's not the case)

Why is this plugin name problematic?
To start with, when you name a plugin after a specific library, which simply uses a common pattern, the community around such pattern won't likely help contributing with the plugin, as it's indirectly promoting something else that's unrelated.
Imagine Ferrari Open Sourcing a ferrari-engine-metrics module, when everyone needs an engine-metrics one, and wait 'till Porsche adopts, or contributes, to that project ... it ain't gonna happen.
On top of that, new comers seem to follow your recommendation, believing lit-html is the only one that does what it does, so that alternative offers won't likely link, suggest, or even use, stuff that is more than welcome and surely useful for the web, like a template literal based a11y helper could be.
Please stop making everything a lit-* affair
If the goal of this project is to promote best practices, it might as well stop promoting only a single library from the only team working on their paid time on such library, otherwise every other developer that is offering alternatives on their "free time" would just start ignoring this project goal, or give up on trying to make the Web a better place.
As summary, I believe the intent is genuine, but results are making me think this project does not want to improve a11y in general, it just wants to keep promoting a specific library, but that's not how recommendations should work.
Thanks for your understanding, to me it's just hard to contribute to anything that could work everywhere, but indirectly misleads people to believe only one library could fully benefit from it, which is hopefully not the case (and if it is the case, please make the "lit-only" flag the default, not an escape, thanks).
Suggestion
Please rename the a11y related plugin as eslint-plugin-litera11y so that authors of other libraries can contribute as they can to make it a universal best practice for the Web, as opposite of an ad-hoc plugin for a single library.
Than you for consideration.

Thank you for the feedback, Andrea 🙂
There's quite a lot to unpack here, so I'll try to take things point-by-point.

there are various alternatives that do exactly what lit-html do, without any compromise when it comes to Web Components (ahem, Custom Elements) handling.

We have already had this discussion both on public twitter, and continued in DMs. We recognize that we seem very focused on the lit-* family at this point in time, and have discussed it among the team. We're currently working on a revamp of our documentation site, and we aim to be more inclusive to other parts of the web component ecosystem.
It should also be noted that a lot of our tooling is not tightly coupled to lit-*, but is more broadly usable by other web component libraries. Some libraries, however, (for example lit-helper), are, because we have had a need for them.
Additionally, we want to give newcomers a good set of defaults to start out with, and not give them a bunch of libraries to browse through.

the recommendation part of this effort equation is misleading.

A recommendation is opinionated by definition, we also mention that we provide opinionated tooling on our landing page, and are transparent about that.

It's not clear why other libraries are not recommended,

This is a fair point - we can definitely try to improve here and elaborate on the fact that lit-html is not the only library 🙂

As this whole plugin goal is to improve accessibility for template literal DOM manipulation based libraries

The fact that the eslint plugin works with other libraries is entirely coincidental (but a nice bonus! And I'm happy to hear they work flawlessly with your projects). However, while developing the accessibility plugin, I will admit I did not generally have other libraries in mind (in fact, we have a setting to guard against linting templates from other libraries in case of syntax difference, or if a project uses multiple render libraries in the same project).
We have discussed among the team on whether or not we should extend support to include other libraries in the plugin as well, or perhaps add extended documentation on how different libraries could fork and make it work for their tagged template literal based library.

Please stop making everything a lit-* affair

While I agree, as mentioned various times before, we're looking to improve on this. We reserve the right, however, to make recommendations as we see fit. Thats why they are recommendations.

As summary, I believe the intent is genuine, but results are making me think this project does not want to improve a11y in general, it just wants to keep promoting a specific library, but that's not how recommendations should work.

As someone who worked a lot on the eslint plugin, I can assure you there is no hidden agenda here. Just trying to help improve accessibility.

(and if it is the case, please make the "lit-only" flag the default, not an escape, thanks).

By default, any html tagged template literal is linted. The "lit-only" flag is entirely opt-in.

Thank you for your prompt answer, to which I'd like to answer too:

Additionally, we want to give newcomers a good set of defaults to start out with, and not give them a bunch of libraries to browse through.

This is understandable, but I think everything is already out there, so that such set of defaults could also be inclusive, while if missing, could be a great hint for alternatives to improve, as the final goal is the same: ship Web Components out there.

A recommendation is opinionated by definition

As long as there's a list of checks to mark in order to justify such recommendation ... I mean, I can't really recommend coffee to cook pasta for a variety of reasons, even if I love coffee, hence there must be a reason to recommend something, and such reason here is not clear at all to me.

This is a fair point - we can definitely try to improve here and elaborate on the fact that lit-html is not the only library

That'd be a starting point, as long as it's clear what lit offers that alternatives don't, otherwise the whole project should be called Web Components Opinionated Suggestions, which is closer to what you're describing, or "Lit Components" with an implicit recommendation otherwise meaningless, if not clarified anyhow, 'cause I think recommendations should be backed by facts, concrete advantages, and once again lit-html is great, but just one of the libraries that do what lit does, and there are benchmarks, metrics, and whatsoever, to exclude it from being "the best one" for the Web Components purpose, accordingly to these metrics.
And yet, I am not saying there is a best one to recommend in general, I am saying lit-html does things others might do or not, and vice-versa.
If the goal is to recommend best practices for Web Components, any library should be decoupled from such practices/recommendation, as the whole point of Web Components is that these work everywhere, from vanilla to any helper, and using the umbrella to promote a library that's not strictly even necessary, is hard to sell as best practice, or recommendation.
I don't even care if anyone uses my library, as long as they'll try to come closer to the platform, which offers a lot already, and nothing else might be needed at all.

I will admit I did not generally have other libraries in mind

This issue title is exactly about this, as it's obvious to me, and this great plugin is just yet another missed opportunity for contributors interested in having a11y helpers for their libraries too.

perhaps add extended documentation on how different libraries could fork and make it work for their tagged template literal based library.

If the name doesn't change, forks will happen anyway, so it'd be great to hear from you that forks will be listed as recommendation too, once optimized for their own library target, but my point is: I think you're missing out in potential contributors.
If you're not interested in contributors for this project though, it's totally fine too, I'm just saying why I'd fork, rather than contribute, with that plugin, exact same way I've forked before the highlighter for template literals based libraries ... and none of this helps moving standards forward, as conflicts happens with various forks of the same project too, which is something I'd love to avoid.

We reserve the right, however, to make recommendations as we see fit. Thats why they are recommendations.

I don't think I need to mention W3Schools here ... but of course, you can recommend whatever you like, but you have a quite loud domain name and project, regarding Web Components standard, so please consider not making it something people should ignore in the long term, as libraries come and go, while standards remains, reason we're all using these as much as we can, right?
And then again, having a reason for recommendations looks like the minimal thing you could add as documentation: what is it that other libraries are missing, so that you recommended a specific one, or mentioned another one (htm) and these are all from developers of the same company? Should it be clear, in case that's your position, that if it's Google, it's recommended? That's also a valid statement, if you ask me, as long as it's clear, and not pretending to be objective.

Just trying to help improve accessibility.

Not at its full potential though, as you're helping a niche of developers (compared to those not using Web Components), instead of including all niches that believe in Web Components, which is my current goal: make things inclusive, please, so that everyone in this train can contribute, instead of ignoring these recommendations.

By default, any html tagged template literal is linted. The "lit-only" flag is entirely opt-in.

I know that, which is why every library of mine works already, so let's give non lit- developers a chance to contribute with a fair name for such plugin that works already pretty much everywhere, thanks.
P.S. I already got the eslint-plugin-litera11y namespace, and I'd give it to you without blinking once if needed

It would be great to have an a11y linter that works for all projects. But there are a lot of templating libraries out there which can all handle expressions differently, so we need to figure out how and if this can be done efficiently and if we can maintain this.
Your position is that we should have done this from the start. I don't think that's fair, we're all volunteers with a limited set of resources to build and maintain these implementations. We can't implement this for all libraries. So in this instance we chose to go with something that brings a lot of value to a lot of people.
In most other instances we do create library agnostic solutions. We only have a handful of lit-html specific packages. Also our recent work on the (work in progress) custom elements manifest https://github.com/webcomponents/custom-elements-manifest and the library agnostic helpers https://github.com/open-wc/custom-elements-json will work for all custom element libraries...
Pascal already said we can do more to make other libraries more visible. Writing down a motivation why we choose lit-element as the default I think is good to add as well. But as a team we feel strongly that having a single recommendation is a good starting point for most users. That's something we'll have to disagree on it seems :)

there are a lot of templating libraries out there which can all handle expressions differently

I think most libraries are standards-compatible, but even if each project has some specialized syntax, a11y within HTML should be pretty normalized across all offers. uhtml has the special aria case, to simplify attributes assignment through objects literals, but any standard aria attribute would work out of the box too, and I am pretty sure that's the case for htm and every other library

we're all volunteers with a limited set of resources to build and maintain these implementations

what I am reading is "due limited resources, we'd like to have more contributors", and my point is that if you keep suggesting and/or developing solutions for a single library, either their team helps out, or alternative libraries authors help ... but why would they, if the result is mostly extra marketing for your library of choice?

In most other instances we do create library agnostic solutions

one link is from lit-html authors/team, and the other is very experimental, but I wasn't aware of that, so thanks for bringing it out. Yet these are not recommendations, just proposals, right? Not sure how those links are relevant.

Writing down a motivation why we choose lit-element as the default I think is good to add as well

It'd be great, and it will clarify the opinionated recommendation instead of current generic claim without reasoning, so thanks for considering this.

as a team we feel strongly that having a single recommendation is a good starting point for most users

fair enough, but imagine MDN creating best practices documentation that lists only one library ... how would you feel, as library author?

That's something we'll have to disagree on it seems

The only thing we disagree is that you even need a 3rd party library to create Custom Elements. It's like recommending jQuery to query the DOM instead of using document.querySelectorAll ... it might help and simplify in some case, but it's surely not a recommendation, neither a best practice.
I hope I've explained my point of view enough, but I'd be happy to expand even more, if needed.
I'm looking forward to read the reasoning around lit-html choice, hoping this will land soon in your pages 👋

clarify the opinionated recommendation instead of current generic claim without reasoning

Again, recommendations are opinionated by definition, and we are free to recommend as we see fit. Our recommendations may change in the future. We have always been transparent about this.
For one last time; we do look to improve on being more inclusive to other libraries, as I have mentioned many times now. I think we should leave the discussion at that and try to move forward with the feedback you have given us.


Fix JSDoc.

The doc is broken with the latest version of JSDoc.
It looks like a module can't be a namespace as well. The problem is that I can't find a way to document the window.OpenSeadragon function anymore.
I also fixed an issue with the margins methods which created a bug in the menu (see global at http://openseadragon.github.io/docs/ )

I guess maybe window.OpenSeadragon should just be mentioned in the Viewer constructor?
http://openseadragon.github.io/docs/OpenSeadragon.Viewer.html#Viewer
Of course we also use it in our examples. Between those things that should be enough.

That seems like a good option. I also had to update the templates files in site-build. I will make a pull request when it is ready.

Cool. Are you going to update this PR with a mention  in the Viewer constructor?

Yes. I will see what work best once the templates are ready.

Sounds good :)

Done. Goes with https://github.com/openseadragon/site-build/pull/130

Preview:

Beautiful!


render_templates.sh should remove template after rendering

render_templates function should remove the template after rendering to prevent exposing or leaving templates in deployed artefacts.

This should be optional. If you are rendering a configuration file that remains in the running container the tmpl file would not cause any harm and could aid in debugging/diagnosis plus removing the template file won't decrease the size of the container since it is already running. Whether or not the template is exposed would depend on the server running in the container.
Alternatively the template will be overwritten if it doesn't have the .tmpl extension.
As far as implementation goes maybe render_templates [-d] FILENAME [FILENAME...] would be suitable.

I've had a change of heart on this one. I think the current mode of operation is working, and is preferable as it allows the entry point to be rerun.
Ref eg: https://github.com/panubo/docker-php-apache/blob/main/debian11/root/entry.sh


Fixed issue with autostarting as admin even if it should as user, fixed issue with autostart permissions bug

PR Checklist

[x] Applies to #1524

Also fixes problem with:

run as administrator
change value of run at startup to on
close
run as user
change value of run at startup and save - value of run at startup wont change

For anyone else testing: The problem mentioned in the PR still seems to appear only when PowerToys 0.15.2 is already installed. When it is not installed, everything works as expected. If there's a good explanation for this, I'll approve this PR.

@ivan100sic if 0.15.2 is already installed, the scheduled task may be already present and therefore have the old permissions.
Did you just run the new code after building it, right? Not building the MSI and installing it on top of 0.15.2?
The scenario we should test is using the MSI to upgrade from 0.15.2 to 0.15.3 and verify that it works (since the upgrade should first remove the existing scheduled task and then create the new one with the proper permissions).

Yes, I did just that.

There is a scenario we need to support:

Run at Startup is ON
Always run as administrator if OFF
turn Always run as administrator ON

Result:

after a restart, the UAC dialog will appear

That happens because we turn the setting on but the schedule task is still the one used to run as a user. So when changing the Always run as administrator flag, we should also recreate the scheduled task. This should be done in both case:

when turning Always run as administrator ON
when turning Always run as administrator OFF

I think this is already supported for application user. As when installing MSI task is added as admin, so it doesn't prompt for UAC.
You encountering that issue becouse you are using custom exe without using installer. Is that correct?

I'm using the MSI with the fix I described to change TASK_RUNLEVEL_HIGHEST to TASK_RUNLEVEL_LUA in the installer custom action.

So the expected functionality will be:

After installing app, it will automatically run as user at restart.
When running powertoys as user and changing "always run as admin". It will prompt UAC after reboot.
When running powertoys as admin and chaning "always run as admin". It will not prompt UAC after reboot.
Is that correct?

After installing app, it will automatically run as user at restart.

Yes.

When running powertoys as user and changing "always run as admin". It will prompt UAC after reboot.

It should start as admin without prompting the UAC. In order to do that, we have to update (or maybe recreate from scratch) the scheduled task with the TASK_RUNLEVEL_HIGHEST flag on.

When running powertoys as admin and chaning "always run as admin". It will not prompt UAC after reboot.

Yes. Similarly to the previous case, we have to  update (or maybe recreate from scratch) the scheduled task but in this case with the TASK_RUNLEVEL_LUA  flag on

IN order to make this work, we need to disable "Always run as administrator" when PT runs as a user and add the text to tell to restart as admin in order to be able to turn it on.


Currency Conversion API Not responding

apiVersion: apps/v1
I have changed in both deployment.yaml
But http://adaf69558b30c436cb0bc0114b4ad561-35687556.ap-south-1.elb.amazonaws.com/currency-conversion/from/USD/to/INR
Giving 404 Please help
I am using AWS kops on EC2 instance

You didn't provide the port number after the url


Can not resolve modules with absolute path in v4.0.0

Describe the bug
I upgraded storybook from version 4.0.0-alpha.25 to v.4.0.0 but i get errors like Module not found: Error: Can't resolve ... for all the modules that i have imported with absolute paths. In the migration guide i don't see any changes regarding absolute paths, am i missing something?
Screenshots

System:

OS: Windows10
Node: 10.7.0
Framework: react
Addons: actions, viewport, links, knobs
Version: 4.0.0

Additional context
I use create-react-app v.2

Do you have any custom webpack.config,js ?

@igor-dv no, just plain create-react-app v2 (not ejected) and i have a .env file in the root folder with NODE_PATH=src for absolute imports.

I think it's related to NODE_PATH, and not to the absolute imports.
We have an open issue for this already - #4496, let's continue the discussion there.
Anyway, you can workaround absolut imports by adding the custom webpack.confing.js:
//.storybook/webpack.config.js

module.exports = {
  resolve: {
    modules: ['path to src dir'],
  }
}

Ok,
Btw running storybook with cross-env NODE_PATH=src/ start-storybook -p 9009 -s public it works, but i'd prefer not to have an extra dependency just for this.
Thank you for your time @igor-dv !

👍


Fixes 1880

Fixes #1880
Basically the problem was in this function:
https://github.com/biocore/qiita/blob/a369cad63827b92e89032c8e12d5865c61f73a5b/qiita_ware/dispatchable.py#L198-L204
The serial calls to extend and update was forcing a validation on the "extend" call first (which raised the warning message) and another on the update, which it corrected the values in the DB (but didn't remove the previous warning).
By creating a function that performs those 2 operations at the same time and issuing a single validation at the end of that function we only raise a warning at the end if there is a problem with the data in the DB at the end of the operation.

Codecov Report

Merging #2247 into dev will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##              dev    #2247      +/-   ##
==========================================
+ Coverage   92.81%   92.82%   +0.01%
==========================================
  Files         171      171
  Lines       18906    18914       +8
==========================================
+ Hits        17547    17557      +10
+ Misses       1359     1357       -2

Impacted Files
Coverage Δ

...ta_db/metadata_template/test/test_prep_template.py
99.81% <ø> (-0.01%)
:arrow_down:

...ita_db/metadata_template/base_metadata_template.py
95.17% <100%> (+0.11%)
:arrow_up:

..._db/metadata_template/test/test_sample_template.py
99.84% <100%> (-0.01%)
:arrow_down:

...t/handlers/api_proxy/tests/test_sample_template.py
98.66% <0%> (+0.88%)
:arrow_up:

Continue to review full report at Codecov.

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

:+1:

Thanks @wasade / @tanaes - able to merge? (I don't want to do a self high-five 😄 )

I approved, just had the question for learning purposes. Not sure @wasade
has finished review? Can merge if so.
On Mon, Aug 21, 2017 at 11:49 AM Jose Navas<EMAIL_ADDRESS>wrote:

Thanks @wasade https://github.com/wasade / @tanaes
https://github.com/tanaes - able to merge? (I don't want to do a self
high-five 😄 )
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/biocore/qiita/pull/2247#issuecomment-323821880, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AH6JAC7aeY4R4ymLuiL8ATvoYmvpSPlJks5sadE4gaJpZM4O9iPp
.

No problem @tanaes - Yes, @wasade gave the 👍  so you can merge. Thanks!


Provide a guideline for any APIs/interfaces that use a classname to render HTML classes

Is your proposal related to a problem?
While this is not the most critical issue, it would be good to provide a guideline for contributors as to how classname will be supplied to Django templates, views and Python driven class components.
Describe the solution you'd like

A clear guideline as to the preferred naming convention for classname in the general coding guidelines https://docs.wagtail.org/en/stable/contributing/general_guidelines.html
Based on current usage, the approach classname makes the most sense.
Important: Proposal is to not change too much, these would all be breaking changes so it may not be worth it to 'clean up' everything but it would be good to have a guideline and try to stick to it for new code and smaller changes.

Describe alternatives you've considered

Do nothing, this is not a problem and the proliferation of various approaches does not really matter in the long run.

Additional context
Best summary of current state (as of Wagtail 4.0 RC-ish), classname appears to be the most used by far.

Convention
Django template usage
Python usage as API

classname
28
~40

classes
2
~5

classnames
3
~5

class_name
2 (icon is one)
1 (icon), others are n/a as they mean the __class__.name

class
2
~0

classNames
0
1 (for table block)

class_names
0
0

className
0
0

Notes

Have not counted scenarios where the above is used as a suffix (such as li_classes).
Have not counted usage as interim variable but rather when used as the API facing value.

React has the convention of className and most JavaScript written adheres to that (not all), the JS code however does not have a large API surface area so leaving that out of scope for now. Most likely we would want to keep with className in JS land, even though it does not align with class_name in Python land.

PR https://github.com/wagtail/wagtail/pull/8886

Interesting problem caused when refactoring the classes usage for Panels
See - https://github.com/wagtail/wagtail/pull/9239 & https://github.com/wagtail/wagtail/issues/9232
Basically, Panel classes use classname as a class attribute, but uses classes as the method to override and the 'truth' of what should be rendered to the multi_field_panel (after the fix).
admin/templates/wagtailadmin/panels/multi_field_panel.html
Not sure on the best way here but just adding for context.

Closing this as the main goal (small cleanup & Dev docs) has been done via https://github.com/wagtail/wagtail/commit/30585340fd020391aae6d406b02aea4ab73c4177
https://github.com/wagtail/wagtail/pull/8886