Customize intero-stack-executable-function instead of a variable

Sometimes, the exact path to the executable might not be known, and its name not present in user’s PATH. In such a case, the user would benefit from the possibility of defining their own function to determine that path programmatically.
One possible ‘improvement’ would be to:
(defun intero--stack-executable ()
  (funcall intero-stack-executable-function))

… and use that everywhere, instead of (funcal intero-stack-executable-function). But I didn’t want to introduce that initially, as another similar symbol might confuse users…
/cc @purcell
Related to #393.

This would be very-very-very useful for nixies. :pray:
And it also should be the last change that needs to touch the whole code-base in this shim approach!

I'm still not clear on the exact use case for this. When would the shimmed executable be both absent from $PATH and in an unknown location?
Also, when calling intero-stack-executable-function, what guarantees would you need to ensure so that implementations of that function could behave sensibly? ie. would you need to ensure default-directory is in the Haskell project, rather than in the temp directory etc.?
All in all, I don't really have a clear picture of the problem you're attempting to solve here.

Sure, that’s completely understandable! Sorry for being a bit… enigmatic. :sweat_smile:
The exact use case I have in mind is this:

the user doesn’t have their Nix shim for Stack globally in PATH (that should be quite common on NixOS, or really just with Nix-style development),
and either:

they have their project configured so that the executable will be in PATH once they jump into nix-shell for their project,
or they want the shim to be automatically installed by Nix, once they open any of the project files.

I imagine that last case to be the most common. Common enough, that I shyly thought of adding another (ca. 4-line) alternative implementation for intero-stack-executable-function to intero.el that would do just that.
As for guarantees, in that last case, this function could be called anywhere, really, as it could just do nix-shell -p haskellPackages.intero-nix-shim --run 'command -v intero-nix-shim' or something equivalent(*).
I have almost all the pieces (including proper shim in Haskell), what’s left is just putting them all together and publishing a simple README, of course! (And I figured, I could start with this last change to intero.el.)
(*) If you decided to reject this PR, the user could be instructed to run this piece of code in .dir-locals.el, but that would be significantly more complicated and error-prone than just setting intero-stack-executable-function to our correct intero-stack-executable-nix-shim or similar.

A less intrusive alternative might be to publish a separate package, e.g. intero-nix, which would provide a minor intero-nix-mode. The user would be told to add 'intero-nix-mode to their intero-mode-hook, so that it would be triggered in any intero-enabled Haskell buffer. intero-nix-mode would perform any necessary magic and set intero-stack-executable accordingly.
In other words, ideally we'd find a way to use standard elisp patterns to extend intero in this way.

Uh, you’re right, from Intero perspective alone, I definitely prefer a simple string. This PR over-complicates the matter… a bit.
OK, I’ll try to come up with something different, potentially following your suggestion in the end. =)


What specific services does 'embedded DERP (and STUN) server' provide

embedded DERP (and STUN) server #388
In addition to assisting client connections, this derp service
Can data relay transmission services be provided when the client cannot connect directly
Do you still need to build your own derp service for data relay

A DERP server can be used to relay traffic when a direct connection between nodes is not possible. Tailscale provides some DERP servers for their users and Headscale can also provide a single DERP instance for you.
You don't need to run your own DERP server, but you probably should to not put additional burden on Tailscale DERP servers.

A DERP server can be used to relay traffic when a direct connection between nodes is not possible. Tailscale provides some DERP servers for their users and Headscale can also provide a single DERP instance for you.
You don't need to run your own DERP server, but you probably should to not put additional burden on Tailscale DERP servers.

Yes, my goal is not to use the official Derp service of Tailscale, but to use my own server to relay traffic. So I need to ensure that after blocking the official derp service of tailscale, can headscale provide relay services to ensure 100% success of the connection

This question is more suitable for Discord than Github, I will close this, please continue the conversation there.

Do you still need to build your own derp service for data relay

In principal, you would not need to add more than  the one DERP server that comes with headscale, however, you would introduce a single point of failure into your setup, so having more than one might be sensible.


Personalization

We could add a new button which opens a new window, which lets the user personalize their prog-o-meter.
For example, we could let the user choose which color they wan't completed days to have (currently set to blue), and what color they wan't the new day they add to have (currently set to green).
We could also let them change the number of days of their goal (e.g. #50DaysofCode, #500DaysofCode). We will have to control that the number of days of their goal is greater than 0 (we can't display negative days). We might also have to have a max number of days of the goal, since it will have to fit (and look nice), on the canvas.
We could also let user add a line of text to the window, with their motivation (e.g." My motivatio: I code to change my career", "My motivation: learning everyday", etc.)
When updates are made by clicking the "personalize" button, they should be reflected in the window, and probably also saved so they will remain next time user uses program (Currently we store user data in a .txt file, but maybe someone have ideas for how to do it differently?)
Feel free to comment with other suggestions for things user's should be able to personalize.

I suggest we hold of on this issue, until we have a database in place.

I can’t find the time to do the database, so I’m gracelessly bowing out of that one! I’m barely finding the time to review the pep8! 8D
v/r
Ben Heffron
Forgive brevity, this was sent from a mobile device.

On May 19, 2018, at 9:22 AM, etiontdn<EMAIL_ADDRESS>wrote:
I would like to take a try at this and the database if no one is doing it at the moment.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Great, i will do it then.
If you have an idea of how the personalization window should look like I'm open for suggestions

work in progress


Custom/Fullscreen Login Screen

Would it be possible to change the background of the loading screen when you open the client? Also, would be nice if it went full-size in stretched mode. Don't know what the possibility of this is, but it would be a nice feature.

duplicate of #9082 and #7605


Correction for raw affiliation Division of Urology, Department of Surgery, Western University and Division of Surgical Oncology, Department of Oncology, Western University, and London Health Sciences Centre

Correction needed for raw affiliation Division of Urology, Department of Surgery, Western University and Division of Surgical Oncology, Department of Oncology, Western University, and London Health Sciences Centre
raw_affiliation_name: Division of Urology, Department of Surgery, Western University and Division of Surgical Oncology, Department of Oncology, Western University, and London Health Sciences Centre
new_rors: 037tz0e16;02grkyz14
previous_rors: 037tz0e16;05167c961
works_examples: W4390106569
contact: 7ea7e5745e0c67f9bbaeb210ae2c82be:46b7141067f262a8 @ uwo.ca

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


Master

I suggest to add a statement about source and binary forms of compiled software.

Can you add any evidence/citations for this claim?

Which claim would you need evidence for? Would  https://en.wikipedia.org/wiki/Compiler help?
I notice I added a backup file to the pull request.... the wonders of self-thinking GUIs....

I was hoping for a citation for "The existence of both source and compiled code must be taken into account in the license, this makes data collection licenses unsuitable for software and software licenses unsuitable for data collections" and another for "Furthermore subtle differences between different compilers (e.g. on two different machines or two different operating systems) can result in subtly different results when the software is run on the same data. This puts strong demands on the description of provenance."

I understand your point, but I'm not convinced it fits the document as a difference between software and data. Without some evidence (citation), I'm going to close this.
Also, it's now in conflict with the current document due to another recent change.
If you think I'm missing the point and you can provide evidence for your argument, please start a new PR.
Thanks.


On the next steps: It says "[Follow-up interview]" - that should say something like "send another letter"

Fixed template


cilium exectue command

Proposal / RFE
I personally have run these scenario a lot.

I have a pod nginx running and I would like to get the cilium pod with this nginx. I will need to perform the following steps

I run kubectl get pods -o wide to find out the node it's running for this nginx pod
I run kubectl get pods -l k8s-app=cilium -o name -n kube-system -o wid to find out which cilium is on the same node with nginx
I run kubectl exec -it -n kube-system cilium-zmglg -- cilium xxx or kubectl exec -it -n kube-system cilium-zmglg -- bash to get it cilium

I would like to collect all cilium commands for something, and I have to run these shell command

kubectl get pods -l k8s-app=cilium -o name -n kube-system | xargs -I {} sh -c 'echo Pod: {}; kubectl exec -n kube-system {} -- cilium status; echo'

Is your feature request related to a problem?
Describe the solution you'd like
I hope we can have cilium exectue podname where I will can run the cilium command to the pod that I want so I dont have to run step 1, 2, and 3 and cilium execute all where I can run the cilium command to all cilium pods

This is what it should look like. Let's say I want to run some command on cilium pod
cilium exec --pod nginx-xxx-yyy cilium-health status
Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), wait-for-node-init (init), clean-cilium-state (init), install-cni-binaries (init)
Probe time:   2023-08-23T14:32:36Z
Nodes:
  ip-10-2-6-163.us-east-2.compute.internal (localhost):
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=404.483µs
      HTTP to agent:   OK, RTT=1.602324ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=412.573µs
      HTTP to agent:   OK, RTT=1.135271ms
  ip-10-2-5-115.us-east-2.compute.internal:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   Connection timed out
      HTTP to agent:   OK, RTT=2.150797ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   Connection timed out
      HTTP to agent:   OK, RTT=2.062174ms
  ip-10-2-6-21.us-east-2.compute.internal:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.118048ms
      HTTP to agent:   OK, RTT=944.225µs
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=396.655µs
      HTTP to agent:   OK, RTT=1.193838ms
  ip-10-2-6-49.us-east-2.compute.internal:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   Connection timed out
      HTTP to agent:   OK, RTT=3.801243ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   Connection timed out
      HTTP to agent:   OK, RTT=1.294341ms
  ip-10-2-7-128.us-east-2.compute.internal:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.112411ms
      HTTP to agent:   OK, RTT=1.402368ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.129288ms
      HTTP to agent:   OK, RTT=1.533837ms
  ip-10-2-7-36.us-east-2.compute.internal:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   Connection timed out
      HTTP to agent:   OK, RTT=1.357191ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   Connection timed out
      HTTP to agent:   OK, RTT=1.424669ms
  ip-10-2-8-160.us-east-2.compute.internal:
    Host connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.831154ms
      HTTP to agent:   OK, RTT=2.174386ms
    Endpoint connectivity to <IP_ADDRESS>:
      ICMP to stack:   OK, RTT=1.843083ms
      HTTP to agent:   OK, RTT=2.184002ms

