Around 40-50% match rate when comparing two single faces in two images

exports.verifyProfile = functions.runWith({
  memory: '1GB'
}).https.onCall(async (data) => {
  try {
    console.log('====================== Cloud function called ==================')
    console.log(data);
    require('@tensorflow/tfjs-node');
    const faceApi = require('face-api.js');
    console.log('Loaded successfully face api');

    const canvas = require('canvas');
    const { Canvas, Image, ImageData } = canvas;
    console.log('Loaded successfully canvas');

    faceApi.env.monkeyPatch({ Canvas, Image, ImageData });
    console.log('Loaded successfully modules');

    let imgUrl = 'IMAGE_URL_1';

    let imgUrl2 = 'IMAGE_URL_2';

    console.log('Loading new models');

    await faceApi.nets.faceRecognitionNet.loadFromDisk('./models');
    await faceApi.nets.faceLandmark68Net.loadFromDisk('./models');
    await faceApi.nets.ssdMobilenetv1.loadFromDisk('./models');
    console.log('loaded new models');

    const img = await canvas.loadImage(imgUrl);
    console.log('Image converted to buffer');

    const faceDescriptionOne = await faceApi
      .detectSingleFace(img).withFaceLandmarks().withFaceDescriptor();

    const img2 = await canvas.loadImage(imgUrl2);
    console.log('Image 2 converted to buffer');

    const faceDescriptionTwo = await faceApi
      .detectSingleFace(img2).withFaceLandmarks().withFaceDescriptor();

    console.log('All detections called successfully');

    // Similarity match
    const similarityMatch = faceApi.euclideanDistance(faceDescriptionOne.descriptor, faceDescriptionTwo.descriptor);
    console.log(similarityMatch);
    let matched = false;
    if (similarityMatch > 0.6) {
      console.log('Images matched');
      matched = true;
    } else {
      console.log('NO MATCH');
    }

    // Write to the database
    const hashedValue = stringHash(data['uid']);
    const documentReference = admin.firestore().collection('profiles').doc(hashedValue);

    return documentReference.set({
      'verified': matched
    }, { merge: true });
  }

  catch (error) {
    console.log('==========================Error Occured=============================');
    console.log(error);
    const hashedValue = stringHash(data['uid']);
    const documentReference = admin.firestore().collection('profiles').doc(hashedValue);

    return documentReference.set({
      'verified': 'error'
    }, { merge: true });
  }
});

I am using firebase cloud functions running with Node.js which basically have nothing related to the low similarity error between two images but please suggest if I am doing something wrong here or what can I do to improve the results because I have seen some tutorials where the match rate is around 60%  like https://www.youtube.com/watch?v=AZ4PdALMqx0&t=1156s&pbjreload=10
I understand that I am passing just two images but they are of the same person. Is using euclidian distance correct or I have to use faceapi.FaceMatcher? Any code snippets would be really helpful.
Also, what can be a safe percentage to say the two images belong to same user?  If the image quality is less the results are lower like around 30%, so what would be safe?
These are two images in place of URL1 AND URL2 which gave 57%

These are two images in place of URL1 AND URL2 which gave 45% even when they are of different gender. Am I missing something here lol?

A Euclidean distance of 0 would occur for a perfect match (e.g., same picture).
I believe the distance is based on the color values of the image. In the first example, although the two pictures are of the same person (as we know) they are of different lighting and the person has aged making for different hair color. In contrast, the second example has two faces with similar complexion skin and similar hair color. As a result, from a color value and distance point of view, the second example would reasonably have a smaller distance (0.45 as you say) than the first example (0.57).

I have same issue, I compare my pictures but the distance I get is between 0.5 to 0.6 , which means 40 to 50 % match

hi @agharshit08 , were you able to run this in firebase functions?


Bump google.golang.org/genproto

This pull request fixes an error occuring while building k6
xk6 build --with github.com/grafana/xk6-exec@latest --with github.com/mostafa/xk6-kafka@latest

go: k6 imports
	github.com/grafana/xk6-exec imports
	go.k6.io/k6/js/modules imports
	go.k6.io/k6/loader tested by
	go.k6.io/k6/loader.test imports
	go.k6.io/k6/lib/testutils/httpmultibin imports
	google.golang.org/grpc/status imports
	google.golang.org/genproto/googleapis/rpc/status: ambiguous import: found package google.golang.org/genproto/googleapis/rpc/status in multiple modules

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Alexandr Sorokin seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@alrsorokin I have not been able to reproduce the error you report in the PR. This is probably due to the update of k6 dependencies.


Update dependencies

Does what it says on the tin. This isn't just a "for the sake of it change" as well, mxfedtest wouldn't build on the latest nightly without this.

Ooops, missed this. Thanks! But I did it as part of a commit I just pushed.

