Move accounts-db stats to a separate module

Problem
accounts_db.rs at over 18000 lines becomes unwieldy.
Summary of Changes
Move all stats definitions to a separate module.

@brooksprumo what do you think about offloading some of the accounts_db.rs content to separate modules?

I run
SOLANA_ABI_DUMP_DIR=abi_dir cargo +nightly test --features frozen-abi --package solana-runtime test_abi_

and get the ouput
thread 'bank::BankSlotDelta_frozen_abi::test_abi_digest' panicked at frozen-abi/src/abi_digester.rs:219:56:
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test bank::BankSlotDelta_frozen_abi::test_abi_digest ... FAILED
thread 'bank::serde_snapshot::tests::test_bank_serialize::BankAbiTestWrapper_frozen_abi::test_abi_digest' panicked at frozen-abi/src/abi_digester.rs:219:56:
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
test bank::serde_snapshot::tests::test_bank_serialize::BankAbiTestWrapper_frozen_abi::test_abi_digest ... FAILED

I don't know what to make of it.
I updated the digest to match the one generated in the CI. Doesn't it mean that the digest is correct?


Refresh button updating database, api v22 as max  SDK, code cleanup

@mariobehling @ty221 please merge this.

@mananwason I am not sure, if I understand why there needs to be a splash screen. I think a progress bar or update in the background would be fine too. A full splash screen is a bit intruding as it occupies the whole screen.

@mariobehling it's just that anyone would only press that button if they were offline when they started the app and so no data on the screen anyway.
But I think that progress bar is a good option too. If you say then I can change it to a progress bar.


dontStrip has no effect on Haskell packages

Issue description
Passing dontStrip = true; to a Haskell package has no effect, the resulting binary is stripped.
Steps to reproduce
% file $(nix-build --expr 'with import <nixpkgs> {}; haskell.lib.overrideCabal haskellPackages.hello (old: { dontStrip = true; })')/bin/hello
/nix/store/qqf2c5zq5dqs69vhf7lal08kvb420nwz-hello-<IP_ADDRESS>/bin/hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped

Technical details
% nix-shell -p nix-info --run 'nix-info -m'
 - system: `"x86_64-linux"`
 - host os: `Linux 4.13.0-43-generic, Ubuntu, 16.04.4 LTS (Xenial Xerus)`
 - multi-user?: `no`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.0.4`
 - channels(niklas): `"nixpkgs-18.03.132865.411cc559c05, unstable-18.09pre145679.dae9cf6106d, nixos-17.03-17.03.873.0c041520c3"`
 - nixpkgs: `/home/niklas/.nix-defexpr/channels/nixpkgs`

CC @peti

I have checked that at the time postInstall runs,
          ${pkgs.file}/bin/file dist/build/hello/hello

shows as not stripped but
          ${pkgs.file}/bin/file $out/bin/hello

shows as stripped.

nix-build --expr 'with import <nixpkgs> {}; haskell.lib.overrideCabal haskellPackages.hello (old: { dontStrip = true; postInstall = "${pkgs.file}/bin/file dist/build/hello/hello $out/bin/hello"; })'
...
dist/build/hello/hello:                                              ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, with debug_info, not stripped
/nix/store/4anj1rmy0y4g9fkmcx0kzhf9jjmqwxvk-hello-<IP_ADDRESS>/bin/hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped
...

The solution seems to be to pass --disable-executable-stripping in configureFlags when dontStrip is given.

PR with the fix at #43508


Hawkular-922 Add Group trigger services, and full trigger get for alerts

Merged #90

Version 0.9.2


Table formatting bug with rowspans and colspans

Found another bug with dissapearing value in cells:

Code: http://pastebin.com/zBKA3zMd

Hi @itskun ,
Ack!!  How did this bite me twice?! :-)  There was a single line of code that needed to be excised and that fixed the issue.
This time, i've created a crazy complicated example and added it to the demo:

Thanks for the excellent bug hunting abilities. 👍


twister: Twister cannot properly handle runners errors (flashing)

Describe the bug
Errors occurring during flashing devices are not handled properly. There are several scenarios related to this issue.
I am able to reliably reproduce it on nrf5340 board, which raises errors during programming when app protected is not disabled, however, I see the same issues occasionally on other boards when an error occurs during programming.
Scenarios:
1.) configuration: when '--ninja' is used (both with and without --hardware-map): the test fails as soon as there is an error (which is good). However, the fail is reported as FAILED Cmake build failure (device) and treated as build error. Therefore, using --retry-failed does not retries such failures (which is bad).

expected behavior: Such fail is not treated as a build error and the failed test is retried when --retry-failed is used

2.) configuration: without --ninja and without --hardware-map: the test ends only after timeout, even though "make" reports earlier there was a fail (Makefile:748: recipe for target 'flash' failed). This adds ~60s of wasted time to the test suite which can stack to some meaningful time in big test suites. In this scenario, --retry-failed works as it should

expected behavior:  test should be terminated as soon as there is an error in make for flash.

3.) configuration: without --ninja and with --hardware-map: Similar to 2.). This time, the output about make flash failing is not printed out. The rest is the same. Tests can be retried but are terminated only by timeouts.

expected behavior:  test should be terminated as soon as there is an error in make for flash.

The fact that hardware-related errors are seen as build errors results in printing out/saving in the report a lot of useless information which hinders the real issues. In such a case the full build log is dumped, even though the building was fine.
Impact
Can significantly increase the execution time for big test suites. Failed tests might not get retried. Hinders real errors with full build logs.
Environment (please complete the following information):

OS Ubuntu: 18.04
Toolchain: Zephyr SDK
Commit SHA or Version used: zephyr-v2.5.0-276-g8e75fff5808f

Additional context
@nashif I also wonder if this could be the cause for "log mixing" problem #25719. I saw in my setups, that when flashing failed, the already programmed app can be executed giving not matching output.

Those are multiple issues, it would be nicer to open 1 issue for each problem with more details.

configuration: when '--ninja' is used (both with and without --hardware-map): the test fails as soon as there is an error (which is good). However, the fail is reported as FAILED Cmake build failure (device) and treated as build error. Therefore, using --retry-failed does not retries such failures (which is bad).

We do not retry cmake/build failures and this is by design. Can you give more details about the failure? Why exactly does it fail?

@nashif I don't think splitting this issue would help, as all of the issues (most likely) have the same root cause, i.e. flashing a board being a part of the building stage.
There can be various reasons for failures during flashing, e.g some connection issues or, like in the case where I can have the error all the time, when the board is "protected" and needs "recovery" before being flashable (I guess this is specific to nrf5340 board).
I think that having flashing as a separate procedure (not part of the build stage) might solve these issues.
Anyway, I will try to debug the reported issues further and if I see that any of them can be solved on its own, I will descope it from here and create a separate bug report.


chore: format all files with prettier

Format all files with prettier, so that future PRs will only have non-style-related changes.

https://github.com/single-spa/single-spa-angular/runs/577492821
:tada:


standardizing the coding conventions to the rest of the repo

This is the last repo in my housekeeping push to standardize the coding conventions and developer guidelines across the 'sqlalchemy' orgs various libraries.
This is not tested, as I don't have access to ms access
This is unfortunately also the biggest changeset, as it did not already use black or pre-commit, so this absolutely needs a review.

so yes, you just put unreleased_xx/ticket.rst files in.    the content of those files gets put into the "changelog" file at release time using this: https://github.com/sqlalchemyorg/changelog/blob/master/changelog/cmd.py#L11


Revise Button Group stacking to target particular breakpoints

I've revised Button Group so that you can stack it on particular screen sizes. The .stacked-for-medium class will stack a button group on medium screens or smaller. Using the .stacked class in combination with .unstacked-for-large, the menu is stacked for small and medium screen, but unstacked for large and larger.

So is this going against the mobile first classes of the framework?

Hmm, good point.
Using .stacked and .unstacked-for-[breakpoint] is totally a mobile first approach.
But I see your point that .stacked-for-[breakpoint] seems less mobile first. Could just be semantics tho—you could think of it as "stacked for all screens up to [breakpoint]" and rename it appropriately. But it really serves the same function as .stacked and .unstacked-for-[breakpoint].
I try reworking this so that .stacked-for-[breakpoint] only targets that particular breakpoint (not also those which are smaller). I'll try:

.stacked – stacks at all screen sizes
.unstacked-for-[breakpoint] – used w/ .stacked, unstacks at a particular breakpoint
.stacked-for-[breakpoint] – stacks at a particular breakpoint

Would this be better, @zurbrandon?

After discussing this internally, we decided we aren't interested in having responsive versions of these button group features. However, we were able to fix the issue where .expanded and .stacked-for-small conflict with each other.
We will at least add a .stacked-for-medium class to give button groups a little more flexibility, however.

However, we were able to fix the issue where .expanded and .stacked-for-small conflict with each other.

Was this fixed, and then broke again? These 2 classes don't work together. Would someone please share the fix for this?

PR open #10703


Reduction in total number of nodes after upgrading to 0.31.3

Description
Observed Behavior:
After upgrading Karpenter chart version from 0.29.0 to 0.31.3 we saw a decrease in total number of nodes provisioned by karpenter which persisted for around 6 days until we rolled it back (to 0.29.0) which affected the workloads running on our cluster.
Following the rollback the things returned to normalcy, reverting to its pre-upgrade state

Some other unusual fluctuations were also observed during the incident like

Few new instance types came in that window

Instance type with no name (N/A) increased drastically

Some of the instance types like r7i.48xlarge, r6a.48xlarge count reduced drastically and some like r7a.48xlarge count increased

Expected Behavior:
The total node count and count of different instance types should have shown similar trend even after upgrade.
Versions:

Chart Version: 0.31.3 (upgraded from 0.29.0)
Kubernetes Version (kubectl version): 1.25

To confirm, were the workloads running on the cluster consistent throughout the upgrade period? You say workloads were effected, is this because Karpenter wasn't provisioning enough capacity for the pods or because of the change to a different instance type? When you say there were instance types with no name how were you gathering those metrics? Does this represent NodeClaims that failed to launch an instance. There's a fair bit more information we need here to diagnose this I think. Are you able to provide any of your Karpenter resources (provisioners, node templates, node claims, etc) as well as logs from the upgrade event?

Hi @jmdeal

were the workloads running on the cluster consistent throughout the upgrade period?

Yes the workloads were consistent throughout the node reduction window, we can see that from the very first graph as well that after rollback the node count began to show improvement.

workloads were effected, is this because Karpenter wasn't provisioning enough capacity for the pods or because

The main cause seems to be Karpenter not provisioning enough capacity for the pods (from node count graph)

When you say there were instance types with no name how were you gathering those metrics?

During our analysis regarding the instance types with no name, we found out that when any instance is deprovisioned within few seconds of its launch, it comes up with N/A. Hence it seems that a significant number of instances were deprovisioned or consolidated shortly after launch during that timeframe

Does this represent NodeClaims that failed to launch an instance

We're not using NodeClaims as of now.

Are you able to provide any of your Karpenter resources (provisioners, node templates, node claims, etc) as well as logs from the upgrade event?

Here is one of the provisioner
apiVersion: karpenter.sh/v1alpha5 kind: Provisioner metadata:   annotations:     karpenter.sh/provisioner-hash: 'xxxxxxxxxxxxxxx10'   name: xxxx-provisioner spec:   consolidation:     enabled: true   kubeletConfiguration:     containerRuntime: containerd     imageGCHighThresholdPercent: 70     imageGCLowThresholdPercent: 50   labels:     karpenter-provisioner-type: xxxxx   providerRef:     name: xxxx-provisioner-template   requirements:     - key: topology.kubernetes.io/zone       operator: In       values:         - us-east-1a         - us-east-1b         - us-east-1c     - key: kubernetes.io/arch       operator: In       values:         - amd64         - arm64     - key: karpenter.sh/capacity-type       operator: In       values:         - on-demand         - spot     - key: karpenter.k8s.aws/instance-size       operator: In       values:         - 4xlarge         - 6xlarge         - 8xlarge         - 9xlarge         - 10xlarge         - 12xlarge         - 16xlarge         - 18xlarge         - 24xlarge         - 32xlarge         - 48xlarge     - key: karpenter.k8s.aws/instance-category       operator: NotIn       values:         - t         - a         - x         - h     - key: karpenter.k8s.aws/instance-family       operator: NotIn       values:         - c1         - cc1         - cc2         - cg1         - cg2         - cr1         - c3         - r3         - g1         - g2         - hi1         - hs1         - m1         - m2         - m3         - t1         - t3     - key: node.kubernetes.io/instance-type       operator: NotIn       values:         - g4ad.xlarge         - g4ad.2xlarge         - g4ad.4xlarge         - g4ad.8xlarge         - g4ad.16xlarge     - key: kubernetes.io/os       operator: In       values:         - linux   ttlSecondsUntilExpired: 1728000
I don't have logs from the upgrade event but the upgrade went completely fine and the actual issue started after the upgrade.

By the way, we've upgraded Karpenter to v0.31.3 again with consolidation disabled, and things seems good so far. Could you please verify if there are any consolidation related changes between v0.29.0 and v0.31.3 that might have triggered the issue.
Also while going through the release notes I came across this PR which says we no longer wait for all pods to be scheduled before consolidating a node. However, I am unsure about what all criteria it checks or if there is a violation occurring somewhere, leading to consolidation even when it is not required and affecting the workloads.


twcc: push_back the rtcp feedback

TWCC is time critical. Maybe it's better to put it at the front?


Clarify what the input cell size is and simplify/cleanup calculations

I think it is unclear what the input cell size relates to in terms of the size of the output hexagons.
Also, as @jvail pointed out, the section of initial calculations about heights, width, adjustments, etc. is a bit messy and unclear -- it should be cleaned up and the code better documented.

-> https://github.com/Turfjs/turf/issues/358


Moving platform and 3D issues

Godot version:
OS/device including version:
All
Issue description:
It seems to be an already know issue because it was mostly fixed in 3.1 for the 2D part and this blog post announces that "they will be ported to the 3D engine". However as I can't find any issue related to this on Github, so I created this one.
In summary in vertical movement, the body "enter" in the platform, and in horizontal movement, there is inertia when changing direction. (strangely move_and_slide_with_snap worsens the issue)
Minimal reproduction project:
here

It's unclear to me what the issue is.

The functions mentioned in the blog you refer to, all do exist in 3D.
In your example project I don't see the body entering the platform.
I also don't understand what you mean by there being inertia when changing direction.

I would suggest closing this issue and creating a separate issue for each problem. Then, clearly explain what the current behaviour is and what the expected behaviour is. Also, provide an minimal reproduction project that clearly shows the problem. Finally, you should upload the minimal project directly to Github instead of using a link to an external storage provider.

It's unclear to me what the issue is.
I also don't understand what you mean by there being inertia when changing direction.
The functions mentioned in the blog you refer to, all do exist in 3D.

Thanks to the interest @madmiraal. Indeed, I should have explained the issue instead of link a blog post. The issue is: "When a body is on a moving platform, he doesn't follow the platform's movements.”
If you read the blog post, in the part, "SYNC TO PHYSICS", you will understand what I called inertia in the gif. In 2D, 3.1 fix that with the "sync to physics" checkbox, but this checkbox doesn't exist in KinematicBody3D.
When a body is on a moving platform, you expect that the body follows the platform without moving/sliding/inertia (see the blog post).

In your example project I don't see the body entering the platform.
creating a separate issue for each problem.

If you observe the cube movement, you will see it's not linear but step by step because it collides. That's the same issue, because the body doesn't follow properly, it collides.

Add sync to physics checkbox to 3D KinematicBody

That would make this a feature request and not a bug. Feature requests should be made here.

That would make this a feature request and not a bug.

I'm not agree, it's a possible solution.
Either a KinematicBody follow the platform's movement, or not. But currently, it follows the platform but it doesn't do it well, which seems to me to be a bug. You can see why in the blog post I linked about the same issue in 2D:

When a KinematicBody is moved around, it automatically computes its linear and angular velocity [...] This makes KinematicBody also very useful for moving platforms [...] its motion was always a frame ahead than the physics, so the character appears to slowly slide over it. To compensate with this, a new option "Sync to Physics" was added.

If I'm wrong, feel free to close the issue.

@fabriceci I agree it's a desirable feature, but it's still a feature request; even if a blog post suggested it would be implemented in the future.
All feature and improvement proposals for the Godot Engine are now being discussed and reviewed in the dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, all feature proposals on the main issue tracker are being closed.
Assuming you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal).

@madadam No problem, it's done


Allow deriving all traits using a single derive

I recently spent multiple hours upgrading Fuchsia's vendored zerocopy to 0.8.0-alpha.1. The vast majority of this effort was spent updating #[derive(...)] annotations to also derive our new NoCell trait.
The vast majority of types I encountered could soundly implement all of zerocopy's current traits, and could also soundly implement future planned traits such as TryFromBytes. For these types, if there had been an "alias" that represented "all of zerocopy's traits", it would have saved me a huge amount of time. For the small subset of types which could not support this, still listing traits manually would be trivial.
I'm thinking something like:
#[deive(zerocopy::AllTraits)]
#[repr(C)]
struct Foo { ... }

The main drawback of this approach is that it's only forwards-compatible with adding new traits when those traits are guaranteed to be derivable on all types for which the old set of traits was derivable. We may end up in a situation where, within a given version train, we have to add a trait that one would reasonably expect to be implied by AllTraits, but cannot be until the next version train. That might not be the worst thing, since the main benefit of AllTraits is in making semver-breaking upgrades lower-friction. It would mean that, when performing a semver-breaking upgrade, derives would mostly continue to just work with the exception of newly-added traits that aren't backwards-compatible.
Another question to consider is whether error messages will be easy to understand. It may be the case that it would be unclear which trait is generating a particular error message. For situations like derive(FromBytes) implying derive(FromZeros), this is less of an issue since FromBytes: FromZeros means that you must derive FromZeros in order to derive FromBytes, so it doesn't really matter whether the error technically comes from the derive of FromZeros or from the derive of FromBytes. By contrast, a user encountering an error from AllTraits will likely want to understand which trait is causing the problem, and then replace the derive with a derive of all but the offending trait.

If we implemented https://github.com/google/zerocopy/issues/1769, that could permit us to support #[derive(zerocopy::AllTraits)] in a forwards-compatible way. In particular, AllTraits could be configured to always use "silent failure" mode so that if we were to add new traits and update AllTraits to imply these new traits, that would not be a breaking change.


Directly added gateway filters bypass setting of correct order

I came across this problem a few months ago when writing my Dynamic Gateway project. Since I was dynamically building Routes in runtime, I chose to forgo RouteLocatorBuilder and instead assembled each Route by calling methods on Route.AsyncBuilder
Then I noticed something unusual: while the filters were definitely added to my route builders, my routes still didn't work as expected. Everything was fine once I wrapped the filters in OrderedGatewayFilter instances with the order of zero
Today, as I begin my journey as an open-source contributor, I took time to investigate the problem. I found it and wrote a small MRE. Here it is:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>gatewaydemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gatewaydemo</name>
    <description>gatewaydemo</description>
    <properties>
        <java.version>17</java.version>
        <spring-cloud.version>2022.0.4</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

package com.example.gatewaydemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GatewaydemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(GatewaydemoApplication.class, args);
    }

}

package com.example.gatewaydemo.routing;

import org.springframework.cloud.gateway.filter.GatewayFilter;
import org.springframework.cloud.gateway.filter.OrderedGatewayFilter;
import org.springframework.cloud.gateway.filter.factory.RewritePathGatewayFilterFactory;
import org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory;
import org.springframework.cloud.gateway.route.Route;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import reactor.core.publisher.Flux;

import java.util.List;
import java.util.UUID;

@Configuration
public class MyRoutingConfig {
    @Bean
    public RouteLocator routeLocator() {
        Route dogRoute = Route.async()
                .id(UUID.randomUUID().toString())
                .predicate(new PathRoutePredicateFactory()
                        .apply(config -> config.setPatterns(List.of("/dog-fact"))))
                .filter(new RewritePathGatewayFilterFactory()
                                .apply(config -> config.setRegexp("/dog-fact").setReplacement("/api/facts")))
                .uri("https://dog-api.kinduff.com")
                .build();
        return () -> Flux.just(dogRoute);
    }
}

Here's what I get when I hit http://localhost:8080/dog-fact. It's the API's 404:
¯\_(ツ)_/¯

The reason I get a 404 is because the API server received GET https://dog-api.kinduff.com:443/dog-fact, and there's no such endpoint
It seems like my filter never got applied, but that's not exactly the case. Here's a picture from the IntelliJ debugger:

My path rewriting filter is on the list of GatewayFilters, but since all of them, except mine, are ordered, the rewritig filter comes last – importantly, after NettyRoutingFilter that already built the response Flux
// NettyRoutingFilter

	public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
		URI requestUrl = exchange.getRequiredAttribute(GATEWAY_REQUEST_URL_ATTR); // not yet rewritten by my filter!
                // ...
		final String url = requestUrl.toASCIIString();
                // ...
		Flux<HttpClientResponse> responseFlux = getHttpClient(route, exchange).headers(headers -> {
                    // ...
		}).request(method).uri(url /* includes not yet rewritten path! */).send((req, nettyOutbound) -> {

So when my it's my filter's turn, the fact that it sets the right value for GATEWAY_REQUEST_URL_ATTR attribute doesn't matter anymore, the attribute has already been read
// RewritePathGatewayFilterFactory

@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
    ServerHttpRequest req = exchange.getRequest();
    addOriginalRequestUrl(exchange, req.getURI());
    String path = req.getURI().getRawPath();
    String newPath = pattern.matcher(path).replaceAll(replacement);

    ServerHttpRequest request = req.mutate().path(newPath).build();

    exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, request.getURI()); // doesn't matter anymore!

    return chain.filter(exchange.mutate().request(request).build());
}

It's also important to put it ahead of RouteToRequestUrlFilter. It sets the same GATEWAY_REQUEST_URL_ATTR attribute with a request URI in which Gateway's host and port, localhost:8080 in my case, are replaced with the Route's getUri(). We don't want the rewrite path filter to set it back to localhost:8080 (which it will do if it has a lower precedence)
So to get it working, you have to wrap the filter in an OrderedGatewayFilter instance with the right order which should be

Below the order of NettyRoutingFilter (Integer.MAX_VALUE)
Below the order of RouteToRequestUrlFilter (10 000)

// it works

@Configuration
public class MyRoutingConfig {
    @Bean
    public RouteLocator routeLocator() {
        Route dogRoute = Route.async()
                .id(UUID.randomUUID().toString())
                .predicate(new PathRoutePredicateFactory()
                        .apply(config -> config.setPatterns(List.of("/dog-fact"))))
                .filter(wrapInOrderedGatewayFilter(
                        new RewritePathGatewayFilterFactory()
                                .apply(config -> config.setRegexp("/dog-fact").setReplacement("/api/facts"))))
                .uri("https://dog-api.kinduff.com")
                .build();
        return () -> Flux.just(dogRoute);
    }

    private static GatewayFilter wrapInOrderedGatewayFilter(GatewayFilter delegate) {
        return new OrderedGatewayFilter(delegate, 10_000 - 1);
    }
}

How does RouteLocatorBuilder handle it?
// it works too
    @Bean
    public RouteLocator routeLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route(p -> p.method(HttpMethod.GET)
                        .and()
                        .path("/dog-fact")
                        .filters(f /* GatewayFilterSpec*/ -> f.rewritePath("/dog-fact", "/api/facts"))
                        .uri("https://dog-api.kinduff.com"))
                .build();
    }

Very straighforwardly:
// GatewayFilterSpec
	public GatewayFilterSpec filter(GatewayFilter gatewayFilter) {
		if (gatewayFilter instanceof Ordered) {
			this.routeBuilder.filter(gatewayFilter);
			return this;
		}
		return this.filter(gatewayFilter, 0 /* it implicitly sets the order of zero! */);
	}

	public GatewayFilterSpec filter(GatewayFilter gatewayFilter, int order) {
		if (gatewayFilter instanceof Ordered) {
			this.routeBuilder.filter(gatewayFilter);
			log.warn("GatewayFilter already implements ordered " + gatewayFilter.getClass()
					+ "ignoring order parameter: " + order);
			return this;
		}
		this.routeBuilder.filter(new OrderedGatewayFilter(gatewayFilter, order));
		return this;
	}
// ...
	public GatewayFilterSpec rewritePath(String regex, String replacement) {
		return filter(getBean(RewritePathGatewayFilterFactory.class)
				.apply(c -> c.setRegexp(regex).setReplacement(replacement)));
	}

To recap:

Spring Cloud Gateway exposes its Route class and allows a direct creation of Routes
However, you can't build a correct Route with a mutating custom filter without manually setting a correct order
As of now, to know what order is correct, you have to look up other filters' order in the source code. It's not documented
If the order of those other filters changes at any point (after all, it's an implementation detail), your custom filter may no longer work. The correct behavior of your filter gets effectively coupled with other classes that are outside of your control

It's not right
In case you recognize this problem, I want to solve it myself. For example, we could move this logic ("if it's not already wrapped, wrap in a reasonably ordered OrderedGatewayFilter"):
	public GatewayFilterSpec filter(GatewayFilter gatewayFilter) {
		if (gatewayFilter instanceof Ordered) {
			this.routeBuilder.filter(gatewayFilter);
			return this;
		}
		return this.filter(gatewayFilter, 0);
	}

from GatewayFilterSpec to Route itself
I also believe we should move away from those magic ints. For instance, we can take a leaf out of Spring Security's book with its SecurityWebFiltersOrder
I'm ready to discuss it further

It's not right

That is subjective. The Route class is low level. It needs to be public for use across packages. It is not documented anywhere to do things as you have described.
I'm not sure how SecurityWebFiltersOrder would help.

Well, it's now part of public API, whether intentionally or not. Generally speaking, it means we have to properly maintain it (forever)
SecurityWebFiltersOrder is used in Spring Security as an alternative for hard-coded order ints. It ties filters to certain "phases" rather than specific ints that are liable to change. We too have a few implicit phases (though it's not as complex), but we don't yet recognize it on a programmatic level. I don't exactly insist on a similar abstraction, but it's something that deserves consideration, imo
P.S.: It's off-topic, but my PR has been sitting for a week, do you believe someone on the team could give it a look?


CrossVersion.disabled change

This is a placeholder for https://github.com/sbt/librarymanagement/pull/103

https://github.com/sbt/librarymanagement/pull/121


JRE issue from 3+

I don't understand the following message.
2.63 seems to be the last version that runs fine.

What version of Windows are you using? Is it 32-bit or 64-bit? It might be the case that you're on 32-bit Windows XP (judging from the screenshot) and RText currently only comes with a 64-bit build.

Closing as this appears to be due to a 32-bit OS. Please reopen if this is not the case!


Revisit use of SDL_Mixer

It is old, crappy and unsupported by CMake. If we want Topaz to become truly cross-platform (without huge effort required to cross-compile it), then SDL_Mixer will need to be replaced.

If by revisit you meant purge, sure!


[MI100][MI200] The find-db NCHW records for ConvAsmImplicitGemmGTCDynamic*XdlopsNHWC must be updated

The find-db NCHW records for

ConvAsmImplicitGemmGTCDynamicBwdXdlopsNHWC
ConvAsmImplicitGemmGTCDynamicFwdXdlopsNHWC
ConvAsmImplicitGemmGTCDynamicWrwXdlopsNHWC

must be refreshed.
Originally posted by @atamazov in https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1324#issuecomment-996793474

#1324 increases WS up to 3 bytes, but the system find-db remains the same. The library may run into fatal errors from time to time.
The problem may manifest in develop, Staging tests and in 5.0 Release Staging tests. The latter is potentially the most problematic.
How we can fix this
We do not need to actually run tuning sessions to update find-db files. Adding 3 to the "required workspace size" field for ConvAsmImplicitGemmGTCDynamic*XdlopsNHWC solvers in NCHW records should be enough.
Alternatives:

Regenerate find-db for MI100/MI200 (@JehandadKhan) from the existing Tuna db.
Patch existing find-db files using some script (@DrizztDoUrden )

Let's decide which way we prefer (assuming that the goal is to have the fix ASAP).

Maybe it is better to accommodate for #1327 in advance and increase requires WS size not by 3, but by (255*3).

@atamazov  Thanks for highlighting this. Can we hold off on merging #1324  until January ?

Sure. But the immediate problem is that we have this issue in 5.0 staging.

AFAIK, we tune after the branch is cut, and will need to regenerate find-db then anyway?

Of course, but we do not want to receive bug reports before that, right?

...And currently we have this problem in Staging branch. After promotion it will be replicated to Master branch and will remain there (i.e. in all Mainline builds) until the fix is promoted.

@atamazov  @JehandadKhan : which way is "faster", a.k.a. can be completed by next Tuesday?  I will vote for "Patch existing find-db files using some script (@DrizztDoUrden )" since Chris is off and patching looks like a more "direct" way to ensure problems are fixed. What do you think?

Either variant works for me.

I vote for @DrizztDoUrden to update it since that sounds the safest to me as well.

@DrizztDoUrden Let's update MI100/MI200 fdb as per https://github.com/ROCmSoftwarePlatform/MIOpen/issues/1349#issuecomment-996806479. I am available for a call at any time.

@shaojiewang FYI. Please share your opinion about this. Thanks.

@atamazov Thanks for findings and updates. I think that patching the existing find-db is a better way.
In the future, for the find db part, could it be possible to remove the Workspace_size from the db and just let it be computed on the fly? Or else, is it possible to have some reserved space for WS?

@JehandadKhan FYI There are none records with ConvAsmImplicitGemmGTCDynamic*XdlopsNHWC in MI100 find-db files.

@JehandadKhan FYI There are none records with ConvAsmImplicitGemmGTCDynamic*XdlopsNHWC in MI100 find-db files.

I mean, is it expected in develop?

@JehandadKhan FYI There are none records with ConvAsmImplicitGemmGTCDynamic*XdlopsNHWC in MI100 find-db files.

I mean, is it expected in develop?

Not according to my data

@JehandadKhan Still unclear... ;) So there is nothing to fix in MI100 System find-db files, right?

@atamazov  That is correct, no records for gfx908 of the above/mentioned solvers

Perhaps I could have worded my earlier response better !


add an importSmalltalkModel button to midas

Fixed in https://github.com/moosetechnology/Midas/commit/6c3a2a77473bdf7480ca4b2cc3fdebb04873105c


[bug-fix] autheticate_client

When flask-sentinel call flask-oauthlib's authenticate_client which validate client's secret key and the program raise a 500 Internal Server error. Override the autheticate_client can solve the problem.

Hello, I did not try this, but won't setting Flask DEBUG mode help with diagnosing the issue? It should avoid the 500 and return the stack trace instead.

Hello, thanks for this. However, since this is actually caused by a regression in Flask-Oauthlib 0.9.2, you can simply fallback to v0.9.1. Also, I pinned the requirement so v0.0.5 won't have this issue upon installing from PyPI.


[content] About Carbon pages updated

“About Carbon” pages updated and published with new content supportive of objective.

Work completed.


DX: removing unnecessary variable initialization

Spotted when working on https://github.com/kubawerlos/php-cs-fixer-custom-fixers/pull/132
Both variables will be initialized in if and in else.

Thank you @kubawerlos.


#763 Bump JavaPoet to 1.8

https://github.com/pushtorefresh/storio/issues/763

Codecov Report

Merging #764 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #764   +/-   ##
=======================================
  Coverage   96.05%   96.05%
=======================================
  Files          87       87
  Lines        2460     2460
  Branches      267      267
=======================================
  Hits         2363     2363
  Misses         68       68
  Partials       29       29

Continue to review full report at Codecov.

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


[BUG] In Cyrillic version CS GO, I have question marks in skinchanger

E.g.

You have to adjust Unicode ranges for GUI fonts to cover Cyrillic characters.

fixed, thx

Input doesn't work anyway at least for me


Fix HUD health position for custom FOVs

By default, the health bar will retain the same relative position as 60 FOV - this PR introduces logic to dynamically offset the position to account for the new FOV.

I think this could be more cleanly done by modifying the modelview matrix set in playerRenderHealthBar. I'll see what I can do there and if I can't come up with anything better I'll merge this.

Did something with it. You can check it out and see if you can come up with something better.


Doesn't work on data from rescale_test/pe_test

I tried to execute
mapDamage -i pe.sam -r ref.fasta
and there is error message
The ACGT frequencies must be in the range 0 to 1
I looked up this and it seems that the problem is that in the test data nucleotide frequency array looks like 0.5555556 0.2222222 0.2222222 0,
i.e. frequency for T is zero, which is not what expected by mapdamage from line 4 in https://github.com/ginolhac/mapDamage/blob/master/mapdamage/Rscripts/stats/function.R#L4 Even though documentation doesn't say that zero frequencies are not allowed.
I changed reference file from "CGAGGGCGA" to "TGAAAACGA"  (so all frequencies > 0) and now it executes without this error

you are right, but do you only have such short references?

Yes, I got this reference from here https://github.com/ginolhac/mapDamage/blob/master/mapdamage/rescale_test/pe_test/ref.fa

I've tried pe.sam and reference CGAATACGA and then if failed with another error:
https://gist.github.com/NadiyaSitdykova/eae941d240c2ffaed0bb75fc97fa6bc4
So I dig into the code and found that in function calcSampleStats the quantile() called without na.rm=TRUE argument. I guess on real data also could be some missing values or NaNs so I treated this problem as a bug and created a patch https://anonscm.debian.org/cgit/debian-med/mapdamage.git/tree/debian/patches/fix_quantile_na_rm.patch
Please, let me know if you think that it's not a bug and that datasets which gives NaNs are not allowed.

I added new test and added na.rm = TRUE in the quantile calls. Should fix, sorry for the long delay


Remove commons-lang3 dependency

Commons-lang3 creates a classpath collision when the plugin is executed after upgrading to PMD 6.3.0.  Only one method from commons-lang3 is used and can be extracted to remove the dependency on commons-lang3.

Hello @jimbethancourt !
I have just created a PR to get rid of the commons-lang3 dependency. Hope it is what you had in mind!
Cheers!

Hello @jimbethancourt !
I have just created a PR to get rid of the commons-lang3 dependency. Hope it is what you had in mind!
Cheers!


fix document building

Change-Id: I7372755054e3cab2f86943e718f3e592b5f5396b
Use cmake provided FindLATEX.cmake

Note that jcsda::develop, lags ecmwf::develop.
ecmwf::develop has changed how it enables/disables features.
Some additional work will be required when ecmwf::develop is merged into jcsda::develop.

Thanks @aerorahul - latex is found for me but the documentation still isn't building.  Still, this is an improvement.

Thanks @aerorahul - latex is found for me but the documentation still isn't building. Still, this is an improvement.

I think the COMPONENTS should be added PDFLATEX, BIBTEX, MAKE_INDEX and HTLATEX.
Those are used.
In addition convert program from imagemagick is used.
With all those found, I could build everything; pdf and html on my mac.

Thanks @aerorahul - I installed imagemagick and ford, I have all the other packages you mentioned, they are all found, and I'm building with  -DENABLE_DOCS=ON but I'm still not seeing anything useful in the atlas/doc directory.  The html directory is empty and there are no pdfs.

Thanks @aerorahul - I installed imagemagick and ford, I have all the other packages you mentioned, they are all found, and I'm building with -DENABLE_DOCS=ON but I'm still not seeing anything useful in the atlas/doc directory. The html directory is empty and there are no pdfs.

The docs are not built with just make -j<threads>.  That only builds the code.
One has to explicitly do make atlas_doc or make atlas_html for the docs to be created.
Also, you cannot use make -j for creating docs.

Thanks @aerorahul - I installed imagemagick and ford, I have all the other packages you mentioned, they are all found, and I'm building with -DENABLE_DOCS=ON but I'm still not seeing anything useful in the atlas/doc directory. The html directory is empty and there are no pdfs.

The docs are not built with just make -j<threads>. That only builds the code.
One has to explicitly do make atlas_doc or make atlas_html for the docs to be created.
Also, you cannot use make -j for creating docs.

type make help in the  atlas directory`.  There are other ones too. see below.
... doc
... atlas_doc
... atlas_doc_html
... atlas_doc_pdf
... atlas_doc_code
... atlas-user-guide-pdf
... atlas-user-guide-html