run commands to all the pods
cilium exec --all cilium encrypt status
Pod: pod/cilium-5sv4z
Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), wait-for-node-init (init), clean-cilium-state (init), install-cni-binaries (init)
Encryption: Disabled
Pod: pod/cilium-cfmjz
Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), wait-for-node-init (init), clean-cilium-state (init), install-cni-binaries (init)
Encryption: Disabled
Pod: pod/cilium-dzp6w
Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), wait-for-node-init (init), clean-cilium-state (init), install-cni-binaries (init)
Encryption: Disabled
Pod: pod/cilium-m5qjn
Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), wait-for-node-init (init), clean-cilium-state (init), install-cni-binaries (init)
Encryption: Disabled
Pod: pod/cilium-qwj8b
Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), wait-for-node-init (init), clean-cilium-state (init), install-cni-binaries (init)
Encryption: Disabled
Pod: pod/cilium-qzpbg
Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), wait-for-node-init (init), clean-cilium-state (init), install-cni-binaries (init)
Encryption: Disabled
Pod: pod/cilium-sxdwq
Defaulted container "cilium-agent" out of: cilium-agent, config (init), mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), wait-for-node-init (init), clean-cilium-state (init), install-cni-binaries (init)
Encryption: Disabled

For extra points, we should consider using Ephemeral Containers for this :)

@joestringer I just got some cycle to work on some ideas that I brought up last year. This is one of them. I dont understand how Ephemeral Containers could help. when I would like to debug cilium info for a nginx pod, and I need to run cilium command to access the cilium/BPF info. Then I always need 2-3 commands to find the cilium pod on the same node with the nginx pod.
Hope I made myslef clear


Tasks in VSCode insiders are now wrapped in quotes and are broken

VSCode Version: 1.22.0-insiders
OS Version: Windows 10

Steps to Reproduce:

Create an npm script
Create a VSCode Tasks that references the npm script from step 1

For example, in my case, my Tasks is the following
{
      "label": "Build Demo",
      "command": "npm",
      "type": "shell",
      "args": [
          "run build"
       ],
      "problemMatcher": []
},

and my npm script is the following
"scripts": {
    "build": "ng build --prod",
}

In Stable version I see this
> Executing task: npm run build-demo <
but in Insiders version I see this
> Executing task: npm 'run build-demo' < then npm just fail and shows up the npm help
The real issue
The problem is really because in my example, the run build-demo is wrapped in single quotes versus the Stable which is not. Why did that change since last version?

Does this issue occur when all extensions are disabled?: Yes

I don't think the issue that the bot found is the same since in my case it's really the wrap in single quote that causes the issue

@ghiscoding we fixed issue where args where not correctly quoted when containing blanks. You either need to build one command line or or need to sparate the one arg into two. So either
{
      "label": "Build Demo",
      "command": "npm run build",
      "type": "shell",
      "problemMatcher": []
}

or
{
      "label": "Build Demo",
      "command": "npm",
      "type": "shell",
      "args": [
          "run", "build"
       ],
      "problemMatcher": []
}

There should have been a message in the past in the task output channel that there is an issue with the blank in the arg and that a single command line should be used.
Closing the issue since this is now the expected behaviour.

Would have been nice to get an error in my JSON file from the start. Anyway thanks for the info, I will have to redo all my project tasks since I apparently didn't use them properly everywhere that is.

I agree that an error in the editor would have been nice here, but there should have been one in the task output channel.
I will definitely mention these quoting fixes in the release notes. We also added support to let users decided on the quoting.


Node/Vue Basic Setup

under a frontend folder
include material.io and vuex packages, etc
developer readme instructions

Besides adding "material.io and vuex packages, etc", can this be closed?

Yes!


feat: added rating group

Closes #315

[x] To create a Rating group component
[x] To add examples for Rating group
[ ] Documentation
[ ] Test cases

Hey @HBS999
Your docs are great!
I mainly referenced the RadioGroup documentation and some of yours. However, the docs added in this PR are still in the draft stage and will be fixed and enhanced after review.
I’m more curious about the implementation.
Cheers!

Bruh you even straight up copied the css file. @jer3m01 is this behavior allowed?

Hey @HBS999
As I mentioned above yes I took a reference from radio-group and your PR for docs- which consist example and CSS file.
Also, I checked ur code just now. It looks good to me. I implemented it almost the same but gave some extra attributes like count and index for rating-group root and item making it similar to ark-ui
I think when it comes to Kobalte your implementation looks good to me as of now.
Hey @jer3m01  closing this PR for now, let me know if the approach I used here is relevant, I would love to open the PR again


 Could you add the docs and components folders to the lint script in the manager's package.json. And then could you address the linter issues?

Follow up for linting:
https://github.com/linode/manager/issues/1699


[WIP] implement a PriorityQueue

The priority queue is described in Okasaki's "Purely Functional Data structures". It is based on leftist trees.

I started a discussion to give feedback

Amazing

Thanks for merging.
I am still working on various proofs. But I will send separate pull-requests for them


FOUC when using SSR with styled-components-based library

I'm experiencing FOUCs when trying to SSR a component library using styled-components. I initially thought this was an issue with Grommet, but after building a test library just with SC I'm seeing the same issue.
Both SC and Grommet are working fine when consumed directly by the app.
Environment
## System:
 - OS: macOS 10.14.3
 - CPU: (4) x64 Intel(R) Core(TM) i5-6287U CPU @ 3.10GHz
 - Memory: 1.48 GB / 16.00 GB
 - Shell: 3.2.57 - /bin/bash
## Binaries:
 - Node: 10.15.1 - ~/.nvm/versions/node/v10.15.1/bin/node
 - Yarn: 1.13.0 - /usr/local/bin/yarn
 - npm: 6.9.0 - ~/.nvm/versions/node/v10.15.1/bin/npm
 - Watchman: 4.9.0 - /usr/local/bin/watchman
## npmPackages:
 - babel-plugin-styled-components: ^1.10.0 => 1.10.0
 - styled-components: ^4.1.3 => 4.1.3

Reproduction
Minimal repro: https://github.com/rogerhutchings/fouc-example
Steps to reproduce

Clone the repo
npm install
npm run build
npm run start
Open http://localhost:3000/

Expected Behavior
Styles for foo and bar should be rendered on the server (add red and blue backgrounds respectively)
Actual Behavior
Styles for foo and bar aren't collected on the server, so they're loaded on the client and result in a FOUC.
Possibly related - #1860, but basic SSR with styled components is working fine, and I'm not using global styles here.

Ah - this is actually a dupe of #2322

@rogerhutchings Hi! Did this duplicated issue solve things for you?
How did you solve it because you were doing workspaces, which hoits packages, the package is basically shared anyway.
Did you find any smart thoughts around that anywhere?


Issue 2: arjanjohan personal page

Description
Created my personal page

Additional Information

[x] I have read the contributing docs (if this is your first contribution)
[x] This is not a duplicate of any existing pull request

Your ENS/address: arjanjohan.eth

Thanks for the review @phipsae, I have updated the page based on your review.

@arjanjohan Thanks for page! Merged.


[BUG] Auth file not created after successful login

Version

podman version 3.4.2
Ubuntu 20.4 LTS
Describe the bug

I've had a hard time to setup Podman first on Ubuntu 20.4 then I got stuck with UID and GID related issue. And now, I'm stuck with an issue with login step. I'm passing username and token from environment variables to the login step and it does login successfully. However, just after login it complains regarding missing auth.json file and the workflow fails. Though the Podman supports --authfile parameter which I don't see in podman-login action.
Action code:
- name: login to image registry
      uses: redhat-actions/podman-login@v1
      with:
        username: ${{ env.OCP_SERVICE_ACCOUNT_NAME }}
        password: ${{ env.OCP_SERVICE_ACCOUNT_TOKEN }}
        registry: ${{ env.OCP_BASE_EXM_IMAGE_REPOSITORY_URL }}

Steps to reproduce, workflow links, screenshots
Probably restarting my self-hosted runner caused this problem but the file has to be created automatically right after the successful login.
Attaching the screenshot as well.

Output of podman info --debug
podman info --debug
host:
  arch: amd64
  buildahVersion: 1.23.1
  cgroupControllers: []
  cgroupManager: cgroupfs
  cgroupVersion: v1
  conmon:
    package: 'conmon: /usr/libexec/podman/conmon'
    path: /usr/libexec/podman/conmon
    version: 'conmon version 2.1.0, commit: '
  cpus: 2
  distribution:
    codename: focal
    distribution: ubuntu
    version: "20.04"
  eventLogger: journald
  hostname: vm-integration-ocp
  idMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  kernel: 5.13.0-1021-azure
  linkmode: dynamic
  logDriver: journald
  memFree:<PHONE_NUMBER>
  memTotal:<PHONE_NUMBER>
  ociRuntime:
    name: crun
    package: 'crun: /usr/bin/crun'
    path: /usr/bin/crun
    version: |-
      crun version UNKNOWN
      commit: ea1fe3938eefa14eb707f1d22adff4db670645d6
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +CRIU +YAJL
  os: linux
  remoteSocket:
    path: /run/user/1000/podman/podman.sock
  security:
    apparmorEnabled: false
    capabilities: CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
    rootless: true
    seccompEnabled: true
    seccompProfilePath: /usr/share/containers/seccomp.json
    selinuxEnabled: false
  serviceIsRemote: false
  slirp4netns:
    executable: /usr/bin/slirp4netns
    package: 'slirp4netns: /usr/bin/slirp4netns'
    version: |-
      slirp4netns version 1.1.8
      commit: unknown
      libslirp: 4.3.1-git
      SLIRP_CONFIG_VERSION_MAX: 3
      libseccomp: 2.5.1
  swapFree: 0
  swapTotal: 0
  uptime: 2h 27m 54.28s (Approximately 0.08 days)
plugins:
  log:
  - k8s-file
  - none
  - journald
  network:
  - bridge
  - macvlan
  volume:
  - local
registries:
  search:
  - docker.io
  - quay.io