I feel so unloved :(


werf: 1.2.154 -> 1.2.160

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/werf/werf/releases.
meta.description for werf is: "GitOps delivery tool"
meta.homepage for werf is: "https://werf.io"
meta.changelog for werf is: "https://github.com/werf/werf/releases/tag/v1.2.160"
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.2.160 with grep in /nix/store/lhmldahkpmk8sawmbl6m9qpvbbl6inap-werf-1.2.160
found 1.2.160 in filename of file in /nix/store/lhmldahkpmk8sawmbl6m9qpvbbl6inap-werf-1.2.160

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
werf

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/lhmldahkpmk8sawmbl6m9qpvbbl6inap-werf-1.2.160 \
  --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 werf https://github.com/r-ryantm/nixpkgs/archive/aab926cc66d4eba2a5cdf0a0a5623873214807af.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/lhmldahkpmk8sawmbl6m9qpvbbl6inap-werf-1.2.160
ls -la /nix/store/lhmldahkpmk8sawmbl6m9qpvbbl6inap-werf-1.2.160/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:

werf

Maintainer pings
cc @azahi for testing.

Result of nixpkgs-review pr 187188 run on x86_64-linux 1

1 package built:

werf


Feature request: add terraform vs tofu agnostic command

Is your feature request related to a problem? Please describe.
We're transitioning from using terraform to using tofu. Now some directories are managed by terraform, and will be for the foreseeable future, while others are already managed by tofu. This produces 2 problems for me:

My grugbrain can'tr cope with this. I type tofu when I should type terraform and vice versa.
My vim-terraform plugin always types terraform as per the default. There's a config option to change this, called g:terraform_binary_path. I guess other editors work similarly.

Describe the solution you'd like
I would like to see a command, installed by tenv, which I can use in either of these directories, which will automatically either run tofu or terraform for me, based on what tenv detect detects to be needed locally.
Describe alternatives you've considered
For my brain I don't see much hope. For vim, I guess I could learn lua and botch something together that essentially repeats what tenv detect does, based on the files it finds, and then configures vim-terraform dynamically. But that would be very hacky. Plus I guess other editors might benefit from such a proposed binary as well, so seems to me the better place to fix this within tenv.
Additional context
Just as a suggestion for a name for this binary: tf which seems to be the common denominator out of TerraForm and ToFu. But I don't mind, any name will do for me.

If i understand your need, you want a tf command which redirect on tofu if there is a .opentofu-version and on terraform if there is a .terraform-version (or equivalent .tfswitchrc) ?

After spending half an hour figuring how to get rid of ambiguous tf binary on the PATH, I'm wondering why there's no t binary installed by tenv, as I have lots of colleagues who aliased terraform to t rather than to tf 🤦🏻


Some error in the ReadMe

Describe the bug
Some error into the ReadMe.
To Reproduce
steps:
- uses<EMAIL_ADDRESS>  with:
    regex: '([a-z])+' # Regex the title should match.

<EMAIL_ADDRESS>regexp: '([a-z])+' # Regex the title should match.
Also, I am using Regex by default
regexp: '([a-z])+'
and it doesn't pass an error if I pass a title like this Dev/mibi/label action and Download

Hi, this simple PR should address the problem(s), feel free to review it: https://github.com/Slashgear/action-check-pr-title/pull/81

Thank you a lot for that 👌🏻


Replace hardcoded passwords for Scorpio DB and other fixes

Replace instances of hardcoded passwords for DB user ngb in all
application-dist.yml for ScorpioBroker services with environment
variable POSTGRES_PASSWORD. The DB user password is randomly
generated by the Zalando Postgres Operator and stored in a Kubernetes
secret. When deploying Scorpio using Helm, the environment variables
are initialised with this secret.
Resolves: IndustryFusion/DigitalTwin#67
Related: IndustryFusion/DigitalTwin#26

In addition to replacing hardcoded passwords for the ScorpioBroker database, later commits have:

Fixed Log4j vulnerabilities
Fixed issues with containers being unable to run as non-root user
Updated ScorpioBroker images version number to 3.0.0


array-without method, tests, docs

Ref: #135

Quick question for
const result = arrays.without(['a', 'b', 'c', ['d']], 'b', ['d']);
console.log(result);
// > ['a', 'c', ['d']]

Shouldn't ['d'] be excluded from the result?

Nope, only does an equality comparison (===), so doesn't work for the values inside different objects if keeping to the spec. I assume that was done for speed and another method will have deep comparison or object comparison, but I haven't checked for that method yet.

With === arrays will never be equal due to reference comparison. The question is, should this perform deep comparison or is shallow comparison good enough?
I'm good with either, deep comparison will be a massive pain to implement b/c it will need to be capable of comparing any value type (ie not just arrays but objects as well).


[ray.so] Characters not showing correctly

Extension
https://www.raycast.com/garrett/ray-so
Description
When I use Create Image From Code it does not show the code correctly
Steps To Reproduce

Open Create Image From Code
Paste code
Create Snippet
View Snippet in Browser

Code used:
docker compose up

[+] Running 3/2
 ⠿ Network backend-4rso_server-side  Created                                                                                0.0s
 ⠿ Container db                      Created                                                                                0.0s
 ⠿ Container backend                 Created                                                                                0.1s
Attaching to backend, db
db       | 2023-03-01 00:05:25+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.29-1.el8 started.
db       | 2023-03-01 00:05:25+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
db       | 2023-03-01 00:05:25+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.29-1.el8 started.
backend  | DATABASE_URL: mysql://root:xxxxxx@db:3303/taxes
backend  | ROCKET_DATABASES: {mysql={url="mysql://root:xxxxxxx@db:3303/taxes"}}
db       | '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock'
db       | 2023-03-01T00:05:26.483457Z 0 [Warning] [MY-010918] [Server] 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead.
db       | 2023-03-01T00:05:26.483472Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.29) starting as process 1
db       | 2023-03-01T00:05:26.488067Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
db       | 2023-03-01T00:05:26.506747Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
db       | 2023-03-01T00:05:26.795074Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
db       | 2023-03-01T00:05:26.924221Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
db       | 2023-03-01T00:05:26.924324Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
db       | 2023-03-01T00:05:26.926829Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
db       | 2023-03-01T00:05:26.943430Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
db       | 2023-03-01T00:05:26.943639Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.29'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server - GPL.
backend  | Error: database pool init error for pool named `mysql`
backend  |    >> timed out waiting for connection: Can't connect to MySQL server on 'db' (115)
backend  | Error: Rocket failed to launch due to failing fairings:
backend  |    >> 'mysql' Database Pool
backend  | thread 'main' panicked at 'aborting due to fairing failure(s)', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/rocket-0.5.0-rc.2/src/error.rs:229:17
backend  | stack backtrace:
backend  |    0: rust_begin_unwind
backend  |              at ./rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
backend  |    1: core::panicking::panic_fmt
backend  |              at ./rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
backend  |    2: <rocket::error::Error as core::ops::drop::Drop>::drop
backend  |    3: tokio::runtime::park::CachedParkThread::block_on
backend  |    4: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
backend  |    5: tokio::runtime::runtime::Runtime::block_on
backend  |    6: rocket::async_main
backend  |    7: backend_4rso::main
backend  | note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
backend exited with code 101
backend  | thread 'main' panicked at 'aborting due to fairing failure(s)', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/rocket-0.5.0-rc.2/src/error.rs:229:17
backend  | stack backtrace:
backend  | Error: database pool init error for pool named `mysql`
backend  |    >> timed out waiting for connection: Can't connect to MySQL server on 'db' (115)
backend  | Error: Rocket failed to launch due to failing fairings:
backend  |    >> 'mysql' Database Pool
backend  |    0: rust_begin_unwind
backend  |              at ./rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
backend  |    1: core::panicking::panic_fmt
backend  |              at ./rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
backend  |    2: <rocket::error::Error as core::ops::drop::Drop>::drop
backend  |    3: tokio::runtime::park::CachedParkThread::block_on
backend  |    4: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
backend  |    5: tokio::runtime::runtime::Runtime::block_on
backend  |    6: rocket::async_main
backend  |    7: backend_4rso::main
backend  | note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
backend exited with code 101
backend  | Error: database pool init error for pool named `mysql`
backend  |    >> timed out waiting for connection: Can't connect to MySQL server on 'db' (115)
backend  | Error: Rocket failed to launch due to failing fairings:
backend  |    >> 'mysql' Database Pool
backend  | thread 'main' panicked at 'aborting due to fairing failure(s)', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/rocket-0.5.0-rc.2/src/error.rs:229:17
backend  | stack backtrace:
backend  |    0: rust_begin_unwind
backend  |              at ./rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
backend  |    1: core::panicking::panic_fmt
backend  |              at ./rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
backend  |    2: <rocket::error::Error as core::ops::drop::Drop>::drop
backend  |    3: tokio::runtime::park::CachedParkThread::block_on
backend  |    4: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
backend  |    5: tokio::runtime::runtime::Runtime::block_on
backend  |    6: rocket::async_main
backend  |    7: backend_4rso::main
backend  | note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
backend exited with code 101
backend  | Error: database pool init error for pool named `mysql`
backend  |    >> timed out waiting for connection: Can't connect to MySQL server on 'db' (115)
backend  | Error: Rocket failed to launch due to failing fairings:
backend  |    >> 'mysql' Database Pool
backend  | thread 'main' panicked at 'aborting due to fairing failure(s)', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/rocket-0.5.0-rc.2/src/error.rs:229:17
backend  | stack backtrace:
backend  |    0: rust_begin_unwind
backend  |              at ./rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
backend  |    1: core::panicking::panic_fmt
backend  |              at ./rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
backend  |    2: <rocket::error::Error as core::ops::drop::Drop>::drop
backend  |    3: tokio::runtime::park::CachedParkThread::block_on
backend  |    4: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
backend  |    5: tokio::runtime::runtime::Runtime::block_on
backend  |    6: rocket::async_main
backend  |    7: backend_4rso::main
backend  | note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
backend exited with code 101

Current Behaviour
This is how it looks when I use the extension

Expected Behaviour
This is how it looks when I paste it directly into the website

At first, I thought it was that code, but all code has the same issue.

code:
let listNotarialInstructions = [];         const years = [moment().year()-1, moment().year(), moment().year()+1];         try {             const begin = Date.now();             listNotarialInstructions = await this.notarialInstructionRepository.find({                 select: ['requestId'], skip, take,                 where: (qb: SelectQueryBuilder<NotarialInstructionEntity>) => {                     qb.where('notarial_process_status_id != 3')                     qb.andWhere('credit_status_id != 12')                     qb.andWhere('fovi_id is not null')                     qb.andWhere('fovi_id != 0')                     if (!!notarialInstructionStatusId) {                         qb.andWhere('notarial_process_status_id in (:notarialInstructionStatusId)', {notarialInstructionStatusId});                         qb.andWhere('program in (:years)', {years});                     }                 }             });             const end = Date.now();             timeFindNI += (end - begin) / 1000;         } catch (error) {             this.logger.error(`NotarialInstructionServiceImpl::updatePhasesNotarialInstruction`);             this.logger.error(error);             throw new InternalServerErrorException("Error al buscar listado de Instrucciones notariales");         }

I just checked and the issue persists.

This turned out to be a Base64 serialization issue. I fixed it by replacing Buffer.from(code.snippet).toString("base64") to using the js-base64 package's encodeURI, which seems safer to use in URLs!


Productionize the SymbolRank Overview construction

An overview of the local repository can be created based on the output from SymbolRank. SymbolRank is necessary to avoid having to print every symbol in the codebase when providing an overview of the important bits of the codebase.
The resulting output looks something like this
An overview of the important python modules, and their internal functions and classes follows below.

cli.scripts.run_doc_embedding_l2.main
cli.scripts.run_doc_embedding_l3.main
cli.scripts.run_doc_post_process.main
config.agent_config_builder.AutomataAgentConfigBuilder
config.agent_config_builder.AutomataAgentConfigBuilder._validate_type
config.agent_config_builder.AutomataAgentConfigFactory
config.agent_config_builder.AutomataAgentConfigFactory.create_config
config.config_types.AgentConfigName
config.config_types.AutomataAgentConfig
config.config_types.AutomataAgentConfig.load
core.agent.action.Action
...

This output is produced by this following snippet -
    class TemplateFormatter:
        @staticmethod
        def create_default_formatter(
            config: "AutomataAgentConfig", max_default_overview_symbols: int = 100
        ) -> Dict[str, str]:
            """
            Create a default template formatter.

            Args:
                config (AutomataAgentConfig): The AutomataAgentConfig to use.

            Returns:
                Dict[str, str]: The default template formatter.

            Raises:
                NotImplementedError: If the config_name is not supported.

            TODO:
                - Consider how we might implement dependency injection across this call stack
                - Replace symbol_search with symbol_rank when it is implemented on DependencyFactory
            """
            formatter = {}
            if config.config_name == AgentConfigName.AUTOMATA_READER:
                from automata.core.agent.tools.tool_utils import DependencyFactory

                symbol_search = DependencyFactory().get("symbol_search")
                symbol_rank = symbol_search.symbol_rank
                ranks = symbol_rank.get_ranks()
                symbol_dotpaths = [
                    ".".join(symbol.dotpath.split(".")[1:])
                    for symbol, _ in ranks[:max_default_overview_symbols]
                ]
                formatter["symbol_rank_overview"] = "\n".join(sorted(symbol_dotpaths))