Thanks but I'm still having problems - have you ever seen this?
miesch:~/JEDI/code/working_copy/build/atlas/doc/user-guide$ make atlas-user-guide-pdf
make[3]: *** [atlas/doc/user-guide/CMakeFiles/atlas-user-guide-pdf] Error 1
make[2]: *** [atlas/doc/user-guide/CMakeFiles/atlas-user-guide-pdf.dir/all] Error 2
make[1]: *** [atlas/doc/user-guide/CMakeFiles/atlas-user-guide-pdf.dir/rule] Error 2
make: *** [atlas/doc/user-guide/CMakeFiles/atlas-user-guide-pdf.dir/rule] Error 2

can you go to the top of the build directory and do the same command?
cd ~/JEDI/code/working_copy/build/atlas
make atlas-user-guide-pdf

There I get:
miesch:~/JEDI/code/working_copy/build/atlas$ make atlas-user-guide-pdf
make: *** No rule to make target `atlas-user-guide-pdf'.  Stop.

VERBOSE isn't much help.  Did you add any other options to ecbuild?

There I get:
miesch:~/JEDI/code/working_copy/build/atlas$ make atlas-user-guide-pdf
make: *** No rule to make target `atlas-user-guide-pdf'.  Stop.

VERBOSE isn't much help. Did you add any other options to ecbuild?

