configure storage: 'overlay' is not supported over overlayfs

When building a simple hello world program, the workflow fails with
`INFO: Pulling image: quay.io/rockylinux/rockylinux:8
ERROR: Error: configure storage: 'overlay' is not supported over overlayfs, a mount_program is required: backing file system is unsupported for this graph driver
INFO: Pulling image: quay.io/rockylinux/rockylinux:8
ERROR: Error: configure storage: 'overlay' is not supported over overlayfs, a mount_program is required: backing file system is unsupported for this graph driver
INFO: Copy content of container quay.io/rockylinux/rockylinux:8 to /var/lib/mock/rocky+epel-8-x86_64-bootstrap/root
INFO: Checking that quay.io/rockylinux/rockylinux:8 image matches host's architecture
Error: configure storage: 'overlay' is not supported over overlayfs, a mount_program is required: backing file system is unsupported for this graph driver
ERROR: Subprocess failed: Command '['/usr/bin/podman', 'version', '--format', '{{.OsArch}}']' returned non-zero exit status 125.
WARNING: Can't initialize from bootstrap image, falling back to bootstrap installation: Container image architecture check failed
INFO: Package manager dnf detected and used (fallback)
Start(bootstrap): installing dnf tooling
ERROR: Command failed:
/usr/bin/dnf-3 --installroot /var/lib/mock/rocky+epel-8-x86_64-bootstrap/root/ --releasever 8 --setopt=deltarpm=False --setopt=allow_vendor_change=yes --allowerasing --disableplugin=local --disableplugin=spacewalk --disableplugin=versionlock install python3-dnf python3-dnf-plugins-core
No matches found for the following disable plugin patterns: local, spacewalk, versionlock
Rocky Linux 8 - BaseOS                           16 MB/s | 3.6 MB     00:00
Rocky Linux 8 - AppStream                        15 MB/s | 3.5 MB     00:00
Rocky Linux 8 - PowerTools                      5.5 MB/s | 904 kB     00:00
Rocky Linux 8 - Extras                           70 kB/s |  10 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64  2.3 MB/s | 3.5 MB     00:01
Error:
Problem 1: conflicting requests

nothing provides /usr/libexec/platform-python needed by python3-dnf-4.7.0-20.el8.noarch from baseos
Problem 2: package python3-dnf-plugins-core-4.0.21-25.el8.noarch from baseos requires python3-dnf >= 4.7.0-6, but none of the providers can be installed
conflicting requests
nothing provides /usr/libexec/platform-python needed by python3-dnf-4.7.0-20.el8.noarch from baseos
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages or '--setopt=optional_metadata_types=filelists' to load additional filelists metadata)

Error: Process completed with exit`
I've tried with caching on and off but there's been no difference.  I've tried alma/rocky/centos/rhel but the pipeline still fails.

Yea, I've saw this error in some other unrelated mock builds recently. In those it was not fatal.

I'm seeing it in Oracle images but I've not been able to figure out how to quiet down the errors or speed up the pipeline as those errors cause significant slowdown.

Could be related to:
https://bugzilla.redhat.com/show_bug.cgi?id=2284167
and
https://github.com/rpm-software-management/mock/issues/1381

I've created #17 to demonstrate a significant time savings when using Mock's bleeding edge (not yet production) code that fixes this problem.
I realize there's rebases and cleanup to do but I wanted to show you the one-liner


Support adding ServiceRole without Bindings in RBAC

This is a tracking issue for the difference between the ongoing local RBAC work and the mixer based RBAC.
In Mixer based RBAC, user actually could add a ServiceRole without any bindings. For example, Let's say the user already a namespace level ServiceRole/Binding that grants access to every services for everybody. Then the user want to disable access to databaes-v2 service. They can add a standalone  ServiceRole for it but without any bindings. The semantic is that nobody is granted access to database-v2 service.
In current Local RBAC, this is not supported as a ServiceRole without binding is simply ignored.
I kind in favor to choose the local RBAC way as it have a clearer semantic: ServiceRole is just a specification of what services to enable RBAC. And ServiceRoleBinding is the actual policy that grants/revokes access to it for a user.
I'm also thinking to slightly change the ServiceRoleBinding.subject to make it not a 'Required field' so that a user can use an empty ServiceRoleBinding to achieve the same effect.
@liminw @diemtvu @quanjielin Any thoughts? Thanks!

Discussed offline, It's actually the same, The Mixer based RBAC also doesn't support a ServiceRole without any bindings.


Fix Writing CHANNEL_DATA (0) / Writing FSETSTAT

This fix [debug] Writing CHANNEL_DATA (0)  / [debug] Outgoing: Writing FSETSTAT on upload forever in servers like Cloudways and possible others.
After upgrade ssh2 package and run npm install I was able to fix this problem and others like:
https://github.com/liximomo/vscode-sftp/issues/541
https://github.com/liximomo/vscode-sftp/issues/938
https://github.com/liximomo/vscode-sftp/issues/857
https://github.com/liximomo/vscode-sftp/issues/847
https://github.com/liximomo/vscode-sftp/issues/835

didn't solve my problem which is same as   ##541


Using Code without Form

Hello,
I would love to implement this on a site I am working on but I have limited coding experience. How would I implement the demo without a form?
Thanks!

