Major problem with French accents

Hello,
First of all, thank you for your work. This is the best-looking argument parser for Rust, and I say this because I've tried all the others.
Here is my problem: I am writing a program whose messages are in French, and "clap" has a major problem with non-English letters. When a line contains a French accent (like "é" in "café"), then the next lines will often have a missing letter and sometimes the program will even crash!
Steps to reproduce the problem:

Take the "My Super Program" example in the "clap" documentation.
Replace:

                          .arg(Arg::with_name("config")
                               .short("c")
                               .long("config")
                               .value_name("FILE")
                               .help("Sets a custom config file")
                               .takes_value(true))

with:
                          .arg(Arg::with_name("cafe")
                               .short("c")
                               .long("cafe")
                               .value_name("FILE")
                               .help("A coffeehouse, coffee shop, or café is an establishment which primarily serves hot coffee, related coffee beverages (e.g., café latte, cappuccino, espresso), tea, and other hot beverages. Some coffeehouses also serve cold beverages such as iced coffee and iced tea. Many cafés also serve some type of food, such as light snacks, muffins, or pastries.")
                               .takes_value(true))

Now, here is the output when I run "my_super_program -h". Notice the missing letters:
OPTIONS:
    -c, --cafe <FILE>    A coffeehouse, coffee shop, or café is an
                         establishment which primarily serves hot
                         coffee, related coffee beverages (e.g., caf
                          latte, cappuccino, espresso), tea, and
                         ther hot beverages. Some coffeehouses
                         lso serve cold beverages such as iced coffe
                          and iced tea. Many cafés also serve
                         ome type of food, such as light snacks,
                         uffins, or pastries.

If I replace all occurrences of "café" with "cafe", then the problem disappears:
OPTIONS:
    -c, --cafe <FILE>    A coffeehouse, coffee shop, or cafe is an
                         establishment which primarily serves hot
                         coffee, related coffee beverages (e.g.,
                         cafe latte, cappuccino, espresso), tea, and
                         other hot beverages. Some coffeehouses also
                         serve cold beverages such as iced coffee
                         and iced tea. Many cafes also serve some
                         type of food, such as light snacks,
                         muffins, or pastries.

P.S. The crashes are more difficult to reproduce, cause they happen only with certain strings and only at certain Terminal widths. I managed to get a crash with this string:
"La culture du café est très développée dans de nombreux pays à climat chaud d'Amérique, d'Afrique et d'Asie, dans des plantations qui sont cultivées pour les marchés d'exportation. Le café est souvent une contribution majeure aux exportations des régions productrices."
at a Terminal width of 53.
Here is the crash message:
"thread 'main' panicked at 'index 27 and/or 278 in La culture du café est très développée dans de nombreux pays à climat chaud d'Amérique, d'Afrique et d'Asie, dans des plantations qui sont cultivées pour les marchés d'exportation. Le café est souvent une contribution majeure aux exportations des [...] do not lie on character boundary', src/libcore/str/mod.rs:1694
note: Run with RUST_BACKTRACE=1 for a backtrace."

Thank you for taking the time to file this and with such detail! I think I know the root cause of this and will have to play with some additional dependencies to get this right. I'll post back here with what I find or any additional questions.

Both of these issues are fixed with #628

Thank you for patching and for writing such complete tester functions!
The problem with the stripped characters has been solved in v2.10.3.
However, the panics continue. The tester function didn't catch them, because the panics now happen at Terminal widths different from v2.10.2.
Steps to reproduce the panics:

Open "/tests/help.rs"
In function "issue_626_panic()", replace:

.set_term_width(53)
with:
.set_term_width(52)

Interesting, thanks for letting me know!

This should be fixed for good with #629 :wink:


Button should say "Add" instead of "Save" when adding contributor to a project with no children

Steps

Go to a project for which there are no children components
Go to the Sharing tab
Click to add a contributor
Search for a user and press the plus sign to add them to the project
Read the button text at the bottom of the modal

Expected
I expect that there would be two buttons: a gray button with the text "Cancel" and a green button with the text "Add"
Actual
The gray Cancel button is present, but the green button has text that reads "Save" rather than "Add." When adding contributors to a node with children, the final modal has a green "Add" button, thus button text for nodes with no children should be changed to be consistent with this.

Pending review tag could be added here.


please post some example

While reading the source is fun and entertaining, having an actual example would be very helpful for us non-bash-$deities.

@Voronoff still nothing? :)

I liked very much when I knew that there is a project for a web application framework like Ruby on Rails and Groovy on Grails: Bash on Balls! As @seletz said, reading the source code is interesting, Balls apparently creates a web server and renders HTML pages with server-side scripting. @jneen You really made a nice work!
I'm a Linux user that learned Bash language some years ago. I've made some relatively complex desktop applications using Bash and YAD/zenity for GUI. Although Balls is a really useful and inovative software, its GitHub repository and source code doesn't encourage programmers to use it.

The README file doesn't have good pratices for writing READMEs (some of them here and here), it's only a simple and informal description of the project;
The source code of balls doesn't have any comments (except code snippets), Bash language itself doesn't have good readability.

In short, we can not know how to use Balls, to create Web applications properly by the way it is, and I reinforce the request of @seletz to post some example of complete usage of Balls and all its features.
I can contribute to this nice project, but as I said, I don't know to use it.


OC22 dataset generation

Hi,
Thanks so much for your fantastic work on Open-Catalyst-Dataset.
I am interested in OC22 dataset but I need to generate some data by myself,
Could you pull the codes about the way to generate the OC22 data?
I will be appreciated it.
Thank you!

Thank you for your interest in the OC22 dataset,
We've just added the input generator to a new OC22_dataset branch which is the version of the input set generator used to make all the VASP inputs for OC22.

Hi, I appreciate your excellent work.
I have a question, without using VASP, can we generate a specific material's input information excluding the label (energy and trajectory)?

Hi, my apologies for not getting back sooner. In regards to input information, the only thing you would get without the help of VASP would be information regarding the position of the atoms, the identity of the atoms, and the lattice. Since the generator uses PMG, this information is stored as a pymatgen Slab object which will have info on things like miller index, the original bulk unit cell used to make the slab, etc.
For generating an adsorbed slab which will decorate a surface with X number of an adsorbate, you can use the MXideAdsorbateGenerator class located in
Open-Catalyst-Dataset/tree/OC22_dataset/ocdata/oc22_dataset/MXide_adsorption.py
which takes in a slab. Then use:
MXideAdsorbateGenerator.generate_random_adsorption_structure(molecule, n_adslabs) where molecule is a pymatgen Molecule object (your adsorbate) and n_adslabs is the number of random adsorbed slabs you want to retrieve. This returns a list of adsorbed slabs.
For generating bare slabs (no adsorbates) with randomly decorated vacancies on both surfaces, you can use
Open-Catalyst-Dataset/tree/OC22_dataset/ocdata/oc22_dataset/termination_generator.py
get_random_clean_slabs(bulk, n_slabs, max_index, min_slab_size, min_vacuum_size)
where bulk is a Structure object from pymatgen representing the conventional unit cell, n_slabs is number of random slabs to return as a list, max_index is the maximum Miller index you want to go up when considering random facets, min_slab_size is the thickness of the slab in Å and min_vacuum_size is the thickness of the vacuum in Å.
Let me know if you had any other questions


New version: r12f.Rnp version <IP_ADDRESS>

- [X] Have you signed the Contributor License Agreement?