This is a rather unelegant approach to solving this problem. Some more thought should be put into where TemplateFormatter should live and how the logic to calculate the symbol_rank_overview should be implemented.
As always, don't hesitate to ask if you have any questions or need further clarification. Your contributions to this project are highly valued!

Proposed Solution
New Code Implementation
This following draft illustrates the points mentioned above:
from typing import List, Tuple
from automata.core.symbol.symbol_types import Symbol

class SymbolRank:
    ...
    def get_top_symbols(self, n: int) -> List[Tuple[str, float]]:
        """
        Get the top N symbols according to their ranks.

        Args:
            n: The number of top symbols to retrieve.

        Returns:
            A list of tuples each containing the dotpath of a symbol and its rank.
        """
        ranks = self.get_ranks()
        top_symbols = [
            (".".join(symbol.dotpath.split("."[1:]), rank)
            for symbol, rank in ranks[:n]
        ]

        return top_symbols

class TemplateFormatter:
    ...
    @staticmethod
    def create_default_formatter(
        config: "AutomataOpenAIAgentConfig", symbol_rank: 'SymbolRank', max_default_overview_symbols: int = 100
    ) -> Dict[str, str]:
        """
        TODO:
            - Re-implement this method after the new instruction configs are finalized.
        """
        formatter: Dict[str, str] = {}
        if config.config_name == var_config_names.DOCSTRING_GENERATION:
            top_symbols = symbol_rank.get_top_symbols(max_default_overview_symbols)
            formatter["ranked_symbols_overview"] = "\n".join(
                f"[{rank:.3f}] {symbol}" for symbol, rank in sorted(top_symbols, key=lambda x: x[1], reverse=True)
            )
        elif config.config_name == AgentConfigName.TEST:
            pass
        else:
            raise NotImplementedError("Automata does not have a default template formatter.")

        return formatter

Note that the SymbolRank instance is passed as an argument to the create_default_formatter. This new approach makes the SymbolRank instance a dependency for create_default_formatter, which follows the Dependency Inversion Principle.
Remember that this is a rough draft strategy to guide your implementation based on a comprehension of your requirements and the SymbolRank and TemplatingFormatter classes. It is suggested that this strategy be considerably validated and iteratively refined using unit tests and other validation methods before it is productionized.

Proposed Solution
The current code snippet works as follows:

It creates an instance of SymbolSearch to access the SymbolRank instance in its attribute.
The ranks and corresponding symbols in the software codebase are extracted using get_ranks() from the SymbolRank instance.
Dot-paths of the top N symbols sorted by rank are prepared. These dot-paths are a way of representing the full path to the symbol in the structure of the Python project.
Finally, it produces a list of the top N symbols, sorted by their respective ranks.

To address your concerns and make the solution more cohesive, we suggest the following:

Instead of accessing the SymbolRank instance indirectly through SymbolSearch, we'd instantiate and use SymbolRank directly. This improves the separation of responsibilities because SymbolSearch should be dedicated to searching symbols, and it shouldn't have to handle SymbolRank.

As per your note of following the Dependency Injection principle, the SymbolRank instance should be injected into the TemplateFormatter instead of it creating its own. By doing this, we'll have the flexibility of modifying the SymbolRank context without much interconnection and complication.

We could also add a function in SymbolRank that abstracts the process of getting a list of top N symbols. It will make the code in TemplateFormatter cleaner and more readable, and follow the single responsibility principle.

New Code Implementation
This following draft illustrates the points mentioned above:
from typing import List, Tuple
from automata.core.symbol.symbol_types import Symbol

class SymbolRank:
    ...
    def get_top_symbols(self, n: int) -> List[Tuple[str, float]]:
        """
        Get the top N symbols according to their ranks.

        Args:
            n: The number of top symbols to retrieve.

        Returns:
            A list of tuples each containing the dotpath of a symbol and its rank.
        """
        ranks = self.get_ranks()
        top_symbols = [
            (".".join(symbol.dotpath.split("."[1:]), rank)
            for symbol, rank in ranks[:n]
        ]

        return top_symbols

class TemplateFormatter:
    ...
    @staticmethod
    def create_default_formatter(
        config: "AutomataOpenAIAgentConfig", symbol_rank: 'SymbolRank', max_default_overview_symbols: int = 100
    ) -> Dict[str, str]:
        """
        TODO:
            - Re-implement this method after the new instruction configs are finalized.
        """
        formatter: Dict[str, str] = {}
        if config.config_name == var_config_names.DOCSTRING_GENERATION:
            top_symbols = symbol_rank.get_top_symbols(max_default_overview_symbols)
            formatter["ranked_symbols_overview"] = "\n".join(
                f"[{rank:.3f}] {symbol}" for symbol, rank in sorted(top_symbols, key=lambda x: x[1], reverse=True)
            )
        elif config.config_name == AgentConfigName.TEST:
            pass
        else:
            raise NotImplementedError("Automata does not have a default template formatter.")

        return formatter

Note that the SymbolRank instance is passed as an argument to the create_default_formatter. This new approach makes the SymbolRank instance a dependency for create_default_formatter, which follows the Dependency Inversion Principle.
Remember that this is a rough draft strategy to guide your implementation based on a comprehension of your requirements and the SymbolRank and TemplatingFormatter classes. It is suggested that this strategy be considerably validated and iteratively refined using unit tests and other validation methods before it is productionized.


Proposition to clean HaystackClient class with the use of Mixin

I'll commit a branch for comments

I know I should not do that but I've included another piece in this commit. In the request mixin, I've included a retry decorator to handle a lost of connection.
The idea is to look at the headers or the received request. If we see text/html in it, we are probably back to the login page. So we can re-authenticate and retry the function.
when re-authenticating, I don't want the histories to be read again so I added a condition to the function.

See 47bd727 for details

Shouldn't we get a "401 Unauthorized" status code from the HTTP server if the session has expired?

It's probably server related. With nHaystack, if not logged, every requests end up being the login web page. This said, it would be easy to cover also the case where there's a specific 401 error...
Niagara AX seems to be a special case in many ways ! :)

Here's an example of the request when trying sensors = session.find_points('sensor') after having disconnected the session using session.disconnect()
header : {'cache-control': 'no-cache, no-store', 'content-type': 'text/html; charset=UTF-8', 'expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'date': 'Sun, 24 Jan 2016 16:09:38 GMT', 'server': 'Niagara Web Server/<IP_ADDRESS>', 'transfer-encoding': 'chunked', 'content-encoding': 'gzip'}
request : <Response [200]>
Session disconnected, Retrying in 1 seconds...
pyhaystack 0.71.0_issue6 | Authentication to http://<IP_ADDRESS>/login/
Initiating connection
Initiating authentication
User logged in...
header : {'cache-control': 'private, must-revalidate', 'content-type': 'text/zinc; charset=utf-8', 'connection': 'close', 'expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'date': 'Sun, 24 Jan 2016 16:09:41 GMT', 'server': 'Niagara Web Server/<IP_ADDRESS>'}
request : <Response [200]>
header : {'cache-control': 'private, must-revalidate', 'content-type': 'text/zinc; charset=utf-8', 'connection': 'close', 'expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'date': 'Sun, 24 Jan 2016 16:09:41 GMT', 'server': 'Niagara Web Server/<IP_ADDRESS>'}
request : <Response [200]>
Time Zone used : America/Montreal
Connection succeed with haystack on SERVISYS_FXServer (<IP_ADDRESS>) running haystack version 2.0
header : {'cache-control': 'private, must-revalidate', 'content-type': 'text/zinc; charset=utf-8', 'connection': 'close', 'expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'date': 'Sun, 24 Jan 2016 16:09:41 GMT', 'server': 'Niagara Web Server/<IP_ADDRESS>'}
request : <Response [200]>

In def _get_request(self, url, accept=None, headers=None, **kwargs):, I've simply added :
[...]
        req = self.s.get(url, **kwargs)
        req.raise_for_status()
        # Detect if disconnected
        print('header : %s' % req.headers)
        print('request : %s' % req)
[...]

Ick, so it works that way more by "accident" on the part of nHaystack.  Lovely. :-|
Guess we have no choice but to kludge around their kludge.

I think it's more Tridium related. Their web service works this way.

Mostly implemented and will be revised in the future


Its not working on my gnome shell 3.20

I made the installation process described here, and ist not working on my gnome 3.20.

I'm afraid it is not working is not precise enough to really help you.

@deadalnix how i colud be more precise ? there is some file that a could post to help you?

I'm doing exacly how you describe in read-me file, clone the project, going to the generated folder, and executing the comand to copy and to active the extension. In the terminal, is saying the extension is enabled, but in gnome tweak, the extension appears something like "Extension not compatible with this gnome version"

When did you try this ? 3.20 was merged only a few days ago.

I try today.

And  by the way. i'm really sorry about my english...

Ok please press alt+f2 . This should open a window with a text field. Type lg and press enter. This will open a debug window and there should be an "extension button". Can you tell me if there is something about pixel saver in there ?
Also, please try disabling other extension if you have some. Sometime there is conflict between extensions. If it works when all other extension are disabled, try to figure out which one conflicts.

I'm on arch, and im not able to do this, because when i presse alt+f2 its not happening nothing... How could i do this in terminal ? I mean, how can i do this what you are asking for in terminal ?

Ok please press alt+f2 . This should open a window with a text field. Type lg and press enter. This will open a debug window and there should be an "extension button". Can you tell me if there is something about pixel saver in there ?
Also, please try disabling other extension if you have some. Sometime there is conflict between extensions. If it works when all other extension are disabled, try to figure out which one conflicts.

I don't know much about arch. The thing you want to launch is https://wiki.gnome.org/Projects/GnomeShell/LookingGlass

http://imgur.com/vigFDln This is what happening, after i made the instalation process. For now, i cant run looking glass, and i'm looking for a way to do this. I'm sorry, i'm new on arch.

I don't know whether it's possible to invoke LG from the terminal.
Pressing Alt+F2 should open the GNOME Shell command prompt (a little window with a textfield) where you have to enter 'lg' and press Enter. That should be all. I don't think this has changed with 3.20.
If you still have problems you might want to ask in a Arch forum whether there are any peculiarities with their Gnome version.
But any error messages can also be found in the log. You could use journalctl from the terminal.

@marcohu I try exacly what you are saying and its not happenings nothing. I already post in arch forum, and i'm waiting for answers.

I solve the problem to open gnome glass. @deadalnix i checked about pixel saver in the tab extensions in gnome glass, pixel saver is the first on the list.

http://i.imgur.com/siUaxSO.png is like this.

I had the same problem that you.
I used the master branch instead of the 1.7 tag
Maybe you could try doing that

@3nyder  How i do this?

cd into the folder of the project and type git checkout master, then copy and activate, just like in the README
Just to be sure, all steps needed
git clone https://github.com/deadalnix/pixel-saver.git
cd pixel-saver
# copy to extensions directory
cp -r<EMAIL_ADDRESS>-t ~/.local/share/gnome-shell/extensions
# activate
gnome-shell-extension-tool -e<EMAIL_ADDRESS>
by doing git clone, you should be on the master branch, so, there's no need to change the branch

I did and its not working @3nyder  :( when i type 'gnome-shell-extension-tool -e<EMAIL_ADDRESS>is saying<EMAIL_ADDRESS>is already enabled.

That's weird, i originally installed 1.7, then changed to master and copied the contents, and when i enabled the extension the message that i got was<EMAIL_ADDRESS>is now enabled.
Maybe you should try to disable it first with gnome-shell-extension-tool -d<EMAIL_ADDRESS>then you should delete the pixel-saver folder and try again, and reload gnome with alt-F2, write r and then pressing Enter, i read that you got problems with the command window, if nothing is appearing with alt-F2, you can also reload your gnome by login out and login in again.
Also, make sure that you are on the master branch when you copy the contents from the pixel-saver folder

now its enabled but its not hiding the top panel... @3nyder @deadalnix

Use sudo journalctl -f --id=gnome-session to display the relevant log messages (tested on 3.18).
Restart GNOME-Shell to reveal any messages that occur after startup.

http://pastebin.com/kuGFBXSx this is the output @marcohu.

Have you restarted GNOME Shell after you've started showing the journal?
Alternatively, use the log viewer and filter for "gnome-session".

Yes, @marcohu  i had restarted. This could help ? http://imgur.com/aiJJvQI

http://imgur.com/oDPdkoa @3nyder @marcohu @deadalnix  this is normal ?

You should not be using extension.gnome.org with 3.20 . The version there doesn't support 3.20 . You need to run looking glass and/or look into the logs as @marcohu specified to know what the error is. Without knowing what the error is, there is no way to help you.

After i download the master version and change the permissions, the extension has changed the title of the windows, but its not hidding the top panel. I'm running looking glass and it's saying that there is no errors, and when i execute the command given by @marcohu, it's not showing nothing about pixel saver. I realy sorry my ignorance about dont knowing how to give feedback, i just want to fix this. :(

if you guys could see  here in the picture, its changing the title, but its not hidding the bar. How could i see the logs? I mean, looking in the code, there is somethig like LOG('setHideTitlebar: ' + win.get_title() + ': ' + hide); where can i check this log ?

I solve the problem... Thankyou guys, The problem, was, that a was missing  a package, xorg-utils,  I installed and it works now.


Allow to use Avalonia views on .NET MAUI

Added iOS support.

Wow, amazing to see you over here in Avalonia and this integration happening. Awesome!

Thank you!


replace String by StringBuilder in ElementModel

I had a problem when using Freemarker with xml 's containing large content ( > 600KB)
The number of nodes were high, more then 10 000 and when using String concatenation as in the following snippet the performance was/is very poor.
if (nodeType == Node.ELEMENT_NODE) {
String msg = "Only elements with no child elements can be processed as text."
+ "\nThis element with name ""
+ node.getNodeName()
+ "" has a child element named: " + child.getNodeName();
throw new TemplateModelException(msg);
} else if (nodeType == Node.TEXT_NODE || nodeType == Node.CDATA_SECTION_NODE) {
result += child.getNodeValue();
}
For a xml file of 600kb this took 6 to 11 seconds to process.
When using a StringBuilder this takes 60 ms.

Yeah, that was a quite bad there. Thanks! On the other hand, even if the file is huge, I would expect one big text node, unless there were lot of comments slicing it up.


How to add one to one chat??

hello,
is there a solution to make the chat one-to-one, between users and admnistrator?
thks

if($from == $client)


Custom Translation ResourceFormatLoader not parsed at startup

Tested versions

Reproducible in 4.3.dev(6118592c6d88350d01f74faff6fd49754f84a7d0)

System information
Godot v4.3.dev (86d0f9b14) - Windows 10.0.19044 - GLES3 (Compatibility) - NVIDIA GeForce RTX 2080 (NVIDIA; <IP_ADDRESS>86) - Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (12 Threads)
Issue description
When creating a custom ResourceFormatLoader for handling Translation resources, loading files via GDScript works fine.
However, when adding a Translation file via Project Settings > Localization > Translations menu, an error on startup shows and the Translation resource is not loaded:
E 0:00:00:0699   ResourceLoader::_load: No loader found for resource: res://my.test (expected type: )
  <C++ Error>    Method/function failed. Returning: Ref<Resource>()
  <C++ Source>   core\io\resource_loader.cpp:289 @ ResourceLoader::_load()

Steps to reproduce
See the issue description. You can simply open the MRP to see the error and the label not being translated.
If you want to see the loader working, uncomment the code in control.gd. The error persists (until you remove the translation from project settings), but text changes from "broken" to "it works!"
Minimal reproduction project (MRP)
GDScript loader:
custom-translation-loader.zip
GDExtension loader:
custom-translation-loader-gdextension.zip

When breakpointing into ResourceLoader::_load, you can see that the loader is missing.
TranslationServer::load_translations is called too early in the startup procedure.

My linked PR only solves the issue for GDExtension, so I uploaded another MRP which showcases specifically this. I kept my DLL in there for convenience, but you may also build it from source if you do not trust random binaries off the internet.


Added Amortization Calculator

Fixes Issue🛠
Closes #928
Description👨💻
I have added amortization which calculate financial details of loan and give amortization schedule.
I have tried to not make any mistake which I had done in my previous PR, still if I missed anything, give changes.
Type of change📄

[x] New feature (non-breaking change which adds functionality)

How this has been tested✅

I have tested it in different browser.
With many edge cases value.
Invalid values.

Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷
https://github.com/Rakesh9100/CalcDiverse/assets/127788321/7091d8a9-423c-44e4-ae81-5771c7503589

@Rakesh9100
added amortization calculator
please review it

@Rakesh9100 if you are going to merge it then please assign next issue that i have raised
#1094

@Rakesh9100 please look over it

Add your calculator in main index.html file to display it on the website @Yashgabani845

@Rakesh9100 done it , please check it

@Rakesh9100 i would request you to assign me this next issue #1094


docker-hub: various touch-ups and some rephrasing

moved note about open source projects into the CTA; this reduces the number of
notes on this page (which was already quite large), and puts related information
about upgrading/plans in a central location.
changed note about limits to body text, and added mention of "business" plan.
replaced https://docs.docker.com URLs with local links
replaced some HTML links with links to the target markdown file
add missing YAML and "console" code-hints
wrapped long paragraphs/lines
corrected the information about Amazon Linux

To be looked at; the recent changes added information about using "v2" compose
files, but compose (after having switched to the compose-spec) no longer uses
versions, so perhaps this needs to be corrected (we don't have local docs for
the compose-spec format though, so that makes it a bit more complicated).

@usha-mandya ptal
LOL, wanted to work on some other changes, and found that I still had this on my machine and not committed yet.


Increase the rook-ceph-operator memory limits

Right now the operator pod has limit of 256Mi which can be limiting and pod goes into a OOMKill spiral. Increase the memory limit to 500Mi.

I'm wondering if we should just increase the value statically or expose the requests/limits in the config. If we do the latter, we should probably do it for all components since this is a generic problem rather than Rook-specific.


Release 2.4

Request by email from @liorzeno to release a new version to Maven Central. Happy to do so, any objections @purpleP?

Thanks @akbertram for opening this issue. Any news?

No objections, apparently! Release 2.4 has been deployed and accepted to Central. Should show up in the index shortly. Thanks to all!


Unable to run themes:preview without specifying profile

Expectations
When setting environment variables to be used with ZCLI, I expect to be able to run commands and be authenticated.
Reality
After setting the following environment variables:

ZENDESK_API_TOKEN
ZENDESK_EMAIL
ZENDESK_SUBDOMAIN

And running zcli themes:preview, I get the following error:
ubuntu@dev-cgibson:~/git/zendesk-theme/dist$ zcli themes:preview
Uploading theme... Ok
/usr/lib/node_modules/@zendesk/zcli/node_modules/@zendesk/zcli-themes/dist/commands/themes/preview.js:60
            const { subdomain, domain } = await new zcli_core_1.Auth().getLoggedInProfile();
                    ^

TypeError: Cannot destructure property 'subdomain' of '(intermediate value)' as it is undefined.
    at Server.<anonymous> (/usr/lib/node_modules/@zendesk/zcli/node_modules/@zendesk/zcli-themes/dist/commands/themes/preview.js:60:21)

Node.js v18.17.0

This appears to be an issue with the following code, where an assumption is made that the subdomain will always be coming from the logged in profile:
/usr/lib/node_modules/<EMAIL_ADDRESS>        server.listen(port, host, async () => {
            // preview requires authentication so we're sure
            // to have a logged in profile at this point
            const { subdomain, domain } = await new zcli_core_1.Auth().getLoggedInProfile();
            const baseUrl = (0, zcli_core_1.getBaseUrl)(subdomain, domain);
            this.log(chalk.bold.green('Ready', chalk.blueBright(`${baseUrl}/hc/admin/local_preview/start`, '🚀')));
            this.log(`You can exit preview mode in the UI or by visiting ${baseUrl}/hc/admin/local_preview/stop`);
            tailLogs && this.log(chalk.bold('Tailing logs'));
        });

TEMPORARY FIX
For my use case, I was able to resolve this by editing the above file and changing:
const { subdomain, domain } = await new zcli_core_1.Auth().getLoggedInProfile();
const baseUrl = (0, zcli_core_1.getBaseUrl)(subdomain, domain);

to:
// const { subdomain, domain } = await new zcli_core_1.Auth().getLoggedInProfile();
// const baseUrl = (0, zcli_core_1.getBaseUrl)(subdomain, domain);
const baseUrl = (0, zcli_core_1.getBaseUrl)("mysubdomain", "zendesk.com");

Steps to Reproduce

Uninstall & reinstall the latest version of zcli globally: sudo npm uninstall -g @zendesk/zcli; sudo npm install @zendesk/zcli -g
Set your environment variables and resource your shell
Check your environment variables are set
Run zcli themes:preview

Issue details

Command: zcli themes:preview
Version: @zendesk/zcli/1.0.0-beta.39 linux-x64 node-v18.17.0
OS:

ubuntu@dev-cgibson:~/git/zendesk-theme$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

@equalsgibson thanks for a good the issue report!
Support for env variables when running themes:preview was added/fixed in PR#239 and is now released in v1.0.0-beta.43.
I am closing this issue for now so please open another one if you still experience any issues.


Bot Functionality and Usability Improvements

Changes Made:

Message Link Sharing: Added the ability for the bot to share direct message links when notifying users about tracked keywords. Now, when a message contains a tracked keyword, the bot includes a direct link to the message, allowing users to quickly access the relevant content.
Modified the message_handler function to handle media groups (albums).
Added support for forwarding multiple media items within a media group, including their captions.
Checked for the presence of media groups using message.media_group_id.
Iterated through media items in the group and forwarded them individually with their respective captions.
Some errors were automatically fixed by lynt

I haven't tested it yet, maybe it could give some errors, but this is more or less the logic to be used. Hope it works!

Hi Leonardo!
Thanks for your changes, I'll be testing them before deploying.
Have a nice day :)
Miquel

I ll be merging this and fixing the details so this update can be realeased, I do think is really nice so should be on production asap.
Thanks for your contribution again :)


Siafund transactions in the wallet plugin

fixed in https://github.com/NebulousLabs/Sia-UI/pull/253


mayastor: Build against SPDK 21.01-pre

This includes spdk/spdk@6d9d3f87 to fix #555.
Sync with upstream changes to nvme_bdev_opts (kato configuration),
spdk_bdev_fn_table and iscsi_portal_grp_open.
Remove a few members from TcpTransportOpts that are unused and should
have been removed in the 20.10 rebase.

bors try

bors try

bors try

bors try

bors merge


Documentation code-fix also available on problems with different ID

Dear @365businessdev,
I noticed that the code-fix "Add documentation" is also available for code-analyzer warnings with different IDs.
Here is a sample with a procedure without documentation and with a record type MyRecord that does not exist:
procedure MyProcedure(MyRec: Record "MyRecord")
begin
end;

If you go down to Problems and open up the code-fixes for the error AL0185 "Table 'MyRecord' is missing", then the "Add documentation" code-fix is available for this error:

I think it should only be suggested when you select the error with ID DOC0001.
Just a minor issue, but maybe you could have a look?

Thank you for reporting. That's pretty weird! The Code Actions are already assigned to the Diagnostic Codes. I've debugged your example and everything seems correctly...but in frontend I see the same behaviour!


About GPU memory

Hi, is single 1080Ti GPU (11GB) enough to train the whole model?

Yes, it should work. I have run it on 12GB Titan X with a batch-size 4, and the training works.

Thank you for the reply. Is the training code complete? I will try to train the network and reproduce the results of cc.

Yes, the training code is complete.


WSUS database now supported in an availability group

I was told we can move our WSUS database to SQL Always On now.  Can the unsupported database section be updated to reflect this?
(admin edit: adding metadata for proper article link)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 53d1da83-d988-fb2b-82c5-fd9cf117cd42
Version Independent ID: 2b1a3bd2-5116-1f21-c196-e3e5698a83c9
Content: SQL Server Always On - Configuration Manager
Content Source: sccm/core/servers/deploy/configure/sql-server-alwayson-for-a-highly-available-site-database.md
Product: configuration-manager
Technology: configmgr-other
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

Hi @stelmer, who told you that? 😉 I'm also checking on it, but if you have a source for that information, that would be helpful.

	My DSE, Andrew Frazier chased down the answer.  We wanted to move them last summer and he came back with the answer.

On Thu, Dec 12, 2019 at 11:54 AM -0600, "Aaron Czechowski"<EMAIL_ADDRESS>wrote:
Hi @stelmer, who told you that? 😉 I'm also checking on it, but if you have a source for that information, that would be helpful.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

I can see where customers can be confused by this blog post:
https://techcommunity.microsoft.com/t5/Device-Management-in-Microsoft/Moving-the-WSUS-database-to-SQL-Always-On/ba-p/377239

Thanks @brmcmill, that's exactly the reference.
@stelmer, I followed up with your DSE, he should be in touch.
That blog post isn't an official statement of support from the WSUS team. It's from Microsoft IT on how they implemented it, and includes the following disclaimer:

Disclaimer: This WSUS configuration may not be explicitly supported and this blog post is for informational purposes. This post is provided “AS IS” with no warranties and confers no rights.

WSUS places the database in single-user mode during upgrade, which isn't allowed in an availability group. So that design would need to change for WSUS to support SQL Always On.
I'm closing this issue.


Prisma Flow client should export Prisma interface

The TS client exports the Prisma interface that defines all API operations available by the Prisma client.
The Flow client on the other hand does not export a Prisma interface. Additionally, the interface that defines all available API operations is called PrismaInterface and not Prisma.
Ideally, we can:

rename PrismaInterface to Prisma
export the newly named Prisma interface

This is related to https://github.com/prisma/prisma-examples/issues/310


Greenkeeper/eslint config airbnb base 11.1.2

fixes #7

Codecov Report

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

@@          Coverage Diff          @@
##           master     #8   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           3      3
  Lines          16     16
  Branches        1      1
=====================================
  Hits           16     16

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 1ae9294...5337cd3. Read the comment docs.


NSF PAR integration

Integrate with the PAR search at NSF, which is adding more metadata about dataset <=> publication links:

https://par.nsf.gov/search/term:nhanes

Per their HelpDesk team, there's no API for this page so we will have to use BeautifulSoup and learn from their Advanced Search how to format the URL for the searches we need to do

Thanks for getting into contact with their HelpDeck.
I can see the source for the Advanced Search form:
<form action="" id="index_search" class="adv_search" method="POST" autocomplete="off">

and for its Find submit button.
There's no action defined for the form, and no apparent JavaScript run on form events.  I see at the bottom of the HTML page where the JavaScript $(document).ready(function () {... runs to set up the query input.  Perhaps some of the other JavaScript that's loaded is manipulating the form?

I was thinking that maybe instead of parsing the html, that we could download the CSV (option on the webpage) and transform that to a JSON since the CSV has a lot more rich information on each publication than what's presented on the search page

Good approach! Hope that works well.


ignoreCorruptFiles and GZIP corrupted xml files

Hello All,
recently i have come across issue with dealing with corrupted gzip files.  It seems that it is not possible to skip or ignore them.
spark.conf.set("spark.sql.files.ignoreCorruptFiles", "true")
df = spark.read.format("com.databricks.spark.xml").option("rowTag", "data") \
        .option("mode", "PERMISSIVE")\
        .option("badRecordsPath", "/tmp/badRecordsPath").load("/input/data-with-corrupted-files/*.gz")
df.show()

always throws error
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in stage 0.0 (TID 12) (x.x.x.x executor 0): java.io.IOException: incorrect header check
There are actually broken files and it is detected correctly, however it seems it is not possible to ignore such files.
Is it somehow possible to ignore problematic files ? If no, where would be proper place to implement support for expected  behavior ? XmlInputFormat.scala ?

No I don't think it's possible. That error happens at a pretty low level, and I suppose the idea is that this is definitely a fatal error, not just a few bad inputs, so has to be fixed.

Thanks for quick response!
Personally i would not consider it to be fatal error.
Example from  my use case:
In source directory there is 1mil xml.gz files delivered from 1mil source systems - one of them is corrupted.
The whole processing fails due to one problematic and malfunctioning source system.
My understanding is that idea of ignoreCorruptFiles is to handle such problems, e.g. if parquet file is broken it can be ignored, i was hoping for same possibility with spark-xml and its XmlInputFormat.
Exception would be ideally catch and reported via _corrupt_record. ( e.g. in case one record equals one file)

Fair enough, I think the change or issue is deeper down in Spark. I don't know how to address this.


pkg/instancetype/instancetype.go: Avoid named returns

Is your feature request related to a problem? Please describe:
Named returns make the code harder to understand than necessary, therefore they should be avoided.
Describe the solution you'd like:
Remove named returns in pkg/instancetype/instancetype.go L814-908 and define the variables in the function bodies instead.

/sig code-quality

/label good-first-issue

/assign

/assign

/assign

Hey @0xFelix!

Named returns make the code harder to understand than necessary, therefore they should be avoided.

I'm sorry, but I disagree with this statement.
Like a lot of other language offerings, named parameters sometimes make the code easier to read, and sometimes harder to read. I don't agree with the statement that they're bad all across the board.
Let me give you an example of a situation I think you're right:
func doSomething() (err error) {...}

In this case the err naming is redundant, since it's absolutely obvious what the return value stands for.
However, here's a case when I think your statement is not correct:
func getPersonInformation(p Person) (string, string, bool, int, error) {...}

In this case I have absolutely no idea what the return values actually are or what they represent. I would have to dive into the implementation in order to figure it out. I think that this function is much easier to understand:
func getPersonInformation(p Person) (firstName, LastName string, hasChildren bool, age int, err error) {...}

This is only one case where named return values are valuable, but there are other cases, for example to avoid declaring a var inside the function body.
IMHO this should be reviewed on a case-to-case basis.
Looking at https://github.com/kubevirt/kubevirt/pull/11452 for example, I'm not sure that this PR actually improves code quality in any way.

Remove named returns in pkg/instancetype/instancetype.go L814-908 and define the variables in the function bodies instead.

I've just now realized you were targeting something specific. Sorry for not noticing.
So let's look at your example specifically (I'll make it a bit shorter for simplicity so we can focus on return values):
func inferDefaultsFromVolumes(vm *virtv1.VirtualMachine) (defaultName, defaultKind string, err error) {

The PR turns it into:
func inferDefaultsFromVolumes(vm *virtv1.VirtualMachine) (string, string, error) {

This specific case proves my point from the comment above.
Now I can understand that the two strings that are being returned are default name and kind. But without these I would have to look at the implementation. However, the implementation delegates this operation to other functions:
	for _, volume := range vm.Spec.Template.Spec.Volumes {
		if volume.Name != inferFromVolumeName {
			continue
		}
		if volume.PersistentVolumeClaim != nil {
			return m.inferDefaultsFromPVC(volume.PersistentVolumeClaim.ClaimName, vm.Namespace, defaultNameLabel, defaultKindLabel)
		}
		if volume.DataVolume != nil {
			return m.inferDefaultsFromDataVolume(vm, volume.DataVolume.Name, defaultNameLabel, defaultKindLabel)
		}
		return "", "", NewIgnoreableInferenceError(fmt.Errorf("unable to infer defaults from volume %s as type is not supported", inferFromVolumeName))
	}
	return "", "", fmt.Errorf("unable to find volume %s to infer defaults", inferFromVolumeName)

So now I have to dive even deeper into other function's implementation.. all of that just to understand what values are being returned and what they represent.

/area instancetype

As the original author I obviously agree with @iholder101 here that in this specific case there's value in using named return variables when the implementation delegates the returns. That said the shared underlying function used by all paths does actually define these return variables within the function and should have its named return values dropped:
https://github.com/kubevirt/kubevirt/blob/ee87726a579c44609316a5d35d7dca1b7da94c87/pkg/instancetype/instancetype.go#L830-L836
I also agree with @alicefr that empty returns using named return variables should be avoided and should be documented as something to avoid.

This could be solved with a good comment on what the function returns. Not always the variable names are clear either

@alicefr
I fundamentally and strongly disagree with this statement :)
Comments are one of the worst and dangerous code smells there is. Specifically because comments are not code, they can be outdated and provide false information very easily. While it's obviously true that the same can happen with variable names, since variable names are code, it is much less likely.
Let's look at a simple example again:
// First return value is first name, second is last name
func getPersonInformation(p Person) (string, string) {
	firstName := getFirstName()
	LastName := getLastName()
	// ...
	return firstName, lastName
}

Now, let's say that I'm refactoring the code and actually want to return the first name, and address. This can very easily happen:
// First return value is first name, second is last name
func getPersonInformation(p Person) (string, string) {
	firstName := getFirstName()
	address := getAddress()
	// ...
	return firstName, address
}

Now we have a comment which provide false information, and yet for some reasons (as often happens with comments) people trust it to be the source of truth. This is horrible.
I think the following mistake is MUCH harder to make:
// First return value is first name, second is last name
func getPersonInformation(p Person) (firstName, lastName string) {
	firstName := getFirstName()
	lastName := getAddress()
	// ...
	return
}

In general - I think that comments should be avoided whenever we can document stuff with actual code.

@lyarwood

That said the shared underlying function used by all paths does actually define these return variables within the function and should have its named return values dropped

IMHO I should not be have to look at a function implementation to understand what it returns. That's what function signatures are for! so you would be able to reason about the basic purpose of the function without reading its implementation.

I also agree with @alicefr that empty returns using named return variables should be avoided and should be documented as something to avoid.

Why? :)
If I already know exactly the returned parameters from the function signature, why would we have to repeat them?
In addition, it's sometimes very useful to rely on the default type values.

@iholder101 yes, I agree on what you said about the comments :). Don't get me wrong, I'm personally not strongly against  named return values.
However, when I have tried to use them in the past, I got several reviews telling me to avoid it. What I personally dislike is having a mix of coding styles. For example in https://github.com/kubevirt/kubevirt/blob/main/pkg/virt-api/webhooks/validating-webhook/admitters/vmi-create-admitter.go, we have a mixture of name returned values and not for the same variable type (causes).
This is one of the coding pattern which depend on who is going to review your code. I think, it shouldn't be the case.

@iholder101 yes, I agree on what you said about the comments :). Don't get me wrong, I'm personally not strongly against named return values.
However, when I have tried to use them in the past, I got several reviews telling me to avoid it. What I personally dislike is having a mix of coding styles. For example in main/pkg/virt-api/webhooks/validating-webhook/admitters/vmi-create-admitter.go, we have a mixture of name returned values and not for the same variable type (causes). This is one of the coding pattern which depend on who is going to review your code. I think, it shouldn't be the case.

100% agree.
I would say that, in general, unless there's a policy that defines code conventions (like @0xFelix is trying to create) then comments about matters of style can be given as nits, but they shouldn't block the PR or dictate a specific code style (expect for extreme cases).
In addition, while I think that uniformity sometimes has many advantages, in other times it's perfectly fine to use different styles on a case-to-case basis where it makes sense.

@iholder101

IMHO I should not have to look at a function implementation to understand what it returns. That's what function signatures are for! so you would be able to reason about the basic purpose of the function without reading its implementation.

Yeah that's fair. In that specific case the function is so short that I didn't think peeking at the implementation was a big issue but as a convention using named returns as a means to document the differences between multiple return variables of the same type in the signature is sound.

Why? :) If I already know exactly the returned parameters from the function signature, why would we have to repeat them? In addition, it's sometimes very useful to rely on the default type values.