@christalv This should get you started (and I will update the documentation with this as well—thanks for bringing this up). If you still need help, please reach out to me about some custom services.
(Don't forget to include the scripts on the page.)

Visit us on Petfinder to view our list of available animals.

{{name}}

View Full Profile

← Back to Full List

{{name}}

		Age: {{age}}

		Gender: {{gender}}

		Size: {{size}}

{{description}}

	Age:
	{{checkbox.ages.toggle}}

	Size:
	{{checkbox.sizes}}

	Gender:
	{{checkbox.genders}}

	Breeds:
	{{checkbox.breeds.toggle}}

Hi Chris,
Thank you so much for getting back to me.
I tried what you sent over, and I actually had tried that same thing
before, removing the form, but it does seem to work. I have it up at
http://www.christalvass.com/hhs/.
Before you update the documentation, I think something may be missing, or
it could be that I'm missing something or not implementing it right.
Thanks so much for helping! I think the script you have created is great
and will certainly help a lot of people looking to help non profits with
their sites.
Christal Vass
On Fri, Nov 20, 2015 at 8:12 AM, Chris Ferdinandi<EMAIL_ADDRESS>wrote:

@christalv https://github.com/christalv This should get you started
(and I will update the documentation with this as well—thanks for bringing
this up). If you still need help, please reach out to me about some custom
services http://gomakethings.com.
(Don't forget to include the scripts on the page.)

Visit us on Petfinder to view our list of available animals.

{{name}}
View Full Profile

← Back to Full List

{{name}}

        Age: {{age}}
        Gender: {{gender}}
        Size: {{size}}

{{description}}

Age:
    {{checkbox.ages.toggle}}
Size:
{{checkbox.sizes}}

Gender:
{{checkbox.genders}}

Breeds:
{{checkbox.breeds.toggle}}

—
Reply to this email directly or view it on GitHub
https://github.com/cferdinandi/petfinderAPI4everybody/issues/27#issuecomment-158399080
.

Looking at your demo page, you're calling the function before you actually load the scripts that power it on the page.
Do this instead (I removed your API key from the example below):

Thank you so much! I also noticed that the sorting or filtering part of the
demo doesn't seem to work here
http://cferdinandi.github.io/petfinderAPI4everybody/, FYI
Thanks Again
Christal
On Fri, Nov 20, 2015 at 11:45 AM, Chris Ferdinandi<EMAIL_ADDRESS>
wrote:

Looking at your demo page, you're calling the function before you actually
load the scripts that power it on the page.
Do this instead (I removed your API key from the example below):

—
Reply to this email directly or view it on GitHub
https://github.com/cferdinandi/petfinderAPI4everybody/issues/27#issuecomment-158455665
.

No problem. I think that's related to this bug, which I'll be fixing soon.


No such container error

Summary
I am running rexray on several swarm nodes and on 2 from 3 nodes rexray cinder plugin switches to the disabled state.
Bug Reports
After some days the plugin enters the disable state, I then try to enable the plugin but receive this error message: Error response from daemon: dial unix /run/docker/plugins/2d51ad68e3f1b71e2d987849bb9e7834b9042d2c2c56474392ecf5e09f5c373c/rexray.sock: connect: no such file or directory
In the journalctl I see this message.
Mar 05 23:55:08 worker-node-2 dockerd[1343]: time="2018-03-05T23:55:08.861351435+01:00" level=error msg="Sending SIGTERM to plugin failed with error: no such container"
Mar 05 23:55:08 worker-node-2 dockerd[1343]: time="2018-03-05T23:55:08.862823942+01:00" level=error msg="Handler for POST /v1.36/plugins/cinder/enable returned error: dial unix /run/docker/plugins/2d51ad68e3f1b71e2d987849bb9e7834b9042d2c2c56474392ecf5e09f5c373c/rexray.soc
Mar 05 23:56:42 worker-node-2 dockerd[1343]: time="2018-03-05T23:56:42.129110650+01:00" level=error msg="Sending SIGTERM to plugin failed with error: no such container"
Mar 05 23:56:42 worker-node-2 dockerd[1343]: time="2018-03-05T23:56:42.129226460+01:00" level=error msg="Handler for POST /v1.36/plugins/cinder/enable returned error: dial unix /run/docker/plugins/2d51ad68e3f1b71e2d987849bb9e7834b9042d2c2c56474392ecf5e09f5c373c/rexray.soc
Mar 05 23:57:00 worker-node-2 dockerd[1343]: time="2018-03-05T23:57:00.561562297+01:00" level=error msg="Sending SIGTERM to plugin failed with error: no such container"
Mar 05 23:57:00 worker-node-2 dockerd[1343]: time="2018-03-05T23:57:00.563139219+01:00" level=error msg="Handler for POST /v1.36/plugins/cinder:latest/enable returned error: dial unix /run/docker/plugins/2d51ad68e3f1b71e2d987849bb9e7834b9042d2c2c56474392ecf5e09f5c373c/rex
ubuntu@worker-node-2:~$

Version
v0.11.2

>docker info
Containers: 61
 Running: 13
 Paused: 0
 Stopped: 48
Images: 58
Server Version: 18.02.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
 NodeID: 67xeri6c338s0yqfrv5hdcglq
 Is Manager: false
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
  <IP_ADDRESS>:2377
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-116-generic
Operating System: Ubuntu 16.04.3 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 28.76GiB
Name: worker-node-2
ID: B623:PAWX:LGS7:HDTP:GT5P:7VY3:4Z44:XINH:3Y4V:ACR6:JHYW:BVMK
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

>ubuntu@worker-node-2:~$ docker plugin inspect cinder:latest
[
    {
        "Config": {
            "Args": {
                "Description": "",
                "Name": "",
                "Settable": null,
                "Value": null
            },
            "Description": "REX-Ray for Cinder Persistent Disks",
            "DockerVersion": "18.02.0-ce",
            "Documentation": "https://github.com/thecodeteam/rexray/.docker/plugins/cinder",
            "Entrypoint": [
                "/rexray.sh",
                "rexray",
                "start",
                "-f",
                "--nopid"
            ],
            "Env": [
                {
                    "Description": "",
                    "Name": "DOCKER_LEGACY",
                    "Settable": [
                        "value"
                    ],
                    "Value": "true"
                },
                {
                    "Description": "",
                    "Name": "REXRAY_FSTYPE",
                    "Settable": [
                        "value"
                    ],
                    "Value": "ext4"
                },
                {
                    "Description": "",
                    "Name": "REXRAY_LOGLEVEL",
                    "Settable": [
                        "value"
                    ],
                    "Value": "warn"
                },
                {
                    "Description": "",
                    "Name": "REXRAY_PREEMPT",
                    "Settable": [
                        "value"
                    ],
                    "Value": "false"
                },
                {
                    "Description": "",
                    "Name": "HTTP_PROXY",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "LIBSTORAGE_INTEGRATION_VOLUME_OPERATIONS_MOUNT_ROOTPATH",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "LINUX_VOLUME_ROOTPATH",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "LINUX_VOLUME_FILEMODE",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_AUTHURL",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_USERID",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_USERNAME",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_PASSWORD",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_TOKENID",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_TRUSTID",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_TENANTID",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_TENANTNAME",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_DOMAINNAME",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_DOMAINID",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_REGIONNAME",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_AVAILABILITYZONENAME",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_ATTACHTIMEOUT",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_CREATETIMEOUT",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "",
                    "Name": "CINDER_DELETETIMEOUT",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "The sock file used by the CO to communicate with CSI.",
                    "Name": "CSI_ENDPOINT",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "The name of the CSI plug-in used by the CSI module.",
                    "Name": "X_CSI_DRIVER",
                    "Settable": [
                        "value"
                    ],
                    "Value": ""
                },
                {
                    "Description": "A flag that disables the CSI to libStorage bridge.",
                    "Name": "X_CSI_NATIVE",
                    "Settable": [
                        "value"
                    ],
                    "Value": "false"
                }
            ],
            "Interface": {
                "Socket": "rexray.sock",
                "Types": [
                    "docker.volumedriver/1.0"
                ]
            },
            "IpcHost": false,
            "Linux": {
                "AllowAllDevices": true,
                "Capabilities": [
                    "CAP_SYS_ADMIN"
                ],
                "Devices": null
            },
            "Mounts": [
                {
                    "Description": "",
                    "Destination": "/dev",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/dev",
                    "Type": "bind"
                }
            ],
            "Network": {
                "Type": "host"
            },
            "PidHost": false,
            "PropagatedMount": "/var/lib/rexray",
            "User": {},
            "WorkDir": "",
            "rootfs": {
                "diff_ids": [
                    "sha256:03e8d175a94f39b447258368fb643e005581878553ea1d3fa41d24c874f6b8ba"
                ],
                "type": "layers"
            }
        },
        "Enabled": false,
        "Id": "2d51ad68e3f1b71e2d987849bb9e7834b9042d2c2c56474392ecf5e09f5c373c",
        "Name": "cinder:latest",
        "PluginReference": "docker.io/rexray/cinder:latest",
        "Settings": {
            "Args": [],
            "Devices": [],
            "Env": [
                "DOCKER_LEGACY=true",
                "REXRAY_FSTYPE=ext4",
                "REXRAY_LOGLEVEL=warn",
                "REXRAY_PREEMPT=true",
                "HTTP_PROXY=",
                "LIBSTORAGE_INTEGRATION_VOLUME_OPERATIONS_MOUNT_ROOTPATH=",
                "LINUX_VOLUME_ROOTPATH=",
                "LINUX_VOLUME_FILEMODE=",
                "CINDER_AUTHURL=https://auth.cloud.ovh.net/v2.0",
                "CINDER_USERID=",
                "CINDER_USERNAME=__REDACTED__>",
                "CINDER_PASSWORD=__REDACTED__",
                "CINDER_TOKENID=",
                "CINDER_TRUSTID=",
                "CINDER_TENANTID=__REDACTED__",
                "CINDER_TENANTNAME=__REDACTED__",
                "CINDER_DOMAINNAME=None",
                "CINDER_DOMAINID=",
                "CINDER_REGIONNAME=GRA3",
                "CINDER_AVAILABILITYZONENAME=",
                "CINDER_ATTACHTIMEOUT=1m",
                "CINDER_CREATETIMEOUT=1m",
                "CINDER_DELETETIMEOUT=1m",
                "CSI_ENDPOINT=",
                "X_CSI_DRIVER=",
                "X_CSI_NATIVE=false"
            ],
            "Mounts": [
                {
                    "Description": "",
                    "Destination": "/dev",
                    "Name": "",
                    "Options": [
                        "rbind"
                    ],
                    "Settable": null,
                    "Source": "/dev",
                    "Type": "bind"
                }
            ]
        }
    }
]

Expected Behavior
The driver should not disable itself.
Actual Behavior
If restart the node the error is of course gone however this should be like this as its not possible to restart all the nodes.

Hello @Vad1mo,
It sounds like the plugin is terminating for an unexpected reason. If you look through the Docker logs you should see some information relating to this. Can you take a peak and paste that back here?


require.ensure doesn't work with DLLPlugin.

I have:
// ./webpack.config.js
const webpack = require('webpack');
const DllPlugin = webpack.DllPlugin;

module.exports = {
  entry: {
   test: [__dirname + '/test.js']
  },
  output: {
    path: __dirname + '/dist',
    filename: '[name].js',
    library: '[name]_[hash]',
    libraryTarget: 'var'
  },
  plugins: [
    new DllPlugin({
      context: __dirname,
      name: '[name]_[hash]',
      path: __dirname + '/dist/test-manifest.json'
    })
  ],
  resolve: {
    extensions: ['', '.js']
  }
};

// ./test.js
require.ensure([], function(require) {
  console.log(require('./test2'));
});

// ./test2.js
module.exports = 10;

Then I run:
$ webpack --config webpack.config.js

And webpack process terminates abruptly without any error messages
If I change test.js file to just:
  console.log(require('./test2'));

then everything will work fine
webpack 1.12.12
node: v5.4.1

@bebraw I think bug tag is much more appropriate then enhancement. And it's definitely not a question.

hmm... it does work in my test case, but I only tested it for webpack 2.
Could you try it with<EMAIL_ADDRESS>

@sokra Yes, of course. In 10 minutes I'll tell you the results.

@sokra Yes, it works for 2.0.6-beta on my computer too, but terminates for 1.12.12.

@sokra Hmm. It works with 1.12.12 on Ubuntu 14.04.3, but terminates on my mac:(

@sokra Well, I'll just try to use second version of webpack. Feel free to close this issue.

you can add the chunk* files into entry of config manually so the webPack will pack it ， and then the require ensure will work


Initiate the golang troubleshooting guide

Hi everyone, I am new here as a member I would love to contribute to the troubleshooting section. As far as robusta docs have a python & java section guide with its own respective SDK.

I wanted to know and create SDK for golang so documentation and robusta's feature will be much more enhanced. Can you provide any guidance on it how we can make it and how it's functioning on python/java SDK? I wanted to learn and enhance my skills side by sidewise. Looking forward to hearing from the community.

+1
Will try to focus on this with @Avi-Robusta in the coming week.

To clarify, I think the first priority here is improving the documentation. @Aju100 it would be wonderful if you then worked on implementing the go features with those docs. In addition to the huge benefit of go support, it would also let us make sure the docs are complete.

sure @aantn I will look out the docs issues.


Add A/B testing docs

Docs for https://github.com/mautic/mautic/pull/12275

Hi @kuzmany please make this against https://github.com/mautic/user-documentation. Thanks!


split into workspace/multiple crates

In the original composefs crate I tried to keep it to literally just Rust bindings to the core functionality; there was no concept of a global repository, garbage collection etc.
Say that a project like rauc.io or actually what ostree/bootc do today; or maybe rpm/dpkg wants to do things with composefs. I think it makes sense to keep that "core" split, because the APIs and functionality there should be 100% stable. The rest of the things here would be in e.g. a composers-storage crate or so?

I think what's missing is to define what the "things" in question are, and what the value-add would be over just shelling out to mkcomposefs, composefs-info, or mount.composefs yourself.  I kinda tend to think that it's better when a well-defined CLI is the API, without the need to add a wrapping layer that may or may not be what the person consuming it wants to use.
Aside from those wrappers (which I'd really prefer not to expose as APIs), I'm not sure what the "core" of this repository is, if not the "storage" part.
This is another reason that I'm struggling with the parser side of the dumpfile code from the original crate.  I'm not sure why it would make sense to have that unless we're looking to implement our own version of mkcomposefs (which is not planned for the time being).  If you have a dumpfile and you want to create a composefs out of it, then you don't need us to help you.  That's literally mkcomposefs.

This is another reason that I'm struggling with the parser side of the dumpfile code from the original crate. I'm not sure why it would make sense to have that unless we're looking to implement our own version of mkcomposefs

Ah, I think that's rooted in the other disagreement. The primary use case here is parsing the output of composers-info dump (i.e. vs splitstream as source of truth). The secondary use case is accepting untrusted dump files for a system service to run mkcomposefs + mount.composefs so we can do composefs unprivileged.

I don't consider splitstream to be a source of truth in any way.  It's strictly an implementation detail, and doesn't ever appear "on the wire", and definitely doesn't need to be specified in any way.  The source of truth is the layer tarball.  Splitstream is just a space-saving way to store it which also happens to have very nice performance characteristics for building images.

Not really.  Would we parse the dumpfile just to print it out again when running mkcomposefs?

For the "mkcomposefs from untrusted input" indeed that's what I'd like to do because it adds a whole layer of defense before passing potentially malicious input to C code that until recently had never seen fuzzing.
But the other case of parsing composers-info dump into an in-memory filesystem metadata tree, we need a Rust parser right?

(Just inserting myself here to note that I've written a bunch of rust parsers in the past using nom, if that's something you'd be interested in me knocking out for the dump file format let me know)

In this case we're talking about the existing parser code in https://github.com/containers/composefs/commit/7432e8c4b5b27129684332f25e52d8cb06240755#diff-f8019245093e26a2f17e5b661cb9040f56327a3a29ac9fe79a3b4c5a5eb7050b that was dropped and I think has use cases, not writing new code currently.

I still don't believe that composefs-info dump makes sense at all here.  I'd actually have an easier time accepting tarfile-turned-into-dumpfile itself as an intermediate format and save us the roundtrip through composefs.  But even this, I'd still consider to be inferior to the current code which is capable of reproducing the original tar stream bit-for-bit.  In fact, I'm not even sure what creating an image would look like in that case, since the first thing we do is to verify that the entire image matches the sha256 checksum we're expecting (which involves checking the sha256 of the layers, which we'd need to be able to reliably reproduce).

and the desire to be able to re-push content.

(And if they do have that desire, for projects that chose not-tar they may already have a "normal form" that they expect to use anyways; e.g. ostree is very much designed to have such a normal form; though there's different complexities in trying to have a composefs blob as source-of-truth for ostree, but that's tangential)

composefs-rs is doing that as well, except via parsing the (very simple) output of composefs-info objects.

Yeah, that's a fair point. But then what I'd still say is I think we should have an API that is like get_composefs_objects(f: AsFd) -> Result<HashSet<Sha256>> or so right? That's "core functionality" as distinct from code that operates on an object directory.
That said it'd make total sense to me to have an struct ObjectsDirectory that is a thin abstraction over objects/<digest> etc and can may have a high level function like fn gc(&self, roots: HashSet<Sha256>) or so.
That leaves the higher level Repository and OCI type stuff in a distinct composers-storage crate or so that would have way more dependencies (e.g. I think the core crate probably shouldn't pull in tokio necessarily) and functionality.

In the very short term it's fine, we can basically publish mostly as is after some cleanups, there's no one that I know of using the previous crate version; this is more about setting expectations for more medium term direction.

The one thing that I think absolutely makes sense to split out is the oci functionality.  It's been kept in a separate subdirectory and it could (and should) be its own crate.  Then we'd implement cfsctl as a separate crate that depends on composefs and composefs-oci.
The example you give — tokio — is a dependency only of the oci stuff, and only because the containers-image-proxy is async.  There's a tonne more examples like that.

Yeah, that's a fair point. But then what I'd still say is I think we should have an API that is like get_composefs_objects(f: AsFd) -> Result<HashSet> or so right? That's "core functionality" as distinct from code that operates on an object directory.

I still disagree about the usefulness of these kinds of APIs.  This is basically a very thin wrapper on top of composefs-info objects.  You can write that for yourself in a dozen or so lines of code and it might be that the decisions we make about how to format that output (return HashSet instead of call a callback, parsed Sha256 instead of hex digest string, or even split out xx/yyyy format strings, etc) are not the ones that the eventual users of the API would want.
In short: if people want these core "composefs" functionalities, they should just use the composefs CLI as an API.  That's what it's there for.

I have a working branch locally that split the repository up into composefs, composefs-oci, cfsctl crates, but we decided not to do that for the time being.
composefs 0.2.0 was published today, as-is (everything in a single crate).


[Feature Request] Support same_allocation for API under implementation with ?Size type

Hi team,
I am trying to use the same_allocation API to verify whether two pointers refer to the same object allocation. However, for the API under the implementation impl<T: ?Sized> NonNull<T>, it seems this API is not permitted. Below is the relevant code snippet:
// Function Contracts (under the implementation of impl<T: ?Sized> NonNull<T>)
    #[must_use]
    #[inline(always)]
    #[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
    #[rustc_allow_const_fn_unstable(set_ptr_value)]
    #[stable(feature = "non_null_convenience", since = "1.80.0")]
    #[rustc_const_stable(feature = "non_null_convenience", since = "1.80.0")]
    #[requires(kani::mem::same_allocation(self.as_ptr(), self.as_ptr().wrapping_offset(count)))]
    #[ensures(
        |result: &NonNull<T>|
        (result.as_ptr() as *const () as usize) == ((self.as_ptr() as *const () as usize) + count)
    )]
    pub const unsafe fn byte_add(self, count: usize) -> Self {
        // SAFETY: the caller must uphold the safety contract for `add` and `byte_add` has the same
        // safety contract.
        // Additionally safety contract of `add` guarantees that the resulting pointer is pointing
        // to an allocation, there can't be an allocation at null, thus it's safe to construct
        // `NonNull`.
        unsafe { NonNull { pointer: self.pointer.byte_add(count) } }
    }

// Proof Harness
    #[kani::proof_for_contract(NonNull::byte_add)]
    pub fn non_null_byte_add_proof() {
        const ARR_SIZE: usize = 100000;
        let arr: [i32; ARR_SIZE] = kani::any();
        let offset = kani::any_where(|x| *x <= ARR_SIZE);
        let raw_ptr: *mut i32 = arr.as_ptr() as *mut i32;
        let ptr = unsafe { NonNull::new(raw_ptr.add(offset)).unwrap() };
        let count: usize = kani::any();

        kani::assume(count < usize::MAX);
        kani::assume(count.checked_mul(mem::size_of::<i32>()).is_some());
        kani::assume(count * mem::size_of::<i32>() <= (isize::MAX as usize));
        // kani::assume(count < ARR_SIZE - offset);

        unsafe {
            let result = ptr.byte_add(count);
        }
    }

This issue is originally discussed in https://github.com/model-checking/verify-rust-std/discussions/141

Hi @danielhumanmod, thanks for creating this issue. We should definitely extend the API to accept non-sized pointers. In the meantime, you should be able to retrieve the thin pointer and use that instead. You can use let (thin, _) = pointer::to_raw_parts().


Thread safety fix

Some of my friends noticed that the game was considerably less stable when AEIOUCompany was installed. I've managed to collect a lot of logs that end when someone sends a message in text chat and the mod plays back the sound for it:
[Info   :AEIOUCompany] Queueing speak
[Info   :AEIOUCompany] Speak
[Info   :AEIOUCompany] Found player
[Info   :AEIOUCompany] Found AEIOUSpeakObject
[Info   :AEIOUCompany] Sending: msg=hot damn]
[Info   :AEIOUCompany] END
[Info   :AEIOUCompany] Setting up clip
[Info   :AEIOUCompany] Playing audio: AEIOUSpeakObject (UnityEngine.AudioSource)1

I took a look at the code and noticed that the Task that is spawned to communicate with SpeakServer also interacts with the engine's audio system, which I understand to not be thread-safe. I suspect the reason a Task is used is to make the game not freeze due to slow communication with SpeakServer.
This PR changes how this works to instead wait for the Task to end and then prepare and play back the sound on the main thread. This appears to have improved stability, friends have played an hour-long session without issue.

Glad someone was able to figure this out, my friends and I were experiencing the same issue but we couldn't figure out the actual cause, just that it was aeioucompany crashing.

Any word on this getting merged?  I've been using a build of the mod from this PR for a few weeks with friends, and it has completely fixed the crashes.  Having the fix in a published release would make using the mod in new packs/sharing modpacks with friends less tedious due to not having to manually replace aeioucompany with a fixed version.

+1 to getting this merged, I've experienced this crash and also submitted logs to Bibendi. Would love to see this get fixed!

hot damn


Room Info opens on population change

Issue
When looking at Area Info while population changes in any area, the room panel will switch over to the Room Info page.

Resolved in PR #152


Getting past score of 9,999,990 causes overflow

Some insane person actually got to the maximum score possible here. Once they reached the maximum score allowed in SM3, it caused a classic overflow. To the best of my knowedge, the original game only lets you reach 9,999,990 and doesn't overflow.
I attempted to fix this myself by adding a simple check after line 75 and 84 in lower.c that would set the score back to 9,999,990 if the new score was bigger than that.
if(game.score > 9999990) {     game.score = 9999990;  }
Although this fixed the overflow bug, it broke the traveling through pipes animation so Oiram suddenly started teleporting between pipes rather than going through them. I don't understand how messing with the score broke the pipes, could this please be explained?

 I suppose it makes sense to keep it.


expose itemsize and nbytes as for numpy arrays

see:

https://numpy.org/doc/stable/reference/generated/numpy.ndarray.nbytes.html
https://numpy.org/doc/stable/reference/generated/numpy.ndarray.itemsize.html

relates to https://github.com/ml-explore/mlx-examples/pull/174
Proposed changes
Please include a description of the problem or feature this PR is addressing. If there is a corresponding issue, include the issue #.
Checklist
Put an x in the boxes that apply.

[x] I have read the CONTRIBUTING document
[x] I have run pre-commit run --all-files to format my code / installed pre-commit prior to committing changes
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have updated the necessary documentation (if needed)

follow up of https://github.com/ml-explore/mlx-examples/pull/174#discussion_r1436103276 (relates to https://github.com/ml-explore/mlx-examples/pull/174)


[Python] module 'pyarrow.fs' has no attribute 'GcsFileSystem'

Platform: Linux using pip
Steps to reproduce:

pip install google-cloud-storage pyarrow==14.0.1
Run following code:

from pyarrow import fs
gcs = fs.GcsFileSystem()

This is following the official docs here: https://arrow.apache.org/docs/python/filesystems.html#google-cloud-storage-file-system
Component(s)
Python

Apologies for the lack of reply (cleaning up some old issues now).
The GCS filesystem should have been available since pyarrow 9.0 (and also in Linux wheels, for Windows wheels only since 13.0 (https://github.com/apache/arrow/issues/35193))
So one reason I can think of that for some reason you are importing another / older version of pyarrow (you could check that with pa.__version__)


Allow new-sdr for action cable

Why was this change made?
allow WS on prod
How was this change tested?
Which documentation and/or configurations were updated?

@justinlittman I think it is, because this was deployed to prod.


Handling of optional sets if elements in serializations

*Is your feature request related to a problem? Please describe.
see https://github.com/admin-shell-io/aas-test-engines/issues/13#issuecomment-2044698045 @mjacoby
„the JSON schema says an Environment must have at least 1 conceptDescription. However, the AAS specification (Section 5.3.9, page 81) says it can have zero or more elements.
At first glance, this seems like a bug. However, I could find the following sentence in a README on Github
Optional attributes, i.e., the attributes with the cardinality 0..1, are modeled as [non-required properties].
This indicates, that in JSON the property conceptDescriptions should not be present at all if empty and if present must be non-empty. This would mean that the provided JSON is actually invalid.
However, I would argue that this sentence is not part of the specification itself and therefore not normative.
The correct way would be either to put this sentence in the specification or changes the JSON schema to reflect what is written in the spec, i.e. allow the property to be empty.“

See also https://github.com/admin-shell-io/aas-specs/issues/412

In Annex D of IDTA-3-0, Page 134, it is stated:
“0..1" means optional. "0.." or "0..3" etc. means that the list may be either not available (null object) or empty.

2024-05-15 TF AAS Part 1
yes, this is the expected behavior, no bug

see also https://github.com/admin-shell-io/aas-specs/issues/411: similar to Part 2 we may combine optional and empty but this then needs to be explicitly specified

solved in IDTA-01001-3-0-1: https://industrialdigitaltwin.org/wp-content/uploads/2024/06/IDTA-01001-3-0-1_SpecificationAssetAdministrationShell_Part1_Metamodel.pdf


Show a list of nearby chargers with the lowest charging cost

It would be great if EVMap could show a list of nearby chargers that also shows the charging cost. That list should find nearby chargers and get the cheapest charging tariff for each charger.
For price calculation the already existing charging cost settings should be used. Tariffs should be limited to those configured as owned by the user ("My charging plans").
Possible settings for that list:

Search radius
Selection of a filter (same filters as on the map)
Sort order (either by price or by distance)

I think that list should show 5-10 chargers. Or maybe also make that available as a setting.
This would require a new page, similar to the list of favorites, but with additional information fields for:

Price
Charging tariff
Charging duration and/or average charging power

Optional enhancements to this feature:

Maybe the already existing list of nearby chargers on the home screen of Android Auto/Automotive could be extended with the price information? At least with the charging price, if there is not enough space for everything. (But I think there should still be a seperate page on Android Auto/Automotive with the full list of informations, just like on the phone.)
This could optionally be combined with #143 to show the cheapest chargers along the route or at the destination.

The Chargeprice API currently only allows us to get prices for one charger at a time. This means searching for the cheapest chargers in a given area would require a lot of parallel requests, which would make it quite slow.
Also, as our current agreement with Chargeprice on the pricing of their API has a certain limit on the number of requests per month, I would rather avoid a feature like this which has the potential to increase the request volume drastically.
So, such a feature would first need to be implemented by Chargeprice natively (e.g. an API endpoint which takes a list of charger IDs and a list of plans and returns the cheapest rate at each charger) before we can add it to EVMap. @hoenic07, have you already thought about adding something like this?

I think listing chargers in terms of size makes more sense.
A venn-diagram is the easiest, but not the best.
If the radius to the cheapest charger is always shown as a direct line to ones position, it can be selected easily and then
provide a route.
Cheaper chargers are shown within what is cost-effective distance, and those more expensive discarded.
In my head it is then easier to gauge how much more costly it is to use  a charger that is closer.
The driving one does to get to where a more costly distance radius to a charging point starts is effectively distance
the user has to incur.
It could thus also be that the distance radius points in the opposite direction from the user.
Since it is easy to see what the closest points are, sorting them optically based on how effectively far away the start of their radius line is makes sense?
A list of only sensible chargers under the given conditions could be preloaded in the app maybe?
For actual distance driven it would have to take into account one-way streets, bodies of water and other barriers.

@comradekingu TBH I have a hard time figuring out what exactly you want added to my feature request.

What do you mean with "listing chargers in terms of size"? What is the "size" of a charger?
Is the distance to a charger really that important in a list of "nearby" chargers? Unless the radius setting allows very large values (which I doubt, because of the Chargeprice API limits) the distance difference will be very small.
Ordering chargers by distance (instead of by price) might be a good option. But ordering by price should also be available. I've added this to the issue description.
What do you mean by preloading chargers? How should they be preloaded, and how does this help?
I don't think calculating the actual driving distance to a charger is in scope of EVMap. That whould require routing functionality.

How often do these prices change? I think for me it would be ok to use slightly older data.
Would it be viable to have the app report the price back to an EVMap-server, each time someone clicks the current price comparison button?
This would build a slightly out-of-date version of the Chargeprice-API database and calculate an average price for each charger and tarif.
The "Find cheapest nearby charger"-function could download this list (when opened the first time per day) and show the list of chargers that are typically the cheapest.
One can then decide to click on the charger and get the current price the old way.
This might even reduce API calls as someone like me would not click on the price button for all five chargers around me. (And then click them again, because I forgot how much the first one was costing .... I hope the app does some local caching.)
Actually, it might also be enough to have the best price displayed on the map, only for those chargers where the user did check the price.
Sorry if that suggestion about an EVMap-server is out of scope, I am not familiar with how the app actually works. I was simply using it and thought "Hey, wouldn't it be great to be able to list the chargers by price?"
Btw, I think it is the best app for finding a charger that I have found and tried so far. :)

Would it be viable to have the app report the price back to an EVMap-server, each time someone clicks the current price comparison button?

The prices can depend on a lot of parameters, such as the selected vehicle (charging curve), connector, state of charge (e.g. 20-80%), time of day, etc., so caching the responses for a specific set of parameters (locally or on a server) wouldn't help much.
I already asked the Chargeprice folks a whether they could provide details about all price components + charging curve data in their API response - because if we would cache these, the price could be calculated locally even when the parameters change. But they didn't seem interested in that (fair enough, this data is their USP and they don't want to hand it out too easily).

Of course, the total price of the charging session (which is what Chargeprice calculates) varies by how much energy you want to charge, which is determined by the starting and ending SoC that you input into the app.
In case the pricing is not just per kWh but also has a time-based component or a blocking fee, the cost of course also depends on the charging curve, because that determines how long charging will take.

Oh, sorry, I assumed that Chargeprice only shows the current price per kWh. I thought you were saying that this CURRENT price changes based on what kind of car charges.
I do understand that the total cost depends on the total delivered energy, which depends on the SoC, charge curve and charge duration.
Sorry ... looks like I had a very weird knot in my brain.
To maybe save it a little bit:
So, Chargeprice reports the average price per kWh for a specific amount of energy and approximate duration.
Sure, the charging curve is an unknown, but I think giving an estimate based on these averages might still be enough to help indicate which charger tends to be cheaper, no?
That would still be helpful information to have on the map, when one tries to quickly decide which charger to drive to.
But I do understand that this wouldn't be fully reliable and therefor maybe should not be implemented.
Personally, I think it would be good enough to get the correct advice more often than not.


New Things

Hello,
a Question ..

is this possible to see over the Discord Webhook the Player Join/Part from the Server?
Auto Update if it gives a new update than post a message on the Server and Discord and Update it with a time cooldown
different Discord channel for Post the new Version in Discord
Console Window include in the Programm Window?

is this possibel to update the Tool for that? It was very nice

Hello Tuvok18,
Thank you for reaching out and sharing your ideas! Unfortunately, I no longer have enough free time to actively work on this project. However, feel free to fork the project and implement these features.
Best of luck to you.


On MacOSX, os.arch=aarch64 should use arm64 variant of jf

Closes issue #17
My macmini (arm64) isn't capable of running the i386 variant of the binary, but is capable of running the mac-arm64 variant. This seems to be a problem with the Amazon Corretto Java 11 JDK installed.

Not sure why this commit is failing the GitHub CI build, but also the current head of jenkinsci:main seems to be broken as well.

@enaess
Thanks for this contribution.
Could you please create this pull request in the https://github.com/jfrog/jenkins-jfrog-plugin repository?

@yahavi I am sorry, but I am trying....


Getting the number of vectors in a bruteforce index

Hi
Is there any way to get the number of elements currently in a bruteforce index (not the maximum elements).
Something similar to get_current_count() that works for bf index also?

Hi @regstuff ,
It is not implemented, though it is pretty straightforward to add. If you have time, a PR will be appreciated.
Maybe @dyashuni can also help.


Upgrade to Python programming model v2

Purpose
This PR updates this sample to use the new Python programming model.
Does this introduce a breaking change?

[ ] Yes
[X] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[X] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Follow README instructions for running locally
Run azd up and verify routes respond

@shreyabatra4 Please review


Not working on M1 Mac

Seems like a reasonable platform to support.
Interested in this because I can't find a way to use pre-commit with actionlint and shellcheck.
[INFO] Initializing environment for https://github.com/Mateusz-Grzelinski/actionlint-py.
[INFO] Installing environment for https://github.com/Mateusz-Grzelinski/actionlint-py.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/bin/python', '-mpip', 'install', '.')
return code: 1
stdout:
    Processing /Users/bart/.cache/pre-commit/repo0xe4ef3u
      Preparing metadata (setup.py): started
      Preparing metadata (setup.py): finished with status 'done'
    Building wheels for collected packages: actionlint-py
      Building wheel for actionlint-py (setup.py): started
      Building wheel for actionlint-py (setup.py): finished with status 'error'
      Running setup.py clean for actionlint-py
    Failed to build actionlint-py
stderr:
      error: subprocess-exited-with-error

      × python setup.py bdist_wheel did not run successfully.
      │ exit code: 1
      ╰─> [63 lines of output]
          /Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/config/setupcfg.py:293: _DeprecatedConfig: Deprecated config in `setup.cfg`
          !!

                  ********************************************************************************
                  The license_file parameter is deprecated, use license_files instead.

                  By 2023-Oct-30, you need to update your project and remove deprecated calls
                  or your builds will no longer be supported.

                  See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
                  ********************************************************************************

          !!
            parsed = self.parsers.get(option_name, lambda x: x)(value)
          running bdist_wheel
          running build
          running build_py
          creating build
          creating build/lib
          copying setup_auto_update.py -> build/lib
          running fetch_binaries
          Traceback (most recent call last):
            File "<string>", line 2, in <module>
            File "<pip-setuptools-caller>", line 34, in <module>
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/setup.py", line 166, in <module>
              setup(version=f'{ACTIONLINT_VERSION}.{PY_VERSION}', cmdclass=command_overrides)
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
              return distutils.core.setup(**attrs)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
              return run_commands(dist)
                     ^^^^^^^^^^^^^^^^^^
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
              dist.run_commands()
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
              self.run_command(cmd)
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/dist.py", line 1234, in run_command
              super().run_command(command)
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
              cmd_obj.run()
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 343, in run
              self.run_command("build")
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
              self.distribution.run_command(command)
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/dist.py", line 1234, in run_command
              super().run_command(command)
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
              cmd_obj.run()
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 131, in run
              self.run_command(cmd_name)
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
              self.distribution.run_command(command)
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/dist.py", line 1234, in run_command
              super().run_command(command)
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/py_env-python3.11/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
              cmd_obj.run()
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/setup.py", line 112, in run
              url, sha256 = get_download_url()
                            ^^^^^^^^^^^^^^^^^^
            File "/Users/bart/.cache/pre-commit/repo0xe4ef3u/setup.py", line 39, in get_download_url
              postfix = POSTFIX_SHA256[(sys.platform, platform.machine())]
                        ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          KeyError: ('darwin', 'arm64')
          [end of output]

      note: This error originates from a subprocess, and is likely not a problem with pip.
      ERROR: Failed building wheel for actionlint-py
    ERROR: Could not build wheels for actionlint-py, which is required to install pyproject.toml-based projects
Check the log at /Users/bart/.cache/pre-commit/pre-commit.log

please check if this ends with success - I do not have any way to test mac arm
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ actionlint-py==<IP_ADDRESS>.dev.2

@Mateusz-Grzelinski
% pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ actionlint-py==<IP_ADDRESS>.dev.2
zsh: command not found: pip
bart@Barts-MacBook-Air maplibre-native % pip3 install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ actionlint-py==<IP_ADDRESS>.dev.2
Looking in indexes: https://test.pypi.org/simple/, https://pypi.org/simple/
Collecting actionlint-py==<IP_ADDRESS>.dev.2
  Downloading https://test-files.pythonhosted.org/packages/6a/28/62da31dc0acc92808eff6a8c2c2b62a354e71adba9f8a138b10ea6c1925f/actionlint_py-<IP_ADDRESS>.dev2.tar.gz (9.4 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: actionlint-py
  Building wheel for actionlint-py (pyproject.toml) ... done
  Created wheel for actionlint-py: filename=actionlint_py-<IP_ADDRESS>.dev2-py2.py3-none-macosx_13_0_arm64.whl size=1749406 sha256=d6f7c53683f0a0bab939f277f007b20acfff0408288c4790b6f1b6850b45af89
  Stored in directory: /Users/bart/Library/Caches/pip/wheels/4f/e0/32/952fd3ec325d10403ac835dfc38d94f88874af7637bcab1a2c
Successfully built actionlint-py
Installing collected packages: actionlint-py
Successfully installed actionlint-py-<IP_ADDRESS>.dev2

Looks good. I just hope the executable is correct

new version will work for you
pip install actionlint-py==<IP_ADDRESS>

or just
 pre-commit autoupdate

that was very stupid mistake of mine. Try version v<IP_ADDRESS>

I just read your first comment: xd

I can't find a way to use pre-commit with actionlint and shellcheck

Normally you would need to install actionlint and shellcheck in your system and then use repo local and language: system to run executable directly.
- repo: local
  hooks:
    - id: action
      name: Local Actionlint
      entry: actionlint
      language: system
      types: [ "yaml" ]
      files: "^.github/workflows/"

@Mateusz-Grzelinski I don't want to use local because then different contributors will have different versions installed, leading to hard to debug conflicts. Also, that does not work with pre-commit.ci, which we use.
Let me try v<IP_ADDRESS>

Works.
Thanks!


Regex future warning

Fix FutureWarning complaining  about the change of default behavior w.r.t. to str.replace and regexes.

Duh, got bit again by leaving master as the default base for this pull request.

Duh, got bit again by leaving master as the default base for this pull request.

Hey thanks for updating these. It looks like the build failed because it was coming from your personal fork rather than the pudl repo.

Hey thanks for updating these. It looks like the build failed because it was coming from your personal fork rather than the pudl repo.


RuntimeError: Cannot connect sqlite3 database: unable to open database file

To get started, I just ran the example code. Unfortunately I get a RuntimeError. Did anyone get the same error or has an idea to solve it?
Thanks in advance!
============================CODE OUTPUT========================================
2021-04-15 08:37:31.183727: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2021-04-15 08:37:31.184042: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
Traceback (most recent call last):
  File "demo.py", line 55, in <module>
    experiment_owner="model_search_user")
  File "C:\...\model_search\model_search\single_trainer.py", line 65, in try_models
    metadata=None)
  File "C:\...t\model_search\model_search\phoenix.py", line 240, in __init__
    study_owner)
  File "C:\...\model_search\model_search\metadata\ml_metadata_db.py", line 105, in __init__
    self._store = metadata_store.MetadataStore(self._connection_config)
  File "C:\...7\AppData\Local\Programs\Python\Python37\lib\site-packages\ml_metadata\metadata_store\metadata_store.py", line 92, in __init__
    config.SerializeToString(), migration_options.SerializeToString())