[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[ ] Have you tested your manifest locally with winget install --manifest <path>?
[X] Does your manifest conform to the 1.0 schema?

Microsoft Reviewers: Open in CodeFlow

auto tracking future releases? this is awesome!

@r12f have you had a chance to take a look at wingetcreate? We've built tooling and can help with automated manifest creation from GitHub. This could likely be leveraged with other CI/CD pipelines.

Hi @denelon , yes, if you check the first version, the package is created via wingetcreate. But I am having trouble get it integrated with the CI/CD pipeline, because even though I tried to use update command and give it the PST, it is throwing error every time. And maybe I am too dumb, somehow, I didn't see any documentation/examples on what is the expected way to use it. Then, while I am still struggling, I saw this automatic update happened, which is a savior to me!

@r12f feel free to create a discussion over there to ask for tips/help/suggestions. I'm sure plenty of others would benefit from any gaps you found in our documentation, or other unique challenges you have had. Maybe we need more examples, or bug fixes/improvements.

sure @denelon ! currently I don't have a new release, so wingetcreate update won't really give me anything, but once the new version is out, will take another look and see how it works!


Configure pronto-dialyzer for Poxa PR build

Adding logging just to show the Dialyzer comment on the PR

:tada:

Later today I will take another look at our prebuilt PLT files


Add the i32 dtype

This PR adds DType::I32. Besides being a useful and more memory-efficient alternative to our I64 dtype, it is also commonly used in GPTQ and AWQ. If we were to implement loading those formats from safetensors (I have the code already for GPTQ, please let me know if that would be of interest!), they would be upcast to I64, and take up twice the memory.

The idea is to reduce the number of supported dtypes to keep the complexity low, we've added up i64 later than the others as we didn't have any signed int to start with but for now I don't think we want more.

Sounds good! I'll close this.

@LaurentMazare  int32 is required for efficient awq/gptq loading and inference. Why load in int64 if int32 is optimal? If no other code uses it than perhaps gptq/awq, is a reason to exclude it?
@EricLBuehler I am the maintainer for GPTQModel and would be very interested in helping as much as I can with gptq integration into candle.

(I have the code already for GPTQ, please let me know if that would be of interest!),

I would be very interested in helping to get this gptq code yours merged in a separate PR if possible. Have no background in rs but I can contribute in testing and validation.


Incorrect minusSign for Norwegian language

The file /src/sap.ui.core/src/sap/ui/core/cldr/nb.json for Norwegian language contains minus sign defined as "symbols-latn-minusSign": "−". The minus sign has unicode code 8722 instead of standard ASCI code 45. This causes issues in parsing numerical values with negative sign. The value parser is is trying to escape plus and minus sign that is later used in regular expression In English, it results in +-. In Norwegian, as the minus sign is a different character, the escaping returns +- which then breaks regular expression for parsing input value.
The bug can be replicated easily here:
https://openui5.hana.ondemand.com/?sap-language=NO#/entity/sap.ui.model.type.Currency/sample/sap.ui.core.sample.TypeCurrency
Entering negative value does not update display below. It works fine in English. It also works in Norwegian if minus character with unicode 8722 is used.

Hello @mvoros
Thank you for sharing this finding. I've created an internal incident<PHONE_NUMBER>. The status of the issue will be updated here in GitHub.
Regards, Diana

Correction: already tracked internally as<PHONE_NUMBER>

@mvoros what is the UI5 version you are using?

It was found in version 1.52.* But it's still broken. That link about to open UI5 demo kit, it's still broken there and it's currently on version 1.71.*


Provide an example of Shared service with the Observable

Provide an example of Shared service with the Observable that allows other components to react on changes.

Fixed


Injecting external content into a doc comment ("@include" tag?)

In RFC: Core set of tags for TSDoc, @EisenbergEffect brought up the topic of a TSDoc tag that would inject content from an external source.  I've already seen a couple of examples of this internally.  Sometimes the Markdown engine itself is used for this purpose.
Is there a way that this could be done generically using a TSDoc core tag (e.g. @include)? Or will this always be proprietary to the particular documentation pipeline, in which case we should treat it as a custom tag?
@dend

Perhaps all that is needed is to "reserve" a tag for this particular purpose and then extract that information into a known format so that arbitrary external processors can work with it. Then, in the canonical implementation, have an API that you can register an include handler with to do the actual processing.

As an example, for DocFX, the import/include syntax is defined here: File Inclusion. I don't see the value in constraining this to a specific syntax given that it can be a custom tag.

The example on that page implies a syntax like this:
...Other inline contents... [!include["example title"]("some/path")]

@dend is DocFX intending to be CommonMark compatible?  As far as I know CommonMark supports ![foo](/url "title") for images but not an exclamation mark inside square brackets.  When I paste the above snippet into https://markdown-it.github.io/ in CommonMark mode, the output gets garbled:

...Other inline contents... [!include"example title"]

The current aim is for TSDoc syntax to be able to coexist with (a reasonable subset of) the CommonMark syntax.  So, if the DocFX content contained an at-sign like this...
...Other inline contents... [!include["see @realdonaldtrump"]("some/path")]

...then TSDoc would incorrectly interpret @realdonaldtrump as a custom doc comment tag, because the surrounding syntax looks like a stream of meaningless symbols.  (I apologize for the example content -- it was the first thing that popped into my head heheh.)
Most Markdown engines do not stick to CommonMark, but instead mix in some highly unpredictable custom notations.  That's fine in *.md files, but I think we'd want to minimize that practice in *.d.ts files if the goal is interoperability between  tooling.
If you're looking for a way to embed custom extensions inside CommonMark, I would suggest instead using HTML tags which are completely supported by the standard.  Compared to proprietary notations, HTML is a familiar and rich notation that makes it easy for other tooling to ignore unrecognized/unsupported constructs.

If <title> and <filepath> are generally the only important parameters, the generic solution would be pretty straightforward.  It can just follow {@link} syntax:
/**
 * Some external content gets injected below this line.
 * {@include some/path | example title}
 */

Should this be usable for non-markdown includes, such as code snippets? If this is the case, we can't TSDoc simply load the referenced file's contents in place, as the consuming software might not be aware to possibly add code highlighting etc. to it. I think, the consumer should be aware of the file to be included (file path, file name, file extension).

Should this be usable for non-markdown includes, such as code snippets?

I'm thinking this might be up to the discretion of the particular documentation tool.  At least, the original goal of TSDoc was to ensure that different tools can agree on the parsing of TypeScript doc comments.  As far as the handling of an external file, its file extension might mean different things to different documentation tools, and the handling of that file might governed by some other standard such as CommonMark or HTML.

This is where I think we just need to ensure that TSDoc has flexibility in the Markdown markup. We are working on adding Markdown extensions to docs.microsoft.com and therefore it would be good to ensure that TSDoc does not break because it encounters a piece of Markdown it doesn't understand.

This is where I think we just need to ensure that TSDoc has flexibility in the Markdown markup. We are working on adding Markdown extensions to docs.microsoft.com and therefore it would be good to ensure that TSDoc does not break because it encounters a piece of Markdown it doesn't understand.

The way to accomplish that is for the custom syntaxes to be built from a standard extensibility mechanism.  For example,  <author>Bob</author> is fine to stick in the middle of a doc comment, since a parser can easily skip over an unrecognized HTML tag. Similarly, {@author Bob} would also be okay because TSDoc supports custom inline tags.  Whereas an ad hoc syntax like [!author name="Bob"] is not going to be handled correctly unless the [! ] syntax can be standardized and made extensible.
In many cases the ad hoc syntax can pass through and get rendered by the back end without any trouble.  Causal users may be fine with this, even if there are occasional glitches.  TSDoc will support it in lax mode.  But for large scale authoring, these ad hoc syntaxes are going to run into all the troublesome Markdown grammar ambiguities.  (For example, when someone needs to put punctuation characters in the "Bob" part, it's likely to get misinterpreted as some other construct, leading to a very confusing authoring experience.)  This is unavoidable, since there's simply no way for one tool to introduce arbitrary punctuation characters into the input and expect other tools to handle that correctly.
So, to the extent that DocFX's syntax extensions are intended to be used in source code comments, we should try to design them with the idea that other tools will need to process them.  (That said, I suspect that many of the extensions will not really be needed inside code comments, since this authoring scenario has relatively conservative needs.)

It's been a while, I landed here while googling for a way to include example into my docs from examples folder that will be later parsed by typedoc. Are there any standards in that regard yet?

For TypeDoc specifically, there is typedoc-plugin-include-example which can include files.
It's also easy to implement a plugin which adds support for {@include ./test.md} and {@includeCode ./test.ts}
$ typedoc --plugin ./include-plugin.js

Plugin code
// CC0
// TypeDoc 0.26
// @ts-check
import td from "typedoc";
import path from "path";
import fs from "fs";

/** @param {td.Application} app */
export function load(app) {
    app.on(td.Application.EVENT_BOOTSTRAP_END, () => {
        const tags = app.options.getValue("inlineTags").slice();
        if (!tags.includes("@include")) {
            tags.push("@include");
        }
        if (!tags.includes("@includeCode")) {
            tags.push("@includeCode");
        }
        app.options.setValue("inlineTags", tags);
    });

    app.converter.on(td.Converter.EVENT_CREATE_DECLARATION, checkIncludeTags);
    app.converter.on(td.Converter.EVENT_CREATE_PARAMETER, checkIncludeTags);
    app.converter.on(td.Converter.EVENT_CREATE_SIGNATURE, checkIncludeTags);
    app.converter.on(td.Converter.EVENT_CREATE_TYPE_PARAMETER, checkIncludeTags);
}

/**
 * @param {td.Context} context
 * @param {td.Reflection} refl
 */
function checkIncludeTags(context, refl) {
    if (!refl.comment?.sourcePath) return;

    const relative = path.dirname(refl.comment.sourcePath);
    checkIncludeTagsParts(context, refl, relative, refl.comment.summary);
    for (const tag of refl.comment.blockTags) {
        checkIncludeTagsParts(context, refl, relative, tag.content);
    }
}

/**
 * @param {td.Context} context
 * @param {td.Reflection} refl
 * @param {string} relative
 * @param {td.CommentDisplayPart[]} parts
 * @param {string[]} included
 */
function checkIncludeTagsParts(context, refl, relative, parts, included = []) {
    for (let i = 0; i < parts.length; ++i) {
        const part = parts[i];
        if (part.kind === "inline-tag" && ["@include", "@includeCode"].includes(part.tag)) {
            const file = path.resolve(relative, part.text.trim());
            if (included.includes(file) && part.tag === "@include") {
                context.logger.error(
                    `${part.tag} tag in comment for ${refl.getFriendlyFullName()} specified "${part.text}" to include, which resulted in a circular include:\n\t${included.join("\n\t")}`,
                );
            } else if (fs.existsSync(file)) {
                const text = fs.readFileSync(file, "utf-8");
                if (part.tag === "@include") {
                    const sf = new td.MinimalSourceFile(text, file);
                    const { content } = context.converter.parseRawComment(sf, context.project.files);
                    checkIncludeTagsParts(context, refl, path.dirname(file), content, [...included, file]);
                    parts.splice(i, 1, ...content);
                } else {
                    parts[i] = {
                        kind: "code",
                        text: makeCodeBlock(path.extname(file).substring(1), text),
                    };
                }
            } else {
                context.logger.warn(
                    `${part.tag} tag in comment for ${refl.getFriendlyFullName()} specified "${part.text}" to include, which was resolved to "${file}" and does not exist.`,
                );
            }
        }
    }
}

/**
 * @param {string} lang
 * @param {string} code
 */
function makeCodeBlock(lang, code) {
    //
    const escaped = code.replace(/`(?=`)/g, "`\u200B");
    return "\n\n```" + lang + "\n" + escaped.trimEnd() + "\n```";
}

For TypeDoc specifically, there is typedoc-plugin-include-example which can include files.

Thank you - ill try this approach next time (I were looking for a quickstart of how to create such plugin in typedocs documentation but couldn't find one), meanwhile this works for me with frontmatter:
examples/example.js:
/*
---
title: "2. Quickstart Guide"
group: Documents
category: README
---
 */
import assert from "node:assert";
// more code

src/index.ts:
/**
 * Entry point for my package
 *
 * @document ../examples/quick-start.md
*/

scripts/examples-to-md.js:
/**
 * Converts javascript examples to Markdown format.
 *
 * @example
 * ```bash
 * node example-to-markdown.js /path/to/examples
 * ```
 *
 */
import {readdirSync, readFileSync, writeFileSync} from 'node:fs';
import {resolve, join, basename} from 'node:path';

// regular expression to match frontmatter
const reFrontmatter = /\/\*\s*([\s\S]*?)\s*\*\//;

// function to convert example file to markdown
function exampleToMarkdown(file) {
    let content = readFileSync(file, 'utf-8');
    let frontmatter = reFrontmatter.exec(content)[1].trim();
    content = content.replace(reFrontmatter, '').trim();
    let newContent = `${frontmatter}
\`\`\`\`javascript
${content}
\`\`\`\`\``
    let newFile = join(resolve(file, '..'), basename(file, '.js') + '.md');
    console.log(`Writing markdown to new file '${newFile}'`)
    writeFileSync(newFile, newContent);
}

// read first argument
const dir = process.argv[2]
if (!dir) {
    console.error('Please provide a directory');
    process.exit(1);
}

// resolve the directory
const fullDir = resolve(dir);
console.log(`Reading examples from '${fullDir}'`);

// read all files in the directory
const files = readdirSync(fullDir);

// convert each file ending with `.js`
files.filter(file => file.endsWith('.js')).forEach(
    file => exampleToMarkdown(resolve(fullDir, file))
)

And then:
node ./scripts/examples-to-md.js ./examples && typedoc --tsconfig tsconfig.json


Open links from inside "views" pages?

Hello,
I've bought CoreUI Pro and I'm not sure how to make links to another page from inside views/page.
Pace is loading views pages perfectly (from navbar/sidebar), however, inside one of those opened pages (for example views/main.php), I want to make button which should redirect me to other page (for example views/second.php). I do not understand how to do that with pace? It should change to browser url to #second and load the page.
Also, can I send variables for $_GET?
What changes do I need to make?
Also, from navbar I link to "test.php", browser is redirected to "#test.php". Is it possible to hide the ".php"?
Thank you.

Ugh.. i need this answered. If I find an answer, I'll let you know!


Separate each Cog Head into their own file

We should separate each Cog Head into their own file so it's one less step to do when it is time to overhaul the Cog Heads

[ ] Write a script to separate the heads from the Suit.py file
[x] Change how the suit parameters are stored

This was completed awhile ago, guess I forgot to close it.


remove unused emr-oss and move metaclient to emr-common

What changes were proposed in this pull request?
remove unused emr-oss and move metaclient to emr-common
How was this patch tested?
TestLoghub passed

Thanks for your contribution.

Thanks for your contribution.


Supportfor mss426

Found code was causing issues with local control for MSS426 device when trying to setPower, was getting ECONNRESET.
Requests were missing the uuid field, added function to get the uuid of this device which can be found form the Appliance.System.All space.
Also found that making multiple calls locally to the device in quick succession this would also cause ECONNRESET issues so added a workaround rate limit to stop this happening.

I'm not sure I like the fact that the UUID will always be fetched, even for devices that don't need it. Have you tried this with old devices? I would propose to have this feature be optional and enabled through a constructor parameter.

unfortunatly the MM426 is the only meross device I actually have so cannot confirm wither the UUID field would cause issues on older devices, Leave it with me I will look to make this optional and put another PR in when I get round to it.
Thanks
David


[EIP-1559] Step 5 - Gas price and gas limit block header validation rules

PR description
Implement 2 new AttachedBlockHeaderValidationRule

EIP1559BlockHeaderGasPriceValidationRule
EIP1559BlockHeaderGasLimitValidationRule

Fixed Issue(s)

fixes #597 #598
Signed-off-by: Abdelhamid Bakhta<EMAIL_ADDRESS>

The builder pattern for BlockHeaderValidator needs to be preserved. I've left some suggestions on how that can be done.

Actually i realized with your comment that both EIP1559BlockHeaderGasLimitValidationRule and EIP1559BlockHeaderGasPriceValidationRule are not AttachedBlockHeaderValidationRule but rather DetachedBlockHeaderValidationRule since none of them need the ProtocolContext to perform the validation.


Improve UX when not able to vote with zero token balance

Current UX is still not very clear why the user isn't able to vote, the external link from the info icon can easily be overlooked and even then the discussion doesn't have all the answers.

Solution:
I imagine a troubleshooting page, a little like the playground where the user will be able to click through 1-3 proposal related question and get the exact reason for why he is not able to vote directly in the snapshot ui.
Also instead of showing the info icon, we should show a prominent message inside the modal as this will be what the user is most likely trying to troubleshoot when voting power is zero.

Solution for error and link to discussion visibility:

Also here is improved design for when voting power fails to load:

Looks good, I recommend not use a sentence with "it doesnt seem" but instead use "Oops, it seem you don't have any voting power", that make the sentence much easier to read. We could also add in the sentence "...any voting power at the block number 12345" to make it more clear the vp is based on specific time.

For the message when the request fail we could add a link to retry query vp


MatSelect focused property is incorrect

What is the expected behavior?
MatSelect's focused property should be false when a blur callback is triggered after clicking outside of the options panel.
What is the current behavior?
MatSelect's focused property is true when the blur callback is triggered after clicking outside of the options panel. However, focused is then false after a short period of time has elapsed.
What are the steps to reproduce?
Visit the following Stackblitz: https://stackblitz.com/edit/angular-891tlg

Click outside the options panel to close the MatSelect
The onBlur callback is invoked. Observe how FOCUSED is logged immediately, and not focused is logged after 1 second.

Which versions of Angular, Material, OS, TypeScript, browsers are affected?
@angular/material 7.1.1
Is there anything else we should know?

Good issue.
Is this the expected behaviour though? There is a test for it,
https://github.com/angular/material2/blob/d22f48c742c0bbdc971f79ea1261ec5c20d15a69/src/lib/select/select.spec.ts#L1149-L1150
Anyway, when the backdrop is clicked to close MatSelect, this._focused is indeed false, but this._panelOpen is still true probably due to the animation. Since the OR operator is used, get focused() will return true until the panel closes.
https://github.com/angular/material2/blob/d22f48c742c0bbdc971f79ea1261ec5c20d15a69/src/lib/select/select.ts#L320-L322
Can one of the Members take a look at this please?

This is the intended behavior. The focused property is used mostly for telling the MatFormField how it should look and we want it to be highlighted while the panel is open.

Thanks for clarifying @crisbeto. The workaround I'm now using to determine if a user is truly no longer engaged with MatSelect involves checking the relatedTarget property when the blur event occurs. For example:
onBlur(event: FocusEvent) {
  const relatedTarget = <HTMLElement>event.relatedTarget;
  const isMatOption = relatedTarget && relatedTarget.nodeName === 'MAT-OPTION';

  this.engaged = isMatOption ? true : false;
}

The assumption is that if the relatedTarget was the native element corresponding to a MatOption then the user is actually still engaged with the MatSelect even though a blur event occurred.
Here's a StackBlitz that uses this approach
Do you think it would be appropriate to encapsulate this approach into an event emitter on MatSelect that emits when the user is no longer engaged with the control? Or perhaps my use case is too specific and this is not warranted.

Closing since the mentioned property works as expected.


Add app.js Conf to conferences

We'd love to add App.js Conf to the list of conferences 😄.

@tchayen thank you!


Slow detection

Hello, very good recognition results! But very slow. My code:
`from retinaface import RetinaFace
import cv2
from datetime import datetime
start_time = datetime.now()
img_path = '/home/uba/Desktop/azs/video/test-opencv/frame0-03-56.52.jpg'
faces = RetinaFace.detect_faces(img_path)
print(faces)
print(datetime.now() - start_time)
img = cv2.imread(img_path)
for face in faces.keys():
identity = faces[face]
facial_area = identity['facial_area']
cv2.rectangle(img, (facial_area[2], facial_area[3]), (facial_area[0], facial_area[1]), (255, 255, 255), 1)
cv2.imshow('', img)
cv2.waitKey(0)
cv2.destroyAllWindows()`
Computer:
AMD Ryzen 5 3600 6-Core Processor
GeForce GTX 1660
ram 16+16+8
Ubuntu 20.04
Why so slow ?

result time my code 3 second

yes retinaface is very complex model and it runs slow
you might consider to use opencv if you have a speed concern.

yes retinaface is very complex model and it runs slow
you might consider to use opencv if you have a speed concern.

Is it possible to use GPU ?

Yes @ninnnnnnr it's possible. Just check if your TensorFlow it's detecting the GPU with
tf.test.gpu_device_name()


Update WindowsBuild.md

Update instructions to add ICU to path to avoid the multiprocessing failure.  Additionally, remove the file tool as that is no longer needed for the test suite.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please smoke test and merge

@swift-ci please smoke test and merge

@swift-ci please smoke test and merge

@swift-ci please smoke test and merge


Exclude Postman Sandbox builtins and only bundle scripts when they have dependencies.

Fixes #36
Related to #12
Signed-off-by: Kevin Swiber<EMAIL_ADDRESS>

This is great - will get this out shortly!


Powershell syntax highlighting breaks on literal property containing variable

Issue Type
Bug
Description
Paste below script block in a window with powershell syntax highlighting:
$someVar."boe"
Write-Host "Color coding is still correct"
$name = "boe"
$someVar."$name"
Write-Host "Color coding is broken by variable in literal property"
VS Code Info
VS Code version: Code - Insiders 1.21.0-insider (6309a7734b0b0876b263a6a9cb526fc281100089, 2018-02-20T10:24:00.306Z)
OS version: Windows_NT x64 10.0.17074

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4712HQ CPU @ 2.30GHz (8 x 2295)

Memory (System)
15.91GB (6.00GB free)

Process Argv
C:\Program Files\Microsoft VS Code Insiders\Code - Insiders.exe

Screen Reader
no

VM
0%

Extensions (4)

Extension
Author (truncated)
Version

python
ms-
2018.1.0

PowerShell
ms-
1.5.1

team
ms-
1.122.0

vscode-docker
Pet
0.0.24

Reproduces only with extensions

This issue was moved to PowerShell/EditorSyntax#69


Update whereami utility to be cloud-agnostic

@knee-berts brought up an excellent point - with Anthos being multi-cloud, whereami should be able to return the same payload regardless of which supported platform it's running on. Currently investigating implementation approaches with him.

potential platforms include GCP, AWS, Azure, etc

currently whereami references the GCE metadata endpoint to pull some info, so effectively we need to come up with a non-GCP alternative

Also potentially in scope: non-cloud platforms like bare metal & vSphere.

Hi Alex, I agree this is a good idea that could help with Anthos multicloud demos.
What happens today when this app runs on AWS or Azure? Does it throw an error trying to call the GCE metadata endpoint?
Because there are two options --

Fail gracefully if the app can't reach the GCE metadata server. That's what we're doing with the bigger sample apps today. The region just shows up as "unknown" in the frontend. https://github.com/GoogleCloudPlatform/bank-of-anthos/blob/master/src/frontend/frontend.py#L543

Add AWS / Azure specific code to detect what cloud provider the user is running in, and call the appropriate server to fetch the region/zone.  But this is a bit of a rabbit hole - ie. will you also cover baremetal, kind, and all the other Anthos supported environments?  Arguably then, this app would not belong in this repo (GKE on GCP samples) but rather  https://github.com/GoogleCloudPlatform/anthos-samples which covers the non GCP environments.

It may be also worth asking the Anthos multicloud team if they're using any in-house apps to demo the product / see if something similar has ever been done.

incremental updated, but the PR i just put in will move the node name source from GCE metadata to Downward API, which makes it work on any K8s environment

Thanks Alex! We might try this workaround in the Bank of Anthos and Online Boutique sample apps.

cool. happy to contribute those changes if you're looking to offload some work. LMK.

also @askmeegs the latest PR doesn't totally solve the incomplete payload issue - it just makes the node_name field work, which hopefully is sufficient for most use cases. the fields that won't work outside of GCP after this PR are as follows:

project_id of course
zone zones of course are also applicable to other cloud providers, but would require cloud-specific implementations
cluster_name this one is tricky in large part because within a given K8s cluster, the cluster doesn't "know" its own name;  I've though about potentially using Fleets to address this, but it (at first blush, at least) seems difficult to implement because within that cluster, the gke-connect namespace has a few references to the cluster name (in the deployment and corresponding pod specs, but i'd need to slice up some string and I need to do some more testing to make it work

TLDR is, if I'd need to write some makefile or something similar to make this work, it's probably not worth the added complexity for users seeing as whereami was written to be stupid-simple to spin up, and the kustomize stuff might break. i'll continue investigating though to see if we can make it easy.


add pre-commit

Before submitting

[x] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?

What does this PR do?
Add pre-commit config to set linked CI
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

checking what is the failer... https://github.com/pre-commit/pre-commit/issues/1889


Only make code-block unstyled if blockBefore isn't a code-block

Fixes https://github.com/facebook/draft-js/issues/54 using suggestion.

@facebook-github-bot import


Doesn't Support Ring Doorbell Pro

Hello,
The plugin doesn't support Ring Doorbell Pro, instead it appears in HomeKit as a stickup cam. This is because the device kind is no longer "doorbell", but is "lpd_v2" for the Pro (line 174 expects "doorbell").
Perhaps the Doorbell v2 and the Doorbell Elite have different kinds too?

thanks for the report. i just published 0.6.5 ... please see if that works!

Yes, fixed. Thanks.

great, thanks for the report!

well, it's a warning. can you tell me

This plugin is now DEPRECATED... you will find a vastly superior plugin here!

Thanks for all of your work on this project in the past Marshall!!


HotFix for osx_code

See similar fix:
https://github.com/crowdin/crowdin-cli-2/pull/67/commits/15d2c9398c17ae9ab3162e95160c534d23e310bd

Thanks.

By the way, android_code and osx_locale can be fixed the same way.


Ability to use in one scope results of other located on the same level

For example we need to do two actions:

parse URL
parse Id from URL (to simplify that action we should use results from first one).

yep, it would be great to have access to already built results tree

That is done through the storage. You could set and get data in it.

Rules example:
{
        scope: '.data',
        collection: [[
            {
                "name": "url",
                "attr": "href",
                "set": "url"
            },
            {
                "id": true,
                "get": "url"
            }
        ]]
    }

So, url from "href" was parsed only once, and then reused in the second row


All day event doesn't show full day event text

With updating to version 2.2.3 the full day event text isn't shown anymore.
It now shows 12:00 AM - 11:59 PM(in 16 hours) instead of the configured full day event text.

Not solved completely:

@breti  Please check in your browser console that v2.2.6 is being loaded. Make sure that it isn't cached on the old version.
If this isn't the case please let me know.

I've tried Firefox Private Mode and reloaded Lovelace with Ctrl+Shift+R, still the same. Then I've tried Chrome, still the same.

Ok thanks, I'll do some testing again on that


Skirmish and Campaign: a case for two distinct game modes

…or anything computer-related that would translate to Skirmish and Campaign 😄
The problem of the current level progression is that it mixes arcade-like replayable skirmishes with relentless player upgrades that renders previous levels unchallenging.
The whole series of Normal levels can feel like a long tutorial: one new chip unlocked, a handful of levels to learn about it, a new chip, some levels, rinse and repeat.  Then Turbo unlocks and you think you will get a bit of fun, and you do, but it's all tarnished by a progression system that needs you invest your points in newly unlocked recruits unless you won't get past the levels.
Don't get me wrong, i like what we have now, but i just feel it hits a middle spot that weirdly does not satisfy either the slow strategist or the goopy goblin brain in me.
And it shows in the ways some levels play.
I can point out to some that definitely lean towards a puzzle-like structure: level 14, 15 and 20 specifically i feel were really interesting the first time around (you're getting used to the MEM and ACC chips), but did not provide much challenge afterwards. Some others hide untapped potential: level 11 with its 3 separate lanes (and level 22, its harder clone), level 24 and its short branching lanes, 27 with clock-like design…
And on the opposite side of the spectrum, some that get really tense and have the player on constant edge because you play them at a time your upgrades coincide with a level of matching difficulty, due to recent unlocks, complex level structure, early-game steep difficulty spikes or late-game power plateau: the infamous level 8 early on, which requires intense and precise player input, tapping on attackers; level 12 and 15 (normal and turbo) and their uneven and unpredictable lanes that output lots of strong ennemies.
And of course my personal favourite and current black beast: level 23 turbo. It features 4 different entry points, including one that's only 4 chips away from the CPU outputing at the same pace and strenght as the furthest, only sharing 2 chips with the rest of the lanes. It's an unforgiving level, and i'm yet to find a bulletproff strategy to get through in a no-damage run. Not to mention the two negative chips you need to account for as well. It's an all around challenging level and it might even be the best one! As it requires you understand and use pretty much every mechanic the game currently has to offer.
But these two types of levels together in the same level progression ? it doesn't work so well.
What i'd like is that the game gets separated into two distinct modes: a full-on Campaign, that would alow for slow progression through increasingly complex and difficult levels (like the later ones i described), and Skirmish levels, that would include standalone levels with their own self-contained logic and strategy (like the first ones i described).

Regarding the Campaign, it would basically be the current-level progression with upgrades and all, but expanded upon. My vision on this mode and what it could be like i've condensed in a later issue #85

Skirmishes on the other side would not feature any cross-level progression, but would instead give unique challenges to the player by having a preset number of cryptocoins available at the start of each level. They could potentialy feature unique gameplay mechanics the player would have to strategize around (a huge number of negative chips, some chip types being unavailable, being unable to upgrade chips etc…) without worrying about any external variables.

I hope you find this reasoning interesting and that you'll consider my points in future updates!
Considering the sheer volume and depth of the suggestions i keep making, maybe i should just contribute my own code one day, and fork this whole thing for later contributions or modifications 👀 ha!

This is a lot of input, along with the other issues ... Thanks a lot for your feedback and all of your ideas! I will have to think about this and see how it fits in, and then it must still be developed. That will take time, so please be patient ... I really appreciate your strong interest in this little game!

And i realy appreciate you taking the time to actually read it through and give it some thought :)
Yes this is a lot! i understand of course. As i said previously, if i'm so much invested, i should dive into the code myself some day !…
Le 16 janvier 2024 12:40:45 GMT+01:00, ochadenas @.***> a écrit :

This is a lot of input, along with the other issues ... Thanks a lot for your feedback and all of your ideas! I will have to think about this and see how it fits in, and then it must still be developed. That will take time, so please be patient ... I really appreciate your strong interest in this little game!
--
Reply to this email directly or view it on GitHub:
https://github.com/ochadenas/cpudefense/issues/84#issuecomment-1893575039
You are receiving this because you authored the thread.
Message ID: @.***>

would you care noving to discussions (as well) @ochadenas ?

I want to second this suggestion. The endless mode is a lot of fun but i almost gave up on the game before i even got there. There should be much fewer tutorial levels or they should be more complex.
There's a trend for mobile versions of games to be dumbed down (look at sokoban games on Android vs the original). That is not necessary at all and ruins the fun. Don't treat players like children.
Cut down the number of tut levels, make them more complex so there is actual choice to be made and unlock endless right after normal mode.


Images for different OSs

Hi there. I work on a mac primarily and I'm finding it difficult to make my own images.
I don't suppose you would make a set of images using DietPi OS as the base?
I thought there'd be no harm in being cheeky and asking.

Hi there. I work on a Debian primarily and I'm also finding it difficult to make my own images.
:D

Updating the current script and testing for Raspberry Pi OS Bookworm has taken days so far so I'm unlikely to add another distro needing lots of changes any time soon. But, as Raspberry Pi OS Bookworm (both 64/32bit) are based on Debian when it's released I'll try to take a look at what changes would be needed to support it. AIUI DietPi has a default user/pass accessible over the network so I'm unlikely to look at that I'm afraid.


CORS issue when security is enabled and using nginx proxy

@mobilars, I create a new ticket as your issue seems different from the original one (https://github.com/ehrbase/ehrbase/issues/669)
Background

https://discourse.openehr.org/t/create-new-ehr-using-postman-rest-services/1982
https://github.com/ehrbase/ehrbase/issues/669#issuecomment-981053817
https://github.com/ehrbase/ehrbase/issues/669#issuecomment-981706520

I must admit I find CORS very confusing, so might be I'm doing things wrong here. But the curl responses with authentication turned off or on is different, and it failes with authentication on .
On a server with authentication turned on, with request going through nginx proxy forwarding between local ports 80 -> 8080.
C:\fkj\web-ehr>curl -u user:secret --request OPTIONS --url "http://localhost/ehrbase/rest/openehr/v1/ehr/47a44b09-f320-433e-a448-cd6bc699c695" --header "Access-Control-Request-Method: GET" --header "Origin: http://localhost" --header "Referer: http://localhost/lab" -i
HTTP/1.1 401
Server: nginx/1.21.4
Date: Mon, 29 Nov 2021 15:18:29 GMT
Content-Length: 0
Connection: keep-alive
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
WWW-Authenticate: Basic realm="Realm"
After I turned authentication off (changed env-file to SECURITY_AUTHTYPE=none)
C:\fkj\web-ehr>curl -u user:secret --request OPTIONS --url "http://localhost:8080/ehrbase/rest/openehr/v1/ehr/47a44b09-f320-433e-a448-cd6bc699c695" --header "Access-Control-Request-Method: GET" --header "Origin: http://localhost" --header "Referer: http://localhost/lab" -i
HTTP/1.1 200
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET,HEAD,POST
Access-Control-Max-Age: 1800
Allow: GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH
Content-Length: 0
Date: Mon, 29 Nov 2021 15:15:47 GMT
BUT, what makes me think it might be a local issue or some configuration error in nginx is that when I run directly towards the ehrbase server on port 8080 (so not via the nginx on port 80), it works...
C:\fkj\web-ehr>curl -u user:secret --request OPTIONS --url "http://localhost:8080/ehrbase/rest/openehr/v1/ehr/47a44b09-f320-433e-a448-cd6bc699c695" --header "Access-Control-Request-Method: GET" --header "Origin: http://localhost:8080" --header "Referer: http://localhost:8080/lab" -i
HTTP/1.1 200
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 0
Date: Mon, 29 Nov 2021 15:19:33 GMT

Most of our apps communicate with EHRBase from the browser, and we share your frustration with CORS errors. @DharsanB  @ATHULKNAIR.
And we had a very similar error when enabling Basic Authentication on the reverse proxy (nginx in this case) and CORS on the downstream service (EHRBase in this case). The problem was, The CORS headers are supposed to be returned by EHRBase, but since the Authentication check is done before that, it never reaches the server, and the reverse proxy returns a 401 without the headers. This is obviously a failed CORS preflight.
A solution to that was handling all the OPTIONS request separately and returning an appropriate response with the correct headers and only check for Authentication for the other requests.
However, this hack will not be necessary if Authentication is enabled on EHRBase (However, I've never tested that).
So how are you enabling Basic Auth? On EHRBase itself, or on your Nginx server?

Answering the last part first. Will read the beginning a few times before replying to that :-)
I'm running ehrbase using the docker compose described in <IP_ADDRESS>.2 here https://ehrbase.readthedocs.io/en/latest/03_development/04_docker_images/01_ehrbase/02_use_image/index.html
It has an env-file that defaults to SECURITY_AUTHTYPE=BASIC
But when I set it to SECURITY_AUTHTYPE=none the authentication is turned off.
So the authentication is in the ehrbase server, not nginx. It seems you had the authentication in nginx rather than ehrbase? Might be similar problem, but in my case the request does seem to reach the server and cause the following error in the ehrbase log. This is a new feature in spring boot apparently.
ava.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead.
at org.springframework.web.cors.CorsConfiguration.validateAllowCredentials(CorsConfiguration.java:473)

Ehrbase seems to accept the requests (also with authentication) when the web client claims it's accessing ehrbase on the port that ehrbase is actually running, but not when it's on a different port. I changed my ngxinx to rewrite the origin and referer from whatever it is to http://localhost:8080 (which is where ehrbase is running rather than the port 80 that nginx is running and the web client runs. Then it works. Probably not smart from a security point of view as I'm basically cancelling CORS, but not a big issue for me in my test. Here's my nginx in case anyone's interested. I suspect one has to edit the spring files according to this (https://stackoverflow.com/questions/64892592/cors-enabled-in-spring-boot-with-angular-still-cors-errors) to get it to work properly, but then I have to build it myself and it won't build and I don't really need it enough to downgrade to v11 of java if that's what it'd take.
The following nginx configuration basically means that nginx is getting a request with headers
Origin: http://localhost
Referer: http://localhost/lab
and nginx deletes these header values and just puts in the following instead
Origin: http://localhost:8080
Referer: http://localhost:8080
Then, for some reason, the ehrbase accepts the request.
_#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
worker_connections  1024;
}
http {
include       mime.types;
default_type  application/octet-stream;
#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location /ehrbase/ {
		proxy_pass http://localhost:8080/ehrbase/;
	#proxy_set_header Authorization "Basic dXNlcjpzZWNyZXQ=";
	proxy_set_header Referer "";
	proxy_set_header Referer "http://localhost:8080";
	proxy_set_header Origin "";
	proxy_set_header Origin "http://localhost:8080";

	#proxy_set_header Authorization $http_authorization;
	#proxy_pass_header Authorization;
    }
    location / {
		proxy_pass http://localhost:4200/;
    }
}

}_

OK, so downgrading to jdk 11 did let me build it, as you predicted.

Good 👍 If you are able to build EHRbase locally, I will push a new branch with some additional CORS config. I hope that it will fix your issue.
PS: You can have both JDK installed and switch between one or the other depending on the project you are working on.

Could please try the following branch: https://github.com/ehrbase/ehrbase/tree/619_cors_issue_security_nginx
Dependending if you use the JAR or build the Docker image, the following should fix the issue:
# application-custom.yml
web:
  cors:
    allow-credentials: true
    allowed-origin-patterns: '*'

# docker-compose.yml
    environment:
      WEB_CORS_ALLOWCREDENTIALS: 'true'
      WEB_CORS_ALLOWEDORIGINPATTERNS: '*'

Thanks. I need to let it rest for a couple of days, but will try later. I don't have an application-custom.yml. Can I use the application.yml (how does it choose between them???)

Sorry for the late reply.
Yes, you can add the properties in the default application.yml.


HTTP/2 DefaultHttp2RemoteFlowController frame merging with padding bug

Motivation:
DefaultHttp2RemoteFlowController does not correctly account for the padding in the event frames are merged. This causes the internal stat of DefaultHttp2RemoteFlowController to become corrupt and can result in attempting to write frames when there are none.
Modifications:

Update DefaultHttp2RemoteFlowController to account for frame sizes not necessarily adding together.

Result:
DefaultHttp2RemoteFlowController internal state does not become corrupt when padding is present.
Fixes https://github.com/netty/netty/issues/4573

@louiscryan @nmittler - PTAL

@Scottmitch What are your thoughts on fixing https://github.com/netty/netty/issues/4773 in this PR as well? It should just be a one-liner.

LGTM for the padding merge calc, thanks for picking this up Scott

@Scottmitch LGTM

Cherry-picked 4.1 (e885007)


Fix circular reference error

Alternative to #325

Thank you, this definitely solved the issue for me 👍

this fix works for me too, thank you.


Set up Zipkin Tracer

Description
Set up Zipkin tracer and OpenTracing bridge for using using Zipkin as the backend.

You can try run go mod tidy and commit the changes it made to fix the drone problem. If it doesn't fix the drone problem, probably your go is not the latest version.

I think we cannot expect checksums for golint to be the same, because we do go get -u golang.org/x/lint/golint as part of the lint step of drone workflow.
If we add the dependency to go.mod, go mod tidy removes it, because it's unused dependency. I think swapping lint and check-go-modules should work.

please remove the last two commits, none of the code depends on golint. if you run go get .../golint outside of this directory it won't affect your go.mod and go.sum files

^ sorry, never mind


Separate image per monitor

Hey, thanks for bringing this cool tool to windows.
I would like to set different channels on a monitor basis, just like on macOS.
Is that already on your roadmap?

Thanks @muffe!
This is definitely high on the list on things I want to support, I just haven't found a good way to do this in Windows yet. The only way I currently know how to do this is to stitch together two images and set that as the wallpaper. 😢
Leaving this open in hopes someone else has a better idea.

Googled around and found some nightmare code that shows how to stitch multiple images together (doesn't look fun.)
I came across a new API that appears to be Windows 8 that gives more fine-grain control of setting the wallpaper, including passing the monitor ID: https://msdn.microsoft.com/en-us/library/hh706962(v=vs.85).aspx

@dustinsenos Good find! I think this is actually just what we need to support multiple monitors.

awesome to hear! it looked like a pretty decent API.

Any update on this?


Sidebearings Measurement needs check for italicAngle None value

When turning on the "Measure against Sidebearings" option and pressing "f" I get the following traceback:
Observer '<stemPlow.StemPlowSubscriber.StemPlowSubscriber object at 0x13d53a900>' with '_roboFontCallback' failed: must be real number, not NoneType
Traceback (most recent call last):
  File "lib/eventTools/eventManager.pyc", line 165, in callObserver_withMethod_forEvent_withInfo_
  File "/Applications/RoboFont.app/Contents/Resources/lib/python3.12/mojo/subscriber.py", line 1718, in _roboFontCallback
  File "/Applications/RoboFont.app/Contents/Resources/lib/python3.12/mojo/subscriber.py", line 3421, in start
  File "/Applications/RoboFont.app/Contents/Resources/lib/python3.12/mojo/subscriber.py", line 3438, in fire
  File "/Applications/RoboFont.app/Contents/Resources/lib/python3.12/mojo/subscriber.py", line 1736, in _roboFontCoalescerCallback
  File "/Users/colinmford/Library/Application Support/RoboFont/plugins/StemPlow.roboFontExt/lib/stemPlow/StemPlowSubscriber.py", line 512, in glyphEditorDidMouseMove
  File "/Users/colinmford/Library/Application Support/RoboFont/plugins/StemPlow.roboFontExt/lib/stemPlow/StemPlowSubscriber.py", line 844, in getThicknessData
  File "/Users/colinmford/Library/Application Support/RoboFont/plugins/StemPlow.roboFontExt/lib/stemPlow/StemPlowSubscriber.py", line 148, in copyGlyphWithSidebearings
TypeError: must be real number, not NoneType

It is a normal glyph with outlines, it is not a blank glyph nor one with components.
Disabling the "Measure against Sidebearings" option returns the extension to normal function.

The line in question is here:
https://github.com/RafalBuchner/StemPlow/blob/8a1dd2db57bf95c79f5942ef76e7b94ed7a4c127/source/code/stemPlow/StemPlowSubscriber.py#L148
My font doesn't have an italic angle (not zero, it's just blank). Typically not an issue to just leave blank, particularly in a new font, but probably the code should have a check for None and just return zero.

ha, sorry for making mess, I've fixed it with version 1.5.2


[SPARK-48717][FOLLOWUP][PYTHON][SS] Catch Cancelled Job Group wrapped by Py4JJavaError in StreamExecution

What changes were proposed in this pull request?

The previous commit https://github.com/apache/spark/commit/1581264a5d77e1731a987020a448ddc3f3ea8f27 doesn't capture the situation when a job group is cancelled. This patches that situation.
Why are the changes needed?

Bug fix, without this change, calling query.stop() would sometimes (when there is a python foreachBatch function, and this error is thrown) cause query appears as failed.
Does this PR introduce any user-facing change?

No
How was this patch tested?

Added unit test.
Was this patch authored or co-authored using generative AI tooling?

No

cc @HyukjinKwon @allisonwang-db PTAL! TY!

Merged to master.


handling multiple websocket client connections

What would be your suggestion from handling multiple websocket client connections simultaneously? For example, say I have two websocket servers that I need to consume simultaneously. The recipe on https://websockets.readthedocs.io/en/stable/howto/patterns.html shows a message iterator:
async def consumer_handler(websocket):
    async for message in websocket:
        await consumer(message)

Furthermore, the message iterator would typically be wrapped in a context manager:
async for websocket in websockets.connect(...):
    try:
        ...
    except websockets.ConnectionClosed:
        continue

I suppose I could nest the two context managers, but would probably have to avoid message iteration, right? If you could point me in the direction of some reference code, that would be greatly appreciated. Finally, if I can avoid using multiple threads, I will.
Thanks
Gabriel

You need this: https://websockets.readthedocs.io/en/stable/faq/asyncio.html#how-do-i-run-two-coroutines-in-parallel

You have to run multiple coroutines (not threads!)

I get that I can gather tasks or use a task group. Your patterns page shows a single consumer / producer with iteration over a single client. Clearly that iteration over a single websocket client's messages will not work for the case where there are two or more websocket clients. How about something like this?
async def main():
    async for ws1 in websockets.connect(uri=uri1):
        async for ws2 in websockets.connect(uri=uri2):
            try:
                try:
                    async with asyncio.TaskGroup() as tg:
                        tg.create_task(consumer1(ws1.recv()))
                        tg.create_task(consumer2(ws2.recv()))
                except ExceptionGroup as eg:
                    for err in eg.exceptions:
                        print(err)
            except websockets.ConnectionClosed:
                await asyncio.sleep(0.)
                continue

Yes that's the sort of code that you need, but not exactly correct.
The key point here is to two tasks that call recv() in parallel on the two connections. tg.create_task is a good way to do this.
The call to recv() must be inside the tasks. I'd put await ws1.recv() inside the definition of consumer1. (Technically, your code can work if consumer1 awaits its first argument but that's a rather weird way to do it. Also it lets you receive only one massage, while you want to interate.)