I thought about this a little more and I think my issue with naked returns is that they are not explicit enough when the function is over a certain size and you end up having to lookup the signature again to regain context. The nakedret linter attempts to address this concern:
https://github.com/alexkohler/nakedret?tab=readme-ov-file#purpose

I thought about this a little more and I think my issue with naked returns is that they are not explicit enough when the function is over a certain size and you end up having to lookup the signature again to regain context. The nakedret linter attempts to address this concern:

@lyarwood
To that I can agree :)
In general, I think that the discussions around these topics should be around "when it's good and when it's bad" rather than broadly saying "named return values are bad period".

@lyarwood Is nakedret part of golangci-lint? Can we enable that?

@lyarwood Is nakedret part of golangci-lint? Can we enable that?

Yes it's part of golangci-lint and yes I think it would be valid to enable it:
https://golangci-lint.run/usage/linters/#nakedret

/cc

@lyarwood Is nakedret part of golangci-lint? Can we enable that?

Yes it's part of golangci-lint and yes I think it would be valid to enable it:
https://golangci-lint.run/usage/linters/#nakedret

Helps if I actually check if it's enabled already....
https://github.com/kubevirt/kubevirt/blob/a18b070adf2dce2fd9ac47609ef4227ff9bc4fd7/.golangci.yml#L90
@0xFelix is there anything else to discuss within this issue or can we move the discussion back to the conventions PR?