RuntimeError: Cannot connect sqlite3 database: unable to open database file

EDIT1: Formating
EDIT2: Changed VENV from python 3.7 to python 3.8 but didn't solve the problem

This one worked for me:

I found the problem and solved it.
I made directory name like "c:/tmp/filedb-352355"
352355 is random value from 0 to 1000000. (We can find this code in ml_metadata_db.py line 102)
Running started... I wish this tips is helpful.
Originally posted by @KevinRyu in https://github.com/google/model_search/issues/31#issuecomment-790503282

This with
# Addresses UnrecognizedFlagError: Unknown command line flag 'f'`
sys.argv = sys.argv[:1]
app.run calls sys.exit
try:
app.run(lambda argv: None)
except:
pass`
solved it for me! Thanks @aprikyan !!


Bazel building capability

Build targets:
//:lin
//test:all

I'm going to close this PR and open it on the PAN version of the repo instead.


Fix Flannel network default value as per RFC1918

Q
A

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Fixed tickets
fixes #497

Related issues/PRs
supersedes #516

License
Apache 2.0

CLA signed
yes

What's in this PR?
Fixes the default value of the vSphere flannel network to <IP_ADDRESS>/16, which is within the private "20-bit block" according to RFC1918.
I assume the <IP_ADDRESS>/16 was solely a typo.

/lgtm


Is there a way to get this to work with APC Customize UI++?

Since Monkey Patch no longer works, there is a new replacement for CustomizeUI (APC Customize UI++).
Does that make it possible for this to work somehow?

Hi @videopilot! I’m not able to maintain this anymore. If someone else wants to take over maintenance I would be happy to add them as a collaborator. Hopefully it won’t be too difficult to get working again!


fix: upgraded deps, simplified codebase and fixed logic for watch/notify/patch

What's changed:

Updated and upgraded all dependencies.
Simplified the watch, notify, patch and assets workflows that make it less error-prone, react to changes correctly and it's compatible with the latest notify library.
Watcher now reacts correctly to the files' changes while running workflows, it will interrupt the workflow and rerun it to keep up with the changes.

The failed CI may not be related to this PR. It happened after merging the main.

Works well now that dist is updated


Describe the bug
When I am trying to make a production build version I am getting this error.

**To Reproduce**
Steps to reproduce the behavior:

Install and setup project
npm i
npm run build
See error in terminal

Expected behavior
A build for production will be generated. so that i can deploy to server.
Screenshots

Desktop (please complete the following information):

OS: WINDOWS
Browser CHROME

framer-motion changed the margin is type
about link: https://github.com/framer/motion/pull/2445/files

Good spot @HydenLiu.
To get this working I added the following to my blur-fade.tsx file:
type MarginValue = `${number}${'px' | '%'}`
type MarginType =
    MarginValue |
    `${MarginValue} ${MarginValue}` |
    `${MarginValue} ${MarginValue} ${MarginValue}` |
    `${MarginValue} ${MarginValue} ${MarginValue} ${MarginValue}`

And changed the BlurFadeProps interface to now have:
inViewMargin?: MarginType;

Good spot @HydenLiu.
To get this working I added the following to my blur-fade.tsx file:
type MarginValue = `${number}${'px' | '%'}`
type MarginType =
    MarginValue |
    `${MarginValue} ${MarginValue}` |
    `${MarginValue} ${MarginValue} ${MarginValue}` |
    `${MarginValue} ${MarginValue} ${MarginValue} ${MarginValue}`

And changed the BlurFadeProps interface to now have:
inViewMargin?: MarginType;

Yeah, you can use this too @liammc44
import { UseInViewOptions } from "framer-motion";

inViewMargin?: UseInViewOptions["margin"];

Thanks @HydenLiu!


path.Dir and filepath.Dir don't seem to work with Windows paths

Bug reproduction examples:
http://play.golang.org/p/2vJu8wTbr3
fmt.Println(path.Dir(`D:\MyDocuments\3799\Defected House - 8.1.3+.zip`))
fmt.Println(filepath.Dir(`D:\MyDocuments\3799\Defected House.zip`))

Both return . as the directory.  Can it be because I cross compiled my binary?

path package is not for the physical paths. please use path/filepath instead of path.
And you seems to not use UNC path in the comment. AFAIK, UNC path is like \\server\sharefolder\path\to\file.txt. On my environment, filepath seems to work fine with UNC path on my windows.
package main

import (
	"fmt"
	"path/filepath"
)

func main() {
	fmt.Println(filepath.Dir(`\\server\sharefolder\path\to\file.txt`))
	// \\server\sharefolder\path\to

	fmt.Println(filepath.Dir(`//server/sharefolder/path/to/file.txt`))
	// //server/sharefolder/path/to
}