Automatic linebreak of inline math inside shrink-wrap elements

Minimal test case: https://jsbin.com/yapulamewo/2/edit?html,output
When automatic linebreak is turned on, an inline math inside a shrink-wrap element (e.g. table cell) is broken to multiple lines even if there is enough horizontal space.
I suspect this is caused by #2006 since v2.7.4 does not have the problem.

You are correct, the changes for 2006 are the source of the difference.  As you can see from that discussion, due to recent changes in WebKit, the mechanism that MathJax used to use to determine the width of the math's container would cause unwanted line breaks at every in-line math expression, so the mechanism had to be changed.
Measuring the width is actually more complicated than one might expect.  The main complications are shrink-wrapping elements (like the table cells in your example) and floating content that takes up room within the container on the left or right.  The mechanism that MathJax used in 2.7.4 involved inserted a block-level element temporarily that would both expand shrink-wrap elements to their widest allowed size, but not wider than the available room within the container (taking flowing elements into account).  Unfortunately, that temporary block-level element would cause a permanent line break in recent versions of WebKit (so in Safari and Chrome).
MathJax still uses this method for finding the size of the container for display math (since that will be on a separate line anyway), but no longer uses that for in-line math.  I could not come up with a mechanism that handles both shrink-wrap and floating elements for in-line math.  Because it is possible for the page author to handle shrink-wrap elements easier than floating content (see below), MathJax 2.7.5 now uses a method that handles the floating content properly at the expense of shrink-wrapped math.
There are several ways to approach the issue you are facing.  One would be to apply a min-width CSS value to one of the cells in the affected column large enough to prevent the expression from breaking.  Alternatively, if a shrink-wrapped element contains other text, that text will provide a minimum width, and (if wide enough), will prevent the expression from breaking.  (So the issue usually only occurs when in-line math is along in an otherwise empty cell.)
Another approach would be to use display math rather than in-line math in the table cell.  One could use CSS like
td .MJXc-display {
    margin: 0
}

