[SPARK-28921][BUILD][K8S][test-hadoop3.2][test-java11] Upgrade kubernetes client to 4.4.2

What changes were proposed in this pull request?
Upgrade kubernetes client from 4.1.2 to 4.4.2
Why are the changes needed?
To fix compatibility issue with EKS since Amazon rolled out some security patches over the past week.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass the Jenkins and manually test on EKS.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@andygrove any possible incompatibilities or gotchas that might arise from the update? I suspect it's fine.

Test build #4848 has started for PR 25640 at commit db8db6f.

Test build #4848 has finished for PR 25640 at commit db8db6f.

This patch fails build dependency tests.
This patch merges cleanly.
This patch adds no public classes.

Oh, you'll need to run ./dev/test-dependencies.sh --replace-manifest

@sr

@andygrove any possible incompatibilities or gotchas that might arise from the update? I suspect it's fine.

I suspect it is fine too. kubernetes client 4.4.2 has jackson 2.9.9 instead of jackson 2.9.8 with the 4.1.2 release, but hopefully that's a non issue

Should be fine. We're on 2.9.9.x in Spark.

Test build #4855 has started for PR 25640 at commit 9a29d0b.

Retest this please.

Test build #109989 has started for PR 25640 at commit 9a29d0b.

Also, if possible, please specify the version number of EKS which you are mentioning, @andygrove . latest becomes obsolete very soon.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-make-spark-distribution-unified/15008/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/testing-k8s-prb-make-spark-distribution-unified/15008/

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/15008/
Test PASSed.

Test build #4855 has finished for PR 25640 at commit 9a29d0b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Now, we are waiting Java11 and K8s integration test result~

Test build #109989 has finished for PR 25640 at commit 9a29d0b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/109989/
Test PASSed.

cc @skonto , too.

Also, if possible, please specify the version number of EKS which you are mentioning, @andygrove . latest becomes obsolete very soon.

I updated the JIRA title. So far, this has been reported against versions 1.15.3, 1.14.6, 1.13.10, 1.12.10, and 1.11.10.

Hi, @andygrove . For Spark testing environments, it looks good. I'd like to verify this PR in EKS since you reported this for that. When I check the EKS today, it seems to show 1.11, 1.12, and 1.13 without the details. How did you test this PR manually, @andygrove ?
BTW, to understand your procedure, I visited your interesting blog article. I have one question about your article; Why do you think this is the existing Apache Spark's 2.3/2.4 regression? Those releases work with the old K8S releases and still do. Did I miss something? In Apache Arrow project, do you think some 3rd party library's future release is considered as the existing Apache Arrow library's regression? For me, it's just unsupported version, isn't it?

https://andygrove.io/2019/08/apache-spark-regressions-eks/

@dongjoon-hyun The regression is with EKS, not with Spark ... I guess I could have picked a better title for the blog post. I'll update that.
Once connected to the EKS cluster, I run kubectl version to see the detailed version information.
The initial testing I'm doing is just running our automated integration test suite for the service that my team works on, and this causes Spark jobs to run in EKS. Basically we're just running spark jobs using spark-submit though, and making sure they run to completion.
It's Labor day in the US today so I won't be back at work until tomorrow, but we have tests passing now because I followed the instructions in the blog post and built a release based on my PR against 2.3 and it got past the issue.

Got it. Thank you for the detailed explanation, @andygrove .  I'll verify on EKS and merge your PR today~

This PR is tested with EKS.
$ kubectl version --short
Client Version: v1.15.3
Server Version: v1.13.10-eks-5ac0f1

$ aws ecr list-images --repository-name spark
{
    "imageIds": [
        {
            "imageDigest": "sha256:c92d634507aa8336c79cb094ba69083d9cb50f4a6f09259e3b0cb4b6bf1c5214",
            "imageTag": "PR-25640"
        },
        {
            "imageDigest": "sha256:a2a48304453c147ec2f049ea0b6c4dbadb625a0c8d76d4c1eb4f7cb3f134890c",
            "imageTag": "latest"
        }
    ]
}

$ echo $K8S_MASTER
https://9310EC45A37C51BCCF6BC12CDBFCBB61.sk1.us-west-2.eks.amazonaws.com

$ echo $IMAGE
095589911305.dkr.ecr.us-west-2.amazonaws.com/spark:PR-25640

bin/spark-submit \
  --master k8s://$K8S_MASTER \
  --deploy-mode cluster \
  --name spark-pi \
  --class org.apache.spark.examples.SparkPi \
  --conf spark.executor.instances=1 \
  --conf spark.kubernetes.container.image=$IMAGE \
  local:///opt/spark/examples/jars/spark-examples_2.12-3.0.0-SNAPSHOT.jar

Thank you, @andygrove , @srowen , @felixcheung .
Merged to master.

@dongjoon-hyun @andygrove this line needs an update too: https://github.com/apache/spark/blob/master/resource-managers/kubernetes/integration-tests/pom.xml#L32

Oops, thanks @skonto -- see https://github.com/apache/spark/pull/25664
We are all OK to back port to 2.4 too?

Thanks, @skonto and @srowen !


Idea for sharing code samples in learning paths

Complementing the idea presented in the previous issue, it is interesting that Bill Gates said that something that has helped him to solve problems has been asking himself 2 simple but very useful questions. The questions are: 1) Who have faced this same problem before us? 2) What can we learn from them?
I think that by giving code examples the students would be applying in a practical way the usefulness of those two previous questions. These sample codes could be submitted by the students themselves. It would also be nice if these provided code samples had documentation explaining their logic and operation. In fact, an award system could be made for students who share code according to predefined quality metrics such as clarity and good explanations.
🎓 Add a tag to this issue for your current education role: student, Student Ambassador or educator.
I am Student Ambassador

Ok, again thank you very much for the opportunity. Have a wonderful day 😃!

@Charlie-techLab we have added a vnext backlog item to point to optional code practice and completed code.
Thanks

@alischumacher @eric-camplin Thank you very much for this opportunity to collaborate 💯
Yes, the idea is basically that in the modules that involve learning a new programming language there are always practice exercises at the end in which the knowledge acquired throughout the entire module is integrated in order to strengthen knowledge and new learning


Document use of Azure Managed Identities for AzureDNS

Is your feature request related to a problem? Please describe.
Support for Azure managed identities was added by this pull request and added to release 0.15.0. Unfortunately there is no documentation regarding use of MSI in the official docs. I went looking around and I found that the original contributor @gitirabassi of the aforementioned MR wrote some documentation, but for whatever reason this was not merged back into master.
Moreover, the way the original contrib. explains the way this feature works contrasts the way pod-identity (which is instrumental for the feature to work) wants to define the identity bindings ( i.e. one says that aadpodidbinding:<value> should be "cert-manager" vs. the other says it should be $IDENTITY_NAME aka. the MSI name) of course the maintainers of this repo cannot be responsible for the claim, since it is not in the official docs, still, I would ask if there is anyone that can dispel the confusion.
Is there someone who knows exactly how using managed identities works? Can we work together to document the feature?
In my case I would actually like to use multiple managed identities for different ClusterIssuers, or at the very least, use a different one rather than the omsagent MSI to modify my DNS records, do we know if this is possible to do at all?
Describe the solution you'd like
I see that the documentation MR containing the aforementioned documentation for use of MSI has been opened in March and has recently received some love. The example though only refers to a terraform example, I would appreciate it helm install/static manifests are added too.
Describe alternatives you've considered
I've considered bypassing managed identities assignment using pod identity, by generating an MSI (using an ARM template) and then accessing the underlying service principal, and then giving the SP credentials to cert-manager via secret. Unfortunately it is not possible to access SP credentials after it has been created. The only time when those are returned is when an SP is created directly through az cli.
Additional context
Based from #3148 I can see that maybe there is also an issue if you have multiple MSI defined in the target resource group where AKS (and therefore pod identity is defined), can someone confirm this? The fact that you cannot define the name of the MSI you want to target seems to be a feature that could indeed be added (or is this an hint that aadpodidbinding:??? should contain the $IDENTITY_NAME?)
Environment details (if applicable):

Kubernetes version (e.g. v1.10.2): 1.18.6
Cloud-provider/provisioner (e.g. GKE, kops AWS, etc): Azure
cert-manager version (e.g. v0.4.0): 1.0.0
Install method (e.g. helm or static manifests): helm

/kind documentation
/triage support

@riccardodl - I've raised a PR to help add this documentation which adds an example setup. Let me know if you would like to add anything?

It would be awesome to use the built-in kubelet identity for an AKS cluster. I've already mentioned this on your PR @JasonWhall ;)

So, following this discussion regarding the use of the managed Kubelet identity on an AKS cluster, I managed to deploy cert-manager using the managed Kubelet identity but with one caveat.
Note that this setup option, dismisses the use of AAD Pod Identity.
The caveat is that there is no place to define which managed identity clientId to use - similar deployments like external-dns fixed this by adding an option to specify the userAssignedIdentityID.
While it does work using a default AKS cluster, once you add another identity to the Kubelet resource group, it won't work - which will happen if you enable the kube_dashboard addon for instance, because Azure will provision a dedicated identity for that particular deployment.
This is the ClusterIssuer I'm using:
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: letsencrypt
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email<EMAIL_ADDRESS>    privateKeySecretRef:
      name: letsencrypt
    solvers:
    - dns01:
        azuredns:
          subscriptionID: subscription-id
          resourceGroupName: dns-resource-group
          hostedZoneName: dns-zone-name
          environment: AzurePublicCloud

Thanks @calexandre! I've updated the PR to add some notes to reflect this.

@calexandre I've been trying this with an almost identical setup, sans that my cluster is private.  But cert-manager is unable to get authorization with azureDNS.
cert-manager/controller/challenges "msg"="re-queuing item due to error processing" "error"="azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://management.azure.com/subscriptions/[redacted subscription id]/resourceGroups/rg-k8s-apps/providers/Microsoft.Network/dnsZones/[redacted domain]/TXT/_acme-challenge?api-version=2017-10-01: StatusCode=400 -- Original Error: adal: Refresh request failed. Status Code = '400'. Response body: {\"error\":\"invalid_request\",\"error_description\":\"Identity not found\"}" "key"="cert-manager/acme-cert-manager-config-jspsl-1663922252-721872768"