store:
  configFile: /home/deuser/.config/containers/storage.conf
  containerStore:
    number: 1
    paused: 0
    running: 0
    stopped: 1
  graphDriverName: overlay
  graphOptions:
    overlay.ignore_chown_errors: "true"
    overlay.mount_program:
      Executable: /usr/bin/fuse-overlayfs
      Package: 'fuse-overlayfs: /usr/bin/fuse-overlayfs'
      Version: |-
        fusermount3 version: 3.9.0
        fuse-overlayfs: version 1.5
        FUSE library version 3.9.0
        using FUSE kernel interface version 7.31
  graphRoot: /home/deuser/.local/share/containers/storage
  graphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  imageStore:
    number: 9
  runRoot: /run/user/1000/containers
  volumePath: /home/deuser/.local/share/containers/storage/volumes
version:
  APIVersion: 3.4.2
  Built: 0
  BuiltTime: Thu Jan  1 00:00:00 1970
  GitCommit: ""
  GoVersion: go1.16.6
  OsArch: linux/amd64
  Version: 3.4.2
```
`
Ouput of podman login:

INFO[0000] podman filtering at log level debug
DEBU[0000] Called logout.PersistentPreRunE(podman --log-level debug logout default-registly**** (hidden)/observability/was-example)
DEBU[0000] overlay storage already configured with a mount-program
DEBU[0000] Merged system config "/usr/share/containers/containers.conf"
DEBU[0000] overlay storage already configured with a mount-program
DEBU[0000] Using conmon: "/usr/libexec/podman/conmon"
DEBU[0000] Initializing boltdb state at /home/deuser/.local/share/containers/storage/libpod/bolt_state.db
DEBU[0000] Using graph driver overlay
DEBU[0000] Using graph root /home/deuser/.local/share/containers/storage
DEBU[0000] Using run root /run/user/1000/containers
DEBU[0000] Using static dir /home/deuser/.local/share/containers/storage/libpod
DEBU[0000] Using tmp dir /run/user/1000/libpod/tmp
DEBU[0000] Using volume path /home/deuser/.local/share/containers/storage/volumes
DEBU[0000] overlay storage already configured with a mount-program
DEBU[0000] Set libpod namespace to ""
DEBU[0000] [graphdriver] trying provided driver "overlay"
DEBU[0000] overlay: mount_program=/usr/bin/fuse-overlayfs
DEBU[0000] overlay: ignore_chown_errors=true
DEBU[0000] backingFs=extfs, projectQuotaSupported=false, useNativeDiff=false, usingMetacopy=false
DEBU[0000] Initializing event backend journald
DEBU[0000] configured OCI runtime runsc initialization failed: no valid executable found for OCI runtime runsc: invalid argument
DEBU[0000] configured OCI runtime kata initialization failed: no valid executable found for OCI runtime kata: invalid argument
DEBU[0000] Using OCI runtime "/usr/bin/crun"
INFO[0000] Found CNI network podman (type=bridge) at /home/deuser/.config/cni/net.d/87-podman.conflist
DEBU[0000] Default CNI network name podman is unchangeable
INFO[0000] Setting parallel job count to 7
DEBU[0000] Loading registries configuration "/etc/containers/registries.conf"
DEBU[0000] Loading registries configuration "/etc/containers/registries.conf.d/000-shortnames.conf"
Removed login credentials for default-registly**** (hidden)/observability/was-example
DEBU[0000] Called logout.PersistentPostRunE(podman --log-level debug logout default-registly**** (hidden)/observability/was-example)
deuser@vm-integration-ocp:~$ podman --log-level debug login default-registly**** (hidden)/observability/was-example
INFO[0000] podman filtering at log level debug
DEBU[0000] Called login.PersistentPreRunE(podman --log-level debug login default-registly**** (hidden)/observability/was-example)
DEBU[0000] overlay storage already configured with a mount-program
DEBU[0000] Merged system config "/usr/share/containers/containers.conf"
DEBU[0000] overlay storage already configured with a mount-program
DEBU[0000] Using conmon: "/usr/libexec/podman/conmon"
DEBU[0000] Initializing boltdb state at /home/deuser/.local/share/containers/storage/libpod/bolt_state.db
DEBU[0000] Using graph driver overlay
DEBU[0000] Using graph root /home/deuser/.local/share/containers/storage
DEBU[0000] Using run root /run/user/1000/containers
DEBU[0000] Using static dir /home/deuser/.local/share/containers/storage/libpod
DEBU[0000] Using tmp dir /run/user/1000/libpod/tmp
DEBU[0000] Using volume path /home/deuser/.local/share/containers/storage/volumes
DEBU[0000] overlay storage already configured with a mount-program
DEBU[0000] Set libpod namespace to ""
DEBU[0000] [graphdriver] trying provided driver "overlay"
DEBU[0000] overlay: mount_program=/usr/bin/fuse-overlayfs
DEBU[0000] overlay: ignore_chown_errors=true
DEBU[0000] backingFs=extfs, projectQuotaSupported=false, useNativeDiff=false, usingMetacopy=false
DEBU[0000] Initializing event backend journald
DEBU[0000] configured OCI runtime runsc initialization failed: no valid executable found for OCI runtime runsc: invalid argument
DEBU[0000] configured OCI runtime kata initialization failed: no valid executable found for OCI runtime kata: invalid argument
DEBU[0000] Using OCI runtime "/usr/bin/crun"
INFO[0000] Found CNI network podman (type=bridge) at /home/deuser/.config/cni/net.d/87-podman.conflist
DEBU[0000] Default CNI network name podman is unchangeable
INFO[0000] Setting parallel job count to 7
DEBU[0000] Loading registries configuration "/etc/containers/registries.conf"
DEBU[0000] Loading registries configuration "/etc/containers/registries.conf.d/000-shortnames.conf"
DEBU[0000] Found credentials for default-registly**** (hidden) in credential helper containers-auth.json
Authenticating with existing credentials for  https://image-registry******* (hidden)/observability/was-example
DEBU[0000] Looking for TLS certificates and private keys in /etc/docker/certs.d/d https://image-registry******* (hidden)
DEBU[0000] GET https://image-regsitry
DEBU[0000] Ping https://image-regsitry status 401
DEBU[0000] GET  https://image-registry******* (hidden)
Existing credentials are invalid, please enter valid username and password
Username (oc rsharm13@.com): rsharm@*
Password:
DEBU[0040] Looking for TLS certificates and private keys in /etc/docker/certs.d/default-registly**** (hidden)
DEBU[0040] GET https://image-regsitry
DEBU[0040] Ping https://image-regsitry status 401
DEBU[0040] GET https://image-registry******* (hidden)
DEBU[0040] Increasing token expiration to: 60 seconds
DEBU[0040] GET https://image-regsitry
DEBU[0040] Stored credentials for  https://image-registry******* (hidden)/observability/was-example in credential helper containers-auth.json
Login Succeeded!
DEBU[0040] Called login.PersistentPostRunE(podman --log-level debug login  https://image-registry******* (hidden)/observability/was-example)

I tried that with the self hosted runner, it works totally fine.
I think the problem with the self hosted runner that you are using is that - after podman login by default auth file is written at XDG_RUNTIME_DIR/containers/auth.json or /tmp/podman-run-1000/containers/auth.json but in your case, this file is not getting generated.

Although in the logs that you shared I do see that it is storing in containers-auth.json.

Stored credentials for https://image-registry/******* (hidden)/observability/was-example in credential helper containers-auth.json

Are you specifying containers-auth.json file anywhere while login?
Also containers-auth.json denotes the defaults that I mentioned above. Ref: https://man.archlinux.org/man/community/containers-common/containers-auth.json.5.en

I don't see containers-auth.json on my system either nor I removed auth.json file manually. But I do have /home/deuser/.docker/config.json available on the system. I understand that the existence of this file will not signal to create auth.json but that should even not fail the podman-login action?

Also created issue for your request on having authfile flag with podman login https://github.com/redhat-actions/podman-login/issues/19

We have added support for custom auth file and verbose output in login. Please use the latest version (v1/v1.3) and re-run the workflow.
Also please share the updated logs,  so that I can know the exact problem.

@rajeevsh990 any update?

Hi,
I'm experiencing this issue. I'm using v1.4 on a freshly installed self-hosted runner (I had no /local/home/github_runner/.docker/config.json). First error was that /local/home/github_runner/.docker/config.json didn't exist, so I logged into self-hosted runner and created and empty config.json. Then got the following error:
Run<EMAIL_ADDRESS>/bin/podman version
/bin/podman login artifactory.boschdevcloud.com/cross-functions-docker-virtual -u maa1pm -p *** --verbose
Used:  /tmp/podman-run-501/containers/auth.json
Login Succeeded!
✅ Successfully logged in to artifactory.boschdevcloud.com/cross-functions-docker-virtual as maa1pm
Exporting REGISTRY_AUTH_FILE=/tmp/podman-run-501/containers/auth.json
✍ Writing registry credentials to "/local/home/github_runner/.docker/config.json"
Error: TypeError: Cannot set property 'artifactory.boschdevcloud.com/cross-functions-docker-virtual' of undefined

XDG_RUNTIME_DIR was empty so podman login was creating config file in /tmp/podman-run-501/containers/auth.json.
To fix the issue I had to manually copy the file cp /tmp/podman-run-501/containers/auth.json /local/home/github_runner/.docker/config.json and then the error was gone. So what is failing is that last step or creating a right /local/home/github_runner/.docker/config.json file.

I'm confirming that @amarruedo's workaround works, with this command:
$ cp /run/user/1000/containers/auth.json /home/<user>/.docker/config.json

But why isn't this podman login module creating a valid config.json automatically?

Hi,
We use buildah docker image (quay.io/redhat-github-actions/buildah-runner:v2) to run our build jobs with runners hosted in OpenShift cluster, we have the same issue.
Temporary workaround :

cp auth.json : work but need to create docker folder before and when pod are reallocated we lost this config.
use buildah login command instead podman-login action.

Also I tried to login with podman directly from the container and that work but that doesn't create docker folder and config.


[OTHER] Behavior of colour correction matrix with AWB disabled

This isn't fully relevant to picamera2, but was hoping someone here would know off the top of their head. Will close this Tuesday if no response since I don't want to clutter this repo.
It is my understanding that when you take a photo with auto white balance enabled, the camera estimates the current colour temperature and then applies the colour correction matrix corresponding to that colour temperatures.
If a camera is going to be in a known static setting, say a sealed mini-laboratory in space, and the lighting conditions will be 100% fixed, what would the process be to basically "assume" a constant colour temperature and apply the same colour correction matrix regardless.
Basically, if I disable Auto White Balance, what happens? Does it still estimate the colour temperature and apply a relevant colour correction matrix? Can I specify a static colour temperature so that the same correction matrix is used every time?
The goal is reproducible images so that they can be directly compared over time to see accurate colour changes.
I've looked in here: https://datasheets.raspberrypi.com/camera/raspberry-pi-camera-guide.pdf and also the manual for this library but didn't find an answer to my question. I've also dug around a little in the libcamera source code but to no avail.
Thanks in advance, I know this is a bit of a weird question

If you disable the AWB after it's been running, it will keep the colour gains and colour matrix that it was using previously.
If you set explicit colour gain values it will choose the colour temperature that matches the gains best, and use the colour matrix for that colour temperature.
Hope that helps!

that is extremely helpful. Is there an easy strategy to derive the blue and green color gains for a target colour temperature? I know that math is done internally somewhere and I can find it, but if you know easily I'd appreciate it.

Easiest thing is to run the camera in the lighting you're interested in and use
picam2.capture_metadata()["ColourGains"]

This will give you the red and blue gains (green gain should be 1.0).
You can also work it out from the tuning file for the camera, let me know if you want to know how to do that.

If you want to compute the colour gains ahead of time for a particular colour temperature, you need to find the ct_curve entry in the tuning file. The vector of numbers there is a set of triples consisting of colour_temperature, red_value, blue_value. These get repeated several times for different colour temperatures. To get the red gain, take the reciprocal of the red_value, ditto for blue.
The auto algorithm will also automatically interpolate between the listed colour temperatures (you'd have to do that manually) and does have seem leeway to adjust slightly for lighting that is unusually green or purple (not uncommon with some fluorescent lights).
You could also fix the colour matrix by deleting all the ones except the one you want. You could also interpolate your own and leave only that one in there.

That is again some more excellent information! Extremely useful and I really appreciate your time here. I will come back and ping you if I have further questions!

just wanted to come back and note for anybody interested in doing this themselves that the ct_curve list in the calibration file must have 2 color temperatures present or else libcamera will refuse to even recognize that the cameras exist. You can still disable AWB and specify gains to ensure it uses the CCM you want, but you will need to enter some arbitrary values in ct_curve

If you disable the AWB after it's been running, it will keep the colour gains and colour matrix that it was using previously.
If you set explicit colour gain values it will choose the colour temperature that matches the gains best, and use the colour matrix for that colour temperature.
Hope that helps!

It that really the case? When I investigated that in the alpha-release, setting any color gain resulted in a correlated color temperature of 4500 K which was propagated down to all other modules. I checked the source code for this - as far as I can remember, it's directly in the awb-module. This might have changed - the behaviour described above would be actually more helpful than the default behaviour I have seen previously.

I did do some work on all this stuff quite some time ago so I do believe it to be true. Having said that, it's very easy for things to bit-rot, so let's give it a try! Here's what happened:
>>> from picamera2 import Picamera2
>>> picam2 = Picamera2()
...
>>> picam2.start()
...
>>> picam2.capture_metadata()["ColourTemperature"]
6495
>>> picam2.capture_metadata()["ColourTemperature"] # wave finger at camera, AWB changes temporarily
6263
>>> picam2.set_controls({"AwbEnable": 0})
>>> picam2.capture_metadata()["ColourTemperature"]
6496
>>> picam2.capture_metadata()["ColourTemperature"] # wave finger again!
6496

So it does appear to behave as described.
However, the second thing that I said (that if you set explicit colour gains it will choose the "closest" colour temperature) is inaccurate, I was misremembering. It only does that if you set explicit colour gains before you start the camera for the first time. Otherwise you just get the "fixed at whatever it currently has" behaviour that we saw above. Don't know if that's ideal or not... one to think about perhaps.

I find that strange, because I was able to change the colour gains in real time with AWB off and see the effects on a stream.

Yes, I probably wasn't clear. You can change the colour gains, but the reported colour temperature won't change, it'll stay fixed. The colour temperature does have an effect on the lens shading tables and colour matrix, but it's a second order effect compared to changing the colour gains.

Interesting... I'd personally consider that non-optimal behavior, since I expected it to change the color temperature as well. Maybe this would be worth filing an actual separate issue for.

I think what I was referring to was the following code in awb.cpp :
void Awb::initialise()
{
	frameCount_ = framePhase_ = 0;
	/*
	 * Put something sane into the status that we are filtering towards,
	 * just in case the first few frames don't have anything meaningful in
	 * them.
	 */
	if (!config_.ctR.empty() && !config_.ctB.empty()) {
		syncResults_.temperatureK = config_.ctR.domain().clip(4000);
		syncResults_.gainR = 1.0 / config_.ctR.eval(syncResults_.temperatureK);
		syncResults_.gainG = 1.0;
		syncResults_.gainB = 1.0 / config_.ctB.eval(syncResults_.temperatureK);
	} else {
		/* random values just to stop the world blowing up */
		syncResults_.temperatureK = 4500;
		syncResults_.gainR = syncResults_.gainG = syncResults_.gainB = 1.0;
	}
	prevSyncResults_ = syncResults_;
	asyncResults_ = syncResults_;
}

Here, there is a code line setting the cct fixed to 4500 - and this was quite close to the cct the camera reported in my experiments with manual gain setting. But as well, that was a long time ago with the alpha-release of picamera2, and things might have changed now.
Having dug up this again, I noticed that there is another code section which is probably more relevant (lines 283-290) to the issue discussed (but, I am only guessing - this code is heavily undocumented and I did not examine this in detail):

	if (!isAutoEnabled() && firstSwitchMode_ && config_.bayes) {
		Pwl ctRInverse = config_.ctR.inverse();
		Pwl ctBInverse = config_.ctB.inverse();
		double ctR = ctRInverse.eval(ctRInverse.domain().clip(1 / manualR_));
		double ctB = ctBInverse.eval(ctBInverse.domain().clip(1 / manualB_));
		prevSyncResults_.temperatureK = (ctR + ctB) / 2;
		syncResults_.temperatureK = prevSyncResults_.temperatureK;
	}

It seems that in this section, cct is set after a mode change to the average cct suggested by the color gain-cct curves, which, by the way, look like this:

The dotted lines are directly taken from the current tuning file of the HQ camera, the solid lines come from a simulation of the HQ camera I came up with, utilizing published and measured filter responses of the CFA and the IR-filter used in the HQ camera. I can not yet explain the shift between experimental data (dotted, from the the tuning file) and the simulated camera (solid lines) noticeable in the above graph. But basically, it leads to a somewhat warmer image in the simulation approach compared to the libcamera tuning file approach, the later tending to be more on the cooler looking side of things.

Hey there @davidplowman , we're getting some slightly strange behavior. We set up the camera with AwbMode off, static colour gains, as well as a static exposure time and analogue gain. Both cameras (on separate interfaces) are in identical lighting environments and same sensor (so same calibration file).
But across the two different interfaces we still somehow see a colour difference between them. Looking at the logs, we can see the metadata printed for interface 1:
{'SensorTimestamp':<PHONE_NUMBER>000, 'ScalerCrop': (1000, 752, 1280, 960), 'DigitalGain': 1.0002144575119019, 'ColourGains': (1.5802781581878662, 1.1420739889144897), 'SensorBlackLevels': (4096, 4096, 4096, 4096), 'AeLocked': False, 'Lux':<PHONE_NUMBER>234375, 'FrameDuration': 18033, 'ColourCorrectionMatrix': (1.4462014436721802, -0.3704909682273865, -0.07571109384298325, -0.568152129650116, 2.059526205062866, -0.4913734495639801, -0.276929646730423, -0.1115819588303566, 1.3885116577148438), 'AnalogueGain': 1.0, 'ColourTemperature': 6538, 'ExposureTime': 17996}

and interface 2:
{'SensorTimestamp':<PHONE_NUMBER>000, 'ScalerCrop': (1000, 752, 1280, 960), 'DigitalGain': 1.0002144575119019, 'ColourGains': (1.5802781581878662, 1.1420739889144897), 'SensorBlackLevels': (4096, 4096, 4096, 4096), 'AeLocked': False, 'Lux':<PHONE_NUMBER>972656, 'FrameDuration': 18033, 'ColourCorrectionMatrix': (1.4689751863479614, -0.3400672674179077, -0.12890997529029846, -0.5742517709732056, 2.0557384490966797, -0.48148447275161743, -0.26404303312301636, -0.3659210503101349, 1.6299641132354736), 'AnalogueGain': 1.0, 'ColourTemperature': 5887, 'ExposureTime': 17996}

Have notably different values for reported ColourCorrectionMatrix and ColourTemperature. It is my understanding that this should not be the case based on the above. What am I missing here that could be causing this variance? I want to guarantee a 100% static photo taking environment between the two cameras.
For full clarity we do the below for both interfaces:

turn off AWB
set colour gains to (1.580278129, 1.142074006)
set analog gain to 1.0
set exposure time to 18000

Thank you in advance for your help!

Well, here's my guess:
"Both cameras (on separate interfaces) are in identical lighting environments and same sensor (so same calibration file)." might not be really the case. Note that your Lux-estimate is quite different between the two cameras. Now, this lux-estimate is used later in the processing chain to select an appropriate prior for the awb-unit. This in turn  leads to different cct-estimates for both cameras (as observed in your metadata).
At that point, another issue with the current tuning file comes into play: even for cct's close to each other, the ccm's specified in the tuning file have widely varying coefficients. Here's an example of the variation of the main red channel gain of the libcamera ccm (which gets interpolated (dashed blue line) from the few discrete entries (red dots) in the tuning file):

So for certain cct-ranges, the coefficients of the ccm vary noticeably, even for very similar cct's; any small difference in cct-estimation will be exaggerated by the ccm's encoded in the current IMX477 tuning file.
Of course, selecting manual color gains should turn off all this automatic fiddling, but my own experiments indicate that this is not the case.

Hmm, it seems this could actually be worth opening an issue report then. I'll wait and see if david has anything to say about it. Appreciate your comment

I wonder what the AwbMode "CUSTOM" does and if that could be useful here
https://libcamera.org/api-html/namespacelibcamera_1_1controls.html

The whole libcamera thing is from my point of view pretty awkward. I have yet to find a good source of documentation.
My guess with respect to your above post is that the different AWB-"modes" in effect only constrain the search range of the AWB algorithm. Note in this respect the following text snippet, taken directly out of the tuning guide:
modes : A list of AWB modes giving a name (a character string) and the “lo” and “hi” range in terms of colour temperature on the CT curve that must be searched.
Another thing which I stumbled upon: the ccm for a cct of 5920 K in the IMX477 tuning file has as red channel main entry (that is, ccm[0,0])  of 1.98691, and for a cct of 9050 K the tuning file lists a value of 2.09255. These values correspond to the red dots in my above diagram. Now, the way the interpolation of ccms is done for intermediate cct-values should result in red channel main values only in this range,  namely  [1.99 ; 2.093].
But: the ccm libcamera values reported in your experiments yield 1.58 for a cct of 6538 K, and of 1.469 for a reported cct of 5887 K.  That does not match the above expectation at all.
Now, the ccm gets also modified by a saturation function if specified. But as this function is not present in the IMX477 tuning file, it should not be used/occur to happen. So why are the reported ccm values for a specific cct so different from the ones listed in the tuning file?
That whole libcamera-thing does not make any sense to me.

For the record, we are using an IMX219 vs your IMX477, and a custom tuning file so that may make that comparison less meaningful. But I do agree there is some funky stuff here

I've been able to work around this issue temporarily by setting all the CCMs in the tuning file to the same desired matrix, preventing interpolation.

Yep, that's a possibility. If you're into that, consider selecting the simple Bayes algorithm for AWB, disable ALSC completely, and get rid of the non-standard contrast curve... ;) for starters.

Yep, that's a possibility.

Hey there @davidplowman , we're getting some slightly strange behavior. We set up the camera with AwbMode off, static colour gains, as well as a static exposure time and analogue gain. Both cameras (on separate interfaces) are in identical lighting environments and same sensor (so same calibration file).
But across the two different interfaces we still somehow see a colour difference between them. Looking at the logs, we can see the metadata printed for interface 1:
...
Have notably different values for reported ColourCorrectionMatrix and ColourTemperature. It is my understanding that this should not be the case based on the above. What am I missing here that could be causing this variance? I want to guarantee a 100% static photo taking environment between the two cameras.
For full clarity we do the below for both interfaces:

turn off AWB
set colour gains to (1.580278129, 1.142074006)
set analog gain to 1.0
set exposure time to 18000

Thank you in advance for your help!

Hi, lots of questions in my absence (I am let out occasionally for good behaviour). Anyway, let me start with the first one!
So perhaps the most obvious thing would be to set the colour gains before you start the camera. At that point you're guaranteed the same colour gains, colour temperature, ALSC correction and CCM.  (Actually, ALSC has an adaptive component but you can disable that by setting "n_iter" to zero in the tuning file.) Possibly you might do better to set the exposure time and analogue gain before starting the camera too? This would also make the camera system start more quickly.
Of course there is module to module variation which will still affect you, I guess doing the above will reveal how big this is.
The idea of using a custom AWB mode isn't a bad one. However, even if you constrain this to a single value the algorithm will still do a search transversely to the curve - meaning that there will still be variation. Also, the AWB search is a two step process (a coarse search followed by a fine search), and actually the fine search (being relatively small) doesn't get constrained to the limits of the AWB mode, meaning that it will wander a little. It seems reasonable to me that this latter behaviour should be changed down in libcamera, so I'll put that on my list of things to look at.

For clarity, we set those controls before the camera is started already, and we still see this variance. The only solution I found was to change all the CCMs to be the same so there was no curve to search on, but this isn't ideal.
I'll try playing around with the n_iter config, thanks for being so responsive!

I'll try to create a minimum reproducible test script, but the gist is we create a controls object
controls = picamera2.Controls(self._picam2)
controls.AwbEnable = 0
controls.ColourGains = (1.580278129, 1.142074006)

controls.AnalogueGain = 1.0
controls.ExposureTime = 18000

create a config
still_config = self._picam2.create_still_configuration(main={"size": resolution},
                                                       controls=self._get_camera_controls())

align the config, configure the camera
self._picam2.align_configuration(still_config)
self._picam2.configure(still_config)

then finally start the camera and capture the file
self._picam2.start()
self._picam2.capture_file(image_path, name='main')
self._picam2.stop()

I will create a test script in a few when I get a chance

Setting a single ccm in the tuning file was also my workaround. I also disabled the ALSC, which is not necessary if you use a decent lens. Just screws things up. The AWB delivers in my experience most of the time better results (in comparision to a color checker) _if _ you switch Bayes off. The algo then implements the 'gray world'-assumption, a simple algorithm which is known to fail for certain scenes. With my use cases, it performs more stable. Also, I think the contrast curve in the tuning file carry something of a personal touch - they do not correspond to any of the standard mappings.

@CorvetteCole That's interesting about it being dependent on using a different interface. I'll try and get hold of a CM4 board so that I can try that. How are you "switching between interfaces" exactly? Are we talking about running two cameras in two different processes, or something else?

Nothing that complex, simply destroying the picamera2 object and recreating it on the new interface, then setting the config as aforementioned. Same process, two cameras. Both IMX219, on CM4. Sorry, haven't had a chance to get you a minimum reproducible script but will work on that in the next few days

Also worth noting that I can reproduce this on an RPi4 with dual interfaces as well as a CM4. Will get script to reproduce soon

I'm still wondering a bit what you're doing here. If it's a problem with regular Pi 4s as well, does that mean you're using some kind of bridge chip connected to the single CSI-2 receiver? We do support this (I believe), though the device tree will have to own up correctly to all the attached devices so that they can be enumerated and drivers loaded when the system boots. But anyway, if you can send me more specific info then I'll happily take a look. Thanks!

My wording was bad and I might've gotten confused there. Not meaning to mislead, that is probably a slightly different issue (yes muxing is involved). I think focusing on the issue present on a CM4 is the right idea. My apologies!

Hi, just to update you on where I am with this. I've given it a go on a CM4 board with one imx219 plugged into each of the two camera ports. The code I'm running is:
def run_camera(num=0):
    from picamera2 import Picamera2
    with Picamera2(camera_num=num) as picam2:
        controls = {"ExposureTime": 60000, "AnalogueGain": 2.0, "ColourGains": (1/0.868, 1/0.428)}
        config = picam2.create_still_configuration(controls=controls)
        picam2.configure(config)
        picam2.start()
        metadata = picam2.capture_metadata()
        picam2.stop()
        picam2.close()
        return metadata

and then I randomly run either run_camera(0) or run_camera(1).
So far things all seem very well behaved and I don't see any variation in the exposure time, gains, colour matrix or reported colour temperature. However, I assume I must be doing something different so I'll probably pause for now until I can get a clearer picture of what to try next. Thanks!

the only functional difference to me seems to be no capturing a file, but I can't imagine that would impact it. I'll do some testing on some spare hardware and see if I can get you complete details

just wanted to update you and let you know that I am still working on getting these details, but I am very busy so it may take a few!

Hmmm, I was able to 'reproduce' it, but it may not be the fault of this library. When using switch_mode_and_capture_file, this presents itself but setting the configuration ahead of time it does not.
For example, the below code DOES reproduce the 'issue':
import picamera2
import time

def run_camera(num=0):
    image_path = f'/home/pi/{num}-TEST.jpg'
    metadata = None

    picam2 = picamera2.Picamera2(num)

    controls = picamera2.Controls(picam2)
    controls.AwbEnable = 0
    controls.ColourGains = (1/0.868, 1/0.428)
    controls.ExposureTime = 60000
    controls.AnalogueGain = 1.0

    controls = controls.make_dict()

    still_config = picam2.create_still_configuration(raw={"size": (3280,2464)}, controls=controls)
    picam2.align_configuration(still_config)
    picam2.start()
    picam2.switch_mode_and_capture_file(still_config, image_path)
    metadata = picam2.capture_metadata()
    picam2.stop()
    picam2.close()
    return metadata

print(run_camera(0))
print(run_camera(1))

The below code DOES NOT reproduce the issue:
import picamera2
import time

def run_camera(num=0):
    image_path = f'/home/pi/{num}-TEST.jpg'
    metadata = None

    picam2 = picamera2.Picamera2(num)

    controls = picamera2.Controls(picam2)
    controls.AwbEnable = 0
    controls.ColourGains = (1/0.868, 1/0.428)
    controls.ExposureTime = 60000
    controls.AnalogueGain = 1.0

    controls = controls.make_dict()

    still_config = picam2.create_still_configuration(raw={"size": (3280,2464)}, controls=controls)
    picam2.align_configuration(still_config)
    picam2.configure(still_config)
    picam2.start()
    picam2.capture_file(image_path)
    metadata = picam2.capture_metadata()
    picam2.stop()
    picam2.close()
    return metadata

print(run_camera(0))
print(run_camera(1))

The question is now I guess, is this intended behavior? I would expect the config to still be set after an image has been captured. This issue actually presents itself in an official example in the documentation for asynchronous capture (see section 6.5, page 34).
The follow code DOES reproduce the issue:
import picamera2
import time

def run_camera(num=0):
    image_path = f'/home/pi/{num}-TEST.jpg'
    metadata = None

    picam2 = picamera2.Picamera2(num)

    controls = picamera2.Controls(picam2)
    controls.AwbEnable = 0
    controls.ColourGains = (1/0.868, 1/0.428)
    controls.ExposureTime = 60000
    controls.AnalogueGain = 1.0

    controls = controls.make_dict()

    still_config = picam2.create_still_configuration(raw={"size": (3280,2464)}, controls=controls)
    picam2.align_configuration(still_config)
    picam2.start()
    picam2.switch_mode_and_capture_file(still_config, image_path, wait=False)
    # metadata = picam2.capture_metadata()
    metadata = picam2.wait()
    picam2.stop()
    picam2.close()
    return metadata

print(run_camera(0))
print(run_camera(1))

Following in that vein, capturing the metadata returned by the actual capture method also DOES reproduce this issue:
import picamera2
import time

def run_camera(num=0):
    image_path = f'/home/pi/{num}-TEST.jpg'
    metadata = None

    picam2 = picamera2.Picamera2(num)

    controls = picamera2.Controls(picam2)
    controls.AwbEnable = 0
    controls.ColourGains = (1/0.868, 1/0.428)
    controls.ExposureTime = 60000
    controls.AnalogueGain = 1.0

    controls = controls.make_dict()

    still_config = picam2.create_still_configuration(raw={"size": (3280,2464)}, controls=controls)
    picam2.align_configuration(still_config)
    picam2.start()
    metadata = picam2.switch_mode_and_capture_file(still_config, image_path)
    picam2.stop()
    picam2.close()
    return metadata

print(run_camera(0))
print(run_camera(1))

Clearly there is a bug here, but I am not sure where exactly it is. Please let me know what other information I can gather for you!

Thanks for those examples, I think that makes everything very clear. In fact it's not related to having 2 cameras, I can reproduce it easily with a single camera. It's down to the use of the switch_mode_and_capture_file method, which means the colour gains are not being set when the camera first starts.
TBH I've always been rather paranoid about reverse engineering the colour temperature from the gains because people could put in any old values, and I took the view that anything I'd calculated before was probably safer. On the other hand, you're here first and I don't know of anyone else who really cares, so I don't  particularly mind changing it. It's certainly easier to explain if the colour temp always changes when you set manual gains.
So I'll post an update to the libcamera mailing list. I don't see it as at all controversial so hopefully it won't take too long to get approved.
Just as an aside, and you've probably noticed this yourself, it's much quicker to start the camera in the mode you want, do a capture, and then stop it. Starting it in the wrong mode and doing a switch mode will result in a total of 3 start/stops, which will be way slower!

Yes actually I've switched to setting the configuration before starting for that reason, "fixing" this issue for us anyways.
I do think prioritizing consistency is the right choice here, but maybe I am the only one who cares about this particular niche haha. This will also allow us to switch between several pre-calibrated color temperatures which is a nice feature for some of our payloads.
By the way, thanks for being so responsive. I know I've been bugging you guys across multiple issues (UDP streaming, multiple camera support, this, etc). I don't think there is anything else major I've run in to! Let me know if there is anything else I can do to help

For reference: https://patchwork.libcamera.org/project/libcamera/list/?series=3580

Great! When can we expect to have that functionality available in via the usual software update?

Great! When can we expect to have that functionality available in via the usual software update?

Well, how long is an open source software project piece of string? I would honestly hope this one will be fairly quick, but ping me here again in 2 weeks if there's no news...

That patch looks to have gone through now. So I think it's just a case of us assessing which of our other (more substantial!) patches may be imminent and whether we want to wait for those.

This should now be available in the 0.3.6 release, so I'll close this issue. Please let us know if there are any problems with it!

Great news, I'll make sure to give it a try!

I did give it a try, and as far as I can tell, the libcamera/picamera2 stuff works now as expected. Setting a manual gain changes the cct, and in turn, changes also the ccm which is used. Thank you, that is an important improvement of the new approach!

I can also confirm. This is really helpful to our science efforts in space!

Thanks for the confirmation!


Uncaught Error: Module did not self-register.

[Enter steps to reproduce:]

...
...

Atom: 1.46.0 x64
Electron: 4.2.7
OS: Mac OS X 10.15.5
Thrown From: Atom Core
Stack Trace
Uncaught Error: Module did not self-register.
At ELECTRON_ASAR.js:160

Error: Module did not self-register.
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:160:31)
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:722:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:169:18)
    at Module.load (internal/modules/cjs/loader.js:602:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:541:12)
    at Function.Module._load (internal/modules/cjs/loader.js:533:3)
    at Module.require (/app.asar/static/index.js:72:46)
    at require (internal/modules/cjs/helpers.js:20:18)
    at customRequire (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:1:695134)
    at get_KeyboardLayoutManager (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:14:2778162)
    at get_manager (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:14:2778264)
    at Object.getCurrentKeyboardLayout (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:14:2778390)
    at e.keystrokeForKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:14:1081110)
    at KeymapManager.keystrokeForKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:11:1253631)
    at KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:11:1251616)
    at WindowEventHandler.handleDocumentKeyEvent (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:11:284744)