Apologies, I fixed the bug title. I'm using Windows paths, not UNC paths. It would seem that the test cases that are Windows specific would fail on other OS: https://golang.org/src/path/filepath/path_test.go#L98
In case someone runs into the same issue, I fixed the problem locally by not using filepath.Join and using strings.Join(pathItems, "/") since the version of Windows I'm targeting properly handles these paths.

If you want slashed-paths, you can use filepath.ToSlash(filepath.Join(dir, file)).

Closing because there doesn't seem to be a bug here.
The path/filepath package does the right thing for the GOOS value.

@ianlancetaylor with GOOS=windows, filepath.Dir(D:\MyDocuments\3799\Defected House.zip) still doesn't work. I'm not sure how that's not a bug. I would even say that even on Linux, if I parse files containing Windows path, the behavior should work (might be a stretch tho).

Your program works just fine on windows:

C:\dev\src\a>type foo.go
package main

import (
        "fmt"
        "path/filepath"
)

func main() {
        fmt.Println(filepath.Dir(`D:\MyDocuments\3799\Defected House.zip`))
}

C:\dev\src\a>go run foo.go
D:\MyDocuments\3799

C:\dev\src\a>

path/filepath works differently on different OS, just like it says in the documentation:
Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths.

Alex

Fair enough, so it looks like the issue is that I cross compiled my program from a Mac and executed it on Windows. I guess this might be a bit problematic, I was under the impression that cross compiling would build an binary with identical behaviors as if it was build on the target platform. I guess I misunderstood, thanks

