Docker support

Is it possible to install tinypilot with docker and is or will there be a docker available at dockerhub?

I love Docker, so I wish it could, but unfortunately this isn't possible. TinyPilot requires changes to the Pi's /boot/config.txt and /etc/modules, so it's not possible to encapsulate that in a Docker container.

I love Docker, so I wish it could, but unfortunately this isn't possible. TinyPilot requires changes to the Pi's /boot/config.txt and /etc/modules, so it's not possible to encapsulate that in a Docker container.

Looking at the ansible role [1], apart from the installation of the USB gadget, I think pretty much everything else could run in a Docker container. Adding Docker support would add a lot of value to aid repeatability, cross platform compatibility and allow easily put a forward proxy (e.g. Traefik) in-front of tinypilot.
Is there something I'm missing in my analysis?
I'm waiting for my USB capture device to arrive to test out tinypilot but I may take a crack at implementing this if this is something which would be accepted upstream :)
[1] https://github.com/mtlynch/ansible-role-tinypilot/blob/master/tasks/main.yml

Looking at the ansible role [1], apart from the installation of the USB gadget, I think pretty much everything else could run in a Docker container. Adding Docker support would add a lot of value to aid repeatability, cross platform compatibility and allow easily put a forward proxy (e.g. Traefik) in-front of tinypilot.
Is there something I'm missing in my analysis?
I'm waiting for my USB capture device to arrive to test out tinypilot but I may take a crack at implementing this if this is something which would be accepted upstream :)
[1] https://github.com/mtlynch/ansible-role-tinypilot/blob/master/tasks/main.yml

I'm open to the Docker container, but I'd like to understand more about what the goal is. Without the USB gadget, there's no keyboard or mouse input, so what would a Dockerized TinyPilot do?

I'm open to the Docker container, but I'd like to understand more about what the goal is. Without the USB gadget, there's no keyboard or mouse input, so what would a Dockerized TinyPilot do?

The idea is that the docker container runs all the layers above the USB gadget (i.e. ngnix, ustreamer, tinypilot) with the USB gadget needing to be installed separately by itself.
There's precedent for this in other projects: for example, the Wireguard docker container [1]. This uses the kernel module which is expected to be installed on the bare-metal machine with all the userspace code running in the container. (tbh with this example there's also a mode which actually compiles and runs the module inside the container itself but I don't think that's possible in the TinyPilot case).
[1] https://hub.docker.com/r/linuxserver/wireguard

The idea is that the docker container runs all the layers above the USB gadget (i.e. ngnix, ustreamer, tinypilot) with the USB gadget needing to be installed separately by itself.
There's precedent for this in other projects: for example, the Wireguard docker container [1]. This uses the kernel module which is expected to be installed on the bare-metal machine with all the userspace code running in the container. (tbh with this example there's also a mode which actually compiles and runs the module inside the container itself but I don't think that's possible in the TinyPilot case).
[1] https://hub.docker.com/r/linuxserver/wireguard

Unfortunately, I don't think I'd accept that upstream.
I love Docker, but I can't think of a way to justify it. I wouldn't make it the default way to run in production because it adds too much complexity. And normally I'd love Docker as a way to test in CI, but in this case, I think it would mean that my CI build would be too different from my production build.
I appreciate the proposal and sharing details from Wireguard. I'm not totally closed to the idea long term, but I just don't see a way that it fits into the software without becoming essentially an extra compatibility target to maintain. Ansible is kind of wonky, but it's at least the devil that I know at this point.

Unfortunately, I don't think I'd accept that upstream.
I love Docker, but I can't think of a way to justify it. I wouldn't make it the default way to run in production because it adds too much complexity. And normally I'd love Docker as a way to test in CI, but in this case, I think it would mean that my CI build would be too different from my production build.
I appreciate the proposal and sharing details from Wireguard. I'm not totally closed to the idea long term, but I just don't see a way that it fits into the software without becoming essentially an extra compatibility target to maintain. Ansible is kind of wonky, but it's at least the devil that I know at this point.

That's fair I totally understand. I'll maintain something in my personal collection of dockerfiles in that case :)

That's fair I totally understand. I'll maintain something in my personal collection of dockerfiles in that case :)

Let me know if you end up creating it. I'd love to take a look and see if I can find a way to integrate it.

Let me know if you end up creating it. I'd love to take a look and see if I can find a way to integrate it.

I've done it:
Ustreamer  Dockerifle
FROM ubuntu

RUN apt update && apt -y install git build-essential libevent-dev libjpeg62-dev uuid-dev libbsd-dev make gcc libjpeg8 libjpeg-turbo8 libuuid1 libbsd0

RUN git clone --depth=1 https://github.com/pikvm/ustreamer

WORKDIR /ustreamer

RUN make && make install && ustreamer --help

EXPOSE 8080

CMD ["ustreamer", "--host=<IP_ADDRESS>" ,"-r", "1920x1080" ,"--persistent" ,"--drop-same-frames=30", "-l"]