to remove the top and bottom spacing in this case.
Alternatively, one could include an empty display-math element in the table cell, and use a wrapper to hide its height.  The block-level element used to measure the width for the display element would force the shrink-wrapper to expand and when the in-line element measures the width, it will be correct (rather than 0).  Something like

\[\]

should do the trick.  (One could get fancy about it and use something like <mjx-noshrink></mjx-noshrink> for this, and write a MathJax preprocessor to replace these elements with the
 above, and remove them after MathJax runs.)
Finally, if you are not using floating content, you could use

to convert the in-line measuring to one that does almost what the old measuring did, but with an in-line rather than a block element.  (This doesn't work properly if there is floating content, but will handle shrink-wrap elements.)

Hi @dpvc, is there some generic solution. Here is my config:

MathJax.Hub.Config({
  TeX: {
    extensions: ["autobold.js"],
    equationNumbers: {
      autoNumber: "AMS"
    }
  },
  tex2jax: {
    inlineMath: [["$", "$"], ["\\(", "\\)"]],
    displayMath: [["$$", "$$"], ["\\[", "\\]"]],
    processEscapes: true,
    processRefs: true,
    processEnvironments: true
  },
  "HTML-CSS": {
    linebreaks: {
      automatic: true
    }
  }
});

MathJax.Ajax.loadComplete("https://DOMAIN/config.js");

is there some generic solution?

As I said above, I was not able to find one that handles both shrink-wrapped elements (like table cells) and floating content.  The current implementation favors floating elements (but fails for shrink-wrapping).  I provided an alternative above that favors shrink-wrapping (but fails for floating content).  You can take your pick, but I don't know of one that works for both simultaneously.

is there some generic solution?

As I said above, I was not able to find one that handles both shrink-wrapped elements (like table cells) and floating content. The current implementation favors floating elements (but fails for shrink-wrapping). I provided an alternative above that favors shrink-wrapping (but fails for floating content). You can take your pick, but I don't know of one that works for both simultaneously.

Thanks! I will dig deeper and hopefully come up with something on this matter.

The MathJax version 3.x is still missing linebreaking - is it due this bug?

@mikkorantalainen:

is it due this bug?

No, it is due to the fact that line-breaking hasn't been ported to v3 yet, so there is no code in v3 to do line breaking yet.  it is on the to-do list, but the font update that is currently underway come before that.


[Feature] support wxTreeCtrl [sf#1]

*Reported by anonymous on 2003-01-17 15:05 UTC
Hello,
wxGlade is a great tool... i depend on it for my

application :O)
However I would like support for tree control, it
would be very nice.
Thank you for a great tool,

emmanuel.

Commented by agriggio on 2003-01-17 17:07 UTC
Logged In: YES
user_id=375945
Hello,
thanks for the compliments...
wxTreeCtrl will be supported in one of the next versions
(0.3 probably), but there are other priorities at the moment
(i.e. undo/redo).
Anyway, in the meantime you can use the special CustomWidget
component (you can see an example of it in
samples/notebook.wxg where it is used to insert a wxListCtrl
in the frame)
Alberto

Commented by agriggio on 2003-03-14 13:58 UTC
Logged In: YES
user_id=375945
I've added a basic tree ctrl support on CVS


Fix aliased yarn commands like yarn ls

Yarn has a handful of subcommand aliases but does not automatically
correct them for the user.

Maybe we should also handle situations, where yarn not suggests us anything, like:
✗ yarn whyy
yarn whyy v0.21.3
error Command "whyy" not found.


Superfluffy/central config without proc

Summary
Brief summary of the changes made, ie "what?"
Background
Brief background on why these changes were made, ie "why?"
Changes

List changes which were made.

Testing
How are these changes tested?
Breaking Changelist

Bulleted list of breaking changes, any notes on migration. Delete section if none.

Related Issues
Link any issues that are related, prefer full github links.
closes

Closing in favor of #537. It was painful to squash on top of recent main because of all the merge commits.


Add trakt tv support

Hi! Thanks for the great app! This is gonna save me an insane amount of time! Was wondering if adding support to trakt tv would be possible, as in checking in downloaded shows in our collections on the website?
Thanks!
Cédric

Hi @cedlavarde, thanks for the kind words!
I checked out trakt tv but I'm still not entirely sure what it does, and I'm not entirely sure I understand your request :)