I have disabled the kube_dasboard add-on, but the issue still persists.
Config excerpt:
resource "azurerm_kubernetes_cluster" "k8s" {
  name                    = "aks-${var.cluster_name}"
  location                = var.resource_group.location
  resource_group_name     = var.resource_group.name
  dns_prefix              = var.cluster_name
  private_cluster_enabled = true
  kubernetes_version      = var.kubernetes_version

  role_based_access_control {
    enabled                   = true
    azure_active_directory {
      managed                   = true
      admin_group_object_ids    = [ azuread_group.cluster_admin.id ]
    }
  }

  default_node_pool {
    name                  = "default"
    enable_auto_scaling   = true
    min_count             = var.node_pool_min_size
    max_count             = var.node_pool_max_size
    vm_size               = var.node_pool_vm_size
    vnet_subnet_id        = var.kube_subnet.id
    orchestrator_version  = var.kubernetes_version
    availability_zones    = var.availability_zones
  }

  identity {
    type = "SystemAssigned"
  }

  node_resource_group =       "rg-${var.cluster_name}-k8s-nodes"

  linux_profile {
    admin_username           = "${var.cluster_name}-admin"
    ssh_key {
      key_data               = azurerm_key_vault_secret.cluster_publickey.value
    }
  }

  addon_profile {
    kube_dashboard {
      enabled               = var.enable_dashboard  // false
    }
  }

  network_profile {
    network_plugin            = "azure"
    outbound_type             = "userDefinedRouting"
  }

  depends_on = [ azurerm_route_table.rt ]
}

resource "azurerm_role_assignment" "domain_manager" {
  scope                            = var.cluster_dns_zone.id
  role_definition_name             = "DNS Zone Contributor"
  principal_id                     = azurerm_kubernetes_cluster.k8s.kubelet_identity[0].object_id
  skip_service_principal_aad_check = true
}

I've drained and restarted the node, just in case, but to no avail.  I too encountered this issue with external-dns and used the userAssignedIdentityID to fix this there, but without that workaround available here - i'm stuck.

@calexandre I've been trying this with an almost identical setup, sans that my cluster is private.  But cert-manager is unable to get authorization with azureDNS.
cert-manager/controller/challenges "msg"="re-queuing item due to error processing" "error"="azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://management.azure.com/subscriptions/[redacted subscription id]/resourceGroups/rg-k8s-apps/providers/Microsoft.Network/dnsZones/[redacted domain]/TXT/_acme-challenge?api-version=2017-10-01: StatusCode=400 -- Original Error: adal: Refresh request failed. Status Code = '400'. Response body: {\"error\":\"invalid_request\",\"error_description\":\"Identity not found\"}" "key"="cert-manager/acme-cert-manager-config-jspsl-1663922252-721872768"

I have disabled the kube_dasboard add-on, but the issue still persists.
Config excerpt:
resource "azurerm_kubernetes_cluster" "k8s" {
  name                    = "aks-${var.cluster_name}"
  location                = var.resource_group.location
  resource_group_name     = var.resource_group.name
  dns_prefix              = var.cluster_name
  private_cluster_enabled = true
  kubernetes_version      = var.kubernetes_version

  role_based_access_control {
    enabled                   = true
    azure_active_directory {
      managed                   = true
      admin_group_object_ids    = [ azuread_group.cluster_admin.id ]
    }
  }

  default_node_pool {
    name                  = "default"
    enable_auto_scaling   = true
    min_count             = var.node_pool_min_size
    max_count             = var.node_pool_max_size
    vm_size               = var.node_pool_vm_size
    vnet_subnet_id        = var.kube_subnet.id
    orchestrator_version  = var.kubernetes_version
    availability_zones    = var.availability_zones
  }

  identity {
    type = "SystemAssigned"
  }

  node_resource_group =       "rg-${var.cluster_name}-k8s-nodes"

  linux_profile {
    admin_username           = "${var.cluster_name}-admin"
    ssh_key {
      key_data               = azurerm_key_vault_secret.cluster_publickey.value
    }
  }

  addon_profile {
    kube_dashboard {
      enabled               = var.enable_dashboard  // false
    }
  }

  network_profile {
    network_plugin            = "azure"
    outbound_type             = "userDefinedRouting"
  }

  depends_on = [ azurerm_route_table.rt ]
}

resource "azurerm_role_assignment" "domain_manager" {
  scope                            = var.cluster_dns_zone.id
  role_definition_name             = "DNS Zone Contributor"
  principal_id                     = azurerm_kubernetes_cluster.k8s.kubelet_identity[0].object_id
  skip_service_principal_aad_check = true
}

I've drained and restarted the node, just in case, but to no avail.  I too encountered this issue with external-dns and used the userAssignedIdentityID to fix this there, but without that workaround available here - i'm stuck.

@ryanjn did you check the resource-group that Azure creates for managing AKS related entities? If you find more than one managed identity that might be the issue - only the agentpool identity should be present.
Try to re-create the entire thing without the kube-dashboard and see if it works..

@ryanjn did you check the resource-group that Azure creates for managing AKS related entities? If you find more than one managed identity that might be the issue - only the agentpool identity should be present.
Try to re-create the entire thing without the kube-dashboard and see if it works..

Hey @calexandre do you have a link to external-dns repo, I want to see how they implemented userAssignedIdentityID there and perhaps try to borrow it for cert-manager.

Hey @calexandre do you have a link to external-dns repo, I want to see how they implemented userAssignedIdentityID there and perhaps try to borrow it for cert-manager.

@ppanyukov you should find the auth implementation for external-dns here - https://github.com/kubernetes-sigs/external-dns/blob/ae1054519c9cb8f2ff4c80d5a555f0c46794a14c/provider/azure/config.go#L79

@ppanyukov you should find the auth implementation for external-dns here - https://github.com/kubernetes-sigs/external-dns/blob/ae1054519c9cb8f2ff4c80d5a555f0c46794a14c/provider/azure/config.go#L79

Hi,
Any updates on this?
Thanks and regards,