Commands
     -0:19.4.0 pane:reopen-closed-item (input.hidden-input)
     -0:08.1.0 markdown-preview:toggle (input.hidden-input)

Non-Core Packages
markdown-preview-enhanced 0.18.2

Thanks for taking the time to contribute!
We noticed that this is a duplicate of https://github.com/atom/atom/issues/20222. You may want to subscribe there for updates.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.


Make graipserver signal handing omittable

WHY
WHAT
REF

Codecov Report

Merging #195 into master will not change coverage.
The diff coverage is 75%.

@@           Coverage Diff           @@
##           master     #195   +/-   ##
=======================================
  Coverage   60.91%   60.91%
=======================================
  Files          39       39
  Lines        1420     1420
=======================================
  Hits          865      865
  Misses        495      495
  Partials       60       60

Impacted Files
Coverage Δ

pkg/grapiserver/options.go
35.48% <0%> (-1.81%)
:arrow_down:

pkg/grapiserver/config.go
83.33% <100%> (+0.28%)
:arrow_up:

pkg/grapiserver/engine.go
81.69% <85%> (-0.98%)
:arrow_down:

pkg/grapiserver/gateway.go
78.57% <0%> (ø)
:arrow_up:

pkg/excmd/executor.go
86.11% <0%> (+4.16%)
:arrow_up:

Continue to review full report at Codecov.

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


[Event Hubs] Consider single place for discussion on Availability and Reliability

The conceptual docs for Partitions in Event Hubs has the below towards the end.

The links are for

A dedicated page on "Availability and Consistency"
Partition Key in the programming guide for the old Microsoft.Azure.EventHubs package which also points to the page in the previous point

Problems with this model:

The programming guide is only for .Net which does not help with our efforts to have parity between languages
When one figures this out and tries to go find the same information for other packages, they might look at the toc and click on the siblings of this page meant for other packages. But these land on the readme files for these packages that do not talk about "availability" in the same vein

Suggestions:

Move/Copy the information in the programming guide to the dedicated page for availability
Remove the link to the programming guide from https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-features#partitions
Ensure the readmes for all the 4 new packages have a note on this

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

ID: 71adf8e4-a51b-d20d-39e1-fd7551bc94b9
Version Independent ID: 3d26fbc0-b6ae-e0ca-089f-e4966c19ef22
Content: Overview of features - Azure Event Hubs - Azure Event Hubs
Content Source: articles/event-hubs/event-hubs-features.md
Service: event-hubs
GitHub Login: @spelluru
Microsoft Alias: spelluru

@ramya-rao-a  Thank you for your feedback . We will investigate and update the thread further.