@lyarwood Let's move this discussion back to #11456!

/close
Okay closing this out, thanks all.


Release v3.0.15

Codecov Report

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

@@           Coverage Diff           @@
##           master     #173   +/-   ##
=======================================
  Coverage   86.62%   86.62%
=======================================
  Files          50       50
  Lines        3005     3005
=======================================
  Hits         2603     2603
  Misses        286      286
  Partials      116      116

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 97018e6...32dddec. Read the comment docs.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #173   +/-   ##
=======================================
  Coverage   86.62%   86.62%
=======================================
  Files          50       50
  Lines        3005     3005
=======================================
  Hits         2603     2603
  Misses        286      286
  Partials      116      116

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 97018e6...32dddec. Read the comment docs.


get events from a page "Unable to convert response from Graph to a GraphNode"

Hello,
I have an issue to covert events from page-id:
$fb = App::make('SammyK\LaravelFacebookSdk\LaravelFacebookSdk');
$fb->setDefaultAccessToken('token-string-xxx');
// Get basic info on the user from Facebook.
try {
    $response = $fb->get('/{page-id}/events');

} catch (Facebook\Exceptions\FacebookSDKException $e) {
    dd($e->getMessage());
}
//$response = $request->execute();
$graphObject = $response->getGraphObject();

Always same answer :
FacebookSDKException in GraphNodeFactory.php line 224:
Unable to convert response from Graph to a GraphNode because the response looks like a   GraphEdge. Try using GraphNodeFactory::makeGraphEdge() instead.
I've try as you see here : https://developers.facebook.com/docs/graph-api/reference/page/events/
Do I do it wrong?
Thanks for your help.