(somehow the compilation stopped working today. I'll need to investigate)
TinyPilot dockerfile
FROM python:3

RUN apt-get update

RUN curl -sL https://deb.nodesource.com/setup_14.x |  bash -
RUN  apt-get install -y nodejs

RUN git clone https://github.com/mtlynch/tinypilot

WORKDIR /tinypilot

RUN pip install --requirement requirements.txt && pip install --requirement dev_requirements.txt
RUN npm install<EMAIL_ADDRESS>
RUN ./dev-scripts/build

EXPOSE 8000
ENV PORT=8000

CMD ["python", "/tinypilot/app/main.py"]

Nginx  template file
kvn.conf.template
server {
	listen 10080 ;
	server_name your.domain.com;

	location = /stream {
		proxy_pass http://ustreamer:8080/stream;
		proxy_send_timeout 1200s;
		proxy_read_timeout 1200s;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header X-Forwarded-Proto $scheme;
	        proxy_set_header Connection "Upgrade";
		fastcgi_send_timeout 1200s;
		fastcgi_read_timeout 1200s;
		proxy_buffering off;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header Host            $host;
		proxy_set_header X-Forwarded-Host  $host;
		add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload";
    	}

	location / {
		proxy_pass http://tinypilot:8000;
		proxy_send_timeout 1200s;
		proxy_read_timeout 1200s;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header X-Forwarded-Proto $scheme;
	        proxy_set_header Connection "Upgrade";
		fastcgi_send_timeout 1200s;
		fastcgi_read_timeout 1200s;
		proxy_buffering off;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header Host            $host;
		proxy_set_header X-Forwarded-Host  $host;
		add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload";
	}
}

docker-compose file
version: '3.6'
services:
  nginx:
    image: nginx
    container_name: nginx
    restart: always
    depends_on:
     - ustreamer
     - tinypilot
    ports:
     - 10080:10080
    volumes:
     - ./nginx:/etc/nginx/templates
  ustreamer:
    build:
      context: ./images/ustreamer/
    container_name: ustreamer
    restart: always
    ports:
      - "8181:8080"
    devices:
      - /dev/video0:/dev/video0
  tinypilot:
    build:
      context: ./images/tinypilot/
    container_name: tinypilot
    restart: always
    ports:
      - "8000:8000"
    devices:
    - /dev/hidg0:/dev/hidg0
    - /dev/hidg1:/dev/hidg1

There's probably a way to skip on the  nginx config files by using traeffik and set up reverse proxying with  labels, I'll need to look into it.

I've done it:
Ustreamer  Dockerifle
FROM ubuntu

RUN apt update && apt -y install git build-essential libevent-dev libjpeg62-dev uuid-dev libbsd-dev make gcc libjpeg8 libjpeg-turbo8 libuuid1 libbsd0

RUN git clone --depth=1 https://github.com/pikvm/ustreamer

WORKDIR /ustreamer

RUN make && make install && ustreamer --help

EXPOSE 8080

CMD ["ustreamer", "--host=<IP_ADDRESS>" ,"-r", "1920x1080" ,"--persistent" ,"--drop-same-frames=30", "-l"]

(somehow the compilation stopped working today. I'll need to investigate)
TinyPilot dockerfile
FROM python:3

RUN apt-get update

RUN curl -sL https://deb.nodesource.com/setup_14.x |  bash -
RUN  apt-get install -y nodejs

RUN git clone https://github.com/mtlynch/tinypilot

WORKDIR /tinypilot

RUN pip install --requirement requirements.txt && pip install --requirement dev_requirements.txt
RUN npm install<EMAIL_ADDRESS>
RUN ./dev-scripts/build

EXPOSE 8000
ENV PORT=8000

CMD ["python", "/tinypilot/app/main.py"]

Nginx  template file
kvn.conf.template
server {
	listen 10080 ;
	server_name your.domain.com;

	location = /stream {
		proxy_pass http://ustreamer:8080/stream;
		proxy_send_timeout 1200s;
		proxy_read_timeout 1200s;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header X-Forwarded-Proto $scheme;
	        proxy_set_header Connection "Upgrade";
		fastcgi_send_timeout 1200s;
		fastcgi_read_timeout 1200s;
		proxy_buffering off;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header Host            $host;
		proxy_set_header X-Forwarded-Host  $host;
		add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload";
    	}

	location / {
		proxy_pass http://tinypilot:8000;
		proxy_send_timeout 1200s;
		proxy_read_timeout 1200s;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header X-Forwarded-Proto $scheme;
	        proxy_set_header Connection "Upgrade";
		fastcgi_send_timeout 1200s;
		fastcgi_read_timeout 1200s;
		proxy_buffering off;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header Host            $host;
		proxy_set_header X-Forwarded-Host  $host;
		add_header Strict-Transport-Security "max-age=15552000; includeSubDomains; preload";
	}
}

docker-compose file
version: '3.6'
services:
  nginx:
    image: nginx
    container_name: nginx
    restart: always
    depends_on:
     - ustreamer
     - tinypilot
    ports:
     - 10080:10080
    volumes:
     - ./nginx:/etc/nginx/templates
  ustreamer:
    build:
      context: ./images/ustreamer/
    container_name: ustreamer
    restart: always
    ports:
      - "8181:8080"
    devices:
      - /dev/video0:/dev/video0
  tinypilot:
    build:
      context: ./images/tinypilot/
    container_name: tinypilot
    restart: always
    ports:
      - "8000:8000"
    devices:
    - /dev/hidg0:/dev/hidg0
    - /dev/hidg1:/dev/hidg1

There's probably a way to skip on the  nginx config files by using traeffik and set up reverse proxying with  labels, I'll need to look into it.

This is really cool! Thanks for sharing, @lamarios!
What other configuration was needed outside of docker-compose? You need to configure the USB gadgets separately, right?

This is really cool! Thanks for sharing, @lamarios!
What other configuration was needed outside of docker-compose? You need to configure the USB gadgets separately, right?

Yeah that's correct. By the way, is there a way to undo the usb script ? Now I always reboot when there's an update but there's probably a better way.

Yeah that's correct. By the way, is there a way to undo the usb script ? Now I always reboot when there's an update but there's probably a better way.

Ok updated with traefik for more simplicity and remove the need for extra local files.
version: '3.6'
services:
  traefik:
    restart: always
    image: traefik:2.3
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    container_name: traefik
    ports:
      - "10080:80"
      - "18080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
  ustreamer:
    build:
      context: ./images/ustreamer/
    container_name: ustreamer
    restart: always
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.ustreamer.rule=Host(`yourdomain.com`) && PathPrefix(`/stream`)"
    - "traefik.http.services.ustreamer.loadbalancer.server.port=8080"
    devices:
      - /dev/video0:/dev/video0
  tinypilot:
    build:
      context: ./images/tinypilot/
    container_name: tinypilot
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.kvm.rule=Host(`yourdomain.com`)"
    - "traefik.http.services.kvm.loadbalancer.server.port=8000"
    restart: always
    devices:
    - /dev/hidg0:/dev/hidg0
    - /dev/hidg1:/dev/hidg1

Ok updated with traefik for more simplicity and remove the need for extra local files.
version: '3.6'
services:
  traefik:
    restart: always
    image: traefik:2.3
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    container_name: traefik
    ports:
      - "10080:80"
      - "18080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
  ustreamer:
    build:
      context: ./images/ustreamer/
    container_name: ustreamer
    restart: always
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.ustreamer.rule=Host(`yourdomain.com`) && PathPrefix(`/stream`)"
    - "traefik.http.services.ustreamer.loadbalancer.server.port=8080"
    devices:
      - /dev/video0:/dev/video0
  tinypilot:
    build:
      context: ./images/tinypilot/
    container_name: tinypilot
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.kvm.rule=Host(`yourdomain.com`)"
    - "traefik.http.services.kvm.loadbalancer.server.port=8000"
    restart: always
    devices:
    - /dev/hidg0:/dev/hidg0
    - /dev/hidg1:/dev/hidg1

Nice, thanks for sharing this!

By the way, is there a way to undo the usb script ?

I believe there is, but I haven't experimented with this much. I started looking into this recently while investigating the best way to implement resetting virtual storage.
I think I accidentally reset everything by either writing an empty string to /sys/kernel/config/usb_gadget/g1/UDC or by removing it, but I haven't had an opportunity to tinker with it further.
If you end up finding an answer, I'd be interested.

Nice, thanks for sharing this!

By the way, is there a way to undo the usb script ?

I believe there is, but I haven't experimented with this much. I started looking into this recently while investigating the best way to implement resetting virtual storage.
I think I accidentally reset everything by either writing an empty string to /sys/kernel/config/usb_gadget/g1/UDC or by removing it, but I haven't had an opportunity to tinker with it further.
If you end up finding an answer, I'd be interested.

Ok updated with traefik for more simplicity and remove the need for extra local files.
Edit: I checked for ustreamer and they actually have docker files in their repo but it doesn't seem like they have official images yet so i built and published one
version: '3.6'
services:
  traefik:
    restart: always
    image: traefik:2.3
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    container_name: traefik
    ports:
      - "10080:80"
      - "18080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
  ustreamer:
    image: gonzague/ustreamer
    container_name: ustreamer
    restart: always
    command: ["ustreamer", "--host=<IP_ADDRESS>" ,"-r", "1920x1080" ,"--persistent" ,"--drop-same-frames=30", "-l"]
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.ustreamer.rule=Host(`yourdomain.com`) && PathPrefix(`/stream`)"
    - "traefik.http.services.ustreamer.loadbalancer.server.port=8080"
    devices:
      - /dev/video0:/dev/video0
  tinypilot:
    build:
      context: ./images/tinypilot/
    container_name: tinypilot
    labels:
    - "traefik.enable=true"
    - "traefik.http.routers.kvm.rule=Host(`yourdomain.com`)"
    - "traefik.http.services.kvm.loadbalancer.server.port=8000"
    restart: always
    devices:
    - /dev/hidg0:/dev/hidg0
    - /dev/hidg1:/dev/hidg1

What else is needed to run tinypilot via docker? I can't seem to find the usb script that is referred to... Thanks!

The usb script is the only thing that you need to run manually.

@lamarios Can you got in to more detail how to set this up with portainer? I'm trying to run it on a x86 machine (Intel Atom x5-Z8350) and for now it would be enough to get TinyPilots video streaming working. Copying and pasting your docker-compose in to portainer results in an error.

I don't use portainer but the error message is clear enough. You're trying to build the image from a path that doesn't exist.


Add ERC: Ownership Delegation and Context for ERC-721

This proposal introduces an extension for ERC721 Non-Fungible Tokens (NFTs): specifying users for several contexts and differentiating owner and ownership rights for a token to use in several financial use cases for NFT.

Hi reviewers, all the commented issues are resolved. This proposal is refined to be a draft and ready for review. Please take a look @axic, @g11tech, @SamWilsn, @xinbenlv

Hi reviewers,
I resolved all the commented issues. It is ready to review as a draft proposal, please take a look @axic, @g11tech, @SamWilsn, @xinbenlv, @abcoathup. I will add the reference implementation in the Update ERC PR while determining the best practices for this proposal.
Thank you.


Istio operator cannot deploy configuration profile on Minikube, error: no matches for kind "IstioOperator" in version "install.istio.io/v1alpha1"

Bug description
First of all I would like to confirm that I can deploy both minikube addons istio-provisioner( istio-operator) and istio on my minikube profile - and it seems like both istio-operator and istio demo config profile end up deployed expected. At the moment both Minikube addons  istio-provisioner( istio-operator) and istio shipped at version 1.5.0
If I would rather deploy istio-operator and istio configuration profile as per instructions available here, things don't work as expected... When I try to deploy configuration profile I am getting following error message:
error: no matches for kind "IstioOperator" in version "install.istio.io/v1alpha1"
NOTE: I've tried this with versions 1.5.[0-4] - hitting the same error message for all of them.
Expected behavior
As I understand istio operator should be able to deploy required configuration profile on my Minikube instance - this doesn't happen at the moment.
Steps to reproduce the bug
Deploy minikube named profile:
minikube start --profile 'istio15xlab' --kubernetes-version=v1.18.2 --vm-driver kvm2 --memory='16384mb' --cpus='6' --disk-size='30g'
Download required istio release (could be any of 1.5.[0-4] - none worked for me):
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.0 sh -
Deploy istio-operator:
istio-1.5.0/bin/istioctl operator init --wait
Check on CRD status:
kubectl describe crd istiooperators.install.istio.io
NOTE: I am observing following on my CRD status, not sure if this is expected:
Conditions:     Message:               spec.versions[0].schema.openAPIV3Schema.type: Required value: must not be empty at the root     Reason:                Violations     Status:                True     Type:                  NonStructuralSchema
Create kubernetes namespace (as per documentation):
kubectl create ns istio-system
Deploy istio configuration profile (as per documentation):
kubectl apply -f - <<EOF apiVersion: install.istio.io/v1alpha1 kind: IstioOperator metadata:   namespace: istio-system   name: example-istiocontrolplane spec:   profile: demo EOF
NOTE:  my  error message:
error: no matches for kind "IstioOperator" in version "install.istio.io/v1alpha1"
Version (include the output of istioctl version --remote and kubectl version and helm version if you used Helm)
istioctl version --remote=false 1.5.0
kubectl version  Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:48:36Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
How was Istio installed?
This is how Istio operator was deployed:
istioctl operator init --wait
I cannot install Istio configuration profile at the moment, I am issuing following:
$ kubectl create ns istio-system $ kubectl apply -f - <<EOF apiVersion: install.istio.io/v1alpha1 kind: IstioOperator metadata:   namespace: istio-system   name: example-istiocontrolplane spec:   profile: demo EOF
Environment where bug was observed (cloud vendor, OS, etc)
minikube version: v1.10.1 commit: 63ab801ac27e5742ae442ce36dff7877dcccb278

So I've decided to proceed with a clean install of Fedora 32 (the issue was opened while I was still on Fedora 31). And it seems like I don't get any delays with 'IstioOperator' object and/or istio-operator CRD deployments anymore... Not sure what could've been the problem, I've realized that I was having similar issues with CRDs during Knative deployment - so that made me suspicious. Closing for now.
Host OS: Fedora 32
Libvirt: 6.1.0
Minikube: v1.10.1
kubectl version --client=true
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}


Can the installation be fully automated?

Can build.jl download and compile the SCIP source codes by itself without needing SCIPOPTDIR? Is there anything that prevent it? License issue, perhaps? I just doubt that normal Julia users will need SCIP codes and binaries outside Julia. If they need it, they will install it outside Julia, I guess. Just like Ipopt.

No, it cannot. SCIP's license unfortunately does not permit automated installations.

Thanks for the confirmation.

Might be worth saying something in the README about this

And I did in a1357b7.


Add a timetable sneak peek for widgets

Telegram app has widgets which show the first line of the chat as such:

We can take advantage of this if the message returned from get_class_schedule_handler started with a sneak peek of our timetable status with emojis as such:
Class Schedule: 🟢🔴🔴🟢⚪⚪ instead of just Class Schedule:

I want to work on this issue. may you assign me this?

Yes go ahead

See if this look good, if I program Class Schedule: 🟢🔴🔴🟢⚪⚪  like this than we can't see all the emojis on some devices therefore I have brought the indicators in front.


case sensitivity in model name

Bug Report
I intentionally named my model with a lowercase initial letter. While the model name displays correctly in the models section, it appears incorrectly capitalized on the main splash screen asking "how can I help you today:". The model name on this page should match the model name exactly, preserving the lowercase initial letter.
please and thank you. love what you guys have created here!
just saw the contribution area. I've been reluctant to contribute in fear of messing up, but these bots have given me the confidence to take a stab at it, so i'll give it a whirl!

Installation Method
[Describe the method you used to install the project, e.g., git clone, Docker, pip, etc.]
Environment

Open WebUI Version: v0.3.35
Ollama (if applicable): 0.3.14
Operating System: macOS 15.1 (24B83)
Browser (if applicable): 15.1 (24B83)

Confirmation:

[x] I have read and followed all the instructions provided in the README.md.
[x] I am on the latest version of both Open WebUI and Ollama.
[ ] I have included the browser console logs.
[ ] I have included the Docker container logs.
[ ] I have provided the exact steps to reproduce the bug in the "Steps to Reproduce" section below.

Expected Behavior:
I expected my model name to reflect correctly when using the bot I created
Actual Behavior:
the bot's name appears with an inital capital letter.
Description
Bug Summary:
I named my model purposefully with a lowercase initial letter. Although the model name is correctly reflected in the model's directory; when the main splash screen appears with the prompt "how can I help you today:", the bot's name is incorrectly capitalized. The model name on this page should be identical (===) to the active model name, preserving the lowercase initial letter in this case.
Reproduction Details
create a bot where the name is not capitalized
enter required information
save the model
use the model
Logs and Screenshots
Browser Console Logs:
n/a
Docker Container Logs:
working on this...
Screenshots/Screen Recordings (if applicable):
working on this...
Additional Information
[Include any additional details that may help in understanding and reproducing the issue. This could include specific configurations, error messages, or anything else relevant to the bug.]
Note
If the bug report is incomplete or does not follow the provided instructions, it may not be addressed. Please ensure that you have followed the steps outlined in the README.md and troubleshooting.md documents, and provide all necessary information for us to reproduce and address the issue. Thank you!

Fixed on dev!


Ah chance to learn to use vidir 😄 https://joeyh.name/code/moreutils/ (brew install moreutils)


OCPBUGS-17669: Validate HostedCluster name against RFC1123

What this PR does / why we need it:
Validates the HostedCluster name meets RFC1123 in the HostedCluster controller.
Which issue(s) this PR fixes:
Fixes OCPBUGS-17669
Checklist

[x] Subject and description added to both, commit and PR.
[x] Relevant issues have been referenced.
[x] This change includes docs.
[x] This change includes unit tests.

/approve

/lgtm


add if/else before return in parseLocation

Hi! I found this repo when searching for a js genbank parser. Thanks for making this available! I found an error when parsing a gb file that has features with the same start and stop location (in my case this file contained a 'misc_difference' feature). I enclosed the return statement in and if/else fork to avoid this error. What do you think? I hope you find this helpful! I certainly don't mean to be intrusive. This is very nice code!! Thanks again!

@udp I put a pull request in with a fix to this a while ago, but was never accepted.

@wookoouk Oops... really sorry about that.  My github notifications were going to an old e-mail address and I only noticed recently  :-(
I'll accept this and credit both of you.  Thanks!

I have a bunch of changes that I put pull requests in for a few months ago but cancelled them but Ill merge with the new changes (my version is at https://github.com/wookoouk/genbankjs)

Great, thanks!  :-)


[Bug]: PubSubIO writes cannot be more than 100 bytes

What happened?
Writing to Pub/Sub currently results in the following issue:
javax.naming.SizeLimitExceededException: Pubsub message of length 220 exceeds maximum of 100 bytes, when considering the payload and attributes. See https://cloud.google.com/pubsub/quotas#resource_limits

This happens because this call passes in the maximum number of messages allowed in a batch, when it should pass in the maximum number of bytes allowed in a batch.
Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Issue Components

[ ] Component: Python SDK
[X] Component: Java SDK
[ ] Component: Go SDK
[ ] Component: Typescript SDK
[X] Component: IO connector
[ ] Component: Beam examples
[ ] Component: Beam playground
[ ] Component: Beam katas
[ ] Component: Website
[ ] Component: Spark Runner
[ ] Component: Flink Runner
[ ] Component: Samza Runner
[ ] Component: Twister2 Runner
[ ] Component: Hazelcast Jet Runner
[ ] Component: Google Cloud Dataflow Runner

.take-issue

The issue was fixed and will be available in Beam 2.49.0.
The impact is specific to batch jobs that use PubsubIO, as the wrong validation is part of PubsubBoundedWriter.
Thanks for the fix @jonathan-lemos.


Update XDR definitions to protocol 14

The following PR https://github.com/stellar/stellar-core/pull/2623 contains a stable protocol 14 implementation.
We can now generate auto-generate the XDR definitions for protocol 14 and start implementing support for CAP23(#2787) and CAP33 (#2788).

This has been done.


[improve][broker] Use shrink map for trackerCache

Motivation

Currently, the trackerCache uses a ConcurrentLongLongPairHashMap that does not shrink, causing trackerCache to occupy a large amount of memory and has no way to release it.
By monitoring the market through the JVM, we can see that during that time period, Young GC and Full GC have been frequently triggered, resulting in a large delay in Young GC and Full GC, which in turn affects production and consumption.

But what is interesting is that we can see that after the Young GC and Full GC are triggered many times, the memory in the heap is not reclaimed, so the Young GC and Full GC are triggered frequently.

Therefore, based on the above background, we made a memory dump of the Broker node and found that the set of trackerCache occupies most of the memory and this part of memory uses a non-shrink map, which will never be released. For details, refer to the following dump information:

Modifications

Use shrink map for trackerCache

[ ] doc

[ ] doc-required

[x] doc-not-needed

[ ] doc-complete

/pulsarbot rerun-failure-checks


Add support for additional winrm transport types and options

Some additional winrm option support, mainly transport usage and timeouts (only transport on the cli though).  More to do here but this is a start.

The printf logging change in here seemed like the right thing to do.  I can revert it if that is problematic, but it seems like a positive change especially when many of those log events are at the debug level.


[Hyprland] Ironbar does not load on monitor connect.

Describe the bug
When I plug in a monitor the bar doesn't appear. ironbar reload returns an error.
To Reproduce
Steps to reproduce the behavior:

Connect external monitors.
Start ironbar.
Bar should appear on all monitors.
Disconnect monitors.
Reconnect
Bar will be on main display but not on externals.
Try ironbar reload.
You get some variation of "error" or

Expected behavior
Bar should spawn on newly connected monitors and not error on ironbar reload.
System information:

Distro: Arch Linux
Compositor: Hyprland (pkg: extra/hyprland)

Hyprland, built from branch  at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3  (props: bump version to 0.41.1).
Date: Thu Jun 13 09:54:06 2024
Tag: v0.41.1, commits: 4818

flags: (if any)

Ironbar version: ironbar 0.16.0-pre

yay -Q reports:  v0.15.1.r74.gd0bdf31-1

Configuration

Share your bar configuration and stylesheet as applicable:

Config
position = "top"
height = 4

[[start]]
type = "workspaces"
all_monitors = false
icon_size = 6

[[center]]
type = "focused"
show_icon = true
show_title = true
icon_size = 16
truncate = "end"

[[end]]
name = "recording-indicator"
type = "label"
label = '''{{poll:2000:
if [[ -f /tmp/wl-screenrec.pid ]]; then
echo 󰑊
else
echo
fi
}}'''

[[end]]
type = 'sys_info'
format = [
    ' {cpu_percent}% | {temp_c:k10temp-Tctl}°C',
    ' {memory_percent}%',
    '󰋊 {disk_percent:/}%',
    '󰓢 {net_down:enp195s0f4u1u4} / {net_up:enp195s0f4u1u4} Mbps',
]

[[end]]
type = "upower"
format = "{percentage}%"
icon_size = 16

[[end]]
type = "clock"
format = "%H:%M"

[end.interval]
cpu = 1
disks = 300
memory = 30
networks = 3
temps = 5

Styles

Additional context
Log:
2024-06-18T15:23:35.219091Z ERROR ironbar::logging: The application panicked (crashed).
Message:  Failed to get workspaces: SerdeError(Error("invalid number", line: 50, column: 18))
Location: src/clients/compositor/hyprland.rs:203

Screenshots

If applicable, add screenshots to help explain your problem.

Hey, can you confirm what version(s) of Hyprland you are experiencing this on please?

Hyprland, built from branch  at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3  (props: bump version to 0.41.1).
Date: Thu Jun 13 09:54:06 2024
Tag: v0.41.1, commits: 4818

flags: (if any)

Fun, I've just tested this and I can see what's happening. I believe it's related to https://github.com/swaywm/sway/issues/8164. Effectively, I have to hope that GDK and Wayland report monitors in the same order, which appears to be true until you (dis)connect one.
I'm not sure what I can do about that yet but I'll have a think.

So a fix has now been implemented in GTK for the issue. Once there's a new GTK3 release, I'll revert the logic in Ironbar to its previous implementation that should resolve this.


New number format for durations

Is your feature request related to a problem? Please describe.
When I'm working with durations, Superset offers me by default two options:

The first one is my favourite but sometimes I would like to have a simpler format. Instead of HH:mm:ss.s I'd prefer HH:mm.
Describe the solution you'd like
Add a new format in the format number section for durations coming from ms.
Duration in ms (66000 => 1m)
Describe alternatives you've considered
I think that my proposed solution is easy adding this option to the number-format package.

@avicenteg I'd be interested in hearing more about your use case. We could potentially add the colonNotation option (HH:mm:ss as opposed to the traditional H m s format) that pretty-ms supports as a default duration formatting option. You can check the unit tests there to see which format suits you needs best. In the long term the plan is to make it possible to pass the options to the formatter, much like is done for D3 now.

@villebro In fact, I'm more interested in not having the seconds part. Maybe use the colonNotation isn't a good idea since it may lead to confussion with Time fields.
I think that the option compact in pretty-ms is the best way to get it, but I'm not sure if it will delete also the minutes.
For example:
3660000 ms => 1 h 57 m
It will be great to have an option of passing the options to the formatter, but I understand that it is a little bit trickier than for D3.


List value reload method

Reload method is introduced for list value data sources.

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

@ConnorLand - I think you can deal with this, but let me know if it should be someone else.


Workflow engine "black box" tests

Change Summary
This PR includes several incremental improvements to the embedded workflow engine implementation:

Updated to latest version of Durable Task dependency
Increased max per-node concurrency from 1 to 100
Made actor placement service mockable
Added several workflow unit tests
Fixed internal actor concurrency issues
Added timeout to internal workflow and activity scheduling

New Workflow Engine Tests
The biggest change is the addition of workflow unit tests. These are run as part of unit test executions, but they are designed more like integration tests in that they define a full workflow using Durable Task primitives and execute it to completion. Here's an example:
// TestSingleActivityWorkflow executes a workflow that calls a single activity and completes. The input
// passed to the workflow is also passed to the activity, and the activity's return value is also returned
// by the workflow, allowing the test to verify input and output handling, as well as activity execution.
func TestSingleActivityWorkflow(t *testing.T) {
	r := task.NewTaskRegistry()
	r.AddOrchestratorN("SingleActivity", func(ctx *task.OrchestrationContext) (any, error) {
		var input string
		if err := ctx.GetInput(&input); err != nil {
			return nil, err
		}
		var output string
		err := ctx.CallActivity("SayHello", input).Await(&output)
		return output, err
	})
	r.AddActivityN("SayHello", func(ctx task.ActivityContext) (any, error) {
		var name string
		if err := ctx.GetInput(&name); err != nil {
			return nil, err
		}
		return fmt.Sprintf("Hello, %s!", name), nil
	})

	ctx := context.Background()
	client := startEngine(ctx, r)

	id, err := client.ScheduleNewOrchestration(ctx, "SingleActivity", api.WithInput("世界"))
	if assert.NoError(t, err) {
		metadata, err := client.WaitForOrchestrationCompletion(ctx, id)
		if assert.NoError(t, err) {
			assert.True(t, metadata.IsComplete())
			assert.Equal(t, `"世界"`, metadata.SerializedInput)
			assert.Equal(t, `"Hello, 世界!"`, metadata.SerializedOutput)
		}
	}
}

The workflow is defined and managed using public APIs defined in https://github.com/microsoft/durabletask-go. These APIs are very similar to the ones that will be exposed by the Dapr WF SDKs (in fact, the Dapr WF Go SDK will likely use these exact APIs internally).
This "black box" approach to testing workflows was intentionally chosen to ensure our tests are reflective of the code that developers will actually write. It also makes the code more resilient to internal code refactoring.
Note that rather than going through the gRPC layer, these workflows and the client that manages them interface more directly with the internal workflow actors.
Production:
[client] ---(grpc)--> [durabletask] --> [actors] ---(grpc)--> [workflows]
These tests:
[client] --> [durabletask] --> [actors] --> [workflows]
Mockable Placement service
In order to execute these kinds of black-box tests, we needed the placement service to be mockable. This PR therefore adds a new PlacementService interface and allows it to be set when constructing the actor runtime.
// PlacementService allows for interacting with the actor placement service.
type PlacementService interface {
	Start()
	Stop()
	WaitUntilPlacementTableIsReady()
	LookupActor(actorType, actorID string) (host string, appID string)
}

With the placement service being made mockable, it's now possible to do broader testing of actor behavior.
Checklist

[x] Code compiles correctly
[x] Created/updated tests
[x] Unit tests passing
[ ] End-to-end tests passing
[x] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#_[issue number]
[x] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#_[issue number]
[x] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#_[issue number]

Signed-off-by: Chris Gillum<EMAIL_ADDRESS>

BTW, the E2E tests are failing because the "Setup Redis" step is failing. It appears to be a timeout with the helm command, and unrelated to my PR.

BTW, the E2E tests are failing because the "Setup Redis" step is failing. It appears to be a timeout with the helm command, and unrelated to my PR.

Should now be fixed in master, not sure why this PR isn't picking up the updated tests. Can you try squashing and doing a force-push?

@ItalyPaleAle it looks like there was a merge conflict that prevented your fix from being auto-merged into the workflow feature branch. @artursouza, is this something you might be able to help us resolve?


DUPLO-25476 chore: remove unsupported access grant resource types

Overview
Removes some unsupported access grant types that are not currently in the duplo portal options
Fixes a bug where create succeeds after deployment status times out.
Summary of changes
This PR does the following:

Removes unsupported tenant access grant resource types
Updates provider documentation
Throws error when access grant create ties out

Testing performed

[ ] Using unit tests
[x] Manually, on my local system
[ ] Manually, on a remote test system

Describe any breaking changes
No
Sanity Checking

Create timeout

Lint and push failed for push hook but succeeded for pull request hook? 😕

reverted breaking change and opened a separate PR for it here


Opt to a new encoding system

Encoding procedure pushdown
The previous revision of kv selected two separate phases to encode data: flushing disk tables and compaction. These different phases can not share any algorithm except for the encoding process. That brings complexity and is hard to maintain. In https://github.com/apache/skywalking/issues/10118, I propose a new design to implement encoding/decoding.
In this PR, I did the following:

Bump up the private Badger to support a new table builder that could encode a chunk with the same key.
Use Badger's compression function to compress tags instead of the plain encoding function, which is purged.
Inject a BufferWriter to encoder/decoder in place of bytes.Buffer. The BufferWriter wraps a table writing buffer, which builds the table's binary.

Fixes https://github.com/apache/skywalking/issues/10118
Chroes

Remove redandunt shardID.
Merge pkg/bit and pkg/buffer into pkg/encoding.

Signed-off-by: Gao Hongtao<EMAIL_ADDRESS>

Codecov Report

Merging #230 (d6421a4) into main (2434e59) will increase coverage by 1.14%.
The diff coverage is 65.38%.

@@            Coverage Diff             @@
##             main     #230      +/-   ##
==========================================
+ Coverage   44.04%   45.19%   +1.14%
==========================================
  Files          88       87       -1
  Lines        9092     8872     -220
==========================================
+ Hits         4005     4010       +5
+ Misses       4706     4483     -223
+ Partials      381      379       -2

Impacted Files
Coverage Δ

banyand/measure/measure_query.go
0.00% <ø> (ø)

banyand/tsdb/segment.go
50.00% <ø> (+0.63%)
:arrow_up:

banyand/tsdb/series.go
34.71% <0.00%> (+0.28%)
:arrow_up:

banyand/tsdb/series_seek.go
0.00% <ø> (ø)

banyand/tsdb/series_seek_sort.go
0.00% <0.00%> (ø)

banyand/tsdb/tsdb.go
54.41% <ø> (+1.17%)
:arrow_up:

pkg/encoding/reader.go
66.03% <ø> (ø)

pkg/index/lsm/lsm.go
78.26% <ø> (-0.91%)
:arrow_down:

banyand/measure/encode.go
25.00% <42.85%> (-2.91%)
:arrow_down:

banyand/tsdb/block.go
60.18% <56.00%> (-1.36%)
:arrow_down:

... and 9 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Fixed Errors Tab Indexing Bug in the Debugger

FIxed bug with Errors tab in the Debugger using wrong index in the tab container.
Also removed unused variable that was probably left behind.

Before

After

Thanks!


⚠ AlphaRatio has degraded performance

In 575f54c, AlphaRatio ($AR) experienced degraded performance:

HTTP code: 200
Response time: 1548 ms

Resolved: AlphaRatio performance has improved in 226ed7b after 9 minutes.


Scoping issue with const/let and switch statement

Minimal test case:
function fail() {
  if (true) {
    const y = 1;
    switch (1) {
      case 1: {
        function x() { return y };
        break;
      }
    }
  }
}

The error I get is:
        if (_ret === "break") break _loop;
                                    ^^^^^
SyntaxError: Undefined label '_loop'

This happens when:

Inside a case statement
That ends with a break
And contains a function that accesses a variable in the enclosing scope
Which is not the same scope as the function (i.e. scoped to condition, for loop, try/catch)
And is defined with local scope (const or let)

Looks like the block scoping transformer assumes everything containing a break statement is a loop. A test case that I can add to the suite would be great, basically something like this or this.

Fixed in the 3.0.0 branch

Fixed as of 3.0.0


Update cache-http.sh

If the target folder changes, the name of the tar file must also change.

apparently i accidentally changed the rights to the script

100755 → 100644

will fix

done

thx


Function fails to build when registry and image keys are specified

I went through the func.yaml docs to find info about the registry variable but I found nothing about it. If I specify a value for it, the cli fails to build the function. Here's what I tried:
For the the first run, the cli asks for my registry info which I specify and it updates func.yaml and builds the image. It only sets the image variable.
If I edit it and specify registry: docker.io/pmbanugo, and image is empty (i.e image: ""). I expected it to also build the project without asking me for registry info, but it prompts me for it. When I enter a value for the prompt, it generates a value for image but immediately exits with the error
Building function image
Error: registry name is required

So as long as I have a value set for registry and image it throws that error.
I'm running version 0.25.1

/assign

@lance Does that mean that it'll be available after the Tuesday release?

Does that mean that it'll be available after the Tuesday release?
Yes it should be in the next release.


update R version and add instructions for local container usage, closes #4

With :heart: from the Remote ReproHack ! :-)

:pray: Thanks much!
pity travis is timing out on the build now, maybe a good excuse to migrate to my rocker-based GH-actions script...  Always feel a bit conflicted about upgrading old repos but probably that's the best thing to do...

Addng some links for more general context about reprohack, e.g. see Anna's slides: https://annakrystalli.me/talks/ro-reprohack.html#1


Keep enclosing classes to prevent warnings.

This is one option. Adding -dontoptimize also works but increases the jar size by 28K.
I don't know the cause of the issue but I found someone else has been looking into it: https://sourceforge.net/p/proguard/discussion/182456/thread/6920e89e/. Maybe they will get an answer.
Any way to test this? I built leak canary and ran its tests.

I just wanted to open a PR, but you were faster. You should add a commit which updates to the latest ProGard, inside <plugin>:
       <dependencies>
          <dependency>
            <groupId>net.sf.proguard</groupId>
            <artifactId>proguard-base</artifactId>
            <version>5.2.1</version>
          </dependency>
        </dependencies>

This way you can remove the rule from Joiner, because this version keeps the attribute on that, and only Iterables are needed.

Thanks @WonderCsabo! Updated.

Hm, updating the Proguard version cuts the jar size in half and breaks Leak Canary with:
/Users/nickd/Development/leakcanary/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/HeapAnalyzer.java:30: error: cannot find symbol
import com.squareup.haha.trove.THashMap;
                              ^
  symbol:   class THashMap
  location: package com.squareup.haha.trove
/Users/nickd/Development/leakcanary/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/HeapAnalyzer.java:102: error: cannot find symbol
    final THashMap<String, RootObj> uniqueRootMap = new THashMap<>();
          ^
  symbol:   class THashMap
  location: class HeapAnalyzer
/Users/nickd/Development/leakcanary/leakcanary-analyzer/src/main/java/com/squareup/leakcanary/HeapAnalyzer.java:102: error: cannot find symbol
    final THashMap<String, RootObj> uniqueRootMap = new THashMap<>();

@pyricau I built Leak Canary with my change and was able to successfully detect a leak. I think the change is safe. PTAL.


Make style + className configurable as properties

It would be great to pass style and className as properties similar to the underlying Slide component. What do you think @thejameskyle?

would be great if I could pass the theme object I have for my spectacle deck


Screen shake is still active even after game over

Simply add our gamamnager to our camera, and check for the game status

Fixed via 490688ef4d21ad70bf6bb4a79cfaf3cb8aeeb8b3


⚠ Bofrost.de has degraded performance

In cf9dbf0, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1433 ms

Resolved: Bofrost.de performance has improved in 7f8aa88 after 13 minutes.


where can l get the paper

Hello,
I want to know where can l get the paper?

Thank you for your interest in our paper. I've just committed it to Arxiv and it will be available in 2-3 days.

Available at _https://arxiv.org/pdf/1909.08453.pdf_

Hello,
I also want to know when can I get the code?

We'll release codes soon, maybe in one or two weeks.

We'll release codes soon, maybe in one or two weeks.

Hi!  Any updates on the code release?


Redirect the sandbox landing page to a page of our docs.

I think we should get rid of the sandbox landing page (in its current form - i.e. get rid of the separate sandbox-website repo) for the public release, and instead redirect [the sandbox landing URL] to the same information, but as a page in our docusaurus docs.
Reasons:

Having this one page live in a separate repo is a pain. It's not covered by our docs CI, and so we keep breaking the commands and having to do manual updates. It's not sustainable and gives bad first impressions.
The appearance of the page isn't great, whereas the docs layout looks clean and polished.
The code snippet boxes aren't formatted nicely and have already taken up more time than they deserve, whereas docusaurus just works.

Alternatively, we get rid of the landing page, and redirect the url to the proper docs instead?
The separate docs site is causing unnecessary pain. The separate repo isn't checked by our CI, so keeps breaking, and it doesn't look very clean.

https://aztec-docs-dev.netlify.app/dev_docs/getting_started/quickstart

https://aztec-docs-dev.netlify.app/dev_docs/getting_started/quickstart

This is now live, redirecting to https://docs.aztec.network/dev_docs/getting_started/sandbox


Fix index-state syntax

The second index-state stanza completely ovverides the first, resetting hackage index state to HEAD. See haskell/cabal#8568
Description
Add your description here, if it fixes a particular issue please provide a link to the issue.
Checklist

[ ] Commit sequence broadly makes sense
[ ] Commits have useful messages
[ ] New tests are added if needed and existing tests are updated
[ ] Any changes are noted in the changelog
[ ] Code is formatted with fourmolu (which can be run with scripts/fourmolize.sh
[ ] Self-reviewed the diff

Migrations

[ ] The pr causes a breaking change of type a,b or c
[ ] If there is a breaking change, the pr includes a database migration and/or a fix process for old values, so that upgrade is possible
[ ] Resyncing and running the migrations provided will result in the same database semantically

If there is a breaking change, especially a big one, please add a justification here. Please elaborate
more what the migration achieves, what it cannot achieve or why a migration is not possible.

Thanks for the fix. This indeed changes a number of dependencies to the index state.

 diff cabal.project.freeze-master cabal.project.freeze-andreabedini-patch-1
5c5
<              any.ListLike ==4.7.8,
---
>              any.ListLike ==4.7.7,
24,25c24,25
<              any.ansi-terminal ==0.11.4,
<              ansi-terminal -example +win32-2-13-1,
---
>              any.ansi-terminal ==0.11.3,
>              ansi-terminal -example,
38c38,39
<              any.async-timer ==<IP_ADDRESS>,
---
>              any.async-timer ==<IP_ADDRESS>,
>              async-timer -devel,
45c46
<              any.barbies ==<IP_ADDRESS>,
---
>              any.barbies ==<IP_ADDRESS>,
60c61
<              any.bifunctors ==5.5.14,
---
>              any.bifunctors ==5.5.13,
145c146
<              any.concurrent-output ==1.10.17,
---
>              any.concurrent-output ==1.10.16,
150c151
<              any.constraints-extras ==<IP_ADDRESS>,
---
>              any.constraints-extras ==<IP_ADDRESS>,
156c157
<              any.cookie ==0.4.6,
---
>              any.cookie ==0.4.5,
175c176
<              any.dependent-sum ==<IP_ADDRESS>,
---
>              any.dependent-sum ==<IP_ADDRESS>,
178,179c179,180
<              any.deriving-aeson ==0.2.9,
<              any.deriving-compat ==0.6.2,
---
>              any.deriving-aeson ==0.2.8,
>              any.deriving-compat ==0.6.1,
182c183,184
<              any.digest ==<IP_ADDRESS>,
---
>              any.digest ==<IP_ADDRESS>,
>              digest -bytestring-in-base,
212c214
<              any.foldl ==1.4.14,
---
>              any.foldl ==1.4.12,
216c218
<              any.free ==5.1.10,
---
>              any.free ==5.1.9,
225a228,229
>              any.ghc ==8.10.7,
>              any.ghc-boot ==8.10.7,
228a233
>              any.ghci ==8.10.7,
239c244
<              any.haskell-lexer ==1.1.1,
---
>              any.haskell-lexer ==1.1,
245a251
>              any.hpc ==<IP_ADDRESS>,
248,250c254,256
<              any.hspec ==2.10.8,
<              any.hspec-core ==2.10.8,
<              any.hspec-discover ==2.10.8,
---
>              any.hspec ==2.10.6,
>              any.hspec-core ==2.10.6,
>              any.hspec-discover ==2.10.6,
296c302
<              any.lift-type ==<IP_ADDRESS>,
---
>              any.lift-type ==<IP_ADDRESS>,
299c305
<              any.list-t ==<IP_ADDRESS>,
---
>              any.list-t ==<IP_ADDRESS>,
319,322c325,328
<              any.microlens ==<IP_ADDRESS>,
<              any.microlens-mtl ==<IP_ADDRESS>,
<              any.microlens-th ==<IP_ADDRESS>,
<              any.microstache ==<IP_ADDRESS>,
---
>              any.microlens ==<IP_ADDRESS>,
>              any.microlens-mtl ==<IP_ADDRESS>,
>              any.microlens-th ==<IP_ADDRESS>,
>              any.microstache ==<IP_ADDRESS>,
345c351
<              any.network-uri ==<IP_ADDRESS>,
---
>              any.network-uri ==<IP_ADDRESS>,
360c366
<              any.optparse-generic ==1.4.9,
---
>              any.optparse-generic ==1.4.8,
390c396
<              any.persistent ==<IP_ADDRESS>,
---
>              any.persistent ==<IP_ADDRESS>,
399c405
<              any.postgresql-libpq ==<IP_ADDRESS>,
---
>              any.postgresql-libpq ==<IP_ADDRESS>,
427c433
<              any.recursion-schemes ==<IP_ADDRESS>,
---
>              any.recursion-schemes ==<IP_ADDRESS>,
436c442
<              any.resource-pool ==<IP_ADDRESS>,
---
>              any.resource-pool ==<IP_ADDRESS>,
477c483
<              any.statistics ==<IP_ADDRESS>,
---
>              any.statistics ==<IP_ADDRESS>,
502,503c508,509
<              any.tasty ==1.4.3,
<              tasty +unix,
---
>              any.tasty ==<IP_ADDRESS>,
>              tasty +clock +unix,
513a520
>              any.terminfo ==<IP_ADDRESS>,
563c570
<              any.unix-compat ==0.6,
---
>              any.unix-compat ==0.5.4,
567c574
<              any.unliftio-core ==<IP_ADDRESS>,
---
>              any.unliftio-core ==<IP_ADDRESS>,
592a600,601
>              any.wcwidth ==0.0.2,
>              wcwidth -cli +split-base,
596c605
<              any.wide-word ==<IP_ADDRESS>,
---
>              any.wide-word ==<IP_ADDRESS>,
611c620
< index-state: cardano-haskell-packages 2022-11-11T00:24:50Z, hackage.haskell.org 2023-01-17T16:06:56Z
---
> index-state: cardano-haskell-packages 2022-11-11T00:24:50Z, hackage.haskell.org 2022-11-10T22:18:27Z
~

I will cherry-pick it to https://github.com/input-output-hk/cardano-db-sync/pull/1339 to avoid going back and forth with dependencies many times.

@kderme no problem, as long as you are aware of this issue, you can close this PR :+1:

Fixed in https://github.com/input-output-hk/cardano-db-sync/commit/ae173ad14c495fc742d36ddc9de4ce354368cfb8


fix: Correctly compute pendingRequestCount in request queue

Logic in https://github.com/apify/crawlee/blob/master/packages/memory-storage/src/resource-clients/request-queue.ts#L291-L298 is wrong. You can even see that pendingRequestCount is being changed by handledCountAdjustment. There are a few more cases...
I fixed them and also simplified the code to be actually readable

Maybe @vladfrangu can suggest where to test it easily.

If I was doing this PR I'd create a test for the pending count (pending-count-correct-update.tet.ts?) in packages/memory-storage/test. Thankfully it doesn't need anything fancy

I'll merge it so we can ship it, but a PR with test would be nice :]


Implement program dmesg with support for --kmsg-file and --json option.

This PR is related to issue #14.

Add test cases:

[x] invalid option.
[ ] no option.
[ ] with --kmsg-file option.
[x] with --kmsg-file and --json option.

Support options:

[x] ---kmsg-file / -K
[x] --json / -J

Supporting without --json option requires additional formatting work which I think can be done in a separate PR, what do you think?

Supporting without --json option requires additional formatting work which I think can be done in a separate PR, what do you think?

Yes, that's fine.
I will continue with the review tomorrow.

Thanks for your PR!


Add Werribee Secondary College Domain

Add WerriBee Secondary College domain

@khanhduonghien I have to close this request without merging, because you requested to add a non-existent domain to this repository: Host student.werribeesc.edu.au not found: 3(NXDOMAIN) Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!


[Bug]: storeExplosions can make the game lag badly

General Info

[ ] I am running a modpack
[X] I can reproduce this issue consistently in single-player
[X] I can reproduce this issue consistently in multi-player
[X] I have searched for this issue previously and it was either (1) not previously reported, or (2) previously fixed and I am having the same problem.
[ ] I am crashing and can provide my crash report(s)
[X] I am using the latest version of the mod

Forge version
43.2.11
Minecraft version
1.19.2
Mod version
1.2.1
Java version
JDK 17
Issue Description
Any explosion will cause the game to lag for a few seconds
It seems to be a sql problem?

https://spark.lucko.me/optBrNdhqw
Additional Information
No response

I'll see about adding a bulk add method that adds them all in 1 transaction. I already got a test build but Github doesn't allow me to embed it in here

I joined your Discord, maybe you can send files there?


feat: support stream insertion in either direction

What and Why
To create a chat-like experience with lists, where new items are visually inserted at the bottom of the screen and push existing items up, I've found it's frequently recommended to reverse the order of the input list and set the ListView's property reverse: true. (i.e. here and here)
This change allows enables the stream input to insert data at the opposite end of the list, to support this chat-like mechanism.
Notes
This is my first time writing Flutter tests, coming from a Jest background - so do be please be nitty and highlight any way they could be written nicer/methods I could have leveraged.
It's also only my 6th month writing flutter in the occasional evening, so if this whole idea breaks with convention or isn't sensible, would love a chat as to why and how I could do things differently 😊
Cheers bud!

Closing as stale


No IntelliSense for Node modules like path when using let Path = require('path')

VSCode Version: 1.11.2
OS Version: macOS 10.12.4
Node version: v.7.9.0
npm version: 4.2.0

Steps to Reproduce:
mkdir test

Create package.json and run npm i:
{
  "name": "test",
  "version": "0.0.1",
  "devDependencies": {
    "typescript": "2.2.2"
    , "electron": "1.6.2"
    , "@types/electron": "1.4.37"
  }
}

Create tsconig.json:
{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": false
    }
}

Create Main.ts:
/// <reference types="node" />

let reqPath = require('path');
reqPath.

import impPath = require('path');
impPath.

Problem:
Hitting Ctrl+Space on reqPath.|shows no suitable suggestions but doing the same on impPath.| does:

https://www.typescriptlang.org/docs/handbook/modules.html
maybe there is no
let someVar = require('someModule')

in typescript.

No, TypeScript should support that syntax.
What is the type of reqPath when you hover over it? If it is any, try installing @types/node for proper intellisense

Oh sorry, my example was a bit misleading since I forgot to mention that I installed @types/electron which also installs @types/node.
I repeated the test, this time only with @types/node:
{
  "name": "test",
  "version": "0.0.1",
  "devDependencies": {
    "typescript": "2.2.2"
    , "@types/node": "7.0.13"
  }
}

But the result is the same and on hovering reqPath is indeed shown as any.

Although meant to solve other problems I also tried adding
  "types" : [
    "node"
  ]

to the compiler options but that didn't help either.

I misspoke. TS does support const x = require(...) but only as a dynamic import. The returned result will not have any type information and the required module will not be checked to ensure it exists.
To import a module, you have to write import x = require(...). See the TS module docs for more info
Closing as designed


Turkish I-ı character

When taking brand names the code lowercases it with the phone's locale. But it generates a problem in Turkish language devices. For example HUAWEI lowercased as "huaweı" and it is not equal to "huawei" obviously. I think there is no need for the phone's locale when lowercasing because device brand names are all returned in ASCII characters.

Thanks for pointing this out @alperenbabagil , I'm a little busy this weekend so if you can create a PR for this I'll be happy to review it.

Hi Jude,
I cannot push a new branch

Hi Jude,
I cannot push a new branch

Fork & Create a PR

Man.. I mean you must allow pushing new branch

I've fixed the code in the pull request below
https://github.com/judemanutd/AutoStarter/pull/46

Closing this one since there is no activity


Users should be able to replace default processor

So, currently, you can either get a default (nil) processor, and be able to use convenience functions on the Saxon module, or you can use a custom processor, and have to use that in all cases.
This is especially a problem if you have a gem using the default processor, and need to set config that matters to its consumers but not to the gem generally.
In my case, I need to turn line-numbering on, so I can post-process the XML to associate line numbers with schematron failed-asserts.  I either have to build this into the schematron checker library, which won't necessarily be used by people who care about line numbers, or else parse the XML file with two separate processors.
PR incoming.  Again, if I'm missing why this is a bad idea, let me know - I'm very new to Saxon.

How do you turn line numbering on? Is it a creation-time only thing for the processor or could you call methods on the processor from Saxon::Processor.default?

Creation-time, as far as I can tell. You pass in a configuration when you
create a processor.  I'll do more looking, but since setting it would
invalidate the processor for anything run through it be for it was set, I'd
be surprised if there was a runtime option.
On Aug 12, 2015 3:59 PM, "Matt Patterson"<EMAIL_ADDRESS>wrote:

How do you turn line numbering on? Is it a creation-time only thing for
the processor or could you call methods on the processor from
Saxon::Processor.default?
—
Reply to this email directly or view it on GitHub
https://github.com/fidothe/saxon-xslt/issues/8#issuecomment-130427160.

Theoretically according to docs it should be possible, but in practice, I haven't gotten it to work.
I think, either way, I think it would be nice to be able to create a processor with exactly the config you want (as opposed to "default plus these five individual modifications") and use the convenience methods with it.

Ok, I've officially gotten it to work; the key turns out to be constructing property strings correctly.
Saxon::Processor.default.to_java.setConfigurationProperty("http://saxon.sf.net/feature/linenumbering", true)
me = Saxon::XML(File.open('spec/fixtures/eg.xml'))
me.xpath("input").line_number

I think most convenient way for users is to provide helper methods for getting and setting individual properties, as well as a method for whole-cloth replacing the processor (or replacing the configuration).  Propose that helper method should take a string or a symbol and convert to the URI-ish thing actually expected.

You can already just create a processor implementation and call the XML() and XSLT() methods on it exactly as you would with e.g. Saxon::XSLT(). I'm still unsure as to how wise it is to encourage modificiation or replacement of the default processor when it's so easy to create your own and use that everywhere you need to... Convenience methods for the configuration stuff sound great though. I need to refresh my memory about how the configuration stuff works, and then let's talk about what would work for you...

Hmmm.
Thinking about this more closely, I think just the helper methods would be
essentially fine.  Empty config for Saxon means "default values" anyway, as
far as I know, so it's not going to be substantially different to input XML
to that effect vs running processor.set_config(:setting => val) or
something, particularly if we handle multiple values.
I'll get this worked up sometime today. I'm thinking
Processor#get_config(config:sym), Processor#set_config(config:sym => value, ...)
BTW, thanks for being so responsive on this!
On Fri, Aug 14, 2015 at 4:18 AM, Matt Patterson<EMAIL_ADDRESS>wrote:

You can already just create a processor implementation and call the XML()
and XSLT() methods on it exactly as you would with e.g. Saxon::XSLT().
I'm still unsure as to how wise it is to encourage modificiation or
replacement of the default processor when it's so easy to create your own
and use that everywhere you need to... Convenience methods for the
configuration stuff sound great though. I need to refresh my memory about
how the configuration stuff works, and then let's talk about what would
work for you...
—
Reply to this email directly or view it on GitHub
https://github.com/fidothe/saxon-xslt/issues/8#issuecomment-131016067.

@fidothe pinging in case this has fallen off your radar

@pobocks How does #10 grab you?

Closing after #10 seems to do the trick


Trouble Getting CLI --origin Flag To Work

I'm attempting to use Mountebank in between a front-end website and an ASP.NET Core API to facilitate automated UI testing. Reading the release notes for v2.3.3 I see that the --origin CLI flag is required to accept requests from a different origin. I ran mb with the origin flag and created my imposter with the allowCORS option set true, but still get a CORS error. Thank you in advance for any help you can offer!
Expected behaviour
When starting mountebank with  npx mb --origin "http://app.local.com", I would expect that requests made to Mountebank from a different origin with a header of "Origin":"http://app.local.com" should succeed.
Actual behaviour
When I try to request data from Mountebank from a different origin I get the error Access to XMLHttpRequest at 'http://app.local.com:8080/api/case/search/' from origin 'http://app.local.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Steps to reproduce

Launch Mountebank with npx mb --origin "http://app.local.com"
Create a new imposter:

{
    "protocol": "http",
    "port": 8080,
    "allowCORS": true,
    "name": "TestName",
    "stubs": [
        {
            "predicates": [
                {
                    "equals": {
                        "method": "POST",
                        "path": "/api/case/search/"
                    }
                }
            ],
            "responses": [1,2,3]
        }
    ]
}

From the browser with an XMLHttpRequest, make a request to the mountebank imposter
Error comes back to browser
I tried adding the stub at https://github.com/bbyars/mountebank-in-action/blob/master/ch07/examples/cors.json to my imposter with no change in results.

Software versions used
OS         : Windows 10 Version 20H2
mountebank : 2.4.0
node.js    : 7.16.0
  (only if installed via npm)
Installation method : npm

Log contents in mb.log when running mb --loglevel debug

PS C:\src> npx mb start --origin 'http://app.local.com' --origin "http://<IP_ADDRESS>" --loglevel debug
info: [mb:2525] mountebank v2.4.0 now taking orders - point your browser to http://localhost:2525/ for help
debug: [mb:2525] config: {"options":{"origin":["http://app.local.com","http://<IP_ADDRESS>"],"port":2525,"noParse":false,"no-parse":false,"formatter":"mountebank-formatters","pidfile":"mb.pid","allowInjection":false,"allow-injection":false,"localOnly":false,"local-only":false,"ipWhitelist":["*"],"ip-whitelist":"*","mock":false,"debug":false,"heroku":false,"protofile":"protocols.json","log":{"level":"debug","transports":{"console":{"colorize":true,"format":"%level: %message"},"file":{"path":"mb.log","format":"json"}}}},"process":{"nodeVersion":"v14.16.0","architecture":"x64","platform":"win32"}}
info: [mb:2525] POST /imposters
debug: [mb:2525] ::1:53304 => {"protocol":"http","port":8080,"allowCORS":true,"name":"TestName","stubs":[{"predicates":[{"equals":{"method":"POST","path":"/api/case/search/"}}],"responses":[{"is":{"statusCode":200,"headers":{"Content-Type":"application/json"},"body":SNIP}}]}]}
info: [http:8080 TestName] Open for business...
debug: [http:8080 TestName] ::ffff:<IP_ADDRESS>:51258 ESTABLISHED
info: [http:8080 TestName] ::ffff:<IP_ADDRESS>:51258 => OPTIONS /api/case/search/
debug: [http:8080 TestName] ::ffff:<IP_ADDRESS>:51258 => {"requestFrom":"::ffff:<IP_ADDRESS>:51258","method":"OPTIONS","path":"/api/case/search/","query":{},"headers":{"Host":"app.local.com:8080","Connection":"keep-alive","Accept":"*/*","Access-Control-Request-Method":"POST","Access-Control-Request-Headers":"content-type","Origin":"http://app.local.com","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36","Sec-Fetch-Mode":"cors","Referer":"http://app.local.com/","Accept-Encoding":"gzip, deflate","Accept-Language":"en-US,en;q=0.9"},"body":"","ip":"::ffff:<IP_ADDRESS>"}
info: [http:8080 TestName] no predicate match, using default response
debug: [http:8080 TestName] generating response from {"is":{}}
debug: [http:8080 TestName] ::ffff:<IP_ADDRESS>:51258 <= {"statusCode":200,"headers":{"Access-Control-Allow-Headers":"content-type","Access-Control-Allow-Methods":"POST","Access-Control-Allow-Origin":"http://app.local.com","Connection":"close"},"body":"","_mode":"text"}
debug: [http:8080 TestName] ::ffff:<IP_ADDRESS>:51258 CLOSED
debug: [http:8080 TestName] ::ffff:<IP_ADDRESS>:49981 ESTABLISHED
info: [http:8080 TestName] ::ffff:<IP_ADDRESS>:49981 => POST /api/case/search/
debug: [http:8080 TestName] ::ffff:<IP_ADDRESS>:49981 => {"requestFrom":"::ffff:<IP_ADDRESS>:49981","method":"POST","path":"/api/case/search/","query":{},"headers":{"Host":"app.local.com:8080","Connection":"keep-alive","Content-Length":"67","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36","Content-Type":"application/json","Accept":"*/*","Origin":"http://app.local.com","Referer":"http://app.local.com/","Accept-Encoding":"gzip, deflate","Accept-Language":"en-US,en;q=0.9"},"body":"{\"param1\":\"633\",\"searchParameters\":{\"searchTerm\":\"abc16\"}}","ip":"::ffff:<IP_ADDRESS>"}
debug: [http:8080 TestName] using predicate match: [{"equals":{"method":"POST","path":"/api/case/search/"}}]
debug: [http:8080 TestName] generating response from {"is":{"statusCode":200,"headers":{"Content-Type":"application/json"},"body":SNIP}}
debug: [http:8080 TestName] ::ffff:<IP_ADDRESS>:49981 <= {"statusCode":200,"headers":{"Content-Type":"application/json","Connection":"close"},"body":"SNIP","_mode":"text"}
debug: [http:8080 TestName] ::ffff:<IP_ADDRESS>:49981 CLOSED

I made a change to my imposter, adding "Access-Control-Allow-Origin": "http://app.local.com" to the headers of my response and that got things going. I'm new-ish to CORS, so I'm wondering is it just understood that I have to explicitly add that header to each of my responses where I expect to be making a request cross-origin? I had thought that adding the origin in the startup of Mountebank would handle that part for me.

I worked on a little project that could be helpful:
https://github.com/sidilabs/mock-server
This project creates a gulp task to communicate with Mountebank and generate a series of imposters following a defined structure, even if you don't plan to use the project as it is, you could use some of the code to solve a specific problem.


Fix for lookup action parent module logic (task #6063)

Codecov Report

Merging #543 into master will increase coverage by 0.03%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master     #543      +/-   ##
============================================
+ Coverage     27.43%   27.46%   +0.03%
+ Complexity      972      970       -2
============================================
  Files            88       88
  Lines          3335     3331       -4
============================================
  Hits            915      915
+ Misses         2420     2416       -4

Impacted Files
Coverage Δ
Complexity Δ

src/Event/Controller/Api/LookupActionListener.php
0% <0%> (ø)
40 <0> (-2)
:arrow_down:

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 6d4bcbd...efb965d. Read the comment docs.


Members updates for third party use

These changes make it much easier for someone to work with layer2 directly.
Allows code like
const members = layer2({
  membersUrl: 'https://ghost.egg/members',
  container: document.querySelector('.isolated-piece-of-DOM')
})

members.signin().then(success => {
  if (success) {
    // reload the page maybe
    // get a token and load some cool content?
  } else {
    // user exited not logged in - some analytics or smth
  }
});

@allouis Looks good  👍


Convert TRPrecipitation to Precipitation.

Converted class and removed unused TRWeatherLocation.

@tomkowz Rather than overwriting the changes in a PR. It's helpful to us if you make separate commits for the changes because it's easier to see what changes you made.
When we merge it we'll squash it back down to a single or few commits anyways so you don't have to worry about it.

Okay, thanks for suggestion, so you're responsible for clearing things up after PR is accepted? I thought I should clean it up but wasn't sure.

The same crash reason as earlier.

so you're responsible for clearing things up after PR is accepted?

Well... to a point of course, lol. :)
Ideally when it's first opened it has a clean history with good commit messages and then as you make changes in response to reviews it's nice to see them as separate commits.
I have an open that I think is a good example here. There's an initial commit with a descriptive commit message and then each subsequent commit is small changes based on the reviews. When merging I do a fixup on the last 3 commits and it's done.
We merge on the command-line anyways so it's not a big deal to squash/fixup extra commits as needed.

@jakecraige, okay, understood, sound good to me. Will remember next time ;)

Yeah I'm not sure what's going on with Circle... It was working fine briefly and now stopped.
Master isn't even passing. It's passing on Ship.io now. Unfortunately I don't think Ship.io runs PRs.

@jakecraige I will take a look what's wrong with these UIColor_TRTemperatureColorSpec tests later the day and maybe found something.

To me clear, I don't think it's your code. Do you see something that makes you think that test is behaving funny?
I sent a support ticket into Circle to see if they can provide any insight since Ship.io seems to be working fine with the same setup.

@jakecraige sure, I now this is not my code ;)
I looked in this test and it is very simple but crash goes from PhotoLibrary private framework and this is very weird because app doesn't use it.