Closing due to inactivity.


Question on Characteristic.StatusActive

Question
Hi ebaauw, you seem to be only person with clean code using Characteristic.StatusActive. But still haven't figured it it's purpose, maybe you can share some experience?
I have a working plugin with a light sensor that shows up fine on IOS 13. I'd like the homekit icon to turn on (like a contact sensor triggering) when a certain lux value is reached. Is this what the optional characteristic StatusActive is supposed to do?
I couldn't find any on-line explanation if it changes anything to the icon and nothing show up in the Eve app.
Thanks a lot!
Code
So I added the optional characteristic as follows under the plugin getServices function:
this.smaSensor = new Service.LightSensor(this.name);
this.smaSensor
.getCharacteristic(Characteristic.CurrentAmbientLightLevel)
.on("get", this.getSensorValue.bind(this));
this.smaSensor
.addCharacteristic(Characteristic.StatusActive)
.on("get", this.getSensorStatus.bind(this));
In the referred getSensorStatus, I just forced to true to check what happens (but nothing does):
getSensorStatus: function(callback) {callback(null, true);}
And in the main function of the accessory plugin, I tried
this.smaSensor.updateCharacteristic(Characteristic.StatusActive, true)
Log Messages
N/A

You don't want to be using characteristic.on('get', ...) - better push the changed value through charactertistic.setValue() or charactertistic.updateValue() or the service variants.
Eve displays an exclamation mark when StatusActive is false.  I don't think Home does anything with it.