Make sure that you are actually running make at the top of the atlas build directory.
Is build your top level directory where you did ecbuild /path/to/atlas/clone?
Then there is where you should do make atlas-user-guide-pdf
do a make help at that level too

It is more informative if I build atlas on it's own - then I do see all the options at the top level - it looks like some cmake variable is empty:
$make VERBOSE=1  atlas-user-guide-pdf
[...]
cd /Users/miesch/JEDI/code/working_copy/src/ufo-bundle/atlas/doc/user-guide && export TEXINPUTS=/Users/miesch/JEDI/code/working_copy/src/ufo-bundle/atlas//:/Users/miesch/JEDI/code/working_copy/build-atlas/doc/user-guide//: && --output-directory /Users/miesch/JEDI/code/working_copy/build-atlas/doc/user-guide /Users/miesch/JEDI/code/working_copy/src/ufo-bundle/atlas/doc/user-guide/user-guide.tex
/bin/sh: --output-directory: command not found

Yeah - it looks like PDFLATEX is not being set - I'll poke around a bit more.  Thanks for the help
./user-guide/CMakeLists.txt:   ${PDFLATEX} --output-directory ${USERGUIDE} ${USERGUIDESRC}/user-guide.tex

It is more informative if I build atlas on it's own - then I do see all the options at the top level - it looks like some cmake variable is empty:
$make VERBOSE=1  atlas-user-guide-pdf
[...]
cd /Users/miesch/JEDI/code/working_copy/src/ufo-bundle/atlas/doc/user-guide && export TEXINPUTS=/Users/miesch/JEDI/code/working_copy/src/ufo-bundle/atlas//:/Users/miesch/JEDI/code/working_copy/build-atlas/doc/user-guide//: && --output-directory /Users/miesch/JEDI/code/working_copy/build-atlas/doc/user-guide /Users/miesch/JEDI/code/working_copy/src/ufo-bundle/atlas/doc/user-guide/user-guide.tex
/bin/sh: --output-directory: command not found