Yeah I noticed the same thing. It's super weird.
Either way this looks good. Merged in https://github.com/thoughtbot/Tropos/commit/9672414d4ff0d237a7750862e0606a9e1903a578

Thanks!


Record Audio

Allow You To Record Audio From Within The App.

Completed In Release: v1.0
Commit: https://github.com/markydoodled/Journal.it/commit/4c473c85f71fac472a4feeb805b429ca81153466


Branch display threshold

Codecov Report

Merging #191 into master will decrease coverage by 1.39%.
The diff coverage is 0.00%.

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


Fix value_counts and apply.

Fix a few issues.

Series.value_counts was wrongly typed as returning a series of the same type as the original (Series[S1]), when it actually returns Series[int].
The result of the callable given to Series.apply does not need to be hashable; it can return any value valid for a Series, which can include non-hashable items like lists or dicts.
DataFrame.apply, like DataFrameGroupBy.apply, returns a DataFrame or Series depending on the return value of the callable, not on the set of parameters given. The exception is when result_type is "broadcast", in which case the result is always a DataFrame.

[x] Tests added: Please use assert_type() to assert the type of any return value

@Dr-Irv test added as requested.


Support for inserting entries at the front of the journal file

Is your feature request related to a problem? Please describe.
For any journal other than daily, it's impossible to add another day entry at the front of the journal file. The entries are always inserted at the end of the file.
Describe the solution you'd like
The solution is to add an optional parameter to 'org-journal-new-entry' that when 't' would add a new entry at the front of the file rather than the end.
Describe alternatives you've considered
none

