Missing DMA_MASK in IOMMU specification leaves application problems in the real operating system

In the modern operating systems, DMA addresses are not just physical addresses or virtual addresses, please refer to:
https://github.com/torvalds/linux/blob/master/Documentation/core-api/dma-api-howto.rst
Operating systems treat DMA addresses as "bus addresses", which are likely referring to a subset of a physical address space or a subset of a virtual address space.
In the systems like Linux, there is a DMA_MASK attributes system widely applied or device specific.
When a virtual/physical address is to be converted into a DMA address, operating system simply masks off the the most significant bits of the DMA address, that means, the most significant bits of the DMA address are always 0s.
And there are many ecosystem DMA master IPs which support limited address width, say, 16-bits, 32-bits, or 48-bits. Such IPs do not know whether the programmed DMA addresses are virtual addresses or physical addresses. The integration guide of such silicon won't introduce a design forcing such IPs to be integrated with most significant bits wired to 1s (ex, same as bit 48).
However in IOMMU specification, it requires fault to be generated for virtual addresses whose most significant bits are not compliant to the RISC-V virtual address requirement (e.x., bit 63-48 should be same as bit 48 for Sv48, etc.). When an input address is reported as fault, iotval/iotval2 in the fault queue should be filled in with full 64-bit input address, while actually, software and hardware are only capable of recording masked DMA bus addresses.
This issue causes serious application problems in the operating system. When an IOMMU implementation is implemented to be compliant to the specification w/o DMA_MASK awareness, fault could be required to be reported for non-compliant virtual addresses whose most significant bits are not equal to bit 48. Then we can see wrong fault to be generated in Linux preventing remapped DMA transfers to be submitted from such DMA masters whose DMA_MASK is not 64-bit and wires most significant bits of its output DMA addresses to 0s. A stupid workaround could be to wire those bits to bit 48, then another compliance problem can be seen in the IOMMU fault queue, which could contain a fault report with most significant bits wired to 1s in iotval/iotval2 while iotval/iotval2 should be physical addresses whose most significant bits should be 0s.
IMHO, IOMMU specification should introduce DMA_MASK capability indicating supported input address of the IOMMU device,  and a similar DMA_MASK field in the device context indicating supported DMA address width of the DMA master device. Most significant bits beyond min(capabilities.DMA_MASK, DC.DMA_MASK) are allowed to be all zeros (probably should all zeros or all ones to allow design variations). And the virtual address sanity check should be bounded into the affected DMA_MASK range, for the address bits beyond the affected DMA_MASK range, all checks should be ignored or we can just apply a simple check validating if all such bits equal to bit[DMA_MASK] like all other DMA remapping silicon design do. In fault queue, masked DMA addresses should also allowed to be recorded into iotval/iotval2 fields.

The IOMMU provides the address that was submitted for address translation in the fault record. Software may apply masks as appropriate to the reported addresses .

The addresses presented to the IOMMU are addressses generated by the IP. If the IP cannot generate an address beyond say 16-bits then the IOMMU would not see any addresses requested for translation bits beyond what the IP can generate. There is no requirement to wire most significant bits to all 1s etc.

Then we may introduce a configurable "DMA_MASK" option into the reference model, ignoring significant bits checking if it resides beyond the configured DMA_MASK.

Then we may introduce a configurable "DMA_MASK" option into the reference model, ignoring significant bits checking if it resides beyond the configured DMA_MASK.

That would be incorrect thing to do. The IOMMU should prevent misbehaving, misprogrammed and/or malicious devices from accessing memory that they are not authorized to access. Masking the address will in best case hide the misprogramming and in worst case hide the malicious behavior or misbehavior.

The following code introduces wrong fault in Linux, preventing such DMA masters to be used:
    // 1. Let a be satp.ppn × PAGESIZE, and let i = LEVELS − 1. PAGESIZE is 2^12. (For Sv32,
    //    LEVELS=2, For Sv39 LEVELS=3, For Sv48 LEVELS=4, For Sv57 LEVELS=5.) The satp register
    //    must be active, i.e., the effective privilege mode must be S-mode or U-mode.
    if ( iosatp.MODE == IOSATP_Sv32 && SXL == 1 ) {
       ...
        // When `SXL` is 1, the following rules apply:
        // * If the S/VS-stage page table is not `Bare` then a page fault corresponding to
        //   the original access type occurs if the `IOVA` has bits set beyond bit 31.
        mask = (1UL << (64 - 32)) - 1;
        masked_upper_bits = (iova >> 32) & mask;
    }
    if ( iosatp.MODE == IOSATP_Sv39 && SXL == 0 ) {
        ...
        mask = (1UL << (64 - 38)) - 1;
        masked_upper_bits = (iova >> 38) & mask;
    }
    if ( iosatp.MODE == IOSATP_Sv48 && SXL == 0 ) {
        ...
        mask = (1UL << (64 - 47)) - 1;
        masked_upper_bits = (iova >> 47) & mask;
    }
    if ( iosatp.MODE == IOSATP_Sv57 && SXL == 0 ) {
        ...
        mask = (1UL << (64 - 56)) - 1;
        masked_upper_bits = (iova >> 56) & mask;
    }
    // Instruction fetch addresses and load and store effective addresses,
    // which are 64 bits, must have bits 63:<VASIZE> all equal to bit
    // (VASIZE-1), or else a page-fault exception will occur - for SXL=0
    // Do the address is canonical check - for SXL=0
    // For SXL = 1 check bits 63:32 are all 0
    if ( (masked_upper_bits != 0 && masked_upper_bits != mask && SXL == 0) ||
         (masked_upper_bits != 0 && SXL == 1) ) goto page_fault;

IMO, we should alter this piece a code a bit to allow an SoC specific DMA_MASK to be configured to prevent wrong fault to be generated for the DMA masters whose address width is less than 39, or less than 48.
This is useful when a verification TB is created with IOMMU + DMAC (address width is less than 39/48) + reference model.

IMO, we should alter this piece a code a bit to allow an SoC specific DMA_MASK to be configured to prevent wrong fault to be generated for the DMA masters whose address width is less than 39, or less than 48.

Consider that a DMA master can generate only generate addresses less than 48 bit, say 16-bit wide addresses. Such a DMA master can only generate addresses 0x000000000000 through 0x00000000FFFF legally. When Sv48 is in use, all of these addresses are legal addresses. The range of legal addresses for Sv48 are 0x0000'0000'0000'0000 to 0x0000'7FFF'FFFF'FFFF and 0xFFFF'8000'0000'0000 to 0xFFFF'FFFF'FFFF'FFFF. Could you please give an example of such an address?

Real issue is seen against a DMAC in an SoC design, whose master can only support maximum 44-bits, DMAC designer then wires higher bits of the DMA addresses to 0s.
When we use such DMAC in Linux kernel with IOMMU remapping enabled, following kernel panic can be seen due to IOMMU VA checking logic, preventing a valid DMA transfer to be performed:

OK, I see you mean 0x7fff_ffff_x000 shouldn't be a valid address for such kind of DMA device due to its driver doesn't invoke dma_set_mask(44). So you mean there is no worry about seeing an input address between 0xFFFF'8000'0000'0000 and 0xFFFF'FFFF'FFFF'FFFF. And when such an test bench is created, input address stimuli shouldn't controlled in the TB side rather than in the IOMMU reference model.

One more concern is related to the IOMMU device capability. What if the IOMMU only accepts 44-bits input address, and the DMA masters are configured to use maximum 44-bits input address as well.
In such a case, shall we introduce such kind of capability in the IOMMU reference model?

OK, this makes root cause clearer.
Thanks and best regards.

For PAS field, since it reflects the bit width of DMA master or bus capability the IOMMU is connected to.
For DMA masters and bus interconnects, higher bits will always be truncated to 0s, the padding rule is not compatible with RISC-V virtual addresses.
Thus PAS actually reflects the bit width of both the input address (could be virtual) and the output address, it actually is not "physical".
Shall we use bus address size of dma address size instead of PAS?

For PAS field, since it reflects the bit width of the DMA masters or the bus interconnects which the IOMMU is connected to.

The PAS field reflects the physical address space addressable by the IOMMU and not the bit width of DMA masters.

Not sure if we are synchronized on the same page. Let me describe the scenarios I'm considering of.
Considering an Soc system, DMA is capable of addressing 40-bit DMA addresses. After being translated by the IOMMU, the 40-bit is translated into 44-bit bus addresses to be connected to the bus interconnects.

In OSen, when the DMA master is being programmed using a not-bare DMA remapping facility (IOMMU), the 40-bit dma_mask will be applied to the virtual addresses.
The application problem is:
Considering a scenario, that SoC designs want to combine multiple DMA masters into a sub IO networking with bus interconnects to save the number of the required SIDs:

Considering an Soc system, DMA is capable of addressing 40-bit DMA addresses. After being translated by the IOMMU, the 40-bit is translated into 44-bit bus addresses to be connected to the bus interconnects (PAS is 44).

The PAS is not related to any of this. The PAS in the specification is what the IOMMU can address.

In the first scenario, how could IOMMU to limit the width of the input addresses? I could only see PAS in the IOMMU specification.

The driver of DMAC1 should only program an address below 2^40 and the driver of DMAC0 an address below 2^44.

For the second scenario, when the DMA masters issue the DMA requests with the VAs whose higher bits (bit 38 or bit 47 is one concerning with Sv39 or Sv48) could be 1, how could the VA bus interconnects restore the higher bits if the DMAC0 / DMAC1 truncate the DMA addresses out?

If the bus of a DMA master is 40 bit wide then it should not be programmed with an address that is wider than 40 bits. Such device will likely not even have registers to hold an address wider than 40 bits.

Since there is no input address width configurable in IOMMU, should the VA bus restores the address back to 64-bit (bit 63-44 for DMAC0 and bit 63-40 for DMAC1)? Or if we only need to restore the VA address back to 44-bit, how the VA bus interconnect pads the higher bit 40-43 for the DMAC1?

Such buses and interconnects are outside the scope of the IOMMU to specify.

The driver of DMAC1 should only program an address below 2^40 and the driver of DMAC0 an address below 2^44.

For Sv39, bit-38 = 1 is a valid address as 38 is smaller than 40 or 44, and OS kernel can have an DMA address remapped to bit-38 = 1 region. And bit 39 - cpu bus width (ex, 39 - 63) could be padded with bit-38.
When this address is being programmed to the DMA master, the higher bits (bit 40~63 for DMAC1 and bit 44-63 for DMAC1) could be truncated by the DMA controller.
Then the IOMMU will get an address with bit 38-39 is 1 and 40-63 padded with 0 for DMAC1, an address with bit 38-43 is 1 and 44-63 padded with 0 for DMAC0. From IOMMU's point of view, is such a VA a valid Sv39 address?

