References view should never be empty

Open a file in VS Code
Do Find all references
References view with references is shown
Reload the window
View is empty

May be you should have some default empty message in this case?

May be you should have some default empty message in this case

I actually have that but since the tree is invisible it isn't showing. So, either we show the view and therefore the viewlet always, we don't restore viewlets without views, or the viewlet can be queried for its visibility... I can do neither without your help @sandy081

Ah I see.. Since visibility is controlled by the extension using when context, I do not think I can show the view. Since the view opted to be invisible in the startup it is fair enough to not show the viewlet and fallback to default viewlet in this case.

https://github.com/Microsoft/vscode/issues/64199

Thanks


Ensure support for Python v3.6-v3.10

Code should already support 3.9.   Should only involve changes to the build system and CI tools.

Ensure setup.cfg includes 3.6-3.10
Update makefiles targets to include 3.6-3.10
Add Github actions for testing 3.6-3.10
Ensure new Github actions are execute with each build
Ensure new Github actions gate commits of new PRs

Fixed with PR #68.


Provide test cases for all debugging features

Related to write documentation about debugging  #380.
Tests could be used as code blocks for support documentation.

Finished in PRs for each implemented GDB feature.


[ upstream ] Adapt to the changes in idris-lang/Idris2#2517

Just in case if idris-lang/Idris2#2517 is accepted

Thanks. Can you ping me, once the PR is ready for merging?

Thanks. Can you ping me, once the PR is ready for merging?

Sure!


Bug in route:list after installing package

Bug report
I installed this package:
route:list should display route list:
Give Error:

I extended backup/base.php and replaced key user_model_fqn with my user model class. and it got fixed taught not mention in documentation:
Laravel Version 5.6

Oh ok, I understand now @shivanikoko . Indeed, if you have a different User model, or don't want to use App/Models/BackpackUser, you should change the configuration to use your custom User model, after you first install Backpack.
There's a note about this in Step 3 of the installation process - you must have missed it. So I'll close the issue, since the docs mention it.
Cheers!


ngx-loggly-logger.js depends on 'ng2-cookies'. CommonJS or AMD dependencies can cause optimization bailouts.

Hey,
Is this a known issue? I'm getting this error on angular 10 and 11:
Warning: /node_modules/ngx-loggly-logger/ivy_ngcc/fesm2015/ngx-loggly-logger.js depends on 'ng2-cookies'. CommonJS or AMD dependencies can cause optimization bailouts.

That is just a warning, in your angular.json under allowedCommonJsDependencies you can add ng2-cookies as an allowed dependency and the warning will go away.


[CORE] Caret position won't change if value didn't.

Steps to reproduce:

Given mask is (___) with Value of (1|11)
Type "1" character.

Expected result:
Cursor moves to the next position: (11|1).
Actual result:
Cursor stays at the same position: (1|11).
Question:
Is this behaviour intentional?
Possible source of problem:
https://github.com/text-mask/text-mask/blob/dae7390eeb7f87df2dcedef9421e56cc8cf3ef83/core/src/adjustCaretPosition.js#L50-L53
  const possiblyHasRejectedChar = isAddition && (
    previousConformedValue === conformedValue ||
    conformedValue === placeholder
  )

Should return false for this case, because the character was not really rejected.
Failed test case:
Yush, here you go
https://github.com/text-mask/text-mask/compare/master...akhramov:test/caret-positioning-repro?expand=1

Is this behaviour intentional?

not sure, I'm gonna call it a bug for now.. and look into it.
I can see why its happening.. not sure quite how we go about fixing it though..

I've added the failing test to a PR.. but I am no further towards solving it..
I have an idea in my head for how it could be solved, but I don't think its going to be a straight forward fix..

Has there been any progress on this issue? I'm currently affected by this as well.


draft SSO docs

Fixes #7812.
Note: Admin UI screenshot is pending new login page & SSO button design.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/cbab572a09a8d558af82078dbf6084859700505d/
Edited pages:

v20.2/authentication.md
v20.2/sso.md

@dhartunian Friendly ping for review!

@taroface
I don't think this closes #7984

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/91b69fc201e3c3f3e4fb32baf079ce550da38fe9/
Edited pages:

v20.2/authentication.md
v20.2/sso.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/7f9e37a23f12e5dd6b1209c3e3979c958181da7f/
Edited pages:

v20.2/authentication.md
v20.2/sso.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/2579f9551d2b9d591a7de4c0b2232d8c98673e67/
Edited pages:

v20.2/authentication.md
v20.2/sso.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/d8fc1144253e151c9cf9c89e3a6ebe024826d556/
Edited pages:

v20.2/authentication.md
v20.2/sso.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/cf792b98c6db01c9d955646ec74d7d17eef3cfe0/
Edited pages:

v20.2/authentication.md
v20.2/sso.md


helm package --sign throws "Error: private key not found" (GPG)

A confusing error is thrown when signing a chart using a fingerprint to identify a GPG key.

Excerpt from provenance docs

Once ready to package, add the --sign flag to helm package. Also, specify
the name under which the signing key is known and the keyring containing the
corresponding private key:
$ helm package --sign --key 'helm signing key' --keyring path/to/keyring.secret mychart

TIP: for GnuPG users, your secret keyring is in ~/.gnupg/secring.gpg. You
can use gpg --list-secret-keys to list the keys you have.
Warning:  the GnuPG v2 store your secret keyring using a new format kbx on
the default location  ~/.gnupg/pubring.kbx. Please use the following command
to convert your keyring to the legacy gpg format:
$ gpg --export-secret-keys >~/.gnupg/secring.gpg

I tried to follow the instructions here (shown above), but ran into this error:
$ gpg --version
gpg (GnuPG) 2.2.12
libgcrypt 1.8.4
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/alling/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

$ gpg --gen-key

$ gpg --export-secret-keys >~/.gnupg/secring.gpg

$ gpg --list-secret-keys
/home/alling/.gnupg/pubring.kbx
-------------------------------
sec   rsa3072 2020-02-19 [SC] [expires: 2022-02-18]
      4EDF6F4B1CB5B53278AE2CF53AFA909880798BE6
uid           [ultimate] Simon Alling<EMAIL_ADDRESS>ssb   rsa3072 2020-02-19 [E] [expires: 2022-02-18]

$ helm create mychart
Creating mychart

$ helm package --sign --key '4EDF6F4B1CB5B53278AE2CF53AFA909880798BE6' --keyring ~/.gnupg/secring.gpg mychart
Error: private key not found

However, this works:
$ helm package --sign --key 'Simon Alling' --keyring ~/.gnupg/secring.gpg mychart
Password for key "Simon Alling<EMAIL_ADDRESS>>
Successfully packaged chart and saved it to: /home/alling/mychart-0.1.0.tgz

It was far from obvious to me that helm signing key was to be interpreted as "your name", though.
Output of helm version:
version.BuildInfo{Version:"v3.0.1", GitCommit:"7c22ef9ce89e0ebeb7125ba2ebf7d421f3e82ffa", GitTreeState:"clean", GoVersion:"go1.13.4"}

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3", GitCommit:"06ad960bfd03b39c8310aaf92d1e7c12ce618213", GitTreeState:"clean", BuildDate:"2020-02-12T13:43:46Z", GoVersion:"go1.13.7", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T19:09:08Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}

fixed in helm/helm-www#500.

fixed in helm/helm-www#500.

Depends on your definition of "fixed", I guess. I think it's more intuitive to use the fingerprint; I also believe it's necessary to distinguish between keys with identical uid.

AFAICT, the library used does not provide an easy way to check the fingerprint. I hope I'm wrong, but I guess that might be a reason why there's ongoing discussions about changing from that library: #7599


Define/Re-visit Witnet Requests Board

The goal is to check whether the interface we have is sufficient for the functionality we want to provide

Closed in 24a7bd3338b9657bc2ee53daaa7e190b059e3bef


Should default timing mode be linear?

We were trying to track down an obscure visual issue with two actions running at once, and I did not realise the libraries default timing mode is the custom pow2out timing. It's written pretty clearly in the README, but my brain just assumed the default timing mode would be linear.
Do wethink a better default might be linear? I know that's what SKActions and most other tweening libraries use.
Also side-note: It might be worth just bundling the "standard" timing functions from here: https://raw.githubusercontent.com/ai/easings.net/master/src/easings/easingsFunctions.ts

For reference, we have now set:
Action.DefaultTimingMode = Easings.linear;

👍 just throwing it out there that maybe it would be a good default

Being able to set the default is a good idea. pow2out is the default because it's the one I personally use (almost exclusively).

Fair enough, will leave that thought with you 🙉


Ability to merge topics on repository?

Hi team,
It might be nice to have ability to merge existing topics on the repository with terraform managed topics. Right now terrafrom seems to reset topics to what defined (or not) in the *.tf. That cleans up user-defined topics on repositories.
Terraform Version
Terraform v0.11.13

provider.github v1.3.0

Affected Resource(s)

github_repository

Terraform Configuration Files
resource "github_repository" "tf-test" {
  name    = "tf-test"
  private = true
}

Debug Output
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
~ github_repository.tf-test
topics.#:          "12" => "0"
topics.3889168777: "xxxx" => ""
Expected Behavior
User-defined topics aren't reset by terraform, merge option is available
Actual Behavior
User-defined topics aren't reset by terraform

That is the expected behaviour of managing resources using terraform. It will always consider that the correct settings are the declared on the resource definition and try to match it.
You could declare the topics on the resource, so it does not try to remove it:
resource "github_repository" "tf-test" {
  name    = "tf-test"
  private = true
  topics = ["xxxx"]
}

That is the expected behaviour of managing resources using terraform

That is true when you are talking about distinct resources but the api call for topics are a single api request to manage all of the topics. While we could do this by pulling down the existing topics, merging the maps, and then checking if there is a delta I actually prefer the way it currently works. Currently it shows a delta, its just a matter of adding those topics until it becomes a no-op. I think it depends on how you are looking at using terraform, I largely use terraform with github to reduce the number of people who can make manual UI changes and ensure that if someone with enough access makes changes in the UI it must be reflected with terraform or it gets reverted. I suppose we could support both options by exposing some kind of merge_topics attribute and default it to false to keep backwards compatibility.

Well, agree on everything said in topic. thanks team.
While it is desired to manage state from the source code, meaning TF would be the only source of truth, sometimes we might need "merge" behavior such as "create/update/merge if does not exist".
In this GitHub example, TF manages tags which means no UI changes can be done. TF overrides it later.
Not too bad yet not ideal as user tags go away every deployment unless they are moved into source code.
I think we can close this ticket, it's more of a process management thing. Implementing this in TF wouldn't be the right thing, I guess.

@bltavares it actually does, overriding user defined topics via UI straight to ["xxxx"]

I actually wish issue labels worked the same way, so we could delete user created labels that confuse people.

I actually wish issue labels worked the same way, so we could delete user created labels that confuse people.