I landed here as well with the same issue. We are using kube_dashboard and hence have the omsagent Identity assigned to the nodes as well. Thus we cannot use cert-manager with Azure DNS and MSI for now :( would be great if support for selecting the right identity could be added!


Unable to build on Windows

Hi,
Whenever I try to build, I always get "error 1" and the only thing in the CMakeOutput.log is The system is: Windows - 10.0.19043 - AMD64.
I'm using cmake 2.21.2, make 3.81, and visual studio 2019.
Using a command prompt running as admin: make install-release I get this output:
`cmake --build build/static --config Release  -- /maxcpucount:20 /verbosity:minimal /nr:false
CMake Error:
Generator
NMake Makefiles

does not support platform specification, but platform
x64

was specified.
make: *** [release] Error 1`
It's probably something simple I'm missing...

Hi, good catch. This is a mistake on our side, we should be checking the generator and not the OS. For now, you can workaround this issue by commenting out the following lines:
https://github.com/fraunhoferhhi/vvenc/blob/0e6ca4febb21facec606fe803273fed31beec6fc/Makefile#L70-L71
Alternatively, you could create the project using CMake directly, and skipping the faulty Makefile for now.
You might run into some other issue there, tho. Make sure you have an appropriate compiler. If CMake doesn't recognize it, set CC and CXX environment variables appropriately.
We will have a look and try to upload a fix soon.

Could you describe your environment?
We talked about this a bit and it seems there are a lot of different options, way too many to support.

Sorry, I misread your message. You want to build using Visual Studio.
You mistyped your CMake version, right? The 2.21 is really old by now, and the project requires at least 3.13.
Best regards,
Adam

Hi,
I had the same problem, so I commented lines 70 and 71 and then repeated command make install-release.
After that I got another error
cmake --build build/release-static  -- /maxcpucount:4 /verbosity:minimal /nr:fal
se
Не удается найти указанный файл
CMake Error: Generator: execution of make failed. Make command was: nmake -f Mak
efile /nologo /maxcpucount:4 /verbosity:minimal /nr:false &&
make: *** [release] Error 1

Sorry, I misread your message. You want to build using Visual Studio.
You mistyped your CMake version, right? The 2.21 is really old by now, and the project requires at least 3.13.
Best regards,
Adam

Hi,
I had the same problem, so I commented lines 70 and 71 and then repeated command make install-release.
After that I got another error
cmake --build build/release-static -- /maxcpucount:4 /verbosity:minimal /nr:fal
se
Не удается найти указанный файл
CMake Error: Generator: execution of make failed. Make command was: nmake -f Mak
efile /nologo /maxcpucount:4 /verbosity:minimal /nr:false &&
make: *** [release] Error 1

Hey. So it seems in the console CMake does not recognize your Visual Studio installation, otherwise it would choose it as its default generator. The makefile is only a simple wrapper around the actual CMake build system, that vvenc is based on. Could you maybe open the project in CMake GUI and see if the Visual Studio generator is available?
Best regards,
Adam

Hey. So it seems in the console CMake does not recognize your Visual Studio installation, otherwise it would choose it as its default generator. The makefile is only a simple wrapper around the actual CMake build system, that vvenc is based on. Could you maybe open the project in CMake GUI and see if the Visual Studio generator is available?
Best regards,
Adam

Okay, I don't know if i did everything right, but here's what i got. Sorry, i just use all these programms for the first time in my life and don't have a good understanding on what i'm doing

Thats alright. You have to point the source code (first line) to where you checked out the source. The "Where to build the binaries" should point to a "build" directory within the source directory. Otherwise you could just open the project in Visual Studio. VS 16 2019 can open a directory containing CMakeLists.txt file just like that (if all parts are installed properly). Than you just have to select the release configuration and run the build. Sorry I don't have an easier solution.

Thats alright. You have to point the source code (first line) to where you checked out the source. The "Where to build the binaries" should point to a "build" directory within the source directory. Otherwise you could just open the project in Visual Studio. VS 16 2019 can open a directory containing CMakeLists.txt file just like that (if all parts are installed properly). Than you just have to select the release configuration and run the build. Sorry I don't have an easier solution.

So, i did this (opened in VS file CMakeLists.txt). Is it right? And if it's right, what do i do next? Just press the button i underlined in red

So the way it worked for me is.

Open Visual Studio.

Open Folder and navigate to the directory. (this is I think what you did)

On the top, right of "x64-Release" (used to be x64-Debug before step 4) push the Dropdown menu and select "Manage Configurations"

Change the configuration name to x64-Release and "Configuration type" to "Release" and save.

In the top menu, navigate to "Build" menu and select "Build all"

You would need to figure out how the steps are called in Russian (?).

So the way it worked for me is.

Open Visual Studio.
Open Folder and navigate to the directory. (this is I think what you did)
On the top, right of "x64-Release" (used to be x64-Debug before step 4) push the Dropdown menu and select "Manage Configurations"

Change the configuration name to x64-Release and "Configuration type" to "Release" and save.

In the top menu, navigate to "Build" menu and select "Build all"

You would need to figure out how the steps are called in Russian (?).

It's me again. I have some problems. So, let me explain what i've done step by step.

I opened VS and chose "open folder"

Then I opened this folder, which contains all the files I downloaded from the web-site

After that my VS started to look like this

As you can see, I changed the configuration name to x64-Release

And the problem is should I open some specific file among all these files which I downloaded and what do I do if my Build menu looks like this?

In previous answers you wrote that I have to open a directory containing CMakeLists.txt and then have to select the release configuration. But, cn you, please, tell me, what's the name of this file which contains release configuration?

Thats strange. If seems you did everything right (but please make sure you not only changed the name to x64-Release, but also changed the configuration to "Release" - see my picture again). The build dropdown should show the build option.
Are you sure you Visual Studio installation is correct and contains all of the C++ related components? To me it seems like something is missing, which would explain why CMake doesn't per default choose visual studio as builder.
In the visual studio installer, please make sure to select all points under both "Desktop development with C++" and "Linux Development with C++"


modify polling logic to use the corresponding GET if there is no Location response header

Today, RESTler only polls after a 202 if the Location is present in the response (e.g. in the Location header).  However, in cases where this is not returned, RESTler can still attempt to construct and poll the corresponding GET endpoint.

This has been merged.  #382


appendModel Question

Hi, I am trying to use the library for object collision avoidance. I have had some issues when creating a model and geometry model for a robot combined with an object. Appending the object model and geometry model occurs at some frame on the base model.
appendModel( parent model, child model, parent geomModel, child geomModel, frame number, SE3, output model, output geomModel)
Initially I was appending to the last frame of the base model. I realized that this meant the base frame of the child object was attached to the last frame of the robot (in this case, the finger), so when the hand moves, so did the child object.
When attempting to use appendModel at the 0th frame in the base model (i.e the universe), I am unable to run forward kinematics, as an assertion failed, suggesting that the model and data were not consistent. Note that this was after instantiating a new version of data for the new appended model.
In the unittest, the only example of using appendModel is for adding a manipulator onto a humanoid, and in this case it is clear that the goal would be for the manipulator to move with some parent frame on the humanoid. Do you have any suggestions for appending the model in such a way that it does not move with the base model?

I use Pinocchio in the way you mention and it works fine. You may want to have a look at the code of this function: https://github.com/humanoid-path-planner/hpp-pinocchio/blob/77296185e895b9f6e42fa1408b44bbbf89a8cdf3/src/urdf/util.cc#L195
If the base frame is 0, I do not call appendModel. I call buildModel with the model into which I want to append.
If appendModel with a base frame index equals to 0 fails, it is a bug. It shouldn't. Thanks for the report.

When attempting to use appendModel at the 0th frame in the base model (i.e the universe), I am unable to run forward kinematics, as an assertion failed, suggesting that the model and data were not consistent.

I couldn't reproduce the assertion you mention. I added the following lines in the unit test model.cpp, at the commit above.
    Data data1 (model1);
    Eigen::VectorXd q (neutral (model1));
    forwardKinematics(model1, data1, q);

@jmirabel A simple check, have you checked in debug mode?

@jmirabel A simple check, have you checked in debug mode?

Yes.

@Ryangupta8 Can you provide a simple example of your issue? It will be easier for us to provide guidance and help.

pinocchio::urdf::buildModel(filename, pinocchio::JointModelFreeFlyer(),model1) pinocchio::urdf::buildModel(filename, pinocchio::JointModelFreeFlyer(),model2); pinocchio::urdf::buildGeom(mode1, filename, pinocchio::COLLISION, geomModel1, packageDirs ); pinocchio::urdf::buildGeom(mode2, filename, pinocchio::COLLISION, geomModel2, packageDirs );

set the current configuration for each, run forward kinematics and update geometry placements
add all collision pairs, remove those specified in an srdf
pinocchio::appendModel(model1,model2, geomModel1,geomModel2, 0, pinocchio::SE3::Identity(), model3, geomModel3);
update configuration of model3
instantiate new data, geomData for model3, geomModel3
pinocchio::forwardKinematics(mode3l, data3, q_update);
goal is to here update kinematics and geometry placements for computeDistance queries to get pairs of nearest_points

When do you create the data for model 3 ?

After appendModel. In the structure we created to hold these models we hold these as pointers, so those functions like forwardKinematics(model3, *data, q_update)
data3 = std::unique_ptr<pinocchio::Data>(new pinocchio::Data(model3)); geomData3 = std::unique_ptr<pinocchio::GeometryData>(new pinocchio::GeometryData(geomModel3));

What version of Pinocchio do you use ?

v2.1.3

@Ryangupta8 Could you try with the latest release 2.1.6?

I used v2.1.3 for my test. Can you make a minimal working example (with your URDF if it is publicly available) ?

minimal example with urdf.zip

Here is a zip with a minimal example and two urdf files: one for a cart and one for valkyrie robot

I was able to reproduce the bug. It comes from the fact that you merge two models with conflicting joint or frame names. At the moment, this issue is not checked for. I don't know why the problem appears only when using frame 0...
A workaround is to add the following code after creating cart_model.
  // Apply a prefix
  std::string prefix ("cart/");
  for (pinocchio::JointIndex i = 1; i < cart_model.joints.size(); ++i) {
    cart_model.names[i] = prefix + cart_model.names[i];
  }
  for (pinocchio::FrameIndex i = 0; i < cart_model.frames.size(); ++i) {
    ::pinocchio::Frame& f = cart_model.frames[i];
    f.name = prefix + f.name;
  }
  BOOST_FOREACH(::pinocchio::GeometryObject& go, geomModel.geometryObjects) {
    go.name = prefix + go.name;
  }

Solved by #851.


Dan/add versions

This branch completes the following Trello card:
Close Source Assets - Add New Versions to Existing Assets

Didn't mean to close


About VAST4

Any update of VAST4 and VMAP?

VMAP is here: https://github.com/rs/vmap
For VAST4, PRs are welcome.


Mysterious TypeError with MIN RATING PERCENTILE Command

Issue Type: bug
For Bugs
Expected behavior: Culling to work correctly after a MIN PERCENTILE RATING is specified
Actual behavior: Log mentions TypeError in _findRatingAtPercentile() method and uses default value of None for minPercentileRating, but also correctly culls teams whose ratings are too low; unable to identify exact cause of error or conditions that yield it
Steps to reproduce:

Specify a valid MIN RATING PERCENTILE for a league (e.g., '50')

Environment details (if applicable):
Server: csl-bot alpha version
Example Cluster URL: https://docs.google.com/spreadsheets/d/1TrEB5H55jasFd91_y6WkJH3LL3c94-YabFH_P1RcT-U/edit?usp=drive_web&usp=sheets_home&ths=true
Notes:
Same Cluster's 1v1 league has had teams correctly culled so far. TypeError may be happening at the sheetDB level; I wasn't able to reproduce the exact error message while fiddling around with possible inputs for the _findRatingAtPercentile() method. Somewhere, a value of None is being treated as an iterable.

Fixed! Turns out it wasn't happening with the MIN RATING PERCENTILE Command but actually with the call to _checkFormat() where the cullingDisabled property required a check of whether there was a minimum rating... which called the ratingSystem property and tried to use the sysDict (which is at that point initialized to None) to check whether the rating system defined by the Cluster Commands sheet was valid. The rating systems dict is now properly initialized before the format check.


Implement saving already existing Charges

Hello, I've implemented mock updating charges. I've tested it with the "live" server (very handy!). I'm open to suggestions for improvement.
(round 2)

I'd be fine with you copy/pasting these changes into your own commit. I release it unto you.
Otherwise, anything else I can do to help?

Could you try rebasing with master one more time?


I87 store user information in pinia store

Change Summary
[Briefly summarise the changes that you made. Just high-level stuff]
Created a get_user url pattern, view and serialiser for users in backend
Created getUser function in user store
Created logout function in user store
Conditionally rendering login/signup or username/logout in navbar
Moved signup and user types in a single file called user.ts
Change Form
Fill this up (NA if not available). If a certain criteria is not met, can you please give a reason.

[x] The pull request title has an issue number
[x] The change works by "Smoke testing" or quick testing
[ ] The change has tests
[ ] The change has documentation

Other Information
This may conflict with #30 for the following:
The signup type is moved to another file (the type is still the same)
I created and edited urls.py, serialisers.py and edited views.py under users/ in the backend which may conflict with the changes in this issue.
resolve #87

reverted the npm uninstall commit, and then yarn removed chart.js and vue-chartjs


[CORE-2294] Update to<EMAIL_ADDRESS>

I also updated test & example URLs, which had been out-of-date.


Suggestions are not aligned to the Center.

As Iam increasing the font-size, suggestions are clearly visible. But on smaller font-size I cannot clearly see suggestions.
Is there a way to resolve this issue? If yes please suggest me the one. Thanks in advance.

It looks like you have CSS on your page that is selecting and modifying the content of the editor. You can:

load the editor via shadow dom
investigate and remove your CSS that is selecting dom nodes of the editor.

"
.label-name {
line-height: normal;
}
"
Yes, CSS on my page that is selecting and modifying the content of the editor. So, added above styling for editor.


Updated Model Training Document

As per the discussion, I have updated the model training file with the graphs (matplotlib charts and comparison between actual and predicted values for the models)

Not required


EVI Meeting Notes (Martin + Victoria)

EVI - Notes:
Background:
Values between -1 -> 1, like NDVI, and 0.2-0.8 -> healthy vegetation

[ ] background information and citations

Data:
Satellite: Sentinel 2 Level 2A
Bands: NIR = B8A, B04, B02
Calculation:
3-band EVI
EVI = G*(B8A-B04)/(B8A + C1/B04 - C2/B02 +1)
where: G = 2.5, C1 = 6, C2 = 7.5 and L = 1
Note: B8A chosen over B08 for the following reason:

B08 NIR centre wavelength = 842 nm

B8A NIR centre wavelength = 865 nm

MODIS (original EVI) NIR sensor centre wavelength = 858 nm

[ ] needs citation

Strategy
1 year vegetation index time series computing the monthly mean.....

[ ] flush out details here

Steps

Extract script from raster dataset
Calculate buffer program
EVI calculation script
Data cleaning/handling/viz

Ideas

plot per land use type?

Open Questions:

[ ] transfer over from Miro

Data prep

Masking strategy
Buffer size
Feeding in precipitation and temperature data?
How to sample spatially?
How to sample temporally?
Long scale series analysis?

Data analysis and viz

How to represent this to the farmer?
How do we represent this for the white paper
How do we determine what is healthy or not?


Issue 5 still persists; not skipping user that doesn't exist

When downloading from a list, it said "failed to get user uploads" then stops. It doesn't continue to the next user in the list. It also doesn't say which user so I can remove it from the list manually
#5

I wasn't able to reproduce the issue.
Could you make sure you're running the latest build from https://github.com/pikami/tiktok-dl/releases/tag/1.9.1
If you are running the latest build and it still doesn't work, please reply with:

Full command that you are using to run the tool
Any bulk download files
Chrome version that you have currently installed
Full output of the tool

Thank you.

Latest changes fixed whatever was causing it! Thank you for your hard work @pikami it is very appreciated!


Swagger UI endpoint authorization.

This helps to guard Swagger UI endpoints adding 3 new options to swagger documentation (in my case, using WineBouncer gem and Doorkeeper, but it is configurable):
endpoint_auth_wrapper: WineBouncer::OAuth2,
swagger_endpoint_guard: "oauth2 false",
oauth_token: 'doorkeeper_access_token'

To display the endpoint only for signed admin users, I am using a lambda (I think a few lambdas like this would go to options as well - I will work it later):
  not_admins = lambda { |token=nil| token.nil? || !User.find(token.resource_owner_id).admin? }

  resource :users, desc: "Users' operations" do
    desc 'List users', hidden: not_admins
    oauth2 'admin'
    get do
      render_result User.all
    end

Notes:

Using with Rails, 'rails' and 'wine_bouncer' gems should be required prior to 'grape-swagger' in boot.rb;
This works with a fresh PR to WineBouncer which is yet unmerged - https://github.com/antek-drzewiecki/wine_bouncer/pull/64.

@texpert … nice work, but can you add a spec please

@LeFnord , here is the spec, finally :)
Rubocop's complaining about double negation !!,  it is the only fail (and I think this cop is ambiguos.
!! looks much better here than some ternary ? to get true or false value) - what do you think?