Then the IOMMU will get an address with bit 38-39 padded with 1 by OS and 40-63 truncated to 0 by DMAC1, an address with bit 38-43 padded with 1 by OS and 44-63 truncated to 0 by DMAC0. From IOMMU's point of view, is such kind of VA a valid Sv39 address?

When mode is configured as Sv39/Sv48/Sv57, the VA must be a 64-bit address. There are only two VA lengths - 64 and 32 - supported by the IOMMU. The addresses where bits 63:39 do not match bit 38 are not valid virtual addresses.
Since the devices in this example are not 64-bit capable, they cannot be programmed with a 64-bit VA. They may be programmed with a PA or a GPA. If a VA needs to be used then the OS has to use Sv48 or Sv57 and map the VA below 2^40/2^44 for such devices.

Hi, I drew a bug scenario chart below:

And I'll get back to you after correctly organizing my words. Thanks for the patience.

For such a device, the DMA width should be limited to 39 bits and not 40 bits. Alternatively, one can use Sv48 mode.
For a device that trucates addresses, any address negative address such as 0xFFFFFFC000100000 is an invalid. Since these devices cannot preserve the upper bits and instead replace them with 0, only positive addresses can be used with such devices.
For Sv39, the range of legal addresses is as follows:

For such devices that replace the upper bits with 0, the range of valid addresses is - 0x0000000000000000 to  0x00007FFFFFFFFFFF. Specifically the address 0x000000C000100000 is a non-canonical and illegal address.

For a device that truncates addresses, any address negative address such as 0xFFFFFFC000100000 is an invalid. Since these devices cannot preserve the upper bits and instead replace them with 0, only positive addresses can be used with such devices.

If we use top bits ignorance in IOMMU, the negative addresses could also be valid for such devices.

When the IOVA is a VA, the rules for VA translation apply. This includes checking for validity of the VA. Such truncated/invalid VAs will not be accepted by x86 IOMMUs. For ARM IOMMUs such truncations may also lead to the wrong TTB being used for translation i.e. get translated by TTB0 instead of TTB1.

For ARM IOMMUs such truncations may also lead to the wrong TTB being used for translation i.e. get translated by TTB0 instead of TTB1.

ARM STE contains both TTB0 and TTB1. Shouldn't RISC-V IOMMU take care of kernel space VA?

ARM STE contains both TTB0 and TTB1. Shouldn't RISC-V IOMMU take care of kernel space VA?

Unlike ARM architecture that allows setting up two pages tables - one which is used when upper address bits are 0 and one which is used when upper address bits are 1 - the RISC-V virtual memory system has a single page table which is used to map both forms of addresses. Whether kernel space VAs are mapped with upper address bits set to all 1 or all 0 is a software convention. The software convention in most 64-bit OSs including linux has been to map kernel VA with upper address bits as all 1 i.e. as negative addresses. As noted in the address map I pasted above a 64-bit address space has two distinct ranges of valid virtual addresses - a positive range and a negative range. Separating them is a range of invalid/non-canonical addresses. There is no limitation in using valid addresses from either the negative or positive address sub-ranges.

There is no limitation in using valid addresses from either the negative or positive address sub-ranges.

When a buffer is allocated in the kernel heap (ex., kmalloc), and later turned into a direct IO buffer passed to the DMA. The DMA could treat this VA as sanitized VA and issue an IO bus RDWR out. While this could make IOMMU to report a failure as BUS might truncate the address, leaving higher bits zeroed. If IOMMU couldn't ignore the higher bits its incoming connector doesn't support, but treating all incoming VA as a whole 64-bit value, how could IOMMU handle this address?
How this VA can be correctly translated by IOMMU without any performance downgrade? IMO, the fastest way is to ignore the higher bits where no one cares them in the entire system.

A device that truncates addresses is not compatible with shared virtual addressing and the iova cannot be a VA. It can be a GPA or a SPA. In an earlier post there was a question about TTB0 and TTB1. Kernel VA with upper bits set are only mapped in TTB1 and when the device truncates its address the iommu in such systems would incorrectly use TTB0.

Let me try to use a table to describe the ambiguity.
There could be 2 solution to approach when DMA address size < 64-bit.

Sign extends the highest bits of the DMA address and compares it with the correct virtual address.
Truncates the correct virtual address and compares it with the DMA address.
Considering the IOMMU only support Sv39 and Sv48 for simplicity.

For approach 1:

DMA address size
Translation mode
Negative address
Extended bit
Fault
Descriptions

>= 48
Sv39
No
VA[38]
No

>= 48
Sv39
Yes
VA[38]
No

>= 48
Sv48
No
VA[47]
No

>= 48
Sv48
Yes
VA[47]
No

< 48 && >= 39
Sv39
No
VA[38]
No

< 48 && >= 39
Sv39
Yes
VA[38]
No

< 48 && >= 39
Sv48
No
VA[47]
No
VA[47] is 0 (valid)

< 48 && >= 39
Sv48
Yes
VA[47]
Yes
VA[47] is 0 (invalid)

< 39
Sv39
No
VA[38]
No
VA[38] is 0 (valid)

< 39
Sv39
Yes
VA[38]
Yes
VA[38] is 0 (invalid)

< 39
Sv48
No
VA[47]
Yes
VA[47] is 0 (invalid)

< 39
Sv48
Yes
VA[47]
Yes
VA[47] is 0 (invalid)

For approach 2:

As SoC can easily pad an invalid VA into a valid VA (NO. 8/9/10/12/13/14/15/16, please refer to NO. 8/12).

Taking number 8 as an example. The device is only capable of holding 47 bits. This violates the rule:
"The device must be capable of holding and generating n bits if the address translation mode is Sv< n >"
There is no amount of "fixing" that the SoC or the IOMMU can do to make this device compatible with Sv48 as it can only address 2^47 address range out of the 2^48 valid address range.


Syntax highlighting

Hey! This is a great start! Thank you.
It'd be great if buf could provide syntax highlight, much like what this extension does https://marketplace.visualstudio.com/items?itemName=zxh404.vscode-proto3

I had copy and paste the highlight and snippets from vscode-proto3 into my forked vscode-buf repo, if you need, you can download the source code and compile it yourself.

Like https://github.com/bufbuild/vscode-buf/pull/19 suggests, we won't be working on this feature in this repository. We have big plans for a larger IDE integration story, which includes implementing the Language Server Protocol (LSP) for Protobuf (described in our roadmap).
As of the latest release (3.16), LSP actually supports syntax highlighting, so this feature will likely exist in a different place that isn't VSCode-specific (the LSP implementation applies to many more editors, for example).
I'll close this issue for now since there's nothing actionable in vscode-buf.


Tom Hanson - LeedsJS event added

Description of changes:

Added Bio markdown file and avatar image
Added LeedsJS event - I'll update closer to the time with a title and short bio of the talk.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@tmhn you're missing a ' to delineate the end of your bio. Can you please fix this. Otherwise, looks good 👍

@tmhn you're missing a ' to delineate the end of your bio. Can you please fix this. Otherwise, looks good 👍

Good spot @harrysolovay thanks!

@tmhn I responded to your email about the event. Will keep this open to track progress. Also, would be great to get on a call this week if you're available.

@tmhn we've added an event description page (looks like https://amplify.aws/community/events/2019/08/01/jamstack). It would be great if you can add a description of what you're going to be presenting, and at what date and time. Thanks!

@tmhn just following up here.

@tmhn can you please sync your fork with the upstream so that the TravisCI config is present (which will result in the checks passing).

Your event has been approved. You will be receiving a package in the mail soon.


Fix notebooks

This fixes a few that had bad lines, as well as letting us skip the one that's supposed to have SyntaxErrors.

All the failures are from the Python-AWIPS notebook, which I think is having problems due to EDEX server. Merging and will address in the future as necessary.


Close #196

Thanks! Could you make the commit message more descriptive? You can do this by using the amend option with git commit: git commit --amend -m "my new message" and doing a force push git push --force .... afterwards.
I'll take a look at the file changes you made tomorrow.

Das ist wohl aus meinem Mist gewachsen :) I do this all the time, should we always make them more descriptive? I mean, GitHub already links to the corresponding issue

The problem is local browsing history. Also, you're always one click away from knowing what happened. A commit history like

Closes #123
Closes #323
Closes #123

is simply not descriptive enough. A good example how to style your commit messages can be found in the flynn repository: https://github.com/flynn/flynn


Fix CUDA HAL bug and enable more execution tests

depends on https://github.com/google/iree/pull/5293

depends on #5293

Never mind, I rebased


Add Coding Style to Contributing.md and editorconfig

Took this from the ASP.NET Core repo.
I think we could apply the same rules to our code. Also a .editorconfig would be nice.
Coding guidelines
:grey_exclamation: The content of the code that we write.
Coding style guidelines – general
The most general guideline is that we use all the VS default settings in terms of code formatting, except that we put System namespaces before other namespaces (this used to be the default in VS, but it changed in a more recent version of VS).