Do I do it wrong?

Yes. :) But you're really close!
The /{page-id}/events endpoint is an edge and returns multiple Event nodes. So you can't use getGraphObject() on the response since that method tries to convert the response into a single Graph node collection. You have to use getGraphList() (which is now getGraphEdge()).
So just change this:
$graphObject = $response->getGraphObject();

To this:
// If you have an old dev version of the official SDK
$graphEdge = $response->getGraphList();
// Or if you have the latest dev version of the official SDK
$graphEdge = $response->getGraphEdge();

One question I have about this is how do you request more pages after you get the first 10 results?

I assume it is something similar to this, but I always get null. Here is what I suspect we do for paging:
$response = $response->getGraphEdge();
$response = $this->fb->previous($response); OR
$response = $this->fb->next($response);
Am I on track with this?

@upwebdesign Yes, you would pass the results from getGraphEdge() to next() and previous(). If it returns null, that means there are no more results.

I wrote below these code:::
$request = new Facebook\FacebookRequest(
$session,
'GET',
'/'.$user_id.'/friends'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
Error:: Fatal error: Call to undefined method Facebook\FacebookRequest::execute()
Any suggestion please..............

@seetozenith you are calling the facebook SDK directly... why aren't you calling the GET request using this package's SDK wrapper?

your not doing it wrong, all the code on facebook is missing parts for the .php the only one that works from the facebook dev is javascript and even that is missing parts they must have done it on purpose so only true developers would be able to get it going.


Icon cleanup (2 of 3)

Remove icons from source/manual that are rendering incorrectly:

AzureStreamAnalytics - duplicated in official
AzureHDInsight - duplicated in official
AzureServiceFabricMesh - duplicated in official
AzureWebAppForContainers - not an Azure service and not an official icon. To be replaced with Container App in the next PR

Other fixes

Replace Azure Genomics icon to fix monochrome issue
Replace Azure Schedule icon to fix sizing issue
Replace unofficial Blob Storage icon that had a monochrome issue

@Potherca I rebased this branch from master. It should be good to merge.


Add SSO auth support

This is pretty feature complete. I'm looking for some feedback. I've been testing with local, gitlab, github and google simultaneously. XMPP with token based auth to circumvent lack of passwords. LDAP and kerberos plugins would need to be updated as well.
More verbose description here: #315
Auth plugins:
https://github.com/dyerti/lets-chat-gitlab
https://github.com/dyerti/lets-chat-github
https://github.com/dyerti/lets-chat-google
The plugins work, but are definitely not final. Name vs First/Last name and possible lack of email standout. Generation of a unique identifier that shouldn't collide cross auth environment. I'm thinking base64(md5(url + site specific id)).

Rebased to the new release.
Added i18n to new content

I know this is currently backlogged, but any feedback or interest for this functionality in the next release?

Hi @dyerti, sorry we haven't looked at this PR yet - we were focused on getting 0.4 merged. Will start taking a look at this soon!

No worries. Definitely understand.

Hi, @dyerti thanks for this PR, i've been waiting for Google SSO support for a while :+1:

Hey @dyerti, thanks for the help getting the google plugin installed on my server
your code is good.  I hacked it up and made a twitter plugin that's functional.
https://github.com/8bitjeremy/lets-chat-twitter
The no-lastname error check in Let's Chat screws it up along with duplicate Social accounts touching the same user (email?).  I think that user profiles may need to be expanded to allow for multiple SSO social accounts.  Thoughts?

any progress here ?

I'm no longer using Let's Chat, so I'm not going to be pushing things from my end. If someone wants to pick it up that would be awesome.


[firefox] [css] the bubble-arrow is shifted (1px)

http://i.imgur.com/waCgUnR.png

Thanks for reporting! Merging this issue into #290.


Add serialization/deserialization for usize type

Currently, ByteReader and ByteWriter traits do not support reading and writing of usize values. One reason for this is that usize may have different sizes on different platforms.
A way to get around this would be to use variable-length encoding for usize values. This would also allow us to provide proper serialization/deserialization for things like vectors and strings.

Closed by #238.


rename the events for conversation update

Pull Request Test Coverage Report for Build 79210

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.5%) to 77.288%