This feature is already on the 2.2.0 milestone, see #209.
Closing.


svgr/webpack & ts-loader

Im trying to use @svgr/webpack with typescript, here is part of my webpack config and it doesnt work as im expecting:
{
    test: /test.svg$/,
    issuer: {
        test: /\.tsx?$/,
    },
    use: [
        {
            loader: 'ts-loader',
        },
        {
            loader: '@svgr/webpack',
            options: {
                babel: false,
                template: SVGRTemplate,
            },
        },
    ],
},
{
    test: /\.(svg|jpg|png|gif|ico)$/,
    use: {
        loader: 'file-loader',
        options: assetsImgOptions,
    },
},

The point is @svgr/webpack proceeds correct code as i wish, and i can make sure of it, if delete ts-loader i can see following bug report:
Module parse failed: Unexpected token (3:22)
File was processed with these loaders:
 *<EMAIL_ADDRESS> * ./node_modules/file-loader/dist/cjs.js
You may need an additional loader to handle the result of these loaders.
import * as React from 'react';
...

but after ts-loader something strange happens: webpack doesnt report any issues and build the app, but when I importing my test.svg and logging it to console I see the code of another component, not my test.svg.

I can't help you on TypeScript, sorry. I hope someone will be able to help.

@Turetski Maybe try removing svg from file-loader test?