Use four spaces of indentation (no tabs)
Use _camelCase for private fields
Avoid this. unless absolutely necessary
Always specify member visibility, even if it's the default (i.e. private string _foo; not string _foo;)
Open-braces ({) go on a new line
Use any language features available to you (expression-bodied members, throw expressions, tuples, etc.) as long as they make for readable, manageable code.

This is pretty bad: public (int, string) GetData(string filter) => (Data.Status, Data.GetWithFilter(filter ?? throw new ArgumentNullException(nameof(filter))));

Usage of the var keyword
The var keyword is to be used as much as the compiler will allow. For example, these are correct:
var fruit = "Lychee";
var fruits = new List<Fruit>();
var flavor = fruit.GetFlavor();
string fruit = null; // can't use "var" because the type isn't known (though you could do (string)null, don't!)
const string expectedName = "name"; // can't use "var" with const

The following are incorrect:
string fruit = "Lychee";
List<Fruit> fruits = new List<Fruit>();
FruitFlavor flavor = fruit.GetFlavor();

Use C# type keywords in favor of .NET type names
When using a type that has a C# keyword the keyword is used in favor of the .NET type name. For example, these are correct:
public string TrimString(string s) {
    return string.IsNullOrEmpty(s)
        ? null
        : s.Trim();
}

var intTypeName = nameof(Int32); // can't use C# type keywords with nameof

The following are incorrect:
public String TrimString(String s) {
    return String.IsNullOrEmpty(s)
        ? null
        : s.Trim();
}

Cross-platform coding
Our frameworks should work on CoreCLR, which supports multiple operating systems. Don't assume we only run (and develop) on Windows. Code should be sensitive to the differences between OS's. Here are some specifics to consider.
Line breaks
Windows uses \r\n, OS X and Linux uses \n. When it is important, use Environment.NewLine instead of hard-coding the line break.
Note: this may not always be possible or necessary.
Be aware that these line-endings may cause problems in code when using @"" text blocks with line breaks.
Environment Variables
OS's use different variable names to represent similar settings. Code should consider these differences.
For example, when looking for the user's home directory, on Windows the variable is USERPROFILE but on most Linux systems it is HOME.
var homeDir = Environment.GetEnvironmentVariable("USERPROFILE")
                  ?? Environment.GetEnvironmentVariable("HOME");

File path separators
Windows uses \ and OS X and Linux use / to separate directories. Instead of hard-coding either type of slash, use Path.Combine() or Path.DirectorySeparatorChar.
If this is not possible (such as in scripting), use a forward slash. Windows is more forgiving than Linux in this regard.
When to use internals vs. public and when to use InternalsVisibleTo
As a modern set of frameworks, usage of internal types and members is allowed, but discouraged.
InternalsVisibleTo is used only to allow a unit test to test internal types and members of its runtime assembly. We do not use InternalsVisibleTo between two runtime assemblies.
If two runtime assemblies need to share common helpers then we will use a "shared source" solution with build-time only packages. Check out the some of the projects in https://github.com/aspnet/Common/ and how they are referenced from other solutions.
If two runtime assemblies need to call each other's APIs, the APIs must be public. If we need it, it is likely that our customers need it.
Async method patterns
By default all async methods must have the Async suffix. There are some exceptional circumstances where a method name from a previous framework will be grandfathered in.
Passing cancellation tokens is done with an optional parameter with a value of default(CancellationToken), which is equivalent to CancellationToken.None (one of the few places that we use optional parameters). The main exception to this is in web scenarios where there is already an HttpContext being passed around, in which case the context has its own cancellation token that can be used when needed.
Sample async method:
public Task GetDataAsync(
    QueryParams query,
    int maxData,
    CancellationToken cancellationToken = default(CancellationToken))
{
    ...
}

Extension method patterns
The general rule is: if a regular static method would suffice, avoid extension methods.
Extension methods are often useful to create chainable method calls, for example, when constructing complex objects, or creating queries.
Internal extension methods are allowed, but bear in mind the previous guideline: ask yourself if an extension method is truly the most appropriate pattern.
The namespace of the extension method class should generally be the namespace that represents the functionality of the extension method, as opposed to the namespace of the target type. One common exception to this is that the namespace for middleware extension methods is normally always the same is the namespace of IAppBuilder.
The class name of an extension method container (also known as a "sponsor type") should generally follow the pattern of <Feature>Extensions, <Target><Feature>Extensions, or <Feature><Target>Extensions. For example:
namespace Food {
    class Fruit { ... }
}

namespace Fruit.Eating {
    class FruitExtensions { public static void Eat(this Fruit fruit); }
  OR
    class FruitEatingExtensions { public static void Eat(this Fruit fruit); }
  OR
    class EatingFruitExtensions { public static void Eat(this Fruit fruit); }
}

When writing extension methods for an interface the sponsor type name must not start with an I.
Doc comments
The person writing the code will write the doc comments. Public APIs only. No need for doc comments on non-public types.
Note: Public means callable by a customer, so it includes protected APIs. However, some public APIs might still be "for internal use only" but need to be public for technical reasons. We will still have doc comments for these APIs but they will be documented as appropriate.

@abergs I love it! Looks pretty similar to the .NET Core coding style.
There is only one thing that I would suggest to be different.
FruitFlavor flavor = fruit.GetFlavor();
Use here not var because the returning type is not obvisious when you just reading the code or when you are not familiar with the API.
What do you think?

I understand your perspective.
So only using var for primitive types?
Also; I'm open to allowing the inverted if statements in the Cert/Crypto code. I actually found it to be more readable in certain scenarios.

Use var when the declaring type is obvious e.g.:
var fruit = "Lychee"; var fruits = new List<Fruit>(); var metadataService = new MDSMetadata(); var otherService = OtherService.Create(...); // static factory method var myInt = 5;var mylong = 5L;
A return value from a function is usually hard to know when you read the code - even the compiler accepts this and infer the type. There some exception to this like MyService.IsEnabled() where you would expect a bool.

Hi, is this still a thing ? I'm looking for side projects and I'd be interested in participating in this (creating the .editorconfig and fixing the code where needed).
Some thoughts I had on the matter while reading this issue and the code:
var usage
I agree with @CodeTherapist on the fact that var should not be used when the type is not explicitly apparent. When the type is obvious I like to still avoid using var but it's more of a personal preference, and using var would also be fine.
Async method patterns: Use ConfigureAwait
When using await, the awaited task should be called with ConfigureAwait(false).
The following is incorrect
crlFile = await DownloadData(cdp);

Use this instead:
crlFile = await DownloadData(cdp).ConfigureAwait(false);

This will help performance by reducing thread switching and reduce chances of deadlocks in applications that use a SynchronizationContext.
Explicit namespace usage
Specifying types with their full namespaces should be avoided, unless required (for resolving a class name conflicts for example.
The following is incorrect:
byte[] data = System.Convert.FromBase64String(conformanceRootFile);

This version is correct:
byte[] data = Convert.FromBase64String(conformanceRootFile);

@Shtong This is till a thing! I absolutely welcome your contributions on this.

A few other things that crossed my mind while starting to format the code:
No more than one statement per line
To improve readability, there should not be more than one statement per line.
This is incorrect:
if(condition) Action();

This is correct:
if(condition)
    Action();

Do not swallow generic exceptions
When you do not plan to rethrow an exception you caught, do not write a catch block that does not specify a specific exception type. Catch a more precise exception type, and/or use when clauses to narrow down the exceptions you want to catch.
These are incorrect:
catch(Exception ex)
{
    // ... (no rethrow)
}
catch
{
    // ... (no rethrow)
}

Do not create public fields
This follows the general good practices for C# API design. Make your fields private and make them accessible through a public property instead.

What are your thoughts on these?

I'm not sure about "Do not swallow generic exceptions".
In certain scenarios you really do expect a "ON ERROR CONTINUE" ;)
But I think we should prefer specific exceptions rather than generic.
I think the largest question here is to keep the inverted if's in the cert code.
if (true == someCondition)
The popular C# way is:
if (someCondition == true)
I actually do believe those complicated flows & conditions are easier to read with the inverted style and should be allowed, but we should generally prefer the popular way.

I gotta say, I'm not used to inverted ifs and it is pretty weird to read :) I didn't say anything in my previous messages because it's really a matter of personal style, but it's true that this order is very unusual in the C# world, and it will probably look weird to other people used to read C#. So, I would personally vote for a non-inverted style.
About exceptions, I agree that we may find some specific instances where swallowing generic exceptions will be justified. We can allow this in a case by case basis, and ask that there is a comment to explain why it is justified, or write a log message so we can have a hint about what's going on while debugging.


JSON output type produced decimal number instead of integers

Test e.g. with the query SELECT date_part('month', somedate).
Set output type as JSON
In result you will have the month number as e.g. 12.0 (December) instead of just 12.

@jefim is this in correct Task? There's no selection for output type in the Task.


👍  Replace input() and related function

Support proper typings
Support JavaScript/TypeScript callback as a completion function


Add "Allocated" tab to stock item view

Show a list of where this stock has been allocated

Build orders
Sales orders

This has now been implemented


Godot crash on Window switch while game running

running:
/home/.../projects/games/godot/bin/godot.x11.tools.64 -path /home/.../projects/games/client -rdebug localhost:6007 -p 128x100 res://main.scn
ERROR: set_item_checked: Index p_idx out of size (items.size()).
   At: scene/gui/popup_menu.cpp:591.
********* listening on port 6007
OK! 17
has connection!
has connection!
shit?: Connection reset by peer
ERROR: read: Server disconnected!

   At: drivers/unix/stream_peer_tcp_posix.cpp:276.
pre-removing print handler...
removing print handler...
found
print handler list is (nil)

OS Ubuntu 14 - 64bit
1.Start Godot, open project and run the game.
2.The game has the focus, select godot in the background.
3.Game window is now behind the godot window.
4.Go to the left ubuntu bar press the godot process.
5.Select the running game, now godot crashes but the game is still running.
Maybe again some strange nvidia driver issue?

can't reproduce, most likely driver issue

I will close as not enough information was given to reproduce. Repoen if more info to reproduce is added

Can't reproduce either (though not using Ubuntu/Unity so I can't really test point 4 as it was done when finding the bug).

@AlexHolly
Your problem may be caused by many 3d applications running (including Unity (Ubuntu interface)).

You can try to run your game while the script editor is active (not 2d nor 3d).
You can try to use Xubuntu or Lubuntu.

what's the window manager? we saw this on a "mint linux" yesterday..
On 5 February 2016 at 12:55, Algrin6<EMAIL_ADDRESS>wrote:

@AlexHolly https://github.com/AlexHolly
Your problem may be caused by many 3d applications running (including
Unity (Ubuntu interface)).

You can try to run your game while the script editor is active (not 2d
nor 3d).
You can try to use Xubuntu or Lubuntu.

—
Reply to this email directly or view it on GitHub
https://github.com/godotengine/godot/issues/3522#issuecomment-180412806.

I use Unity...
I can't confirm 1. but I can add one more thing, sometimes the godot windows don't get stacked in the left bar in that case it is (almost?) never crashing.
But when it stacks and I have to choose which godot window I want it's crashing.
I will try to test 2.

I use Unity...

What for Beckett's sake are you doing here then?! [/joke]

:D jeah at least I'm not on windows anymore hahah

I get this too
(Xfce Manjaro)

Can anyone on a system that can reproduce this get a stack trace of the
crash?
On 17 February 2016 at 19:19, Nuno Donato<EMAIL_ADDRESS>wrote:

I get this too
(Xfce Manjaro)
—
Reply to this email directly or view it on GitHub
https://github.com/godotengine/godot/issues/3522#issuecomment-185432698.

Sorry, I was comenting on another issue I selected the wrong tab. I do
not experience this issue :)
Às 22:21 de 17-02-2016, punto- escreveu:

Can anyone on a system that can reproduce this get a stack trace of the
crash?
On 17 February 2016 at 19:19, Nuno Donato<EMAIL_ADDRESS>wrote:

I get this too
(Xfce Manjaro)
—
Reply to this email directly or view it on GitHub

https://github.com/godotengine/godot/issues/3522#issuecomment-185432698.

—
Reply to this email directly or view it on GitHub
https://github.com/godotengine/godot/issues/3522#issuecomment-185433541.

--
Nuno Donato
<EMAIL_ADDRESS>| 966956602
estúdio digital http://www.estudiodigital.pt
www.estudiodigital.pt
Programação e Artes Digitais

Bump, can anyone reproduce it in the end?

Can't reproduce with Godot_v2.1.2-stable_x11


[SPARK-45888][SS] Apply error class framework to State (Metadata) Data Source

What changes were proposed in this pull request?
This PR proposes to apply error class framework to the new data source, State (Metadata) Data Source.
Why are the changes needed?
Error class framework is a standard to represent all exceptions in Spark.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Modified UT.
Was this patch authored or co-authored using generative AI tooling?
No.

cc. @MaxGekk Would you mind taking a look? Thanks in advance!

The test failure happened in Run documentation build and it doesn't seem to be related.
https://github.com/HeartSaVioR/spark/actions/runs/7005020036/job/19053999542

@MaxGekk Would you mind taking a look? @srielau helped me to figure out good SQL state values for these error classes, and also made some recommendation. Please let me know if you feel more comfort to let me get sign-off from @srielau before asking you for sign-off. Thanks!

cc. @cloud-fan @HyukjinKwon to open more chance to be reviewed.

@MaxGekk @beliefer Would you mind taking another round of review? Thanks!

Just realized that the failure is relevant. Will update.

@MaxGekk Mind having a final review and sign-off? Thanks in advance!

@HeartSaVioR I will look at it today. Sorry, I haven't had a chance to review it before since I was in a business trip.

No worries, thanks for the explanation :)

@HeartSaVioR Could you re-run only the GA Run / Linters, licenses, dependencies and documentation generation to make sure everything is ok.

https://github.com/HeartSaVioR/spark/actions/runs/7111211710/job/19361709611
Kafka test seems to be flaky; it isn't related to the change.
https://github.com/HeartSaVioR/spark/actions/runs/7111211710/job/19358939486
Warning, treated as error:
don't know which module to import for autodocumenting 'apply_batch' (try placing a "module" or "currentmodule" directive in the document, or giving an explicit module name)
make: *** [Makefile:35: html] Error 2
                    ------------------------------------------------
      Jekyll 4.3.2   Please append `--trace` to the `build` command
                     for any additional information or backtrace.
                    ------------------------------------------------

Doesn't seem to be related.

I'm going to merge as I don't see any relationship with the failure.


Add type-checking support for SQLModel types.

Added Type Checking Support for SQLModel Classes
Description
My changes solve #58 and allow users to directly use SQLModel without type-issues. It passes all tests and shows no typing issues.
Changes
I made many none-obtrusive type changes such as replacing instances of type[DeclarativeBase] with type[Union[DeclarativeBase, SQLModel]]. This alone caused mypy errors do to table not being present on SQLModel which doesn't make sense as it does, so I think this is just poor typing on SQLModel's side. To deal with this wherever model.title is being referenced I explicitly checked if that field was available and raised a ValueError if it was not. Doing this allowed my changes to pass all linting checks.
Checklist

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style of this project.
[ ] I have added necessary documentation (if appropriate).
[ ] I have added tests that cover my changes (if applicable).
[x] All new and existing tests passed.

I'll just leave this here for whoever wants to implement it then. Just needed this for my project.

Could we just add sqlmodel as regular dependency then? I think that's de facto the suggested library for fastcrud.

Yeah I did a bit of research into this and the only way I see that we could truly allow it to be optional is to use the Any type and put from sqlmodel import SQLModel in a try except block. If this is an acceptable approach we could do it, but I cannot find any other workaround for this.

So I did make the Any changes above. I also tried adding in run-time validation with:
...
    if not isinstance(model, DeclarativeBase):
        try:
            from sqlmodel.main import SQLModel, SQLModelMetaclass
            if not isinstance(model, Union[SQLModel, SQLModelMetaclass]):
                raise ValueError(
                    f"Invalid model type. Expected SQLAlchemy DeclarativeBase or SQLModel, "
                    f"but got {type(model).__name__}. "
                    f"Please ensure you're using a valid SQLAlchemy or SQLModel model."
                )
        except ImportError:
            raise ImportError(
                f"Invalid model type. Expected SQLAlchemy DeclarativeBase, but got {type(model).__name__}. "
                f"To use SQLModel, ensure you have installed the 'sqlmodel' package. "
                f"You can install it using 'pip install sqlmodel' or 'poetry add sqlmodel'."
            )

However, it kept failing tests with random model types which I could manually check for, but am not familiar enough with these libraries to confidently say that would not lead to massive unintended side-effects.
Note: ValueError: Invalid model type. Expected SQLAlchemy DeclarativeBase or SQLModel, but got DeclarativeAttributeIntercept. Please ensure you're using a valid SQLAlchemy or SQLModel model.

Also, I would like to suggest adding Makefile to simplify testing, linting, and formatting. I find a universal make format, make lint, make test to be easier to remember than their counterparts like ruff check --fix. Also, isort for import sorting might be a nice addition, not my lib though so do whatever you prefer!

Also, I would like to suggest adding Makefile to simplify testing, linting, and formatting. I find a universal make format, make lint, make test to be easier to remember than their counterparts like ruff check --fix.

I am highly against this, make introduces yet another layer of abstraction. We should stick to poetry and docker compose exec's whenever possible. What you might be interrested in is:
poetry run ruff check fastcrud

So I did make the Any changes above. I also tried adding in run-time validation with:
...
    if not isinstance(model, DeclarativeBase):
        try:
            from sqlmodel.main import SQLModel, SQLModelMetaclass
            if not isinstance(model, Union[SQLModel, SQLModelMetaclass]):
                raise ValueError(
                    f"Invalid model type. Expected SQLAlchemy DeclarativeBase or SQLModel, "
                    f"but got {type(model).__name__}. "
                    f"Please ensure you're using a valid SQLAlchemy or SQLModel model."
                )
        except ImportError:
            raise ImportError(
                f"Invalid model type. Expected SQLAlchemy DeclarativeBase, but got {type(model).__name__}. "
                f"To use SQLModel, ensure you have installed the 'sqlmodel' package. "
                f"You can install it using 'pip install sqlmodel' or 'poetry add sqlmodel'."
            )

However, it kept failing tests with random model types which I could manually check for, but am not familiar enough with these libraries to confidently say that would not lead to massive unintended side-effects.
Note: ValueError: Invalid model type. Expected SQLAlchemy DeclarativeBase or SQLModel, but got DeclarativeAttributeIntercept. Please ensure you're using a valid SQLAlchemy or SQLModel model.

Something like this would be good indeed. I think we could revisit in the future, but for now it looks good to me. Is it actually working with the example in the issue?

Also, isort for import sorting might be a nice addition, not my lib though so do whatever you prefer!

Ruff does this, ruff check --select I --fix. A github action to do this would be nice

Also, I would like to suggest adding Makefile to simplify testing, linting, and formatting. I find a universal make format, make lint, make test to be easier to remember than their counterparts like ruff check --fix.

I am highly against this. Make introduces yet another layer of abstraction. We should stick to poetry and docker compose exec's whenever possible. What you might be interrested in is:
poetry run ruff check fastcrud

I agree. The commands are in contributing.md, we could add them to readme as well to make it easier.

So I did make the Any changes above. I also tried adding in run-time validation with:
...
    if not isinstance(model, DeclarativeBase):
        try:
            from sqlmodel.main import SQLModel, SQLModelMetaclass
            if not isinstance(model, Union[SQLModel, SQLModelMetaclass]):
                raise ValueError(
                    f"Invalid model type. Expected SQLAlchemy DeclarativeBase or SQLModel, "
                    f"but got {type(model).__name__}. "
                    f"Please ensure you're using a valid SQLAlchemy or SQLModel model."
                )
        except ImportError:
            raise ImportError(
                f"Invalid model type. Expected SQLAlchemy DeclarativeBase, but got {type(model).__name__}. "
                f"To use SQLModel, ensure you have installed the 'sqlmodel' package. "
                f"You can install it using 'pip install sqlmodel' or 'poetry add sqlmodel'."
            )

However, it kept failing tests with random model types which I could manually check for, but am not familiar enough with these libraries to confidently say that would not lead to massive unintended side-effects.
Note: ValueError: Invalid model type. Expected SQLAlchemy DeclarativeBase or SQLModel, but got DeclarativeAttributeIntercept. Please ensure you're using a valid SQLAlchemy or SQLModel model.

Something like this would be good indeed. I think we could revisit in the future, but for now it looks good to me. Is it actually working with the example in the issue?

Yes, the issues don't appear for me with my changes with his example code.


How to deal with remote uploads

I really like the functionality the plugins can bring to 51 but I have a setup where I run 51 remote in a docker.
When I run a plugin demanding paths like the add_samples, a user like myself, would expect to be able to add samples from my client computer and not need to know the file system structure of the docker image.
So, is there implemented (or is it feasible to do) a drag n'drop or a file picker for this to work more like how you usually interact with web page uploads?

Ok, I found what I was looking for, the FileView