I did a clean clone and build
I have eckit and fckit already built and available as modules
git clone -b bugfix/docs github:jcsda/atlas
cd atlas
mkdir -p build; cd build
ecbuild -DENABLE_DOCS=ON ..
make -j4
make doc
ls doc/user-guide
CMakeFiles           core-functionalities user-guide.idx       user-guide.toc
CTestTestfile.cmake  getting-started      user-guide.log       version.tex
Makefile             html                 user-guide.out
cmake_install.cmake  user-guide.aux       user-guide.pdf

Ok - I found it - it looks like the old FindLatex in the develop branch (which works for me) defined a PDFLATEX variable that my cmake 3.17 FindLATEX does not.  Instead, it defines PDFLATEX_COMPILER.  So, with this substitution the atlas-user-guide-pdf target works for me.  I suspect similar replacements will be needed for the other components

Yeah - it looks like PDFLATEX is not being set - I'll poke around a bit more. Thanks for the help
./user-guide/CMakeLists.txt:   ${PDFLATEX} --output-directory ${USERGUIDE} ${USERGUIDESRC}/user-guide.tex

Ok - I found it - it looks like the old FindLatex in the develop branch (which works for me) defined a PDFLATEX variable that my cmake 3.17 FindLATEX does not. Instead, it defines PDFLATEX_COMPILER. So, with this substitution the atlas-user-guide-pdf target works for me. I suspect similar replacements will be needed for the other components

FindLATEX.cmake finds PDFLATEX and other components.  We should not be using PDFLATEX_COMPILER.
This implies your latex installation is not correct.
See here for what is expected to be found from FindLATEX.cmake

The package name isn't always the same as the executable, is it?  The way atlas is using it is as an executable program contained in a variable.  Isn't that what PDFLATEX_COMPILER is?  I'm not replacing the find_package command - just where the executable is called.  If you look at the FindLATEX, it's using find_program to define PDFLATEX_COMPILER
miesch:/usr/local/share/cmake/Modules$ grep PDFLATEX FindLATEX.cmake
  PDFLATEX_COMPILER:    path to the PdfLaTeX compiler
  PDFLATEX
  find_package(LATEX COMPONENTS PDFLATEX)
find_program(PDFLATEX_COMPILER
if (PDFLATEX_COMPILER)
  set(LATEX_PDFLATEX_FOUND TRUE)
  set(LATEX_PDFLATEX_FOUND FALSE)
  PDFLATEX_COMPILER

The package name isn't always the same as the executable, is it? The way atlas is using it is as an executable program contained in a variable. Isn't that what PDFLATEX_COMPILER is? I'm not replacing the find_package command - just where the executable is called. If you look at the FindLATEX, it's using find_program to define PDFLATEX_COMPILER
miesch:/usr/local/share/cmake/Modules$ grep PDFLATEX FindLATEX.cmake
  PDFLATEX_COMPILER:    path to the PdfLaTeX compiler
  PDFLATEX
  find_package(LATEX COMPONENTS PDFLATEX)
find_program(PDFLATEX_COMPILER
if (PDFLATEX_COMPILER)
  set(LATEX_PDFLATEX_FOUND TRUE)
  set(LATEX_PDFLATEX_FOUND FALSE)
  PDFLATEX_COMPILER

You are right.  Similar edits will be necessary for the other components I think.

Good, I'm glad you agree - it seems to work.  I think the only other thing that needs to be changed is a call to HTLATEX.  While testing I ran into a bug in my latex so I'm installing mactex now - taking forever.  I'll push the change soon.

Good, I'm glad you agree - it seems to work. I think the only other thing that needs to be changed is a call to HTLATEX. While testing I ran into a bug in my latex so I'm installing mactex now - taking forever. I'll push the change soon.

I brew-ed mactex.

Ok, all the various pdf, html, and code doc build targets are working for me now.  Thanks @aerorahul for your help

@mmiesch @ytremolet
Is it permitted to sync jcsda::atlas/develop with ecmwf::atlas/develop?
If that is done, this branch is redundant and PR can be issued to ECMWF

I opened a PR on the ECMWF::atlas/develop here. I cannot add reviewers, so I mentioned @ytremolet in the PR.

Thanks @aerorahul

We should bring our develop to be up to date with ecmwf's. In fact I would really like if we could make that automatic so it's always up to date.

@mmiesch @ytremolet
I am closing this PR.
A PR on ECMWF::atlas/develop here was accepted and closed.  We should sync up with ECMWF.


License header may contain any year

Description

Fixes pyrsia/pyrsia#
This PR does... by accomplishing... and it can be reviewed by... you can also test the changes by running...
Screenshots (optional)
PR Checklist

[ ] I've read the contributing guidelines.
[ ] I've read "What is a Good PR?"
[ ] I've included a good title and brief description along with how to review them.
[ ] I've linked any associated an issue.

Code Contributions

[ ] I've built the code cargo build --all-targets successfully.
[ ] I've run the unit tests cargo test --workspace and everything passes.
[ ] I've made sure my rust toolchain is current rustup update.

Codecov Report

Merging #46 (67c417a) into main (d8ed4ed) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #46   +/-   ##
=======================================
  Coverage   70.57%   70.57%
=======================================
  Files          41       41
  Lines        2087     2087
=======================================
  Hits         1473     1473
  Misses        614      614

Impacted Files
Coverage Δ

src/build_service/service.rs
100.00% <ø> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

Used for testing.


Azure specific documentation

Is your feature request related to a problem? Please describe.
Azure is not one of the options for flavor from quick start setup command ./ck8s-kubespray.  So where can I find documentation about setting up the platform on Azure, if it is supported.
Describe the solution you'd like
Documentation on cloud provider specific steps to install the platform.

Hi @anwarchk.
Thank you for your interest in Compliant Kubernetes.
We don't provide out-of-the-box installation instructions for Azure. The reason is as follows. We realized that, in practice, installing Compliant Kubernetes is never as simple ck8s apply. For example, in some cases we were given full access to an Azure tenant and could Terraform our own resources as we needed. In other cases, we had to produce a detailed architectural diagram, which was then audited for information security risks and implemented by a separate infrastructure team.
As another example of variation, in some cases we were given sufficient access to configure Azure Active Directory as required to integrate with Compliant Kubernetes, in other cases, we had to negotiate with the IT department.
If you want to install Compliant Kubernetes on Azure yourself, we recommend you proceed as follows:

Start by making an infrastructure audit.
Then use the standard template for on-prem environment.
Note that Compliant Kubernetes is as secure as its operated. We recommend you implement at least some of the controls highlighted in our free guides.

Note that, this can mean a lot of work. In particular, your IT department or infrastructure team might ask a lot of questions about security controls.
But you don't need to feel alone! We are happy to help via our Support Plan.
Don't hesitate to book a call with us.
Best regards,
Cristian Klein
Product Owner

Thank you so much!


[BUG]: Edit operation view doesn't display the start and endtime of an operation.

Bug Description
When displaying a opertion for editing the gui does not display the start and end date-time of the operation being edited.
Expected Behavior
When displaying a opertion for editing the gui does displays the start and end date-time of the operation being edited.
Steps to Reproduce

Open any operation with start and end time
The start and end time of the operation are not displayed.

Possible Solutions
No response
Further Information
No response

fixed in 316ca7698007d1d341464ab42a97201546f8383e.


Add "absolute" option, and fix bug that happens when base branch is ahead of the PR branch

Hi! Looks like y'all have been updating more recently than jitterbit, thanks!
Add "absolute" option
This prepends the current workspace path to all changed files, so that the resulting files can be passed to tools that want an absolute path.
Fix bug that happens when base branch is ahead of the PR branch
The current code that uses the pull_request's base "sha" has the following bug:
If the base branch is ahead, and has changed some files that the PR branch has /not/ changed, then those files will be included in the "get-changed-files" response.
Using the "ref" results in the proper (imo) behavior, where files that were changed on the base branch, but not the head branch, are excluded.
Put another way:

I branch A off of main
I changed files a.js and b.js and commit
back on main, I change c.js and commit
when I make a PR from A to main, the current get-changed-files reports a.js, b.js and c.js, even though the pull-request didn't change c.js. Switching to ref instead of sha fixes it, so that only a.js and b.js are reported.

Cheers!

@Ana06 bump? lmk if I should just close this :)


does paper_writing support stream response

docker compose -f paper_writing.yml up -d --build

import requests

goal = """Write the introduction section of a paper about the concept "Internet of Agents" (IoA). Note that the IoA is not the same as the conventional "IoA" in the IoA literature.
Here's the background of the IoA that we are talking about:
Large models (LMs) demonstrate remarkable capabilities. Recent research has illustrated that when LMs are equipped with specific tools and memory, they become intelligent agents capable of navigating intricate virtual environments and executing difficult tasks. For instance, these agents can utilize calculators to tackle mathematical problems or employ web browsers to gather information and produce reports. These agents function as human assistants, enhancing convenience in our lives.
Building on this concept, we foresee a promising future where every individual and internet-enabled device possesses its own agent. This will revolutionize interactions between humans, between humans and devices, and between devices themselves. We refer to this paradigm shift as the Internet of Agents (IoA), a broader concept than the Internet of Things (IoT). While IoT focuses on the connectivity of devices, IoA emphasizes the transformation in the nature of these interactions. In an IoA world, humans might not need to operate objects directly. Instead, a person's agent can interface with another object's agent to produce the desired result. The agent of that object then performs the relevant action. Furthermore, people's social interactions could evolve as agents help find potential friends based on compatibility. This paints a picture of a society where humans, objects, and their agents harmoniously coexist and bolster each other

The paper is expected to be published in a high-impact journal like Nature or Science. Therefore, when writing the introduction section, it's crucial to adhere strictly to the formatting and citation styles typically required by these journals, which includes providing accurate citations and references for any factual statements, theories, or prior research mentioned. The introduction section should not only be polished and complete but also supported by relevant literature to establish a solid foundation for the paper's topic.
The final output should be the introduction section of the paper.
"""

response = requests.post(
    "http://<IP_ADDRESS>:5050/launch_goal",
    json={
        "goal": goal,
        # "team_member_names": [
        #     "Weize Chen's Assistant",
        #     "Chen Qian's Assistant",
        #     "Cheng Yang's Assistant",
        #     "ArxivAssistant",
        # ],
        "team_up_depth": 1,  # the depth limit of nested teaming up
    },
)
print(response)

<Response [200]>
does it support stream response

Currently we do not offer streaming response support. Would be greatly appreciate any assistance from those interested in helping us enhance this capability.


linkerd_edge: 24.8.2 -> 24.8.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for linkerd_edge is: Simple Kubernetes service mesh that improves security, observability and reliability
meta.homepage for linkerd_edge is: https://linkerd.io/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 24.8.3 with grep in /nix/store/ip8zf7zll9frp54wri6gpgsym7p19w8c-linkerd-edge-24.8.3
found 24.8.3 in filename of file in /nix/store/ip8zf7zll9frp54wri6gpgsym7p19w8c-linkerd-edge-24.8.3

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

linkerd_edge

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/ip8zf7zll9frp54wri6gpgsym7p19w8c-linkerd-edge-24.8.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A linkerd_edge https://github.com/r-ryantm/nixpkgs/archive/7080574bdd2da4e5f0721fe7bc23d2497d00e630.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/7080574bdd2da4e5f0721fe7bc23d2497d00e630#linkerd_edge

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/ip8zf7zll9frp54wri6gpgsym7p19w8c-linkerd-edge-24.8.3
ls -la /nix/store/ip8zf7zll9frp54wri6gpgsym7p19w8c-linkerd-edge-24.8.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

linkerd_edge

Maintainer pings
cc @bryanasdev000 @Gonzih for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 339584 run on aarch64-darwin 1

1 package built:

linkerd_edge


[Bug]: "No tests found" after upgrading to 27.5.x

Version
27.5.1
Steps to reproduce
I wasn't able to reproduce this in a minimal project. So far, I'm not able to determine what the key difference with my main work repo is.

Run a test with a simple patternjest Indexer

Abort the test run and execute the same command again:jest Indexer

Expected behavior
All matching tests are run.
Actual behavior
Runs after the first one fail:
╰─ yarn jest Indexer

 RUNS  packages/core-rpc-indexer/source/indexer/ProfileFairIndexer.test.ts
 RUNS  packages/core-rpc-indexer/source/indexer/ProfileOrganizationIndexer.test.ts

Test Suites: 0 of 2 total
Tests:       0 total
Snapshots:   0 total
Time:        8 s^C%

╰─ yarn jest Indexer
No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
In /home/oliver/fairmanager/core-web3
  378 files checked.
  testMatch:  - 0 matches
  testPathIgnorePatterns: /node_modules/ - 378 matches
  testRegex: (/__tests__/.*|(\.|/)(test|spec))\.tsx?$ - 3 matches
Pattern: Indexer - 0 matches

Additional context
Running jest --clearCache will enable tests to be found again.
Aborting the initial run only makes the failure faster. Letting it complete does not change the outcome of this defect.
This was introduced in 27.5.0, 27.4.7 works as expected.
With 27.4.7, the haste-map cache will contain several entries for Indexer, among which are my expected tests. In the 27.5.1 haste-map cache, the expected test files are missing.
Environment
npx envinfo --preset jest gives EACCESS error in actual project environment. Here's from a different one.
  System:
    OS: Linux 5.10 Ubuntu 20.04.3 LTS (Focal Fossa)
    CPU: (12) x64 Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz
  Binaries:
    Node: 16.8.0 - ~/.nvm/versions/node/v16.8.0/bin/node
    Yarn: 1.22.11 - ~/.nvm/versions/node/v16.8.0/bin/yarn
    npm: 7.21.0 - ~/.nvm/versions/node/v16.8.0/bin/npm
  npmPackages:
    jest: 27.5.1 => 27.5.1

Upon closer inspection, this issue seems to have been introduced earlier. I'll reopen when I have a clear picture.


returned claim schema must be http in ADFS Additional Authentication Method walkthrough

Hey,
In the function TryEndAuthentication the claim schema authenticationmethod must have http prefix, not https. otherwise it won't work.
The error ADFS will write on event viewer is:  The authentication provider did not return an authentication method claim.
the correct line is
Claim claim = new Claim("http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", "http://example.com/myauthenticationmethod1");

Thanks for the feedback. I tracked this down to https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/development/ad-fs-build-custom-auth-method and found that this was corrected in April 2020.
#please-close


use textfsm_extractor() from napalm_base

Migrated to napalm_base.helpers & rearranged a bit the imports.

This is an issue I expected and I think @fooelisa warned about that a couple of days ago: whenever we make a change in napalm_base we will need to wait till merged.
But I think we can survive with that.
Right now napalm_base.helpers cannot be imported.

Don't we have to update the requirements to include jinja2 and gtextfsm?

They are already required by napalm_base, so should be enough.

Yes, but I would rather have no requirements in napalm_base unless they are by all or most of the drivers. I guess jinja2 is used by all or most of the drivers but I am not sure about gtextfsm. Maybe we can leave it, should be a small dependency and it's rather small.

Depends on: https://github.com/napalm-automation/napalm-base/pull/8


adds exports for ActiveModel and JSONAPI serializer to index

fixes #465
Do we need tests that check for existence of these named exports?

Thank you! Umm, that would probably be a good idea :)