@Turetski Maybe try removing svg from file-loader test?
i already have tried this, no effects

I am sorry but it is relative to your webpack config and not to SVGR itself. I have to close it.


Move ui messages to the texts package

The code will be easier to read when referencing string constant instead of breaking flow into code and communication.

Bad defined task, too general.
Closing with wontfix.


use semver 3.0

Latest semver changed this method from isvalid to is_valid.

sorry for my delay.
Yeah, that is indeed nice to update semver version as well

sorry for my delay.

No rush.

gonna need to add your modifications to my other PR, is that ok?

@jezdez I cannot merge this one, there is an unrelated problem with a new version of rapidfuzz that is affecting this PR that I would prefer to fix in separated PR. However, I do not have rights to bypass this!?

@marcelotrevisani the branch protection requires passing the status checks, Tests / run (ubuntu-latest, 3.8) etc, I've just deactivated it, this is merely a precaution and should be helpful and not blocking you of course. Apologies that it was in the way.

@marcelotrevisani I assumed you'd have access to the branch protection settings given your maintain permissions, but I must have been mistaken about that.

Hi @jezdez , I don't have permission to change those options....
And it is also blocking me, can you please remove all those require status checks?


Deployment in yaml folder is broken

There is an error in the yaml https://github.com/zakkg3/ClusterSecret/blob/master/yaml/02_deployment.yaml
The env part should go under spec.template.spec.container.name and not under spec.template.spec
The helm chart looks correct but I havent tried that yet.