Thanks ebaauw, i struggled a bit and found a working solution for my plugin. In the home app it adds a new "Status Active" property in the icon settings. This can't be used for automations. Also visible in Eve as "Inactive" or "Active" but can't be used as a rule trigger.
So not very useful for the moment. I'll leave the code in case some features pop-up in the future.
Under getservices for the light sensor accessory, I added: this.smaSensor.setCharacteristic(Characteristic.StatusActive, this.StatusActive);
where "this.Status active" is true or false depending on lux value
In the main function I have as follows (couldn't get updateValue or setValue working - I not read at coding), self is there for scope reasons:
if (self.power >= 10) self.smaSensor.setCharacteristic(Characteristic.StatusActive, true)   else self.smaSensor.setCharacteristic(Characteristic.StatusActive, false);

This looks OK to me, though personally, I would optimise the code to:
self.smaSensor.setCharacteristic(Characteristics.StatusActive, self.power >= 10);


Add mesos environment

not ready for merge

I can't really directly merge this because of all the other reorganization, but incorporated into https://github.com/rancher/ui/pull/624 .. thanks @LLParse


webhooks/gitlab: Include title in Issue Hook event messages.

We already include the issue title in the topic. But if one chooses
to group all gitlab notifications under one topic, the message body
is misleading in the sense that only the Issue ID and the description
are displayed, not the title, which isn't super helpful if the topic
doesn't tell you the title either.
I think we should err on the side of always including the title in
the main message body, which is what this commit does.
Fixes #9913.
@timabbott: FYI :)