@ramya-rao-a - updated the article. review it one more time with you to make any other changes needed.
#please-close

@spelluru, I no longer see any note on availability/reliabillity/consistenency at the end of the doc for conceptual docs for Partitions in Event Hubs. Was that intentional?


parcel not found when publishing

I have an ASP.NET Core 2.2 app setup with this. Everything is working when running the app. When I publish the app from VS I get this error:
'parcel' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\Wayne.nuget\packages\rudibech.parcel.aspnetcore\0.2.4\build\RudiBech.Parcel.AspNetCore.targets(22,5): Error MSB3073: The command "parcel build index.html --out-dir wwwroot" exited with code 9009.
parcel is installed in my node_modules folder and it works fine when I run from VS.
Edit:
I installed parcel globally and it works now, but it should not need both a local and global install should it?
Also the publish operation created the files in the wwwroot of the project but did not copy them to the publish/wwwroot folder.
All in all I really like what you have created here, it works pretty well and parcel is so much simpler than webpack. Let me know if you need help working on it, I think it would help a lot of developers.

Try running it from your command prompt:
parcel build index.html --out-dir wwwroot
Do you get the same error?
From: Wayne Hiller<EMAIL_ADDRESS>Sent: tirsdag 26. februar 2019 00:14
To: rudibech/parcel-aspnetcore<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [rudibech/parcel-aspnetcore] parcel not found when publishing (#4)
I have an ASP.NET Core 2.2 app setup with this. Everything is working when running the app. When I publish the app from VS I get this error:
'parcel' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\Wayne.nuget\packages\rudibech.parcel.aspnetcore\0.2.4\build\RudiBech.Parcel.AspNetCore.targets(22,5): Error MSB3073: The command "parcel build index.html --out-dir wwwroot" exited with code 9009.
parcel is installed in my node_modules folder and it works fine when I run from VS.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Frudibech%2Fparcel-aspnetcore%2Fissues%2F4&data=02|01||d0794973575f4c174f0908d69b76f94d|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636867332615523771&sdata=Bnvuoj8n%2FEX8Cq5LMq3xG7Cmdk2K%2F9hNsTY3Fm4pIiA%3D&reserved=0, or mute the threadhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABq75qT2Dgzggh8rqzK3a8uiVozBeCtVks5vRG5LgaJpZM4bQ_nD&data=02|01||d0794973575f4c174f0908d69b76f94d|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636867332615543786&sdata=%2FFnwUHW4JAE1%2Fcip4hIz28N1kwgfj4m0pJG7%2Bz81o68%3D&reserved=0.

Doesn't running parcel build index.html --out-dir wwwroot always need parcel globally installed?
To run it locally wouldn't you need to setup a script line in package.json then npm run ...?
Sorry I am not an npm/node pro.

Exactly 👍. The current implementation does require parcel to be installed globally, and I agree that this is the wrong way to do it. I predicted this question, but I was a bit curious to see how long it would take before someone pointed it out. Feel free to create a pull request for this issue.

Just need to figure out the best way to run the package locally, it would be nice to not have to rely on having to setup a scripts tag in package.json. I will do some Googling.

Using the new npx that was added in npm 5.2+ works well
<Exec Command="npx parcel build $(ParcelAspNetCoreEntryPoint) --out-dir $(ParcelAspNetCoreOutDir)" />
Now just need to figure out why the wwwroot is not copied to the publish directory.


Setup guide

Would be lovely, if the readme has a guide on how to setup/run the project locally

Yes, I agree -- not sure yet when I'll do this, but it's definitely something I should make!

Easy initial fix is to put a blank settings.php file in the root directory so that people can fill in the blanks to get most of the way there

Easy initial fix is to put a blank settings.php file in the root directory so that people can fill in the blanks to get most of the way there

How do I run the application?


[$1000]  mWeb - Composer is not visible for a while and space left between composer and keyboard when starting new chat  with new user

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:
Action Performed:

Open app
Click to Fab button > New chat
From recent select a user that not messaged before
Notice that the half of composer not visible for a second and there is a space between composer and keyboard

Expected Result:
No space between composer and keyboard And composer always visible
Actual Result:
The half of composer not visible for a second and there is a space between composer and keyboard
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[x] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.35-5
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/50d031f6-fbe4-4be4-90c7-ffbce3a40e9c
Expensify/Expensify Issue URL:
Issue reported by: @narzullome
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1688248353096759
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0168f8a5f30b16df8b
Upwork Job ID:<PHONE_NUMBER>780399616
Last Price Increase: 2023-07-05

Repro:
https://github.com/Expensify/App/assets/59587260/6e2b66ef-9e72-45b5-8469-557bc2490de0

@kadiealexander as I can see on ur video - The half of composer not visible for a second and there is a space between composer and keyboard

Ah okay, thank you for that screenshot!

I think there were multiple issues, where shows app reacting slowly to keyboard openings and having some lag. But there is nothing we can do about it. I try to look for exact issues

@alitoshmatov any updates on the exact issues?

@kadiealexander Sorry, I couldn't find exact issue. Maybe you can proceed with this. But the issue is caused by app working a bit slow at that exact moment when keyboard is opening and app layout is not able to keep up with it. I am assuming there is not much we can do.

@aimane-chnaif could you please weigh in and see if you think this is something we can fix?

hey it's Lucas from Callstack. I'm happy to start working on this issue.

Thanks for your help @lukemorawski!!

I am confused, why was I assigned here? I don't see proposals approved...

This issue was picked up by Lucas from Callstack, I assigned you to oversee the PR. If that's not how we should approach issues picked up by our vendor agencies please let me know!

Going on sabbatical, please reassign another engineer

@lukemorawski any updates on this one? :)