https://github.com/samselikoff/ember-cli-mirage/issues/471


[Test] Allowing/expecting a test case to fail/panic

Issue To Be Solved
Currently, there is no way to specify that a test is expected to fail/panic. For example:
flow test --cover MerkleProof_test.cdc
Running tests...

Test results: "MerkleProof_test.cdc"
- PASS: testVerifyValidProof
- FAIL: testVerifyInvalidProof
		Execution failed:
			error: panic: invalid proof
			  --> ./contracts/MerkleProof.cdc:12:16

- PASS: testVerifyProofWithLowerLeaf
- PASS: testVerifyWithHigherLeaf
Coverage: 100.0% of statements

For the testVerifyInvalidProof test case, the error: panic: invalid proof is the expected program behavior, however the test case is marked with a FAIL status.
Suggest A Solution
Add a built-in method/matcher, which wraps a method call execution and expects a panic with a certain error message.
Test.assertFailsWith(fun(): Void {
    merkleProof.verifyProof(
        proof: [proof.decodeHex()],
        root: root.decodeHex(),
        leaf: leaf.decodeHex(),
        hasherRawValue: 1
    )
}, "invalid proof")

Context
https://github.com/onflow/developer-grants/issues/148

cc @SupunS @turbolent
Correct me if I'm wrong, but other than running this through a script and verifying that the ResultStatus is failed, I didn't find any other way.

Add a built-in method/matcher, which wraps a method call execution and expects a panic with a certain error message.
Test.assertFailsWith(fun(): Void {
    merkleProof.verifyProof(
        proof: [proof.decodeHex()],
        root: root.decodeHex(),
        leaf: leaf.decodeHex(),
        hasherRawValue: 1
    )
}, "invalid proof")

This sounds like a nice solution! 👌
Maybe the name of the function could be something like expectFailure().
Going one step further, we could probably make the second parameter accept another string-matcher (rather than a string), so we could also support asserts like contains/startsWith/etc., for the error message. But of course, doesn't need to be in the first iteration, maybe a future improvement.


[To rel/0.12] SessionPool optimization: a more aggressive Session creation strategy

In this PR, I do the following things:

rename timeout to queryTimeoutInMs in Session
allow users to set connectionTimeoutInMs in SessionPool
new Session creation strategy in SessionPool

removeSession -> tryConstructNewSession
when the Session cannot be obtained and the thread enters the waiting loop, it will always judge whether a new Session can be created first in each loop, instead of waiting in each loop after judging whether a new Session can be created only once.

This should be cp to the master branch.

release note...


"Package did not load correctly"

Maybe this isn't supported yet, but when I try to set a guideline in Visual Studio 17.1.0 Preview 1.0, I get:

The 'EditorGuidelinesPackage' package did not load correctly.
The problem may have been caused by a configuration change or by the installation of another extension. You can get more information by examining the file 'C:\Users\username\AppData\Roaming\Microsoft\VisualStudio\17.0_e8dd53cc\ActivityLog.xml'.
Restarting Visual Studio could help resolve this issue.

ActivityLog.xml shows:
<entry>
  <record>652</record>
  <time>2021/11/10 02:36:02.197</time>
  <type>Information</type>
  <source>VisualStudio</source>
  <description>Begin package load [EditorGuidelinesPackage]</description>
  <guid>{A0B80B01-BE16-4C42-AB44-7F8D057FAA2F}</guid>
</entry>
<entry>
  <record>653</record>
  <time>2021/11/10 02:36:02.198</time>
  <type>Error</type>
  <source>VisualStudio</source>
  <description>LegacySitePackage failed for package [EditorGuidelinesPackage]Source: 'EditorGuidelines' Description: Could not load file or assembly 'Microsoft.ApplicationInsights, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.ApplicationInsights, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.ApplicationInsights, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
   at EditorGuidelines.EditorGuidelinesPackage.Initialize()
   at Microsoft.VisualStudio.Shell.Package.Microsoft.VisualStudio.Shell.Interop.IVsPackage.SetSite(IServiceProvider sp)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
</description>
  <guid>{A0B80B01-BE16-4C42-AB44-7F8D057FAA2F}</guid>

80070002

  <errorinfo></errorinfo>
</entry>
<entry>
  <record>654</record>
  <time>2021/11/10 02:36:02.202</time>
  <type>Error</type>
  <source>VisualStudio</source>
  <description>SetSite failed for package [EditorGuidelinesPackage](null)</description>
  <guid>{A0B80B01-BE16-4C42-AB44-7F8D057FAA2F}</guid>

80070002

  <errorinfo></errorinfo>
</entry>
<entry>
  <record>655</record>
  <time>2021/11/10 02:36:02.206</time>
  <type>Error</type>
  <source>VisualStudio</source>
  <description>End package load [EditorGuidelinesPackage]</description>
  <guid>{A0B80B01-BE16-4C42-AB44-7F8D057FAA2F}</guid>