This is a fine temporary fix, but we will want to think about writing our body templates in a way where they can include certain data if and only if it wasn't included in the topic.  It'd be significant refactor to support that, since we'd need to pass through the conclusion about what topic we're using to the appropriate place in the code where the body is constructed.


patch/no-sgx-flc: add the SGX DCAP linux driver patch and update README.md.

add patch to enable SGX DCAP Linux driver in SGX1 machines even without FLC supported.
update the URL of the v33 in-tree Linux SGX driver.

Signed-off-by: Yilin Li<EMAIL_ADDRESS>

Change the commit header of 2nd commit to:
patch/no-sgx-flc: add the support for SGX DCAP driver

Enable non-trivial SGX 1 machines with SGX DCAP driver.

SOB:


Unstable DataStore integration tests

Describe the bug
The AWSDataStoreCategoryPluginIntegrationTests target runs multiple integration and end-to-end tests of the AWSDataStoreCategoryPlugin. However, running these tests fails in unexpected ways when invoking them in a batch, even though they pass individually. This makes it hard to troubleshoot errors and makes it unsuitable for using in a CI pipeline, and reduces confidence in the DataStorePlugin's stability.
To Reproduce
Steps to reproduce the behavior:

Set up the integ test environment per the README.md instructions
Launch Xcode with the DataStoreCategoryPlugin.xcworkspace project
Switch the active scheme to AWSDataStoreCategoryPluginIntegrationTests
Run all tests with Product > Test (Cmd-U)

Expected behavior
Tests pass consistently
Actual behavior
Tests fail intermittently:

testCreateMutateDelete
testCreateThenMutateWithCondition
testSubscribeReceivesCreateMutateDelete

Environment(please complete the following information):

Amplify Framework Version: 1.0.2
Dependency Manager: CocoaPods
Swift Version: 5.2
Xcode Version: 11.5
Amplify CLI version: 4.22.0

Device Information (please complete the following information):

Device: Simulator
iOS Version: iOS 13.5

When the tests are running individually, they don't affect each other. But when trying to run the tests all at the same time, the hub listener of a specific test may get a response which is not related to this test.
Take testCreateMutateDelete() as example, createReceived, updateReceived and deleteReceived should be fulfill() in order. But the hub listener receives a payload which contains an mutationEvent(say this is a delete event) of another test, deleteReceived could be fulfill() more than once in testCreateMutateDelete().
Solution so far is: after mutationEvent.decodeModel() as? Post, need to check whether this is the post we want for this particular test by checking if post.id == newPost.id

That sounds like a good way to build resiliency into the test, thanks for the suggestion.