@kadiealexander I'm working on two urgent tickets right now. Will be back to this one tomorrow :)

can't reproduce that bug any more on main branch. Can any else confirm that?

Sorry for the delay @lukemorawski, I can't reproduce this anymore either. Closing as it's no longer reproducible, please feel free to reopen it if needed.


organize scripts folder

Closes https://github.com/fedimint/fedimint/issues/2134

Probably missed adjusting flake source filters @justinmoon

@dpc passes ci now


feat: Add log table and record all user behaviors into the table, add UI to view logs

#123
demo:http://www.killerwing.xyz:8000/
admin/123
Signed-off-by: killer<EMAIL_ADDRESS>

@Kininaru @sh1luo plz review.

Casbin License.

OK，already add

@hsluoyz  What's wrong with this PR?

@hsluoyz I have modified it.What's wrong with this PR?


Use get() method to execute the transformation

Description:

Type of change:

[ ] Bug fix.
[ ] New feature.
[ ] Documentation update.

Checklist for the reviewer:

This checklist should be used as a help for the reviewer.

[ ] Is the change limited to one issue?
[ ] Does this PR close the issue?
[ ] Is the code easy to read and understand?
[ ] Do all new feature have an accompanying new test?
[ ] Has the documentation been updated as necessary?

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

Coverage data is based on head (ed11804) compared to base (7d02f7c).
Patch coverage: 100.00% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #227   +/-   ##
=======================================
  Coverage   68.62%   68.62%
=======================================
  Files          18       18
  Lines         494      494
=======================================
  Hits          339      339
  Misses        155      155

Flag
Coverage Δ

pytest
68.62% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

app/routers/transformation.py
68.18% <100.00%> (ø)

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

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

After all, does that mean that the run-method is depreciated in the oteapi-core as well? If it is not called in the services nor the otelib anymore, the method will be quite useless.
For the sake of simplicity and consistency, I personally would approve to get rid of this method.
On the other hand, I think that the semantics behind run-ning a transformation and get-ting the result of a transformation are quite different from each other.


fastlane Integration

The flutter team launched a case of integration with fastlane. The official document has not been updated for a long time, and the content of the article on the Internet is not detailed..

The flutter team launched a case of integration with fastlane. The official document has not been updated for a long time,

@realkimmy
you mean this?

and the content of the article on the Internet is not detailed..

can you please describe what details are missing?

Yes.
flutter doctor -v
[✓] Flutter (Channel stable, 2.0.4, on macOS 11.2.3 20D91 darwin-x64, locale zh-Hans-CN)
    • Flutter version 2.0.4 at /Users/ying/flutter
    • Framework revision b1395592de (12 天前), 2021-04-01 14:25:01 -0700
    • Engine revision 2dce47073a
    • Dart version 2.12.2
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/ying/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.0

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

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 55.0.5
    • Dart plugin version 211.6693.108

[✓] VS Code (version 1.55.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 89.0.4389.114

• No issues found!

The flutter team launched a case of integration with fastlane. The official document has not been updated for a long time,

@realkimmy you mean this?

and the content of the article on the Internet is not detailed..

can you please describe what details are missing?

Yes.
flutter doctor -v

@realkimmy
assuming that "yes"  refers to the aforementioned being indeed the official document you mentioned,
with the question "what detail are missing" I did not mean your flutter doctor,
but a clarification on your claim  the content of the article on the Internet is not detailed..
what details are missing in said article?

Hi @realkimmy
Please be especific on what is missing on the documentation.

@iapicca Sorry, my fault! An example is provided in the document, which may be more friendly to developers

@iapicca Sorry, my fault! An example is provided in the document, which may be more friendly to developers

Sorry, I'm not sure what you mean. You mean the documentation needs a code sample?

@iapicca Sorry, my fault! An example is provided in the document, which may be more friendly to developers

Sorry, I'm not sure what you mean. You mean the documentation needs a code sample?
Did you got stuck while following the steps in that article?

yes

This article is expected to work for every Flutter project, you just run flutter create project_name and use that to follow the documentation. This is mentioned in the step two.

I am not an iOS or Android developer. I very much hope that the flutter team will release sample codes that support widgets (ios or android), apple watch, and app clips, instead of a few sentences in the documentation.

I very much hope that the flutter team will release sample codes that support widgets (ios & android), apple watch, and app clips, instead of a few sentences in the documentation.

@realkimmy Sorry, but I'm not sure how this is related to the initial proposal, Fastlane integration has nothing to do with widgets. If you are talking about a different part of the docs, I suggest to file a different issue.
That said, it is still not sure what you are proposing for the actual issue!

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


⚠ Bofrost.at has degraded performance

In f6cb9c5, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1476 ms

Resolved: Bofrost.at performance has improved in 277a95d.


fix(chart): fix project chart's missing sidecar value

No default value was placed in the sidecar, which cases the base64 enc
operation to fail. Added blank default value.
Closes #131

Closing in favor of #136


Added "has" function

The "has" function will return true if the setion and key provided exist, false otherwise. This is particularly usefull when integrating this with software that has mostly optional sections, or that needs to support INI level updates without altering the code.
I.E. When calling init, one may want to create sections that do not exist on the ini file but should from now one. It is easier to on a init() method somewhere check what exsits and create what does not exist.

renamed to hasKey and wrote test.


Move openshift-install & oc download to cluster steps from host prep

We should move the openshift-install download [1] from prepare host to create cluster part.
AND important, add the version to the binary. Because RHEL CoreOS Version and openshift-install versions have to match together.
[1] https://github.com/RedHat-EMEA-SSA-Team/hetzner-ocp4/blob/53ca832ab0ada909eac829dd28ee2fa4495a7c95/ansible/roles/openshift-4-cluster/tasks/prepare-host.yml#L54

Pull request merged.


Rails7 friendly require during initializers

Extracted from: https://github.com/ManageIQ/manageiq/pull/22873
These changes should be backward compatible with rails 6.1 and allows us to be rails 7 friendly by not trying to autoload during application initialization.
See also: https://guides.rubyonrails.org/v7.0/autoloading_and_reloading_constants.html#autoloading-when-the-application-boots
"While booting, applications can autoload from the autoload once paths, which are managed by the once autoloader. Please check the section config.autoload_once_paths above.
However, you cannot autoload from the autoload paths, which are managed by the main autoloader. This applies to code in config/initializers as well as application or engines initializers.
Why? Initializers only run once, when the application boots. If you reboot the server, they run again in a new process, but reloading does not reboot the server, and initializers don't run again."

@miq-bot cross-repo-tests /all


graphite requests - static http

Hi gentlemen,
We are going for a ProofOfConcept here on this and I've started working on bosun.
Since I want to utilize graphite as a backend here, I 've started reading the graphite.go code.
I see the following :
1)Uses explicitly http - need to change this in https
2)The GET request on graphite seems to include at times the hostname instead of using it (only) in the header.
Also, in here:
http://bosun.org/quickstart.html#graphite
you mention :

In your config, set
graphiteHost = http://localhost
Which is wrong because as we said in (1) , you explicitly set http, so it will go and do a GET http://http://localhost

The gist is I want to work on this and start fixing things as I go ahead implementing where I work. Normal pull requerts? I noticed that 20 days ago the chat channel went off. Do I send a join request to you @kylebrandt ?
Many Thanks
MM

@michnmi I just need your email somehow

Hey Kyle,
Thanks for the quick reply
my email is<EMAIL_ADDRESS>If you want my corporate email it's the same @oracle.com - depending on how
you want to
label people in your channel
MM
2015-03-20 15:22 GMT+00:00 Kyle Brandt<EMAIL_ADDRESS>
@michnmi https://github.com/michnmi I just need your email somehow
—
Reply to this email directly or view it on GitHub
https://github.com/bosun-monitor/bosun/issues/812#issuecomment-84048094.

Invite sent.
On Fri, Mar 20, 2015 at 11:56 AM, Michalis Michaloliakos <
<EMAIL_ADDRESS>wrote:

Hey Kyle,
Thanks for the quick reply
my email is<EMAIL_ADDRESS>If you want my corporate email it's the same @oracle.com - depending on
how
you want to
label people in your channel
MM
2015-03-20 15:22 GMT+00:00 Kyle Brandt<EMAIL_ADDRESS>
@michnmi https://github.com/michnmi I just need your email somehow
—
Reply to this email directly or view it on GitHub
<https://github.com/bosun-monitor/bosun/issues/812#issuecomment-84048094
.

—
Reply to this email directly or view it on GitHub
https://github.com/bosun-monitor/bosun/issues/812#issuecomment-84055045.

@Dieterbe Can you speak to his graphite questions?

aha yes we should make the http:// or https:// part of the graphiteHost config value. yes, please go ahead and submit a PR. thank you.

@Dieterbe  quick change pushed here : https://github.com/bosun-monitor/bosun/pull/824
CC: @kylebrandt


Would you please consider adding a license to this library?

Dear Matt,
Would you please consider adding a license to this library?
Both scrivener and scrivener_ecto are licensed under the MIT license.
Explicitly adding a license would makes it significantly easier to use your project as a dependency.
For your convenience I have structured this issue as a pull request with a sample license MIT attached. Feel free to merge if convenient. I took the license text as found in scrivener and scrivener_ecto and changed the name to be yours.
Thanks,
Sebastian

Sure, np! Thanks!


typora: Update to 1.4.8, remove 32-bit

Closes #XXXX

Relates to #XXXX
typora: Update to 1.4.8
and
remove 32-bit because there is not
and delete free version description due to https://github.com/ScoopInstaller/Extras/commit/bbaafc2ea220e8f26dacb8b104268cbcbef6a1ee#commitcomment-77092710

[x] I have read the Contributing Guide.

/verify

it looks like just a minor update/fixes for windows/linux x64 versions.

some updates to this app are only for one or certain architecture releases, but you can add arm64 support for it If you are interested.


Rename EndpointParser?

I just stumbled across this comment: https://github.com/justeat/JustEat.StatsD/blob/2c989e99cd9cfe0827d147d5b2cbbf9e35d561b0/src/JustEat.StatsD/EndpointLookups/EndpointParser.cs#L6
Should we rename this type as suggested, or just remove the comment?
At a minimum we should probably rename to EndPointParser (capital P) if we don't want to make it a factory.

My opinions on the naming aren't strong. The parsing happens on line 62:  if (IPAddress.TryParse(host, out IPAddress address)) and with the various other checks on param values.
I think it's correct that this class is more of a factory or builder of IEndPointSource instances than it is a parser (it calls TryParse on another class, it does not implement it) and the naming could be changed to match.

I'll do a PR to tweak it shortly then, once I've finished my pass of the docs for #130 that I'm half-way through.


version for scala 2.12 ?

Hi,
could you release some version for 2.12 ?
i dont see any here
https://mvnrepository.com/artifact/com.acervera.osm4scala/osm4scala-core
thx

No idea why only the 2.11 version is published in the Sonatype repo.
I will check it and I will publish the 2.13 version as well.
In the meantime, you can use the Bintray repo, as the README explains:
resolvers += "osm4scala repo" at "http://dl.bintray.com/angelcervera/maven"
libraryDependencies += "com.acervera.osm4scala" %% "osm4scala-core" % "1.0.1"

yes i did that, thx

also add 2.13
http://dl.bintray.com/angelcervera/maven/com/acervera/osm4scala/

@visox https://bintray.com/angelcervera/maven/osm4scala/1.0.3
Version 1.0.3 released for Scala 2.11, 2.12 and 2.13
Waiting for response from Sonatype to be able to sync all versions into the central repository.

https://search.maven.org/search?q=osm4scala


[question] retry with ribbon or with cloud-loadbalancer using eureka, graceful shutdown

Hello,
currently I'm creating POC with spring-cloud-gateway in version Hoxton.RC1.
I have following services in two zones (left and right for simplicity).
--gateway
----eureka
----service_a
----service_b
...

Our requirement is to preferably route all request to same zone and if some service fails then route the requests to other zone.
As I read here spring-cloud-balancer is not sufficient for retrying of requests with BODY. So I've tried to configure ribbon  for load-balancing and retry but I'm not able to configure this correctly or maybe I'm missing something. When I shut down the service retry is not executed against service in other zone.
so:

is there any chance to retry requests with request body?
is it possible to configure spring-cloud-gateway to use ribbon for load-balancing and retry?
is there any chance to use spring-cloud-loadbalancer with discovery (eureka) using zone affinity?
is there any chance to stop gateway, don't accept new requests and and wait for running requests to finish (e.g. graceful shutdown)? Is there any chance to return response from those running requests to clients if they end in shutdown time?

thanks in advance

sample project here

Closing due to age of the question. If you would like us to look at this issue, please comment and we will look at re-opening the issue.

Closing due to age of the question. If you would like us to look at this issue, please comment and we will look at re-opening the issue.

Zone-aware load-balancing has been added to SC LoadBalancer, so it can be used in gateway setup. Let me know if that solves your zone issue.
Please open separate issues for different questions (they are not really related to each other).

@OlgaMaciaszek  Is there any documentation on the configuration to enable zone-aware load balancing
spring.cloud.loadbalancer.zone = zone1


If presenter do nothing in the meeting room that time ffmpeg may exit with error & will try to reconnect again.

You can use a simple workaround for this to resolve. This is happen when no change detected on the screen. Therefor we can put small countdown/timer to make small content change on the screen, then chrome will capture screens continuously. We don't need to camera open then.
await page.evaluate(() => {
    var btn = document.createElement("div");
    btn.innerHTML = '
COUNTDOWN
';
    document.querySelector("header").appendChild(btn);
});
await page.waitFor(1000);
await page.addScriptTag({url: 'inject.js'});

Here is the code for java-script timer injected above.
function startTime() {
  var today = new Date();
  var h = today.getHours();
  var m = today.getMinutes();
  var s = today.getSeconds();
  var ms = today.getMilliseconds();
  m = checkTime(m);
  s = checkTime(s);
  document.getElementById('injected_countdown').innerHTML = h + ":" + m + ":" + s + ":" + ms;
  var t = setTimeout(startTime, 100);
}
function checkTime(i) {
  if (i < 10) {i = "0" + i};  // add zero in front of numbers < 10
  return i;
}
startTime();

Thank you! But won't it make user confused?

Oh, that might also be a good idea. I faced that problem some days ago and found a "quick-fix" by making the body alternate from 1 to 0.99 opacity, which is not noticeable.
await page.addStyleTag({content: '@keyframes refresh {0%{ opacity: 1 } 100% { opacity: 0.99 }} body { animation: refresh .01s infinite }'})

However this doesn't feel like a nice solution :sweat_smile:

@octycs thank you! Nice work around too!

Thank you! But won't it make user confused?

Since it is very small and color can be set to similar background color, it is not noticeable.

I am putting reference from readme to here as workaround. User can use according to their needs. Thank you all!


[tracking] Repeated constant found in server/handlers.go:270:28

https://github.com/RedHatInsights/insights-results-aggregator-mock/issues/131

Fixed in https://github.com/RedHatInsights/insights-results-aggregator-mock/pull/141


Problem with backpack animation

Hello Southclaws,
I found a little problem with the animation of backpack.
To reproduce:

Open backpack
Click on Inventory > option
Click on Close

The dialog closes, but the animation remains applied.
See you soon.

I think you posted this in the wrong place, there are no animations in this library.

This happens when I've tested this package so ... Or it comes from dependencie.

What animation plays? In what circumstance?


GraphQL: Cannot use non-String prompt value in query variables

Describe the bug
I'm trying to use a prompt in our query variables JSON for a numerical value (our backend expects phoneNumber to be a Long, like<PHONE_NUMBER>):
{
	"phoneNumber": {% prompt 'Phone number', '', '', '', false, true %}
}

However, this results in an error: Unexpected token % in JSON at position 19. Of course if I quote it like:
{
	"phoneNumber": "{% prompt 'Phone number', '', '', '', false, true %}"
}

It will render properly, but then the backend complains because it is a String value instead of a Long.
To Reproduce
Steps to reproduce the behavior:

Create a graphQL query or mutation which takes query variables
Add prompt into query variables without quotes around it
The error will display in the query variables section

Expected behavior
Ability to use non-String value (e.g. any valid JSON value) in prompt.
Screenshots

Desktop (please complete the following information):

MacOS 10.15.5
Installation Method: https://insomnia.rest/download/#mac
App Version: 2020.3.3

Related: https://github.com/Kong/insomnia/issues/2264

This appears to be a duplicate of https://github.com/Kong/insomnia/issues/973 which I somehow did not find in my initial search. Closing.

I meet the same issue, did it resolved?

I meet the same issue, did it resolved?

I meet the same issue, the response value is float, it's can't used in query variables.

I meet the same issue, the response value is float, it's can't used in query variables.


Version check: Ensure compatible version ranges

... across different sub-packages. No use if pkg_a uses 0.1.0 and pkg_b uses 0.2.0.

My understanding is VersionConstraint.allowsAny should handle this for me.

Some Qs:

Should this be opt-in, opt-out, or just always on?
If opt-, is this a flag per mono_repo.yaml file?
Do we care about dev_dependencies?

/cc @alorenzen @natebosch

I don't think we need to check the full cross product.
For a concrete example both _bazel_codegen and build need to be compatible, and both build_runner and build need to be compatible, but build_runner and _bazel_codegen don't necessarily need to be compatible.
Maybe something like "If pkg_a depends on pkg_b within the same repo they need to have compatible constraints for all deps"

I guess the other option is no magic, and have the configuration say:
check_version_constraints:
  "build":
    - "bazel_codegen"
    - "build_runner"

WDUT?

Would prefer some magic over no magic if we can find some heuristics that work well enough - otherwise it's another bit of config that changes rarely but could go stale.

I no longer need this.


New task form can not be submitted without logging in

I think we should either display it to anonymous users and allow to submit it or require user to login first and only then he can access this form.
Or at least add some text explaining why "Create" button is disabled.
Also md-body is required, but Create button is not disabled if it's empty.

Agreed, the current implementation is a bit weird, perhaps just redirect guests to the register/login page if they click the "New task" button?