tandalone Standalone detox-cli` npm package hasn't been updated to address issues with spaces in directories.

Description
The standalone detox-cli npm package hasn't been updated to address issues with spaces in directories.
This is commit that fixes the issue in the detox repo, but the standalone package hosted on npm still has this issue: https://github.com/wix/detox/commit/f28d8ab3c96cf95a7f604b663a257a9fa254b23d
Steps to Reproduce
If you install detox-cli globally as recommended in the installation instructions (npm install -g detox-cli) and try to run detox from a project directory that contains spaces you will get a message saying detox is not installed in this directory (since it stops at the first space).
You can also check /usr/local/bin/detox and see that it is missing the quotes around $DETOX_PACKAGE_JSON_PATH

Not sure why it wasn't updated automatically when change was introduced, just manually updated detox-cli to v7.0.0. Please see if this resolves your issue .

Thanks, the updated package fixes this issue
On Feb 15, 2018 5:05 PM, "Rotem Mizrachi-Meidan"<EMAIL_ADDRESS>wrote:

Not sure why it wasn't updated automatically when change was introduced,
just manually updated detox-cli to v7.0.0. Please see if this resolves your
issue .
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/wix/detox/issues/573#issuecomment-366077021, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AEtO_NHjAKBjA_QSQIv3PH1mMRLg2Cq8ks5tVKoYgaJpZM4SHh7C
.


perf: fulfill promises to upload files to S3 concurrently

Issue #, if available:
#4158
Description of changes:
When uploading multiple files to S3 after running $ amplify publish, those uploads are handled one after the other when they could be handled concurrently. Rather than fulfilling promises to upload each file sequentially, this PR proposes that we let the node runtime handle fulfilling those promises concurrently with Promise.all().
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

I accidentally opened this PR prematurely. Will close for now.


webpack support

Similar request to https://github.com/personality-insights/sunburst-chart/issues/12 for making this library work with webpack

Hey @soumak77 we are updating all the packages to use the v3 API. The Analysis we used to do on the client side with this library is now done at the service level.
There are no plans to update this library since we want people to use v3.

The behaviors from the API are much better than the approximation we were doing here. Remember than the service can learn and get better while this is just an approximation we were doing.

@germanattanasio thanks for the feedback


423 align mqtt cameraconnect to docs

Fixes #423

 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.JonathanVo 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.


Error while processing the global LCZ map

Hi,
I am trying to inject global wudpat lcz (https://zenodo.org/record/7324909/files/lcz_filter_v2.tif) using w2w and  not able to do a successful injection of WUDAPT data (log file has been attached). The same went well with the given sample data.
For you information, I am using the single domain geo_em data at 2 km horizontal resolution.
Is there any way to fix this issue?
Thanks and regards,
Raghu
log.txt

please use the issue template and search the issue tracker (as requested in the issue template) - closing as duplicate of #98

please use the issue template and search the issue tracker (as requested in the issue template) - closing as duplicate of #98


Fix zookeeper event watching, subscription, reconnection

Hi Serejja,
First of all thank you.  I am still getting a panic when applied.  (I will attach the panic to the back end).  Lets give you a quick background on where we originally encountered the problem.

We have a 3 node kafka cluster with a corresponding 3 node zookeeper cluster.
Our dev op team was doing a rolling upgrade to the zookeeper cluster.
When a node was being brought back up that the client was connected to, the code crashed with the
panic documented in the original email.

Our app is a Go-based Microservice that acts as a proxy to several internal services.  We are using Kafka to basically notify our service when some of the data we cache has been invalidated and needs to be evicted.
To reproduce the problem I have been putting our client against a single zookeeper node in our cluster and then taking the zookeeper node up and down.  I can repeatedly reproduce the panic everytime I try to restart the zookeeper node in question.  Note:  The client never goes down while the zookeeper node is down.  It happily processes messages and then writes errors that it cant commit the offset.
I have managed to write a workaround.  (Please forgive me as it probably crude.  I am new to Go and Zookeeper.)  Basically my workaround was to add a channel to the ZooKeeperConfig struct in zk_coordinator.  Then in the trySubscribeChange, I replace the panic with a push of a value to a channel.
if strings.HasPrefix(e.Path, newZKGroupDirs(this.config.Root, Groupid).ConsumerRegistryDir) {
Info(this, "Trying to renew watcher for consumer registry")
consumersWatcher, err = this.getConsumersInGroupWatcher(Groupid)
if err != nil {
this.config.ZKConnectInterrupt <- true
}
} else if strings.HasPrefix(e.Path, fmt.Sprintf("%s/%s", newZKGroupDirs(this.config.Root, Groupid).ConsumerApiDir, BlueGreenDeploymentAPI)) {
Info(this, "Trying to renew watcher for consumer API dir")
blueGreenWatcher, err = this.getBlueGreenWatcher(Groupid)
if err != nil {
this.config.ZKConnectInterrupt <- true
}
} else if strings.HasPrefix(e.Path, this.rootedPath(brokerTopicsPath)) {
Info(this, "Trying to renew watcher for consumer topic dir")
topicsWatcher, err = this.getTopicsWatcher()
if err != nil {
this.config.ZKConnectInterrupt <- true
}
}
I also do the same thing in the in the listenConnectionEvents:
for groupId, watch := range this.watches {
_, err := this.SubscribeForChanges(groupId)
if err != nil {
this.config.ZKConnectInterrupt<-true
}
watch <- Reinitialize
}
Finally when I create the consumer, I listen on this channel and then if there is a problem I close the consumer and the config.Coordinator.Disconnect()
This closes the old connection and re-initializes the consumer group allowing the application to keep going.
Like, I said I am not sure if the right solution.  The challenge have is that when panics are used inside of spun go routines there is no way for the main application to "catch" them.  (I could be wrong .... I am new to go).
Anyways, thanks again for responding to this.   Appreciate the help and please let me know if there is anything I can supply to you to help debug this problem.
    Thanks,
        John

Here is the top of the panic.
panic: zk: could not connect to a server
goroutine 115 [running]:
github.com/stealthly/go_kafka_client.(*ZookeeperCoordinator).trySubscribeForChanges.func1(0xc82013a8a0, 0xc82044c120, 0x749960, 0x33, 0xc8204c0420, 0xc8200320d8, 0xc820032078, 0xc820465880, 0xc820032090, 0xc8200320a8, ...)
/Users/johncarnell1/work/edge-proxy/src/github.com/stealthly/go_kafka_client/zk_coordinator.go:547 +0x9e0
created by github.com/stealthly/go_kafka_client.(*ZookeeperCoordinator).trySubscribeForChanges
/Users/johncarnell1/work/edge-proxy/src/github.com/stealthly/go_kafka_client/zk_coordinator.go:581 +0xa48

Hi John,
given your steps I can't reproduce this on local environment. I tried all sorts of ZK start/stop patterns (e.g. quickly start/stop ZK; stop, wait 1-5 minutes, start again etc) and all I see is "connection refused" messages in stderr which are normal. No panics at all.
Can you please share your Kafka and ZK versions? (I doubt the problem is in Kafka version but it definitely can be ZK version).
I was testing this against Kafka <IP_ADDRESS> and Zookeeper 3.4.6
One more thing worth to mention here:
IMO it makes sense to panic if the coordinator can't refresh watchers after some retries because this way it could miss Zookeeper notifications that should trigger rebalance and so the whole cluster could fail to rebalance.
In your case I'd say you could increase the ZookeeperConfig.ZookeeperTimeout and ZookeeperConfig.MaxRequestRetries values so that coordinator tries harder before it panics.
In general this panic looks like a desired behavior that prevents your cluster from inconsistent state.

Hi Serhy,
Appreciate the efforts.  Here is the info you request.
kafka = <IP_ADDRESS>
zookeeper = 3.4.5
Were you running messages through the platform when you shutdown a
zookeeper node or did you start the application and have a "quiet"
environment. My application was running traffic through when I shutdown the
zookeeper node. Also, I was running in a multinode environment, but for
testing purposes only hook up a single to a single zookeeper node.
I would agree with you about the Panics, however the one thing that I don't
like about Panics especially in asynchronous application is they take away
the ability to intercept a problem and work around it. Our case, it crashes
our server with little opportunity to respond. I do like the strategy
approach you guys laid out and I am wondering if instead of calling a
Panic, you invoke a Strategy that can be overridden by a developer if they
need a to be notified.
I will take a look a the ZookeeperConfig and
ZookeeperConfig.MaxRequestRetries. I will take a look in the code and see
what the default values are for these.
Thanks again for the help,
John Carnell
On Thu, Sep 17, 2015 at 5:01 AM, Serhey Novachenko<EMAIL_ADDRESS>
wrote:

Hi John,
given your steps I can't reproduce this on local environment. I tried all
sorts of ZK start/stop patterns (e.g. quickly start/stop ZK; stop, wait 1-5
minutes, start again etc) and all I see is "connection refused" messages in
stderr which are normal. No panics at all.
Can you please share your Kafka and ZK versions? (I doubt the problem is
in Kafka version but it definitely can be ZK version).
I was testing this against Kafka <IP_ADDRESS> and Zookeeper 3.4.6
One more thing worth to mention here:
IMO it makes sense to panic if the coordinator can't refresh watchers
after some retries because this way it could miss Zookeeper notifications
that should trigger rebalance and so the whole cluster could fail to
rebalance.
In your case I'd say you could increase the
ZookeeperConfig.ZookeeperTimeout and ZookeeperConfig.MaxRequestRetries
values so that coordinator tries harder before it panics.
In general this panic looks like a desired behavior that prevents your
cluster from inconsistent state.
—
Reply to this email directly or view it on GitHub
https://github.com/stealthly/go_kafka_client/pull/159#issuecomment-141016865
.

Hey John,
I've tried both quiet cluster and running traffic (approx. 5k dummy msg/sec) and still can't reproduce that. Not sure what I'm doing wrong :)
Regarding intercepting panics I think we could add something like a PanicHandler (or whatever would we call it) to the ConsumerConfig with the default implementation that would panic as it is now. This way we wouldn't break any existing clients AND would give the ability to handle abnormal situations like this more or less gracefully.
I think I'll create a separate PR with this behavior and let you know.
Thanks!

Uhm, and yes, could you please try testing this locally with ZK 3.4.6? Maybe the issue is hidden somewhere there?

Hey John, can you please take a look at #162 and reply what you think about this approach?
Thanks!

Hi Serhey,
Thanks for the effort.  Part of the challenge with asynchronous solutions
is tracking down when things go bump in the night.
I really like your PanicHandler solution.  It would fit nicely because what
I do today is modified the ZookeeperConfig to accept it a channel that I
listen to and then cleanly shutdown the consumer and disconnect the
zookeeper connection.  Ideally my goal is to detect that there is a problem
with the consumer and either shut it down (without killing the entire
service) or attempt to restart the consumer and let it get to a working
Zookeeper node.
Thanks again and please let me know when the Pull Request is merged and I
will pull down the changes and try them out.
  Thanks,
        John

On Sep 18, 2015 3:28 AM, "Serhey Novachenko"<EMAIL_ADDRESS>wrote:

Hey John,
I've tried both quiet cluster and running traffic (approx. 5k dummy
msg/sec) and still can't reproduce that. Not sure what I'm doing wrong :)
Regarding intercepting panics I think we could add something like a
PanicHandler (or whatever would we call it) to the ConsumerConfig with the
default implementation that would panic as it is now. This way we wouldn't
break any existing clients AND would give the ability to handle abnormal
situations like this more or less gracefully.
I think I'll create a separate PR with this behavior and let you know.
Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/stealthly/go_kafka_client/pull/159#issuecomment-141380467
.

Hi Serhey,
Never mind I see you have already committed the changes.  I will pull them
down and look at it.  Have a good weekend.
Thanks,
John
On Fri, Sep 18, 2015 at 4:28 AM, Serhey Novachenko<EMAIL_ADDRESS>
wrote:

Hey John,
I've tried both quiet cluster and running traffic (approx. 5k dummy
msg/sec) and still can't reproduce that. Not sure what I'm doing wrong :)
Regarding intercepting panics I think we could add something like a
PanicHandler (or whatever would we call it) to the ConsumerConfig with the
default implementation that would panic as it is now. This way we wouldn't
break any existing clients AND would give the ability to handle abnormal
situations like this more or less gracefully.
I think I'll create a separate PR with this behavior and let you know.
Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/stealthly/go_kafka_client/pull/159#issuecomment-141380467
.


Refactor and move token create logic to utils

Instead of passing a claimMap to create a token, now you can config your token by constructing TokenConfig and call CreateToken off this instance.

Replaced CreateEncodedToken by CreateToken
Ran regression tests and ensure existing code are not affected

Another progress towards #335 and #159


GitHub Actions CI fails with ModuleNotFoundError: No module named 'cproton'

11: ======================================================================
11: ERROR: test_message (unittest.loader._FailedTest)
11: ----------------------------------------------------------------------
11: ImportError: Failed to import test module: test_message
11: Traceback (most recent call last):
11:   File "/opt/hostedtoolcache/Python/3.6.13/x64/lib/python3.6/unittest/loader.py", line 428, in _find_test_path
11:     module = self._get_module_from_name(name)
11:   File "/opt/hostedtoolcache/Python/3.6.13/x64/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name
11:     __import__(name)
11:   File "/home/runner/work/qpid-proton/qpid-proton/python/tests/proton_tests/test_message.py", line 25, in <module>
11:     from proton import *
11:   File "/home/runner/work/qpid-proton/qpid-proton/python/proton/__init__.py", line 35, in <module>
11:     from cproton import PN_VERSION_MAJOR, PN_VERSION_MINOR, PN_VERSION_POINT
11: ModuleNotFoundError: No module named 'cproton'

Yeah, that PR is one possible fix. Another one would be to do sudo python3 -m pip install --user python-qpid-proton. Let the tests that were not yet updated simply use Proton from PyPI :p And yet another option would be to put everything the code needs into your cdef and import it through CFFI, so that you don't need swig any more; but that might require lots of work upfront.

Yes, using this approach we can move one by one to using CFFI.


Can't input decimals in some fields

Fields that are intended for property area input (possibly some others) only allow integers.
Entering something like "48.6" or "48,6" triggers a validation message. Should accept both and post-process to a unified format.

Fixed. See commit https://github.com/dimanech/form/commit/7ad082d57f34aafbbbd93ed9aba9b30f4a4d626b for details.

:+1:

:+1:


[FEATURE REQUEST] Get the list of available extensions directly

Hello,
We need to know the extensions supported by your library.
Until now we used the oiio.get_string_attribute ("extension_list") function which returns a std::string. But the problem is that it has to be parsed by us to be used effectively.
Is there a function to get a variable of type std::vectorstd::string, std::map<std::string, std::vectorstd::string> or things like that to directly get the list of usable extensions?
You can find the definition of our function through this commit https://github.com/alicevision/AliceVision/pull/806/commits/ab3c9e3dbb69426268a8563cb8028d26127bcc04.
Or directly here  https://github.com/alicevision/AliceVision/blob/dev/imageProcessing/src/aliceVision/image/io.cpp.
Could you integrate such a function allowing us to use it directly without having to parse it by ourselves ?

The second link is broken.

I think this should work and is fairly compact:
std::map<std::string, std::vector<std::string>> extension_map;  // <-- the result you want
std::string all_extensions = OIIO::get_string_attribute("extension_list");
for (auto oneformat : OIIO::Strutil::splitsv(all_extensions, ";")) {
    auto format_exts = OIIO::Strutil::splitsv(oneformat, ":", 2);
    if (format_exts.size() != 2)
        continue;   // something went wrong
    extension_map[format_exts[0]] = OIIO::Strutil::splits(format_exts[1], ",");
}

But your request is reasonable, I'll encapsulate that in top-level function for convenience.

Proposed fix in #2904


Tigera-operator hostPath

Hello, I have calico installed with tigera-operator in my EKS cluster. Operator itself deployed with helm chart. Now we run some security scanners and found that tigera-operator configured with host-path volume. I checked helm chart template and seems there are no way to configure this setting through values.yaml.  Can you please confirm if mounting hostPath into tigera-operator pods is required.
Thanks
Your Environment

Calico version - 3.24.1
Orchestrator version (e.g. kubernetes, mesos, rkt): EKS 1.23

I understand that Calico Cloud and Calico Opensource are different projects,but still I found this document - https://docs.tigera.io/calico-cloud/operations/comms/pod-security-policy .
And here it mention that tigera-operator not requires hostPath volume.
Thanks in advance

The tigera-operator reads MTU information populated by calico/node from that hostPath, that is all.
I believe the operator will continue to function without that hostpath, but MTU auto-detection might not work as expected, meaning you may need to explicitly configure your MTU in the Installation.

Thanks you @caseydavenport.
Do you know if can configure hostPath for operator somehow ?
I checked and it seems that there are no option for this ( here are volume mount - https://github.com/projectcalico/calico/blob/e40707c5d30c353a78bed67a8c6596656b183121/charts/tigera-operator/templates/tigera-operator/02-tigera-operator.yaml#L68 ).  So I would need to clone chart and manage it by myself, right?

Description why it requires hostPath is enough for me right now. @caseydavenport  Thanks for your assistance


[feature request] config option to allow cheaper recipe

Given that people want to lay very long railroad underwater, and there's never enough slime (unless you use a lot of slime islands in tinkers mod), it would be nice to have the option to have a cheaper version of the recipe - maybe 8 normal rails + slime ball = 8 underwater rails ?

Good idea, can guarantee that the 1.16.5/1.18 versions will get a cheaper recipe, i´ll see about getting it changed in the 1.12 version as well.

Good idea, can guarantee that the 1.16.5/1.18 versions will get a cheaper recipe, i´ll see about getting it changed in the 1.12 version as well.

New version for 1.12 and 1.16 with the suggested cheaper recipe has been added to curseforge.


Prepare next development version.

I'm assuming the deploy docs task will fail until we merge #695


Removes Sql Schema Versions (7,8,9,10)

Description
This PR removes older sql schema versions (7.sql,58.sql,9.sql,10.sql).
Also removed below class files under Features.Storage.TvpRowGeneration folder to solve build error issues
1.CompartmentAssignmentV1RowGenerator          2.DateTimeSearchParameterV1RowGenerator                                   3.NumberSearchParameterV1RowGenerator                                      4.QuantitySearchParameterV1RowGenerator                                        5.ReferenceSearchParameterV2RowGenerator                                    6.ReferenceTokenCompositeSearchParameterV2RowGenerator   7.ResourceWriteClaimV1RowGenerator                                                   8.StringSearchParameterV1RowGenerator                                             9.TokenDateTimeCompositeSearchParameterV1RowGenerator   10.TokenNumberNumberCompositeSearchParameterV1RowGenerator                                                                                11.TokenQuantityCompositeSearchParameterV1RowGenerator   12.TokenSearchParameterV1RowGenerator                                          13.TokenStringCompositeSearchParameterV1RowGenerator        14.TokenTextSearchParameterV1RowGenerator                                 15.TokenTokenCompositeSearchParameterV1RowGenerator        16.UriSearchParameterV1RowGenerator
Addresses [user story #].
User Story 104513: Remove old schema versions from FHIR solution
Testing
Describe how this change was tested.
FHIR Team Checklist

Update the title of the PR to be succinct and less than 65 characters
Add a milestone to the PR for the sprint that it is merged (i.e. add S47)
Tag the PR with the type of update: Bug, Build, Dependencies, Enhancement, New-Feature or Documentation
Tag the PR with Open source, Azure API for FHIR (CosmosDB or common code) or Azure Healthcare APIs (SQL or common code) to specify where this change is intended to be released.
Tag the PR with Schema Version backward compatible or Schema Version backward incompatible or Schema Version unchanged if this adds or updates Sql script which is/is not backward compatible with the code.
[ ] CI is green before merge
Review squash-merge requirements

Semver Change (docs)
Patch|Skip|Feature|Breaking (reason)

Please remove all versions up to 60. Versions can be still present in SchemaVersion.cs.

Please remove all versions up to 60. Versions can be still present in SchemaVersion.cs.

Yes @SergeyGaluzo I will remove all versions up to 60 . But I'm doing it in chunks because it is getting lot of issues when I try to delete all files at once. So I'm deleting 5 to 10 versions at time and solving build issues after that raising PR for same. Same approach I have discussed and finalized with Brendan and Robert.


uwp app using libxml2 can't launch.

Describe the bug
uwp app using libxml2 can't launch.
I have libxml2:x64-uwp 2.9.10#2 installed using vcpkg.
repo to reproduce the bug: https://github.com/HppZ/libxml2-uwp
Environment

OS: [Windows 19042.844]
Compiler: vs2019 16.8.6

To Reproduce
Steps to reproduce the behavior:

vcpkg install libxml2 --triplet=x64-uwp
run the libxml2-uwp app and it can't launch.
https://github.com/HppZ/libxml2-uwp
comment out the call xmlNewTextWriterFilename("test", 1); , rebuild the app and run again, it can launch.

Expected behavior
the app should launch.
Failure logs
Unable to activate Windows Store app '1a2ed2c1-b8c3-4a00-ab03-f5d6312dc55e_kmdshx21vdgze!App'. The App5.exe process started, but the activation request failed with error 'The target process aborted before activation completed. More information may be available in the Debug pane of the Output window (Debug->Windows->Output)'.

@JackBoosY PLEASE help.

I can't repro your issue on my local machine:

I was on master branch.
show I use the latest tag in production env?

@HppZ I'm on latest master too.
Can you provide me the full logs?

libxml2.zip

BTW, I was on master (c47216ac7904b09187c119c7e4d010dcf993e3d5).

Vcpkg package management program version 2021-01-13-d67989bce1043b98092ac45996a8230a059a2d7e
new log: libxml2.zip

I think maybe your local binary is OK so that you can't repro this issue.

building libxml2:x64-uwp succeed on tags/2020.11-1, but apps using it can't pass WACK test.
build libxml2:x86-uwp failed on on tags/2020.11-1.
https://github.com/microsoft/vcpkg/pull/368

@HppZ No, I use the latest generated libxml2.

that is strange.

Please provide more information in Debug->Windows->Output.

https://github.com/microsoft/vcpkg/pull/15787

Can I contact you personally? my email<EMAIL_ADDRESS>

check this output: https://github.com/microsoft/vcpkg/pull/15787#issuecomment-791884690

vcpkg install libxml2 --triplet=x64-uwp
on vcpkg master commit c47216ac7904b09187c119c7e4d010dcf993e3d5
binaries:
x64-uwp.zip

vcpkg install libxml2 --triplet=x86-uwp
c47216ac7904b09187c119c7e4d010dcf993e3d5
App5.zip


Extraneous maglev function

I propose that we get rid of the function Add:
https://github.com/sipb/spike/blob/master/maglev/maglev.go#L109-L111
I think it complicates the api. I feel things would be simpler if only SetWeight were used.

@ed1d1a8d Go for it.


fix: listener condition type of programmed

Description:

Testing done:

Affected area:

Functional Area

New Functionality
[ ]

CI System
[ ]

CLI Tool
[ ]

Certificate Management
[ ]

Control Plane
[ ]

Demo
[ ]

Documentation
[ ]

Egress
[ ]

Ingress
[ ]

Install
[ ]

Networking
[ ]

Observability
[ ]

Performance
[ ]

SMI Policy
[ ]

Security
[ ]

Sidecar Injection
[ ]

Tests
[ ]

Upgrade
[ ]

Other
[ ]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project?

Did you notify the maintainers and provide attribution?

Is this a breaking change?

Has documentation corresponding to this change been updated in the fsm-docs repo (if applicable)?

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (71d62d7) 47.71% compared to head (c506861) 47.71%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@              Coverage Diff              @@
##           release/v1.2     #147   +/-   ##
=============================================
  Coverage         47.71%   47.71%
=============================================
  Files               194      194
  Lines             14874    14874
=============================================
  Hits               7097     7097
  Misses             7732     7732
  Partials             45       45

Flag
Coverage Δ

unittests
47.71% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Include directive unsupported in SSH config

Similar to early versions of Microsoft's version, the extension does not parse the Include directive in the SSH config file. This requires that everything is included in the main config file, but this can be quite disorganised for those who have a lot of different configurations or if version controls are used with the dotfiles and the main config isn't always writable.
Does the ssh library used to support this or will this support be possible with the native client?

ssh config parsing is done independently of the ssh client used, just need to add some special logic to read the Included file and merge it with the main ssh config

Thanks for working on this so quickly! It does work when the include directive points to a single file, but file globs aren't supported right (i.e. wildcards under a directory)?

yeah just found about it :sweat_smile: will create an issue and take a look later


[Enhancement] All button type widgets have the 'button' in them except Radio Widget

Summary
To keep with consistency in widget naming, Radio Widget should also have the word 'button' as is with other button type widget names. And it's an actual button.
Additional Context

Radio is not a button, and we go ahead with doing something like this we will to rethink for checkbox / switch etc. Closing this for now, If in an internal meeting we call in favour of this, we will reopen it


Auto otp readme

Added the Telegram and IFTTT things in readme.

@SRvSaha Added the auto-otp instructions in readme.

Hi @deepak-batra, thanks a lot for the contribution. I will go through it, just one thing, can the setup be a bit easier for end users. Now there are lots of steps to be done, can we automate some them.
Also, another thing is, from IFTTT, is it possible to send customized message to Telegram like SMS_TEXT = "USER_MOBILE_NO:OTP"
If this is possible, we can post the messages in a Centralized Channel and user doesn't have to worry about most of the Telegram related setup.
Never used IFTTT, so need your help. Also, yeah if possible share the APIs used for Async Read. That'll help in searching for .NET Equivalent API in the SDK.
Good work, appreciate it

@deepak-batra Another doubt that I have is, how do we integrate the same with iOS? I could not see any option of iOS SMS Reading.
I saw somewhere that people use Shortcuts App inside iOS for the purpose, can you please check whether it is possible to integrate iOS with Telegram so that similar approach we are taking with IFTTT can be done for Shortcuts App as well

Hi @deepak-batra, thanks a lot for the contribution. I will go through it, just one thing, can the setup be a bit easier for end users. Now there are lots of steps to be done, can we automate some them.

I agree with the number of steps. I took the inspiration from the automation here and twisted around because of privacy concerns.

Also, another thing is, from IFTTT, is it possible to send customized message to Telegram like SMS_TEXT = "USER_MOBILE_NO:OTP"

This will be a major privacy issue, since the phone number and otp the only thing needed to access beneficiary details. Rather than a public channel, it can be a group as well with the IFTTT bot as a member.

If this is possible, we can post the messages in a Centralized Channel and user doesn't have to worry about most of the Telegram related setup.
Never used IFTTT, so need your help. Also, yeah if possible share the APIs used for Async Read. That'll help in searching for .NET Equivalent API in the SDK.

I'll add the APIs here by the night.

Good work, appreciate it

@deepak-batra Alright, thanks. Let's keep the R&D Work. I am planning to deploy v4.2.0 by weekend, so we have a couple of days to see if anything else would be possible which is simpler. Else we'll go ahead with this! What say?

@SRvSaha Sorry, but I forgot another caveat of telegram, user would need to get their api_key & api_hash from telegram.com which is another hassle. I think the email suggestion by @debansur earlier would be better. This would decentralise the design and everyone can handle their own thing. This talks about reading gmail in python and this talks about sending OTP as an sms to an email. That would be straight-forward and won't require the cumbersome telegram setup.
User can keep their email and password in the appsettings.json and there won't be any leakage. LMK and I'll update the PR.

@deepak-batra Yeah sounds good, shall think over it and then we can discuss.

@deepak-batra Hi, due to throttling of IP that started yesterday, there has been some issues. Do you feel Auto OTP will be helpful even now? As IPs are gererally getting throttled after say 100 requests/5 min (data not sure)

Hey, I don't have a strong opinion on this. I'm okay to drop this off as well.

@SRvSaha Hey, I don't have a strong opinion on this. I'm okay to drop this off as well.

Hi, we won't be dropping this, since you already have done a great job! We'll launch it in the next major release v5.0.0

Closing, Reason #68


Update to run Sonar 5.6

Hi,
I have created a new version to run Sonar 5.6. If you could update also the container on docker hub that would be great !

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: Sebastien-Meiffren:x: UbuntuUbuntu 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.

@spiddy : done :)

Merged, thanks for the PR 👍


Support OrderedDict and OrderedSet

These two defy the expectation of the hash functions for Set and Dict objects. We should probably use https://github.com/cjdoris/PackageExtensionCompat.jl to implement a hash_method for these types that respects the ordering of elements.

Alternative, wait until Julia 1.10 is LTS, and use the extension feature. Probably best to implement for StableHashTraits 2.0 in that case (thus 1.* can be compatible with ≥ 1.6 and 2.0 with 1.10 and onwards).


Update README with details about design doc repo

Addresses Issue 78: Add design doc process to documentation.
The PR in the design_docs repo adds much more detail its README about the process. See here.

This looks good!
Should we also mention that we use the GitHub issue tracker and provide guidance for what types of features require a design doc vs issue or both?

Also, what do you think about moving this new section up higher. Maybe a before the section on building the docs?

Looking good.

looks like you need to also push updated readme
Your internal link that uses :ref:... will be broken till we fix #67 but I don’t think we should block this on that.

@andyk looks like I figured out how to get internal linking working.  See if it works for you.
Also, added a blurb about the general development process. Not sure if you read it, but tell me if you want any changes!

Ah, looks like my solution only works for links in the same document and does not fix https://github.com/agentos-project/agentos/issues/67.

Will merge after tests are green.

@nickjalbert I noticed that merging this did not automatically close #78. I think if you use the "Fixes" or "Closes" keyword in a commit message that is part of a PR (e.g., "fixes #78"), then GitHub will automatically link the PR to an Issue and close it when the PR is merged (see the references subsection in these github docs).
I think you can also manually link Issues to PRs using the "Linked Issues" metadata field of an Issue.

Ah, good to know.  Thanks!

Ah, good to know. Thanks!

Also, just found this documentation which covers the syntax for linking to stuff in a diff repo: it's org_name/repo_name#NUM, e.g.: agentos-project/design_docs#5 should link to the discussion for the core abstractions design doc and agentos-project/design_docs#3 should link to the PR for that same design doc.


Explore: Import and upload

We need to have a better understanding of the current Import and upload pattern in order to determine if it is a component, pattern or guidance based on the new definitions.
Definitions
Component
An asset that has been designed and coded

Export is a component because there is a coded modal provided specifically to export

Pattern
Something that can be accomplished in multiple ways utilizing a combination of component(s) with additional design considerations (a recipe of components)

Patterns may provide coded examples, but will not be required to provide code or support every possible instance of a pattern
Dashboards are patterns because you can build a dashboard in many different ways

Various sized tiles
Various components, actions, information within those tiles

Guidance
Overarching direction or instruction that can be applied across an entity

As you move further away from the “core” of the spoke, we may see more detailed guidance and opinion on guidance at the “spoke” levels
Content is guidance because we apply the same principles across all IBM experiences and services

Capitalization rules
How to display dates

Tasks

[x] Read the current Import and upload
[x] Review the current Import and upload code
[x] Answer: Do Import and upload have coded assets? (This might make it a component)
[x] Answer: Are there multiple ways to utilize Import and upload? (This might make it a pattern)
[x] Answer: Could Import and upload be categorized into "common actions" or 'CRUD' (create, read, update, delete)
[ ] Deliverable: Form an opinion on what category Import and upload slot into and the future of the asset. Share with Product PAL team

Review of import and upload
Questions to answer:

Answer: Do Import and upload have coded assets? (This might make it a component)

Yes

A single modal with a drag and drop component and a text input + button for URL upload

Note: The button text alignment has a bug 🐛

Note: there are examples within the Usage docs suggesting utilizing a side panel or Full page view for import and upload actions if there are additional steps needed. However there is no code provided.

Is there an issue to create these versions?

Coded asset

Examples in docs with no code

Answer: Are there multiple ways to utilize Import and upload? (This might make it a pattern)

Yes

Upload a file

Via drag & drop component
Via text input

Component / Flow:

Modal
Side panel
Full page

Answer: Could Import and upload be categorized into "common actions" or 'CRUD' (create, read, update, delete)

They probably don't fit into the CRUD definition, but maybe a "common actions" like Carbon core categorizes them. However, these docs are slightly more detailed than Core
I wonder if Import and upload could be grouped with Export (and download?) as they are actions that interact with the system

Review July 3

Import and upload is a pattern!
Flag modal for deprecation
If this does not exist in Figma, we won't add it to v11 all themes


Annual Review - OpenColorIO

Pending email vote for renewal due to lack of quorum. @carolalynn22 to send information for email.

@yarille to send out vote for renewal; no need for TAC to approve WG within OpenColorIO

Renewal approved via email TAC vote (1/16/2024)

Hi getting ahead of this - will this fall on Nov 13? Just trying to plan around travel etc... :)

Yes - I've corrected the date now. Let @yarille  know if that is a good date for you.


Overhaul literate mode

Now I think mimicking literate Agda is the most sensible way to do everything.
However, things like this are must-do, and can be done by improving org.aya.concrete.remark.CodeAttrProcessor

Depends on #464


Progress bar

Description
For every right tag the user writes in the input field, a progress bar should show their progress.
Notes about progress (no pun intended!) with this issue:

I created a progressBar.js module to take care of the logic
the progress bar changes with user input
the aria-live is also in-sync and according to the logic of the code

Screenshot

Things I'm stuck on:

aria-label does not seem to do anything. Please see comments in progressBar module
aria-valuetext is recommended, but again I can't tell if it's doing anything.
what should the UI show? Only percentage? Or is this a separate issue?
how detailed the screen reader announcements should be. Please see comments in the code.

Update: (I had forgotten that the first rule of aria is "do not use aria"!)
Adding two different span elements solves the aria-label problem mentioned above. Please ignore that concern, I have updated the code with:

            Your Progress:
            ...

I hope the comments in progressBar are not making the code difficult too difficult to understand!

For the UI we can create a separate issue. Functionality is prio No1.

It seems the branch has conflicts in the index.js file. After resolving them in your forked branch I am happy to merge the PR 😀


[Windows] add environment variable AGENT_IMAGE in the adding-node command

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

run v2.3.0-rc8 in airgap HA mode
add a cluster with both Windows and Linux node
run the command from Rancher UI in the Windows instance

Result:

the Windows node tries to use the image  rancher/rancher-agent:v2.3.0-rc8 although it has pulled the proper one from the private registry

v2.3.0-rc8: Pulling from rancher/rancher-agent
Digest: sha256:220c2e5580bbbc9b238a8577b57655bd3c93601ca3241d272c3eb7de8de883a1
Status: Downloaded newer image for ec2-54-215-219-6.us-west-1.compute.amazonaws.com:443/rancher/rancher-agent:v2.3.0-rc8
INFO: Detecting running permission ...
INFO: Detecting host CPU reservation ...
INFO: Detecting host RAM reservation ...
INFO: Detecting host DISK reservation ...
INFO: Detecting host system locale ...
INFO: Detecting host Docker name pipe existing ...
INFO: Detecting host Docker release version ...
INFO: Detecting host network interface ...
INFO: Configuring host Docker startup mode to automatical ...
INFO: Enabling host msiscsi service to support iscsi storage ...
Unable to find image 'rancher/rancher-agent:v2.3.0-rc8' locally

The workaround is to add the -e AGENT_IMAGE=registry/rancher/rancher-agent:v2.3.0-rc8 to the command from the UI
So we should update the command in UI to include the AGENT_IMAGE part.

The bug fix is validated in master-head d009d239b
Steps:

run Rancher single install
set the system default registry to a private registry
add a new custom cluster with support for Windows nodes and private registry
check the command for adding Windows nodes

Result:

the command contains the -e AGENT_IMAGE=... part as expected


POC: track uncovered dependencies

resolves #231

generally a good pull request. we have to be careful with the performance (and mem.) but I'm optimistic

Disabled cache: https://blackfire.io/profiles/compare/df649291-08b4-4e50-89ec-9c701cc156d2/graph
With cache enabled: https://blackfire.io/profiles/compare/ac58ae35-cfc2-4769-aa29-3c29ff4c8660/graph

With cache enabled: https://blackfire.io/profiles/compare/94c9ef0a-48cb-40d6-88f2-f16486c913d4/graph

can you add some context? can you test it on a large project? For example the entire symfony framework.

With cache enabled: https://blackfire.io/profiles/compare/94c9ef0a-48cb-40d6-88f2-f16486c913d4/graph

can you add some context? can you test it on a large project? For example the entire symfony framework.

I'm using examples/symfony_depfile.yml with the lastest symfony master.

I tried testing it on one of my projects. Output is different. No errors or warnings are reported, but "0 Violations" is displayed in red.
Here's the latest deptrac vs this branch:

I adjusted the report as followed:

This PR is collecting uncovered dependencies and outputs them. But doesn't report them as a violation nor change the exit code. It is a good base for such behavior. I will merge this PR now, so someone could take over and implement those behaviors.


fix bug for ObjectMetadataDeserializer has the wrong date format

What changes were proposed in this pull request?
fix bug ObjectMetadataDeserializer has the wrong date format
How was this patch tested?
I did not ran tests as I am pretty new to Java. :-(

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


Peering Service is no longer in preview - need to remove (preview) from this page.

Peering Service is no longer in preview. Preview in parentheses should be removed next to the Peering Service title.

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

ID: 593e34b2-7d83-3621-28d4-aed19e65964c
Version Independent ID: cfd98755-174f-dad3-4fb3-abf46b301e1f
Content: Azure networking services overview
Content Source: articles/networking/networking-overview.md
Service: virtual-network
GitHub Login: @KumudD
Microsoft Alias: kumud

@derekolo, Appreciate your feedback. The doc has been edited accordingly and it would take some time for the changes to get reflect over the doc.
We are closing this issue for now. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.


chore: add support of onCopySuccess & onCopyError methods of DashKit …

…context in OverlayControls

@DaryaLari
chore: add support of onCopySuccess & onCopyError methods of DashKit …context in OverlayControls
As far as I remember, 'chore' doesn't trigger new release. It's more similar to 'feat' type of change.
And the second one thing is that it's better reduce title


[Polygon] Support Official USDC coin deployment

What is the feature about
Last month Circle added polygon to their official supported chains and deployed the official USDC token on the network.
Safe currently does no recognize the official USDC token.
The list of requirements
Support fetching the price of the official USDC token on polygon
Address: 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
Rename the bridged USDC symbol to USDC.e
Renamed the bridged USDC token name to USD Coin (PoS)
Address: 0x2791bca1f2de4661ed88a30c99a7a9449aa84174
Designs/sketches

Links
Announcement https://www.circle.com/blog/announcing-support-for-polygon-usdc
Officla USDC Deployment https://polygonscan.com/token/0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359
Bridged USDC.e Deployment https://polygonscan.com/token/0x2791bca1f2de4661ed88a30c99a7a9449aa84174
Clone of
https://github.com/safe-global/safe-transaction-service/issues/1743
https://github.com/safe-global/safe-wallet-web/issues/2743

Hey @JABirchall thanks for reporting the issue and apologies for the back and forth that you had on this one.
We were doing a migration on the price providers early November and the issue seems to be fixed now so I will close it.

Hey @JABirchall thanks for reporting the issue and apologies for the back and forth that you had on this one.
We were doing a migration on the price providers early November and the issue seems to be fixed now so I will close it.

Its ok, its hard to know what are the correct repos to post issues too.

Its ok, its hard to know what are the correct repos to post issues too.

Your initial report is totally ok since the context was what was shown on the Web UI. But in general, if the issue belongs to a different repository inside safe-global we can take the transfer of the ticket ourselves.
Thank you for following up with this report. We will try to improve this on our side.


Unbox primitives when marshalling to id

:+1:
I wonder if it's worth adding the same logic when we marshall to types other than id.

We don't need to. Calling JSValue::toNumber(ExecState*) performs unboxing for us. Same with strings and booleans.


disable scroll

hi, how to disable refresh when my recycle view is scrolling? (so the ptr will active pull to refresh only on the top item, not on my all items)
thanks!

i got my personal solution!
first of all, add LinearLayoutManager / Layout manager and set it to recycleview
recycleView.setLayoutManager(layoutManager);

implement recycleview with addOnScrollListener and then add following code in onScrolled
@Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            //validate ptr to refresh
            ptrFrameLayout.setEnabled(llm.findFirstCompletelyVisibleItemPosition() == 0);
        }

thanks for this great library! cheers!

I would do it in your way :+1: .


Apply to Dynamics 365 Unified Operations?

Hi, Could you update the article to discuss if it applies to D365 Unified Operations? Does it have a new name? Are these now called tasks and workflows?

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

ID: 00f2565b-b9a3-c29d-77b2-88c07e0b131c
Version Independent ID: e79af4d3-7c8d-b1c6-44d9-7ba6aae20329
Content: Configure work item queues
Content Source: dynamicsax2012-technet/configure-work-item-queues.md
Product: dynamicsax-2012
GitHub Login: @Khairunj

Hi! Version information was added to the top of the topic. Thanks for the feedback!


Fix clone_with_new_elements for VariantCollection

Per https://github.com/hammerlab/cohorts/issues/66, we decided to use clone_with_new_elements; but I just realized that it wasn't actually cloning the metadata variable (just other "metadata").
@iskandr

This change is

The behavior of this method is somewhat weird, as the metadata dictionary is left alone, even if some keys become obsolete or some elements are no longer keyed by it. @iskandr suggested offline to make that behavior more clear, which I did.

cc @arahuja FYI

LGTM

Coverage decreased (-0.6%) to 87.481% when pulling bfb68e18a0eb9c6ba9512f6b324673ce08c55526 on clone_metadata into 4c95ea8ce5e1165f4f423b431a05e5aeece1e730 on master.


Google Login Oauth 2.0 Project

Is your feature request related to a problem? Please describe.
I will write a google login Oauth usage project to see verification is done or not.
Describe the solution you'd like
I will connect google api to my website and use html,css,javascript to implement my idea
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
I am a gssoc participant
Steps Followed✅
Check the box with [x] If you followed all the steps.

[x] Is your feature request related to a problem? Please describe.
[x] Describe the solution you'd like

Code of Conduct✅

[x] I agree to follow this project's Code of Conduct.
[x] I checked the current issues for duplicate problems.
[x] I have gone through project README.

@NOiR-07 bro please assign it to me , i have already started working on it