This should absolutely work. Can you please post your cross compilation
setup, flag, and everything else, plus the final binary you got.
On Tue, Dec 1, 2015 at 3:11 PM, Matt Aimonetti<EMAIL_ADDRESS>wrote:

Fair enough, so it looks like the issue is that I cross compiled my
program from a Mac and executed it on Windows. I guess this might be a bit
problematic, I was under the impression that cross compiling would build an
binary with identical behaviors as if it was build on the target platform.
I guess I misunderstood, thanks
—
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/13437#issuecomment-160847445.

Absolutely, let me create a small reduction example

Just like @davecheney said. It should not matter where you build your program. What matter is where your program runs. You can build the program above on Mac or Linux or Plan9, but if you run it on Windows, it will display same output.
Alex

The crucial parts of this bug report are

which version of go
where did you get it from
which flags did you you use to cross compile

Thanks
Dave
On Tue, Dec 1, 2015 at 3:18 PM, Matt Aimonetti<EMAIL_ADDRESS>wrote:

Absolutely, let me create a small reduction example
—
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/13437#issuecomment-160848924.

Oh, and can you please make the test binary print the following
fmt.Println(runtime.GOOS, runtime.GOARCH, runtime.GOROOT())
On Tue, Dec 1, 2015 at 3:21 PM, Dave Cheney<EMAIL_ADDRESS>wrote:

The crucial parts of this bug report are

which version of go
where did you get it from
which flags did you you use to cross compile

Thanks
Dave
On Tue, Dec 1, 2015 at 3:18 PM, Matt Aimonetti<EMAIL_ADDRESS>wrote:

Absolutely, let me create a small reduction example
—
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/13437#issuecomment-160848924.

I feel very embarrassed, @mattn was totally right in his first comment, the issue was that in my own code, I was using path.Dir instead of filepath.Dir which didn't behave as expected. I was then testing on linux and OS X and didn't re-crosscompile to test until right now.
I'm extremely sorry to have wasted everybody's time but I'll take this opportunity to mention that I'm very thankful to all of you for being so kind and helpful.

Not a problem. If there was a bug introduced in cross compilation then we'd
want to know about it, this is never a waste of time.
On Tue, Dec 1, 2015 at 3:28 PM, Matt Aimonetti<EMAIL_ADDRESS>wrote:

I feel very embarrassed, @mattn https://github.com/mattn was totally
right in his first comment, the issue was that in my own code, I was using
path.Dir instead of filepath.Dir which didn't behave as expected. I was
then testing on linux and OS X and didn't re-crosscompile to test until
right now.
I'm extremely sorry to have wasted everybody's time but I'll take this
opportunity to mention that I'm very thankful to all of you for being so
kind and helpful.
—
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/13437#issuecomment-160850148.


Store alarm value in sqlite database, for sqlite-backed DOs

Implements the setting of the alarm value in the sqlite database, when setAlarm()/getAlarm() methods are called.
Also implements armAlarmHandler() and cancelDeferredDelete() internally, in a manner similar to ActorCache, rather than calling out to the hook functions.  Currently, only the setAlarm() hook function is used, and just to request notification from the AlarmScheduler.
Still need to implement proper sequencing of alarm update vs. commitCallback, but wanted to see if the general approach is OK.

I've reworked the state tracking to rely on alarm db queries for the local state, which is probably less bug-prone.  I've also implemented the sequencing of alarm scheduling updates vs. database commits.
The things that I know still need to be implemented:

need to fix/test deleteAll interaction.
can remove unused hook methods, simplify workerd alarm manager
possibly need tighter check in armAlarmHandler()
probably should populate lastConfirmedScheduledAlarm from alarm manager on startup
need to support alarm rescheduling when alarm is early
eventually, need to handle alarm cleanup when deleting alarm that is the only thing in the db?
on the edgeworker side, hook up alarm scheduling, implement retries, add test coverage.

Sorry for needing to ask this, but do you know what I can click on to only see what's changed since the first round of review?
In the options I see, the top "Compare" link appears to be a rebase on master, the bottom "Compare" link appears empty, and 8b607ac appears to be a mixture of old changes with new changes.

Hmm... these two fixups couldn't be all the changes, though.

Ahh, there were more fixup-ish commits before the rebase-on-master... I think this is the whole set:
https://github.com/cloudflare/workerd/compare/17c964ac6340f6d877c5aebc79a723c2794195db..e7d6809862baa17f3a6b36ac99593da62d5fa19b

TBH it seems like things changed enough in actor-sqlite.c++ to re-review it from scratch. sqlite-metadata didn't change AFAICT.

Ugh...  Sorry, I'd pushed a version of my branch with WIP changes and thought it was OK because the github UI was still showing the commits post-rebase, but I guess it removes them after a little while.  Here's a diff between the state the branch was in when last reviewed (branch jlee/srs-alarms-wip1) and the state after adding my WIP changes but before rebasing (branch jlee/srs-alarms-wip2):
https://github.com/cloudflare/workerd/compare/jlee/srs-alarms-wip1...jlee/srs-alarms-wip2
The current state of the PR is the rebased result plus a couple minor fixes.
(I'm not sure how helpful the interim commits are, as quite a lot changed, particularly in the last commit, but I tried to isolate the more mechanical changes.)

Thanks for the context on what's changed! I don't know how github hasn't made iterative reviews just work by now, it's clearly not impossible given that third party services like reviewable.io are able to manage it.

Speaking of GitHub code review being bad, it appears the UI has decided to hide three comments from my recent review, because I mean, you don't really need to see all the comments, right? /s

I doubt you'd miss it @jclee but I've definitely had cases in the past where people have totally skimmed over this box and never saw the comments within, so heads up!

Thanks for the feedback so far! I think I've addressed the known issues on the workerd side -- please let me know if further changes would help.
I'm still working on adding alarm scheduling retries and some more testing on the edgeworker side.
I still need to rebase this PR to resolve a conflict in #includes, but can wait if it's going to complicate review on github.  I'm also not sure if the current granularity of commits will be useful post-merge, so I was thinking of mostly merging the ActorSqlite alarms implementation together in one commit.  Is that OK?

I still need to rebase this PR to resolve a conflict in #includes, but can wait if it's going to complicate review on github

Mind waiting until I get through the latest batch of commits? I'm reading through them now. (Thanks for separating them out, by the way)

I was thinking of mostly merging the ActorSqlite alarms implementation together in one commit. Is that OK?

SGTM

While iterating on the PR, I noticed that the comparison I was doing for the "if scheduled alarm is earlier, reschedule later" logic was backward in both the implementation and tests :( ... fixed in 6111915a .
I'm now going to rebase to resolve the #include conflict and squash the ActorSqlite changes together.  Pre-rebase diff: https://github.com/cloudflare/workerd/compare/jlee/srs-alarms-wip3...jlee/srs-alarms-wip4?expand=1


Changing the settings for the lightbulb code action menu

In relation to slack conversation
fixes https://github.com/microsoft/vscode/issues/200538

ll looks good to me. We can merge the PR if @alexdima and @justschen like the direction

Added the review changes


Updates

@zzuga @adamf321
Take a look when you have a moment.

Should we update the name of ln_endpoints_query_args filter to match what we do for the data filter (ie include the name of the endpoint in the filter name instead of passing it as an arg).

Ok Sounds good I'm going to update.
Thanks.

@adamf321 @zzuga let me know if you have any comments before this.

Updated!

@adamf321 @zzuga
Please take a look when you have a chance.

@adamf321 @zzuga Please take a look once you have a chance.
Thanks


"plug-ins must be installed in subdirectories"

First, thank you for your hard work bringing this plugin to Gimp.
I followed the installation guide and got it to work. But after restarting my computer, ML no longer shows up in the menu, and when I start Gimp from the terminal I get the following messages:
Skipping potential plug-in '/home/username/gimpenv3/lib/python3.10/site-packages/gimpml/plugins/init.py': plug-ins must be installed in subdirectories.
Skipping potential plug-in '/home/username/gimpenv3/lib/python3.10/site-packages/gimpml/plugins/plugin_utils.py': plug-ins must be installed in subdirectories.
Any ideas what that means and how to fix it?
OS: Manjaro Linux
Gimp 2.99.12

I had the same issue. Resolved after downgrading to Gimp version 2.99.6. Download links as follow
Windows users can use this link for GIMP installation: https://download.gimp.org/gimp/v2.99/windows/gimp-2.99.6-setup.exe

Thank you :-) I'll give that a try.

I downgraded to 2.99.6 on windows.  It did not get rid of this error, but it added new errors. GIMP-ML appears in the Layer menu, but running any part of it causes an error that says "inference failed" and says to look at a log file that doesn't exist.
I tried both with and without gpu set on.
This is the output I get:
This is a development version of GIMP.  Debug messages may appear here.
GIMP-Warning: Bad interpreter referenced in interpreter file C:\Program Files\GIMP 2.99\lib\gimp\2.99\interpreters\gimp-script-fu-interpreter.interp: C:\Program Files\GIMP 2.99\bin\gimp-script-fu-interpreter-3.0.exe
GIMP-Warning: Bad interpreter referenced in interpreter file C:\Program Files\GIMP 2.99\lib\gimp\2.99\interpreters\gimp-script-fu-interpreter.interp: C:\Program Files\GIMP 2.99\bin\gimp-script-fu-interpreter-3.0.exe
GIMP-Warning: Bad interpreter referenced in interpreter file C:\Program Files\GIMP 2.99\lib\gimp\2.99\interpreters\gimp-script-fu-interpreter.interp: C:\Program Files\GIMP 2.99\bin\gimp-script-fu-interpreter-3.0.exe
GIMP-Warning: Bad interpreter referenced in interpreter file C:\Program Files\GIMP 2.99\lib\gimp\2.99\interpreters\gimp-script-fu-interpreter.interp: C:\Program Files\GIMP 2.99\bin\gimp-script-fu-interpreter-3.0.exe
GIMP-Warning: Bad binary format string in interpreter file C:\Program Files\GIMP 2.99\lib\gimp\2.99\interpreters\gimp-script-fu-interpreter.interp
set device 'System Aggregated Pointer' to mode: disabled
Skipping potential plug-in 'C:\local\gimpenv3\lib\site-packages\gimpml\plugins\plugin_utils.py': plug-ins must be installed in subdirectories.
Skipping potential plug-in 'C:\local\gimpenv3\lib\site-packages\gimpml\plugins_init_.py': plug-ins must be installed in subdirectories.
GIMP-Error: Unable to run plug-in "goat-exercise-gjs.js"
(C:\Program Files\GIMP 2.99\lib\gimp\2.99\extensions\org.gimp.extension.goat-exercises\goat-exercise-gjs.js)
Failed to execute child process (No such file or directory)

This problem is related to changes in Gimp 2.99
Basically you just follow the pattern below for each plugin .py file. I got them to install once I made the changes but do be careful about tabs/spaces as python is picky.
def do_query_procedures(self):
self.set_translation_domain(
"gimp30-python", Gio.file_new_for_path(Gimp.locale_directory())
)
return ["superresolution"]
To this:
def do_query_procedures(self):
return ["superresolution"]
def do_set_i18n(self, procname):
return True, 'gimp30-python', None

I did all that, every call still failed.

This problem is related to changes in Gimp 2.99
Basically you just follow the pattern below for each plugin .py file. I got them to install once I made the changes but do be careful about tabs/spaces as python is picky.
def do_query_procedures(self): self.set_translation_domain( "gimp30-python", Gio.file_new_for_path(Gimp.locale_directory()) ) return ["superresolution"]
To this:
def do_query_procedures(self): return ["superresolution"]
def do_set_i18n(self, procname): return True, 'gimp30-python', None

This worked for me.
...there are two places the plugins will appear:
~/gimpenv3/lib/python3.10/site-packages/gimpml/plugins
and
~/GIMP-ML/gimpml/plugins
The error disappeared and GIMP-ML was added to the layout menu after I made the changes to ~/gimpenv3/lib/python3.10/site-packages/gimpml/plugins path.

This problem is related to changes in Gimp 2.99
Basically you just follow the pattern below for each plugin .py file. I got them to install once I made the changes but do be careful about tabs/spaces as python is picky.
def do_query_procedures(self): self.set_translation_domain( "gimp30-python", Gio.file_new_for_path(Gimp.locale_directory()) ) return ["superresolution"]
To this:
def do_query_procedures(self): return ["superresolution"]
def do_set_i18n(self, procname): return True, 'gimp30-python', None

Thanks a lot!
Worked for me


Use diagnostic.get instead of the deprecated lsp.diagnostic.get_count

lsp.diagnostic.get_count is deprecated in neovim v0.6.1, and the warning message is super annoying. This cleans that up, and simplifies the code as a bonus :)