@texpert … please rebase and try to use .present? to avoid rubocop warning, thanks

👍 … good work 😄

Thanks, @LeFnord!
I am prepairing one last commit to fix some nuances in the README, and after this I will squash.

Done!

For some people wonder on how to use basic auth to protect the endpoint, here's my implementation after some trial & error.
class BasicAuthWrapper < Grape::Middleware::Base
  def before
    if !basic_auth(env['HTTP_AUTHORIZATION'])
      context.error!('Unauthorized', 401)
    end
  end

  private

  def basic_auth(auth_header_string)
    return false if !auth_header_string || !auth_header_string.start_with?('Basic ')

    auth_header_string = auth_header_string.gsub(/^Basic /, '')
    decoded_str = Base64.decode64(auth_header_string)

	decoded_str == "username:password"
  end
end

# Usage: Add class to `endpoint_auth_wrapper` option
add_swagger_documentation(
  base_path: '/api/partner',
  doc_version: 'v1',
  add_version: true,
  mount_path: '/v1/swagger_doc',
  endpoint_auth_wrapper: BasicAuthWrapper


Reduce NewRelic usage

Background
Describe the problem that we are trying to solve with this feature.
If a path to a solution is known, feel free to write it down, but have an open mind
Newrlic bill got out of hand
Done when

[x] turn off newrelic on main-devnet-1 , main-devnet-2, main-devnet-3

[ ] Confirm that we have the following setup now:

[x] birdpoop2 node has newrelic, so we can monitor the public testnet
[x] private testnet nodes have it (no change needed), but only when actively testing as testnet is not running otherwise
[x] mainnet validator node should have it, so we can monitor mainnet
[x] no other nodes have it

I know we added a number of debug logs at the info level, is there a chance any of those stayed in?

no we removed them, but we are running some instances in debug mode to debug

There can be a delay before they are removed from the panel.. I do not want to close this until they are removed from the panel.

This can be closed.


Rich logging does poor things to stack traces

Rich breaks up python stack traces to fit its line length.  This makes the stack traces much harder to read.  For instance, from a docker logs output:
           ERROR    Internal error run `populate_raster_entry`:      tasks.py:47
                    RasterEntry matching query does not exist.
                    Traceback (most recent call last):
                      File "/home/ubuntu/misc/ResonantGeoData/geodat
                    a/tasks.py", line 45, in
                    task_populate_raster_entry
                        populate_raster_entry(raster_id)
                      File "/home/ubuntu/misc/ResonantGeoData/geodat
                    a/models/imagery/etl.py", line 271, in
                    populate_raster_entry
                        raster_entry =
                    RasterEntry.objects.get(id=raster_id)
                      File "/home/ubuntu/misc/ResonantGeoData/.tox/t
                    est/lib/python3.8/site-packages/django/db/models
                    /manager.py", line 85, in manager_method
                        return getattr(self.get_queryset(),
                    name)(*args, **kwargs)
                      File "/home/ubuntu/misc/ResonantGeoData/.tox/t
                    est/lib/python3.8/site-packages/django/db/models
                    /query.py", line 429, in get
                        raise self.model.DoesNotExist(
                    geodata.models.imagery.base.RasterEntry.DoesNotE
                    xist: RasterEntry matching query does not exist.

It would be better to not split stack trace lines.
Alternately, it would be nice to temporarily disable rich formatting when trying to debug something.

Part of the issue is that, when logging inside a docker container, the line length ends up being 80 characters, regardless of your terminal size.
Perhaps the rich traceback handler would improve things, but I haven't checked.

The issue appears to be terminal-specific.
This line of code in rich relies on shutil.get_terminal_size.
I believe that is failing in the Docker Compose environment, which returns the fallback value of 80 characters as the column width.

Interestingly, when I try to reproduce it minimally, with: docker run --rm -it python:3.8 python -c 'import shutil; print(shutil.get_terminal_size())', it successfully returns the real number of columns of my terminal.
@manthey What do you get from running this on your system?

I released that when I ran the Docker command earlier, I included -it out of habit, without considering the implications of -t:

Allocate a pseudo-tty

Indeed, running docker run --rm -i python:3.8 python -c 'import shutil; print(shutil.get_terminal_size())' returns 80 columns.

After looking, it appears that Docker Compose supports a tty option. I'll try to reproduce the issue and that fix now.

Using Docker Compose's tty option does provide some additional functionality, like color output, but often does not fully solve this issue. I've created https://github.com/girder/cookiecutter-django-girder/pull/50 along these lines.
However, even when running in TTY mode, many docker-compose sub-commands do not bind the size of the parent terminal to the containerized shell. In particular, docker-compose up does not bind sizes, though docker-compose run does.
At a lower level, services, including rich and shutil.get_terminal_size find the current terminal size by reading the LINES and COLUMNS pseudo-environment variables (I use the term "pseudo-" because although they are accessed programatically as environment variables, they are not truly part of the environment, but rather are set dynamically on every command).
One possible workaround is to explicitly set the environment variables LINES and COLUMNS to some greater value. This solution tries to get better values dynamically, though it could also be hardcoded on a per-user basis. Give the variability of users' terminal sizes, I don't think an upstream fix is advisable.
@manthey I'm certainly open to other ideas for better ways to get LINES and COLUMNS set within the container's execution environment.

I think if there was an easy way to disable rich while debugging or to bypass rich formatting for stack traces, that would be better than trying to resolve the terminal size.  The main gripe I have is the utility of stack traces is reduced when split and formatted -- you can't copy file paths as easily, and the familiarity of reading stack traces in their default form is lost, slowing down comprehension of the trace.
An alternative would be to also log to syslog or a log file which wouldn't be reformatted by rich.


Moved api controllers into api/v0.1

refs #9866

preparation for v2
moved api/ to api/v0.1
do export v0.1 straight from the api folder
require('../api') still works fine
that means currently if you require the api folder, we return v0.1 by default
there were some direct requires of api files in the test env

some of them use rewire
for now, we just correct the require path to require api/v0.1/
we touch the test env next week

@rishabhgrg Can you pls give me an instant review? Thanks :) I just moved the files to /v0.1.

The idea is to start with smaller PR's for api/v2 and api/shared.
I'll share more in the next PR's.
e.g. big overview
e.g structure

Yeah sounds good, this LGTM! :)

@rishabhgrg Thanks 👍


Link back to pages on the Wellcome site

Need to find out how to construct URLs for pages in the MOH reports.

report page URLs are in the format wellcomelibrary.org/moh/report/BNUMBER#?asi=VOLUMENUMBER&ai=IMAGENUMBER
These numbers are all in the image filenames:
BNUMBER is the first part of the filename starting b... they're all b followed by 8 characters (nearly always digits, sometimes an 'x' at the end)
VOLUMENUMBER is the next part of the filename after the underscore. I think it will nearly always be 0, unless there are any reports with multiple volumes
IMAGENUMBER is the last part of the file name, it's a number corresponding to the order of the image in the book (sort of like the page number, except it includes all the blank pages etc)


[Bug]: Incorrect number of returned documents

Preflight Checklist

[X] I agree to follow the Code of Conduct that this project adheres to.
[X] I have searched the issue tracker for an issue that matches the one I want to file, without success.
[X] I am not looking for support or already pursued the available support channels without success.

Version
1.0.3
Installation Type
Official SaaS Service
Service Name
DongTai-WebAPI
Describe the details of the bug and the steps to reproduce it

Solution: modify the default number of return items
Additional Information
No response
Logs
No response

fixed in v1.0.3


affine should have a background parameter, and not have jaggy edges

I try to rotate an image by arbitrary angle. Basically works fine with just similarity, but the borders look pretty jagged, compared to what for example imagick produces.
Any hints to make them smoother?
With VIPS:

With IMagick:

I'd also like to have a user-definable "background" layer instead of just an fully transparent alpha channel. For now I do this with:
                        $aa = $this->vips->extract_band(3);
                        $this->vips = $aa->ifthenelse($this->vips, $background);

