Persistent Volume - cannot write file content but can create directories and empty files

Describe the bug
I used this guide https://github.com/ceph/ceph-csi/blob/devel/docs/static-pvc.md#create-cephfs-static-pv to set up a static PV and relative claims with

ceph fs subvolumegroup create xxxx-shared-fs atomicsGroup
ceph fs subvolume create  xxxx-shared-fs  atomicsRepository atomicsGroup --size=50073741824

then I created PV and PVC as following
apiVersion: v1
kind: PersistentVolume
metadata:
  name: atomic-cloner-volume
spec:
  storageClassName: rook-cephfs
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 5Gi
  csi:
    driver: rook-ceph.cephfs.csi.ceph.com
    nodeStageSecretRef:
      # node stage secret name
      name: csi-cephfs-secret
      # node stage secret namespace where above secret is created
      namespace: rook-ceph
    volumeAttributes:
      # Required options from storageclass parameters need to be added in volumeAttributes
      "clusterID": "rook-ceph"
      "fsName": " xxxx-shared-fs"
      "staticVolume": "true"
      "rootPath": /volumes/atomicsGroup/atomicsRepository/51cc4962-c416-45a3-9791-c134546af60a
    # volumeHandle can be anything, need not to be same
    # as PV name or volume name. keeping same for brevity
    volumeHandle: atomic-cloner-volume
  persistentVolumeReclaimPolicy: Retain

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: atomic-cloner-volume-claim
  namespace: shared-services
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi
  storageClassName: rook-cephfs
  volumeMode: Filesystem
  # volumeName should be same as PV name
  volumeName: atomic-cloner-volume

last step is to attach the volume to a pod.
claim bounded and inside the POD I'm able to create file with touch and to create subfolders with mkdir in the volume, but I got permission deny if I try to write something inside a file or to copy and existent one. delete on file and directory works.
am I missing something or it's a bug?
Environment details

Kernel version : 6.1.0-12-amd64
Mounter used for mounting PVC (for cephFS its fuse or kernel. for rbd its
krbd or rbd-nbd) : fuse
Kubernetes cluster version : Kubernetes 1.28.2-do.0
Ceph cluster version : ceph version 18.2.0 (5dd24139a1eada541a3bc16b6941c5dde975e26d) reef (stable)

Expected behavior
to be able to write also content in files.

Because this is affecting a pre-existing volume, I wonder if the permissions of that volume are somehow set incorrectly.
You could inspect the uid/gid of the processes inside the container, and the uid/gid/permissions of the contents on the mountpoint by kubectl exec'ing into the running container. Possibly the MDS or OSD logs have more details about the reason of the permissions denied too.
Could you verify that everything works as expected with a dynamically created volume?

Thanks for reply.
I confirm that all works good with the dynamically created volumes.
this is are info about the mount point (I mounted the volume in /var/www)
root@apache-3-569dcf469b-pssjt:/var/www# mount -l | grep www
<IP_ADDRESS>:6789,<IP_ADDRESS>:6789,<IP_ADDRESS>:6789:/volumes/atomicsGroup/atomicsRepository/51cc4962-c416-45a3-9791-c134546af60a on /var/www type ceph (rw,relatime,name=csi-cephfs-provisioner,secret=<hidden>
,fsid=00000000-0000-0000-0000-000000000000,acl,mds_namespace=nemesis-shared-fs)

and permissions (note that all directories and files are created by root user of this containter)
root@apache-3-569dcf469b-pssjt:/var/www# ls -la
total 8
drwxrwsr-x 4 root ubuntu    3 Jan  4 10:51 .
drwxr-xr-x 1 root root   4096 Dec 11 16:04 ..
drwxr-sr-x 2 root ubuntu    0 Jan  4 10:46 apache
-rw-r--r-- 1 root ubuntu    0 Jan  3 08:13 bootstrap.log
drwxr-sr-x 2 root ubuntu    4 Jan  3 09:11 test

I also took a look in OSD and MDS containers logs meanwhile I create/delete/copy files in the static volume and cant see anything can point me in the right direction.

Not sure what the issue could be, it looks a little weird...
There is an uncommon thing, which is the s-bit in the group permissions of the directories (even on the . directory). This bit causes some sticky behavior regarding permissions, which always confuses me how things are supposed to work.
Can you create a new directory (or re-use test), and change the permissions to rwx (like chmod ug=rwx test). Can you create a file with contents in the directory afterwards?

I did it
root@apache-3-569dcf469b-pssjt:/var/www# chmod ug=rwx test
root@apache-3-569dcf469b-pssjt:/var/www# ls -la
total 8
drwxrwsr-x 5 root ubuntu    4 Jan  4 11:00 .
drwxr-xr-x 1 root root   4096 Dec 11 16:04 ..
drwsrwsrwt 2 root ubuntu    1 Jan  4 11:13 apache
drwxr-sr-x 2 root ubuntu    0 Jan  4 13:00 atomics
-rw-r--r-- 1 root ubuntu    0 Jan  3 08:13 bootstrap.log
drwxrwsr-x 2 root ubuntu    4 Jan  3 09:11 test
root@apache-3-569dcf469b-pssjt:/var/www# cd test/
root@apache-3-569dcf469b-pssjt:/var/www/test# cp /var/log/bootstrap.log .
cp: error writing './bootstrap.log': Operation not permitted

I also created a new directory
root@apache-3-569dcf469b-pssjt:/var/www# mkdir test_2
root@apache-3-569dcf469b-pssjt:/var/www# ls -la
total 8
drwxrwsr-x 6 root ubuntu    5 Jan  4 13:09 .
drwxr-xr-x 1 root root   4096 Dec 11 16:04 ..
drwsrwsrwt 2 root ubuntu    1 Jan  4 11:13 apache
drwxr-sr-x 2 root ubuntu    0 Jan  4 13:00 atomics
-rw-r--r-- 1 root ubuntu    0 Jan  3 08:13 bootstrap.log
drwxrwsr-x 2 root ubuntu    4 Jan  3 09:11 test
drwxr-sr-x 2 root ubuntu    0 Jan  4 13:09 test_2

make sense to delete FS and try again? there are other info about the configs you need to understand what the issue is?
the screen below is the FS from cephadmin, underlined the shared-static FS and volume, the blu arrow instead is where the dinamics volumes are created

even after chmod ug=rwx test the r-s group permissions are kept for the directory. The new test_2 directory has that as well.
Can you try to remove the permission with chmod g-s test and verify that the permissions become r-x for the group? Maybe you can write to a file after that.
I do not think re-creating the FS makes a difference, my guess is that correcting the filesystem permissions should be sufficient.

nothing ....
root@apache-3-569dcf469b-pssjt:/var/www# chmod g-s test
root@apache-3-569dcf469b-pssjt:/var/www# ls -la
total 8
drwxrwsr-x 6 root ubuntu    5 Jan  4 13:09 .
drwxr-xr-x 1 root root   4096 Dec 11 16:04 ..
drwsrwsrwt 2 root ubuntu    1 Jan  4 11:13 apache
drwxr-sr-x 2 root ubuntu    0 Jan  4 13:00 atomics
-rw-r--r-- 1 root ubuntu    0 Jan  3 08:13 bootstrap.log
drwxrwxr-x 2 root ubuntu    2 Jan  4 13:27 test
drwxr-sr-x 2 root ubuntu    0 Jan  4 13:09 test_2
root@apache-3-569dcf469b-pssjt:/var/www# cp /var/log/bootstrap.log ./test
cp: error writing './test/bootstrap.log': Operation not permitted
root@apache-3-569dcf469b-pssjt:/var/www# cd test
root@apache-3-569dcf469b-pssjt:/var/www/test# echo abc > myfile
bash: echo: write error: Operation not permitted
root@apache-3-569dcf469b-pssjt:/var/www/test# ls -la
total 0
drwxrwxr-x 2 root ubuntu 3 Jan  4 13:28 .
drwxrwsr-x 6 root ubuntu 5 Jan  4 13:09 ..
-rw-r--r-- 1 root root   0 Jan  4 13:28 bootstrap.log
-rw-r--r-- 1 root root   0 Jan  4 13:28 myfile

I also chowned -R root:root all /var/www but the behaviour is the same.
this static volume is mounted in 2 container in 2 different namespaces could be a possible root cause?

sorry, I don't think I can help you more with this. I expect that if you create a directory, with right permissions, that you can create+write files in there. I don't know why this isn't the case.
Maybe the permissions/capabilities of the Ceph client that is used for mounting is missing something for the "atomicsGroup" subvolumegroup or datapool/osd. The required capabilities are listed at https://github.com/ceph/ceph-csi/blob/devel/docs/capabilities.md.

@nixpanic  thanks for point me in the right direction.
the root cause was lack of permissions on the user used by the client.
make sense to add some logs when this situations happens? (it will speed up troubleshooting in my opinion)
moreover can the documentation about static PV provide a sample about the user settings needed to handle it? today I only have a link about the need to use different keys to host the usedid and secret.
I have no other questions feel free to close this issue.
thanks again for the support.

Great that you were able to identify the cause :clap:
Unfortunately Ceph-CSI does not know about the failure to write data to files. This is purely a Ceph error returned by the MDS or OSD that the CephFS client then needs to handle.
If you have ideas on how to improve the documentation, could you create a PR for that? Maybe by linking to the capabilities document, or adding a note about the required permissions somewhere. Thanks!


Replace ResultVoidAndPtr with pointer

related to #183.

Mind updating the PR body with a visual indication of what this does?
For example, a simple bridge module and the corresponding generated Rust extern "C" fn.
Here's an example (you don't need to do a write up like that PR has.. just some example code is fine) https://github.com/chinedufn/swift-bridge/pull/178

Addressed your review. Please let me know if any omissions or errors.

Done. But, there might be any omissions or errors.

Thanks!


2.1.1 release notes

Nice write up! Read through diff and add several tiny comments. Will :+1: from me after they are fixed.

Updated.

:+1: from me :exclamation:  :boom:

These were really great notes, @kuenishi ! I made a few edits.


Speed improvements

There are a couple of speed improvements that can be done to improve the speed of the code.

Implement numpy arrays everywhere
Use numpy.sum instead of using functools.reduce()
Use concatenated lists for the temperature profiles instead of iterating over lists
Use convolution (scipy.signal.fftconvolve) instead of using multiple matrix multiplications in numpy

These improvements can be found in the branch improvements Improvements

Merged into main branch


Workaround fix for docker bloaty issue #35364

Fix #35364
Fix is needed until  https://github.com/google/bloaty/pull/384 is ready and integrated. This is needed for Chip-Cert-Bins to be built for TH