Thanks i am back

Thanks i am back

The community missed you so much @glepnir! Happy to see you back


Possible useCollectionData() and useDocumentData()

I have found the collectionData() from rxfire to be super useful.
Currently, your hooks return a snapshot.  While I don't find that very useful others might.  So what if we added a new useCollectionData(query, idField='id') to the api.
Here is an example of how I wrap the useCollection from this library.
export const useCollectionData = (query, idField = 'id') => {
  const { error, loading, value } = useCollection(query)

  const docs = []
  if (!loading) {
    value.forEach(snap => {
      docs.push({
        ...snap.data(),
        [idField]: snap.id,
      })
    })
  }

  return [docs, loading, error]
}

There are two things to notice.  The first is that I return a collection of documents NOT a snapshot.  The second is that I return an array just like useState() from React.  I find this very helpful when using multiple useCollections() with a Component.
The same feature could be added to the useDocument() hooks as well.

@nmaves Thanks for the suggestion.  This makes a lot of sense, particularly given that we have something very similar already for the Realtime Database with useObjectVal, useListKeys and useListVals.
I've almost finished useCollectionData and useDocumentData, just need to do a bit of testing, but will update here when they're ready to release.
On the subject of the return of an array vs an object, there's a bit of conversation about this on https://github.com/CSFrequency/react-firebase-hooks/issues/5, but no conclusion yet about which is the best way forward.  I'd welcome your input on that topic.

useCollectionData and useDocumentData have been added as part of the v1.2.0 release: https://github.com/CSFrequency/react-firebase-hooks/releases/tag/v1.2.0
Discussions on the array return can continue on #5 .

Hey Chris,
Sorry I have not been around to give this a try.
One thing I would have changed was the order of these params.
export default <T>(
  query?: firestore.Query | null,
  options?: firestore.SnapshotListenOptions,
  idField?: string
)

I would have put the idField second as it is way more common to use with this function than the ListenOptions.

Also, I don't think it would be a bad thing to return an empty [] as the default state for useCollectionData.

@chrisbianca the more I think about it and use the hooks I really think we should use a default value for the idField.  It is so common to need the document id I would just default it for everyone to use.  I do like the idea from the other issue to combine the options into one object.  Thoughts?

@nmaves Thanks for your comments.
As per my comments on #5, I do think combining both optional parameters into a single optional object is a cleaner approach that gets around this problem, and will get this changed in v2.
With regards to the default value for document ID - I'd like to follow what rxFire have done which is to leave it as an optional field with no default.  Using a default of say id would cause issues for those people that already add an id field to their document data, so you'd be forcing them to have to specify a fieldName that didn't clash even though they wouldn't be using it.
I'm unsure on the empty [] as well - are you suggesting this be the default state when no reference is supplied?  My concern is that it's then hard to differentiate between an empty data set, or no data set at all.

It is not a huge deal in my application as I have already wrapped these hooks with my own to always provide the array syntax (🎉 coming in V2).  So this is also where I provide the default fieldName value of id.
As for the [] being the default state for a useCollectionData() I prefer this to undefined as we no longer have access to the snapshot with these data methods.
Normally you would do something like this to check for empty results.
var query = citiesRef.where('capital', '==', true).get()
  .then(snapshot => {
    if (snapshot.empty) {
      console.log('No matching documents.');
      return;
    }

    snapshot.forEach(doc => {
      console.log(doc.id, '=>', doc.data());
    });
  })
  .catch(err => {
    console.log('Error getting documents', err);
  });

Now that we are hiding that if there are no results I would expect an empty array.
So there are 3 states, loading, empty, and results.
The more I think about this I realized that I wanted this in places that I chose not to check the loading state.  I have code like const [people] = useCollectionData(query) and I call .map on that collection without checks.  Lazy I know.  I think I am now on the fence about this.  I could go either way.


Add migration tools.

Adds a whole suite of one-off migration tools to cover updating the most common legacy code.

This should be ready to merge.

https://github.com/CleverRaven/Cataclysm-DDA/pull/39332

Mistyped the commit message. I replaced ident with id.


[home-assistant] don't restrict to rsa ssh key type

Description of the change
Don't restrict to rsa ssh key type for home-assistant
Benefits
Not much.
Possible drawbacks
Not much either.
Applicable issues
I prefer ed25519.
Additional information
I could've used RSA for this TBH but I decided to make a PR since I have a big heart.
Checklist

[x] Chart version bumped in Chart.yaml according to semver.
[x] Title of the PR starts with chart name (e.g. [home-assistant])
[x] (optional) Chart is using our common library as a dependency.
[x] (optional) Variables are documented in the README.md

I'm actually curious if this is needed, won't you be able to update the mount path in the code addon to point to id_edsa?
https://github.com/onedr0p/home-cluster/blob/cae2e6d704fd0bfee4c56b5174abc86b585aa602/cluster/home/home-assistant/helm-release.yaml#L96

Probably yes. This secret name just feels weird when my using rsa. Maybe it
would be best to name it something that does not imply the key type and
make a breaking change.

I am closing this as we discussed it really comes down to the name of the key. I don't know if we want to roll a breaking change to update it tbh.

Fine by me. Could it be documented somewhere that the key created is named id_rsa? I had to dig into the templates to find that information.

Also just for correctness, it is not a breaking change since the default keyType is rsa so the key is still named id_rsa unless you specify keyType to be something else.


Unable to use gonpy.WriterFromStream

WriterFromStream is not available to me when I try to compile and run this
f, _ := os.Create(fileName + ".npy.gz")
defer helpers.Close(f)
g := gzip.NewWriter(f)
w, _ := gonpy.WriterFromStream(g)
w.Shape = []int{}

Ah never mind the Readme is wrong and out of date.
It should be
gonpy.NewWriter

Thanks, I have updated the README.


Connecting to Plex Media Server

Hi
Trying to connect to Plex but it keeps hanging on ''Connecting to Plex Media Server''
Can't make a handshake. did I miss something?

Refer to #41.

Fixed thank you


[SR-7881] Adding availability annotations to subclasses fails with Xcode 10

Previous ID
SR-7881

Radar
rdar://problem/40853731

Original Reporter
matej (JIRA User)

Type
Bug

Status
Closed

Resolution
Done

Attachment: Download

Environment
Xcode Version 10.0 beta (10L176w),

Additional Detail from JIRA

Votes
1

Component/s
Compiler

Labels
Bug

Assignee
@slavapestov

Priority
Medium

md5: 3d0ac330e3e9cfb5907bb8e18b2ae5f1

Issue Description:
Adding `@available(iOS 11.0, *)` to a subclass of a system class causes the following compiler error: declaration cannot be more available than enclosing scope.
This can be reproduced by creating a new Swift project in Xcode and adding the following code.
```
@available(iOS 11.0, *)
class AltNavigationControler: UINavigationController {
}
```
See attached example project.
Can be worked around temporarily with the following compiler flags: -Xfrontend -disable-availability-checking

I just saw the same error on Xcode 14.3 beta (14E5197f)

@JunyuKuang Please provide a test case if you’d like to report a bug.


Latest update failure make[3]: *** [/build/kernel/Kbuild:181: module_symvers_sanity_check] Error 1

