[Request] [Typescript] Expand Type Option and/or Interactive Type Resolution

What
Provide a mechanism for expanding types into a "resolved type" when hovering and holding a special hot key (example hover and hold CMD/CTRL which expands the type a bit, then SHIFT to resolve the type via expansion).
This would be even more powerful if it could be done interactively by expanding the types similar to how chrome inspector shows objects and allows expanding them.  This would be extremely powerful especially if it allows grabbing the documentation along the way.  This would largely eliminate the need to ever open documentation outside of the code itself.
The interactive method would also be nice as it would make it far easier to expand into deeper types more efficiently and since recursive resolution can take time it helps do the expansion lazily.
In 90% of cases our types are just a couple levels deep though and if deeper we often do not care about those values.
I would be willing to work on this although the latter suggestion is probably a more fundamental change.
Why
So as I get more advanced with Typescript, I have begun to derive my types from other types more to make things "just work" and properly describe the way the code works.  This has been a huge boost to the productivity of the team as well as the power the IDE provides in most cases.
However, there are downsides.  Specifically that often the IDE is just defining these advanced types until you start using them which makes it hard to know the actual type expected.  Completions helps as you are building the object but that has its limits as well.
As an example which produces a powerful example of how this can be useful, lets take a look at the aws-sdk
import AWS from 'aws-sdk';
type ClientOptions = AWS.DynamoDB.DocumentClient.DocumentClientOptions;

This doesn't give me much info to help me in actually providing this type when it is requested.  I can of course go and navigate into the type and check but often this starts looking like this:
export interface DocumentClientOptions extends ConverterOptions {
        /**
         * An optional map of parameters to bind to every request sent by this service object.
         */
        params?: {[key: string]: any}
        /**
         * An optional pre-configured instance of the AWS.DynamoDB service object to use for requests. The object may bound parameters used by the document client.
         */
        service?: DynamoDB
    }

So it extends something and the keys are deeper types which also extend things... so it gets pretty difficult to figure out what we can actually provide without spending a decent amount of time on it.
We have created helpers to make this easier.  They aren't perfect due to typescripts built-in truncation of types which can't be configured yet (plan to request options for this as well).
We have defined $Debug and $DebugDeep in our globals.d.ts to help with this personally, but that doesn't help in many cases since we need to get the types alone to do so.  We can't easily add those values when we are calling the function, for example.
When we use $Debug the type ends up looking like this:
type ClientOptions = {
    params?: {
        [key: string]: any;
    };
    service?: AWS.DynamoDB;
    convertEmptyValues?: boolean;
    wrapNumbers?: boolean;
}