Totals

Change from base Build 79204:
0.5%

Covered Lines:
3420

Relevant Lines:
4425

💛  - Coveralls

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1


How to pre-process the AffectNet dataset?

when I use "pre_process_affect_net" to process the images, I only got the Validation File， Training_Labeled File and Training_Unlabeled File are not available. Is my  base_path_to_images, base_path_to_annotations setting wrong? How can I handle this? Looking forward to your reply!

Dear hanguojiang0821,
Thank you very much for your message.
You can now choose the set to be processed by setting the argument set_index.
set_index = 0 process the automatically annotated images.
set_index = 1 process the manually annotated images: training set.
set_index = 2 process the manually annotated images: validation set.
Best,
Henrique Siqueira

Thank you very much for your reply, I found this question later and successfully run the script.
Thanks again for your answers！


[Trusty-Contracts] - Differentiate Authorizers from Owners into FRZN (Type Advanced)

Authorizers integration
https://github.com/checksig-custody/trusty-contracts/commit/4e5ffb2963d0c4307888bbf83083384b757fa849


WIP: Incorporate Character Properties Review Feedback

Oops, I thought Github would make the branch from my clone. Sorry for the noise all.


WCAG 2.2: Investigate the use of focus styles on large target areas

What
Some components—notably the accordion and step-by-step navigation—include large clickable regions to expand and collapse each section.
Currently, these areas turn light grey on hover.

However, the focus style used on these elements does not cover the same area.

Why
The WCAG 2.2 Level AAA 'Focus Appearance' criterion states:

When the keyboard focus indicator is visible, an area of the focus indicator meets all the following:

is at least as large as the area of a 2 CSS pixel thick perimeter of the unfocused component or sub-component, and
has a contrast ratio of at least 3:1 between the same pixels in the focused and unfocused states.