Agreed, if you have something like Type: Enhancement and Enhancement it can get confusing, I have seen that happen especially since github bootstraps every repo with some default labels.
It would also save a ton on you API rate limit budget but we don't control their APIs sadly.

What's the recommended way for interacting with other tools that modify terraform-managed state? I recognize that this is a bit of an anti-pattern, but we have a mechanism for identifying repositories that match certain criteria and adding topics to those repos. Is there a good tool for mutating the .tf files instead of interacting with the GitHub API directly?
If not, I'd like to propose the above as a valid use-case for merging existing topics with the specific set of topics. If this seems problematic, maybe we users could specify a list of topics that can be managed external to terraform? The external management of topics makes it easy to use the existing GitHub search feature to look for the indirect criteria used to determine topics, though it is true that this is a bit of an abuse of the topic feature.

Closing as per this comment.


[Cluster Explorer] Available PVC does not refresh when changing namespace at creation

What kind of request is this (question/bug/enhancement/feature request):
Bug (GUI)
Steps to reproduce (least amount of steps as possible):

Create a new Deployment
Change namespace where you want to create this deployment
Go to Storage Menu and try to add a PVC

Result:
PVCs of the selected namespace do not appear.
Other details that may be helpful:
Namespaces has to be selected before creation of the deployment to get existing PVCs appearing in Storage Menu

Workaround: select the correct namespace before you click on "Create" button for your deployment. The PVCs appear.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
2.5.6
Installation option (single install/HA):
HA

On 2.5.7

Deployed a GKE cluster
From cluster explorer, Create a PVC pvc1 in default namespace
Create a PVC - pvc2 in test namespace
Create a deployment, say in default namespace
Go to Storage tab --> Persistent Volume Claim --> PVC lists pvc1
Modify the namespace in "Create Deployment" page to test namespace
Now the PVC listed in Storage tab --> Persistent Volume Claim is pvc1 and not pvc2

On 2.5.8-rc10

Deployed a GKE cluster
From cluster explorer, Create a PVC pvc1 in default namespace
Create a PVC - pvc2 in test namespace
Create a deployment, say in default namespace
Go to Storage tab --> Persistent Volume Claim --> PVC lists pvc1
Modify the namespace in "Create Deployment" page to test namespace
Now the PVC listed in Storage tab --> Persistent Volume Claim is pvc2


Issue while downgrading Karpenter

Version
Karpenter Version: v0.37.0
Kubernetes Version: v1.3
Expected Behavior
Get CR's after applying the CRD.
Actual Behavior
Not able to get CR's after applying the v1beta1 CRD's. I was rolling back karpenter from v1.0.0 -> 0.37.0 and removed all the components in my cluster and did a fresh installation.
I am seeing this error while getting the nodeclaims and ec2nodeclasses
Error from server: request to convert CR from an invalid group/version: karpenter.k8s.aws/v1

Can anyone please help me identify what's wrong here.

I have the same issue. @vipul0805, was this closed because you figured it out?

Hi @knadsady, Yes I closed this issue. While attempting to roll back, I deleted v1 the nodes forcefully by removing the finalizers, but the underlying nodeclaims and nodeclasses were not deleted, resulting in the above error. After deleting the v1 resources, I could list the v1beta1 resources.


Failed to construct Oic server object by "var oic = require('iotivity-node')"