dankeshön for reporting.
can you open a PR ? that would be great!
thanks!!


Enforce context timeout in matching AddTask

What changed?

Enforce context timeout for AddTask operation in matching
Add logs when some matching operations failed

Why?
One path in AddTask in matching requires persist the task to DB, and may be retried for up to 30 second regardless what context timeout in specified for the AddTask call.
On history side, the specified context timeout is only 3s, after will retry the AddTask operation if failed. This mismatch of retry policy will cause matching to persist much more tasks than needed, and made the situation worse when service busy error happens.
By enforcing the context timeout when persisting tasks, we removed mismatching in two different retry policies and can reduce the number of tasks persisted by matching.

How did you test it?
Unit test

Potential risks
More matching Add task error may happen as now context timeout is enforced.

Coverage increased (+0.05%) to 66.829% when pulling c5b9106631f947583ecbf4c3c17e6acbc1cf50e8 on yycptt:fix-matching-retry into e73786229e059f8458a8c6956ee91cd05d5babcb on uber:master.


Review loading strategy API

It would be good to stabilize the loading strategy API for the v3 milestone.

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

closing this as a duplicate of #3481 in other words #3481 supersedes this


Optimize Reconcile Requeue

What type of PR is this?
/kind bug
What this PR does / why we need it:
Optimize reconcile logic and error printing.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