Describe the bug
Error during a system update
...
..
.
./NVIDIA_Changelog
./libnvidia-opticalflow.so.435.21
./libglxserver_nvidia.so.435.21
source root is .
setting SOURCE_DATE_EPOCH to timestamp<PHONE_NUMBER> of file ./nvidia-bug-report.sh
patching sources
configuring
no configure script, doing nothing
building
Building linux driver against kernel: /nix/store/wjclfa70y2dcavx9pwg3ndqs2vk36iya-linux-5.4.1-dev
make[1]: Entering directory '/nix/store/wjclfa70y2dcavx9pwg3ndqs2vk36iya-linux-5.4.1-dev/lib/modules/5.4.1/source'
make[2]: Entering directory '/nix/store/wjclfa70y2dcavx9pwg3ndqs2vk36iya-linux-5.4.1-dev/lib/modules/5.4.1/build'
The Module.symvers file is missing, or does not contain any
symbols exported from the kernel. This could cause the NVIDIA
kernel modules to be built against a configuration that does
not accurately reflect the actual target kernel.
The Module.symvers file check can be disabled by setting the
environment variable IGNORE_MISSING_MODULE_SYMVERS to 1.
make[3]: *** [/build/kernel/Kbuild:181: module_symvers_sanity_check] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [/nix/store/wjclfa70y2dcavx9pwg3ndqs2vk36iya-linux-5.4.1-dev/lib/modules/5.4.1/source/Makefile:1652: /build/kernel] Error 2
make[2]: Leaving directory '/nix/store/wjclfa70y2dcavx9pwg3ndqs2vk36iya-linux-5.4.1-dev/lib/modules/5.4.1/build'
make[1]: *** [Makefile:179: sub-make] Error 2
make[1]: Leaving directory '/nix/store/wjclfa70y2dcavx9pwg3ndqs2vk36iya-linux-5.4.1-dev/lib/modules/5.4.1/source'
make: *** [Makefile:81: modules] Error 2
builder for '/nix/store/5j3phdwbhnz0f0l2792vz8wwkmbmkj62-nvidia-x11-435.21-5.4.1.drv' failed with exit code 2
cannot build derivation '/nix/store/a10qw36064d997832046hndfrrskjv2q-etc.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/jg6w62mzax2lys4dnmr8drwnj9agzjph-kernel-modules.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/6c1b2xbmxmvdns76ib29n2vrg66qqlmd-linux-5.4.1-modules.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/dsppakl77dg850pz0bxs8pj5apv25sf3-system-path.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/wb3g21zzhscp39xmpxr6hx0bxlafimvh-nixos-system-lenovo-nixos-19.09.1471.d387c2dd552.drv': 1 dependencies couldn't be built
error: build of '/nix/store/wb3g21zzhscp39xmpxr6hx0bxlafimvh-nixos-system-lenovo-nixos-19.09.1471.d387c2dd552.drv' failed

A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

nix-channel --update ; nixos-rebuild switch

Expected behavior
Update the NixOs
Additional context
Normal update no changes to configuration.nix
Metadata
 - system: `"x86_64-linux"`
 - host os: `Linux 5.3.13, NixOS, 19.09.1457.dae3575cee5 (Loris)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3`
 - channels(root): `"home-manager, nixos-19.09.1471.d387c2dd552, unstable-20.03pre203904.bb1013511e1"`
 - channels(mudrii): `"home-manager, unstable-20.03pre196836.1c40ee6fc44"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Please run nix run nixpkgs.nix-info -c nix-info -m and paste the result.

The issue it seems related to compiling Nvdia 435.21 under Linux Kernel latest 5.4.1

Not sure if we are supposed to be reverting the kernel bump. I pushed the driver update for now.

@veprbl Can we expect soon the fix for the nvidia drv for new kernel?

@mudrii
The channel should will update once the tests [1] finish running. I see now, there is only one test left currently, so it should be very soon.
[1] https://hydra.nixos.org/eval/1558090#tabs-unfinished

@mudrii
Can you try now?

@veprbl Thank you, just sync up and update and all woked fine


mu4e: workspace restriction doesn't apply to mu4e links

What did you expect to happen?
I call =mu4e, which opens mu4e in the *mu4e* buffer. When I call org-capture on an email, I get an org entry with a mu4e link to the email. When I click that link, I expect the email to open in the *mu4e* workspace.
What actually happened?
When I click the mu4e link, the email opens in the current window rather than in the *mu4e* workspace. This also moves the whole mu4e instance to this window. When I press q to exit the email, I get the root mu4e interface and the *mu4e* workspace is gone.
Steps to reproduce:

M-x =mu4e
Open your inbox, maybe with bt.
Capture an email with SPC X or M-x org-capture.
Save the entry.
Open a new workspace, open your todo.org file.
Click the captured email link.

System information:

SYSTEM  type       gnu/linux
        config     x86_64-pc-linux-gnu
        shell      /run/current-system/sw/bin/fish
        uname      Linux 5.4.67 #1-NixOS SMP Wed Sep 23 10:40:47 UTC 2020 x86_64
        path       (~/.netlify/helper/bin ~/.config/emacs/bin ~/.go/bin ~/.cargo/bin ~/.npm/bin ~/bin /run/wrappers/bin ~/.nix-profile/bin /etc/profiles/per-user/$USER/bin /nix/var/nix/profiles/default/bin /run/current-system/sw/bin /nix/store/192g2szhzzw5hi0ph3487sm2f3ci1cca-emacs-gcc-20200924.0/libexec/emacs/28.0.50/x86_64-pc-linux-gnu/)
EMACS   dir        ~/dotfiles/emacs/.config/emacs/
        version    28.0.50
        build      Sep 26, 2020
        buildopts  --prefix=/nix/store/192g2szhzzw5hi0ph3487sm2f3ci1cca-emacs-gcc-20200924.0 --disable-build-details --with-modules --with-x-toolkit=gtk3 --with-xft --with-cairo --with-nativecomp CFLAGS=-DMAC_OS_X_VERSION_MAX_ALLOWED=101200
        features   XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES NATIVE_COMP THREADS LIBSYSTEMD JSON PDUMPER
        traits     (server-running envvar-file)
DOOM    dir        ~/dotfiles/emacs/.config/doom/
        version    2.0.9
        build      HEAD -> mu4e-gmail-flag, origin/develop, origin/HEAD, develop 1456108d5 2020-09-10 18:03:32 -0400
        elc-files  0
        modules    (:input chinese :desktop (&user window-manager) :completion (company +childframe) (ivy +childframe +prescient +icons) :ui doom doom-dashboard hl-todo hydra ophints (popup +defaults) ligatures treemacs unicode vc-gutter window-select workspaces :editor (evil +everywhere) file-templates fold (format +onsave) multiple-cursors :emacs (dired +icons +ranger) electric (undo +tree) vc :term vterm :checkers (syntax +childframe) (spell +aspell +everywhere) :tools direnv editorconfig (eval +overlay) lookup lsp (magit +forge) make pdf terraform :lang (cc +lsp) data emacs-lisp (go +lsp) json (javascript +lsp) kotlin (latex +lsp) lua markdown nix (org +dragndrop +pomodoro) php (python +lsp) racket rest (rust +lsp) (sh +fish +lsp) (swift +lsp) (web +lsp) yaml :email mu4e :app calendar :config (default +bindings +smartparens))
        packages   ((tree-sitter :recipe (:host github :repo ubolonton/emacs-tree-sitter :files (lisp/*.el src Cargo.toml Cargo.lock))) (tree-sitter-langs :recipe (:host github :repo ubolonton/emacs-tree-sitter :files (langs/*.el langs/queries))) (emojify) (theme-changer :pin 61945695a30d678e6a5d47cbe7c8aff59a8c30ea) (ewal) (ewal-doom-themes) (graphql-mode) (polymode) (poly-markdown) (poly-org) (literate-calc-mode) (string-inflection) (evil-owl) (flycheck-inline :recipe (:host github :repo loafofpiecrust/flycheck-inline :branch moving-point)) (flycheck-posframe :disable t) (flycheck-popup-tip :disable t) (org-msg :disable t) (mu4e-alert) (mu4e-send-delay :recipe (:host github :repo cacology/mu4e-send-delay)) (olivetti) (org-ref) (citeproc-org) (transmission :disable t) (exwm-edit :recipe (:no-native-compile t)) (desktop-environment) (mini-modeline) (anzu) (evil-anzu) (mini-frame :disable t) (mount-mode :recipe (:host github :repo zellerin/mount-mode)) (ivy-posframe :recipe (:no-native-compile t)) (ivy-avy) (org-cv :recipe (:host gitlab :repo Titan-C/org-cv)) (fcitx :disable t) (bitwarden :recipe (:host github :repo seanfarley/emacs-bitwarden)) (zoom) (vterm :recipe (:no-native-compile t)))
        unpin      (n/a)
        elpa       (vterm use-package ivy-fuz ivy fuz bind-key)

Unfortunately, there is no trivial way to get a link in Emacs to generally "open in another workspace", and I also do not use mu4e so I cannot work on this. I'll take this help wanted and hope someone savvier with mu4e can fix it.

A workaround I'm using meanwhile:
  (defun mu4e-org-overwrite-main-view ()
    (use-local-map (copy-keymap mu4e-headers-mode-map))
    (local-set-key [remap mu4e~headers-quit-buffer]
                   (cmd! (cl-letf (((symbol-function 'mu4e~main-view) #'ignore))
                           (mu4e~headers-quit-buffer)))))

  (defun mu4e-org-open-without-main-view (link)
    ;; Stop mu4e from overwriting our org link handlers
    (cl-letf (((symbol-function 'org-link-set-parameters) #'ignore))
        (require 'mu4e))

    (let ((mu4e-headers-mode-hook (copy-seq mu4e-headers-mode-hook)))
      (add-hook 'mu4e-headers-mode-hook #'mu4e-org-overwrite-main-view)
      (mu4e-org-open link)))

  (org-link-set-parameters "mu4e"
                           :follow #'mu4e-org-open-without-main-view
                           :store #'mu4e-org-store-link)


Switch to npm5

Fixes #88
This pull request simply adds the package-lock.json that is used by npm5

@brylie Is anything else needed for make this use npm5 or does this do everything?


⚠ Quirk Club Argentina (Payment Gateway) has degraded performance

In ebeb107, Quirk Club Argentina (Payment Gateway) (https://us-central1-quirkclub-dev.cloudfunctions.net/api/check/payment-gateway-ml) experienced degraded performance:

HTTP code: 200
Response time: 6934 ms

Resolved: Quirk Club Argentina (Payment Gateway) performance has improved in c6df0b6.