According to the [ spec ] ( https://github.com/solettaproject/soletta/blob/v1_beta19/doc/js-spec/oic.md ), when the constructor is invoked without parameters, the device is started in the default (server) role. However the Oic object with parameter "server" is different from the one  without parameters.
The result of the constructor is invoked without parameters:
> var Oic = require('iotivity-node');
> Oic
{ [Function: OicDevice]
  super_:
   { [Function: EventEmitter]
     EventEmitter: [Circular],
     usingDomains: true,
     defaultMaxListeners: 10,
     init: [Function],
     listenerCount: [Function] } }

The result of the constructor is invoked with parameter "server":
> var OicServer = require('iotivity-node')('server');
> OicServer
OicDevice {
  onobserverequest: [Getter/Setter],
  onunobserverequest: [Getter/Setter],
  onretrieverequest: [Getter/Setter],
  ondeleterequest: [Getter/Setter],
  oncreaterequest: [Getter/Setter],
  onupdaterequest: [Getter/Setter],
  onresourcefound: [Getter/Setter],
  ondevicefound: [Getter/Setter],
  ondiscoveryerror: [Getter/Setter],
  device: [Getter/Setter],
  platform: [Getter/Setter],
  _OCProcessIntervalId:
   { _called: true,
     _idleTimeout: 100,
     _idlePrev:
      Timer {
        '0': [Function: listOnTimeout],
        _idleNext: [Circular],
        _idlePrev: [Circular],
        msecs: 100 },
     _idleNext:
      Timer {
        '0': [Function: listOnTimeout],
        _idleNext: [Circular],
        _idlePrev: [Circular],
        msecs: 100 },
     _idleStart: 61093,
     _onTimeout: [Function: wrapper],
     _repeat: [Function],
     domain:
      Domain {
        domain: null,
        _events: [Object],
        _eventsCount: 1,
        _maxListeners: undefined,
        members: [] } } }

So I am not sure I have understood correctly about the spec description.

"invoked without parameters" means
var Oic = require('iotivity-node')();

not
var Oic = require('iotivity-node');

The example is fixed in the newest version of the spec.


This framework is too hard to use,had learned this for a day and still can't use it well

I have no intention of offending,
BUT the framework leaves too many concepts ,with no diagram ,and many complicate classes that are so confusing
I mean the concept of the whole framework were good, but the implement was just a mess,it's just like a puzzle, Not intuitive at all

Thank you trying this out and providing feedback.  As there are mo concrete suggestions for improvement I'll be closing this issue. Feel free to reopen if you wish to add more.


regression:  updating above v1.1.0 causes failure on travis

I've been installing git-lfs on travis and using it successfully.  Updating from v1.1.0 has proven problematic though.
I use this script to install git-lfs, which happens AFTER the git repo is cloned.
#!/bin/bash

GIT_LFS_VERSION="1.1.1"
GIT_LFS_LINK=https://github.com/github/git-lfs/releases/download/v${GIT_LFS_VERSION}/git-lfs-linux-amd64-${GIT_LFS_VERSION}.tar.gz
GIT_LFS="git-lfs-${GIT_LFS_VERSION}/git-lfs"
echo "downloading and untarring git-lfs binary"
wget -qO- $GIT_LFS_LINK | tar xvz

echo "ls"
ls

echo "resetting travis remote"
git remote set-url origin "git@github.com:broadinstitute/gatk.git"

echo "git lfs install"
GIT_TRACE=1 $GIT_LFS install

echo "fetch"
GIT_TRACE=1 $GIT_LFS fetch

echo "checkout"
GIT_TRACE=1 $GIT_LFS checkout

echo "ls-files"
GIT_TRACE=1 $GIT_LFS ls-files
ls -lah src/test/resources/large/
md5sum src/test/resources/large/*.*

echo "logs"
GIT_TRACE=1 $GIT_LFS logs last

echo "ls /home/travis/build/broadinstitute/gatk/.git/lfs/objects/logs/"
ls /home/travis/build/broadinstitute/gatk/.git/lfs/objects/logs/

echo "cat /home/travis/build/broadinstitute/gatk/.git/lfs/objects/logs/*"
cat /home/travis/build/broadinstitute/gatk/.git/lfs/objects/logs/

If I set GIT_LFS_VERSION=1.1.0 then everything works fine, however if I use 1.1.1 or 1.1.2 I have a complete failure to download anything.
I can't reproduce it locally, although I tried using the setup that @larsxschneider used to debug #904.
Here a build logs, the relevant portions are near the top, grep for  git-lfs:

v1.1.0 - success
v1.1.1 - failure
v1.1.2 - failure

I'm downloading the prebuilt jars, but I've also tried building from source with similar results, as well as trying different combinations of pull/checkout/fetch.
(I realized the statement to output the individual log files failed, I can rerun with that fixed if you think it would be helpful)
I could stay with 1.1.0, but I'm having a separate issue which I believe relates to #904 that I haven't been able to work around.

trace git-lfs: ssh<EMAIL_ADDRESS>git-lfs-authenticate broadinstitute/gatk.git download
trace git-lfs: ssh: download attempted with<EMAIL_ADDRESS> Error: exit status 255

That looks to be the core of it, the SSH call to GitHub is failing, although I'm not sure why since it's a public repo, maybe @technoweenie can assist?
The reason it did not fail before 1.1.1 is that there was a bug that ignored SSH failure result codes in 1.1.0. Instead, it just fell back on a made-up https URL unrelated to the SSH output that just happened to work sometimes.

@sinbad Thanks for the insight!  This seems to have been the cause.  I didn't think that the ssh remote was the issue since I had seen those exact same error messages in the working build.  I didn't realize that it was falling back to http as an error.
Changing to an http remote fixed my problem.  Is there any way this could produce a better error message in the future/ work with ssh remotes?

LFS already works with SSH remotes (it's how I use it most of the time), so I don't know why you're getting that error. I think the issue is that you should be exiting your script on failure instead of ignoring errors, that would have halted right after the fetch and been much easier to spot. Maybe a set -e at the top?

I use ssh remotes locally, but I have a key registered with github.  Is it expected that ssh doesn't work for public repos without authentication?

Is it expected that ssh doesn't work for public repos without authentication?

It's not a git-lfs requirement but it's often a server requirement. I don't know the detail of GitHub's implementation but it's common because with SSH the authentication usually happens separately before access to the repo is resolved, so it's required that you have a key that can resolve to an account, before permissions are even checked. @technoweenie can probably confirm though.

I don't know much about this part of the system, but I have another LFS related thing to tackle anyway, so I'll dig in. It seems logical that a valid github key should work on public repos.

Turns out I can answer my own questions by hammering on the keyboard for about 10s. Seems to work fine:
$ git clone git@github.com:docker/docker.git
Cloning into 'docker'...
remote: Counting objects: 144986, done.
remote: Compressing objects: 100% (45/45), done.
remote: Total 144986 (delta 21), reused 7 (delta 7), pack-reused 144934
Receiving objects: 100% (144986/144986), 85.06 MiB | 10.31 MiB/s, done.
Resolving deltas: 100% (95481/95481), done.
Checking connectivity... done.

# this is what LFS actually runs
$ ssh<EMAIL_ADDRESS>git-lfs-authenticate docker/docker download
{
  "href": "https://api.github.com/lfs/docker/docker",
  "header": {
    "Authorization": "RemoteAuth AAAAMONKEY==="
  },
  "expires_at": "2016-03-28T20:14:38Z"
}

@lbergelson What happens when you run this?
$ ssh<EMAIL_ADDRESS>git-lfs-authenticate broadinstitute/gatk.git download

Yeah the issue as I understand it is that his Travis build doesn't have a valid SSH key, and that you need to have some valid key to use an SSH clone URL regardless of the permissions on the repo.

@technoweenie I can definitely use git-lfs with an ssh remote if I have a key.
I had thought you could use ssh without a key if it was a public repo.  That worked up until 1.1.1 but apparently was actually just falling back to http.  I was wondering if ssh remotes were expected to work without a key for public repos, or if they will never work.  (i.e. is there a bug or am I trying to do something impossible.)  If it will never work, an error message that says "you need a key to use an ssh remote" would be useful if it's practical.

Oh right, without any key. For some reason I read that as "without any key that has push or organization access."
I agree that the error should be reported better. It's on my list. I should be better about posting things like this as bugs though :)

Thank you everyone for the help.


Problem with Nginx/ModSecurity Log Rotation and Size

Ubuntu 22.04
Nginx/1.23.2
ModSecurity-nginx v1.0.3
logrotate 3.19.0
Fairly new to Nginx/ModSecurity, but I've been following a tutorial here and got everything set up, except the log rotation:
https://www.linuxcapable.com/how-to-install-nginx-with-modsecurity-3-on-ubuntu-22-04-lts/?mtm_campaign=reddit#Create_ModSecurity_LogRotate_file
Basically what I would like to do is limit the size of the ModSecurity audit logs to 1GB, and then rotate the log if it grows larger than that, keeping a maximum of 7 log files. (My server ran out of disk space the other day with 20GB log files). The logs don't seem to be rotating properly either. This is what I have in /etc/logrotate.d/modsec:
/var/log/modsec/modsec_audit.log
{
        size 1M
        rotate 7
        missingok
        compress
        delaycompress
        notifempty
}

Here is the user that is actually running nginx (I'm assuing root?):
ubuntu@home-nginx:/var/log/nginx$ ps -eo "%U %G %a" | grep nginx
root     root     nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data www-data nginx: worker process
www-data www-data nginx: worker process
ubuntu   ubuntu   grep --color=auto nginx

Although my Nginx error.log and access.log is showing www-data:adm as the owner of those files.
Regardless, I tried adding combinations of "su www-data adm" and/or/both "create 640 www-data adm" in the logrotate config file without success.
When I manually run "sudo logrotate -v /etc/logrotate.d/modsec", it rotates, but nginx continues writing to the old log:
ubuntu@home-nginx:/var/log/modsec$ ls -al
total 132488
drwxr-xr-x  2 root     root        4096 Nov  3 00:32 .
drwxrwxr-x 13 root     syslog      4096 Nov  2 23:31 ..
-rw-r-----  1 www-data adm            0 Nov  3 00:32 modsec_audit.log
-rw-r-----  1 www-data adm    135656428 Nov  3 00:49 modsec_audit.log.1

Again, even if root:root is the owner of the log files, it's the same problem. Is this a bug, or am I doing something wrong?

This is now solved, I stumbled upon the "copytruncate" solution by chance. My full solution and details are found here:
https://stackoverflow.com/questions/74296752/logrotate-ignores-size-parameter-with-modsecurity-log/


[AN-247] Edit method functionality

Jira Ticket: https://broadworkbench.atlassian.net/browse/AN-247

Summary of changes:

What
Adds "Edit method" functionality
Why
FC UI migration
TODO

[x] fix tests
[x] add unit tests

Testing strategy

[x] manual testing
[x] unit tests

Action menu

Edit modal

Sonarcloud reported one below issue. I am not sure how strict we want to enforce it because reducing the number of arguments would entail creating a new type for passing arguments. Plus Terra UI does have other functions with more than allowed 7 arguments. But I would like to reviewers opinion on this.

Async method 'createNewSnapshot' has too many parameters (9). Maximum allowed is 7.

@salonishah11 Regarding the SonarCloud issue, I have no problem with this function's having 9 arguments. All of its arguments are necessary for making the Ajax request, and if the caller had to construct the payload object themselves at the call site so that it could be passed as one argument to the provider function, that would defeat part of the purpose of the provider abstraction layer.


Dash-license support in CI

Eclipse uses dash-licenses (https://github.com/eclipse/dash-licenses)  to vet license of dependencies.
This PR does two things to better integrate with Eclipse process with less manual work for our RUST components

it adds support to createbom to generate the inout file required by dash. I chose to create it via out existing tooling, instead of using the cmdline tricks in the dash-documentaiton example, so we have a "single source of truth" wrt to dependencies (i.e. what goes into the bom in the containers, is the same thing checked against dash).  In both cases this relies on cargo to get hte information
I added a composite action, that will take a Dash input file, run it, and archive the full report, as well as the stdout/stderr output form dash
I integrated into databroker and databroker-cli builds. I chose to extend an existing stage (lint), because otherwise we would need to set up a complete rust environment a fourth time in the build process
Dash check can never fail, only createbom can (and will) if it sees a non-whitelisted license. Rationale is, that sometimes the project may decide to add a component with a "fitting" license between releases, which may not yet have been cleared/scanned yet. So this avoids deadlock (at the price we might need to pull a dependency later. But this is how it has always been.)

Easiest way to check any new dependencies, is checking the build summary, where you get a post like this

See here for a complete run https://github.com/boschglobal/kuksa.val/actions/runs/4607432259
This is also a good example, where dash finds some deps that are still in the clearing process. If something new is coming up, the "dash data" aritfact contains the Dash input. This can be used by project leads, e.g. @bs-jokri  directly to trigger the scanning in Eclipse IP ticketing system

In other projects that I am involved in we keep actually keep the output of the Dash tool in the repository itself. This can then also be used as reference for project reviews by the Eclipse EMO team.

@SebastianSchildt LGTM. One improvement might be to provide the link to the archived Dash output as comment in the PR. This way, it is easier to access the corresponding artifacts. (Maybe this already happens but I haven't seen it in the code).

@bs-jokri suggestion is good, however  that is currently not possible, as the GH action permission system does not allow posting comments, when coming from an external fork (GH standard token does not have the sope then, and any custom secrets would not be accessible in the runs). There are hacks around it running an external  webservice, but we do not currently have that
Will merge for now, and keep it in mind, whether this is something that might be set up, once we are in a new org. Currently any "hacks" would need to be done on a per-repo basis which complicates things further


fix: fix concurrency issues with disabling worker for RSA

Codecov Report

Merging #7 into master will increase coverage by 0.06%.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master    #7      +/-   ##
=======================================
+ Coverage   98.93%   99%   +0.06%
=======================================
  Files          10    11       +1
  Lines          94   100       +6
  Branches        8     9       +1
=======================================
+ Hits           93    99       +6
  Misses          1     1

Impacted Files
Coverage Δ

src/keys/rsa.js
100% <ø> (ø)
:arrow_up:

src/utils/disable-worker.js
100% <100%> (ø)

src/utils/prng.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


"Could not parse image id"

I build the image and run the tests with dockerComposeTest:
cd basic-with-tests
sbt publishLocal
sbt dockerComposeTest

And I get the following error:
Starting Test Pass against a new local Docker Compose instance.
Building a new Docker image.
[info] Compiling 1 Scala source to /Users/tkolev/Documents/src/p/sbt-docker-compose/examples/basic-with-tests/target/scala-2.11/classes...
[info] #1 [internal] load build definition from Dockerfile
[info] #1 sha256:4fe80f26fd94ea0b969097cd5b782f70deb12895565a53182fbaf04fe8a38057
[info] #1 transferring dockerfile: 159B done
[info] #1 DONE 0.0s
[info]
[info] #2 [internal] load .dockerignore
[info] #2 sha256:898ecfbe1284b8da8966be8cf4c9e9f34c97ec729f1403f5518ef3ae42f370b4
[info] #2 transferring context: 2B done
[info] #2 DONE 0.0s
[info]
[info] #3 [internal] load metadata for docker.io/library/java:latest
[info] #3 sha256:b068b5b88b0554fb1c53bb751f257a586571f2c917dc5f7d2e03284fa174009e
[info] #3 DONE 2.2s
[info]
[info] #4 [1/2] FROM docker.io/library/java@sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
[info] #4 sha256:b89ca3cfda0435b6aaeed8b03d8ce0e76540980728a7650b46cdda0d0d918303
[info] #4 DONE 0.0s
[info]
[info] #5 [internal] load build context
[info] #5 sha256:49709b247268a93ed92ebcb29b3c28b9988e5264da3302b35d9d23d91e6f974c
[info] #5 transferring context: 5.55MB 0.4s done
[info] #5 DONE 0.4s
[info]
[info] #6 [2/2] ADD 0/classes 1/scala-library-2.11.1.jar /app/
[info] #6 sha256:1de149b53a6b2e76040876e7d5e4824d29c05c88d1a8579e8aea76c16cb7f991
[info] #6 CACHED
[info]
[info] #7 exporting to image
[info] #7 sha256:e8c613e07b0b7ff33893b694f7759a10d42e180f2b4dc349fb57dc6b71dcab00
[info] #7 exporting layers done
[info] #7 writing image sha256:1fcbde2ec01bcf544a0f063a9d1b0111f60ac5f6365719d4dd497b71ab4fc528 done
[info] #7 DONE 0.0s
[info]
[info] Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
[trace] Stack trace suppressed: run last *:docker for the full output.
[error] (*:docker) Could not parse image id

Had the same issue.
Updating sbt-docker to 1.8.2, sbt to 1.4.0+ and sbt-docker-compose to 1.0.35 solved the issue for me.


Add an  spatial index in geoparquet format as optional

Some geospatial formats have started to include a spatial index flatgeobuf. I think would be great to include it as optional for geo parquet.
I consider it quite interesting because it provides a way to get spatial features (based on bbox for example) from a parquet file without requiring to scan the whole file. It unblocks lots of use cases:

Analysis from distributed platforms such as Spark or Dask.
Tilers. You can create dynamic tilers directly from parquet files.
Visualization based on the viewport. A tool like QGIS might only read the geospatial data inside the user viewport rather than read the whole file.

I'm not an expert in parquet, and it's not clear to me how to implement a geospatial index there. It looks like parquet includes something for indexes at metadata.

At the thrift definition it looks the IndexPageHeader is under a TODO comment.
Just opening this to start the discussion on how to properly implement this.

A particularly good use case is with OGC API - Records, which contains a bounding box but most of the payload is columnar metadata. Having an index on just the bounding box portion would enable super fast queries, like COG for features.

For the discussion, it might be useful to distinguish between different "levels" of spatial indices: a spatial index for a single file (like flatgeobuf has) vs spatial indexing based on a multi-file partitioning.
For a partitioned dataset, having a bbox per file (as being added in https://github.com/opengeospatial/geoparquet/pull/21), can already serve as a rudimentary spatial index. That is also how we are using this in dask-geopandas to selectively load only those partitions that are needed for the operation or visualization.
But for this, we probably want to look for a better solution long-term (that doesn't rely on extracting a piece of metadata out of each individual file), with some additional manifest or spatial index file that gathers this information. And it might be interesting to see if this could integrate with existing data lake solutions (like Iceberg of Delta Lake). It might be best to open a separate issue for this topic.
When focusing on the single file level here, the Parquet format has some different "indexing" related features:

Parquet can (optionally) store min/max statistics in the ColumnMetaData (so per row group / column chunk) or in the data pages.
Parquet has a ColumnIndex that enables skipping pages within a column chunk. This is also based on column min/max values.
Bloom Filter - hash-based approximate method to test presence of certain values.

(sidenote: the C++ Parquet implementation (which lives in the Arrow project) currently only supports the ColumnChunk statistics for filtering data based on this with predicate/filter pushdown)
So both indexing related features (aside from the Bloom filter) that are built-in into the Parquet format are based on min/max values. This makes them hard to use for spatial filtering, I think.
If we would want to do something like including a packed rtree index in the file itself, as flatgeobuf does, the only option is putting this in the file metadata (apart from extending the Parquet format). Which in addition means that it would need to get eg base64 encoded to store it as a valid string. This also doesn't feel as a very appealing option.
(personally, I think focusing on a good story for spatial indexing partitioned datasets (up to the file level) might be the most valuable)

Hm, so if i read it correct, than having huge parquet files with a lot of geometries with an ability to quickly read a correct subset of rows out of it is never a use case, and as workaround the suggestion is to have some mechanism to split such large tables into spatially collocated groups stored in separate files, which will always be of a size that is 'good enough' (depending on the use case) to fit performance requirements?
@jorisvandenbossche

Sorry for the word dumb, but this is the setup for our thinking and experiments that @pomadchin has been running. It seems to do something good.
TLDR is the its certainly possible to make querying Parquet file a lot faster by encoding MBR into records and filtering on those first and it kind of maps neatly to what R-Tree does.
Cribbing this image from Wikipedia we can logically map:
Red box = Page
Blue Box = ColumnChunk
Black box = Parquet File

(I'm pretty sure that Parquet reader is smart enough to apply filtering per Page where they can be multiple pages for each ColumnChunk but I'm not 100% on this.)
...
Spatial indexing is the ability to minimize the amount of data scanned and read based on a spatial query. While the user actual query may be some complex geometry it's typical for such systems to perform the primary filtering by reducing the query to a Minimum Bounding Rectangle (MBR) for the data scanning stage and subsequently perform the refinement check for the actual intersection at a later time. The base case is that every file and every record is read, evaluated in the refinement step.
All this implies that in order to be actually spatially indexed that records that are spatially co-located should be co-located with-in the Parquet file structure. This allows for maximum number of records to be ignored and minimum number of records to be read for a given spatial query. I guess we’re not talking about how that happens here, that’s some spatial-sort process.
Encoding Strategy
Broadly speaking there are two approaches to implementing a spatial index:

Encoding it using an R-Tree.
Here chunks of spatial data that are spatially closed are grouped into rectangular regions which themselves can be grouped forming a tree. These regions may overlap.

Encoding it by intersection over a discrete grid.
This can be a grid like H3 or rectilinear grid, usually mapping each grid cell to the index of a space filling curve. The cells never overlap and fully cover the surface.

I assert that only R-Tree encoding is applicable for GeoParquet. This is because the primary purpose of GeoParquet is to be a common cloud friendly vector distribution format. So it should be readable by clients of various level of sophistication.
When indexing lines or polygons by intersection over a discrete grid implies that a single record could intersect multiple cells and thus map to multiple indices. Because a query could hit only one of the candidate cells this requires storing geometry with every cell that it intersects. Systems that use this approach must deal with possible data duplication when evaluating any query.
Because bloom filters are basically set membership queries and I’ve argued that set-membership via intersection to the grid is not an acceptable approach here, I don’t really think that they help us. I’d love to be wrong though.
If we require no record duplication a primitive reader could ignore the spatial indexing feature and read every record, using them as needed without any additional concerns. This is highly desirable for GeoParquet format and leaves us with the question of how to implement an R-Tee in the Parquet format.
Parquet Structure
The basic idea is to represent geometries as Minimum Bound Rectangle(MBR) and filter on those values at various levels of aggregation, thus creating an R-Tree. This is not a novel idea and is explored in:

Yu, J., Zhang, Z. & Sarwat, M. Spatial data management in apache spark: the GeoSpark perspective and beyond. Geoinformatica 23, 37–78 (2019)

Eldawy, Ahmed et al. “Sphinx: Empowering Impala for Efficient Execution of SQL Queries on Big Spatial Data.” SSTD (2017).

Parquet structure offers several levels at which we can perform filtering:
Row
Each row corresponds to a geometry and its attributes.
We need a basic way to filter each row by intersection of a query BBOX.
Because right now we’re talking about storing geometries in formats like WKB which are not understood by native parquet reader predicates we need something else.
One way we can get around this problem is to require that the writer of a GeoParquet file with support for spatial indexing adds an MBR column that contains (xmin, xmax) (ymin, ymax) of the indexed geometry. This will allow us to actually use existing push-down filters for the first pass at intersections.
ColumnChunk Stats
Multiple rows are aggregated into a Row Groups where column values are grouped by Column Chunks which in turn can consist of multiple pages. ColumnChunk maps to the leaf region of the R-Tree. The parquet format is able to store min/max stats of primitive valued columns stats per Page and ColumnChunk. These stats on the MBR columns give us the MBR of the leaf region. This again allows the existing parquet readers to skip reading chunks where the filter predicate can't be true based on the min/max values recorded.
File Footer
Larger datasets will typically span multiple files, each typically 32MB to 64MB in size, this is configurable on write. Thus a whole file can be skipped if none of the the records intersect query BBOX. Each file will store over all min/max values for the MBR.
The parquet reader can potentially discard the whole file after inspecting the footer.
We can also add the BBOX to the file metadata but it is not actually needed if we’re encoding MBR as a column. Room for debate here is more clear. Either way we would need a specialized mechanism to make use of the metadata information.
File Index
Opening a filter in order to inspect the footer can still be avoided if there is a secondary index of file MBRs which can be consulted. This can potentially be stored as a side-car file, maybe GeoJSON FeatureCollection for harmony with STAC efforts or perhaps some other live index like PostGIS. If GeoParquet gets loaded into Hive or DataBricks Delta Lake then actually this type of index gets built up “for free”. I kind of have a suspicion that actually for systems handling large datasets something like a secondary index is already going to be in place as a rule. But having a static index file that allows any reader to locate the right parquet files in a dataset only from blob storage is clearly the more cloud friendly way, so it’s probably very much worth it.

Great explanation @echeipesh! Really excited about having at least something that works!
Just to share with the others, @pomadchin @echeipesh and I have been working during the last few weeks on how to speed up tiles intersections with CARTO analytics toolbox for Databricks. We've been able to reduce intersections from 10 minutes to 2 seconds using this approach of storing the MBR at a separated column and clustering the data spatially. More info here

All this implies that in order to be actually spatially indexed that records that are spatially co-located should be co-located with-in the Parquet file structure.

Some warehouses such as BigQuery implement it that way, if you cluster a table in BigQuery by geom and you use a spatial filter, you only read that region of the world. If you don't you full scan the whole table. I think snowflake is also working on something similar.

One way we can get around this problem is to require that the writer of a GeoParquet file with support for spatial indexing adds an MBR column

It's not the perfect solution for me, but that's true it's the best we have so far. My biggest concern is that users will have an extra column that could have several issues (for example name collision with other user columns).
The only solution I can find right now is to modify the encoding of the geometry to add the Minimum Bounding Rectangle (MBR), not very exciting 😄 . @jorisvandenbossche any suggestion at this point?

One way we can get around this problem is to require that the writer of a GeoParquet file with support for spatial indexing adds an MBR column that contains (xmin, xmax) (ymin, ymax) of the indexed geometry. This will allow us to actually use existing push-down filters for the first pass at intersections.

I really like this idea because it leverages what Parquet supports out of the box and limits the custom implementation we need.

(I'm pretty sure that Parquet reader is smart enough to apply filtering per Page where they can be multiple pages for each ColumnChunk but I'm not 100% on this.)

It looks like the format allows this (see here and here plus this doc) with the caveat that page statistics are stored in the page header, which is not (I think) in the file footer. Whereas column chunk statistics are part of ColumnMetaData which is part of ColumnChunk which is part of the RowGroup metadata in the file footer.
The implication here is column chunks/row groups can be skipped by reading the file metadata, but to skip pages you need to additionally load the page metadata. This is probably a good thing so that the file footer doesn't become too large.

The parquet reader can potentially discard the whole file after inspecting the footer.

Parquet datasets that are partitioned into multiple files often already have a top-level metadata sidecar file. This doesn't look to be enforced by the spec, but seems to be just a popular implementation detail?
So in effect we could have a cascade:

Read the metadata sidecar file to see which files to load
Read the footer of each file to see which row groups to load
Read the header of each row group to see which pages to load

My biggest concern is that users will have an extra column that could have several issues (for example name collision with other user columns).

I don't see name collision as an issue because the writer is able to see all the names in the dataset when writing. So if its first choice of name "_mbr1" is already used in the dataset, then it can go on to "_mbr2" and so on until it finds a non-conflicting column name. And then it can store in the geo metadata the name of the column that contains the MBR data.

@echeipesh we need to convert this issue into the best practises doc that explains how we can reshape data and form the proper geoparquet to make use of parquet filtering on reads!

I had to drop off the call early yesterday so I missed any discussion about spatial indexing. I think it would be helpful for the spec to describe (either optional or as an extension) the metadata format for spatial indexing so that readers and writers have a contract for how to store this metadata.
But I would agree that recommendations for how to actually partition the data would be best suited to a best practices doc, so that the method of partitioning is flexible for different use cases.

Explicitly describe the desired parquet structure and explanations why it works, it also highlights the value of geopandas/geo-arrow-spec#4

Can you explain your thoughts behind this a little more? I created an example parquet file with geoarrow geometry encoding via gdal (docker run -v $(pwd):/data -it osgeo/gdal:latest ogr2ogr /data/rivers.parquet /data/rivers.geojson -lco GEOMETRY_ENCODING=GEOARROW) and it doesn't seem to have the statistics metadata we want out of the box.
The column metadata for the geometry column for a row group:
{'file_offset': 22214692,
 'file_path': '',
 'physical_type': 'DOUBLE',
 'num_values': 2405304,
 'path_in_schema': 'geometry.list.item.list.xy',
 'is_stats_set': True,
 'statistics': {'has_min_max': True,
  'min': -108.985001,
  'max': 40.996119,
  'null_count': 0,
  'distinct_count': 0,
  'num_values': 2405304,
  'physical_type': 'DOUBLE'},
 'compression': 'SNAPPY',
 'encodings': ('PLAIN_DICTIONARY', 'PLAIN', 'RLE', 'PLAIN'),
 'has_dictionary_page': True,
 'dictionary_page_offset': 2604657,
 'data_page_offset': 3654378,
 'total_compressed_size': 19610035,
 'total_uncompressed_size': 20081644}

You can see that the statistics object for native arrow geometries stores min and max but this is the min of both x and y and the max of both x and y, so it's not the full bbox.
I would guess that a struct encoding of arrow-native geometries actually would work out of the box, guessing that the native parquet storage of that would be geometry.struct.x and geometry.struct.y as two different parquet column paths which would each get their own statistics.

Just a quick note that my hunch was correct. If you create a dummy dataset with a struct column from Arrow, it does get saved as two columns in Parquet, each with their own statistics.
Creating a test dataset:
import pyarrow as pa
import numpy as np
import pyarrow.parquet as pq

x = pa.array(np.array([1, 2, 3, 4], dtype=np.float64))
y = pa.array(np.array([5, 6, 7, 8], dtype=np.float64))
points = pa.StructArray.from_arrays([x, y], names=['x', 'y'])
table = pa.Table.from_arrays([points], names=['geometry'])
pq.write_table(table, 'test.parquet')

Then checking its metadata:
import pyarrow.parquet as pq
meta = pq.read_metadata('test.parquet')
rg = meta.row_group(0)
rg.to_dict()

You can see that this one StructArray is stored in Parquet as two logical columns, and therefore the bounding box of the row group is implicitly stored automatically. This is definitely something for us to keep in mind as we discuss an arrow-native geometry encoding.
{'num_columns': 2,
 'num_rows': 4,
 'total_byte_size': 234,
 'columns': [{'file_offset': 121,
   'file_path': '',
   'physical_type': 'DOUBLE',
   'num_values': 4,
   'path_in_schema': 'geometry.x',
   'is_stats_set': True,
   'statistics': {'has_min_max': True,
    'min': 1.0,
    'max': 4.0,
    'null_count': 0,
    'distinct_count': 0,
    'num_values': 4,
    'physical_type': 'DOUBLE'},
   'compression': 'SNAPPY',
   'encodings': ('PLAIN_DICTIONARY', 'PLAIN', 'RLE'),
   'has_dictionary_page': True,
   'dictionary_page_offset': 4,
   'data_page_offset': 48,
   'total_compressed_size': 117,
   'total_uncompressed_size': 117},
  {'file_offset': 334,
   'file_path': '',
   'physical_type': 'DOUBLE',
   'num_values': 4,
   'path_in_schema': 'geometry.y',
   'is_stats_set': True,
   'statistics': {'has_min_max': True,
    'min': 5.0,
    'max': 8.0,
    'null_count': 0,
    'distinct_count': 0,
    'num_values': 4,
    'physical_type': 'DOUBLE'},
   'compression': 'SNAPPY',
   'encodings': ('PLAIN_DICTIONARY', 'PLAIN', 'RLE'),
   'has_dictionary_page': True,
   'dictionary_page_offset': 221,
   'data_page_offset': 261,
   'total_compressed_size': 113,
   'total_uncompressed_size': 117}]}

the FlatGeobuf index code is fairly small and easily portable...I wonder if that could be useful here somehow.

The FlatGeobuf index is a packed hilbert r tree, which it says was inspired by https://github.com/mourner/flatbush. I played around with dask-geopandas' hilbert curve implementation a bit, but had a little difficulty getting a "good" repartitioning of a test dataset with that. Generating hilbert values seems like the easy part; actually cutting the boundaries between partitions so that there's minimal overlap between partitions while keeping partitions roughly equal in size seems like a much harder part.
I ported flatbush to optimized Cython recently, in the hope that it might make choosing the partitions easier. Testing with the Microsoft US Buildings dataset (130 million polygons) I get a decent partitioning structure, but could probably be improved (this is with 521 equal-sized partitions).

A caveat about the above is that it mostly falls under best practices and not under specification. If the Parquet metadata allows for an R-tree, then it could be created by any method, not just via hilbert curves. So essentially we could take the FlatGeobuf packed-hilbert r-tree as inspiration without declaring it the only indexing method.

Any update on this issue? Does parquet metadata allow for a R-tree?

R-Tree for clustering
If we just talk about how to cluster / reorg data based on the spatial proximity, any space filling curve or H3/S2/GeoHash will do the same thing although it may not preserve as much as spatial information as R-Tree clustering. The general process is that (1) create a space filling curve or H3/S2/GeoHash id for each geom (2) sort / partition geom by this id.
If we want to R-Tree clustering, the general process will be (1) create an R-Tree based on a small sample of the raw data (building an R-Tree on the entire dataset is a bad idea, see [1]) (2) let each obj in the dataset traverse the tree in a top-down fashion to know its exact leaf node ID. (3) sort/partition geom by this id.
R-Tree for the metadata
I don't think it is a good idea of putting R-Tree in the column metadata for enabling row-group level filtering. This is because R-Tree will introduce additional overhead for storage and maintenance (see [1]) considering geoparquet might be used together with table formats such as Iceberg, Hudi and DeltaLake for supporting data updates. We @wherobots already have a GeoParquet implementation for Iceberg called Havasu (https://docs.wherobots.services/latest/references/havasu/introduction/)
[1] Indexing the Pickup and Drop-off Locations of NYC Taxi Trips in PostgreSQL – Lessons from the Road: https://jiayuasu.github.io/files/paper/hippo_sstd_2017.pdf

We also conducted a similar benchmark to study the pruning power of S2/GeoHash (e..g, overlapping area around partitions), You can see it here: https://wherobots.com/spatial-data-geoparquet-and-apache-sedona/

https://github.com/opengeospatial/geoparquet/pull/191 included a preliminary implementation of spatial partitioning in GeoParquet, to be released in GeoParquet 1.1.

GeoParquet 1.1 is labeled as stable - can this be closed? This is exciting!


Integrate some PostCSS functionality

After finally reading about PostCSS, I think it's a good idea to start trying to integrate this in to my workflow. The following should be added to my gulpfile:

[x] Automatic px fallback for rem units.
[x] Lint stylesheets using custom rulesto ensure they're well coded.
[ ] Integrate cssnext, which allows use of some awesome future syntax.
[ ] Integrate something that strips out all unused CSS. This may be more easily said than done, particularly with WordPress sites.

There's a lot more out there with PostCSS, but I think this is a good starting point. If everything goes well, I'll continue integrating more functionality.
More information:

http://webdesign.tutsplus.com/tutorials/postcss-deep-dive-what-you-need-to-know--cms-24535
https://github.com/postcss/postcss
http://cssnext.io/

Just thumbed through a great article on this.
http://www.sitepoint.com/improving-the-quality-of-your-css-with-postcss/

I just had an interesting idea. I'm thinking it would make a lot of sense to make my "critical" css all the styles for the mobile version of the site. However, that's also the majority of the styles. So maybe it's more like... The styles required to make the top portion of the page load on a screen the size of a Nexus 5. That would cut down on a lot of the CSS required, including the mobile nav, footer, callouts, etc that appear on most sites.
https://github.com/addyosmani/critical

Closing this, it's better suited in separate tasks, and I've already addressed some of it.


Add support for FreeBSD CURRENT (aka freebsd13)

Using the last FreeBSD-CURRENT (development snapshot) the libc build, but tests fail.
This patch detects and supports FreeBSD CURRENT as freebsd13, and reworks the conditional compilation to use the freebsd11 attribute instead of not(freebsd12)
For now, freebsd13 is reusing all freebsd12 definitions, except for ELAST
While here, add a new errnointroduced in freebsd13

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @gnzlbg (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

So this LGTM, @asomers what do you think?

This patch has the only goal to allow me to have a libc up and running on FreeBSD 13 and I thought it was a good way to start contributing to this crate.
My following goal is to make cpuset_{get|set}affinity() functions usable from Rust.
However I'm willing to help to improve FreeBSD support in general.
ELAST was already there and I see it changed because of EINTEGRITY (already added with this patch). In general I agree to remove it, but I'm not sure that it can be easily done without breaking the crate retro-compatibility (removing is considered a breaking change)
I can work to add the other FreeBSD13 symbols in a later patch.
For the cross-compile problem, I've not a clear idea of how that could be solved. Maybe adding a feature to the crate, managed by build.rs, to generate appropriate rustc-cfg, with default to freebsd11 ?

@bors: r+

I think that, as long as freebsd11 and 12 are not broken, if this works for you, it is ok to merge. We should try setting up at least a build job for freebsd 13 to check that things don't stop building, but that can be done later (should be the next step though). At some point once there are freebsd 13 images available on cirrus-ci, we can start running the tests there.

:pushpin: Commit 72aa2262ca3e8e7889e8872b7508b81d56d70e6a has been approved by gnzlbg

:lock: Merge conflict
This pull request and the master branch diverged in a way that cannot be automatically merged. Please rebase on top of the latest master branch, and let the reviewer approve again.
How do I rebase?
Assuming self is your fork and upstream is this repository, you can resolve the conflict following these steps:

git checkout invert-freebsd12 (switch to your branch)
git fetch upstream master (retrieve the latest master)
git rebase upstream/master -p (rebase on top of it)
Follow the on-screen instruction to resolve conflicts (check git status if you got lost).
git push self invert-freebsd12 --force-with-lease (update this PR)

You may also read Git Rebasing to Resolve Conflicts by Drew Blessing for a short tutorial.
Please avoid the "Resolve conflicts" button on GitHub. It uses git merge instead of git rebase which makes the PR commit history more difficult to read.
Sometimes step 4 will complete without asking for resolution. This is usually due to difference between how Cargo.lock conflict is handled during merge and rebase. This is normal, and you should still perform step 5 to update this PR.

Error message
Auto-merging src/unix/mod.rs
CONFLICT (content): Merge conflict in src/unix/mod.rs
Automatic merge failed; fix conflicts and then commit the result.

:umbrella: The latest upstream changes (presumably #1438) made this pull request unmergeable. Please resolve the merge conflicts.

This needs to be rebased

rebased

@bors: r+

:pushpin: Commit a3681f921d9e3c3ea2fbacf06e7d0314d4efb1d1 has been approved by gnzlbg

:hourglass: Testing commit a3681f921d9e3c3ea2fbacf06e7d0314d4efb1d1 with merge 736c600ce17673cb34976098c64d896fa1a7ce1e...

:broken_heart: Test failed - checks-cirrus-freebsd-12

It appears that some ctest dependency is now failing to build on cirrus ci for some reason.

I ran some tests and it seems that the extprim crate is broken using nightly

Which dependency is pulling it? Maybe we can just remove that dependency somehow (this would be a ctest issue), it is weird that it only triggers on freebsd12 cirrus build job.

extprim is needed by syntex_syntax2 that's needed by ctest.
Theoretically, extprim is not needed anymore, because rust 1.16 provides u128 and i128
The error is of this form:
error: `X...` range patterns are not supported
   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/extprim-1.7.0/src/traits.rs:94:21
    |
94  |                     1 ... $e => u128::new(mantissa) << exp,
    |                     ^^^^^ help: try using the maximum value for the type: `1...MAX`
...
117 | impl_to_extra_primitive_for_float!(f32, 23, 104, 103);
    | ------------------------------------------------------ in this macro invocation

error: expected one of `=>`, `if`, or `|`, found `104`
   --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/extprim-1.7.0/src/traits.rs:94:27
    |
94  |                     1 ... $e => u128::new(mantissa) << exp,
    |                           ^^ expected one of `=>`, `if`, or `|` here
...
117 | impl_to_extra_primitive_for_float!(f32, 23, 104, 103);
    | ------------------------------------------------------ in this macro invocation

and it seems something related to macro, the $e is not recognized as upper limit.

So syntex_syntax2 requires extprim 1.0, https://github.com/gnzlbg/syntex/blob/master/syntex_syntax/Cargo.toml#L15

I suppose we could patch that to a extprim = "=1.0" to fix it, or maybe extprim 1.6 did not have this issue ?

1.0 and 1.6 fails to build, they all have the same macro...

Is there something I can do to fix it?

@bors: r+

:pushpin: Commit a3681f921d9e3c3ea2fbacf06e7d0314d4efb1d1 has been approved by gnzlbg

:bulb: This pull request was already approved, no need to approve it again.

This pull request previously failed. You should add more commits to fix the bug, or use retry to trigger a build again.

:hourglass: Testing commit a3681f921d9e3c3ea2fbacf06e7d0314d4efb1d1 with merge 7e4dfb818793b7fce9b96e4baee37ea2212bc6e5...

:broken_heart: Test failed - status-appveyor

@bors: retry

Isn't git history a bit messed up here?

:hourglass: Testing commit a3681f921d9e3c3ea2fbacf06e7d0314d4efb1d1 with merge 933b7db044f2249fa231ab91f0d38d9f56b51cad...

:broken_heart: Test failed - status-azure

@bors: r+

:pushpin: Commit 154e58dd122cc0d49d299ce0c1d9dfe50eb6f483 has been approved by gnzlbg

:hourglass: Testing commit 154e58dd122cc0d49d299ce0c1d9dfe50eb6f483 with merge 245b0f891bd8a02c67af7260a6e879885b3ef8b3...

:sunny: Test successful - checks-cirrus-freebsd-11, checks-cirrus-freebsd-12, status-azure
Approved by: gnzlbg
Pushing 245b0f891bd8a02c67af7260a6e879885b3ef8b3 to master...


Pointer Sweep should include all Sections with Readable semantics and backed by a file

Binary Ninja 4.2-dev
In the following binary PointerSweep doesn't pick up pointers in the .rdata section and it should.
PE-bear_dumped.exe.zip

Fixed in 4.2.6360.


Looping in parent and child workflow returns unexpected values for variable ${i}

test1.zip
Hi,
Attached is a digdag project folder with the following workflows and what they do:
Workflow Name: "test4-1.dig"

Do 2 loops. For each loop, export variable ${var1}: ${i+1}
Call workflow "test2-2.dig".

Workflow Name: "test2-2.dig"

Do 3 loops.  For each loop, echo>: ${var1}.

Problem:
When I run "test4-1.dig", I expected that it will print the following values in order:
1
1
1
2
2
2
However, the actual values that I saw, in order, are:
1
2
3
1
2
3
My understanding was that ${var1} was assigned a static value in the parent workflow (test3-1.dig seems to support this assumption) and the child workflow will just read that static value.  However, in this case, it seems that the variable ${i} created by the loop command in the child workflow dictates what value ${var1} is.
Can you please explain the behavior if I'm misunderstanding?  And if I am misunderstanding, can you provide an example of how I can produce the result I expected?

Hello, @ctlbui88
I don't recommend to use ${} syntax in _export section.
It causes an unexpected result.
Digdag evaluates ${} syntax in each task even if you write in _export part.
So, echo> ${var1} means echo> ${i+1} and ${i} value is used loop> operator value in test2-2.dig
That's why the output is the following.
echo> ${first_loop_i_value_in_test2-2.dig  = 0 + 1} -> 1
echo> ${second_loop_i_value_in_test2-2.dig = 1 + 1} -> 2
echo> ${third_i_value_in_test2-2.dig       = 2 + 1} -> 3

Hello, @ctlbui88
This comment may help too.

understood.  Thanks!


Fix crash when backgrounding app while ImageVideoCamera is active

Fixes crash when backgrounding app while GPUImageVideoCamera is active. Does this by observing the applications state and synchronously stopping the openGL  processes when it's backgrounded.
Fixes these issues:

issue 1981
issue 197

I think something is wrong with Travis CI, the error is The command "gem install cocoapods --pre --quiet" failed and exited with 1 during .

build

This is great. From my experience, it might be a bit overkill (I only call glFinish on background and nothing on foreground), but seems pretty good.

@facetious great to hear! 😄  I added _applicationIsActive so that it can be used in other places in the GPUImageVideoCamera too, because a lot of bugs are caused by things happening when the app is backgrounded. I can remove it if you think that's better? It doesn't really serve a function at the moment.

I'm not sure which is better. My patch was just a quick-and-dirty fix applied directly to the GPUImageContext. This makes it not rely on usage of a specific view class.
https://github.com/facetious/GPUImage/commit/3640e90423d672d41b3f9a216eb06453b644b534


Project file not always updated when LibMan operations occur

[P1] [ProjRef] Asp.NET Web Project (Framework) [Empty]: libman.json not added to the project when using Add Files UI
[P2] [ProjRef] ASP.NET (Core) [Empty]: Clean will delete files and folders, but does not remove them from the project.
[P1] [ProjRef] Asp.NET (Core): Restore operation does not add new folders to project

Issue is with Framework projects.
Repro:
Create ASP.NET (Framework) project. (Empty)
Right-click the project root and Add Client Side Library.
Add latest jquery library.
Files get added to the file system, but they are not included in the Project.


[Q]: Append to wandb Table

Ask your question
Given a table logged on the wandb web app, I want to append a new row to it. Currently, if I call wandb.log and pass only the new row, it will overwrite the existing table instead of appending it. I saw multiple issues complaining about the same problem over the years, without a clear and efficient resolution.
Unacceptable 'workarounds':

Call wandb.log for the table only at the end of training. Not acceptable, I need to look at the data in the table during training
Keep a copy of the table locally, append the new row to it and wandb.log the entire new table. Not acceptable due to many engineering overhead reasons, but most of all, because when the table grows in size, this bottlenecks the training process, taking more than 30-60s to log the table

Desired solution: Call wandb.log only with the new rows it the table and have the web app automatically append the new rows to the existing table out-of-the-box (without having to configure special table concatenation or something like that on the web app)

Hi @nikonikolov , thank you for reaching out and providing the details for your use case.
Currently, the only workaround available to achieve updating a table while the Run is being logged are the ones you have mentioned and are not acceptable on your end.
I will go ahead and raise a feature request to allow to append rows to an already logged table during a Run directly.

Thanks, can you please escalate this? It turns out the 'workarounds' are not really workarounds. Even if I keep a copy of the entire table locally, reduce its size to  just a few entries and log the entire updated version, wandb somehow manages to fill up the entire disk in no time and cause training to crash.

Dear @nikonikolov thanks so much for messaging back here. I am jumping in here as one of the support managers at WandB. I can see that we have passed feedback along as @fmamberti-wandb has advised above but I will ensure that we include your feedback above and profile visibility of this with our product and eng teams for you.


dependabot should keep pepr version in excellent examples updated

Is your feature request related to a problem? Please describe.
Clashes can occur across versions in the excellent examples modules when there are different versions. We need the root package.json and the package.json of the modules.
Describe the solution you'd like

Given a new version of Pepr comes out
When the dependabot for excellent-examples gives updates
Then it updates the package.json and pertinent files in every module.

Describe alternatives you've considered
(optional) A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Current state:

Dependabot Alerts: enabled (but paused)
Dependabot Securty Updates: enabled (but paused)
Dependabot Version Updates: not enabled

Desired state:

Dependabot Alerts: enabled (and not paused)
Dependabot Securty Updates: enabled (and not paused)
Dependabot Version Updates: enabled

Unknown:  whether /how Dependabot supports version updates across npm workspaces.  I think I'll start by taking this as a research task.

Added a simple Dependabot config to the project, enabled it in settings, and got it to run.
Was able to see / approve / and merge a single Dependabot PR to update the dependencies of all of the example child project folders -- which only updated the pepr version since it's the only production dependency -- neat.
I also added the config necessary to update the devDependencies but... seeing the PR generated by Dependabot calls to mind some questions that I'll need to talk through with the team before I change the config and/or merge it.  Stuff like: should we pin the typescript version to the same version that the pepr peerDependencies uses?  Are there other deps that need to be called out / pinned / ignored?

Had a chat with the team today -- we decided not to use dependabot to update the devDependencies.
Reason being: we don't really want "the most recent versions" of the devDeps, we want "the most recent versions that track what pepr init is producing" instead.  As a result, I'm going to pull the dev group out of the dependabot config & spin up a new story to cover the work necessary for that sync-and-update logic.

Done! good job!


Quickstart rule testing doesn't work with non-8080 ports

Browser: N/A
Browser version: N/A
Operating system: Windows
Operating system version: 8.1
What steps will reproduce the problem:

Create a firebase.json with a port set to 8025

{
  "firestore": {
    "rules": "firestore.rules"
  },
  "emulators": {
    "firestore": {
      "port": 8080
    }
  }
}

Update the coverageUrl to be 8025 in test.js
Run it.

What is the expected result?
Run the tests on the rule set for the Firestore db.
What happens instead of that?
  0 passing (1s)
  1 failing

  1) "before all" hook:
     Error: 14 UNAVAILABLE: Trying to connect an http1.x server
      at Object.exports.createStatusError (node_modules\grpc\src\common.js:91:15)
      at Object.onReceiveStatus (node_modules\grpc\src\client_interceptors.js:1204:28)
      at InterceptingListener._callNext (node_modules\grpc\src\client_interceptors.js:568:42)
      at InterceptingListener.onReceiveStatus (node_modules\grpc\src\client_interceptors.js:618:8)
      at callback (node_modules\grpc\src\client_interceptors.js:845:24)

You can use environment variables to configure the testing SDK
export FIRESTORE_EMULATOR_HOST=localhost:8025

Fixed by #85 which makes the tests look at the JSON file.


Using floating() with SwipeProperties breaks the floatings scenes

Hello, thank you for the work you've done !
I may be wrong but actually when is use swipeProperties = SwipeProperties() in NavHost, the floating and dialog composables are not visible after navigating to them

Hi, can you provide a sample than can reproduce the issue?


FallbackAddress template for target contract(Non-Zero value transfer)

Problem
What problem are we solving and why does it matter, ser?
the standard recommended solution for fallback transfer in case the calldata target call fails on the destination.
Proposed Solution
Thoughts on solution design. We should do  to solve this problem.

[x] TargetTemplate implementation.

Acceptance Criteria
From an end tester and/or user perspective, the below criteria must be met to consider this done:

[ ] X happens

https://github.com/connext/connext-integration/blob/main/contracts/.Template/ProtocolTarget.sol#L35
implementation here.

Complexity: 5
See the discussion in Backlog Prio 1
Powered by Parabol


Make submodel element list editable

Related: #264
This PR fixes the problem that submodel elements cannot be added or deleted in submodel service example implementation.

Thanks a lot for raising this PR! Would it be possible to sign the Eclipse Contributor Agreement? I will gladly merge your contribution then.


[ionic2] ionic package build android - Invalid transformation: invalid width: 2732 (CLI v2.0.0-beta.28)

From @pawsaw on June 29, 2016 10:40
Cordova CLI: 6.2.0
Ionic Framework Version: 2.0.0-beta.9
Ionic CLI Version: 2.0.0-beta.28
Ionic App Lib Version: 2.0.0-beta.16
ios-deploy version: Not installed
ios-sim version: 5.0.8
OS: Mac OS X El Capitan
Node Version: v5.11.1
Xcode version: Xcode 7.3.1 Build version 7D1014
$ ionic package build android
The resources folder already exists. We will not overwrite your files unless you pass the --force argument.
Running with the force flag will overwrite your resources directory and modify your config.xml file
Preparing your resources...

Invalid transformation: invalid width: 2732 (CLI v2.0.0-beta.28)

The width 2732 is the pixel size of the splash.png in the resources folder.
Copied from original issue: driftyco/ionic#7118

Hello, thanks for opening an issue with us! Since this is an issue with the ionic cli and not the framework i will be moving this issue to the ionic cli repo. Thanks for using Ionic!

So this is still a problem in CLI beta.36...

Hi. Any updates on this? Maybe this should be prioritised higher?

This might be related to #1166. When I resize my base splash to 2208x2208 (instead of the original 3k x 3k) it successfully uploads my application.
(even though it fails to build)

We recently released a new version of the CLI that should fix this issue.  Could you please update your CLI to at least 2.1.4?
npm install -g ionic@latest
Thank you!


Create new release

There have been a bunch of changes to the provider recently. It'd be nice to get a new release done so it can be referenced rather than building a local copy

Hey @jamestoyer sorry for the delay, I've been busy with all bunch of stuff. I meant to release after I updated the readme, but I didn't manage to yet. So, I just tagged v0.3.0 and will update the readme later.

Version 0.3.0 released 🎉

🎉 woo thank you 🙂


fix(ui rsb): no super mgmt in all tab, resolve deselect issue in rule tab

Done

fixes #1697
fixes #2244
fixes #2168

looks like group resolving in rule tab does not work yet


Created Employee Registration for Neo4j through a FastAPI Endpoint

Things that I have implemented:

Added a POST Request that allows the Admin to register new Employees.
Created a Pydantic Class to take the Response and make a POST request for the same.
Tested using the Swagger UI for an appropriate response.
I will be pushing the Client-Side Code as well as part of this PR.

@HarshCasper Can you update the Readme file on how to run the app?

I am working on a separate branch for a feature. I will create one branch and make a PR in a few hours.


[Angular] MainContentComponent candidate for Node Module inclusion

https://github.com/adobe/aem-spa-project-archetype/blob/4ce2eaa02d49cedef6e68a29a5f613360862d9a0/src/main/resources/archetype-resources/angular-app/src/app/components/main-content/main-content.component.ts#L29
It seems like the MainContentComponent is something that could/should be moved into the angular components npm module. Most ppl will use it as is, as its simply a pass-through for the <aem-page..> Component (which IS provided). If this needs to be customized it seems like the provided class could simply be extended.

Internal issue: CQ-4285257

Closing this for now, because the actual work isn't related to the Archetype but to the JS SDK and this is being tracked elsewhere already.


provider_resolver migration from provider_mapping

move macosx providers to dynamic resolution
move windows providers to dynamic resolution
move openbsd/netbsd providers to dynamic resolution
move all cron providers to dynamic resolution
move mdadm to static mapping

@chef/client-core @chef/client-engineers needs review.
this is unfinished business from the provider resolver and moving towards the complete deprecation of the old platform_map.

:+1: and :cake:

:+1:


File system mapping doesn't apply

Bug Description
I struggled with different mappings by feature.fs.mapping to see it in action but it don't take effect.
According to documentation:

"mapping" - Map of patterns and their corresponding replacers. The replacement happens before any specific behavior as defined above or mode (uses Regex::replace)

And in other hand:

Check agains “mapping” if path needs to be replaced, if matched then continue to next step with new path after replacements otherwise continue as usual.

An example is provided by documentation too:

{   "^/home/(?<user>\\S+)/dev/tomcat": "/etc/tomcat"   "^/home/(?<user>\\S+)/dev/config/(?<app>\\S+)": "/mnt/configs/${user}-$app" }
Will do the next replacements for any io operaton
/home/johndoe/dev/tomcat/context.xml => /etc/tomcat/context.xml

Steps to Reproduce

Here is my code:

  console.log('I am here')
  const child = spawn('cat', ['/home/johndoe/dev/tomcat/context.xml'])
  child.on('error', (err) => {
    console.log(err)
  })
  child.stderr.on('data', (chunk) => {
    console.log('stderr:', chunk)
  })
  child.stdout.on('data', (chunk) => {
    console.warn('stdout:', chunk)
  })

And here is output which indicates there is no replacement:

stderr:
cat: /home/johndoe/dev/tomcat/context.xml: No such file or directory

Backtrace
No response
mirrord layer logs
No response
mirrord intproxy logs
No response
mirrord agent logs
No response
mirrord config
{
  "target": {
    "path": {
      "deployment": "my-pod"
    },
    "namespace": "services"
  },
  "feature": {
    "env": {
      "override": {
        "CATEGORY_ID": "1",
      }
    },
    "fs": {
      "mode": "write",
      "mapping": {
        "^/home/(?<user>\\S+)/dev/tomcat": "/etc/tomcat",
        "^/home/(?<user>\\S+)/dev/config/(?<app>\\S+)": "/mnt/configs/${user}-$app"
      }
    },
    "network": true
  },
  "agent": {
    "namespace": "services",
    "startup_timeout": 360
  },
  "kubeconfig": "~/.kube/test",
  "kube_context": "test"
}

mirrord CLI version
No response
mirrord-agent version
No response
mirrord-operator version (if relevant)
No response
plugin kind and version (if relevant)
No response
Your operating system and version
6.1.111-1-MANJARO
Local process
/usr/bin/cat: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=f279ce1a7add04b3f8b3f16e4fb89ecbc5d88dfb, for GNU/Linux 4.4.0, stripped
Local process version
ls (GNU coreutils) 9.5
Additional Info
Please let me know if any other information is required.
No response

Do you have /etc/tomcat/context.xml in the remote pod?

I think you understood the mapping feature wrong - mapping is used to replace paths - i.e if you'd like /app/fun to become /wat/fun regardless of local/remote.
To mark a path as remote/local, you need to use the local/read_only settings inside fs

No - the path replacement happens in the libc level, meaning that your application won't even know that the path was replaced - hence it'd think it actually read from the original path.

The mapping feature happens before we decide whether to do a local access or a remote access.
Can you elaborate on the last part of your message explaining what you expected to happen that didn't happen and what code you ran using mirrord?

Thank you! I've prioritized it - will update once we get working on it.

Hey,
We found an issue with file mapping, fixed in latest release - can you try it out please?

Can you share the more information about the regression?

BTW regarding relative mapping - that's not supported - that's a known issue that we haven't prioritised yet. (in general, we don't apply any fs logic to relative paths, since it's trickier than absolute paths.)


feat: measure external latency

This adds a middleware and utilities to measure external latency.

We will always need some kind of middleware to add the data container to the context. As is, the context key is not exposed but there are easy functions to add or get to the data container, I will also add a way to add the data container to a context without the middleware wrapping.

Can we add the context key in the existing reqlog package?

Can we add the context key in the existing reqlog package?

What's the benefit of exposing the context key? Or do you mean add a context key for the overall latency as well?

Just re-read the code and this already exists in your API essentially 😅


Unable to replace number placeholder

Hi,
regarding to code snippet it looks like placeholders work only with NSString. It would be nice to support also NSNumber objects ;)
- (NSString *)stringForKey:(NSString *)localizationKey withPlaceholders:(NSDictionary *)placeholders
{
    __block NSString * result = [self stringForKey:localizationKey];

    if (result) {
        [placeholders enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
            if ([key isKindOfClass:NSString.class] && [obj isKindOfClass:NSString.class]) {
                result = [result stringByReplacingOccurrencesOfString:key withString:obj];
            }
        }];
    }

    return result;
}

Hi,
Thank you for getting in touch and for your suggestion!
While adding a special case for NSNumber's is straightforward, perhaps there is a more generic way to handle different types of replacements. I've considered NSObject.description (for NSString's it produced contents of the string, for NSNumber's, string representation of a number).
Can you think of a better way to do that?
Cheers,
–Baglan

I'm closing this issue as there was no activity associated with it for more than 3 years.


slide display factory

Displaying of slides for students and teachers
H5P not yet implemented
TextEditor not yet implemented

Can anybody reproduce the build error?

Can't reproduce on Windows or WSL, however, could be an capitalization issue (H5pContent vs H5PContent)

@c0derMo redid the slot styling in SlideDisplayFactory could you review it again


Send message from another activity

How should i do to send messages to the reciever from another activity than MainActivity?

The logic for using the Cast SDK is the same no matter what activity your are using.


⚠ Bofrost.fr has degraded performance

In 0462d4a, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 949 ms

Resolved: Bofrost.fr performance has improved in 129c468 after 8 minutes.


Compatibility issues with cert-manager v0.11.0

What kind of request is this (question/bug/enhancement/feature request):
Bug/request
Steps to reproduce (least amount of steps as possible):
Install cert-manager v0.11.0 by following the guidelines from https://docs.cert-manager.io/en/latest/getting-started/install/kubernetes.html
Result:
The issue being that in cert-manager v0.11.0 the label certmanager.k8s.io has been replaced with cert-manager.io. But this is yet to be handled the helm chart for rancher.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): v2.3.0
Installation option (single install/HA): HA

I updated cert-manager because of the advice from rancher regarding 1st of November. Cert-manager was on 0.5.2. Now I have 0.11.0 and cannot upgrade from rancher 2.2.8 to 2.2.9 via helm.

@mschickervxob if it helps, downgrading to cert-manager 0.10 should resolve this issue. It's caused by the changing of the cert-manager CRDs in v0.10. So if downgrading, make sure that you install the earlier CRDs as well.

Thanks @gregbacchus - but this also means to change all resources to the old format certmanager.k8s.io from cert-manager.io again and later again back which I prefer not to do.

Yes, I can understand that. It may be possible to run both versions of cert-manager, but I haven't tried (and probably wouldn't).

Update to the latest cert-manager version as this was written awhile ago and cert-manager updates very quickly.
Create docs on how to upgrade to cert-manager v0.11.0+
Test the current docs for all installation and update wherever we indicate v0.9.1.
https://rancher.com/docs/rancher/v2.x/en/installation/

Currently it's not possible to install cert-manager v0.11, see #23850

Thank you for working on this, guys. And, don't forget to update rancher-latest helm chart also.
Kind regards,
Ciprian

On hold until docs are written of how to use the new cert-manager version for HA installs

Follow the new documentation to install Rancher in HA mode successfully:

Rancher version: v2.3.4-rc3
Rancher Chart version: 2.3.4-rc3
Cert-manager version: v0.12.0
RKE command-line tool: v1.1.0-rc2

Wait for a v2.4 preview release to validate master-head

The issue is reopened, we need to find the proper upgrading path for upgrading cert-manager and Rancher together

Because of the API change in cert-manager since v0.11
https://cert-manager.io/docs/installation/upgrading/upgrading-0.10-0.11/
and how helm handles upgrading apps(helm compares the running app with the original template used to install it), we have to upgrade Rancher with the following steps if we want to run Rancher with cert-manager 0.12:
Step1: make a one-time snapshot of Rancher data
rke etcd snapshot-save --name rancher-2-3-3-backup.db --config rancher-cluster.yml

Result: RKE takes a snapshot of etcd running on each etcd node. The file is saved to /opt/rke/etcd-snapshots.

I am installing on a single node in ha mode
nodes:
  - address: <IP_ADDRESS>
    internal_address: <IP_ADDRESS>
    user: root
    role: [controlplane, worker, etcd]

services:
  etcd:
    snapshot: true
    creation: 6h
    retention: 24h

# Required for external TLS termination with
# ingress-nginx v0.22+
ingress:
  provider: nginx
  options:
    use-forwarded-headers: "true"

with following bash script assembled from the current official documentation (+ steps given by @jiaqiluo )
#
rke up --config rancher_cluster.yml
RANCHER_BRANCH=latest

#check nodes
KUBECONFIG=$(pwd)/kube_config_rancher_cluster.yml
kubectl get nodes
kubectl get pods --all-namespaces

#add helm repo
helm repo add rancher-${RANCHER_BRANCH} https://releases.rancher.com/server-charts/${RANCHER_BRANCH}
kubectl create namespace cattle-system

# cert-manager
kubectl apply --validate=false -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.12/deploy/manifests/00-crds.yaml
kubectl create namespace cert-manager
kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --version v0.12.0

kubectl -n cert-manager rollout status deploy/cert-manager

helm install rancher rancher-${RANCHER_BRANCH}/rancher \
  --version 2.3.4-rc4 \
  --namespace cattle-system \
  --set hostname=rancher.domain.com \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=email.domain \
  --set letsEncrypt.environment=staging

kubectl -n cattle-system rollout status deploy/rancher

Installation succeeds (besides some race condition bugs such as
+ helm install rancher rancher-latest/rancher --version 2.3.4-rc4 --namespace cattle-system --set hostname=rancher.55px.xyz --set ingress.tls.source=letsEncrypt --set<EMAIL_ADDRESS>--set letsEncrypt.environment=staging
Error: Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=30s: dial tcp <IP_ADDRESS>:443: connect: connection refused

and cluster stuck in setting host mode (resolvable with edit&save), but then I am presented with issue where rancher.domain.com is being served by a certificate ingress.local, and my workloads cattle-node-agent and cattle-cluster-agent are stuck in
Get https://rancher.55px.xyz: x509: certificate is valid for ingress.local, not rancher.domain.com

Might be something trivial (or completely unrelated to this issue, in that case I will open a separate ticket).
Thx

@alekc I think you just ran into this issue: https://github.com/rancher/rancher/issues/24770
v2.3.4-rc7 has the fix.

yes, I actually came here from that ticket, but put rc4 and not rc7 following your comment above >.<
with rc7 it looks like everything is working as expected. Thx.

Is it possible that there is some non update helm cache somewhere? I am getting inconsistent results on new installs with single ha node, lets encrypt, rancher

Rancher | v2.3.4-rc7
-- | --
User Interface | v2.3.30
Helm | v2.14.3-rancher1
Machine | v0.15.0-rancher28

(for full config see my message above)
When doing a deployment there is pretty much consistent error
 helm install rancher rancher-latest/rancher --version 2.3.4-rc7 --namespace cattle-system --set hostname=rancher.domain.com --set ingress.tls.source=letsEncrypt --set<EMAIL_ADDRESS>--set letsEncrypt.environment=production
null_resource.install_rancher: Still creating... [40s elapsed]
null_resource.install_rancher (local-exec): Error: Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=30s: dial tcp <IP_ADDRESS>:443: connect: connection refused

Cattle-node-agent
time="2020-01-05T13:58:58Z" level=fatal msg="Get https://rancher.55px.xyz: x509: certificate is valid for ingress.local, not rancher.55px.xyz"

the weird thing is that sometimes it works (cname is being assigned properly) and sometimes it's not.
Since this stack is being deployed through terraform (destroy && apply), I am at loss.

Hi @alekc, thank you for the feedback.
Did you wait to see if the setup gets the proper certificate after a couple of minutes?
There is a brief gap between Rancher running up and LetsEncrypyt issuing the cert, and during that time Rancher uses a self-signed cert and will replace it with the one from LetsEncrypt. I doubt that is the reason for the inconsistent.

Yes, I think so. I will try to trigger this situation again and see the time delta.

hi @jiaqiluo we are in the exact same situation as @alekc.

@alekc @tryhardest  I cannot reproduce the error you see in the console after running helm install rancher ...:
null_resource.install_rancher: Still creating... [40s elapsed]
null_resource.install_rancher (local-exec): Error: Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=30s: dial tcp <IP_ADDRESS>:443: connect: connection refused

Did you wait for all cert-manager’s pods to be ready before installing Rancher?
> kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-6ff9c88f48-xl64l              1/1     Running   0          108s
cert-manager-cainjector-785c778cb9-tvqqf   1/1     Running   0          108s
cert-manager-webhook-785fd76b4-c8b78       1/1     Running   0          108s

This requirement is mentioned in Rnacher's documentation: https://rancher.com/docs/rancher/v2.x/en/installation/ha/helm-rancher/#optional-install-cert-manager

We need to upgrade the documentation for upgrading Rancher and cert-manager, which is tracked by this issue: https://github.com/rancher/docs/issues/2117


Any GPT-4 API supported?

Does this api support GPT-4 ?

Does this api support GPT-4 ?

I tried switching models to GPT-4, it didn't work. So, perhaps there is no GPT-4 yet? Note that I may be wrong, and it's always better to ask Ayaka directly instead of me 🙂

GPT-4 is supported on the website, but you need to have an account with GPT-4 API access. Currently, it seems that most of us don't have GPT-4 API access.

I misunderstood the issue. I thought it was about the Free ChatGPT website. For the free API, I haven't received GPT-4 API access yet, so it is currently not possible to implement this feature.


Add documentation for new is operator

Adding docs for is operator  which will be released in the upcoming Cedar 3.0 release.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

to reflect that the is operator corresponds to a new language version (2.2.0?).

Cedar SDK 3.0 will also have to be language 3.0; although is is not a breaking change for the language, things like RFC 20 are.

I'm putting together a preview in my test repo. This branch is behind main - can you update it from the base branch?

updated

Thanks for updating! I've pulled the branch - preview here.
I am updating the document history and adding syntax highlighting to is.
What should be the new language version for the doc history? 3.0? And what PR in the Cedar repo matches this update?

What should be the new language version for the doc history? 3.0?

Yes. This will be released with version 3.0 (to be release soon).

And what PR in the Cedar repo matches this update?

is was added in https://github.com/cedar-policy/cedar/pull/396 following to the design in rfc5

We should wait on the merge until the 3.0 release happens so we don't have is referenced in the docs before the new version is on crates.io. That will be a week or two probably.

Got it, standing by until I hear of the release.


Feature request: Add completions

Completions would be a very nice addition to this plugin!
Alternatively, if fuzzy-sys arguments were made to be compatible with systemctl (e.g. start rather than --start), you could piggyback on the existing systemctl completions with compdef fuzzy-sys=systemctl.

Good idea! Feel free to make a pull request, if not, I will try to put some work towards this in a few weeks :slightly_smiling_face:.


Offload PoST verification to pool of verifying workers

Motivation
Closes #4388
Changes
Created a layer between nipostValidator and verifying code in https://github.com/spacemeshos/post that offloads verifying PoST onto a pool of workers. A free worker picks up proof, verifies it, and sends back the result via a provided channel.
Test Plan

[x] Existing tests should pass
[ ] Survive the big 1k nodes network

bors try

i want to include my change (https://github.com/spacemeshos/go-spacemesh/pull/4383) into next 10k network attempt, so it may take some time. we should probably merge this one before the test


Speedup solve constraint pitch

This can be tested with the following branch: https://github.com/oliverlee/phobos/tree/test-speedup-solve-constraint-pitch

with changes:
[dac7222] kinematics computation time - best: 53        worst: 1619     last: 257 us
[dac7222] kinematics computation time - best: 53        worst: 1619     last: 253 us
[dac7222] kinematics computation time - best: 53        worst: 1619     last: 1265 us
[dac7222] kinematics computation time - best: 53        worst: 1619     last: 338 us
[dac7222] kinematics computation time - best: 53        worst: 1619     last: 192 us
[dac7222] kinematics computation time - best: 53        worst: 1619     last: 181 us

without changes:
[9ef0f56] kinematics computation time - best: 90        worst: 2619     last: 2269 us
[9ef0f56] kinematics computation time - best: 90        worst: 2619     last: 452 us
[9ef0f56] kinematics computation time - best: 90        worst: 2619     last: 2135 us
[9ef0f56] kinematics computation time - best: 90        worst: 2619     last: 451 us
[9ef0f56] kinematics computation time - best: 90        worst: 2619     last: 2193 us
[9ef0f56] kinematics computation time - best: 90        worst: 2619     last: 451 us
[9ef0f56] kinematics computation time - best: 90        worst: 2619     last: 2185 us

This is with the bicycle at v = 0.0 which would a "worst" case or so.


Update changelog

Current coverage is 87.03% (diff: 100%)

Merging #2153 into master will not change coverage

@@             master      #2153   diff @@
==========================================
  Files           308        308
  Lines         56733      56733
  Methods           0          0
  Messages          0          0
  Branches       5889       5889
==========================================
  Hits          49375      49375
  Misses         6408       6408
  Partials        950        950

Powered by Codecov. Last update eba987c...9a535cf

Should note that llvmlite 0.14 will be required for this release.
Missing PRs:

#2115
#2117
#2119 - fix array type when using a Record dtype
#2122
#2127

Also note that CUDA 8 is supported, but not required.