But I assume this doesn't really work nicely, in case I happen to have smooth borders with hopefully also smoothness on the alpha channel for the rotated image. How would I put the rotated image on top of the background image (which can have an alpha channel as well)? Basically a compositeImage operation in IMagick, I assume.

I agree, the jagged edges are ugly, they should be fixed.
In the meantime, you can add a one-pixel border around the input image, the same colour as the background for similarity (ie. always black). You're right, a parameter to set the background for affine and similarity would be useful.
You can use flatten to composite an image with transparency against a background colour, would that help? It's the thing jpegsave uses to implement the background parameter there.
8.6 has a new composite operator that can merge a stack of transparent images using a set of PDF blend modes (so over, multiply, saturate etc.), which I think would be useful for you. 8.6 is sadly still not out, perhaps another week or two.

I've made this into an enhancement issue for affine, I hope that's OK.

Thanks for the answer, looking forward to the enhancements.
Was also thinking about adding a border before rotating. What's the best way to do this? (I hope my questions aren't too basic, but I couldn't figure that one out)
I assume flatten doesn't help in this case, since the background can have transparency as well, which I'd like to keep. But hopefully composite will solve my problems.

Use embed to add borders:
https://jcupitt.github.io/php-vips/docs/classes/Jcupitt.Vips.ImageAutodoc.html#method_embed
The C docs have more detail:
https://jcupitt.github.io/libvips/API/current/libvips-conversion.html#vips-embed
However, I think the right place to fix this would be in libvips. Let me see if I can address this in 8.6, and then you can avoid adding ugly workarounds to your code.

There's an issue on the main libvips repo to track this improvement.

It seems to be fixed in this branch:
https://github.com/jcupitt/libvips/tree/fix-affine-jaggies
With this command:
$ vips similarity grid.png x.png --angle 30 --background 128

I see:

Would you be able to test this?

Thanks for the quick fix. Looks good in general, only when I use eg. black  color with full transparency ([0,0,0,255] in PHP), it looks kinda wrong

But way better than before

btw, can confirm that the composite works, eg:
        $image = $image->composite([$image, $insertImage], [2]);

works nicely, also with alpha channels. Looking forward to see #55 implemented to have consts for those ints.

It wasn't premultiplying alpha, which can add edges on resampling. Could you test again?
Funny how fiddly it can be to get all the edge cases out.

Oh, test image:

Command:
$ vips similarity grid-rgba.png x.png --angle 30

Result:

The borders are fine now, but the background (apart from the direct border pixels) is now always totally transparent, with for example ['background' => [0,0,0,255]]. On purpose, so I should composite a background in?

 Try again, I now see:
$ vips similarity grid-rgba.png x.png --angle 30 --background "128 0 0 255"

perfect. thanks a lot, looking forward to 8.6

Thank you very much for testing this. I'll merge to master and add stuff for this to the test suite.


Show only one pending/failed tests summary for multiple run of RSpec::Core::Runner#run

I run multiple times RSpec::Core::Runner#run to execute test files. For each run the pending test files and failed test files are shown in the rspec summary. So the second run RSpec::Core::Runner#run shows again the pending/failed tests from first run RSpec::Core::Runner#run.
Is there a way to show pending/failed tests only once? I was wondering if it would be possible to don't show it for each run RSpec::Core::Runner#run and run some rspec command at the very end to display rspec summary with all pending/failed test files without running any tests instead of showing repeated summary for each intermediate run RSpec::Core::Runner#run. It would be great if you could share tip what could I do. Thanks!
Source file.
# fetch some test files from API and add to cli_args
options = RSpec::Core::ConfigurationOptions.new(cli_args)
exit_code = RSpec::Core::Runner.new(options).run($stderr, $stdout)
RSpec.world.example_groups.clear

# fetch more test files from API and set a newd cli_args with those test files
options = RSpec::Core::ConfigurationOptions.new(cli_args)
exit_code = RSpec::Core::Runner.new(options).run($stderr, $stdout)
RSpec.world.example_groups.clear

# when API returns no test files then do nothing

Example rspec output with repeated pending tests for second run:
################### First run

Calculator
  behaves like calculator
    behaves like has add method
      should equal true
    behaves like has mal method
      should equal true
  #add
    should eq 5
  #mal
    should eq 6

Meme
  #i_can_has_cheezburger?
    should eq "OHAI!"
  #will_it_blend?
    should eq "YES!"

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Calculator when add two numbers this must fail
     # Temporarily skipped with xit
     # ./spec/features/calculator_spec.rb:30

Finished in 0.02665 seconds (files took 3.26 seconds to load)
15 examples, 0 failures, 1 pending

################### Second run

Bar
  example at ./spec/bar_spec.rb:2 (PENDING: Temporarily skipped with xit)

Timecop
  should eq 21

Foo
  should equal true

FooBar
  should equal true

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Calculator when add two numbers this must fail
     # Temporarily skipped with xit
     # ./spec/features/calculator_spec.rb:30

  2) Bar
     # Temporarily skipped with xit
     # ./spec/bar_spec.rb:2

Finished in 0.03462 seconds (files took 4.15 seconds to load)
19 examples, 0 failures, 2 pending

Yes, you can write a custom formatter that doesn't output the summary, see https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/formatters/protocol.rb for documentation on how to implement one.

Also I can't remember the exact differences but RSpec.clear_examples might be a better option. I fixed some related things with it recently: https://github.com/rspec/rspec-core/pull/2368

I wrote my custom formatter. I also tried fix #2368 RSpec.clear_examples but it's on master and not yet released and it turned out I prefer to keep a cumulative summary of pending/failed tests so my customer format can show it at the very end and it works with old rspec and with the new one when you will release 3.6.
Thanks for help!


Board Review: Review DPG grow up experiment with Metrics Advisor in Java

Thank you for starting the process for approval of the client library for your Azure service.  Thorough review of your client library ensures that your APIs are consistent with the guidelines and the consumers of your client library have a consistently good experience when using Azure.
The Architecture Board reviews Track 2 libraries only. If your library does not meet this requirement, please reach out to Architecture Board before creating the issue.
Please reference our review process guidelines to understand what is being asked for in the issue template.
Before submitting, ensure you adjust the title of the issue appropriately.
Note that the required material must be included before a meeting can be scheduled.
Contacts and Timeline

Main contacts: @haolingdong-msft @weidongxu-microsoft @srnagar
Expected stable release date for this library: N/A

About the client library

Name of client library: Metrics Advisor DPG experiment
Is there an existing SDK library? If yes, provide link: https://mvnrepository.com/artifact/com.azure/azure-ai-metricsadvisor

Step 1: Champion Scenarios
We'll review the APIs of DPG for Metrics Advisor and then discuss the process for growing up the DPG clients to add convenience APIs.
https://gist.github.com/srnagar/4bc39072f7e262a0c1ae8d296fd4e0bc
Thank you for your submission!

Recording (MS INTERNAL ONLY)


Installing on Ubuntu breaks SSH - potentially serious

I installed yadr on my Ubuntu servers (Ubuntu 14.04.2 LTS) and then realised that I can no longer SSH to the boxes. Luckily already had an open connection to the boxes so after hours of digging, I found out that the problem was my default terminal in passwd was set to /bin/zsh while the only zsh file was at ~/.yadr/zsh. And I realised that the file does not exist so I did apt-get install zsh and it fixed it.
This can potentially render servers unusable by losing the ability to login.

yadr does not officially support ubuntu installs. please supply a PR if you'd like this fixed, thanks

OK thanks. Unfortunately my linux knowledge is not enough for me to do this safely :)

oooh.. this is why it's broken... uhh. mentioning this would be good.

Other than the missing the zsh pre-requisite, there isn't anything wrong with Yadr running in Ubuntu.


pip install fails

Describe the bug
Since conda install failed I fall back on pip, which seems wrong since panel is part of Anaconda :-) Pip fails too :-(
To Reproduce
I set up the .venv and activated per instructions then did the install.
pip install -r requirements_local.txt -f https://download.pytorch.org/whl/torch_stable.html
Defaulting to user installation because normal site-packages is not writeable
Looking in links: https://download.pytorch.org/whl/torch_stable.html
Obtaining file:///C:/Users/bwilson/source/repos/awesome-panel/package (from -r ./requirements.txt (l
ine 2))
Requirement already satisfied: wheel in c:\program files\arcgis\pro\bin\python\lib\site-packages (fr
om -r requirements_local.txt (line 7)) (0.36.2)
ERROR: Package 'awesome-panel' requires a different Python: 3.6.12 not in '>=3.7'

I know how to work around this (wrong version of Python) in conda, it's simple.
There is probably a similar way to fix venv too, maybe that should be in the instructions?
Expected behaviour
A working environment :-)
Desktop (please complete the following information):

OS: Windows 10

Additional context
Add any other context about the problem here.

Hi @brian32768
Thanks for reporting this. As you also notice the problem is a version of Python < 3.7.
I have updated the instructions in the README.md

Let me know if there is something better I could do. Thanks.

Hi @brian32768
Thanks for reporting this. As you also notice the problem is a version of Python < 3.7.
I have updated the instructions in the README.md

Let me know if there is something better I could do. Thanks.


Allow is and is not for direct type comparisons

Summary
This PR updates our E721 implementation and semantics to match the updated pycodestyle logic, which I think is an improvement. Specifically, we now allow type(obj) is int for exact type comparisons, which were previously impossible. So now, we're largely just linting against code like type(obj) == int.
Closes https://github.com/astral-sh/ruff/issues/7904.
Test Plan
Updated the test fixture and ensured parity with latest Flake8.

This may need to go out under preview \cc @zanieb

@zanieb - What do you think of this?

I agree preview makes sense for this change.
Perhaps we should clarify in the versioning policy that we will confine changes in the scope of rules to minor releases.


[Issue] Error on every player connection

Can't figure why it throws that error. I think I've done the update well, this is not an error since the commit of today but since more than two weeks when I started update from cfx to fx.

I have this but it's solved. I have Apply bad value to the hunger and thirst on a custom item food maybe you have similar problem


E2 rj patch 2

Added instructions on how to use this repository

Closing as I've made more changes


VSCode.dev is down, preventing login to VS Code

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

VS Code Version: N/A
OS Version: macOS

Steps to Reproduce:

Visit https://vscode.dev