https://github.com/aws-amplify/amplify-ios/pull/596


test: move provisioner-cli to test folder

Fixes: #731

/lgtm Thanks @huoqifeng Asked a question but it's not a blocker

Thanks @bpradipt , yes, we supports these providers only so far, fixed it.

@huoqifeng - I appreciate I'm a bit late here, but I have a question:

Previously I could run make BUILTIN_CLOUD_PROVIDERS="ibmcloud" build to just run the build of the ibmcloud provisioning part, but the BUILTIN_CLOUD_PROVIDERS option isn't used in the new makefile now?
Perhaps you should add the directory containing `libvirt.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libvirt' found
Package libvirt was not found in the pkg-config search path.
Perhaps you should add the directory containing `libvirt.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libvirt' found
x 25

As we add support for more cloud providers this might get more annoying, so I wondered if we could re-instate the equivalent function?


Comparative Pathway tool not working

I create a group and deploy the tool, choosing that group.  I get the pathway summary table, and I see the correct number of genomes.  I choose one pathway....it takes a while to load...then I see that the pathway is summarizing 33,219 genomes.  Actually, I'm impressed that it was able to do that, but I only wanted to see the summary across my 3 genomes.
Sigh....a frustrating day in PATRIC land....

this is fixed and available on beta.

Tested on beta, working.


Shifted columns around because of new mystery

column added in the Item file

I'm closing this PR because it's also covered by #259


[R] Compilation failure due to conflicting types in io

Compiling the R package using either devtools or R CMD INSTALL . from R-package/ fails with the following error:
In file included from ../..//src/data/sparse_page_raw_format.cc:8:
../..//src/data/../common/io.h:51:15: error: conflicting return type specified for ‘virtual std::size_t xgboost::common::MemoryFixSizeBuffer::Write(const void*, std::size_t)’
   51 |   std::size_t Write(const void *ptr, std::size_t size) override {
      |               ^~~~~
In file included from ../..//src/data/../common/io.h:10:
../..//dmlc-core/include/dmlc/io.h:44:16: note: overridden function is ‘virtual void dmlc::Stream::Write(const void*, size_t)’
   44 |   virtual void Write(const void *ptr, size_t size) = 0;

The same issue with this Write comes up again and again under many other files.
This is with GCC 12 in Debian 12:
gcc --version

gcc (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I think this is caused by recent update of the dmlc core submodule. Please run:
git submodule update

Thanks, that works.


ckeditor is out of date

Version included with AdminLTE is over two years old. version included with AdminLTE is 4.3.1 and the current version of CKEditor 4.5.7

I noticed this too, then I noticed that the demo is linking to CKEditor via CDN, like so:

but still an old version, using 4.4.3.  You can, obviously, change that easily. But it begs the question...  Why include it in the distro if you are linking to the CDN?
(Awesome theme, tho!)

Updated.
Sorry for the (very long!) delay.


possible bug with removeAdditionalProperties: true

Hey, I've been encountering the following error:
TypeError: Cannot delete property '0' of [object Uint8Array]\n    at validate (eval at localCompile (/src/node_modules/ms-validation/node_modules/ajv/lib/compile/index.js:120:26), <anonymous>:3:415

which is generally produced by:
const validate = this.$ajv.getSchema(schema);
validate(data);

I don't have a specific input that produced such an error, nor do I have a specific schema (working on it though). I can't really tell whether it's a bug in ajv or a bug in my code, but my guess is that some arbitrary input goes through type: object validation with removeAdditionalProperties: true &/or additionalProperties: false settings and then caused an error. Because this is sync, I, of course, is able to try/catch it and discover whats going on under the hood, but would ultimately love if you can give me some hints on what you think about the issue and whether cases like this should be handled natively here
Thanks!

@AVVS I suspect the problem may be that Array.isArray(new Uint8Array) is false, so these new arrays are not arrays from JS point of view. Difficult to say more without code sample.


32px.png - Windows 10 theme attached.

I updated the 32px.png icons to match Windows 10 theme.
Please include it in future versions.

Thank you for sharing this - it is great! I will not update the core theme, but it is wonderful to have this available to anyone who wants a custom theme.

I updated the 32px.png icons to match Windows 10 theme.
Please include it in future versions.

this theme is great.  Is it possible to get a matching 40px. image?


chore: remove headless recorder docs and images

Affected Components

[x] Content & Marketing
[ ] Pricing
[ ] Test
[x] Docs
[ ] Learn
[ ] Other

Pre-Requisites

[x] Code is linted (npm run lint)

Notes for the Reviewer
Remove headless recorder docs and unused images

https://github.com/checkly/headless-recorder/issues/232


Controller failing to prune deployments

Controller Version
v0.15.0
Kubernetes Version
v1.26.4
Bug description
I noticed that when I change some things about my deployments such as resource names, the new versions get deployed without the old ones being cleaned up after.
When removing and recreating the KluctlDeployment resource, the deployed resources do not get removed from the cluster and keep running alongside the new deployment, in some cases leading to conflicts e.g. if a second ingress with the same domain and paths is created.
prune is set to true, but the KluctlDeployments all contain this in their status:
  Last Prune Result:
    Error:         pruning without a discriminator is not supported
    Objects Hash:  63f7995789469181cf13f09e4824a40246eba2410188c32b2ea67c4eebe6f8f3
    Revision:      refs/heads/main/64c7ad46e099791ebdc2590bace7eb815505f51f
    Target:        oldstable
    Time:          2023-04-19T09:47:28Z

Interestingly, the status also says this:
  Conditions:
    Last Transition Time:   2023-04-19T09:50:31Z
    Message:                deploy: ok, prune: ok, validate: ok
    Reason:                 ReconciliationSucceeded
    Status:                 True
    Type:                   Ready

so I'm a bit confused.
What exactly is this "discriminator" that seems to be missing?
I am aware that the prune and delete commands require commonLabels to be specified in the kluctl project, but I have done that and every deployed resource also has the labels:
# deployment.yaml
commonLabels:
  kluctl.myorg.com/project: "super-cool-project"
  kluctl.myorg.com/target: "{{ target.name }}"

Steps to reproduce
Not sure, it seems to happen with all of my projects including the simplest ones.
I did not have this issue with previous versions of the controller (not sure which version but pre-SOPS).
Relevant log output
{"level":"info","ts":"2023-04-19T15:06:21.101Z","msg":"No discriminator configured. Orphan object detection will not work","controller":"kluctldeployment","controllerGroup":"flux.kluctl.io","controllerKind":"KluctlDeployment","KluctlDeployment":{"name":"project-oldstable","namespace":"kluctl"},"namespace":"kluctl","name":"project-oldstable","reconcileID":"33a65933-9d04-41d9-bb4b-11a8062f8954"}
{"level":"info","ts":"2023-04-19T15:06:21.101Z","msg":"No discriminator configured for target, retrieval of remote objects will be slow.","controller":"kluctldeployment","controllerGroup":"flux.kluctl.io","controllerKind":"KluctlDeployment","KluctlDeployment":{"name":"project-oldstable","namespace":"kluctl"},"namespace":"kluctl","name":"project-oldstable","reconcileID":"33a65933-9d04-41d9-bb4b-11a8062f8954"}

Discriminators were introduces in Kluctl 2.19.0 and replace the use of commonLabels for identification of objects belonging to a project/target.
Documentation can be found here: https://kluctl.io/docs/kluctl/reference/kluctl-project/#discriminator
I would suggest to add a discriminator template to .kluctl.yaml that at least takes the deployment name and target name into account, something like:
targets:
- target: my-target
  ...

discriminator: "my-deployment-name-{{ target.name }}"

Thanks for the info!
Maybe the documentation here should be updated then: https://kluctl.io/docs/kluctl/reference/deployments/deployment-yml/#commonlabels

commonLabels
[...]
The root deployment’s commonLabels is also used to identify objects to be deleted when performing kluctl delete or kluctl prune operations

Agree, thanks for pointing this out. Updated it here: https://github.com/kluctl/kluctl/pull/419
In the future, feel free to test out the "Edit this page" feature on the docs page if you want, I'd be happy to see contributions in all forms :)
I'll close this issue now as I assume everything is clarified.

@codablock I think the status showing deploy: ok, prune: ok, validate: ok despite prune explicitly erroring out is a bit confusing and probably a bug.

Oh, yes that is clearly misleading. I'll change it to show prune: failed in the next release.

fyi, I have fixed this issue as part of https://github.com/kluctl/kluctl/pull/486. I will not fix it in the classical flux-kluctl-controller.


Cleanup docker hanami config

Somehow the test file for hanami feature app was different than the other test
files. We standardize the way we test them.

There was a reason why this was made this way. The bin/setup call is required.


Account Override (Old 195)

In gitlab by @A-Lawrence on Aug 31, 2015, 01:09
Allow account override from acp.

In gitlab by @A-Lawrence on Aug 31, 2015, 01:15
Now logging the impersonation reasons.  Resolves issue #488534 (195).
ÔåÆ <<cset 7eb07771a208>>
ALawrence66 - 2015-02-24T21:53:12.690407+00:00

In gitlab by @A-Lawrence on Aug 31, 2015, 01:15
Added the account override to the admin area.  Restricted to very select members, also requests a reason but doesn't store it (yet).  Holds issue #488534 (195)
ÔåÆ <<cset 50a871b3e92b>>
ALawrence66 - 2015-02-24T00:51:53.494905+00:00