We have $DebugDeep<T, ExcludeValuesOf = never, Depth = 5> which will iterate through deeper as well (currently maximum to 5 levels deep).
Now we can a more useful type depending on the situation:
type ClientOptions = {
    params?: {
        [x: string]: any;
    };
    service?: {
        config: {
            getCredentials: (callback: (err: AWS.AWSError) => void) => void;
            loadFromPath: (path: string) => ConfigBase;
            update: {
                (options: ConfigurationOptions & {
                    [key: string]: any;
                }, allowUnknownKeys: true): void;
                (options: ConfigurationOptions, allowUnknownKeys?: false): void;
            };
            getPromisesDependency: () => void | PromiseConstructor;
            setPromisesDependency: (dep: any) => void;
            computeChecksums?: boolean;
            convertResponseTypes?: boolean;
            correctClockSkew?: boolean;
            customUserAgent?: string;
            credentials?: {
                get: (callback: (err?: AWS.AWSError) => void) => void;
                getPromise: () => Promise<void>;
                needsRefresh: () => boolean;
                refresh: (callback: (err?: AWS.AWSError) => void) => void;
                refreshPromise: () => Promise<void>;
                accessKeyId: string;
                expired: boolean;
                expireTime: {
                    toString: () => string;
                    toDateString: () => string;
                    toTimeString: () => string;
                    toLocaleString: {
                        (): string;
                        (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
                    };
                    toLocaleDateString: {
                        (): string;
                        ( ...

If we only use $DebugDeep1 to only expand 1 level in, you can see why this is getting powerful as config is an intersection of a bunch of values we would otherwise need to go and check into each of to determine what we can actually provide:
type ClientOptions = {
    params?: {
        [x: string]: any;
    };
    service?: {
        config: ConfigBase & ServiceConfigurationOptions & AWS.DynamoDB.ClientApiVersions;
        batchGetItem: {
            (params: AWS.DynamoDB.BatchGetItemInput, callback?: (err: AWS.AWSError, data: AWS.DynamoDB.BatchGetItemOutput) => void): AWS.Request<AWS.DynamoDB.BatchGetItemOutput, AWS.AWSError>;
            (callback?: (err: AWS.AWSError, data: AWS.DynamoDB.BatchGetItemOutput) => void): AWS.Request<AWS.DynamoDB.BatchGetItemOutput, AWS.AWSError>;
        };
        batchWriteItem: {
            (params: AWS.DynamoDB.BatchWriteItemInput, callback?: (err: AWS.AWSError, data: AWS.DynamoDB.BatchWriteItemOutput) => void): AWS.Request<AWS.DynamoDB.BatchWriteItemOutput, AWS.AWSError>;
            (callback?: (err: AWS.AWSError, data: AWS.DynamoDB.BatchWriteItemOutput) => void): AWS.Request<AWS.DynamoDB.BatchWriteItemOutput, AWS.AWSError>;
        };
        createBackup: {
            (params: AWS.DynamoDB.CreateBackupInput, callback?: (err: AWS.AWSError, data: AWS.DynamoDB.CreateBackupOutput) => void): AWS.Request<AWS.DynamoDB.CreateBackupOutput, AWS.AWSError>;
            (callback?: (err: AWS.AWSError, data: AWS.DynamoDB.CreateBackupOutput) => void): AWS.Request<AWS.DynamoDB.CreateBackupOutput, AWS.AWSError>;
        };
        createGlobalTable: {
            (params: AWS.DynamoDB.CreateGlobalTableInput, callback?: (err: AWS.AWSError, data: AWS.DynamoDB.CreateGlobalTableOutput) => void): AWS.Request<AWS.DynamoDB.CreateGlobalTableOutput, AWS.AWSError>;
            (callback?: (err: AWS.AWSError, data: AWS ...

We have the ExcludesValuesOf which can add values to ignore - but the interactive explorer would largely make this unimportant which is nice.
type ClientOptions = $DebugDeep<
  AWS.DynamoDB.DocumentClient.DocumentClientOptions,
  AWS.Credentials | AWS.CredentialProviderChain | AWS.HTTPOptions
>;

type ClientOptions = {
    params?: {
        [key: string]: any;
    };
    service?: {
        config: {
            getCredentials: (callback: (err: AWS.AWSError) => void) => void;
            loadFromPath: (path: string) => ConfigBase;
            update: {
                (options: ConfigurationOptions & {
                    [key: string]: any;
                }, allowUnknownKeys: true): void;
                (options: ConfigurationOptions, allowUnknownKeys?: false): void;
            };
            getPromisesDependency: () => void | PromiseConstructor;
            setPromisesDependency: (dep: any) => void;
            computeChecksums?: boolean;
            convertResponseTypes?: boolean;
            correctClockSkew?: boolean;
            customUserAgent?: string;
            credentials?: AWS.Credentials | {
                accessKeyId: string;
                secretAccessKey: string;
                sessionToken?: string;
            };
            credentialProvider?: AWS.CredentialProviderChain;
            accessKeyId?: string;
            secretAccessKey?: string;
            sessionToken?: string;
            httpOptions?: AWS.HTTPOptions;
            logger?: {
                write?: (chunk: any, encoding?: string, callback?: () => void) => void;
                log?: (...messages: any[]) => void;
            };
            maxRedirects?: number;
            maxRetries?: number;
            paramValidation?: boolean | {
                min?: boolean;
                max?: boolean;
                pattern?: boolean;
                enum?: boolean;
            };
            region ...

For anyone interested those debug types we use are defined here:
https://gist.github.com/bradennapier/1dbc2933148b6a5917536863e34d8613

Thanks for the detailed write-up.
This is being tracked by #64566, which focuses on diagnostics but could also apply to hovers. Solving it requires new API from typescript, as well as new UI on the VS Code side


Please show who to change the unit of Original Estimate.

[Enter feedback here]
Hi, this page mentioned that "You can specify work in hours or in days." Could you provide me the specific steps to specify/change the unit? Thanks.
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3f85f904-14c5-c520-edc3-b8af6826b4fc
Version Independent ID: 414874f2-1e30-04da-0feb-e459a4e51be8
Content: Agile process work item types & workflow in Azure Boards - Azure Boards
Content Source: docs/boards/work-items/guidance/agile-process-workflow.md
Product: devops
Technology: devops-agile
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

@weiliu-ivy -- thank you for your question.  My understanding is that the unit of time is your decision when setting up the tasks.  From that section:

Original Estimate
The amount of estimated work required to complete a task. Typically, this field doesn't change after it's assigned.
You can specify work in hours or in days. There are no inherent time units associated with this field.

I am closing this issue now.  You are welcome to @ mention me for any followup.  We hope to hear from you again.


Removed the app. Only library code remains.

Work in progress. UI stuff should happen in https://github.com/Crash-Test-Buddies/wifi-direct-tester

@brendankirby I might have screwed up the merge with your registration changes, and I'll need to run through and test this a bit

@tuttleb Feel free to take my commit out. It was only a few small changes.


how can do build success？gradle is always error

Short description
how can do build success？
gradle is always error
Expected behavior
Is there a specific expected behavior?
Version information

IDEA Version: 2020.2.3
JDK Version: 1.8
OS Type & Version: windows 10
Lombok Plugin Version: What is the version of the plugin installed?`
Lombok Dependency Version: What version of lombok.jar are you using?

Steps to reproduce
What steps do we need to take to reproduce this issue?
E:\Project_open-source-code\lombok-intellij-plugin>gradlew
Starting a Gradle Daemon (subsequent builds will be faster)

Configure project :
IdeaVersion is : 2020.2.3
ArtifactVersion is : 0.35-2020.2.3
Building for IntelliJ version: 2020.2.3
Generating Parser for GrammerKit: 2020.1

FAILURE: Build failed with an exception.

What went wrong:
A problem occurred configuring root project 'lombok-plugin'.

Failed to notify project evaluation listener.
Could not resolve all files for configuration ':detachedConfiguration1'.
Could not resolve com.jetbrains.intellij.idea:ideaIC:2020.2.3.
Required by:
project :
Could not resolve com.jetbrains.intellij.idea:ideaIC:2020.2.3.
Could not get resource 'https://jetbrains.bintray.com/intellij-third-party-dependencies/com/jetbrains/intellij/idea/ideaIC/2020.2.3/ideaIC-2020.2.3.pom'.
Could not HEAD 'https://jetbrains.bintray.com/intellij-third-party-dependencies/com/jetbrains/intellij/idea/ideaIC/2020.2.3/ideaIC-2020.2.3.pom'. Received status code 502 from serve
r: Bad Gateway
Could not resolve all files for configuration ':compileOnly'.
Could not resolve com.github.JetBrains:Grammar-Kit:2020.1.
Required by:
project :
Skipped due to earlier error
Could not resolve com.github.JetBrains:Grammar-Kit:2020.1.
Could not get resource 'https://www.jitpack.io/com/github/JetBrains/Grammar-Kit/2020.1/Grammar-Kit-2020.1.pom'.
Could not GET 'https://www.jitpack.io/com/github/JetBrains/Grammar-Kit/2020.1/Grammar-Kit-2020.1.pom'.
The server may not support the client's requested TLS protocol versions: (TLSv1.2). You may need to configure the client to allow other protocols to be used. See: https://docs.gr
adle.org/6.8.2/userguide/build_environment.html#gradle_system_properties
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to re
quested target
Could not resolve org.jetbrains.intellij.deps.jflex:jflex:1.7.0-1.
Required by:
project :
Skipped due to earlier error
Could not resolve org.jetbrains.intellij.deps.jflex:jflex:1.7.0-1.
Could not get resource 'https://www.jitpack.io/org/jetbrains/intellij/deps/jflex/jflex/1.7.0-1/jflex-1.7.0-1.pom'.
Could not GET 'https://www.jitpack.io/org/jetbrains/intellij/deps/jflex/jflex/1.7.0-1/jflex-1.7.0-1.pom'.
The server may not support the client's requested TLS protocol versions: (TLSv1.2). You may need to configure the client to allow other protocols to be used. See: https://docs.gr
adle.org/6.8.2/userguide/build_environment.html#gradle_system_properties
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to re
quested target

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.8.2/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 7m 56s

Thanks a lot

https://jetbrains.bintray.com/intellij-third-party-dependencies/com/jetbrains/intellij/idea/ideaIC/2020.2.3/ideaIC-2020.2.3.pom
always 502，is this server  in used？

There is one solution already published here. To get the plug-in built consider my comment there as well.


Added more listener checks to sample app

See https://github.com/capacitor-community/stripe/pull/74#issuecomment-880074738 👍

@rdlabo the issue from @danielehrhardt is now fixed with this 😊

@patrickbussmann Thanks for pull request!


Add support for column indexes

This adds support for writing column indexes to the fraugster library. When I run the bsonio tests against the new library they all pass except the tests involving parquet (this is because I didn't finish keeping track of null counts/null pages in the parquet writer).
I used the writer to write the following documents:
{a: 0, b: 2}
{a: 1, b: 2}
{a: 2, b: 2}
...
{a: 50,000, b: 2}

Then I used parquet-tools column-index to view the data file that it generated, which looks like this:
row group 0:
column index for column a:
Boudary order: UNORDERED
                      null count  min                                       max
page-0                         0  0                                         5000
page-1                         0  5001                                      10001
page-2                         0  10002                                     15002
page-3                         0  15003                                     20003
page-4                         0  20004                                     25004
page-5                         0  25005                                     30005
page-6                         0  30006                                     35006
page-7                         0  35007                                     40007
page-8                         0  40008                                     45008
page-9                         0  45009                                     49999

offset index for column a:
                          offset   compressed size       first row index
page-0                         4             11427                     0
page-1                     11430             11603                  5001
page-2                     23032             11576                 10002
page-3                     34607             11607                 15003
page-4                     46213             11581                 20004
page-5                     57793             11607                 25005
page-6                     69399             11585                 30006
page-7                     80983             11606                 35007
page-8                     92588             11588                 40008
page-9                    104175             11578                 45009

column index for column b:
Boudary order: UNORDERED
                      null count  min                                       max
page-0                         0  2                                         2

offset index for column b:
                          offset   compressed size       first row index
page-0                    115793              6330                     0

I also verified that this integrated correctly with the index code for MHOUSE-1862. Running the parquet-explorer column-index on the file produces this:
column index for "a": 10 pages
    page-0 NC:0 MIN:{"$numberInt":"0"} MAX:{"$numberInt":"5000"} O:4 CS:11427 FRI:0 LRI:5000
    page-1 NC:0 MIN:{"$numberInt":"5001"} MAX:{"$numberInt":"10001"} O:11430 CS:11603 FRI:5001 LRI:10001
    page-2 NC:0 MIN:{"$numberInt":"10002"} MAX:{"$numberInt":"15002"} O:23032 CS:11576 FRI:10002 LRI:15002
    page-3 NC:0 MIN:{"$numberInt":"15003"} MAX:{"$numberInt":"20003"} O:34607 CS:11607 FRI:15003 LRI:20003
    page-4 NC:0 MIN:{"$numberInt":"20004"} MAX:{"$numberInt":"25004"} O:46213 CS:11581 FRI:20004 LRI:25004
    page-5 NC:0 MIN:{"$numberInt":"25005"} MAX:{"$numberInt":"30005"} O:57793 CS:11607 FRI:25005 LRI:30005
    page-6 NC:0 MIN:{"$numberInt":"30006"} MAX:{"$numberInt":"35006"} O:69399 CS:11585 FRI:30006 LRI:35006
    page-7 NC:0 MIN:{"$numberInt":"35007"} MAX:{"$numberInt":"40007"} O:80983 CS:11606 FRI:35007 LRI:40007
    page-8 NC:0 MIN:{"$numberInt":"40008"} MAX:{"$numberInt":"45008"} O:92588 CS:11588 FRI:40008 LRI:45008
    page-9 NC:0 MIN:{"$numberInt":"45009"} MAX:{"$numberInt":"49999"} O:104175 CS:11578 FRI:45009 LRI:50000
  column index for "b": 1 pages
    page-0 NC:0 MIN:{"$numberInt":"2"} MAX:{"$numberInt":"2"} O:115793 CS:6330 FRI:0 LRI:50000

The biggest piece of work here was refactoring the writer to write multiple data pages. Previously it would always write one data page for each column per row group.
The TODOs are mainly adding tests and a few things I called out inline below.

We have three options for how we could use this library. None of them seem amazing to me:

Fork it, do not keep it up to date with the upstream library, do not try to merge our changes with the upstream library.
Fork it, keep it up to date with the main library, do not try to merge our changes with the main repo. I thought this library wasn't being maintained anymore. For the longest time, it hadn't been updated since December of 2020. Then last week, the maintainer merged a whole bunch of PRs. On one hand, this is good, because it fixed things like MHOUSE-2608 (outdated thrift). But on the other hand, I have some concerns about their code review process and how much confidence we can have in the correctness. It looks like about 20 prs were merged over a two day interval (pretty much all of the prs that had been opened since December). Its difficult to tell the exact number because it looks like not all commits are squashed upon merging. Additionally, very few of the PRs have any comments/requests for changes from the maintainer, even sizable ones like: https://github.com/fraugster/parquet-go/pull/29. Also the more we commit to our fork without merging into the main repo, the harder it's going to be to merge in their updates.
Fork it, keep it up to date with the main library, merge our changes into the main repo. In order to do this, I assume the maintainers will want us to maintain correctness of the reader and have the tests be self contained in this repo, which I don't think we want to invest the effort into.

Hey @bdeleonardis1. Hope you're doing well. This is still showing up on my lists of open things. Can you close this?


have you benchmarked against using cockroachdb swiss?

https://github.com/cockroachdb/swiss
curious over performance over dolt

Hello,
I made small benchmarks and could not see much difference(speed and resource usage) but I created an issue about this https://github.com/cockroachdb/swiss/issues/19 they haven't answered yet.


Fix missing TrackPublished events

Enqueue notifying delegates until connectionState is .connected
https://github.com/livekit/client-sdk-js/pull/275

Would this PR cause all of the initial updates before a room is connected to fire as changed events? I think that's actually not the desired behavior.
The spec indicates that TrackPublished events should only fire after the participant is fully connected to the room. It should not queue up tracks published before the participant is connected. This is also true for the speaker changed/etc events.
The JS PR fixes a different issue, which is regarding when other participants are connected to the room after the local participant is already in the room. If we received that first update when other participants already have published tracks, it would not fire TrackPublished.

👌 I misunderstood the JS PR.


feat: added support for className to

Closes #4739
This PR adds the ability to apply custom CSS classes to the AnchoredOverlay component's overlay.
Changelog
Changed

Updated the AnchoredOverlay component to pass through all overlayProps to the internal Overlay component.

Removed

N/A

Rollout strategy

[x] Minor release
[ ] Patch release
[ ] Major release; if selected, include a written rollout or migration plan
[ ] None; if selected, include a brief description as to why

This change adds new functionality without breaking existing behavior, making it suitable for a minor release.
Testing & Reviewing
To test this change:

Use the AnchoredOverlay component with a custom class:<AnchoredOverlay
  overlayProps={{
    className: "my-custom-overlay-class"
  }}
  // ... other props
>
  {/* Overlay content */}
</AnchoredOverlay>

Merge checklist

[ ] Added/updated tests
[ ] Added/updated documentation
[ ] Added/updated previews (Storybook)
[ ] Changes are SSR compatible
[ ] Tested in Chrome
[ ] Tested in Firefox
[ ] Tested in Safari
[ ] Tested in Edge
[ ] (GitHub staff only) Integration tests pass at github/github (Learn more about how to run integration tests)

Hello! Thanks for pushing this PR. There is a type error about the new className prop. Could you please make sure the new prop type is also defined?

Sure, will look at it today.

Hello @Princeyadav05 👋🏻 Let me know if you need a hand with fixing the type issue!
We have another PR raised for the same issue and I am trying to coordinate so that we can have both of your contributions, ideally 😊

Hello @Princeyadav05 👋🏻 Let me know if you need a hand with fixing the type issue!
We have another PR raised for the same issue and I am trying to coordinate so that we can have both of your contributions, ideally 😊

Will try to close it in a couple of hours. Thanks you for your co-ordination. 😊

@broccolinisoup  have made the required changes. Do let me know if anything else is required.


Impossible to not have a drift with an empty cookie block in cloudflare_page_rule since 3.34.0

Confirmation

[X] My issue isn't already found on the issue tracker.
[X] I have replicated my issue using the latest version of the provider and it is still present.

Terraform and Cloudflare provider version
Terraform v1.3.7
on darwin_arm64

provider registry.terraform.io/cloudflare/cloudflare v3.34.0

Affected resource(s)

cloudflare_page_rule

Terraform configuration files
resource "cloudflare_page_rule" "page_rule" {
    id       = "..."
    priority = 29
    status   = "active"
    target   = "..."
    zone_id  = "..."

    actions {
        always_use_https     = false
        browser_cache_ttl    = "1800"
        cache_level          = "bypass"
        disable_apps         = false
        disable_performance  = false
        disable_railgun      = false
        disable_security     = false
        disable_zaraz        = false
        edge_cache_ttl       = 604800
        host_header_override = "....blob.core.windows.net"

        cache_key_fields {

            header {
                check_presence = []
                exclude        = [
                    "origin",
                ]
                include        = []
            }

            host {
                resolved = false
            }

            query_string {
                exclude = []
                ignore  = true
                include = []
            }

            user {
                device_type = false
                geo         = false
                lang        = false
            }
        }
    }
}

Link to debug output
https://gist.github.com/lra/5241499210278c1c1e8aca383529ebf3
Panic output
No response
Expected output
No changes. Your infrastructure matches the configuration.
Actual output
Terraform will perform the following actions:

  # module.seismic.cloudflare_page_rule.page_rule["..."] will be updated in-place
  ~ resource "cloudflare_page_rule" "page_rule" {
        id       = "..."
        # (4 unchanged attributes hidden)

      ~ actions {
            # (10 unchanged attributes hidden)

          ~ cache_key_fields {
              + cookie {
                  + check_presence = (known after apply)
                  + include        = (known after apply)
                }

                # (4 unchanged blocks hidden)
            }
        }
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Steps to reproduce

Don't define a cookie block under cloudflare_page_rule.cache_key_fields or define an empty cookie block, or define a block with empty array as check_presence and include, I tried everything I could.
Run terraform apply
Run terraform plan -> you get a drift

Additional factoids
This is not happening with 3.33.1
References
No response

have you tried removing this field from your state file? i suspect this has something to do with it still being an empty value and trying to keep it in sync.

this relies on a module too which may make this harder to diagnose as it doesn't happen on a fresh or minimal repro.

have you tried removing this field from your state file? i suspect this has something to do with it still being an empty value and trying to keep it in sync.

It's a good idea, I just did 2 ways: Doing a state rm followed by an import, and touching the json state directly: same behavior.

this relies on a module too which may make this harder to diagnose as it doesn't happen on a fresh or minimal repro.

This is a very simple internal module, I'm touching the resource directly to do my tests.
I think I nailed down the problem:
If I don't state a cookie block at all:
cache_key_fields {
}

I get no drift: No changes. Your infrastructure matches the configuration.
But if I set a cookie block, empty or with empty lists, I can never get the provider to a clean state:
cache_key_fields {
    cookie {}
}

Lead to:
      ~ actions {
            # (10 unchanged attributes hidden)

          ~ cache_key_fields {
              + cookie {
                  + check_presence = (known after apply)
                  + include        = (known after apply)
                }

                # (4 unchanged blocks hidden)
            }
        }
    }

or
        cookie {
          check_presence = []
          include = []
        }

Lead to:
  ~ resource "cloudflare_page_rule" "page_rule" {
        id       = "..."
        # (4 unchanged attributes hidden)

      ~ actions {
            # (10 unchanged attributes hidden)

          ~ cache_key_fields {
              + cookie {}

                # (4 unchanged blocks hidden)
            }
        }
    }

This one is weird, it wants to set an empty object cookie {} when I set empty lists. While it tried to actually set the lists when I gave it an empty cookie {} object on the previous try.
There is something fishy here.
The big problem is that with those nested objects (cookie and others under cache_key_fields), when you have tons of cloudflare_page_rule, you create a module and set variables to feed dynamic cache_key_fields blocks, and there is no way to have a condition to not state at least cookie {} as this is already inside a dynamic block. If there is no cookie parameter set, you have to set at least cookie {}, so this behavior is blocking anyone wanting to loop over different cloudflare_page_rule on <3.34.0.

I think this was me here: https://github.com/cloudflare/terraform-provider-cloudflare/pull/2208
I'll try to repro this and come up with something for you shortly.

@ira I'm not so sure why the provider doesn't remove these empty cookie fields altogether, I was looking at the code, but I wasn't able to figure it out YET.
These should be completely removed by the provider.
cookie {
   check_presence = []
   include = []
}

Is it a viable workaround if you remove these empty cookie fields / cookie fields with empty arrays from your configuration?

Sadly not for a module that optionally propose to set cookie settings, AFAIK there is no way in a dynamic cache_key_fields block to optionally state a cookie block (make it dynamic too), that's what I tried to explain at the bottom of https://github.com/cloudflare/terraform-provider-cloudflare/issues/2225#issuecomment-1424346967
BTW, this same problem seem to apply to all optional blocks within cache_key_fields. So the only workaround would have to write a different resource for each combination of cache_key_fields block possible, we are talking 543*2 = 120 combinations =(

if this is for a module, it very well could be the module causing the issue which involves its own logic for when to set or define these fields.
for now, I'd suggest coming up with a minimal reproduction case without modules or dynamics that demonstrates the bug. as it stands, this isn't reproducible using just the resource so I'm hesitant to say this is a bug in the provider until we can rule those out.

Again, the module has nothing to do with it, I was editing the resource directly.
Anyway, here's a self-contained explicit exhaustive reproductive case. You'll only have to change the zone_id:
terraform {
  required_providers {
    cloudflare = {
      source = "cloudflare/cloudflare"
    }
  }
}

provider "cloudflare" {
}

resource "cloudflare_page_rule" "this" {
  target  = "whatever/*"
  zone_id = "82592f37298b1a37a3fb743431a53c1c"

  actions {
    cache_key_fields {
      query_string {
        exclude = ["api_token"]
      }
      user {
        lang = true
      }
      host {}
      cookie {}
    }
  }
}

Run terraform apply:
Terraform will perform the following actions:

  # cloudflare_page_rule.this will be created
  + resource "cloudflare_page_rule" "this" {
      + id       = (known after apply)
      + priority = 1
      + status   = "active"
      + target   = "whatever/*"
      + zone_id  = "82592f37298b1a37a3fb743431a53c1c"

      + actions {
          + always_use_https    = false
          + disable_apps        = false
          + disable_performance = false
          + disable_railgun     = false
          + disable_security    = false
          + disable_zaraz       = false

          + cache_key_fields {
              + cookie {
                  + check_presence = (known after apply)
                  + include        = (known after apply)
                }

              + host {
                  + resolved = false
                }

              + query_string {
                  + exclude = [
                      + "api_token",
                    ]
                  + ignore  = (known after apply)
                  + include = (known after apply)
                }

              + user {
                  + device_type = (known after apply)
                  + geo         = (known after apply)
                  + lang        = true
                }
            }
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

cloudflare_page_rule.this: Creating...
cloudflare_page_rule.this: Creation complete after 2s [id=11e475e98dd96670b35d3512adf0644c]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Good.
Now run terraform apply again:
Terraform will perform the following actions:

  # cloudflare_page_rule.this will be updated in-place
  ~ resource "cloudflare_page_rule" "this" {
        id       = "11e475e98dd96670b35d3512adf0644c"
        # (4 unchanged attributes hidden)

      ~ actions {
            # (7 unchanged attributes hidden)

          ~ cache_key_fields {
              + cookie {
                  + check_presence = (known after apply)
                  + include        = (known after apply)
                }

                # (3 unchanged blocks hidden)
            }
        }
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

cloudflare_page_rule.this: Modifying... [id=11e475e98dd96670b35d3512adf0644c]
cloudflare_page_rule.this: Modifications complete after 8s [id=11e475e98dd96670b35d3512adf0644c]

Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

And again:
Terraform will perform the following actions:

  # cloudflare_page_rule.this will be updated in-place
  ~ resource "cloudflare_page_rule" "this" {
        id       = "11e475e98dd96670b35d3512adf0644c"
        # (4 unchanged attributes hidden)

      ~ actions {
            # (7 unchanged attributes hidden)

          ~ cache_key_fields {
              + cookie {
                  + check_presence = (known after apply)
                  + include        = (known after apply)
                }

                # (3 unchanged blocks hidden)
            }
        }
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

cloudflare_page_rule.this: Modifying... [id=11e475e98dd96670b35d3512adf0644c]
cloudflare_page_rule.this: Modifications complete after 2s [id=11e475e98dd96670b35d3512adf0644c]

Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

etc...
And yes if I don't specify any cookie {} I won't get the infinite drift, but as I can't make the block dynamic when we parametrize the resource, I have to state a cookie {} block, be it empty or not, and this leads to the infinite drifts.

And yes if I don't specify any cookie {} I won't get the infinite drift

this is what #2208 removed the need for and the what you should be doing when you don't have configuration options for that. this has been a weird empty block since it's inception (and caused some internals issues) but has since been fixed to be correct.
i'm sorry but this is an issue with the syntax used to make the resource dynamic. as such, we don't directly support it and I'd recommend you open a feature request with terraform core to achieve this. alternatively, you can migrate this functionality to the rulesets equivalent and use that resource instead.

I understand, what confused me I guess is that the doc still states it's required but allowed to be empty. Same behavior for the header block.
We'll workaround it by adding more dynamic blocks.

if the docs are adding confusion here, we can get those updated to reflect the true state now. you're welcome to send over a PR otherwise someone will get to it later on.


Upgrade to Yarn v4

Add packageManager to package.json
Add allow-scripts Yarn plugin
Add Yarn constraints (but modified to suit this package, whose build pipeline is not fully standardized with the module template)
Remove setup script (since allow-scripts gets called automatically now)
Replace prepublishOnly script with prepack
Update GitHub workflow to install Yarn via Corepack
Update Yarn-specific section of .gitignore
Update installation instructions in README

Closes #285.


add extra tag in fallback render

if render is fail, add no-cache signal for captain

Sorry for unexpected manipulation.


Hooking Up Existing Cognito User Pool With GraphQL API

Hello,
I am having trouble finding this out, but I wanted to know if it is possible to create a graphQL API through the CLI and use an existing Cognito User Pool? I don't think there is any straight forward process but I wanted to enquire anyways.
I was able to do a somewhat hacky workaround where I would add auth through the Amplify CLI and then modify the cloudformation template to just return the corresponding values in the output.
Which Category is your question related to?
GraphQL/Auth
Amplify CLI Version
You can use amplify -v to check the amplify cli version on your system
What AWS Services are you utilizing?
AppSync Cognito Amplify
Provide additional details e.g. code snippets
Below is my lower section of my auth cloudformation file:
.
.
.
Conditions:
  ShouldNotCreateEnvResources: !Equals [ !Ref env, NONE ]
  AlwaysFalse: !Equals [ "true", "false"]
  MasterEnv: !Equals [ !Ref env, "master"]

Resources:
  EmptyResource:
    Type: Custom::EmptyResource,
    Condition: AlwaysFalse

Outputs:

  UserPoolId:
    Value: !If [MasterEnv, ####Prod Cognito Pool#####, <<<<<<Dev Cognito Pool>>>>>>>]
    Description:  Id for the user pool
  IdentityPoolId:
    Value: !If [MasterEnv,  ####Prod Identity Pool#####, <<<<<<Dev Identity Pool>>>>>>>]
    Description:  Identity Pool Id for the user pool
  UserPoolName:
    Value: "NONE"

That would be the right way to go around it by replacing your Userpool values and then adding it to your API through the CLI

Thank you for your response. Do you know if there are any plans to natively support this feature through the CLI without this workaround?

Yes we do have plans and current working on design for importing existing Cognito configs. I will mark this enhancement and if you have any ideas we would love to hear any feedback you have.

Closing in favor the import RFC: https://github.com/aws-amplify/amplify-cli/issues/3977
Please follow that issue for updates.


Over resource limits on Streamlit Cloud

Hey there :wave: Just wanted to let you know that your app on Streamlit Cloud deployed from this repo has gone over its resource limits. Access to the app is temporarily limited. Visit the app to see more details and possible solutions.

Thanks, I believe I fixed it. I was using a very old version of Streamlit, known to have a memory leak.


Add Kastamonu University

@efekuznets I am sorry, the domain ogr.kastamonu.edu.tr is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


WebViews are blank

Steps to reproduce
Create an application with WebViews, compile it in AndroidStudio against WSA and run in the WSA environment.
Both debug and release builds are affected. Also sideloaded apks and direct adb installs are affected.
Windows11Pro 22H2 build 22621.3447
✔ Expected Behavior
WebViews have been working for months then suddenly WebViews display blank content.
❌ Actual Behavior
My app has a RecyclerView with WebViews as items.
It used to work perfectly,
Now
When the app starts the content is displayed for the first item, while others are not displayed.
Other activities can be opened but WebViews are blank in them too.
For example the User Guide activity features a full page WebView that is supposed to display a long HTML document, but it's blank. It's empty.
Going back to the main activity with the RecyclerView now there is nothing, and the only WebView that was displaying something is now blank itself. It becomes blank even without opening another activity, it is enough to perform some UI update after start.
Other Software
AndroidStudio Iguana 2023.2.1 (the issue was present with previous Giraffe version too)
Please specify the version of Windows Subsystem for Android
2311.40000.5.0

@Slion
Thank you for the response.
I have a bunch of options related to hardware acceleration but there is no overall on/off button for that feature.
I tried the available options but WebViews are still blank except for some of them when the app starts.

You need to use setLayerType and set it to LAYER_TYPE_SOFTWARE.

@Slion
Neither
webView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
or
android:hardwareAccelerated="false" (on the application element in manifest)
worked.


Remove a print that confuses collect_steps

Not sure the history on this... it seems like it should use tracing, if we want to keep it around?
If we do need it, then we can certainly change collect_steps to ignore it.

so the idea was to print the random seed if test fails. Given that cargo silences the output by default, that seemed like a good way to avoid having noise when tests pass.
Not sure if there is a better way to deal with it though - I am not sure I am a big fan of having a random seed for unit tests, but it is what it is

A more comprehensive solution might be to figure out how to make tracing (at least at/below info level) go to stdout in unit tests. But for now I made collect_steps skip over this message.

yea we probably want to use test writer
https://docs.rs/tracing-subscriber/latest/tracing_subscriber/fmt/struct.TestWriter.html


arguments in tf.math.greater should be the same type

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
Yes
Source
source
Tensorflow Version
tf 2.12.0
Custom Code
Yes
OS Platform and Distribution
win11
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
According to doc, the argument x and y in tf.math.greater should be the same type. However, in following snippet code, the type of argument x is int and the type of argument y is float32, it doesnt throw an exception, which is inconsitent with the doc.
Standalone code to reproduce the issue
import tensorflow as tf
results={}
try:
  x = 16
  y_tensor = tf.random.uniform([4, 1, 1], dtype=tf.float32)
  y = tf.identity(y_tensor)
  results["res"] = tf.math.greater(x=x,y=y,)
except Exception as e:
  results["err"] = "Error:"+str(e)
print(results)

results = 'res': <tf.Tensor: shape=(4, 1, 1), dtype=bool, numpy=
array([[[ True]],
      [[ True]],
      [[ True]],
      [[ True]]])>

### Relevant log output

_No response_</details>

Same issue can be found in tf.math.greater_equal.

@cheyennee,
I tried to replicate the code on tf-nightly and also tried the code with alternative input values as well. Kindly find the gist of it here.
  #x = 16
  #print(type(x))
  #y_tensor = tf.random.uniform([4, 1, 1], dtype=tf.float32)
  #y = tf.identity(tf.random.uniform([4, 1, 1], dtype=tf.float32))
  #print(y)
  results["res"] = tf.math.greater(x=tf.identity(tf.random.uniform([4, 1, 1], dtype=tf.float32)),y=tf.identity(tf.random.uniform([4, 1, 1], dtype=tf.float32)))
  print(results)

array([[[False]],

       [[False]],

       [[ True]],

       [[ True]]])>}

  #x = 16
  #print(type(x))
  #y_tensor = tf.random.uniform([4, 1, 1], dtype=tf.float32)
  #y = tf.identity(tf.random.uniform([4, 1, 1], dtype=tf.float32))
  #print(y)
  results["res"] = tf.math.greater(x=tf.identity(tf.random.uniform([4, 1, 1], dtype=tf.float16)),y=tf.identity(tf.random.uniform([4, 1, 1], dtype=tf.float16)))
  print(results)

array([[[ True]],

       [[ True]],

       [[False]],

       [[ True]]])>}

@cheyennee,
I tried to execute the mentioned code by providing x=16 (int) and y=1.2 (float), and it was failing as intended. Whereas with the code you mentioned the input 'y' was converting to the tf.Tensor which might be the reason the code was not failing. Kindly find the gist of it here.
Thank you!


Add DOI for TU Berlin, Calypso, Surround

At the moment, only the first version of the data set with the different listening positions is uploaded to Zenodo. This has to be updated and also the data for the large loudspeaker has to be added (if not done yet).
After that the DOI has to be added in the documentation.
This is a follow up of #20.

The data for the large loudspeaker is in the svn repo.


Can we make a black badge to add to project README.md like tests passing + coverage.
If I get time I'll work out how to do such a thing. Just wanted to see if others would like this and think it's valuable.

My bad, I just saw the README.md for black has a black badge. Closing. Sorry for the noise.


Page talks about, but does not have links to,  linux installer packages

This page says there are native ubuntu and Centos/RHEL install packages available but has no link or references to where they are found or the repositories once could use.

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

ID: 8cfd5cf0-f28e-be49-227a-c2bbe4e57b8d
Version Independent ID: 016b2a9c-d1c9-6909-df3e-a49db60b7654
Content: Prerequisites for .NET Core on Linux
Content Source: docs/core/linux-prerequisites.md
Product: dotnet-core
GitHub Login: @Thraka
Microsoft Alias: adegeo

Under https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x#supported-linux-versions, the topic says "For download links and more information, see .NET Core 2.2 downloads or .NET Core 2.1 downloads."
So install packages would be on the downloads page. For this reason, I'm closing this issue.


GEMINI not picking up PYTHONPATH

When installing GEMINI into a custom location using setup.py I ran into the problem that it did not find itself, because apparently it ignores PYTHONPATH (see commit b504d5a1dcc1ffedc2844f251b016c52c54696ad and 5ad343ef81f3c81f723e2a346b72575f472e85d7).
Is there a reason for doing that? It would be great to make this behaviour configurable when using setup.py to install it.

Georg;
Thanks for the question and sorry for any confusion. By default, GEMINI does intentionally ignore PYTHONPATH. The goal is to only use the libraries installed by the python you're running GEMINI with. Without this in place you will accidentally inject libraries from other Python installations or local site-libraries which can often be incompatible. This is the source of a number of confusing bugs.
This helps us create an isolated GEMINI install that will work reliably across systems with a wide variety of system pythons and other local tweaks.
Even for a setup.py install in a standard Python, I'm a bit confused as to why you need to rely on the PYTHONPATH rather than installing the requirements within your system Python. Would you be able to explain more about your setup?

Sure, we are using Environment Modules (a nice implementation is Lmod) to manage software on our systems. It enables us to easily load and unload software in different versions by modifying the environment. Unfortunately it is not well known outside of HPC/cluster computing.
In the case of python modules it works by modifying the PYTHONPATH environment variable. We try to keep the base python installation light and load additional python packages as separate modules.

Georg;
Thanks for the additional details. I'm definitely familiar with modules and ignoring the PYTHONPATH is a response to working around issues caused by those setups. It's pretty easy to get an incompatible set of modules based on what people load, which causes the errors mentioned above.
The automated install (http://gemini.readthedocs.org/en/latest/content/installation.html#automated-installation) is well setup to deal with modules. It'll have an isolated python installation plus all the dependencies in one place that you can inject with just a PATH change and no PYTHONPATH hacking. Would that work for what you need?
If not, you can always remove the -Es flag from your GEMINI install as a custom workaround but I'm not sure this would be a good solution for most installs due to the potential for getting an inconsistent environment.
Sorry to not have a great solution but hope this helps some.

The reason of setting the PYTHONPATH is so that we can use the dependencies out of our module system.
For now we solved it by removing the -Es flag. For us it would be cool if that would be an option in the setup.py installation (e.g. an option like --no-ignore-pythonpath). If you think that is a viable solution, I'd gladly open a PR for that.

:+1: for an option to not ignore pythonpath. We just hit the same issue installing on our HPC cluster where we are building up the environment based on modules. If the requirements are well specified we can ensure our modules provide them, and don't pollute.


modify commands to fit expect behaviour

LGTM! This will address the issues that #131 and #133 faces.


wording

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Init.d script fixed for rhel family

The td-agent rpm package with version 2 doesn't create init.d script. I fixed in cookbook by creating link from /opt/td-agent/etc/init.d/td-agent to /etc/init.d/td-agent.

I couldn't confirm the behaviour. I confirmed that the td-agent v2.1.4 creates /etc/init.d/td-agent on my CentOS 6.6. Please review your system again.
Anyway, if there are some packaging issues in td-agent, basically, I think it should be fixed in td-agent package itself, not in Chef's cookbook.

I agree that the fix init script should be in td-agent package.
I reviewed my system and  received the following:
rpm -qa | grep td-agent
td-agent-2.1.4-0.x86_64

rpm -ql td-agent | grep init.d
/opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/puma-2.11.0/tools/jungle/init.d
/opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/puma-2.11.0/tools/jungle/init.d/README.md
/opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/puma-2.11.0/tools/jungle/init.d/puma
/opt/td-agent/embedded/lib/ruby/gems/2.1.0/gems/puma-2.11.0/tools/jungle/init.d/run-puma
/opt/td-agent/etc/init.d
/opt/td-agent/etc/init.d/td-agent

And this means that the package doesn't create the init script in the /etc directory. I wanted to see the spec file, but not found it for version 2. In the repository https://github.com/treasure-data/td-agent spec is only for version 1.

Today I experienced the same issue  after removing td-agent v1 by yum remove  td-agent.
But when I tried to install td-agent v2 on a fresh machine, I succeeded.
environment: td-agent-2.1.5-0.x86_64 / CentOS6.6

This should be fixed in omnibus-td-agent.


Upgrade Cesium to 1.49.0

Rectangle drawing control appears to be busted. Circle, Polygon, and adding a rectangle via coordinate entry worked fine. Other KML tests were fine too.


Chromium needs new/additional maintainers

I'm currently the main/only maintainer but I'm getting too slow to resolve build errors in time. Plus a bus factor of one is of course not good. The main task/challenge is to keep Chromium building. Minor changes to the Nix build expressions are regularly required to deal with new build regressions/failures. We have chromiumBeta and chromiumDev in Nixpkgs so that we can fix build errors in advance (ideally at least chromiumBeta should build before it hits the stable channel - this is currently not the case: Chromium M107 will hit the stable channel tomorrow but the build is still broken: https://github.com/NixOS/nixpkgs/issues/195631).
I've started documented everything relevant a while ago in https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/networking/browsers/chromium but I'll probably need to update some details that have changed in the meantime.
The main requirements for a Chromium maintainer are probably the following:

Time and dedication (fixing build failures isn't that challenging but it can take quite a while and iteration times are high (at least without tricks like breakpointHook, etc.))
A powerful build machine (something I'm currently lacking which is also a problem... :o). I'd recommend a powerful CPU with at least 6 cores (even with 6 cores a build should take a few hours) and at least 50 GB of free disk space.
Experience with Nix(pkgs) and fixing build failures
Ideally commit access to Nixpkgs (there are regular updates, all updates are very security critical and should be merged timely, and all updates need to be backported)
Probably frustration tolerance (packaging software from Google isn't really fun for multiple reasons and Chromium is so large that it's also a huge mess)
Git knowledge (patches, backporting commits, and interacting with the Chromium source-code)

Chromium maintainers should ideally also be added to Google Chrome, ChromeDriver, and Ungoogled Chromium as those packages are heavily intertwined.
I'll try to keep maintaining Chromium for now but I'm already past schedule for M107 (https://github.com/NixOS/nixpkgs/issues/195631) and I'm not sure anymore for how much longer my motivation will suffice (I'll try to keep it up for a smooth transition though).
Feel free to ask questions (I might currently be a bit slow to respond though).

I cannot step in immediately but I am interested into helping you @primeos on that subject.

Hi there, thanks for your replies and sorry for my delayed response (the offers are a bit "vague" (understandably) so I wasn't sure what to say).
I decided to open #213862 to track the issues/task so that the process of maintaining Chromium will hopefully become a bit more transparent. Feel free to drop comments there and you can also reach me via Matrix (@primeos:matrix.org).
Are you still interested? If so, looking into https://github.com/NixOS/nixpkgs/issues/213862#issuecomment-1464976039 might be a good first task as we still have approx. two months left to figure it out (but we shouldn't wait that long - 1-2 weeks would be much better). I'd probably do the following (in that order):

Search on https://bugs.chromium.org/p/chromium/issues/list to see if someone else already ran into that error
Check which commit introduced the change that causes that error (and probably revert it to see if that does indeed fix things)
Check why we get the error (we might "simply" need a newer LLVM version but it could also be something else)

I'm still generally interested, but I am also perfectly fine just helping in diagnosing issues.

cc @emilylange and @networkException based on https://github.com/NixOS/nixpkgs/pull/275459.
How's the current situation looking? It seems like we could still need additional maintainers/help? Maybe @lorenz and @RaitoBezarius are still interested (they already helped me really well in the past)? I could offer to try to help with reviews / my knowledge from updating Chromium in the past (you could either ping me if necessary or keep me in meta.maintainers to always get notified).
I checked that Chromium remained roughly up-to-date while I was gone but didn't check if security updates (basically all Chromium updates) got merged in time (ASAP / < 24-48h as web browsers are super security sensitive/relevant) and if backports (to the stable NixOS release(s)) are working.
Ideally we should have a primary maintainer that follows a release feed (e.g. https://chromereleases.googleblog.com/ - available as Atom or RSS feed and one can probably still filter for "Stable Channel Update for Desktop"; I also subscribed to the release schedule/calendar to prepare for major updates in advance: https://chromiumdash.appspot.com/schedule).


Launch a Modal scene from a stack of scenes in Card mode

Is it possible to launch a scene in Modal visualisation mode from a stack o scenes in Card visualisation mode?
For this example:
const CardStack = StackNavigator({
  Home: {
    screen: MyHomeScreen,
  },
  Profile: {
    path: 'people/:name',
    screen: MyProfileScreen,
  },
  HeaderTest: {screen: MyHeaderTestScreen},
}, {
  mode: 'card',
});

What I am trying to do is the following:
const ModalStack = StackNavigator({
  Home: {
    screen: MyHomeScreen,
  }, {
  mode: 'modal',
});

const CardStack = StackNavigator({
  Home: {
    screen: ModalStack,
  },
  Profile: {
    path: 'people/:name',
    screen: MyProfileScreen,
  },
  HeaderTest: {screen: MyHeaderTestScreen},
}, {
  mode: 'card',
});

But it is not working, the Home scene is displayed in Card display mode. Any thoughts how to fix this?
The animation desired:

The animation obtained:

The way to achieve this would be to move the ModalStack to the top-level, and make the cardstack the child.
I am struggling with this, because  I am dealing with a handful of cases where I'd like to navigate card-like inside a modal, that is, the first screen opens like a modal, and subsequent screens transition horizontally. Having to create two nested navigators to achieve this is verbose.
I'm finding myself wanting to attach a "mode" setting to an individual screen.

As a workaround I am moving all of my modal scenes to inside a Modal component from React Native.

@SandroMachado that is precisely what I did. However, I am also using Redux. This is causing an issue because the back action is handled by all Navigators. So I grab the dispatch and add a key for the initiating action. Then in the reducer, I decide if I need to handle it or not.
<View style={StyleSheet.absoluteFill}>
  <MainStack navigation={addNavigationHelpers({
    dispatch: (action) => {
      action._navigator = 'main';
      return dispatch(action);
    },
    state: mainNav,
  })} />
  <Modal
    animationType={"slide"}
    transparent={false}
    visible={identity.loginScreenVisible}
    onRequestClose={() => this._handleBackButton()}>
   <AuthStack navigation={addNavigationHelpers({
     dispatch: (action) => {
       action._navigator = 'auth';
       return dispatch(action);
     },
     state: authNav,
   })} />
  </Modal>
</View>

I have a workaround for this https://github.com/react-community/react-navigation/issues/232#issuecomment-286973451

I'm struggling with that also, @miracle2k your verbose solution works well if you don't have to do both transition (modal and slide) from the same screen,  I have the following screens
-Home
-List of items
--History
--Item details
Transitions wanted:

Home -> List:  slide
List of items -> History : modal
List of items -> Item details : modal

I can't have both transition for the List of Items screen, I want to slide to Item details and to open History as a Modal...
The workaround of wrapping the History view in a React Native Modal works well on iOS, but on Android the transition is super sluggish when opening the Modal, closing it works fine.
Someone found some workaround ?

#972

I would love to see the option of declaring an override for what type of mode you would want your screen to be in. Seems quite restrictive to not allow this as many apps mix and match between pushing to stack and modal views.

@miracle2k Is a best way to solve it

@miracle2k How do you then reference the parent modal navigation stack?

if you use android ,the card is even not work!!

Hello,
I have a modal working fine.  I have made the modal window transparent. But I have to reduce the opacity of background screen when modal is presented. Any workaround on this?

@miracle2k You can use this to navigate "card-style" in a modal:
import React, { Component } from 'react';
import { StackNavigator } from 'react-navigation';

export default function DismissableStackNavigator(routes, options) {
  const StackNav = StackNavigator(routes, options);

  return class DismissableStackNav extends Component {
    static router = StackNav.router;

    render() {
      const { state, goBack } = this.props.navigation;
      const nav = {
        ...this.props.navigation,
        dismiss: () => goBack(state.key),
      };
      return (
        <StackNav navigation={nav} />
      );
    }
  };
}

Then just do:
import { StackNavigator } from 'react-navigation';
import DismissableStackNavigator from '../DismissableStackNavigator';
import HomePage from '../HomePage';
import ScreenOne from '../ScreenOne';
import ScreenTwo from '../ScreenTwo';

const DismissableStack = DismissableStackNavigator({
  FirstScreen: {
    screen: ScreenOne,
    path: '/',
  },
  ScreenTwo: {
    screen: ScreenTwo,
    path: '/screentwo/',
  },
}, {
  headerMode: 'none',
});

export default StackNavigator({
  Home: {
    screen: HomePage,
    path: '/',
  },
  Modal: {
    DismissableStack: DismissableStack,
    path: '/',
  },
});

@miracle2k Can you share with me an example for the approach you mentioned ?

Pinging OP @SandroMachado since this issue is quite old and related to an old version of the lib. If no answer I'll close in 7 days.

Hi there @SandroMachado ,
In an effort to cleanup this project and prioritize a bit, since this issue had no follow up since my last comment I'm going to close it.
If you are still having the issue (especially if it's a bug report) please open a new issue that uses the new Issue Template to provide some more details to help us solve it.

This still happening!
@kelset can you please reopen the issue?

please create a new issue and post an example on https://snack.expo.io or in a github repo, without any superfluous code :) thanks


Downgrade gophercloud to 1.8.0

Follow up fix for #303.
The context handling bug was already introduced in gophercloud 1.9.0, such that we have to downgrade to 1.8.0.
I'm not sure why the build using 1.9.0 seemed to work during testing :-( .

See also https://github.com/gophercloud/gophercloud/issues/2969

v1.11.0 should be free from the bug. Feedback is very much welcome.


E2E using gce first pass

@aveshagarwal I am able to create a 3 node cluster in gce with pod being evicted for lownodeutilization case.  Please review when you find time. I believe, travis ci might complain because of encrypted file(client.json.enc) which will probably not be decrypted on this repo.
Some changes:

Now instead of running unit-tests, travis will run unit-tests + e2e's when using make test.
Before running make test, we need to ensure that gcloud_create_cluster.sh has been run. I have included that in the run-tests.sh(file renamed from run-unittests.sh)

Sample Output after running e2e:
evicting pods from node %#v with usage: %#v descheduler-b148f4c6-bd94-11e7-8e84-c85b76333877 map[cpu:2264 memory:263.78542244169597 pods:81.81818181818181]

@ravisantoshgudimetla thanks ravi, will look into it soon.

ok to test

ok to test

Can one of the admins verify this patch?

ok to test

retest this please

/test all

/test all

/test all

/test all

/test all

@aveshagarwal These are the latest changes:

test suite has been split into 2. Travis CI runs unit tests alone and Jenkins runs e2e's.
Makefile has been changed to reflect the new changes.
instead of make test, we should run make test-unit to run unit tests, make test-e2e. The e2e framework uses GCE to create a cluster.
github vendoring has been changed to reflect it.

So, the e2e is working on 1.9.3 cluster @ingvagabund @aveshagarwal. Let me know, if you have any other concerns.

/test e2e

WIP JJ: https://ci.openshift.redhat.com/jenkins/job/ci-kubernetes-descheduler-e2e-gce/
WIP JJ PR: https://github.com/openshift/aos-cd-jobs/pull/1232
Prow configs updated: https://github.com/openshift/release/pull/683

/test e2e

/test e2e

/test e2e

/test e2e

/test e2e

/test e2e

/test e2e

/test e2e

/test e2e

/test e2e

@ravisantoshgudimetla this PR updates vendor dir, but where are changes to glide.lock file?

@aveshagarwal I removed the dependency on those vendored files. I copied the function which I need to the test so it should run independently.

/test e2e

/test e2e

/test e2e

/test e2e

/test e2e

CI job merged.

@ingvagabund @ravisantoshgudimetla  is it ready for merge?

/lgtm


Fix two issues introduced by moving module code into a function body instead of being global code

Module export symbols do not get a register allocted and need to be
exempted from debugger symbol tracking by register. This was previously
working but broke after module export symbols moved to be non-global.

Some debug scenarios can cause the module body itself to be
defer-parsed. Previous code assumed that could never happen.

@pleath Would you mind taking a quick look?

@dotnet-bot test this please


WV-359 modified generate_date_as_integer functions to be wrappers of function in wevote_functions file

updated generate_date_as_integer local methods to use function in wevote_functions file
modified code to call function which replicated the already defined generate_date_as_integer function in wevote_function file
updated imports and comments to match current file status

👍 Great work @tejasaditya!


Everything stops working after reboot

Hi!
OS: Ubuntu 20.04
Firezone: 0.4.0
Kernel: 5.4.0-120-generic
Everything was working fine, a new install on a fresh VM. Nothing else running besides Firezone.
After a reboot it complains about:
2022-06-16_21:35:23.56023 [Thu Jun 16 23:35:09 2022] wireguard: wg-firezone: Invalid handshake initiation from <IP_ADDRESS>:29950
2022-06-16_21:35:23.56023 [Thu Jun 16 23:35:14 2022] wireguard: wg-firezone: Invalid handshake initiation from <IP_ADDRESS>:29950
2022-06-16_21:35:23.56024 [Thu Jun 16 23:35:18 2022] wireguard: wg-firezone: Invalid handshake initiation from <IP_ADDRESS>:29835
I've verified it is due to a reboot, the first time it happened I removed Firezone and reinstalled, then everything worked. Then I rebooted and now it complains about the above.

It’s likely the device keys aren’t set on the interface anymore. If you do a firezone-ctl restart does that fix the issue?
If so, the issue may be that the phoenix service isn’t coming up properly.
if not, the issue is likely that your OIDC refresh is erroring (if you’re using SSO) or your key has expired because of the “Require web auth to for vpn session timeout”

It’s likely the device keys aren’t set on the interface anymore. If you do a firezone-ctl restart does that fix the issue?

I've even tried generating a new device, that one doesn't work either. Tried with a firezone-ctl restart without any luck unfortunately.

If so, the issue may be that the phoenix service isn’t coming up properly.
if not, the issue is likely that your OIDC refresh is erroring (if you’re using SSO) or your key has expired because of the “Require web auth for vpn session timeout”

Web auth for vpn is disabled, either way I tried refreshing the OIDC Connection, and it still doesn't work.

Some more information:
I have no other applications running or interfering with Firezone, I do have UFW installed, but it's disabled.

Hmm. The plot thickens. If you run /opt/firezone/embedded/bin/wg show are the device public keys listed on the wireguard interface?
Is there anything interesting in the firezone-ctl tail phoenix log?
Could you summarize any changes you’ve made to /etc/firezone/firezone.rb?

Yeah, I think you've found the problem.
I created a test user and checked "Allow VPN" for that user, now that users devices can connect.
The problem now though is that my user (Admin) can't check that box... Any ideas?

@yeyeoke Can I ask what OIDC provider you're using? And what the Refresh Status is for these users in their OIDC Connections table?

Try re-enable all VPN sessions and reset the refresh status, try this:
/opt/firezone/embedded/bin/psql -U firezone -d firezone -p 15432 -h localhost -c "UPDATE users SET disabled_at = NULL"
/opt/firezone/embedded/bin/psql -U firezone -d firezone -p 15432 -h localhost -c "DELETE FROM oidc_connections WHERE 1 = 1"
firezone-ctl restart

I'll open an issue to improve the UX around this.

@yeyeoke Can I ask what OIDC provider you're using? And what the Refresh Status is for these users in their OIDC Connections table?

Okay, something is definitely going on. My users keep getting re-disabled when their OIDC Connections expires. Even though I thought I had disabled the need for a valid OIDC token.
This is the error message they get under OIDC Connections when they haven't logged in, for about 30 minutes:
ERROR: {"error": "invalid_grant", "error_description": "The provided authorization grant or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client"}
I can login and manually refresh the token, and then it says "OK", but they don't get reenabled for VPN Connections.
My OIDC provider is Authentik, https://github.com/goauthentik/authentik

Did some further testing, my test user, that haven't logged in since running:
/opt/firezone/embedded/bin/psql -U firezone -d firezone -p 15432 -h localhost -c "UPDATE users SET disabled_at = NULL"
/opt/firezone/embedded/bin/psql -U firezone -d firezone -p 15432 -h localhost -c "DELETE FROM oidc_connections WHERE 1 = 1"
firezone-ctl restart
Remains active and can use VPN. While myself as an admin has logged in, and as soon as my OIDC token expires my VPN is disabled.
Can I somehow decouple the two? I only wanted to use OIDC for SSO, so I can login to the webinterface and administer users. I 'd really never have the need for my VPN to rely on an OIDC token.

Give 0.4.1 a go. It might solve the problem. If it doesn't, might have to wait for 0.4.2

This is the error message they get under OIDC Connections when they haven't logged in, for about 30 minutes:

0.4.1 lowers the refresh interval to 10 minutes. It was meant to fix the issue for keycloak, which has 30mins refresh token, but I guess authentik has the same duration and will be fixed as well.

This is the error message they get under OIDC Connections when they haven't logged in, for about 30 minutes:

0.4.1 lowers the refresh interval to 10 minutes. It was meant to fix the issue for keycloak, which has 30mins refresh token, but I guess authentik has the same duration and will be fixed as well.

I believe that is configurable with Authentik.
This is how it's configured right now:

I've upgraded to 0.4.1. Will see in about an hour if the problem persists.

Updating to 0.4.1 didn't resolve this issue.
What's weird though, is if I run these commands:
/opt/firezone/embedded/bin/psql -U firezone -d firezone -p 15432 -h localhost -c "UPDATE users SET disabled_at = NULL"
/opt/firezone/embedded/bin/psql -U firezone -d firezone -p 15432 -h localhost -c "DELETE FROM oidc_connections WHERE 1 = 1"
firezone-ctl restart
And never sign in to Firezone, everything works fine. It's the expiry of my OIDC-token that also disables VPN. Is this intended? I figure there's a use case for such functionality, it just doesn't apply to me, is there any way to disable it?

@yeyeoke What's happening is that Firezone receives the refresh_token initially from Authentik, it expires after 30 minutes, and then Authentik revokes it likely because it's a one-time use token.
Do you mind sharing your Firezone OIDC configuration? If you add the offline_access scope in addition to openid email profile, does that make a difference?
cc @princemaple


Sunset Future Oracle googlesheet as the location of lookup tables

Issue
The "Future Oracle.xlsx" google sheet is what we were working on to collate all of the reference or lookup tables (I assume I can use both terms interchangeably) used in the GAP_PRODUCTS process. These tables (represented by different tabs in the google sheet) include:

[ ] AREA: stratum/subarea/management area/region areas and descriptions
[ ] STRATUM_GROUPS: stratum groupings for each management area/region
[ ] SPECIES_YEAR: starting date for some taxa where taxonomic confidence occurs after the established start year of the time series, e.g., NRS/SRS 1996-on, etc.
[ ] SURVEY_DESIGN: tracks which version of the strata to use (coded by the DESIGN_YEAR field) to either update stratum areas or transition between different stanzas of stratification like in the GOA.
[ ] METADATA_TABLE,  METADATA_COLUMN: field and table descriptions. Used in the metadata production of the GAP_PRODUCTS tables.

The current GAP_PRODUCTS production workflow is to download this google sheet locally within a user's cloned gap_products repo as flat files and then upload those files to the Oracle GAP_PRODUCTS schema before the Standard Data Products tables are created. The gapindex R package references the lookup tables in GAP_PRODUCTS and not the google sheet. Google sheets was an easy place to collate these reference tables because we can all view and easily manipulate the table during the development phase.
Proposed Solution
I think once we're close to finalizing these lookup tables (which I think we're fairly close), we should work to maintain these reference tables within Oracle and set up audit triggers whenever we add/delete/modify records. This would streamline the production run process and we could include those audit tables in a changelog. I think an audit system for these tables is appropriate because we expect these tables to not change as much as the Standard Data Products annually. I'm not sure how to set up audit triggers for a table in Oracle, so Ned will have to lead that effort if we decided to go down this route.
Expected Deadline
May 2024

@Ned-Laman-NOAA . In the push above, I created a sql script that houses some calls to create keys, audit tables, and insertion/deletion triggers for most of our GAP_PRODUCTS tables. I think I have a path for how to apply these audit tables to the four main tables (CPUE, BIOMASS, SIZECOMP, AGECOMP) so we don't have to drop the entire table and reupload every time we rerun the production scripts and instead we update the records that changed from the last production run. Glossing over a bunch of detail there but see if I coded these commands correctly.

@zoyafuso-NOAA these look coded correctly to me. alternatively, you can roll all 3 triggers into a single trigger if you'd prefer. You can do these are Pre or Post triggers too.
--E.G.,
CREATE OR REPLACE TRIGGER RACE_EDIT.PREINSUPDDEL_RB2_MIXTURE
BEFORE DELETE OR INSERT OR UPDATE
ON RACE_EDIT.RB2_MIXTURE
REFERENCING OLD AS PREV NEW AS NEW
FOR EACH ROW
BEGIN
IF INSERTING THEN
IF :NEW.PK_ID IS NULL
THEN
SELECT RB2_MIXTURE_PKSEQ.NextVal
INTO :NEW.PK_ID
FROM DUAL;
END IF;
:NEW.DATE_ENTERED := SYSDATE;
:NEW.ENTERED_BY := USER;
ELSIF UPDATING THEN
IF   :PREV.EDITING_NOTE IS NOT NULL
THEN SELECT :PREV.EDITING_NOTE||' / '||:NEW.EDITING_NOTE
INTO :NEW.EDITING_NOTE
FROM DUAL;
END IF;
:NEW.DATE_MODIFIED := SYSDATE;
:NEW.MODIFIED_BY := USER;
ELSIF DELETING THEN
INSERT INTO RACE_EDIT.RB2_MIXTURE_DELETIONS (
     PK_ID,
     DATE_ENTERED,
     AUDIT_FLAG,
     VESSEL,
     CRUISE,
     HAUL,
     SPECIES_CODE,
     SPECIES_NAME,
     NONSUB_WEIGHT,
     SUBSAMPLE_WEIGHT,
     SUBSAMPLE_NUMBERS,
     CALCULATED_WEIGHT,
     CALCULATED_NUMBERS,
     TOTAL_WEIGHT,
     TOTAL_NUMBERS,
     AVERAGE_WEIGHT,
     ENTRY_ORDER,
     DATE_AUDITED,
     RESOLVED_BY,
     DATE_RESOLVED,
     EDITING_NOTE,
     ENTERED_BY,
     DATE_MODIFIED,
     MODIFIED_BY,
     DATE_DELETED,
     DELETED_BY)
values(:PREV.PK_ID,
     :PREV.DATE_ENTERED,
     :PREV.AUDIT_FLAG,
     :PREV.VESSEL,
     :PREV.CRUISE,
     :PREV.HAUL,
     :PREV.SPECIES_CODE,
     :PREV.SPECIES_NAME,
     :PREV.NONSUB_WEIGHT,
     :PREV.SUBSAMPLE_WEIGHT,
     :PREV.SUBSAMPLE_NUMBERS,
     :PREV.CALCULATED_WEIGHT,
     :PREV.CALCULATED_NUMBERS,
     :PREV.TOTAL_WEIGHT,
     :PREV.TOTAL_NUMBERS,
     :PREV.AVERAGE_WEIGHT,
     :PREV.ENTRY_ORDER,
     :PREV.DATE_AUDITED,
     :PREV.RESOLVED_BY,
     :PREV.DATE_RESOLVED,
     :PREV.EDITING_NOTE,
     :PREV.ENTERED_BY,
     :PREV.DATE_MODIFIED,
     :PREV.MODIFIED_BY,
     SYSDATE,
     USER);

ELSE
raise_application_error(-20000, 'Nope');
END IF;
END;
/

Cool, thanks @Ned-Laman-NOAA for passing that along. I have started to play around with setting up the triggers so I'll incorporate those as well.

We now have an audit tables to document inserts/deletes/modifies for whenever these support tables are changed: GAP_PRODUCTS.AREA, SURVEY_DESIGN, METADATA_COLUMN, SPECIES_YEAR, or STRATUM_GROUPS.

well done, Zack. this isn't trivial and is going to pay dividends in the long run.


Does unsloth support token classification using phi3?

In theory yes - you'll need to delete the Causal LM Head, and replace it with a Classification head manually


Add 3024x1964 resolution (m* 14 inch macbook pro)

AFAIK You can add your custom resolution in option.txt file which should be placed in C:\IddSampleDriver\option.txt
Just place new line with content:
3024, 1964, 500
In my case it works


Can't run patrol tests with IOS simulator

Steps to reproduce

Make all steps that are written in docs related to setup
Run example test

Actual results
Have this issue
Thread:   <_NSMainThread: 0x151e09970>{number = 1, name = main}
Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
2023-10-03 14:23:20.853 xcodebuild[25050:1242256] [MT] DVTAssertions: Warning in /System/Volumes/Data/SWE/Apps/DT/BuildRoots/BuildRoot11/ActiveBuildRoot/Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-22267/IDEFoundation/Provisioning/Capabilities Infrastructure/IDECapabilityQuerySelection.swift:103
Details:  createItemModels creation requirements should not create capability item model for a capability item model that already exists.
Function: createItemModels(for:itemModelSource:)
Failed to build app with entrypoint test_bundle.dart for iOS simulator (xcodebuild exited with code 70) (19.8s)
Error: xcodebuild exited with code 70
Logs

Logs
<!-- Replace this line with your logs. Do not remove the backticks! -->

Patrol version
patrol: 2.3.0
Patrol Doctor output

Patrol Doctor output
<!-- Replace this line with your logs. Do not remove the backticks! -->

Flutter Doctor output

Flutter Doctor output
<!-- Replace this line with your logs. Do not remove the backticks! -->

Not reproducible. Please include all the information required by the bug report template.

Issue has to do w/ running Patrol with XCode 15 - https://github.com/flutter/flutter/issues/135277


⚠ tradingpost.kiondaga.org has degraded performance

In bb55252, tradingpost.kiondaga.org (https://tradingpost.kiondaga.org) experienced degraded performance:

HTTP code: 520
Response time: 438 ms

Resolved: tradingpost.kiondaga.org performance has improved in b236edc after 16 minutes.


Add use_internal_tf to the JobMetadata

Signed-off-by: Frantisek Lachman<EMAIL_ADDRESS>When used, a project needs to be enabled in the service configuration
to be able to use the internal Testing Farm instance.

REGATE

regate

regate

Zuul got stuck with the gating, merging manually.


Proposed framework for oscal to oscal transformations

Issue description / feature objectives
Trestle tasks have been construed for unique tasks which may include a large number of parameters related to content that is external. The complexity of this has relied on a configuration file approach to perform various transformations.
When we consider OSCAL files exclusively the complexity is more limited and may be containable to a relatively straight forward command.
The objective here would be (as far as is practical) allow chaining of the transformations. Under this the suggestion is of the form:
trestle transform {input top level model type} --input {potentially multiple instances} --output {single output model} --transform x --transform y --transform {order of operations specified by order provided} --extra-params.
Under this regime all parameters required for the transforms would be globally scoped across all transforms (e.g. if a profile is provided it is consistently used). This will limit the depth of transform that is executable, however should contain the complexity.
A note on files authored using trestle author in markdown

This issue presumes that users of this functionality must first convert the markdown to oscal then run the transformation tasks.
It may be possible to cross link this functionality as well.

Transforms
Plase note names are indicative
filter-by-profile:

Filters the input document by the controls / parts of a corresponding resolved profile
Applies too (in decreasing order of priority:

SSP
Component Def
AP
AR
POAM

Is a 1:1 map of the same type for input to output

Required a --profile to be passed

filter-exclude-components

Removes components specified by a --components argument and returns the same object to the output location
Applies to:

Component definition
SSP
AP
AR
POAM

filter-include-components

Filters exclusively for components specified by a --components argument and returns the same object to the output location
Applies to:

Component definition
SSP
AP
AR
POAM

jijna
Applies to all documents where the document model is processed through a jinja engine. It presumes that the context for templates is the trestle root directory and users can pass:

Input include files
binary vars that will be true when passed e.g --jinja-var=foo
A limited set of pre-built jinja vars that can be extrapolated and documented (e.g. current time)
Requires special handling of OSCAL parameter substitutions

aggregate

many to one aggregation of a given document type with precedence

resolve profile

Runs the profile resolution process
input is one profile
output is one catalog

Transform between types
component-defintion-to-ssp

Best effort conversion from a component definition to a ssp

ssp-to-ap
Best effort conversion of a ssp to an ap
ap-ar
Best effort conversion of an ap to an ar.
cd-profile
Use the component definition to configure a 'all controls used and configured' profile
ssp -> component definition
Convert a ssp to a vendor statement (potentially with property based filter)
Caveats / Assumptions

Transformations are exclusively based on the assumption we are handling a top level object.

One to many transforms are not supported, run mulitple workflows.
if mutliple inputs are provided an aggregation operation is required

Transform operations and arguments

type
input
transform
output
header
filter-by
regenerate
sections

profile
my_prof_json
generate
my_prof_cat_md
my_header

sec1,sec2

ssp
my_prof_cat_md
assemble
my_ssp_json

comp1,comp2
x

catalog
my_cat_json
generate
my_cat_md
my_header

catalog
my_cat_md
assemble
my_cat_json

x

ssp
my_ssp_json
filter
my_filtered_ssp_json

my_prof_json