80070002

  <errorinfo></errorinfo>
</entry>

Same FileNotFoundException for Microsoft.ApplicationInsights happening for me on 17.1.0 Preview 1.0 as well.
(Thanks for this great extension btw!)

Thanks for the bug report and sorry for the inconvenience. I haven't been able to reproduce it myself and I'm also on 17.1.0 Preview 1.0 (Community edition)
I suspect it might be related to other installed extensions that are pre-empting the loading of Microsoft.ApplicationInsights. @bddckr would you mind listing what other extensions you have installed?

@pharring Sure, here you go!
{
  "id": "a3f047ea-dcc3-473f-bb4f-8a9a27f5fa4c",
  "name": "My Visual Studio extensions",
  "description": "A collection of my Visual Studio extensions",
  "version": "1.0",
  "extensions": [
    {
      "name": "Add New File (64-bit)",
      "vsixId": "d48e8f25-661b-4970-8b66-03f051ba5fc3"
    },
    {
      "name": "CodeMaid VS2022",
      "vsixId": "9079e73d-3fbb-4e07-8dab-f44fa5d8e8b5"
    },
    {
      "name": "Editor Guidelines (Preview)",
      "vsixId": "EditorGuidelines.f7dfa085-35e4-4844-8842-48298d5eaee0"
    },
    {
      "name": "Extension Manager 2022",
      "vsixId": "4a196712-2c3f-4730-ad1d-e7cda4185eb3"
    },
    {
      "name": "F# Formatting",
      "vsixId": "FantomasVs.4acfe0e3-4521-45ed-9c32-9265806f4108"
    },
    {
      "name": "File Icons",
      "vsixId": "3a7b4930-a5fb-46ec-a9b8-9610c8f953b8"
    },
    {
      "name": "Fix Mixed Tabs 2022",
      "vsixId": "FixMixedTabs2022.9f1d3050-b986-4b10-ae36-97c6efc5e968"
    },
    {
      "name": "Markdown Editor (64-bit)",
      "vsixId": "9ca64947-e9ca-4543-bfb8-6cce9be19fd7"
    },
    {
      "name": "Match Margin 2022",
      "vsixId": "MatchMargin2022.d85a25b5-f7b3-46a9-997e-a2d669dc2c93"
    },
    {
      "name": "Open in Visual Studio Code",
      "vsixId": "e99dde0e-e023-410d-bc5d-3f76db71e3f0"
    },
    {
      "name": "Rewrap",
      "vsixId": "Rewrap.stkb.4d01f0ab-ed41-47cc-a43f-777f84fcf51e"
    },
    {
      "name": "Shrink Empty Lines 2022",
      "vsixId": "SyntacticLineCompression2022.4452fb8f-b348-49eb-9499-76669d3f9c75"
    },
    {
      "name": "SideScroller",
      "vsixId": "SideScroller.Vsix.d0f12930-4bcc-455c-b681-f765aaab3d6f"
    },
    {
      "name": "Subword Navigation",
      "vsixId": "ad7396e5-bd21-4114-90e6-36d157cbcc84"
    },
    {
      "name": "Time Stamp Margin 2022",
      "vsixId": "TimeStampMargin2022.255e8b14-4a53-4eb7-89a7-7ab741c1f612"
    },
    {
      "name": "Visual Studio Spell Checker (VS2022 and Later)",
      "vsixId": "E1019027-EE37-4B1A-AD4C-25CAA92CA2D5"
    },
    {
      "name": "VSColorOutput64",
      "vsixId": "65dd734b-180a-4c67-b245-56de889637e1"
    }
  ]
}

Thanks for looking into this.

@bddckr @JVimes thanks again for the report. I suspect the problem is with the "upgrade" from 17.0 preview to 17.1 preview.
If anyone sees this on 17.0 Current (that's what they're calling the stable channel now), let me know.
I saw a slightly different problem myself in 17.1 Preview: The package loaded without error (right-click menu works), but the editor adornment did not load due to a MEF composition failure.
Please could you also try one troubleshooting step for me:

Shut down all VS instances
Start a "Developer Command Prompt for VS 2022 Preview"
Type: devenv /resetuserdata
Wait for it to complete

After that, launch VS and try again. You'll need to sign into VS again. Re-install Editor Guidelines and see if it works. You may have to re-install all your other extensions manually (I'm not sure if "Roaming Settings" will automatically install them eventually).
Let me know whether it works or not.

Thank you @pharring. I still get the error message after devenv /resetuserdata. I believe problem started for me, as you suspected, after updating from 17.0 Preview to 17.1 Preview.
Curious if it relates to that error message (above) in ActivityLog.xml:
LegacySitePackage failed for package [EditorGuidelinesPackage]
Source: 'EditorGuidelines' Description: Could not load file or assembly 'Microsoft.ApplicationInsights, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.ApplicationInsights, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.ApplicationInsights, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
   at EditorGuidelines.EditorGuidelinesPackage.Initialize()
   at Microsoft.VisualStudio.Shell.Package.Microsoft.VisualStudio.Shell.Interop.IVsPackage.SetSite(IServiceProvider sp)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Thanks. Yes, that FileNotFoundException is what I'm trying to understand.
The file in question -- Microsoft.ApplicationInsights.dll -- is bundled with the Editor Guidelines package (VSIX). It's also included in Visual Studio itself.
One difference that seems relevant between 17.0 and 17.1 appears in devenv.exe.config:
<dependentAssembly>
  <assemblyIdentity name="Microsoft.ApplicationInsights" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
  <bindingRedirect oldVersion="<IP_ADDRESS>-<IP_ADDRESS>" newVersion="<IP_ADDRESS>"/>
  <codeBase version="<IP_ADDRESS>" href="Extensions\Microsoft\AppInsights\Core\Microsoft.ApplicationInsights.dll" />
</dependentAssembly>

That's from 17.1. It refers to version of Microsoft.ApplicationInsights.dll in the "Extensions\Microsoft\AppInsights\Core" folder, but that folder isn't present on my machine. I installed the Community edition with minimal workloads. I assume it's a bug in authoring for 17.1 -- that codeBase entry shouldn't be there unless the relevant workload is also installed.
One workaround would be to hand-edit the devenv.exe.config file (need to run as administrator to edit it) and remove that whole dependentAssembly entry.
Another would be to find which workload brings in that "Extensions\Microsoft\AppInsights\Core" folder. I'm looking into that.

Found it: "Developer Analytics tools"
Launch the Visual Studio Installer, find the VS 2022 Preview channel and select "Modify"
Then go to "Individual Components" and search for "Developer Analytics". Check the "Developer Analytics tools" check box and update your installation.
That should fix it.

That worked around the problem for me, thank you. Hopefully a fix isn't too hard.

The fix will have to come from the Visual Studio team in a 17.1 update. I've engaged VSIX support on an internal channel and I'll also file a feedback ticket.

Feedback ticket: https://developercommunity.visualstudio.com/t/devenvexeconfig-supplies-a-codeBase-fo/1579190

Installing Developer Analytics tools to 17.1.0 Preview 1 worked to restore the extension's functionality for me as well, thank you!

Thanks for confirming.

Same issue is occurring on the released 17.1.0 with the same working-around still functional and necessary

Yes, I can confirm this is still happening in the 17.1 released to the stable channel.
As I see in the feedback ticket this is only going to be fixed in 17.2. Thanks for the extension! And the workaround, it works :)

I'm adding the stack trace here, so anyone searching for it can find this ticket and the workaround. Thanks!
A MEF Component threw an exception at runtime: Microsoft.VisualStudio.Composition.CompositionFailedException: An exception was thrown while initializing part "EditorGuidelines.ColumnGuideAdornmentFactory". ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.ApplicationInsights, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. at EditorGuidelines.ColumnGuideAdornmentFactory.OnImportsSatisfied() --- End of inner exception stack trace --- at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.RuntimePartLifecycleTracker.InvokeOnImportsSatisfied() at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.NotifyTransitiveImportsSatisfied() at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveNext(PartLifecycleState nextState) at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.MoveToState(PartLifecycleState requiredState) at Microsoft.VisualStudio.Composition.ExportProvider.PartLifecycleTracker.GetValueReadyToExpose() at Microsoft.VisualStudio.Composition.RuntimeExportProviderFactory.RuntimeExportProvider.<>c__DisplayClass15_0.<GetExportedValueHelper>b__0()

Just wanted to say thank you @pharring for researching and posting a workaround.  Made my day.

Hi Paul, following your musings on options to deal with absent/mislinked component in 17.1, I have tried the edit devenv.exe.config route, and can confirm it as workable.
Two observations:

user level cached devenv.exe.config at ^\Users\<Luser>\AppData\Local\Microsoft\VisualStudio\17.0* should be deleted during the "surgery" as it may interfere with the modified core config contents (mine led to a VS crash and inability to re-start, and upon subsequent inspection, contained cut-off garbage). This file seems to get re-created at VS launch if missing, which lowers the deletion risk.
relevant <dependentAssembly>...</dependentAssembly> should be indeed removed from the file. I have attempted to comment it out first, which made VS on re-launch very unhappy (& crash). The config XML parser must be very neurotic indeed.

In general, I would like to thank you for ongoing support and excellent code. Kudos for convincing minders of the root cause to fix things - I'll await it on regular update channel.
Cheers!