It works for me... Can you follow these steps so that we can get more information on what's going on?

Trigger the sign in
Wait for the issue to happen...
Open the Output pane (ctrl+shift+u I think on Windows)
drop in this issue he contents of the following:

GitHub Authentication or Microsoft Authentication Output channel (whichever you're using)

Hey, thanks so much for your assistance with this issue. Once I received your response a few moments ago, I tested and saw that it was only happening on my laptop and not other devices. It turned out to be caused by a piece of software called Pow, which I guess intercepts browser visits to domains ending in .dev for some reason.
On the off chance someone else has the same issue, here's some more information:
Chrome says ERR_CONNECTION_REFUSED. Safari says "Safari can't establish a secure connection to the server." However, Firefox shows:
Symlink your app to ~/.pow/vscode first.

When you access http://vscode.dev/, Pow looks for a Rack application at ~/.pow/vscode. To run your app at this domain:

$ cd ~/.pow
$ ln -s /path/to/myapp vscode
$ open http://vscode.dev/

If this is happening to you, you can get the uninstaller for Pow here: https://github.com/basecamp/pow/blob/master/uninstall.sh
In terminal, make the script executable:
chmod +x /path/to/uninstall.sh
Then run it:
/path/to/uninstall.sh

I wonder by pow doesn't like .dev 🤔 in any case, glad you're unblocked! I'll go ahead and close this since you're set.
cc @joaomoreno


chore: Refactor sign up flow to support create workspace to be permission driven

/ok-to-test sha=d0a2544

/ok-to-test sha=d0a2544


Add swag-release retrieval in parallel to go get version (they don't …

…match!?)

This should also be tagged as v0.5 once merged.  Thx


signInWithCredential does not return callback

I am trying to have the user log in via facebook, I am passing in token data but I am not getting success or failure and firebase is not being updated. I am using latest v3 branch. Using Genymotion emulator with android 6.0.0.
const firestack = Firestack.initializeApp(env.firestack)

firestack.auth().signInWithCredential({
    provider: 'facebook',
    token: data.credentials.token
}).then((user) => {
    //doesn't get called
}).catch((err) => {
    //doesn't get called either
})

@braxtondiggs Why are you calling const firestack = Firestack.initializeApp(env.firestack) instead of new Firestack({})?

@auser that's correct now, same as web api, old way is also supported.

@braxtondiggs genymotion emulators don't have Google play services installed by default, which firebase requires. Without it it'll appear to hang.
I am working on some code to show a warning if it's missing, but in the meantime you just need to install play services, there was a link how to in another issue

https://github.com/codepath/android_guides/wiki/Genymotion-2.0-Emulators-with-Google-Play-support

@braxtondiggs can you pull my fork and try now if possible? If it's missing Play Services it should now show this:


Enhance empty string check.

Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)
[x] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description

Things to be aware of

Things to worry about

Additional Context

Hi @Jeevananthammoorthy thank you for creating this PR for us. The updated class is not the only place where we have this type of occurrence of this type of validation. Looking quickly through the code I have seen there several other places where we would need to update this as well. Would you mind looking for these classes and performing the same change over there?
Thanks,
Daniel.

Hi @Jeevananthammoorthy thank you for creating this PR for us. The updated class is not the only place where we have this type of occurrence of this type of validation. Looking quickly through the code I have seen there several other places where we would need to update this as well. Would you mind looking for these classes and performing the same change over there?
Thanks, Daniel.

Got it, will push the updated patch

@MalloD12  QQ: Is it okay to create new PR with the requested review comments? Am using githubDesktop, and I couldn't find away to update this commit.
Lmk if any issue, in raising new PR. the changes are ready in my local.

@MalloD12  Sure, will push update patch in sometime including null check before isEmpty().
Thanks,
Jeevanantham

@MalloD12 Sure, will push update patch in sometime including null check before isEmpty().
Thanks, Jeevanantham

I think it would depend on a case basis, maybe not all the cases need this null check.
Thanks,
Daniel.

@MalloD12  Updated the patch, kindly review.
Thanks,
Jeevanantham

@MalloD12 Updated the patch, kindly review.
Thanks, Jeevanantham

I have some unit tests failing, and I still need to confirm whether there is any relationship with the changes implemented in this PR or not. I might need to spend a bit more time on this. Also, I noticed today this PR has been created directly from your master branch, we should be creating a dedicated branch with a representative name of the changes we are trying to implement here. I'll keep you posted once I can determine the cause of these failing unit tests.
Thanks,
Daniel.

This PR is a minor extension from https://github.com/liquibase/liquibase/pull/3590 where we discussed with the team adding String isEmpty() check, instead of doing something like "".equals(<stringToCompareAgainst>). After we added some changes here the build of this PR started having some issues which might require a little bit more time to investigate the root cause of it, whether it's directly related to changes made here or if it's something else.
Move it back to "Foundation" queue for further prioritization, or we can also close it if we consider it is not worth expending too much time on it for the extra value it will provide us.
cc: @mariochampion

@kevin-atx - it wasn't merged. The contributor removed their repository and with that the PR was closed.

that makes sense - thanks!


Get the absolute index of the cursor and selection (on java side)

Describe the solution you'd like
Change the dispatching of the events (blur, selection, sync) in frontend (https://github.com/f0rce/lit-ace) to also include a calculation (by myself) of the absolute index of cursor and the absoulte indicies of the selection (from - to)

While implementing, I noticed that I have to check for many many more things. Due to needing a new version, I would just include it in the next update.


Allow svg badge whitelist to apply to all subdomains of a given domain

Repo

Open an extension that shows a visualstudio.com badge in its readme:

[![Build Status](https://vscode.visualstudio.com/_apis/public/build/definitions/a4cdce18-a05c-4bb8-9476-5d07e63bfd76/1/badge?branch=master)](https://aka.ms/vscode-builds)

Bug
Badge not rendered since the vscode.visualstudio.com authority is not in our whitelist. We can add this one manually  but the real correct fix would be allow all badges from *.visualstudio.com
/ cc @roblourens

This svg whitelist was removed with 99912f5866092ff906e69b8e66771c8124922ee2


cannot import name 'load_dataset' from 'datasets'

load_dataset is imported in the file the readme recommends running
python artifacts/download_dataset.py SHP --path ./datasets --number_of_samples 200

https://github.com/nebuly-ai/nebullvm/blob/52a4e1b26dbca5f6ce7f4afd0d6142a38465e7f6/apps/accelerate/chatllama/artifacts/download_dataset.py#L8
But no function is defined in the datasets module

oh I just need to have the datasets module. Perhaps dependencies should be specified?

oh I just need to have the datasets module. Perhaps dependencies should be specified?

Hi @jaybutera! We are currently working on providing a more explicit description of all the dependencies, and we plan to make it available shortly.
Thanks 🚀🚀


Fix error message when SWUPDATE_AES_FILE is not found or valid

The previous syntax always prints an empty string.

Contribution to SWUpdate can only be done on the mailing list: https://groups.google.com/g/swupdate
To post to the list, simply send a message to<EMAIL_ADDRESS>A contribution checklist can be found at https://sbabic.github.io/swupdate/contributing.html. Contribution is rather simple when using the git command line utilities. :muscle:
Quote from https://sbabic.github.io/swupdate/contributing.html:

do not use github Pull Request. github facilities are not used for this project. The review is done in a single place : the Mailing List. PR from github are ignored.

Contribution to SWUpdate can only be done on the mailing list: https://groups.google.com/g/swupdate
To post to the list, simply send a message to<EMAIL_ADDRESS>A contribution checklist can be found at https://sbabic.github.io/swupdate/contributing.html. Contribution is rather simple when using the git command line utilities. :muscle:
Quote from https://sbabic.github.io/swupdate/contributing.html:

do not use github Pull Request. github facilities are not used for this project. The review is done in a single place : the Mailing List. PR from github are ignored.


fix a11y issues in header nav

use button tag instead of div
reorder tooltip
add some css changes to keep layout
fixes #605
fixes #601
fixes #603

As a note, adding translations in PR has no effect, as crowdin can and will override any changes not made directly to the "source" file (lang-en_US.json). If you would like to help with translations, please request access to our crowdin project at crowdin.com/project/opencast-admin-interface.

Also this is probably obvious, but I do not understand how this addresses #603. Could you explain?

Also this is probably obvious, but I do not understand how this addresses #603. Could you explain?

The correct position of the ToolTip in the template enables the screenreader to say more than just "link".


Update Kotlin to 1.8.22, Gradle to 8.2.1, update related tooling

What does this PR do?
This PR updates Kotlin to 1.8.22, Gradle to 8.2.1 and also updates related tooling.
Latest versions of Kotlin (1.9) and Gradle (8.7) are not used, because Kotlin 1.9 may bring backward binary incompatibility (to be checked), so this PR is on the safe side and uses versions of the build tooling (Gradle included) which are still on Kotlin 1.8 or below.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

/merge


UI error

Im setting up the mouse input for the menu
`
bool StartScreen::isTextClicked()
{
auto state = m_mouse->Get().GetState();
RECT rect(state.x, state.y, m_fontPos.x, m_fontPos.y);

return rect(state.x, state.y, m_fontPos.x, m_fontPos.y);

}
`
I got this error:
Severity	Code	Description	Project	File	Line	Suppression State
Error (active)	E0289	no instance of constructor "tagRECT::tagRECT" matches the argument list

RECT doesn't have a ctor. It's just a generic struct defined in windef.h:
typedef struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;

There is a D3D11_RECT that is derived that RECT that adds a ctor unless you are building with D3D11_NO_HELPERS.
See https://github.com/microsoft/DirectXTK/wiki/DirectXHelpers
You can use C++11 uniform initialization with the base RECT as follows:
RECT rect = { state.x, state.y, m_fontPos.x, m_fontPos.y };

That said, it's most likely that your font positions are float so you'll get conversion warnings unless you cast it:
RECT rect = {  state.x, state.y, static_cast<long>(m_fontPos.x), static_cast<long>(m_fontPos.y) };


Deletion of wrong data in prometheus DB

Hi,
I have found a wrong line in the DB which is causing wrong statistics in the "COVID-19 Deaths in AUSTRIA by PROVINCE" view:
cov19_detail_dead{country="Austria",province=""} 1.000000
Can you delete it from the dataset?
Thanks!
BR/JO!

Should be removed.

Should be removed.

Nope, sorry.
Today morning the value was „1“, now it is „4“.

Please check again.

looks better now. Thanks!


Best practice for widget media files?

Hi,
Thank you so much for creating this set up. I've always found doing asset hashing with Django quite daunting but your work makes it super easy.
That said, I have custom widgets in my code base for which I have webpack built javascript assets. Previously I've used the media option on the widget to provide the direct path to the asset but now that path needs to be dynamic. I've ended up writing the code as:
from webpack_loader.utils import get_loader

class VenueByNameWidget(VenueWidget):

    url_name = 'venues:name-suggestions'
    target_id = 'venue-name-suggestions'
    js_app_name = 'venue-name-suggest-app'

    @property
    def media(self):
        loader = get_loader('DEFAULT')
        bundle = loader.get_bundle(self.js_app_name)
        paths = tuple(map(lambda entry: webpack_loader.get_chunk_url(entry), bundle))
        return widgets.Media(
            js=paths
        )

But I felt that maybe there should be a webpack_loader.utils function to help with this?
I am no Django expert so I might be approaching the whole thing incorrectly but I wanted to share my experience. I'm happy to attempt a pull request if this would be useful.
Kind regards and thanks again,
Michael

Hi Michael. Could you share the structure of your actual JS widget implementation? For most cases, you shouldn't need to have a reference to your assets managed by Webpack in Django. You can use assets in your JS components like  and webpack will take care of the rest. Django's doesn't even need to know this image exists.

Hi Michael. Could you share the structure of your actual JS widget implementation? For most cases, you shouldn't need to have a reference to your assets managed by Webpack in Django. You can use assets in your JS components like  and webpack will take care of the rest. Django's doesn't even need to know this image exists.

Thank you for the quick reply. I'm not sure that we're on the same page. My confusion is around Django Form Widgets and how the widget references the compiled javascript file using the media property rather than how the javascript files reference further assets.
My Django Widget makes use of a javascript file compiled by Webpack. Before adding [hash] to the javascript file name I used to just reference the javascript file directly by the expected output path but now I need to do a look up through the stats file and I feel that that look up from within Python code (rather than a template) could be assisted by an extra utility function or something.
I hope that makes sense. I might be missing something or using the wrong terms :/

Thank you for the quick reply. I'm not sure that we're on the same page. My confusion is around Django Form Widgets and how the widget references the compiled javascript file using the media property rather than how the javascript files reference further assets.
My Django Widget makes use of a javascript file compiled by Webpack. Before adding [hash] to the javascript file name I used to just reference the javascript file directly by the expected output path but now I need to do a look up through the stats file and I feel that that look up from within Python code (rather than a template) could be assisted by an extra utility function or something.
I hope that makes sense. I might be missing something or using the wrong terms :/

Yeah, sorry, re-reading my first post, it is far from clear that I was referring to a Django widget.

Yeah, sorry, re-reading my first post, it is far from clear that I was referring to a Django widget.

I see. Your suggestion about utils function sounds good to me. I think it'd be great to have a core set of functions that replicate the template tag functionality but deal with pure python objects (no django). Then the templatetags can also call those functions internally instead of implementing their own thing.

I see. Your suggestion about utils function sounds good to me. I think it'd be great to have a core set of functions that replicate the template tag functionality but deal with pure python objects (no django). Then the templatetags can also call those functions internally instead of implementing their own thing.

Cool, yeah, that would make sense. As suggested, happy to try to make a pull request if that would be useful.

Cool, yeah, that would make sense. As suggested, happy to try to make a pull request if that would be useful.

A PR would be great Michael. Thanks.

A PR would be great Michael. Thanks.

While the latest update (0.4.1, with utils functions) made this a breeze to install for form Media, I did find out that a server restart is required if the included files change if you use a hash in the name of the static file. This is only a small drawback, but I'd thought I'd share it here :)

Thanks @gabn88 I'm planning a major reorg of the internals. I'll see if I can handle this case as well.

Ok, may I ask why?
By the way, I meant a Django server restart (not a node.js/webpack dev server restart) :)

I've received a lot of requests that I don't want to implement as part of
the core package because they are edge cases. I want to provide extension
points so users can write a little bit of code to add even fairly complex
features themselves and release their own open source plugins that work
with webpack-loader.
On Mon, Mar 13, 2017, 11:42 PM gabn88<EMAIL_ADDRESS>wrote:

Ok, may I ask why?
By the way, I meant a Django server restart (not a node.js/webpack dev
server restart) :)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/owais/django-webpack-loader/issues/95#issuecomment-286195051,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAC0ajYFD9Uw737lAkTVgivHd7Cb0jwhks5rlYcLgaJpZM4LYtDO
.