btw bloaty integrated their PR that bumps absiel to latest version: Update ABSL to tip google/bloaty#384
Just tested it on base image and its working fine now without the workaround

Sounds good , will close this PR for now


Move marcusschwarz/lesserphp from require-dev to require

Hey,
we have a problem with the Library marcusschwarz/lesserphp which should only be used as require-dev (see composer.json). This is not correct. The library brings the lessc() function which is everytime executed and failed if the library is not required:
--> Build::_construct() (with a Minify_Source)
--> LessCssSource::getLastModified()
--> LessCssSource::getCache()
--> LessCssSource::getCompiler()
--> lessc()
Right now we need to insert the lesser lib to our own composer.json (which makes no sense, because we do not need this). Is it possible to move this to your require (instead of require-dev)?

merged https://github.com/mrclay/minify/pull/634


Removing create service step for Felix metrics

Removing create service step for Felix metrics as this step is automated through code.

Product Version(s):

Issue:
https://tigera.atlassian.net/browse/EV-5305

Link to docs preview:

SME review:

[ ] An SME has approved this change.

DOCS review:

[ ] A member of the docs team has approved this change.

Additional information:

Merge checklist:

[ ] Deploy preview inspected wherever changes were made
[ ] Build completed successfully
[ ] Test have passed

Thanks for this. I'm happy to remove this if it's no longer necessary. But we should make sure that the document still makes sense after.
It looks like most installations don't need this step, but you still need to do this if you have a hybrid cluster with Windows nodes.
If that's correct, we should change the title (line 273) to something like:
**For Windows nodes, create a service to expose Felix metrics**

If you're running $[prodnameWindows], you must create a service to expose Felix metrics for Windows nodes:

code

Updated the content

LGTM

Reopening this in #1801 . Was getting strange merge errors from GitHub UI.


feat: Implemented switching between providers.

Added datetime picker.
Added fetch availability from api behavior.
Updated pods dependencies.

This PR solves 3 issues at once.


Add Backup{Bucket,Entry}, ManagedSeed, ControllerInstallation handling to Seed{Authorizer,Restriction}

How to categorize this PR?

/area security
/kind enhancement
What this PR does / why we need it:
This PR adds handling for BackupBucket resource to the SeedAuthorizer and SeedRestriction handlers.
Which issue(s) this PR fixes:
Part of #1723
Special notes for your reviewer:
Similar to #3708
Release note:

NONE

I've added support for the BackupEntry resource to this PR as well because it's very similar to what needs to be done for BackupBuckets.
/squash
/invite @timuthy

There's now another commit that adds support for ManagedSeeds as it's again very similar to the other changes in this PR.

There's now another commit that adds support for ControllerInstallations as it's again very similar to the other changes in this PR.

/assign


Use CallableResult for solving N+1 problem

This pull request aims to add a possibility to postpone rendering of a cell until the end.
Using this, one can have a DataLoader that batches all calls that are needed to render a cell and make a single call instead of one per cell.

@shades684 seems fine to me, can you foureye this?

@danut007ro can you elaborate on the specific problem you are trying to solve? We are reviewing the change but are not really sure it's the right solution.

Hello,
In my specific case I need to load some entities from another database connection based on an id from current entity. I have an entity with a integer field named city_id that is actually from that second database connection. Instead of showing city_id in the datatable, I want to show it's name, so I need to load those entities. With current implementation I need to load entities one by one, but I want to be able to load them all at once with a single request.
Basically I need to modify the $resultSet after it is constructed in https://github.com/omines/datatables-bundle/blob/master/src/DataTable.php#L286
I'm using this feature together with https://github.com/overblog/dataloader-bundle and it seemed the simplest and most extendable way of implementing this feature.

Ok we were guessing it would be something like that. The proposed solution seems to be quite complicating for such an edge case.
In the specific case - why not preload a local id-indexed array (likely even from cache) of the cities before rendering the table?

You mean preloading all the cities? That is pretty huge in my case. I'm imagining that at some point I might need an API call or something like this.
I can think on other solution also but this seem more intrusive:

have a dataTransformer in DataTable class, just like current transformer
let AbstractAdapter::getData() call that transformer after building all the rows with $rows as parameter and pass it's result in ArrayResultSet constructor.

Basically it would be like a row transformer, but it will apply to all the data. How does this sound compared with my current proposal?

@curry684 actually I believe this approach is simpler than the current proposal... But I'm waiting for your input before working on it. Thanks

We discussed it at length here and decided not to go forward with this PR, as it complicates and slows matters on behalf of a very exotic edge case. You are effectively breaking the bundle's fundamental determination to work on lazy-loaded rows as you want to do batch post-processing on the intermediate result set.
The most efficient way we see to achieve that is actually to subclass your own ORMAdapter and override only those lines translating the Traversable ORM output to a result set:
https://github.com/omines/datatables-bundle/blob/cc6abafda2d4a811bf91148e1fe7b2d30cc08086/src/Adapter/Doctrine/ORMAdapter.php#L195-L200
You may also need to override ORMAdapter::mapPropertyPath for correct results, but they are both valid extension points.

@curry684 so even the transformer approach that I proposed isn't valid? That looked more valid since it works like the current row transformer. I don't really like copy-pasting the getResults() method to a custom adapter and modifying it a little bit.
If this isn't going to be accepted (in either form) then I guess it can be closed. Thank you.

We considered that option, although we would implement it as an event, but concluded it wouldn't help you out enough as you'd need to intervene in the passing of iterators... and their position which would be unpredictable.
You have to keep in mind that much of this bundle was at this point designed 'not to blow up your server'. Hence all the Traversables and Iterators, and the EntityManager::detach calls that enable paging of thousands of entities in a performant way. We simply have no 'hook point' at which we reliably have access to 'the entire result' when using the ORMAdapter, as it was designed not to.
Which makes the only obvious solution to subclass the ORMAdapter in a supported extension point to override that part of the design philosophy.
Like I said, your case is really exotic   ;)

Got it, thank you for the very detailed explanation. Will go ahead and extend the ORMAdapter like you proposed and see how it goes, since it's a pretty straight forward solution.


luci-proto-gre: Protocol extension for GRE tunnels

I'm running several GRE tunnels to different locations and
the option to see and to configure GRE tunnels in LuCI was not
crucial but nice to have.
My motivation was to simplify the management of GRE tunnels; and also to help other people asking on the internet for this functionality.
Debugged and tested on router Turris 1.1, powerpc 8540, OpenWrt 19.07.

Signed-off-by: Jan Betik<EMAIL_ADDRESS>

Here are some remarks.

We also have the option multicast https://github.com/openwrt/openwrt/blob/master/package/network/config/gre/files/gre.sh#L263

The option weakif is only selectable if ip6addr is empty https://openwrt.org/docs/guide-user/network/tunneling_interface_protocols#common_options_for_gre_protocols
They are mutually exclusive

On this line (on behalf of the others) https://github.com/openwrt/luci/pull/3832/files#diff-4d9c2123127a4fc22d9ad4be7cf12950R71 we could change the message that we await a valid tos hex value?

Otherwise :+1:

Hello,

* We also have the option multicast https://github.com/openwrt/openwrt/blob/master/package/network/config/gre/files/gre.sh#L263

What does this option do?

* The option weakif is only selectable if ip6addr is empty https://openwrt.org/docs/guide-user/network/tunneling_interface_protocols#common_options_for_gre_protocols
  They are mutually exclusive

So the option weakif should be visible/active only if no IPv6 wan address is available?

* On this line (on behalf of the others) https://github.com/openwrt/luci/pull/3832/files#diff-4d9c2123127a4fc22d9ad4be7cf12950R71 we could change the message that we await a valid tos hex value?

I agree. According the man page for ip-tunnel, the possible values are
TOS  := { STRING | 00..ff | inherit | inherit/STRING | inherit/00..ff }
so I should rewrite the whole validate function to reflect the man page.

* We also have the option multicast https://github.com/openwrt/openwrt/blob/master/package/network/config/gre/files/gre.sh#L263

What does this option do?

Please have a look https://www.packet.com/resources/guides/gre-mutlicast/

* The option weakif is only selectable if ip6addr is empty https://openwrt.org/docs/guide-user/network/tunneling_interface_protocols#common_options_for_gre_protocols
  They are mutually exclusive

So the option weakif should be visible/active only if no IPv6 wan address is available?

I would see it that way

* On this line (on behalf of the others) https://github.com/openwrt/luci/pull/3832/files#diff-4d9c2123127a4fc22d9ad4be7cf12950R71 we could change the message that we await a valid tos hex value?

I agree. According the man page for ip-tunnel, the possible values are
TOS := { STRING | 00..ff | inherit | inherit/STRING | inherit/00..ff }
so I should rewrite the whole validate function to reflect the man page.

In the openwrt page this option is a string. Not sure which is better. Depends on how sophisticated the validate function is to validate all cases.

Merged via 2ced86048c7006f3637ed38ceeb3d21fddbb93e2 (duplicate Signed-off-by removed from commit). Thanks!


Nokogiri can't find pkg-config on OpenBSD

Please see https://github.com/bundler/bundler/issues/5207 -- originally I thought this was a Bundler issue but the guys over there were kind enough to point me in your direction.
That issue should have all the related Nokogiri output required.

The pkg-config is not license compatible to nokogiri. It is therefore no fixed dependency of nokogiri since <IP_ADDRESS>. See https://github.com/sparklemotion/nokogiri/issues/1488
Isn't the error message of bundler and gem install clear enough to either install pkg-config as an additional gem or as a system command?

The pkg-config is not license compatible to nokogiri.

The pkg-config is license compatible to Nokogiri: https://github.com/sparklemotion/nokogiri/issues/1488#issuecomment-263885087

pkg-config is not a requirement for nokogiri as of <IP_ADDRESS>. please try that version and let us know how you get on.
tagging @larskanis as he's done some work around this recently.

@larskanis yes, gem install pkg-config && gem install nokogiri works fine. However, gem install pkg-config && bundle install does not work unless I explicitly add pkg-config to my Gemfile which feels a bit patchy.
@flavorjones unfortunately that was the version I tried.

@frankie-loves-jesus OK, so I'd like to clarify that pkg-config is an overloaded term in this context.
There's pkg-config the commandline tool, which is generally used to "find" libraries in a portable manner across a wide number of *nix distros.
Then there's pkg-config the Ruby gem, which will essentially do the same thing, except in native Ruby.
In order to locate libxml2, libxslt, etc. on your system at installation time, one of those two needs to be installed.
The error message you're seeing (which is not referenced in this ticket, but is in https://github.com/bundler/bundler/issues/5207 (an etiquette note for the future is to provide all this information up front when you re-report an issue to a new team; I probably could have cleared this up earlier if you had)), which I found here, indicates that you either:

have neither pkg-config installed,
or don't have libxml2 installed.

Your claim (again, in that other ticket) is that you have pkg-config-the-commandline-tool installed. If that's the case, then we need your help. This would indicate that mkmf's pkg_config method may be broken on your platform (see this code to understand why I say that).
Alternatively, it could mean that you don't have libxml2 installed on your system. Our documentation for OpenBSD installation is pretty thin, and we could sure use your help if this ends up being the issue.
Unfortunately, I don't have access to an OpenBSD system to try to reproduce this issue.
Can you please help us by:

confirm that you have pkg-config-the-commandline-tool installed, by running which pkg-config?
confirm that you have libxml2 and libxslt development packages installed?
confirm that, given the above, you still get this error message?
if possible, help us write more complete documentation for OpenBSD?

FWIW, I just tested that the existing code behaves properly on an Ubuntu Linux system, failing when neither the gem nor pkg-config-the-commandline-tool are installed; but succeeding if either is installed.

Anecdotally, I've seeing similar errors, though on a different system. In my case:

The pkg-config command-line tool exists
mkmf's pkg_config() function calls it to get flags, and then tests that the flags work by compiling/linking
The compilation succeeds, but returns some -Wsign-conversion warnings in ruby.h. I haven't investigated whether or not that's normal, and if not, what the cause is.
mkmf was given the :werror option, so it considers the warnings an error. It returns nil to extconf.rb.
extconf considers the nil value to indicate that pkg-config doesn't exist, and reports Please install either pkg-config or the pkg-config gem.

I think it would be reasonable to yield a better error message here. Eg: "Unable to determine how to use system libraries. $SOME_USEFUL_ADVICE"

@vasi I just saw this interesting Ruby bug which might be related to your use case:

https://bugs.ruby-lang.org/issues/13060

@frankie-loves-jesus any thoughts on my comments above? I know it's a lot to unpack, but I do need help understanding what's going on.

@frankie-loves-jesus bump?

(I got here just now. I'm on an updated OS X system and installed libxml2 again using Homebrew. The homebrew output explained to me that I might need to tell pkg-config where to find its binary:
export PKG_CONFIG_PATH=/usr/local/opt/libxml2/lib/pkgconfig

@olleolleolle I believe you should be able to install Nokogiri with system libraries (so that you won't need the export path since you are not using Brewed libxml), by
gem install nokogiri -- --use-system-libraries

I'm going to close this, it's been open waiting for the original poster to reply for a while. :cry:


Using unsupported scalar types

Hi,
The documentation indicates that if you want to use Juniper with built-in Rust scalar types other than i32, f64, String, and bool you can wrap them in a newtype. However doing this with existing structs that use the base types directly would mean rewriting a lot of existing code.
Are there any examples or documentation of how it might be possible to add support for using other types like i16 or i128 without needing newtypes?
The example for Custom Scalars in the documentation doesn't compile when used with non-local scalars.
I came across the Wundergraph project which appears to do something similar - is this the recommended approach?
https://github.com/weiznich/wundergraph/blob/master/wundergraph/src/scalar.rs
Thank you for your help.

I researched this more and realized the documentation for ScalarValue has the answer to my question.
Once you implement your new scalar value representation as described in the ScalarValue docs, you can then use graphql_scalar! with where Scalar = MyScalarValue as shown in the Wundergraph code.
It looks like you also need to use #[graphql(scalar = MyScalarValue)] when deriving GraphQLObjects. This is mentioned in the docs for juniper::object.
I'll go ahead and close this issue.

@monophthongal is the use of #[graphql(scalar = MyScalarValue)] only neccessary for Query and Mutation objects, or should these be applied to every GraphQL model/entity in your app?

@Tails at the moment (current master) it depends... in some cases generated code is polymorphic on S: ScalarValue and is some cases it's bounded strictly to DefaultScalarValue. You need to read docs carefully about the exact your case, and also look into cargo expand output for your type to see where #[graphql(scalar = MyScalarValue)] should be applied.
Till next release we will do our best to remove this incovenience, so the all generated code will be abstracted over generic S: ScalarValue.


Migrate deprecated template_file

Hey there, thanks for this wonderful tool. I am trying to play around with this setup but apparently it fails to run Terraform since template_file has no M1 builds, reference can be found here

Hi @vorillaz, thank you for this hint.
I will check if it can be simply exchanged with https://developer.hashicorp.com/terraform/language/functions/templatefile. THis should be supported for M1.

Hey, that was quick! Thanks again for this one, I am a total noob playing around with Terraform so I am not sure how I could help. I'll keep an eye on this one.

@wenzel-felix Btw, can you please send me over an email at<EMAIL_ADDRESS>I have a gig that you might be interested. I'll delete this comment in order to avoid getting spammed.


Don't use String type for Url's in config structs

Small PR to address #376
Will continue to make additional PR's to address the remainder config structs.

Please use "imperative mood" in commits. That's a generally accepted way. So "Swap out ..." as a kind of an "order to the codebase".
And generally I'd go with a simpler `Don't use String for urls in config structs" as it highlights what was wrong with the existing code. Thought don't obsess too much about these. Generally a 2s of thought for a commit headline should be enough.

Codecov Report

Merging #466 (4dedcb7) into master (6624d83) will decrease coverage by 0.02%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master     #466      +/-   ##
==========================================
- Coverage   72.77%   72.74%   -0.03%
==========================================
  Files          83       83
  Lines       10821    10822       +1
==========================================
- Hits         7875     7873       -2
- Misses       2946     2949       +3

Impacted Files
Coverage Δ

ln-gateway/src/bin/ln_gateway.rs
0.56% <0.00%> (-0.01%)
:arrow_down:

client/client-lib/src/lib.rs
86.74% <100.00%> (ø)

fedimint/src/net/peers.rs
92.42% <0.00%> (-0.53%)
:arrow_down:

fedimint/src/net/connect.rs
94.94% <0.00%> (-0.26%)
:arrow_down:

fedimint/src/lib.rs
83.33% <0.00%> (+0.39%)
:arrow_up:

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

the fetch gateways returns NoGatewayserror, the expect in the cli is missleading (not enough coins)
printing out the FederationMember bevore requesting /ln/list_gateways gives this:
[FederationMember { url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(<IP_ADDRESS>)), port: Some(5000), path: "/", query: None, fragment: None }, peer_id: PeerId(0), client: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }, FederationMember { url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(<IP_ADDRESS>)), port: Some(5001), path: "/", query: None, fragment: None }, peer_id: PeerId(1), client: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }, FederationMember { url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(<IP_ADDRESS>)), port: Some(5002), path: "/", query: None, fragment: None }, peer_id: PeerId(2), client: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }, FederationMember { url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(<IP_ADDRESS>)), port: Some(5003), path: "/", query: None, fragment: None }, peer_id: PeerId(3), client: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }]

the fetch gateways returns NoGatewayserror, the expect in the cli is missleading (not enough coins) printing out the FederationMember bevore requesting /ln/list_gateways gives this:
[FederationMember { url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(<IP_ADDRESS>)), port: Some(5000), path: "/", query: None, fragment: None }, peer_id: PeerId(0), client: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }, FederationMember { url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(<IP_ADDRESS>)), port: Some(5001), path: "/", query: None, fragment: None }, peer_id: PeerId(1), client: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }, FederationMember { url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(<IP_ADDRESS>)), port: Some(5002), path: "/", query: None, fragment: None }, peer_id: PeerId(2), client: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }, FederationMember { url: Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(<IP_ADDRESS>)), port: Some(5003), path: "/", query: None, fragment: None }, peer_id: PeerId(3), client: RwLock { mr: 536870911, s: Semaphore { permits: 536870911 }, c: UnsafeCell { .. } } }]

seems to be alright I think you have to do what is descibed here

Since tests pass, I'd remove all [info,debug,trace, eprint, print] that are only there for debugging like this for example then you can mark as ready for review again imo

also remove stuff like the out commented mod my_format

Can close this in favor of #517 due to messed up git workflow by not using branches appropriately


fix(data-table): update border styles, align checkboxes

Resolves a few issues with Data-Table

Used outline as main hover style for consistency
Added a small bit of margin to fix alignment issues in Firefox

Closes https://github.com/carbon-design-system/carbon-components/issues/47
Closes https://github.com/carbon-design-system/carbon-components/issues/49

👍 ✅


libbpf: 1.2.2 -> 1.3.0