/lgtm

/lgtm


Request-ID Tracing

This adds a middleware that generates a UUID on each incoming API request. For a poor-man's tracing this id is passed as value in a request specific logger.

rebased and squashed


Update PDF metadata feature request

Your GO script is able to pull pdf metadata from an existing pdf file, would it be possible to add the capability to update that metadata into the file as well?  Something similar to PyPDF2.
Feel free to close this if i posted in the wrong spot for a feature request.

Sorry @OUsteventhomas, that's not possible and I'm not planning to work on that feature. Thank you!


syz-manager, syz-fuzzer: pass ExecOpts in exec requests

syz-manager: refactor periodic goroutines
syz-manager: untie corpus minimization from fuzzer connects
syz-manager: refactor filtered coverage updates
pkg/vminfo: add package
pkg/host: move glob parsing to host
pkg/ipc: make it possible to change EnvFlags between executions
pkg/ipc: dedup features to flags conversion
syz-manager: make nextRequestID non-atomic
syz-fuzzer: minor refactoring
pkg/mgrconfig: add HasCovFilter helper
syz-manager, syz-fuzzer: pass ExecOpts in exec requests
pkg/fuzzer: move Signal type from rpctype

The first commits are from #4702 (code is based on that code to avoid conflicts), so it's better to review/merge #4702 first.
Moves us closer to #1541