Another thought: a small temporary note (until mainstream VS is fixed) on your feature page (https://marketplace.visualstudio.com/items?itemName=PaulHarrington.EditorGuidelinesPreview&ssr=false#overview) briefly cautioning hopeful users that there is a known issue with a workaround, would have actually pre-empted me from contacting you, as the solution is already covered in github.
Just an idea. Cheers! - Sid

I can confirm that updating to VS 2022 v17.2.x fixes the above issue.

I can confirm that updating to VS 2022 v17.2.x fixes the above issue.

I'm using version 17.2.3 and still got the same error

and reopening the devenv caused this error
System.InvalidOperationException
The service 'Microsoft.VisualStudio.Shell.Interop.IVsTaskList' must be installed for this feature to work.  Ensure that this service is available.

   at Microsoft.VisualStudio.Shell.TaskProvider.get_VsTaskList()
   at Microsoft.VisualStudio.Shell.TaskProvider.Refresh()
   at Microsoft.VisualStudio.Shell.TaskProvider.ResumeRefresh()
   at Microsoft.VisualStudio.Data.Tools.Package.UI.DataSchemaErrorTaskHelper.AddTasks(IList`1 tasks)
   at Microsoft.VisualStudio.Data.Tools.Package.UI.DataSchemaErrorTaskService.ProcessErrorsInQueue(Boolean ignoreQueueStabilization)
   at Microsoft.VisualStudio.Data.Tools.Package.IdleProcessingComponent.FDoIdle(UInt32 grfidlef)

I haven't seen that one before.
For sure, a missing IVsTaskList service would be a problem for many packages, but I don't think EditorGuidelines uses it. I suspect you have a general problem with your installation and EditorGuidelines happened to be fingered as the culprit.
The call-stack indicates that it's coming from the data tools package (not editor guidelines). Was there another error/exception in the activity log with EditorGuidelines in the callstack?

I'm on version 17.9.0 and several versions of Visual Studio previously and I'm forever plagued with this error!
I've deleted, nuked and obliterated ComponentModelCache folders repeatedly.
I've restarted Visual Studio.
I've updated Visual Studio.
I've uninstalled and reinstalled the latest Visual Studio.
I've even reformatted and reinstalled a clean Windows 10 installation with a plain basic Visual Studio installation with no extensions ...
but after each restart of my system, whenever I want to run the step through debugger for my Classic ASP code, which I'm writing through VSCode, I get a face full of error messages of all sorts of failed to load packages that I've never even added to my Visual Studio.
I have to always have one instance of Visual Studio opened and empty before I can start a second instance to run my debugging.
Even then, there's a 50% chance that it will still shove a barrage of "package did not load correctly" error message in my face and left me with nothing but a code running in the background with nothing to catch the stop debug statement.
As far as I can see: This bug has not been fixed.


Thermostat FAN and ECO mode

Hi,
Thanks for your great work!
If I read this correctly, the API allows now for setting the FAN and ECO mode. https://developers.google.com/nest/device-access/api/thermostat.
Would it be possible to enable that?

ECO mode is already there.  Unfortunately there's no way to see it in the Apple Home app.  If you use an alternative HomeKit app like Home+ or Eve you will see the Eco button.  This is because Homebridge does not offer a way to extend the default controls the Home app provides.  That is, the Apple Home app does not have an "eco" button for thermostats, so the only way to add one would be to add something like a dummy light switch.  This was not a path I wanted to take.
As for FAN mode you're right, that must be new!  I'll take a look at it.

Hi @rpersche,
Sorry for the delay.  I was looking into the fan thing today and I'm not sure it makes sense to add.  The way the fan seems to work in the SDM API is that you can turn it on for a specified time (defaults to 15 minutes) after which it turns off.  Why you would want to do this I have no idea... However, HomeKit/Homebridge do not have any concept of a "fan timer", in fact HomeBridge thermostats do not even have any properties related to fans! I suppose it's assumed that your furnace will run the fan as necessary and there's no reason you'd need to manually control it.  I could add a fan control that you could turn on/off, however when you turned it on there would be no way to specify the time, it would have to default to 15 minutes or some other time.
Personally this feels like not a good fit and not very usable/intuitive.  Let me know your thoughts.

Hi @potmat,
Thanks for taking the time to look into this. The fan timer is useful for moving the air around in your house/room in case you don't have a cross breeze. I used to have a scene called "Air out my place" which opened my window and triggered the Nest fan. Then, when the Nest switched to heating, it triggered another scene to close my window again :)
homebridge-nest has a setting for the duration
"fanDurationMinutes": number of minutes to run the fan when manually turned on (optional, default is 15)

Just my two cents, my wife and I use the fan function every day to move air rather than change the temp. This is by far the best Nest integration thus far, just wish there was a fan function to even just set a default fan time to turn on.

I'd go a step further and say that since HomeKit allows for basic automation to control the timing, you could setup a fan switch with this API call for ON:
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer",
"params" : {
"timerMode" : "ON",
"duration" : "43200s"
}
}
And this for OFF:
POST /enterprises/project-id/devices/device-id:executeCommand
{
"command" : "sdm.devices.commands.Fan.SetTimer",
"params" : {
"timerMode" : "OFF"
}
}
This would obviously turn the fan on for 12 hours, but at least it would provide for easy access and control. I am a serious novice hear but would gladly help (I am currently digging through your beautiful code to try and decipher)

Hi @trevoralan, yes you are correct those are the endpoints the API would call.  This would actually be quite simple for me to add.
The reason I've hesitated is that I don't like adding fake switches that actually control things that aren't switches etc. A lot of other Homebridge plugins do this and it just feels hacky to me.
The other thing holding me back is that the API doesn't have any way to determine if your thermostat is even connected to a fan.  For example my house uses radiators, there's no fan.  But since the API doesn't give any information about what the thermostat is actually connected to I would get a fan switch as well, even though it does nothing.
I'm open to suggestions.

@potmat , thanks for getting back so quickly! I completely understand the "hackiness" of the fan being a switch but in all honesty, as the fan doesn't have any speeds, it really is just in an on and off state. I have used the fan on other much-less-than modules and they try to complicate it by adding in a field where you can choose your default fan on duration. I think it really can just be as simple as turning the fan on or off as it should be. The fan doesn't consume a lot of electricity at all, hence my suggestion to default to the longest duration possible, 12 hours (43200s). I know I am being selfish here as you would be the one to ultimately implement, but I truly thing many would benefit and it would put the nice bow on an already stellar module.

@potmat, I too could really use the fan switches. I might suggest doing what some other plugins do and giving the user the option of adding a fan switch if they want it. For example, I use the Screenlogic plugin for pool control, and the settings there let you decide whether to create separate switches for the individual light colors. You could just add something in the settings of your plugin that would allow the user to decide whether to create a fan switch. If they turn it on, then give them the option of picking the amount of time to run the fan.
We use the fan switches because a couple rooms in our house get hotter than other rooms. Turning on the fans help to move air between the cooler rooms (where the thermostats are located) to the warmer rooms.

Ok why not, I'll look into it as soon as I can.

Just pushed version 1.1.12, which add support for the thermostat fan.  I don't have a fan myself, so hopefully it works correctly.

@rpersche:  You're perfectly welcome! Sorry it took almost a year.
Can you verify also that when the time runs out and the fan turns off it shows as off in the Home app?

Yes, it works that way. Very nice.
Also, turning off the fan while the timer is still running, works!

Just installed this plugin as the old google nest plugin no longer works...everything is great except there's no ECO mode like there was in the old plugin. In the other plugin it was indeed just implemented as a simple switch. Would it be possible to add such a switch here @potmat? I was using the switch to do things like turn on eco mode when everyone had left the house, turn it on when the first person arrived, etc.

@guillochon, you can still do this, you just need to setup your automation in something like Eve or Home+ as the native Apple Home app will not support it.

@potmat I don't think I can, at least in Eve, because you cannot create automations that control the home in Eve (only set up triggers/conditions). All the "control" aspects must be set up in the Home app itself, which is impossible since the Eco switch is not exposed there.

@guillochon : What about Home+?

@guillochon I created scenes "Turn on ECO mode" "Turn off ECO mode" in Eve, and then I can use the scenes in Home

@rpersche Oh ok that's a neat workaround, I'll give that a try
@potmat Home+ is $15, I don't own it so I don't know


why error : Unterminated string in JSON

Please help, why my user got error : Unterminated string in JSON
but, after restart device, it's normal

Your JSON file is corrupt, problems in your code!

what kind of problem it could be ?


next.js/examples/with-react-md/ gives checksum invalid error when rendering on client.

Run the with-react-md as described in the README. When loading, it gives a checksum invalid error from React:
Warning: React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:
(client) ton><!-- react-empty: 15
(server) ton><span data-reactid="1
Expected behavior: Examples should show how to use isomorphic rendering properly, and not throw this error.

Thank you for creating a separate issue. It was already reported in https://github.com/zeit/next.js/pull/940#issuecomment-277028621, and as a result of my investigations I have reported this issue to React-MD upstream: https://github.com/mlaursen/react-md/issues/236

@frol Thanks for the explanation.
As far as I can tell, the bug is triggered by NavigationDrawer.DrawerTypes.PERSISTENT_MINI

Closing this in favor of the upstream ticket.

@perjg Yes, there is no warning when non-MINI drawer types are used.

@perjg @alexedev Just for your info, the invalid checksum issue has been resolved in React-MD upstream, which is yet to release with 1.1.x line, but you can try using the master branch (it is quite stable yet the APIs of some components may change a little): https://github.com/mlaursen/react-md/issues/236


Documentation missing: brownfield deployment with multiple AKS clusters

Describe the bug
AGIC brownfield deployment, 2 AKS clusters. Both clusters having the following (the exact same) Ingress and Service definitions:
apiVersion: v1
kind: Service
metadata:
  name: myapp-proxy

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myapp-proxy

This resulted in a single rule and a single backend pool in the app gw, while there should've been obviously two rules and two backend pools (one of each for each of the two clusters).
Now, it took me some time to figure this out. There should exist some documentation for a "brownfield + multiple AKS" case detailing these kind of pitfalls. I was able to resolve this by renaming the services and ingresses in both clusters so that they differ. This however is not obvious from the K8s POV as one can most certainly use same naming in separate clusters.
To Reproduce
See the description above.

Or maybe you could prefix the pool and rule names with some cluster specific identifier?

I faced with exact the same issue when two AKS clusters use single App Gateway via AGIC. Both clusters have PODS with the same name and namespace name, which results that App Gateway creates only one backend pool with one backend target.
If there is any way to somehow add prefix or rename backend pool using annotations? Because whatever will be done manually on App Gateway level, will be overridden by AGIC automatically.