Update HTTP/2 HPACK Decoder to check for oversized headers after header processing

Currently the HPACK Decoder checks to see if the maxHeaderListSize has been exceeded while it is still in the decode loop. This means that we can abort early, and leave the decoder side table corrupted.
Modification:
Moved the maxHeaderListSize limit check to after the decoder processing loop, so that we abort only when the maxHeaderListSizeGoAway limit is exceeded.
Added a test for this behavior.

@Scottmitch Found this in local testing. I should have caught this when I was looking at your commit. Sorry :(

@Scottmitch assigned to you 👍

thanks @exell-christopher ... once comments are resolved I will pull this in.

I believe I've resolved all the requested changes. Let me know if there's anything else that needs to change.

4.1 (d509365)
thanks again @exell-christopher!


Stock Locations and Items Ownership

If approved, fixes #1129 (and maybe #656)
Global

Added owner fields to StockLocation (ForeignKey to Django Group) and StockItem (ForeignKey to Django User)
Added global setting for ownership control of stock locations and items (under "Stock" tab): enabling this setting enforces ownership for add/edit operation on stock locations/items

Web Interface/Templates

Only the stock item owner (user) can see "add/edit" item
If user is member of stock location ownership (group), user can "add/edit" location

Forms/Views

The Owner field is shown in both stock location and item forms only when the global setting is enabled (otherwise hidden)
Adding a stock location requires:

the owner field (group) to be set
if the location has a parent, the owner is automatically set to the parent's owner and can't be changed

When editing a stock location's owner, all children locations are updated with the same owner
Adding a stock item requires:

the owner field (user) to be set
If the location is set, only a user associated to location ownership (group) can be selected as owner

Hi @eeintech I've finally had a chance to look at your implementation here. In general, it looks pretty nice!
A couple of fine points to be clarified:
Group vs User
I think it makes sense to allow some flexibility in determining "who" owns or controls a StockLocation or StockItem. I would like to see the ability to assign either a StockLocation or StockItem to a user or a group.

Assign StockItem to group or single user
Assign StockLocation to group or single user
Cannot assign to both a user and a group

Anonymous Items
In your current implementation, if "ownership" is enabled, can locations and/or items exist without an owner? Your description above seems to indicate that if ownership is enabled, then stock items and locations must have an owner assigned. Is this the case? I think that un-owned items and locations must still be supported in this case.

@SchrodingersGat Thanks for having a look :+1:
Please check out the following table:

UC stands for "Use-Case" (only for referencing each change)
Red text is when a change was made by user
Green text is when a location/item owner is automatically updated in database

Worth-to-mention notes

Changing the location's owner forces changes of all items' owners at that location (UC#2, 4 and 6)

Unless the new location's owner is a group and the item's owner is part of that group (UC#10)

Changing the item's location forces change of owner (UC#7)
There is no memory from previous items' owners in the case stock location's owner changes (UC#8)

Does it cover all your suggestions?
If/when you approve, I will update this PR to cover all those use-cases.

Thanks for putting this table together. I believe this covers the use cases I can think of.
How do you plan to implement the dual group/user ownership rules?

My plan was to have two separate fields in the models (one for group owner, one for user owner) and only one of them can be set at a given time. I was thinking to use the UniqueConstraint (ref) along with a conditional check that either one if set, but not both at the same time (XOR-type of logic). That way, whichever model owner field (group or user) is set is the actual owner.
That would also mean logic in the form to gather both users and groups in the same "owner" field and in the model/view to handle the switch of owner.
What do you think?

That sounds like a very sensible approach

@SchrodingersGat I think this pull request is ready for review (round 2).
I have changed the default behavior for parts without owners when stock ownership is enabled, both locations and items are now only editable by an Admin user.
The reason for this is to enforce that each location/item has its owner set, and not leave the door open to malicious users wanting to play around because the admin/InvenTree manager hasn't set the owner yet.
Does it make sense?
Here is the updated table of use-cases (I did traverse most of it manually through the web interface, and the test cases also try to repoduce those use-cases):

Also, I don't know what's happening with the Travis hook but it seems way behind.
For reference, the result of the last build should show up here: https://travis-ci.org/github/inventree/InvenTree/builds/754194770

@SchrodingersGat I think this pull request is ready for review (round 2).
I have changed the default behavior for parts without owners when stock ownership is enabled, both locations and items are now only editable by an Admin user.
The reason for this is to enforce that each location/item has its owner set, and not leave the door open to malicious users wanting to play around because the admin/InvenTree manager hasn't set the owner yet.
Does it make sense?
Here is the updated table of use-cases (I did traverse most of it manually through the web interface, and the test cases also try to repoduce those use-cases):

Also, I don't know what's happening with the Travis hook but it seems way behind.
For reference, the result of the last build should show up here: https://travis-ci.org/github/inventree/InvenTree/builds/754194770

@SchrodingersGat I realized that I forgot to mentioned how I implemented the "owner" field.
Instead of my original thoughts of using two separate database fields, I went with a GenericForeignKey implementation.
I created a "proxy" class conveniently called Owner in the users app.
An "owner" is a link to either a User or Group instance.
Owners creation and deletion is linked closely to users and groups, so that there is no discrepancy there (eg. owner pointing to deleted user or group, user or group missing an owner entry).
Now what's great about this implementation of ownership is that it can be re-use in other apps other than the stock management :smiley:
It's also quite easy to add to existing models and forms as it is just one extra field!
I found it quite easy to retrieve authorized owners in templates too.
Take a look into InvenTree/users/models.py for more details, I hope you like it too!

@SchrodingersGat I realized that I forgot to mentioned how I implemented the "owner" field.
Instead of my original thoughts of using two separate database fields, I went with a GenericForeignKey implementation.
I created a "proxy" class conveniently called Owner in the users app.
An "owner" is a link to either a User or Group instance.
Owners creation and deletion is linked closely to users and groups, so that there is no discrepancy there (eg. owner pointing to deleted user or group, user or group missing an owner entry).
Now what's great about this implementation of ownership is that it can be re-use in other apps other than the stock management :smiley:
It's also quite easy to add to existing models and forms as it is just one extra field!
I found it quite easy to retrieve authorized owners in templates too.
Take a look into InvenTree/users/models.py for more details, I hope you like it too!

@eeintech thanks for your fantastic effort here. I should have some time to look over this in the next couple of days 👍

@eeintech thanks for your fantastic effort here. I should have some time to look over this in the next couple of days 👍

Hey @eeintech sorry some recent merges have caused some conflicts here. Can you please fix and I'll review :)

Hey @eeintech sorry some recent merges have caused some conflicts here. Can you please fix and I'll review :)

@SchrodingersGat Here you go! :wink:

@SchrodingersGat Here you go! :wink:

Hi @eeintech I like what you have implemented here. I do not see anything which would prevent me from merging this. Are you 100% happy for this to be merged now or are there any things you still need to work on?

Hi @eeintech I like what you have implemented here. I do not see anything which would prevent me from merging this. Are you 100% happy for this to be merged now or are there any things you still need to work on?

@SchrodingersGat Yes this is ready to be merged, I don't intend to add more for the time being.

@SchrodingersGat Yes this is ready to be merged, I don't intend to add more for the time being.

Fantastic, thanks for the great work on this. This (and the documentation in https://github.com/inventree/inventree-docs/issues/47) are all that I'm waiting on for the next major release :)

Fantastic, thanks for the great work on this. This (and the documentation in https://github.com/inventree/inventree-docs/issues/47) are all that I'm waiting on for the next major release :)


Make tag replacement more robust

Some challenges are incorrectly saved with no solutions
closes #5077

@FreeCodeCamp/issue-moderators This is highest priority. If you are available please QA and merge.

QA procedure.

Load up you local FCC from staging and load your profile. localhost:3001/berkeleyTrue for example.
In your local mongodb, find a bonfire in the completedChallenges array of your user profile and delete the solution.
refresh the profile page when the server has restarted.

You should see the error page and 'cannot read replace of undefined'

Load this PR
Load the profile page. It should load without issue

Works for me! :+1:


Fixing link to MS VS 2017 tools for Windows (in french translation)

The french visitors of the Microsoft Visual Studio website are redirected on its french version, but when they are redirected, they are loosing the ID of the subsection of the tool they need to install for Microsoft Windows use (the #build-tools-for-visual-studio-2017 part on the end of the URL). Furthermore, the name of the tool in french was wrong (or has changed since translated).
I've discovered the correct name of the software when I changed the name of the Microsoft Visual Studio website to English and click another time on the link.
r? @steveklabnik

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @steveklabnik (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.


Routing to Controller Actions PR

Change is to mvc/controllers/routing.rst Routing to Controller Actions.  Also includes a sample project that I created to test the routes, functionality etc..  Happy to make any requested changes.  Let me know what should be expanded upon, what should be condensed etc..

Hi @ssargent, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla2.dotnetfoundation.org.

TTYL, DNFBOT;

@ssargent, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, DNFBOT;

@rynowak Please review

Thanks for the contribution! This looks like a good initial article on attribute routing (convention based routing could be covered separately). The article could use a simple intro. Also I think we need to go beyond illustrative examples in the some of the sections to add some more reference content, like what inline constraints are available, what route tokens are available, syntax for optionality and default values, etc. I think we need to do an editorial pass on the content to make the voice consistent with the rest of our docs and also to clean up the RST. @rachelappel Is this something you could help out with?
I see you put the sample code in the common folder. We only use the common folder for samples that are frequently used across multiple projects. Right now the only samples that we have in common are the latest project templates from Visual Studio. All other sample code should live in a companion folder for the article. You can take a look at other articles in the repo to see how this is typically setup.
Ideally any sample code included gets directly referenced by the article using the Sphinx literalinclude directive instead of inline codeblocks. This makes it easier to make sure the code snippets in the docs all compile. We do try to keep the samples as simple and illustrative as possible as this makes the code easier to maintain over time.
Looks like the sample code was based on beta5. We should check to make sure that the code still works as expected on rc1.
This PR also contains a new top level Routing node in the MVC TOC with a bunch of sub directories and empty files. I think this node can be removed for now since it doesn't contain any content and I'm not really sure it's needed.
Let us know how much of this you want to take on yourself or if you prefer that we handle the additional required updates. Thank you again for helping to document ASP.NET 5!

@danroth27 Happy to! I'll hold off until @ssargent  lets us know where we can best help.

Sorry for the delay.  I'll take an initial pass at this and have it in by monday morning.  I figure I'll tackle the low hanging fruit, formatting, intro, removing unneeded things ie TOC, include vs inline.  I'll definitely need help with the voice, I'll check some other content to get an idea but I've a feeling I'm not going to stick the landing on that so-to-speak.

moved to #1374


Default position of scrollbar (top)  after everytime an activity is quit.

Rather than displaying  the activity list from top (by default) after every time we quit an application , the activity list is to be displayed at the point till the place up to where it was already scrolled.
I thought for this as when i was trying all activities one by one in the activity list , when i reached to activities present in the last of activity page each time when i quit an activity i was by default directed to top of activity list . So for going to the activity next to previous activity i would have had to scroll again to bottom.

Yes, you're right.

Can I work on this enhancement or is someone currently working on this?

@renneytj sure. Let's go.

Fixed in https://github.com/llaske/sugarizer/pull/948

@shivamrai1904, please don't close the issue.
Issues are closed only when a new release is out.

Sorry sir,
I wasn't aware of this thing.
I will reopen it.
On Tue, May 4, 2021, 1:47 AM Lionel Laské @.***> wrote:

@shivamrai1904 https://github.com/shivamrai1904, please don't close the
issue.
Issues are closed only when a new release is out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/llaske/sugarizer/issues/945#issuecomment-831507418,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASNHHXWMEXKEZZJY7TNUSRDTL4AFPANCNFSM42IZQ5NA
.

Fine you did it.
On Tue, May 4, 2021, 9:03 AM Shivam Rai @.***> wrote:

Sorry sir,
I wasn't aware of this thing.
I will reopen it.
On Tue, May 4, 2021, 1:47 AM Lionel Laské @.***>
wrote:

@shivamrai1904 https://github.com/shivamrai1904, please don't close
the issue.
Issues are closed only when a new release is out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/llaske/sugarizer/issues/945#issuecomment-831507418,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASNHHXWMEXKEZZJY7TNUSRDTL4AFPANCNFSM42IZQ5NA
.


Backport[2.x]: Add support of default replica count change (#5610)

Add default replica count config settings

Signed-off-by: Arpit Bandejiya<EMAIL_ADDRESS>
Description
[Describe what this change achieves]
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #5732 (9f41035) into 2.x (85b85b1) will increase coverage by 0.06%.
The diff coverage is 14.28%.

@@             Coverage Diff              @@
##                2.x    #5732      +/-   ##
============================================
+ Coverage     70.53%   70.60%   +0.06%
- Complexity    58612    58618       +6
============================================
  Files          4741     4741
  Lines        280588   280607      +19
  Branches      40894    40894
============================================
+ Hits         197918   198127     +209
+ Misses        66152    65945     -207
- Partials      16518    16535      +17

Impacted Files
Coverage Δ

...rg/opensearch/common/settings/ClusterSettings.java
91.89% <ø> (ø)

...a/org/opensearch/test/OpenSearchIntegTestCase.java
55.02% <0.00%> (-1.63%)
:arrow_down:

...java/org/opensearch/cluster/metadata/Metadata.java
86.80% <100.00%> (+0.14%)
:arrow_up:

...h/cluster/metadata/MetadataCreateIndexService.java
77.43% <100.00%> (-0.19%)
:arrow_down:

...adcast/BroadcastShardOperationFailedException.java
33.33% <0.00%> (-66.67%)
:arrow_down:

...opensearch/persistent/PersistentTasksExecutor.java
22.22% <0.00%> (-44.45%)
:arrow_down:

...cluster/coordination/PublishClusterStateStats.java
33.33% <0.00%> (-37.51%)
:arrow_down:

...rch/client/transport/NoNodeAvailableException.java
42.85% <0.00%> (-28.58%)
:arrow_down:

...a/org/opensearch/index/mapper/MapperException.java
75.00% <0.00%> (-25.00%)
:arrow_down:

...nsearch/index/shard/IndexingOperationListener.java
63.93% <0.00%> (-22.96%)
:arrow_down:

... and 491 more

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


[Feature Request] Remove unselected mode for cells.

I am a programmer by background and I do not like to use the mouse as I find it slow and unergonomic. Currently I am trying out editing Jupyter notebooks in VS code using Microsoft's Jupyter extension.
From Microsoft's online documentation, I can see that cells can be in 3 modes :

Unselected
Selected : Command
Selected : Edit

The problem : Pressing Esc while editing a cell take me from 'Edit' to 'Command' mode. Pressing Esc again takes me from 'Command' to 'Unselected' mode. The problem is that if I accidentally press Esc twice while editing, the cell goes to 'Unselected' mode (from 'Edit' mode), and the only way to select it again is to click on the cell using the mouse. This is happening too many times and it is getting annoying. As far as I remember, browser based Jupyter notebook do not have this behaviour.
Proposed Workflow:

User is in editing a cell and therefore cell is in 'Selected:Edit' mode.
User presses Esc. This switches the cell to 'Selected:Command' mode.
Pressing Esc again does not unselect the current cell and infact does nothing.
Navigating to another cell using keyboard/mouse deselects current cell and selects the other cell.

I think this workflow would be a lot more convenient.

That makes sense, thanks for the suggestion. It would probably have to be an optional setting if there are any workflows that rely on that functionality.
Possibly helpful: there are "focus first/last cell" commands (ctrl+home/end on Windows) that could help get focus back, but not so helpful if you're working in the middle of a large notebook.

Thanks for the feedback, @amunger .
I can help make this modification if there is broad consensus that an optional switch for turning off 'Unselected mode' for cell makes sense.
Please advice if we need more discussion/engagement on this.
If not, please also advice what would be the appropriate place to store this optional switch.

@aakashsbhowmick, thanks for the feedback. This looks like a dupe of https://github.com/microsoft/vscode/issues/128153.