Description of changes
Regular update; there's no API breakage so shouldn't cause any problem. Tested bpftrace/bcc/pahole build and bpftrace binaries
(staging as it's not urgent and builds a lot of reverse dependencies (systemd, linux..))
changelog:
libbpf v1.3.0
User space-side features and APIs

support for netfilter programs is added:

SEC("netfilter") is now available
API function bpf_program__attach_netfilter() is now available

support for tcx BPF programs is added:

the following new SEC definitions are now available:

SEC("tc/egress")
SEC("tc/ingress")
SEC("tcx/egress")
SEC("tcx/ingress")

the following SEC definitions are now considered legacy:

SEC("tc")
SEC("action")
SEC("classifier")

functions bpf_prog_attach_opts() and bpf_prog_query_opts() are extended to work with tcx
programs, plus two new API functions are added:

bpf_prog_detach_opts()
bpf_program__attach_tcx()

support for multi-uprobe programs is added:

the following new SEC definitions are now available:

SEC("uprobe.multi")
SEC("uprobe.multi.s")
SEC("uretprobe.multi")
SEC("uretprobe.multi.s")

plus a new API function:

bpf_program__attach_uprobe_multi()

support for section SEC("usdt.s") is added for sleepable usdt programs;
support for Unix domain socket cgroup BPF programs is added the following new SEC definitions are now
available:

SEC("cgroup/connect_unix")
SEC("cgroup/sendmsg_unix")
SEC("cgroup/recvmsg_unix")
SEC("cgroup/getpeername_unix")
SEC("cgroup/getsockname_unix")

new LIBBPF_OPTS_RESET() utility macro;
new bpf_object__unpin() function to complement existing bpf_object__pin();
new API functions for work with ring buffers:

ring_buffer__ring()
ring__producer_pos()
ring__consumer_pos()
ring__avail_data_size()
ring__size()
ring__map_fd()
ring__consume()

path_fd support for bpf_obj_pin() and bpf_obj_get();
uprobe SEC matcher extended to allow golang symbols;
uprobe support for symbols versioning;
bpf_map__set_value_size() can now be used to resize memory mapped region for memory mapped maps;
struct bpf_xdp_query_opts extended with xdp_zc_max_segs output field;
basic BTF sanity check pass added to reject bogus BTF.

BPF-side features and APIs

triple-underscore flavors for kfunc relocation: like with CO-RE structs ___.* suffix is ignored
when kfunc relocations are resolved;
__percpu_kptr macro definition in bpf_helpers.h;
support for exception callbacks, use __attribute__(btf_decl_tag("exception_callback:<func_name>"))
to specify exception callback for a program;

Bug fixes

fix for btf_dump__dump_type_data() when type contains bitfields;
fix for correct work of offsetof() and container_of() macro with CO-RE;
no longer attempt to load modules BTF when resolving CO-RE relocations if CAP_SYS_ADMIN are absent;
regex based function search for "kprobe.multi/" programs no longer attempts to trace functions that
cannot be traced;
bpf_program__set_type() no longer resets sec_def if it is set to a custom fallback SEC handler;
fix for memory leak possible after bpf_program__set_attach_target() call;

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Nit: standard commit naming would be libbpf: 1.2.2 -> 1.3.0

Ugh, I wasn't sure and thought I checked but I guess I checked wrong :/ fixed.
I've caught a glimpse of aarch64 bpf test failing in the check summary just as I updated this, but didn't manage to click in time, and apparently wouldn't find the old check if my life depended on it so I'll just wait for ofborg to fail again and have a look.
The tests used to pass recently, so there's been a regression somewhere -- I doubt it's related to this PR but I'll have a look tomorrow.

I found the logs:
x86-64 https://logs.ofborg.org/?attempt_id=8a8935ad-e7bc-479b-92a3-96b6374d68ef&key=nixos%2Fnixpkgs.269392
aarch64: https://logs.ofborg.org/?attempt_id=e05b1d2e-a509-4113-8ef0-49e37e56f9bb&key=nixos%2Fnixpkgs.269392
aarch64 failed due to timeout after 1h building ghc; I'm not quite sure why it even decided to build ghc in the first place as it doesn't seem to depend on libbpf...Nor why nixosTests.bpf depends on ghc (nix why-depends says there's no dependency on this branch at least)...
x86-64 apparently also failed, but I'm less clear on why exactly -- some python dependency to the test framework failed to build? So that looks like a temporary failure in staging more than anything else.
I'll have a fresh look tomorrow anyway

That's the issues with CI for PRs targeting staging.  They try to merge the PR with the target branch, and consequently the rebuild is typically way too expensive.

Sorry for lack of update, I've just checked the status after rebuild (x86_64 build did work this time, but aarch64 still ended up in timeout)
Not much I can do there except retarget the PR on master just for test; I guess it's just as simple to deal with any potential fallout after merging when they come up... Since x86_64 worked it's probably going to be ok.


CORS Handler blocks requests from the same origin

The CorsHandler is returning 403 for requests that are coming from the same origin. Consider this POST request captured from a browser:
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Host: console-default.apps-crc.testing
Origin: http://console-default.apps-crc.testing
Pragma: no-cache
Referer: http://console-default.apps-crc.testing/console/container/default/caches/create
User-Agent: Mozilla/5.0

It was produced by a javascript request loaded from the domain http://console-default.apps-crc.testing going to http://console-default.apps-crc.testing/rest/v2/caches, so it's from the same origin.
The CorsHandler, in the method channelRead, will check to see if the origin is part of the configuration, and if not, will return forbidden (403), thus forcing configuration even if it is the same origin.

You can find a reproducer and the fix in the related PR


[menu] allow customizing the column count of dropdown menus

I'm cross-posting my opinion here, from #308. Since this issue is dedicated for the suggestion I've put at #308, I think this is better place for discussing about it.

Actually, it will be limited max to 2 if implemented (that is, the columns range is 1-2), since there aren't enough space for more columns, otherwise the rest columns will overflow and be hidden. Beside this behavior affects desktop screen only.
In this point, it seems that no neccessary to have this option, unless you want to display one column on desktop all the time.

If then, we can have the option named one-column as boolean type which its default value is false for simplicity.
This would be niche use case anyway though.

I want to display 'A' menu as one column, but also want to display 'B' menu as two column because child menu of 'B' is too many for one column.
The 'A' menu also have some child menu, but I prefer display it as one column anyway.

In this case, if we don't have such option, displaying two type at once isn't possible. Site owner must choose either one column or two columns for all menus.
I'm not sure if enforcing it would be good idea or not. Of course, displaying child menu items as two columns would have better visibility.
@include media-breakpoint-up($hb-header-breakpoint) {
    .hb-header-submenus {
      column-count: 2;
    }

    .hb-header-submenu {
      max-width: 35vw;
      overflow: hidden;
    }
}

These lines were added in a3c2ffcaa25434c4fa5644a2311ab0db55ee3d06 but I wonder if it is possible to apply or remove this rule selectively to certain menus.

Now the columns will be 1 by default, when the number of sub menus is greater or equal 6, then it will be 2 by default.
You can also tweak it via the columns parameter of menus.
BTW, as I described before, it's limited up to 2, if you find a solution to make it suit any column count, PR are welcome.

Thank you for the fast improvement!
I don't have any objection about limiting column count to 2.
In my opinion, if a menu has lots of sub-menus that exceeds 100vh when displayed with two column, site owner should think about displaying menus in sidebar, rather than top.


ockam enroll times out

Observed behavior
When I attempt to enroll, I get stuck after the email-verification stage.
https://command.ockam.io/manual/ockam-enroll.html has no extra information.
Steps to reproduce

ockam enroll
Enter one-time code
See "Email <...> verified"
See that the webpage navigate to "https://account.ockam.io/device/success"
See that nothing happens in the terminal
Wait
See the error below:

  × Failed to enroll your local identity with Ockam Orchestrator
  ├─▶ deadline has elapsed (origin: Node, kind: Timeout, source location: implementations/rust/ockam/ockam_node/src/error.rs:56:9)
  ╰─▶ deadline has elapsed

  Version 0.97.0, hash:<PHONE_NUMBER>ae9fdbff9c10ab8f2a9ec9b92a1ab4

Expected behavior
I'm expecting the enrollment to continue and finish successfully
Ockam Version
0.97.0

@aecepoglu thank you for reporting this.
Could you try.
ockam reset --yes
ockam enroll

Is it happening repeadly?

Yes, the error persists and repeats.
Attaching logs of ockam enroll -vv below:
     │ Opening https://account.ockam.io/activate, in your browser, to begin authentication...
     │ Authenticated

     │ Email<EMAIL_ADDRESS>verified

2023-10-09T09:12:37.949741Z  INFO ockam_api::cli_state::traits: removing link "/home/sahip/.ockam/defaults/user_info"
2023-10-09T09:12:37.949756Z  INFO ockam_api::cli_state::traits: symlink to<EMAIL_ADDRESS>2023-10-09T09:12:37.949877Z  INFO ockam_api::cli_state::traits: Set default item<EMAIL_ADDRESS>2023-10-09T09:12:37.953369Z  INFO ockam_api::cli_state::traits: removing link "/home/sahip/.ockam/defaults/node"
2023-10-09T09:12:37.953378Z  INFO ockam_api::cli_state::traits: symlink to "/home/sahip/.ockam/nodes/a123af65"
2023-10-09T09:12:37.953391Z  INFO ockam_api::cli_state::traits: Set default item name=a123af65
2023-10-09T09:12:37.953396Z  INFO ockam_api::cli_state::nodes: node state initialized name=a123af65
2023-10-09T09:12:37.953673Z  INFO ockam_node::processor_builder: Initializing ockam processor '0#be1ea5e0874d3d96600684cfd42c5435' with access control in:DenyAll out:DenyAll
2023-10-09T09:12:37.955078Z  INFO ockam_api::nodes::service: created a node manager for the node: a123af65
2023-10-09T09:12:38.127153Z  INFO ockam_node::processor_builder: Initializing ockam processor '0#12ee01bf1f26f0ddfbf06d1ca11c50e6' with access control in:DenyAll out:FlowControlOutgoingAccessControl { flow_control_id: 47610c5704994ade68496819daca1f7e, spawner_flow_control_id: None }
2023-10-09T09:12:38.286293Z  INFO ockam_identity::secure_channel::handshake::handshake_worker: Initialized SecureChannel initiator at local: 0#c786bb1bcfa1207617753b314b01ea08, remote: 0#fadacff852d6463aadb7c4ce7fc45748
2023-10-09T09:15:38.312460Z  INFO ockam_api::cli_state::nodes: node process killed name=a123af65
2023-10-09T09:15:38.314012Z  INFO ockam_api::cli_state::nodes: node deleted name=a123af65
2023-10-09T09:15:38.317851Z ERROR ockam_command::util: Failed to run command e=Failed to enroll your local identity with Ockam Orchestrator
  × Failed to enroll your local identity with Ockam Orchestrator
  ├─▶ deadline has elapsed (origin: Node, kind: Timeout, source location: implementations/rust/ockam/ockam_node/src/error.rs:56:9)
  ╰─▶ deadline has elapsed

  Version 0.97.0, hash:<PHONE_NUMBER>ae9fdbff9c10ab8f2a9ec9b92a1ab4

  Version 0.101.0, hash: 79822ace1d9e8937957d9159873ea1de91d3b376

The issue persists and I will need to actively debug this to figure out what's happening


=net6.0 TFM builds should not reference System.Net.Http

I'm encountering lots of issues on security scanning due to the fact that the nuget packages reference System.Net.Http. For net6.0 (and probably earlier), it should be possible to drop those references and hence end up without the reference to the old/redundant package that had the implementation prior to it being added to the platform.
The only other package in our dependency tree is Microsoft.Azure.Storage.Blob, which has a deprecation notice. After I've ported that to a version that's inside the 5 year 'dead package' limit, ff-dotnet-server-sdk is the only remaining package that depends on it, which drops our lockfile by 298 lines, and removes tens of Blackduck scan warnings
~Would you be open to a PR to make the reference conditional~ It appears from my PR that you should be able to simply remove the PackageReference from the project, as all TFMs that you build for natively provide everything that your implementation requires to build cleanly.

Hi @bartelink thanks for raising this, and for submitting a PR.  We'll take a look and get back to you within the next 24 hours.
Thanks!

We're going to test this across our supported .NET versions now @bartelink , and all being well, can get this merged later today.
We could feasibly release a new SDK version with these changes today as well.  I'll keep you updated.

Thanks - no need to release it urgently from my personal perspective, as I still have another cleanup to do before it gets t the top of my list

Thanks @bartelink - we've managed to test this across targets that the SDK supports and everything was fine, but we can't guarantee that we won't introduce side affects somewhere else (It's probably very unlikely).
Would you be open to us releasing a version with a conditional import, like you suggested?  We feel that would guarantee backwards compatibility and enable you to drop this dependency:
 <Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <!-- Used to conditionally import System.Net.Http, defaulting to true-->
        <USE_ME Condition="'$(ImportSystemNetHttp)' == ''">true</USE_ME>
      ... existing properties
    </PropertyGroup>

      <ItemGroup>
        <ItemGroup Condition="'$(ImportSystemNetHttp)' == 'true'">
        <PackageReference Include="System.Net.Http" Version="4.3.4" />
       ... existing imports
    </ItemGroup>

CC @andybharness

I'm pretty sure that NS2.0 and later have it built in - you'll know very soon indeed coz it wouldnt compile though?
There are no other packages I'm aware of that have a packageref to SNH
My main concern without testing would be whether net461 provides it without the package.
For a quiet life I'd consider leaving it in for net461 and maybe netstandard2.0, i.e make those two TFMs a Condition on the packageref
Realistically anyone running net461 is not going to have an easy to manage package vulns list no matter what you do (although that's not a reason to give up either)
You could release a -rc.1 variant and let people try that to reduce risk ?

@bartelink leaving it in for net461 and netstandard2.0 sounds like a reasonable plan.  I'll aim to get an RC out with this in the next 24 hours for you to try.
Thanks!

We've released 1.7.0-rc1 -https://github.com/harness/ff-dotnet-server-sdk/releases/tag/1.7.0-rc1
Feel free to give it a try. Hopefully it reduces your scanner warnings - please let us know if there are any other issues.
We'll let this soak for a while, and all being well, release this change in 1.7.0


Improvements in README

@localheinz :-)

@snapshotpl
Awesome! May I ask you to make another change?

@localheinz done :trollface:

Thank you, @snapshotpl!


METRON-212: Allow additional Elasticsearch templates to be loaded to the index

Tested with quick-dev-platform.
Currently this will allow the use of custom Elasticsearch templates by adding *.template files to the metron_streaming/files/es_templates directory. Deployment will pick them up and send them to the index using the basename without the .template extension as the template name.
I'm interested if others think that I should add an optional custom-defined directory name to pick up additional templates. Easy to do, but I wasn't sure it was needed.
This can be verified by running deployment and then running GET _template/* using your index-putter of choice (curl, sense, whatever). You should see a template that corresponds to each filename.
e.g. for Bro:
{
   "bro_index": {
      "order": 0,
      "template": "bro_index*",
      "settings": {},
      "mappings": {
         "bro_doc": {
            "_timestamp": {
               "enabled": true
            },
            "properties": {
               "enrichments:geo:ip_dst_addr:location_point": {
                  "type": "geo_point"
               },
               "timestamp": {
                  "format": "epoch_millis",
                  "type": "date"
               }
            }
         }
      },
      "aliases": {}
   }

I'm wondering where the best place is to store things like Elasticsearch template definitions.  Ultimately, creating an effective Elasticsearch template is an important part of creating a parser.  Therefore, it might make more sense for template definitions to be stored somewhere with the rest of the platform code under metron-platform?

I think we might have to change this role so that it does not attempt to start or stop Elasticsearch itself.  It can check if it can talk to Elasticsearch (which is a good check to have) but ultimately for this role to work in different kinds of environments, it can't try and start/stop Elasticsearch.

What's your concern about starting Elasticsearch? The service module should support the environment. In the initial deploy path, ES will be installed but stopped when we execute this. For re-deployment of enrichments, ES will be running so nothing will happen when start is called. May be worth taking out the stop, but that could affect the Monit stuff on initial deployment.

The problem was that the template load was attached to the 'enrichment' host group.  It looks like you've already fixed that though.

It would be nice for the new role names in METRON-211 and METRON-212 to be consistent.  Which naming convention makes more sense?

METRON-211 convention -> metron_kafka, metron_hbase, metron_elasticsearch
METRON-212 convention -> elasticsearch_templates, kafka_topics, hbase_tables

The reasons I like the METRON-211 convention slightly better is that:

The role names include metron indicating that the role specifically affects the deployment of core Metron.
The names center around a core Hadoop-y service so that, for example, if we need to add additional functionality that impacts Elasticsearch we can throw it into the same metron_elasticsearch role and the name still makes sense.

I could certainly be persuaded that METRON-212 is better though.  If that is the case, I will update the names in METRON-211.

I don't really have a preference, What would you like them to be called?

I like the METRON-211 style: metron_kafka, metron_hbase, metron_elasticsearch.  This also more closely matches the existing metron_streaming role

So, specifically, you'd like to see elasticsearch_templates -> metron_elasticsearch_templates?

I was thinking metron_elasticsearch.  That way, if we have other ES related code we need for Metron, it also works in the same role.
I have some changes I can make in METRON-211 too better adhere to this convention too.  Will propose those changes in that PR.

So we'll have metron_elasticsearch and elasaticsearch roles?

Hmm. Yes, I get the point you're making.  I could live with that.
But I could also live with metron_elasticsearch_templates, metron_hbase_tables, and metron_kafka_topics.

Bump - anyone? Bueller?
@nickwallen - those changes you requested have been for a bit.

👍

+1 looks good


masori assembler

hello my dear friends, the masori assembler isnt working as intended, as it assumes every dart i use on blowpipe is without any kind of assembler, so every time it counts as 1 used.
as idk how to code myself, i'm here to report the issue. Thx for the plugin, so useful tracking my supplies :)
sorry for my bad english, this isnt my natural language :(

Thanks for reporting, will try get it fixed soon

thank you for your efforts!

Added in 7109cc6862e60c44cb6556cc932794aee6336dff sorry for delays. It also needs to get approval now.


Define And Apply Structs

We already can dump Go style structs, do the following

Convert these structs to IDA compatible C-ish style
Create these using the IDA script
Determine if it's possible to apply these to function locals / arguments

Argument type information doesn't appear to be present, looks like we may have to include external information if we wish to do that last bullet. Something like parsing the go runtime source and embedding that info into GoReSym.


When installing 3.0.0-alpha.0 cannot d/l binary

Repro of #777 which is still an issue, and isn't ready to be closed.
I'm getting this output which causes the package to recompiled on every npm install:
><EMAIL_ADDRESS>install /app/node_modules/sass-loader/node_modules/node-sass
> node scripts/install.js

Can not download file from:,https://github.com/sass/node-sass/releases/download//v3.0.0-pre/linux-x64-14_binding.node

Is this the intended functionality?

@haf, please stop opening further issue. I have answered your question there.

No you haven't. While your library keep breaking these invariants and costing everyone time, I'm going to continue opening issues:

follow semver ordering, or unpublish pre or alternatively release something that sorts after pre
broken download like above, which you still haven't addressed
no non-broken non-prerelease release

Because all of the above are open and bleeding issues that is wasting everybody's time. You have can fix them if you stop closing the issue before you understand the implications.


Runme explorer should honor the other file extensions

I renamed my notebooks to .mdr and they don't appear:

Fixed https://github.com/stateful/vscode-runme/pull/1712


Crash after setup: "KeyError: 'familyName'"

I'm not seeing an issue template. Let me know if you need more details.
I've configured a new account and I'm getting a crash after restarting homeassistant.
#This error originated from a custom integration.

Logger: homeassistant.config_entries
Source: custom_components/chargepoint/__init__.py:107
Integration: ChargePoint (documentation, issues)
First occurred: 12:17:13 PM (1 occurrences)
Last logged: 12:17:13 PM

Error setting up entry <username> for chargepoint
Traceback (most recent call last):
  File<EMAIL_ADDRESS>line 365, in async_setup
    result = await component.async_setup_entry(hass, self)
  File<EMAIL_ADDRESS>line 107, in async_setup_entry
    client: ChargePoint = await hass.async_add_executor_job(
  File "/var/packages/python310/target/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File<EMAIL_ADDRESS>line 84, in __init__
    account: ChargePointAccount = self.get_account()
  File<EMAIL_ADDRESS>line 42, in check_login
    return func(*args, **kwargs)
  File<EMAIL_ADDRESS>line 221, in get_account
    return ChargePointAccount.from_json(account)
  File<EMAIL_ADDRESS>line 88, in from_json
    user = ChargePointUser.from_json(json["user"])
  File<EMAIL_ADDRESS>line 50, in from_json
    family_name=json["familyName"],
KeyError: 'familyName'

re-reading the stack I realized this was a python-chargepoint issue not specific to this addon. Unfortunately I don't know how to report issues upstream (I could e-mail). However reading the code from https://pypi.org/project/python-chargepoint/#files suggested this may be a profile setup issue on my part.
Turns out my account is old enough that I setup my profile without a last name (which is currently a required field). Editing my profile on chargepoint's website resolved this error.


doc/website: fix security concern transitive depedency in website docs

I have made some changes to the version of the transitive dependency in doc/website, due to security issues.
Here's a list of upgraded version of transitive dependency:

set-value
immer

Please check it, if you have time, Thanks!
cc @a8m

Thanks for the contribution @RiskyFeryansyahP 🙏🏻


feat: tweak existing rules and enforce most ES6 rules

@bromanko @jhurliman @pon @jsatk
This diff enforces most of the ES6 rules available in eslint. It also dedupes some entries that were enforced using both the babel plugin and the base rules.
Generator star spacing rules based on MDN.

+1 Thanks for doing this.

My favorite change:
- debug.apply(null, args);
+ debug(...args);

LGTM


tsc-strict does not work with emitDeclarationOnly and build option.

Hi,
Because tsc-strict ends up to run tsc --strict --noEmit ...process.argv.slice(2):

it's not compatible with --build option:

tsc-strict -b apps/fr-app/tsconfig.json
🎯 Found 10794 strict files
⠸ Compiling with strict mode...💥 Typescript did not compile due to some errors. Errors:  [
  "error TS6369: Option '--build' must be the first command line argument."

it's not compatible with emitDeclarationOnly option:

λ › tsc-strict
🎯 Found 10794 strict files
⠴ Compiling with strict mode...💥 Typescript did not compile due to some errors. Errors:  [
  "error TS5053: Option 'emitDeclarationOnly' cannot be specified with option 'noEmit'."
]

Maybe passing the process.argv before strict could be enough for the build option, but I don't know if the noEmit option is really required.
Also, for the record, I've a project with 13106 ts files, and tsc-strict is very longer than tsc (mainly because of the Looking for strict files step). Maybe a cache could be considered?
I'm ready to do the PR when we agree on what to do.
Thanks for your package!

Hum actually --strict seems to not work with build at all. Investigating on that.
And for the emitDeclarationOnly, we can add --emitDeclarationOnly false

About putting ...process.argv.slice(2) makes more sense I guess and I think it would solve the issue with first command line argument.
I believe that noEmit option makes the plugin run a bit faster (if noEmit is set to false in tsconfig), because we don't really need the file output and we only care about errors
The idea about cache is really great and it would actually speed up the process of tsc-scrict by 50%. I found the --listFiles option for the tsc and we would actually need to run tsc once and the difference between tsc-strict and tsc would be negligible. I'll make a PR for it.
Thanks for investigating

Btw. 13000 ts files is hell a lot :D

And about the noEmit flag I'm wondering what to do. Initially I've added the noEmit flag, because some project use babel to compile their projects and they don't have noEmit flag in their tsconfig. Without this flag running tsconfig would generate bunch of js files unnecessarily. So we have two options:

Remove noEmit resulting in scenario above
Leave like it is now resulting in error with compilation with tsconfig provided by you
Search tsconfig and find if emitDeclarationOnly is present and don't add noEmit when it is

I think option 3 would be the best in this case, but I'm worring that there would be more cases like that with different flags. What do you think?

Actually I think that we can leave the noEmit like this, and let devs add --emitDeclarationOnly false if they need.
Also, I found out that the build option is not compatible with any config via console option (including strict), so no need to move anything.
Thanks for the cache thing!

13000 ts files
yep, and it's only the front 😅


Gender age detector

Description
This is a gender-age detector to automatically detect the gender and age of the person(s)  present while camera is turned on.
Fixes #(960)
Have you read the Contributing Guidelines on Pull Requests?

[X] Yes
[ ] No

Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[X] Documentation Update

Checklist:

[X] My code follows the style guidelines(Clean Code) of this project
[X] I have performed a self-review of my own code
[X] I have created a helpful and easy to understand README.md
[X] My documentation follows Template for README.md
[X] My changes generate no new warnings
[X] I have added tests/screenshots(if any) that prove my fix is effective or that my feature works.

@codebuzzer01 you have copied your code from here.

No @santushtisharma10  it's not the same as above.  The user who will use the app of above code would not be able to provide the images of his/her own choice(i.e. the sample images are already being given in the cod, only  for which the above  code will work) whereas my code will prompt the camera of the device and depending on the person or persons present in it will detect the gender age of the person.

@santushtisharma10 Yup, its the same code.

@codebuzzer01 The code is exactly the same. You have just removed the image argument from the video capture but why you haven't removed the argument parser when there is no need for it? Can you justify what is need for argument parser in your code? Secondly, I already told you that your files were deleted by me then why you are still modifying the files? It is because you didn't sync with the PA repo before making the branch and your master branch commits accompanied in this branch too which is causing this merge conflict.
Due to these reasons, the PR and associated issue are closed.


Give devServer config higher priority

This is my intent (choose one)

[ ] I want to report a bug
[x] I want to request a feature or change
[ ] I want to provide or change a feature

The problem
In the server.js:
https://github.com/xing/hops/blob/v7.4.0/packages/build/server.js#L22
currently, after the devServer config options there is an additional object (the one with the after function and the watchOptions). This way, it is impossible to override that functionality. For example, you are always stuck with the rewrite:
https://github.com/xing/hops/blob/v7.4.0/packages/build/server.js#L24
even if you don't want to use that.
Proposed solution
I would like to propose to simply change the order here:
https://github.com/xing/hops/blob/v7.4.0/packages/build/server.js#L22
from:
Object.assign({}, config.devServer, { after: .... })
to:
Object.assign({}, { after: .... }, config.devServer)
It wouldn't affect existing setups (nobody currently could have provided his/her own after: function, it would have been overridden)
(cc: @mjacobus)

Sounds good! Would you like to provide a PR yourself?

Yes, I will.

Cool, thanks! 🚀
Please remember to add your info to the contributors section in the main package.json file 💡

Done

Thanks!
Fixed in https://github.com/xing/hops/blob/v7.4.1/packages/build/server.js#L22
Released as hops-build v7.4.1: https://www.npmjs.com/package/hops-build


Correct link to DeploymentScript supported Azure CLI version list

The link to supported Azure CLI versions is not correct.  The updated link may be the correct one.

@simonzhaoms : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


MRG: Fix report BEM

Fixes a regression caused by #5531 because add_bem_to_section was not covered by any test. It was added back in 0.9 so maybe our standards were more lax then :)
Also adds a test that pyplot imports are properly nested in tests.

CIs are happy other than the current mpl failures on master

thx @larsoner


php 8.1.1 not being installed: Please reinstall the BZip2 distribution

Using Mac (M1 Max)
...

configure.ac:1544: the top level
configure: WARNING: unrecognized options: --enable-gd-native-ttf, --enable-wddx, --enable-zip, --with-gd, --with-mysql, --with-xmlrpc
configure: error: Please reinstall the BZip2 distribution

Using following install steps:
export LIBXML_CFLAGS="$(xml2-config --cflags)"
export LIBXML_LIBS="$(xml2-config --libs)"
export SQLITE_CFLAGS="-I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
export SQLITE_LIBS="-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"

export LDFLAGS="-liconv"

export PHP_CONFIGURE_OPTIONS="--with-zlib-dir=\"$(brew --prefix zlib)\" --with-bz2=\"$(brew --prefix bzip2)\" --with-readline=\"$(brew --prefix readline)\" --with-libedit=\"$(brew --prefix libedit)\" --with-tidy=\"$(brew --prefix tidy-html5)\" --with-iconv=\"$(brew --prefix libiconv)\"<EMAIL_ADDRESS>--with-curl=\"$(brew --prefix curl)\""

export PATH="$(brew --prefix bison)/bin:$(brew --prefix icu4c)/bin:$(brew --prefix icu4c)/sbin:$PATH"

asdf install php 8.1.1

I am also struggling with --with-bz2, tried with brew --prefix bzip2 and explicit paths (not symlinked).. I did brew install bzip2, added it to the $PATH and I always get:
checking for BZip2 support... yes
checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution

Any ideas?

@StephanMeijer please try without nested quotings: export PHP_CONFIGURE_OPTIONS="--with-bz2=$(brew --prefix bzip2). In my case it solved the issue 🥳.

@Wirone Thanks for your feedback. Nowadays I use MacPorts for installing PHP on macOs. This seems to be more stable.


Seperate mounting from serving, and add multithreaded serving

The new mount3 and serve_fs_sync_forever APIs allow for more control over the lifecycle of your filesystem. Mounting the filesystem is now separate from the request handling loop. We also apply the typestate pattern to handle filesystem init, rather than having that as part of the request handling loop.
This provides additional flexibility.  We no longer need to implement BackgroundSession, users can just as easily call thread::spawn themselves.
Example equivalent to mount2:
let fs = MyFS {};
let (chan, mount) = mount3("/my/mountpoint", &[])?;
serve_fs_sync_forever(chan.init()?, fs)?;

Example equivalent to Session...::spawn():
let fs = MyFS {};
let (chan, mount) = mount3("/my/mountpoint", &[])?;
thread::spawn(|| serve_fs_sync_forever(chan.init()?, fs)?);

rather than having specific APIs to enable background thread operation.
I've also added serve_fs_mt_forever enabling multi-threaded filesystems using rayon.  I'm quite pleased with how its worked out as I've been able to add this without having a separate Filesystem trait taking &self instead of &mut self.
Raising as a PR now for early visibility.
TODO:

[ ] Document the new APIs
[ ] Finish making "simple" example multithreaded

Thanks, this looks cool! I've wanted to have multi-threaded support for a while. I haven't read through it all yet, but a couple early bits of feedback:

I don't really like the idea of a factory function for Filesystem when using multi-threading. There are a number of cases where you want to have Filesystem be a singleton, such as caching & cache invalidation. The way I'd been thinking of implementing multi-threading was to use async by adding a new Filesystem2 trait that was async
what's the use case for splitting serve_fs_sync_forever out of mount3?

Closing due to inactivity, but feel free to re-open, if you work on this more


ROS wrapper needed

Hi,
In your paper, you mention using ROS melodic for testing the system in the real world. Could you also upload the ROS-wrapper for your system?
Thanks
Regards,
Sidharth.

Hi ,
any luck finding the ROS wrapper or any alternative library?

A third-party ROS wrapper implemented by MuSHR can be found at https://github.com/prl-mushr/clcbs_ros/tree/178bfc731c88ca53140fd5fded37b3de5d4a6f07


Delete network tab

I could not find a way to delete my unused testnet tab in manage networks.
It should also be possible to remove added networks again.

implemented in #139


Prepare documentation for v0.11.0

Bump Turtles version and update list of certified providers

Thanks for preparing this in advance @alexander-demicev!


documentation: new nbs, improved nbs, other updates

in progress still...

Re-writing the intro notebook to use random sample data
adding discussion in the intro notebook on common problems (length units, coordinate system considerations, etc.)
added a convenience function for generating a xr.Dataset with random fields with different dimensions

When complete:
Closes #15 Closes #14 Closes #12

expanded this to include a sphinx & readthedocs setup.

removed the docs build action for now... can automate that later.


paste crash

so basically when i click on the paste button the app will start crashing and glitching im on ios 15.1 (dopamine)
https://github.com/0xkuj/IPARanger/assets/128184565/b190a236-8383-4e0d-899c-9eb149e99134

fixed in 1.7

fixed in 1.7

its not on ur repo or updated on havoc repo
rootless jailbreak

It is in here https://github.com/0xkuj/IPARanger/tree/main/packages and soon will be approved by havoc, by Monday probably


feat: Support Shinylive export/import

This PR adds support for creating and saving Shinylive apps to the vscode extension with three commands:

Create ShinyLive Link from Active File. Sends the currently open single-file app to Shinylive, e.g. good for simple, single-file app.py or app.R examples.

Create Shinylive Link from Selected Files. In the file explorer tree, when right clicking on a file, a directory or a selection of multiple files/directories, users can select this command to send the selection to Shinylive.

Save App from Shinylive Link. Paste a shinylive.io link and choose a directory or path where the app in the link should be saved.

If the Shinylive link points to a single-file app, users can pick a file location for the app, which may also overwrite an existing app.
If the Shinylive link points to a multi-file app, the user is asked to pick a non-existent directory and the directory is created and the files encoded in the link are saved there. After saving, the first file in the bundle is opened in the editor.

TODO

[x] Update README

@karangattu's testing pushed me to try the "Create from shinylive" workflow to remote vscode (codespaces/workbench), where users are allowed to pick between file:// (local to codespaces) or vscode-local:// (local to the user's machine) file types.
Prior to this, there were a lot of places where I was doing "regular" path computations that work fine locally (in a file:// context) but break when the path is remote to the vscode instance (vscode-local://). I've gone through and made sure that we're only dealing with file paths as vscode.Uri instances and not ever relying on uri.path or uri.fsPath for path computations. We also now always use vscode.workspace.fs for file system operations and not node's fs.
That said, there are two complications:

vscode.workspace.fs.stat() generally doesn't work for non-local paths, so we can't check for file or directory existence.

vscode.window.showSaveDialog() gives the user a "Show Local" button

that opens a native file picker to select a user-local file path. This doesn't have the same behavior as the internal vscode.window.showSaveDialog() and forces users to pick a file, even if the vscode dialog would have allowed a directory.

Given those limitations, we can allow users to save single-file Shinylive links to their local machines. But I've disabled saving multi-file apps with an informative message.


Software clone detected in GenericStatisticsViewHolder.java

Describe the clone
These two code snippets are essentially clones of each other with one key distinction: the description text that is set in statsDescriptionMain. This difference reflects the different contexts in which these two classes are used. While both classes use the same logic to format and display the speed/pace, they appear to be intended for slightly different display purposes based on the context provided by the string resources.

Location of the clones
Starting at line 168 of src\main\java\de\dennisguse\opentracks\viewmodels\GenericStatisticsViewHolder.java
Starting at line 185 of src\main\java\de\dennisguse\opentracks\viewmodels\GenericStatisticsViewHolder.java
Clone Type
Type 2
Expected outcome
To fix this, we can refactor the code by creating a common method or class that handles the common logic for both cases, and then allow the specific description text to be passed dynamically.
Make a function to handle common logic in both classes AverageMovingPace and Average Pace
Code before refactoring

Code after refactoring

Function code

Additional context
Issue can be fixed by making a function and calling it in both classes.

Issue resolved, closing this


ci: disable Linux packaging builds for RCs for now

Workaround for #259.

Kou: maybe the 'right' thing will be to set VERSION in packaging.yml if we are building for an RC, and switch up the instructions so that you don't push the tag until after 02-source.sh?


Dpy rewrite

Should be ready for review, but not mergeable yet - needs more testing and thorough check over of everything

Also, ScamScanner needs to be converted before this is merged too.

For that reason I'm actually going to keep this is a draft for now

last chekover now - should be ready to merge :)


Scrollbar obstructs content

The scrollbar currently obstructs content in a table.
We've been dealing with this issue by creating an empty column or making sure we've got no right-aligned content in the last column. But sometimes that just isn't possible. I've attached a screenshot showing the problem in one of our columns displaying a DateTime.

Hi @rmilesson! Can you elaborate on what you mean by 'not possible'?
This current behavior is currently one that we expect - perhaps you might be interested in having something like a CSS rule that sets the opacity of the scrollbar to 0, but brings it back up on hover? You can customize the Scrollbar's CSS in the fixed-data-table-style.css file, or by adding your own CSS.

I'm closing this because there hasn't been any update, and a solution exists. Feel free to reopen if this persists!


Porting NumPy to CuPy

Not sure if this is the best place for this but I couldn't find a mailing list. I have CuPy successfully installed and I've experimented with some of the documented tutorials. I am trying to port over the NumPy code below over to CuPy but I can't seem to figure out how to control the number of GPU threads (or thread blocks).

import numpy as np

b = np.array([9,8100,-60,7], dtype=np.float64)
a = np.array([584,-11,23,79,1001,0,-19], dtype=np.float64)
m = 3
n = b.shape[0]
l = n-m+1
k = a.shape[0]-m+1

QT = np.array([-85224., 181461., 580047., 8108811., 10149.])
QT_first = QT.copy()

out = [None] * l
for i in range(1, l):
    QT[1:] = QT[:k-1] - b[i-1]*a[:k-1] + b[i-1+m]*a[-(k-1):]
    QT[0] = QT_first[i]
    out[i] = np.argmin((QT + b_mean[i] * m) / (b_stddev[i] * m * a_stddev))

return out

Any help or pointers would be greatly appreciated.

I've seen some docs on invoking a CUDA Numba kernel with different block/thread sizes: https://numba.pydata.org/numba-doc/dev/cuda/kernels.html#kernel-invocation
It's not a CuPy solution, but would that help?

Closing as CuPy does not expose an API to manually specifying threads/blocks except for Raw kernels.
https://docs.cupy.dev/en/stable/reference/generated/cupy.RawKernel.html?highlight=rawkernel


CSS/Sass/Less require a space after : to trigger intellisense

Steps to Reproduce:

Create a selector
Type width:a, notice no intellisense

Proposals are filtered out again as the word rule includes the ':'


Fix test fixture order

First import external fixtures, then ours, to make sure we overwrite any other definitions.
See https://github.com/nils-braun/dask-sql/pull/193#issuecomment-864606251 for more explanation.

Hi @nils-braun, out of two test cases that are failing, I think I kind of know the reason why the MLflow model export was failing.
MLflow's latest release includes logging/saving pip dependency (requirements.txt) as well in addition to the conda.yaml
https://github.com/mlflow/mlflow/pull/4409
I think there is no need to assert for number of files generated while exporting the model into MLflow model format
I am guessing the second issue is related to the pyarrow version but not sure about that!

Good catch. Could you try to fix the mlflow error? I will take care of the pyarrow problem. You can just open a new PR with the target set to this branch.

Have raised a PR https://github.com/nils-braun/dask-sql/pull/195 , let me know if this what you are expecting.

Codecov Report

Merging #194 (218905d) into main (0e0e1d2) will decrease coverage by 0.08%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##              main     #194      +/-   ##
===========================================
- Coverage   100.00%   99.91%   -0.09%
===========================================
  Files           60       60
  Lines         2314     2304      -10
  Branches       317      317
===========================================
- Hits          2314     2302      -12
- Misses           0        2       +2

Impacted Files
Coverage Δ

dask_sql/input_utils/hive.py
90.00% <0.00%> (-10.00%)
:arrow_down:

dask_sql/utils.py
100.00% <0.00%> (ø)

dask_sql/context.py
100.00% <0.00%> (ø)

dask_sql/server/responses.py
100.00% <0.00%> (ø)

dask_sql/physical/rex/core/call.py
100.00% <0.00%> (ø)

dask_sql/physical/rex/core/over.py
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


nd-ify the plane point annotator

This PR makes our plane point annotator compatible with nD data
The only restriction at the minute is that the points and image layers must have the same dimensionality

Thanks @kevinyamauchi - tests added! I can't reproduce the test failures from CI locally but also not sure what to do about them, any ideas? 'InvocationError'

@alisterburt, I think it's an issue with the vm setup for the CI. I made a PR to update the python and qt setup to match the current plugin cookiecutter in #55. Can you have a look over there and merge if it looks good?

Codecov Report

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

@@           Coverage Diff           @@
##             main      #56   +/-   ##
=======================================
  Coverage        ?   45.01%
=======================================
  Files           ?       21
  Lines           ?      933
  Branches        ?        0
=======================================
  Hits            ?      420
  Misses          ?      513
  Partials        ?        0

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

not sure why the diff is showing your PRs from main after rebase but thanks for fixing the CI, all good here now I hope?

@kevinyamauchi just needed a little push 😉


[5.4] Add new conJoin() method to collection

This function allows joining of a traversable object with the current collection, ignoring the keys. This is useful when stacking collections based on different models or sources to be used for a singular purpose, for example generating of combined lists based off of multiple collections without overwriting values of existing keys.
Internals discussion: https://github.com/laravel/internals/issues/568

How is this different than the merge method, besides for mutating the original collection (which we shouldn't do).

The only difference would be if you have string keys, which you haven't even added any tests for.

You can already merge string keys by calling values on the original collection:
collect(['foo' => 'bar'])->values()->merge(['foo' => 'baz']);

Using merge will overwrite existing values for existing keys. I haven't added tests for string keys, because the key is irrelevant, although I should probably add tests to prove that they are irrelevant. Also, I was returning the original object, because other methods did the same, and I wanted to keep with that.
Point taken on #3.
Please close if this PR is deemed irrelevant.

Upon further thought in the matter, example 3 above would only satisfy a one-off, but not conJoining of multiple collections or traversibles where some have string keys and other have index keys. The index keys would always be overwriten.
I will update the unit tests to include string keys.

I reviewed the other methods in the collection class again, and saw what you meant by the original collection not being mutated. In those instances where it returned $this it was inspecting or doing other non-mutating actions, and all the methods that did perform mutations always prevented the original from being mutated.
I made the appropriate changes. Thanks @JosephSilber.

Why are you using the camel-cased name "conJoin"? It seems rather strange seeing that "conjoin" is not a compound word. Also wouldn't "concat" be a more appropriate name?

@thecrypticace Open to naming suggestions. :) I originally had it as conjoin, then for some reason made it camel-case. I'm not sure about concat, as that seems to be used predominantly for strings. I' remove the camel-casing. Thanks for the feedback. :)

For reference: concat is the name of the operation in javascript (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat?v=control) and ruby (https://ruby-doc.org/core-2.4.0/Array.html#method-i-concat) and probably several other languages.

I was looking at the PHP method http://php.net/manual/en/internals2.opcodes.concat.php as well as Excel (which is not related, of course, but its the first thing that comes to my mind).

CONCAT it's not a method in PHP. It's a low-level opcode which PHP uses during compilation. These aren't exposed to the user unless you dump them via the command line or are working on PHP itself. Opcodes are used in compilers and interpreters to specify an operation that is performed. (more reading: https://en.wikipedia.org/wiki/Opcode)

Ah, you're right, of course, thanks for correcting me on it not being a method. I just did a quick google search and just skimmed it. If @taylorotwell is open to merging this, I'll defer to him for the naming, and certainly encourage him to take concat() into consideration. :)

Renamed to concat.


The "navigate" event on WebView is not fired on anchor navigation

Currently it is not possible to intercept a navigation via an anchor on the same page of a WebView. The navigate callback is fired but the value of event.preventDefault is ignored.

That's expected. preventDefault can only prevent loading a new page. An anchor navigation is triggered by JavaScript using the browser history API. This cannot be prevented.
The behavior is the same on iOS: the navigate event is fired on anchor navigation, and event.preventDefault is ignored.

Furthermore, on Android the navigation to the new anchor has already
happened by the time the event is fired. If this was desired, it would be
pretty hard to implement.
On Thu, 5 May 2016 at 01:17 Ralf Sternberg<EMAIL_ADDRESS>wrote:

That's expected. preventDefault can only prevent loading a new page. An
anchor navigation is triggered by JavaScript using the browser history API
https://developer.mozilla.org/en-US/docs/Web/API/Window/history. This
cannot be prevented.
The behavior is the same on iOS: the navigate event is fired on anchor
navigation, and event.preventDefault is ignored.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/eclipsesource/tabris-js/issues/828#issuecomment-217100778

Closing this as "invalid".


add health checks

This adds health checks to the model

Hi @mohitsoni would you be able just to cherry-pick f8eb58694dff6637a3c3f61702ae7c86e0c5fe48 ?

This was already added in ab3c7bbfb96136


docs: Documentation error for iOS developers on OS X

From @smokymountains on October 17, 2014 0:27
Type: docs
Platform: ios 7 webview
On this page, http://ionicframework.com/getting-started/, if you follow the documentation and build the app using only the command "ionic start myApp tabs/blank/whateva", if you add any plugins and then try to build, it will fail every time. Instead, if you issue the optional -a "some name" and -i "com.mycompany.app" parameters on build, adding plugins will then build successfully. Maybe this is documented more clearly somewhere else but I've seen a lot of similar questions in forums over the past 2 hours I've been researching this - finally found the answer on a Phonegap forum. Tried it with ionic, and boom, worked. No build errors when including plugins. Wondering if there's an opportunity to make these more clear for ionic/phonegap/cordova virgins such as myself.

Copied from original issue: driftyco/ionic#2407

Thanks for opening the issue. It seems that issue has been resolved. I am going to close this issue but please feel free to reopen another issue if this occurs again.


sendOnSystemRequestToUrl should be re-written

sendOnSystemRequestToUrl in SdlProxyBase needs to be re-written.  This logic doesn't belong in this class and the implementation of this method is convoluted and inflexible.
This method breaks SRP and is way too long.  Methods of greater than 25-50 lines should be red flagged for bad design and this method is over 200 lines, none of which are directly related to the SdlProxyBase class.

Similarly, writeToFile and getURLConnection don't have anything to do with the SdlProxyBase class and should be refactored.


Permission denied when installing it on Debian Buster

Environment

Operating System: Debian Buster
node --version: 14.9.0
npm --version: 6.14.8
yarn --version, if using Yarn:
percollate --version: 1.0.1

Description
When I execute : sudo npm install -g percollate, I got at some point :
/usr/bin/percollate -> /usr/lib/node_modules/percollate/cli.js

><EMAIL_ADDRESS>install /usr/lib/node_modules/percollate/node_modules/puppeteer
> node install.js

ERROR: Failed to set up Chromium r782078! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.
[Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/percollate/node_modules/puppeteer/.local-chromium'] {
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: '/usr/lib/node_modules/percollate/node_modules/puppeteer/.local-chromium'
}

Thanks for the report! Are you behind a firewall, or blocking Google servers via your hosts file, or something to that tune? According to this puppeteer issue, the Chromium build is fetched from the https://storage.googleapis.com domain, so whitelisting it (at least while you install percollate) might help. Alternatively, several people in that thread mention that something like this worked for them:
sudo npm install -g percollate --unsafe-perm=true --allow-root

Let me know if any of this helps!

Thanks for the quick answer! In fact this is not related to blocking Google servers nor being behind a firewall, because I also had this error : gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/percolate/node_modules/gc-stats/.node-gyp'.
But using --unsafe-perm=true --allow-root makes the install work. Thanks!

Glad to hear! :-)


Buttons are pointy in demo apps

If the demo apps cannot help and there is no issue for your problem, tell us about it
The demo apps (I tried vue and svelte) show the buttons as pointy. These don't look like the material buttons I would expect. This is on a fresh build of this repository, with the style.xml updated to derive from Material instead of Compat.
Which platform(s) does your issue occur on?
Only tested on android emulator, Pixel 2 API 30
Please, provide the following version numbers that your issue occurs with:

CLI: 8.2.2
Cross-platform modules: 8.2.1
Runtime(s): 8.2.2

yes it comes from this https://github.com/nativescript-community/ui-material-components/blob/master/demo-snippets/svelte/install.ts#L16

and this https://github.com/nativescript-community/ui-material-components/blob/master/demo-snippets/app.scss#L14


Use undefined instead of null

We should prefer undefined over null. See TS coding guidelines.

Changed classification to bug. My new e2e tests revealed that null is actually mapped to NSNull in iOS implementation and therefore the current  implementation in develop branch crashes on various places.


Support for cas-attribute

I'm using this server with apache mod_auth_cas and it's working great. I wonder if it is possible to add custom CAS attributes to the users fields :
<Location /secured>
	Authtype CAS
	Require cas-attribute edupersonaffiliation:staff
</Location>
<Location /admin>
	Authtype CAS
	Require cas-attribute edupersonaffiliation:admin
</Location>

I would greatly appreciate if you could give a brief instruction on this.

Just put anything you want here https://github.com/leo108/php_cas_server/blob/master/app/User.php#L65


Greacefully handle Empty Datadir

users tend to create the datadir instead of relying on creation by the app.
app fails if the datadir exists but has no config yet.  reported by multiple users.

see also https://github.com/HydraChain/hydrachain/issues/3


Wrap world

This is mostly working, but I am going to change the implementation logic a bit to better caching for wrapped tiles.

[x] better use of tilecache for wrapped tiles.

Reviewing

Hit a segfault when zooming out very rapidly, crash report: http://pastebin.com/UHbqCksZ

Checking for the segfault issue.

Which reminds me that we need better error handling in mvt sources pbf parser - at least the runtime_error should be catched there :)

Could it be that a tile is loaded twice, the first tile is added to the raw cache and starts processing - then the second comes in and is added to the cache overwriting the first that is currently processed by mvt parser?

@hjanetzek thats very very possible.

Turns out those crashes were totally my fault for making a mistake in the wrapping math and trying to fix nonexistent tiles - I think it's all corrected now.


icon not showing in new project tree

When using the new project tree the icons won't be placed.
Actually, the new project tree where your project is expandable on the left doesn't have any icons.
Example for this project itself:

This is a duplicate of #55.


linux: Add missing Linux-specific fcntls

Also move F_DUPFD_CLOEXEC up a level as it is available on Android.

r? @alexcrichton
(rust_highfive has picked a reviewer for you, use r? to override)

@bors: r+ 104563f1e3c8f30e1a00f968e7d61d439a79429b

:hourglass: Testing commit 104563f with merge 0e78d56...

Failures are all lack of F_ADD_SEALS and F_GET_SEALS. These are available in 3.17+ according to the man page: http://man7.org/linux/man-pages/man2/fcntl.2.html
Reading that, I realize I should have also added the F_SEAL_* constants, which I've now done.
@alexcrichton should I keep these constants in and modify the test code to ignore them?

Well, I modified test code to ignore them in the meantime in case you choose to r+ it. At least then tests should be passing when @bors gets to it. :-)

Related to https://github.com/rust-lang/libc/pull/228, I'm seeing if I can come up with a decent solution for verifying some constants against the kernel headers themselves.  There are few challenges there:

Getting an appropriate version of the test headers into the test environment
Setting up defines so that the appropriate defines are in place for the targeted architecture such that the kernel definitions we compare against are accurate.
Ignoring the many things we probably don't want to check directly against the kernel.

I haven't done much in the way of implementation towards this goal as of yet, but my gut tells me that some modifications to ctest will be in order to only include (rather than exclude as is the case presently) certain symbols/patterns in what is tested.
Even if some of these things end up being definitions we want to include in dowstream crates, the ability to verify that constants and other items match the operating systems C definitions should be very useful.

@posborne I was thinking something along these lines, but going to generation rather than verification. This also fits in with #121 (adding all SYS_call constants for all platforms). Opened #234 to figure out an approach.

Thanks for opening #234.  I would be in favor of an approach using generation -- might be worth studying what is done in bionic.

I'd like to avoid adding constants to libc that are entirely untested in swaths like this, ignore a constant is basically a "massive hammer" to a solution.
If these aren't present in header files, how does C access these constants? That is, if we can't verify them, how can anyone use them?

@alexcrichton The unfortunate answer for most C code is that you end up copying the header out of the kernel and into your application -- I have had to do this many times and it always bothered me.  If you are lucky, there is a library (for example, libnl) that was developed along side the kernel functionality which provides headers for you.
Starting with kernel 3.7, there has been a push to separate the headers that are suitable for inclusion from userspace (or at least from libc) into the include/uapi and arch/$ARCH/include/uapi directories in the kernel.  This is the case for the constants in this PR: http://lxr.free-electrons.com/source/include/uapi/linux/fcntl.h.
The idea has been around for awhile, but it recently got a bigger push.  Pinging @mkerrisk to see if he has any advice in this regard for libc authors (in this case, in a non-C based language).

Interesting, thanks for the info @posborne! If those headers are explicitly intended to be included by userspace, perhaps this PR could start including that? Or does the travis builder not have those headers yet?

I didn't know too much about this, thanks for the links @posborne.
From reading a bit more, it appears that these uapi headers end up being installed under /usr/include/linux/. However, including that file results in conflicts with the original fcntl.h, which is included via several other headers. To get this to work, we'd have to make a bunch of changes to what headers get used in verification on Linux.
For the sake of this change, and the constants I actually want right now, I've deferred the file sealing fcntls and associated bitflag constants.
I opened #235 for the greater change.

Testing including them in Android and musl. musl should definitely have them; not 100% sure of Android.

Androind and musl failed; reverted to omitting them.

@bors: r+ b43118cb981918a2d8227d59cba9d21ee38af899

:hourglass: Testing commit b43118c with merge cd925e0...

:sunny: Test successful - status-appveyor, travis


Add the option in mA

Add the option to display in mA (MILIAMPERE), either positive if it is in the socket charging, or negative if it is out of the socket discharging. And also add the option of the icon update interval.

I initially used dynamic units, but never observed values small enough to actually display mA/mW/etc. This does overlap a bit with another request to increase precision in the main app view, so this might become more relevant.

I initially used dynamic units, but never observed values small enough to actually display mA/mW/etc. This does overlap a bit with another request to increase precision in the main app view, so this might become more relevant.

I'd be very grateful if you could add this option, so it's easier to know how much the charger is charging and how much the phone is draining. Thanks for taking it into consideration.

I was going to request this. Thank you.


deploy --build option

Per Issue #272 , this PR adds the option to deploy --build=false such that a prebuilt image can be used and building bypassed.

LGTM, this should be reflected in the docs though

Thanks; docs/commands.md is now also updated, which I believe is the only place