The focus style not encompassing the entire clickable area may constitute a failure under this criterion.
Additionally, the current styles may fail the Level AA 'Focus Not Obscured (Minimum)' and Level AAA 'Focus Not Obscured (Enhanced)' criteria when used in combination with certain assistive technologies, such as screen magnifiers, as the focus-styled elements may not be visible on the user's screen even if other parts of the clickable region are.
Assumptions

A screen magnification user may not see the focus style if their magnifier is centred to the right of the heading, causing the text and focus style to not be visible on screen.

Timebox
3 days
We should review progress after this period of time has elapsed, even if the spike has not been 'completed'
Who is working on this?
Spike lead: ?
Spike buddy: ?
Questions to answer

[ ] Is the current focus style (text focus only) adequate to meet 'Focus Not Obscured (Minimum)'?
[ ] Is the current focus style (text focus only) adequate to meet the Level AAA criterion ('Focus Appearance' and 'Focus Not Obscured (Enhanced)')?
[ ] Is the alternative focus style (entire link) adequate to meet 'Focus Not Obscured (Minimum)'?
[ ] Is the alternative focus style (entire link) adequate to meet the Level AAA criterion ('Focus Appearance' and 'Focus Not Obscured (Enhanced)')?

Done when

You may find it helpful to refer to our expected outcomes of spikes.

[ ] Questions have been answered or we have a clearer idea of how to get to our goal
[ ] Findings have been reviewed and agreed with at least one other person
[ ] Findings have been shared, e.g: via a write-up on the ticket, at a show & tell or team meeting
[ ] A decision has been made on whether we need to amend the focus style used by the components
[ ] If necessary, an issue to amend the focus style has been opened

Relevant discussion in the WCAG repo here: https://github.com/w3c/wcag/issues/1337

As perhaps some other assumptions to test, I have a concern that there is no easy answer to this:
Our current (assumed) probem is that the current focus style does not highlight the entire area, so a magnification tool user whose viewport isn't near the text could not tell that the link they are looking at is focused.
Conversely, however, our focus style depends upon the combination of the black bottom border and the yellow background—as the yellow background alone does not provide sufficient contrast when used on white. Even if we were to make the entire heading take on the focus style, the lack of the 'underline' doesn't mean the focus style will necessarily be visible to someone with low vision.

Design prototyping
I've been prototyping some thoughts on what an updated focus state could look like in this google slide deck.

This has prompted a review and rationalisation of our approach to styling focus states govuk-design-system. I'm closing this comment in favour of moving the conversations to the govuk-design-system/3007.
For the moment I think we are agreed this is a stretch goal of the WCAG 2.2 related updates and actions.

During my WCAG 2.2 'complex testing' epic work, I've discovered that our lack of a conclusive image focus style affects our focus state for the crest in the footer. Just wanted to make a note here.
Our current focus state for the crest in the footer relies on areas of transparency in the image. And the overall effect is very low contrast between the yellow focus background and the grey crest.

I've made a note in my testing spreadsheet that this image focus state work interacts with the testing of the footer crest focus appearance.
It looks like the crest focus appearance will need to wait for the work to start on the 'Rationalise our approach to styling focus states' ticket.

I’m happy to look into this on Monday.
On Fri, 20 Oct 2023 at 17:50, David Cox @.***> wrote:

During my WCAG 2.2 'complex testing' epic
https://github.com/alphagov/govuk-frontend/issues/4347 work, I've
discovered that our lack of a conclusive image focus style affects our
focus state for the crest in the footer. Just wanted to make a note here.
Our current focus state for the crest in the footer relies on areas of
transparency in the image. And the overall effect is very low contrast
between the yellow focus background and the grey crest.
[image: The grey footer crest with a yellow focus applied.]
https://user-images.githubusercontent.com/98318778/276996689-7723143c-fc67-46fa-8e43-115a1b29032c.png
I've made a note in my testing spreadsheet
https://docs.google.com/spreadsheets/d/1PpKvhCGZJb1j0ZUUY2ZuA0CBQeu04yFD1bumiL8wGX8/edit?usp=sharing
that this image focus state work interacts with the testing of the footer
crest focus appearance.
It looks like the crest focus appearance will need to wait for the work to
start on the 'Rationalise our approach to styling focus states' ticket
https://github.com/alphagov/govuk-design-system/issues/3007.
—
Reply to this email directly, view it on GitHub
https://github.com/alphagov/govuk-frontend/issues/3839#issuecomment-1773071398,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANNHM6H7OVZI6OAQ7T2TJ6LYAKTV5AVCNFSM6AAAAAAZQHY3ZSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTGA3TCMZZHA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Footer image link review and suggestions
Until we kick off 'Rationalise our approach to styling focus states' ticket, I suggest surrounding the footer image with a similar black border as is used in the @mixin govuk-focused-box used for the linked image focus style.

We defined the footer image link style as a 'logo focus style' in the grouping focus states team workshop (2021). We suggested the following principles/pieces of guidance/rules for focus states for logos:

Use a combination of yellow and black, to ensure contrast with both light and dark backgrounds. Don't try to style the borders of complex shapes like logos.


[WFLY-14424] Test case for EJB client interacting with two clusters.

This PR does the following:

adds a test case to the Wildfly clustering testsuite to test EJB client interaction with two non-overlapping clusters

For more info, see: https://issues.redhat.com/browse/WFLY-14424

retest please

There is a problem with the targets -Dts.layers and -Dts.standalone.microprofile which I will have to look at.

Omitted renaming some execution instance names in the -Dts.layers and -Dts.standalone.microprofile profiles. Should be OK now.

retest please

I just stopped CI on this to redirect resources to more time-critical jobs. This one is not required for WF 23 Beta so it's lower priority until that's tagged.

/retest

/retest

ready to merge! :-)

@rhusar Please review.

Hi @rhusar are you able to give this one a quick review?  Looks like we should be able to get this one through.

@rachmatowicz It looks like this might be causing regression (intermittent?) in the https://ci.wildfly.org/buildConfiguration/WF_PullRequest_GalleonLinuxJdk11/251775? TransactionalRemoteStatelessTestCase - can you check if that's related?

@rachmatowicz It looks like this might be causing regression (intermittent?) in the https://ci.wildfly.org/buildConfiguration/WF_PullRequest_GalleonLinuxJdk11/251775 - TransactionalRemoteStatelessTestCase - can you check if that's related?

In fact for each test run failure, there is a different set of test cases which fail:
TransactionRemoteStatelessTestCase on galleon Linux
DatabaseTimerServiceMultiNodeExecutionDisabledTestCase on Linux with security manager
InvalidCharactersTestCase on Windows JDK 11

SecurityAuditingTestCase: fails consistently across all platforms, except Galleon Linux
TransactionReoteStatelessTestCase, RemoteEJBClientTwoClustersTestCase: fails on Galleon Linux but passes on all other platforms

My tests pass on all platforms except Galleon Linux. What is Galleon Linux? Can I reproduce it locally?

@rachmatowicz You just add the -Dts.layers.

@rachmatowicz Yes – you just add the -Dts.layers.

Thanks. I think the TransactionRemoteStatelessTestCase failure is due to this: https://issues.redhat.com/browse/WFCC-33.

The problem was that there is a target ts.surefire.clustering.ejb which is running a mix of EJB client test cases. The EJB client codebase depends on a lot of static initializers for contexts such as Discovery, EJBClientContext, AuthenticationContext, etc. When a test requires a different initializer for one of these static contexts, and they share the same JVM, that's where the trouble begins.Tests which require a different static initialization need to run in a separate JVM. I had to exclude my test from ts.surefire.clustering.ejb as it is one of those tests which requires a different static configuration.

@rhusar Are you still happy with the final changes?  I think we can get this one through.

/retest

The issue was that the new test needed to run in the "ha-no-reuse-forks" target, as opposed to the regular "ha" target. The original PR excluded the test from the "ha" target, but did not do so for the ts.ee9 profile, which caused the failures when running with -Dts.ee9. This has now been fixed.

@rachmatowicz does your latest push mean this is ready for re-review?

@rachmatowicz Just wanted to check on the status of this PR. Looks like there's a conflict that needs to be resolved. Are any other changes still pending too?

@rachmatowicz We are in the process of cleaning up the PR queue and are going to close this for now.  Let's revisit this branch during the reassessment of the clustering testsuite.


Audio splitting is broken since the "minor fix" commit.

The changes made in the "minor fix" commit have broken the audio splitting for batch processing. Now small prompt get split up in lots of batches, ruining inference quality.

Ah yes, mistaken the sampling rate.
will it be fine with the lastest pull?

Yes, it is solved :D


Wrong count while running single test

Open arrays.test.ts
Run test('findFirst')
It says 4 tests are running, when it's done, it says 1 succeeded

https://user-images.githubusercontent.com/323878/112547882-9cba9e80-8d78-11eb-8dec-7b02bc46be4e.mp4

/duplicate https://github.com/microsoft/vscode/issues/119667