@dvyukov please rebase

@dvyukov please rebase

Done. PTAL.

Closing in favor of #4723


Developement of integration tests for dbhandler

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@c14cac8). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #13   +/-   ##
=======================================
  Coverage        ?   62.86%
=======================================
  Files           ?       12
  Lines           ?      579
  Branches        ?        0
=======================================
  Hits            ?      364
  Misses          ?      215
  Partials        ?        0

Flag
Coverage Δ

unittests
62.86% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


When I use @unocss/webpack, I import uno.css in the entry, reporting * uno.css in. /src/main.ts    To install it, you can run: npm install --save uno.css

UnoCSS version
0.55.2
Describe the bug
When I use @unocss/webpack, I import uno.css in the entry, reporting * uno.css in. /src/main.ts    To install it, you can run: npm install --save uno.css
Reproduction
When I use @unocss/webpack, I import uno.css in the entry, reporting * uno.css in. /src/main.ts    To install it, you can run: npm install --save uno.css
System Info
No response
Validations

[X] Read the Contributing Guidelines.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

i meet the same question, it shoule be your webpack plugin has not setup successfully, try to debug the webpack

我遇到了同样的问题，您的 webpack 插件没有成功设置，请尝试调试 webpack

How do you debug webpack

add the breakpoint to webpack dist, then run command with debug

We temporarily close this due to the lack of enough information.
Please provide a minimal reproduction to reopen the issue.
Thanks.

Why reproduction is required

我也遇到了这个问题，请问大家怎么解决的


Removed non-beta textures, fixed cacti, flowers, rails, bed, nether stuff, redstone.

Glowstone
Beds
Pumpkins
Redstone
Cactus (fixed, offcenter flower)
Netherrack
Soulsand
Extra: Removed items not in version.

LGTM!


VSCode extension errors when linting .prisma file

Whenever I write something into a .prisma file, I get the following error on VSCode:

However if I write something inside a Model I don't get any errors, it only happens when writing outside of a Model or some other "declaration".
Steps to reproduce the behavior:

Install the Prisma VSCode extension.
Write something into the .prisma file.

OS: Windows
Database: PostgreSQL
Prisma version: 2.0.0-beta.5
Node.js version: 13.10.1

OK, that is not what should happen.
What version of the extension do you have installed?
Does this happen with every schema or just yours? Can you share yours?

Version is 0.0.36 and it happens with every schema, my current schema is the following
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

model User {
  id                 Int      @default(autoincrement()) @id
  picture            String
  provider           Provider @default(NONE)
  username           String   @unique
  email              String   @unique
  name               String
  password           String
  role               Role     @default(USER)
  lastPasswordChange DateTime
}

enum Role {
  USER
  ADMIN
}

enum Provider {
  GOOGLE
  NONE
}

Interesting, works fine for me:

If I mess with the formatting, I can fix it again by Right click -> Format document.

I did a fresh installation of VSCode but the issue still persists, quite interesting.

@gabrielmendezc It will be great if you can paste the binary version of the output of the extension. That will help in narrowing down the problem.

This is the output of the extension:

That indeed is reproducible. This is the minimal repro:
enum Foo {
  bar
}

If I type anything after the } I get the error message you posted as well:
prisma-fmt error'd during linting.

[libs/datamodel/core/src/ast/parser/mod.rs:539] &err = Error {
    variant: ParsingError {
        positives: [
            WHITESPACE,
            BLOCK_OPEN,
        ],
        negatives: [],
    },
    location: Pos(
        24,
    ),
    line_col: Pos(
        (
            3,
            6,
        ),
    ),
    path: None,
    line: "} dsf",
    continued_line: None,
}

Getting the same error. No reason for it that I can see.

I'm having the same issue: "prisma-fmt error'd during linting." ... "cannot execute binary file". Deleted VS Code and all its system files, still nothing. Running VS Code 1.47.0 and Prisma extension v2.2.1. My OS is macOS Catalina 10.15.5 (19F101).

@Alexn117 @netanelmaroof  This issue should be resolved with Prisma extension v2.2.2, it was a binary issue on mac.


Add a getter for the PostgresClient for eventLoop: EventLoop

Please summarize your feature request
Need the eventLoop
Describe the functionality you're seeking in more detail
When constructing a postgresClient: PostgresClient like below we can pass in an eventLoopGroup option.
let pgClient: PostgresClient = PostgresClient(
  configuration: .init(
      host: pgHost,
      port: pgPort,
      username: pgUser,
      password: pgPassword,
      database: pgDatabase,
      tls: .disable
  ),
  eventLoopGroup: eventLoopGroup,
  backgroundLogger: logger
)

However, when passing the pgClient variable around in later parts of an application, we can't seem to get the eventLoop or eventLoopGroup variable.
Can we add a public get property called
pgClient.eventLoopGroup?
Have you considered any alternatives?
No response

PostgresClient is built around a Concurrency-based API, its need for an EventLoopGroup is essentially just an implementation artifact - it's usually recommended that you let it use the default group. Why do you need to get the ELG back out of it?

I was trying to create a custom PostgresNIO Casbin adapter similar to whats done here however this example is using Fluent:
https://github.com/SwiftCasbin/fluent-adapter/blob/master/Sources/CasbinFluentAdapter/CasbinFluentAdapter.swift
It looks like the library requires the database.eventLoop so I figured that I would need the same.

Fluent databases do need an event loop, yes, and that library is old enough to be based on futures rather than Concurrency, which is why it needs it. But PostgresClient doesn't use futures, so you don't need an event loop in order to work with it.


Add PropType validation for next/head children

Give Head a more detailed error messages in dev mode by validating the children prop's PropTypes.

I don't think children are required

@sheerun Is there a use-case for using Head but not defining any children?

For example custom document like:
// _document is only rendered on the server side and not on the client side
// Event handlers like onClick can't be added to this file

// ./pages/_document.js
import Document, { Head, Main, NextScript } from 'next/document'

export default class MyDocument extends Document {
  static async getInitialProps(ctx) {
    const initialProps = await Document.getInitialProps(ctx)
    return { ...initialProps }
  }

  render() {
    return (
      <html>
        <Head />
        <body className="custom_class">
          <Main />
          <NextScript />
        </body>
      </html>
    )
  }
}

Also the readme states that "All of <Head />, <Main /> and <NextScript /> are required for page to be properly rendered."
Besides the use case doesn't matter as restricting anything is breaking change.

@sheerun Are you sure that wasn't for the specific example? Just running a quick example doesn't show any issues with leaving the <Head/> out. Maybe I'm missing something?
If there is an issue, then I totally agree this is a breaking change. If not, is there a problem with some protecting from misuse of the api?

skipping Head skips rendering of headers and scripts

@sheerun next/head is something different than next/document's head

@sheerun I'm going to just remove the isRequired if we feel this is breaking.

@pd-smith it won't be breaking, next/head always needs children, using it with no children does nothing
@pd-smith also could you add prop-types-exact similarly to lib/link.js, this way we enforce if someone is using properties that don't exist

@timneutkens Is there a reason that we wrap the propTypes in a conditional? Isn't this already handled by the prop-types library itself? npmjs.com/package/prop-types#difference-from-reactproptypes--dont-call-validator-functions at the bottom of this section

They are not called but the specific code would still be in the production output, basically it would be dead code that has to be removed, which is what wrapping it does

They are not called but the specific code would still be in the production output, basically it would be dead code that has to be removed, which is what wrapping it does

@timneutkens
Sorry but just making sure: That non executed code doesn't get taken care of by webpack tree-shaking in the same way the explicit conditional does above? Just want to make double sure for my better understanding.

Sorry but just making sure: That non executed code doesn't get taken care of by webpack tree-shaking in the same way the explicit conditional does above? Just want to make double sure for my better understanding.

Correct, static properties and class methods don't get tree shaken if they don't have special comments. This way is more reliable.

Great PR 👍

@timneutkens Thanks for the review! Super informative 💯


Binary operator spaces

This change is

Thanks you @MathiasReker. I must close this PR because it doesn't bring any value.


After I add the "--tls-san rancher.k3s.cn" instruction, this should be the server nodes, but it turned out to be the agent node

Environmental Info:
K3s Version: v1.21.7+k3s1

Node(s) CPU architecture, OS, and Version: 2server

Cluster Configuration: nothing

Describe the bug:

Steps To Reproduce:

Installed K3s:

Expected behavior:

Actual behavior:

Additional context / logs:

[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
[INFO]  systemd: Starting k3s-agent
[root@k3s-node2 ~]# curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_EXEC="--tls-san rancher.k3s.cn" INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint="http://rancher.k3s.cn:2379"

Backporting

[ ] Needs backporting to older releases

--tls-san adds a SubjectAlternativeName entry to the supervisor/apiserver certificate on the server nodes. Your issue is missing any detail on what you're actually running into, but it sounds like you have also pointed rancher.k3s.cn at your agents, and this is leading to unexpected behavior? I see that you're also using an external etcd server, located at the same address. I'm not exactly sure what you're trying to do - providing more information about your intended configuration may help us figure out what your next steps should be.

--tls-san将 SubjectAlternativeName 条目添加到服务器节点上的主管/apiserver 证书。您的问题缺少有关您实际遇到的任何细节，但听起来您也指向rancher.k3s.cn了您的代理，这会导致意外行为吗？我看到您还在使用位于同一地址的外部 etcd 服务器。我不确定您要做什么 - 提供有关您的预期配置的更多信息可能会帮助我们确定您的下一步应该是什么。

i found the problem, if i do the cmd like this,the error will happen
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_EXEC="--tls-san rancher.k3s.cn" INSTALL_K3S_MIRROR=cn sh -s - server

but if i put "INSTALL_K3S_EXEC" on the back of "server", it's worked, to be honest ,i do not know why :)
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server INSTALL_K3S_EXEC="--tls-san rancher.k3s.cn"

Environment variables need to go before the command, that's how bash works.