Introduce PPCommand

Since we are working on #2917 and #2919 (and more to come as we move along) we should introduce a new type of command class. The PPCommand. That base class should have the following:

logic to handle different environments
handle all Power Platform services based on this environment

The PowerShell samples use a -Endpoint parameter within the Add-PowerAppsAccount cmdlet (and picks the default production endpoint when none is specified). Given the nature of the CLI I feel that we should use a slightly different approach. For me it makes the most sense to use the m365 cli config set and add an additional parameter there called PowerPlatformEndpoint. Should be a string value with a few options (Valid options are "dod", "prod","preview","tip1", "tip2", "usgov", or "usgovhigh".)
@pnp/cli-for-microsoft-365-maintainers how do you feel about that?

Good suggestion @appieschot 👍
As the word environment has a special meaning in Power Platform, would using tenant in the naming be more appropriate? In the sense that the tenant type determines the difference in endpoint?

Yeah was struggling a bit with that one, the Power Platform cmdles use Environement, the official MS docs talk about environements as well, but I figured we are using an endpoint, hence the PowerPlatformEndpoint property..  The option to use a  TenantType also makes sense.

I was thinking more of PowerPlatformTenantType as the setting name as an alternative to Endpoint, it doesn't feel to me an an appropriate name for it albeit it's used in the official commands.

Like the PowerPlatformTenantType minor bump for @pnp/cli-for-microsoft-365-maintainers but for me that settles it :D

Great suggestion. Aren't DOD, GCC, etc. cloud types? Also, should we require users to specify it or shall we rather handle it end to end? If you use a different cloud, wouldn't you also need to login to that cloud using the correct AAD login URL (which we currently don't support)?

@waldekmastykarz Great question; I think you can get preview one assigned to your tenant without having to login to a different AAD login but for the others I am not sure ..

Let's have a close look at it before we proceed

So you can get whitelisted for preview (MS employees might get whitelisted for tip1). Those environments do not require a different authentication approach; so we should support those. assuming we should also do tip2 to be sure. The others I have no clue if we can figure out how to support those. Would those environments allow connections if you would use the OOB Azure AD App registration (as that is used in PowerShell I would assume so, and if that is the case we should be able to support them right).

If we're talking about different clouds (GCC, Azure Germany, etc.) then you need an AAD app registered in that cloud to connect to it and you need to use the specific set of URLs tied to that cloud to login. I don't know though if that's in any way related to Power Platform clouds/environments or not.

Technically speaking the way Power Platform works (in PowerShell is as follows):

you log in using an account (by default it logs you into the production environment)
you can specify a Environement parameter
Each time you execute anything against the Power Platform a helper method is called to determine the correct Power Platform URI
By no parameter it falls back to the default (production URI), and by a specified environment it uses that URL.

That said there seems to be no logic to validate what AAD app registration you are using the PS cmdlets,

Does the login command allow you to specify the cloud?

Yes the login command allows you to specify the cloud type by passing in the environment parameter.

We should have a closer look at how it fits into our structure. Do you have some code that we could review or a PoC for the CLI?

Okey there is a little bit of magic in place for for the audience so I am not 100% sure if we can replicate that (all code below); but it also doesn't feel like something should be possible. Will try to find some time to do a PoC for CLI.
The current implementation in PowerShell is as follows:
Step 1: Pass the EndPoint Parameter
        [ValidateSet("prod","preview","tip1", "tip2", "usgov", "usgovhigh", "dod", "china")]
        [string]$Endpoint = "prod",

Step 3: Determine the Audience (remark that the PowerShell commandlets allow you to set a different audience URL
    if ($Audience -eq "https://service.powerapps.com/")
    {
        # It's the default audience - we should remap based on endpoint as needed
        $Audience = Get-DefaultAudienceForEndPoint($Endpoint)
    }
 ...
    $audienceMapping = @{
        "prod" = "https://service.powerapps.com/";
        "preview" = "https://service.powerapps.com/";
        "tip1"= "https://service.powerapps.com/";
        "tip2"= "https://service.powerapps.com/";
        "usgov"= "https://gov.service.powerapps.us/";
        "usgovhigh"= "https://high.service.powerapps.us/";
        "dod" = "https://service.apps.appsplatform.us/";
        "china" = "https://service.powerapps.cn/";
    }

    if ($null -ne $audienceMapping[$Endpoint])
    {
        return $audienceMapping[$Endpoint];
    }

Then there is this large internal method to set the PowerAppsAcc that holds all that logic and does an extra Switch to determine the correct URL.
function Add-PowerAppsAccountInternal
{
    param
    (
        [string] $Audience = "https://service.powerapps.com/",

        [Parameter(Mandatory = $false)]
        [ValidateSet("prod","preview","tip1", "tip2", "usgov", "usgovhigh", "dod", "china")]
        [string]$Endpoint = "prod",

        [string]$Username = $null,

        [SecureString]$Password = $null,

        [string]$TenantID = $null,

        [string]$CertificateThumbprint = $null,

        [string]$ClientSecret = $null,

        [string]$ApplicationId = "1950a258-227b-4e31-a9cf-717495945fc2"
    )

    [string[]]$scopes = "$Audience/.default"
    if ([string]::IsNullOrWhiteSpace($ApplicationId))
    {
        $ApplicationId = "1950a258-227b-4e31-a9cf-717495945fc2"
    }

    Write-Debug "Using appId, $ApplicationId"

    [Microsoft.Identity.Client.IClientApplicationBase]$clientBase = $null
    [Microsoft.Identity.Client.AuthenticationResult]$authResult = $null

    if ($global:currentSession.loggedIn -eq $true -and $global:currentSession.recursed -ne $true)
    {
        Write-Debug "Already logged in, checking for token for resource $Audience"
        $authResult = $null
        if ($global:currentSession.resourceTokens[$Audience] -ne $null)
        {
            if ($global:currentSession.resourceTokens[$Audience].accessToken -ne $null -and `
                $global:currentSession.resourceTokens[$Audience].expiresOn -ne $null -and `
                $global:currentSession.resourceTokens[$Audience].expiresOn -gt (Get-Date))
            {
                Write-Debug "Token found and value, returning"
                return
            }
            else
            {
                 # Already logged in with an account, silently asking for a token from MSAL which should refresh
                try
                {
                    Write-Debug "Already logged in, silently requesting token from MSAL"
                    $authResult = $global:currentSession.msalClientApp.AcquireTokenSilent($scopes, $global:currentSession.msalAccount).ExecuteAsync() | Await-Task
                }
                catch [Microsoft.Identity.Client.MsalUiRequiredException]
                {
                    Write-Debug ('{0}: {1}' -f $_.Exception.GetType().Name, $_.Exception.Message)
                }
            }
        }

        if ($authResult -eq $null)
        {
            Write-Debug "No token found, reseting audience and recursing: $Audience"
            # Reset the current audience values and call Add-PowerAppsAccount again
            $global:currentSession.resourceTokens[$Audience] = $null
            $global:currentSession.recursed = $true

            Add-PowerAppsAccountInternal -Audience $Audience -Endpoint $Endpoint -Username $global:currentSession.username -Password $global:currentSession.password -TenantID $global:currentSession.InitialTenantId -CertificateThumbprint $global:currentSession.certificateThumbprint -ClientSecret $global:currentSession.clientSecret -ApplicationId $global:currentSession.applicationId
            $global:currentSession.recursed = $false

            # Afer recursing we can early return
            return
        }
    }
    else
    {
        [string] $jwtTokenForClaims = $null
        [Microsoft.Identity.Client.AzureCloudInstance] $authBaseUri =
            switch ($Endpoint)
                {
                    "usgov" { [Microsoft.Identity.Client.AzureCloudInstance]::AzurePublic }
                    "usgovhigh" { [Microsoft.Identity.Client.AzureCloudInstance]::AzureUsGovernment }
                    "dod"       { [Microsoft.Identity.Client.AzureCloudInstance]::AzureUsGovernment }
                    "china"       { [Microsoft.Identity.Client.AzureCloudInstance]::AzureChina }
                    default     { [Microsoft.Identity.Client.AzureCloudInstance]::AzurePublic }
                };

        [Microsoft.Identity.Client.AadAuthorityAudience] $aadAuthAudience = [Microsoft.Identity.Client.AadAuthorityAudience]::AzureAdAndPersonalMicrosoftAccount
        if ($Username -ne $null -and $Password -ne $null)
        {
            $aadAuthAudience = [Microsoft.Identity.Client.AadAuthorityAudience]::AzureAdMultipleOrgs
        }

        Write-Debug "Using $aadAuthAudience : $Audience : $ApplicationId"

        if (![string]::IsNullOrWhiteSpace($TenantID) -and `
            (![string]::IsNullOrWhiteSpace($ClientSecret) -or ![string]::IsNullOrWhiteSpace($CertificateThumbprint)))
        {
            $options = New-Object -TypeName Microsoft.Identity.Client.ConfidentialClientApplicationOptions
            $options.ClientId = $ApplicationId
            $options.TenantId = $TenantID

            [Microsoft.Identity.Client.IConfidentialClientApplication ]$ConfidentialClientApplication = $null

             if (![string]::IsNullOrWhiteSpace($CertificateThumbprint))
            {
                Write-Debug "Using certificate for token acquisition"
                $clientCertificate = Get-Item -Path Cert:\CurrentUser\My\$CertificateThumbprint
                $ConfidentialClientApplication = [Microsoft.Identity.Client.ConfidentialClientApplicationBuilder ]::Create($ApplicationId).WithCertificate($clientCertificate).Build()
            }
            else
            {
                Write-Debug "Using clientSecret for token acquisition"
                $ConfidentialClientApplication = [Microsoft.Identity.Client.ConfidentialClientApplicationBuilder ]::Create($ApplicationId).WithClientSecret($ClientSecret).Build()
            }

            $authResult = $ConfidentialClientApplication.AcquireTokenForClient($scopes).WithAuthority($authBaseuri, $TenantID, $true).ExecuteAsync() | Await-Task
            $clientBase = $ConfidentialClientApplication
        }
        else
        {
            [Microsoft.Identity.Client.IPublicClientApplication]$PublicClientApplication = $null
            $PublicClientApplication = [Microsoft.Identity.Client.PublicClientApplicationBuilder]::Create($ApplicationId).WithAuthority($authBaseuri, $aadAuthAudience, $true).WithDefaultRedirectUri().Build()

            if ($Username -ne $null -and $Password -ne $null)
            {
                Write-Debug "Using username, password"
                $authResult = $PublicClientApplication.AcquireTokenByUsernamePassword($scopes, $UserName, $Password).ExecuteAsync() | Await-Task
            }
            else
            {
                Write-Debug "Using interactive login"
                $authResult = $PublicClientApplication.AcquireTokenInteractive($scopes).ExecuteAsync() | Await-Task
            }
            $clientBase = $PublicClientApplication
        }
    }

    if ($authResult -ne $null)
    {
        if (![string]::IsNullOrWhiteSpace($authResult.IdToken))
        {
            $jwtTokenForClaims = $authResult.IdToken
        }
        else
        {
            $jwtTokenForClaims = $authResult.AccessToken
        }

        $claims = Get-JwtTokenClaims -JwtToken $jwtTokenForClaims

        if ($global:currentSession.loggedIn -eq $true)
        {
           Write-Debug "Adding new audience to resourceToken map. Expires $authResult.ExpiresOn"
            # addition of a new token for a new audience
            $global:currentSession.resourceTokens[$Audience] = @{
                accessToken = $authResult.AccessToken;
                expiresOn = $authResult.ExpiresOn;
            };
        }
        else
        {
            Write-Debug "Adding first audience to resourceToken map. Expires $authResult.ExpiresOn"
            $global:currentSession = @{
                loggedIn = $true;
                recursed = $false;
                msalClientApp = $clientBase;
                msalAccount = $authResult.Account;
                upn = $claims.upn;
                InitialTenantId = $TenantID;
                tenantId = $claims.tid;
                userId = $claims.oid;
                applicationId = $ApplicationId;
                username = $Username;
                password = $Password;
                certificateThumbprint = $CertificateThumbprint;
                clientSecret = $ClientSecret;
                resourceTokens = @{
                    $Audience = @{
                        accessToken = $authResult.AccessToken;
                        expiresOn = $authResult.ExpiresOn;
                    }
                };
                selectedEnvironment = "~default";
                flowEndpoint =
                    switch ($Endpoint)
                    {
                        "prod"      { "api.flow.microsoft.com" }
                        "usgov"     { "gov.api.flow.microsoft.us" }
                        "usgovhigh" { "high.api.flow.microsoft.us" }
                        "dod"       { "api.flow.appsplatform.us" }
                        "china"     { "api.powerautomate.cn" }
                        "preview"   { "preview.api.flow.microsoft.com" }
                        "tip1"      { "tip1.api.flow.microsoft.com"}
                        "tip2"      { "tip2.api.flow.microsoft.com" }
                        default     { throw "Unsupported endpoint '$Endpoint'"}
                    };
                powerAppsEndpoint =
                    switch ($Endpoint)
                    {
                        "prod"      { "api.powerapps.com" }
                        "usgov"     { "gov.api.powerapps.us" }
                        "usgovhigh" { "high.api.powerapps.us" }
                        "dod"       { "api.apps.appsplatform.us" }
                        "china"     { "api.powerapps.cn" }
                        "preview"   { "preview.api.powerapps.com" }
                        "tip1"      { "tip1.api.powerapps.com"}
                        "tip2"      { "tip2.api.powerapps.com" }
                        default     { throw "Unsupported endpoint '$Endpoint'"}
                    };
                bapEndpoint =
                    switch ($Endpoint)
                    {
                        "prod"      { "api.bap.microsoft.com" }
                        "usgov"     { "gov.api.bap.microsoft.us" }
                        "usgovhigh" { "high.api.bap.microsoft.us" }
                        "dod"       { "api.bap.appsplatform.us" }
                        "china"     { "api.bap.partner.microsoftonline.cn" }
                        "preview"   { "preview.api.bap.microsoft.com" }
                        "tip1"      { "tip1.api.bap.microsoft.com"}
                        "tip2"      { "tip2.api.bap.microsoft.com" }
                        default     { throw "Unsupported endpoint '$Endpoint'"}
                    };
                graphEndpoint =
                    switch ($Endpoint)
                    {
                        "prod"      { "graph.windows.net" }
                        "usgov"     { "graph.windows.net" }
                        "usgovhigh" { "graph.windows.net" }
                        "dod"       { "graph.windows.net" }
                        "china"     { "graph.windows.net" }
                        "preview"   { "graph.windows.net" }
                        "tip1"      { "graph.windows.net"}
                        "tip2"      { "graph.windows.net" }
                        default     { throw "Unsupported endpoint '$Endpoint'"}
                    };
                cdsOneEndpoint =
                    switch ($Endpoint)
                    {
                        "prod"      { "api.cds.microsoft.com" }
                        "usgov"     { "gov.api.cds.microsoft.us" }
                        "usgovhigh" { "high.api.cds.microsoft.us" }
                        "dod"       { "dod.gov.api.cds.microsoft.us" }
                        "china"     { "unsupported" }
                        "preview"   { "preview.api.cds.microsoft.com" }
                        "tip1"      { "tip1.api.cds.microsoft.com"}
                        "tip2"      { "tip2.api.cds.microsoft.com" }
                        default     { throw "Unsupported endpoint '$Endpoint'"}
                    };
            };
        }
    }
}

Awesome research. Let's try to make a PoC to see how we could make it fit with the CLI 👏

Updated title to reflect current state. Will execute POC on authentication options with different endpoints.

@pnp/cli-for-microsoft-365-maintainers I have the feeling we can close this one; feels like there is not too much interest on this and we should focus on implementing the other pp commands first. What do you think?

It's still a good idea though... shouldn't we just add it to the pp epic?

@martinlingstuyl my reasoning was to close this one; put a v3 something on the PP epic so that if we ever have 'time' we can come back to this one and spec out an improved version. As we currently already have a baseclass to retrieve the Dynamics info we could 're-use' some of that logic perhaps.

Fine by me: we can't do everything in one go. We'll fix it when it comes up as urgent :)


workers not being created in private subnets only

When using the default example given, while passing in public and private subnets. The workers are randomly put in public and private subnets.
It should be possible to put all the worker nodes into the private subnets and the ELB created in the public. However there does'nt seem to an example of this.
What is the current behavior?
worker nodes are randomly assigned to public or private subnets.
If this is a bug, how to reproduce? Please include a code sample if relevant.
Us ethe default example and passing subnets for bother public/private subnets and select ASAG size of 4 when you have 6 subnets in the list. 3 of each public and private.
What's the expected behavior?
That all workers get started in private.

What's the expected behavior? That all workers get started in private.

Then just pass private subnets only. Why would you pass both when want to use only private subnets for your nodes?

I think I miss understood
https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html
Thats seems to imply we have to add both public and private subnets for thepublic ELB created by kubernetes to occur.

after testing, this indeeds seems to be a problem. If you don't add an public subnet to the subnet list. It won't allow you to create public ELB even thow the kubernetes templates request it.

Hi @t5unamie ,
The Kubernetes Service controller, when run in AWS, uses tags on the subnets to know where it is allowed to create ELBs. The VPC and all subnets you want to use have to be tagged with kubernetes.io/cluster/$cluster_name = shared. The controller will then look at the routing rules to figure out which is "public" and which "private" if no other tags are set.
Public ELBs will only be created in "public" subnets. Private ELBs will prefer "private" subnets and fall back to "public" if no privates exist. You can also use tags on subnets to hint to the controller which subnets to use. This is especially important if you have multiple subnets of the same type in the same AZ as an ELB can only use one subnet per AZ:

Private subnets with kubernetes.io/role/internal-elb = 1
Public subnets with kubernetes.io/role/elb = 1

The EKS service will apply these tags to your VPC and subnets for you when you create the cluster. Terraform will remove these tags on subsequent runs if you also manage your VPC with Terraform and don't assign the tags. Or ignore them with the new provider ignore_tag_prefixes and ignore_tags options.
You are not required to assign all public and private subnets to EKS. Just assign it enough to cover the AZs you are using so it will create suitable ENIs. And ensure you have the subnets tagged.
Appropriate subnet tagging, using this org's VPC module, is shown in the basic example here
Another option, to directly address your original issue, is to pass in the private subnet IDs to your worker group or the default for all groups:
module "eks_cluster" {
  # ...
  workers_group_defaults = {
    subnets = module.vpc.private_subnets
  }
}

HTH

Amen @dpiddockcmp 🙏


Error running with nightly

I can only seem to run with nightly-2017-06-29 later versions give
I think the issue is fixed in https://github.com/zslayton but not your local fork.
error: use of unstable library feature 'iterator_step_by': unstable replacement of Range::step_by (see issue #27741)
--> /home/glenn/.cargo/git/checkouts/cron-652715304a961849/bcd3b79/src/time_unit/mod.rs:79:55
|
79 |                 Ok((start..Self::inclusive_max() + 1).step_by(step).collect())
|                                                       ^^^^^^^
|
= help: add #![feature(iterator_step_by)] to the crate attributes to enable
error[E0308]: mismatched types
--> /home/glenn/.cargo/git/checkouts/cron-652715304a961849/bcd3b79/src/time_unit/mod.rs:79:63
|
79 |                 Ok((start..Self::inclusive_max() + 1).step_by(step).collect())
|                                                               ^^^^ expected usize, found u32
PS do you think it is doable to fork a version that runs on stable rust ?
I ask as the unstable features
#![feature(collections_range)]
#![feature(conservative_impl_trait)]
#![feature(step_by)]
don't seem to be moving towards stable very fast and I wonder if it would be easier for me to fork to use stable features. (Haven't looked at the code yet so I don't know if it is worth my time)
Thanks

cron hasn't had a new release that fixes that sadly. We could pin a git version I suppose as its been a few months and the fix is on master. @zslayton Anything I can do to help here?

This crate doesn't actually use any unstable features. They're all in cron.

iterator_step_by is planned to be coming out in Rust 1.21 (~ October 12)
conservative_impl_trait (same as above)

step_by could be replaced with https://github.com/saghm/stepper
conservative_impl_trait is only used and could be replaced by a little macro

I'm going to publish an updated version of the crate to fix the build issue this evening.
I'd be ok with replacing step_by, but I have a pull request pending that will make heavier use of impl Trait. That too could be supplanted by new data types, but it'd be more work. Getting onto stable is a worthwhile goal, though. Let me give this some thought.

I've published v0.4 to crates.io.

@zslayton Awesome, thanks. I'll get that integrated into here soon.


Feat: add support for typed JSON columns

From gitter:

Hi! Have the following question: I have some properties in my model classes which I want to store as jsonb by at the same type map to non-scalar ObjectTypes. I was able to achieve that by combining @WarthogField('json') @ColumType('jsonb') and @Field() decorators. Almost everything works smoothly out of the box (including the really cool json support in whereInputs), except for the fact that the output skips this field as it's non-scalar. I had to hack it around by manually adding that field to the fields array pass down to the services, is there a more elegant way to do that? Sorry if the q is too messy

@ObjectType()
export class EventParam {
  @Field()
  type!: string

  @Field()
  name?: string

  @Field(() => GraphQLJSON)
  value!: AnyJsonField
}
export class Foo extends BaseModel {
@Field(() => [EventParam], { nullable: true })
  @Column('jsonb')
  @WarthogField('json', { nullable: true })
  params?: EventParam[]
}

PR ready here: https://github.com/goldcaddy77/warthog/pull/412


Suggestion: HOC factory

It would be nice if there were a function that would allow the creation of HOCs based on props within a compose pipeline. For example, I have something like this in one piece of code:
branch(
  ({ theme }) => theme.globalStyles,
  compose(
    BaseComponent => props => {
      const WrappedComponent = withStyles(props.theme.globalStyles)(BaseComponent)
      return <WrappedComponent {...props} />
    },
    omitProps('classes')
  )
)

The idea is that the withStyles HOC from Material UI requires a stylesheet object, but in this case, I want to get the stylesheet out of the props being passed down throughout a pipeline of recompose HOCs. It would be great if recompose included a function that would allow something like:
branch(
  ({ theme }) => theme.global,
  compose(
    createHOC(({ theme }) => withStyles(theme.global)),
    omitProps('classes')
  )
)

In your code you recreate WrappedComponent on every render, not good
Im pretty sure that author of WithStyles hoc will accept a PR allowing to initialize theme from props
I dont think that its a good idea because it will be always better to change the root of the problem and not to create workarounds.

@istarkov You're right, the code should look something like:
const withThemeGlobalStyles = BaseComponent => {
  let globalStyles
  let WrappedComponent
  const WithThemeGlobalStyles = props => {
    if (globalStyles !== props.theme.globalStyles) {
      globalStyles = props.theme.globalStyles
      WrappedComponent = WrappedComponent || withStyles(props.theme.globalStyles)(BaseComponent)
    }
    return <WrappedComponent {...props} />
  }
  /* set display name */
  return WithThemeGlobalStyles
}

As Material UI's 1.0 release nears, I strongly doubt they will accept a change to the withStyles API. I find that the majority of HOCs in other libraries do not have a way to get HOC settings from props, so I'm not sure that I agree about what is the root of the problem. It seems unlikely that the makers of say, Apollo, would introduce a new API for their graphql HOC so that the gql query could be passed in as a prop from another higher order component, and frankly I'm not sure if they should as it's a pattern that is not necessarily specific to Apollo.
What I'm proposing is a generic pattern that would allow any HOC to be enhanced so that rather than having to pre-configure the HOC with known arguments, its configuration would be taken from the props passed to it. Maybe this pattern doesn't make sense, as the logic of whether to recreate the wrapped component on subsequent renders will depend on which props the HOC uses for its configuration. It just seems like a natural extension from the composition/branching style encouraged by recompose.

spinner can be done without any extension also
renderComponent((props) => <div>{ props.spinner
Apollo gql as I know need a static string to work otherwise query cant be precompiled so apollo creators has a reason to prevent passing it via props.
So I still not see any good example for this.

Okay, I will find another approach.


Helper for Scaleway C1 server arm arch

Hi,
I'm hacking for fun on supporting building the omnibus chef server on ScaleWay small ARM nodes. To do that I must be able to detect that I'm building on that arch, hence this PR

The failing build is due to chef-zero requiring ruby 2.1

So phast 👍


Gradle dependency verification conflicts with using semanticdb plugin

I tried to index gradle/gradle repo, and while it got further than previous attempts, it raised an interesting problem:
[error] A problem occurred configuring project ':build-logic'.
[error] > Could not determine the dependencies of null.
[error]    > Could not resolve all task dependencies for configuration ':build-logic:classpath'.
[error]       > Could not resolve project :build-logic-commons:gradle-plugin.
[error]         Required by:
[error]             project :build-logic
[error]          > Could not create task ':build-logic-commons:gradle-plugin:compileKotlin'.
[error]             > Dependency verification failed for configuration ':build-logic-commons:gradle-plugin:detachedConfiguration3'
[error]               One artifact failed verification: semanticdb-kotlinc-0.3.0.jar (com.sourcegraph:semanticdb-kotlinc:0.3.0) from repository MavenRepo
[error]               This can indicate that a dependency has been compromised. Please carefully verify the signatures and checksums.

Gradle has strict listing of keys for all the dependencies in https://github.com/gradle/gradle/blob/master/gradle/verification-metadata.xml, but semanticdb-kotlinc is obviously not there.
The public key used to sign the kotlin plugin is actually published: https://keyserver.ubuntu.com/pks/lookup?search=10B04CB7EF0E44A9&fingerprint=on&op=index
Ref: #175 which is no longer valid

I think this can be circumvented by using --write-verification-metadata pgp,sha256 flag


fix(util): fix missing updates

Manditory Checks

[x] I added new tests for the issue I fixed or the feature I built
[x] I ran npm test for the package I'm modifying
[x] I used npm run commit instead of git commit

LGTM


Problems with attached Image

Have some problem while i attach image. It not sync in QBO.
https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/attachable#upload-attachments
https://github.com/intuit/QuickBooks-V3-PHP-SDK/blob/master/src/_Samples/UploadAttachment.php
I refer above to link for attachment upload into QBO but after upload image it show blank in QBO. It's happens in Sandbox as well as Production.
Attachment request are below mention and check it any mistake or not.
`QuickBooksOnline\API\Data\IPPAttachable Object
(
[FileName] => Dhtmlx_Scheduler_map_view.png
[FileAccessUri] =>
[TempDownloadUri] =>
[Size] =>
[ContentType] =>
[Category] => Image
[Lat] =>
[Long] =>
[PlaceName] =>
[Note] =>
[Tag] => png_77583191020201026051046
[ThumbnailFileAccessUri] =>
[ThumbnailTempDownloadUri] =>
[AttachableEx] =>
[Id] =>
[SyncToken] =>
[MetaData] =>
[CustomField] =>
[AttachableRef] => QuickBooksOnline\API\Data\IPPAttachableRef Object
(
[EntityRef] => QuickBooksOnline\API\Data\IPPReferenceType Object
(
[name] =>
[type] => Purchase
[value] => 3026
)
    [LineInfo] =>
    [IncludeOnSend] =>
    [CustomField] =>
    [AttachableRefEx] =>
)

[domain] =>
[status] =>
[sparse] =>
)`
And it give me response as below.
`QuickBooksOnline\API\Data\IPPAttachableResponse Object
(
[Attachable] => QuickBooksOnline\API\Data\IPPAttachable Object
(
[FileName] => Dhtmlx_Scheduler_map_view.png
[FileAccessUri] => /v3/company/123146033771859/download/5000000000000562783
[TempDownloadUri] => https://intuit-qbo-prod-6.s3.amazonaws.com/123146033771859/attachments/b6188d39-c5f2-4fbc-b7d9-dd7da4dedebbDhtmlx_Scheduler_map_view.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20201026T051047Z&X-Amz-SignedHeaders=host&X-Amz-Expires=900&X-Amz-Credential=AKIA3V3MBG4KLHZEBYNA%2F20201026%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=3b365cc0b4ba58ee0057e6bd36fd20a5596871643cede2695780e1e2698ccdbf
[Size] => 31
[ContentType] => image/png
[Category] => Image
[Lat] =>
[Long] =>
[PlaceName] =>
[Note] =>
[Tag] => png_77583191020201026051046
[ThumbnailFileAccessUri] => /v3/company/123146033771859/attachable-thumbnail/5000000000000562783
[ThumbnailTempDownloadUri] =>
[AttachableEx] =>
[Id] =><PHONE_NUMBER>000562783
[SyncToken] => 0
[MetaData] => QuickBooksOnline\API\Data\IPPModificationMetaData Object
(
[CreatedByRef] =>
[CreateTime] => 2020-10-25T22:10:47-07:00
[LastModifiedByRef] =>
[LastUpdatedTime] => 2020-10-25T22:10:47-07:00
[LastChangedInQB] =>
[Synchronized] =>
)
    [CustomField] =>
    [AttachableRef] => QuickBooksOnline\API\Data\IPPAttachableRef Object
        (
            [EntityRef] => 3026
            [LineInfo] =>
            [IncludeOnSend] => false
            [CustomField] =>
            [AttachableRefEx] =>
        )

    [domain] =>
    [status] =>
    [sparse] =>
)

[Fault] =>
)`
After upload image in QBO, Had been checked in QBO but it shows blank. That screenshot also i attached in attachment, so can check.
Let me know if any wrong from my side so i can solve in Sandbox and Production.

Anyone have solution about this issues? Please guide me correct way so i can solve this issues. It's critical for my project ..

@akashweenggs : The upload() accepts base_64 encode of the attachement as the parameter. The sample says base_64_decode. Kindly change it to as shown below :
$resultObj = $dataService->Upload($imageBase64[$sendMimeType],
                                  $objAttachable->FileName,
                                  $sendMimeType,
                                  $objAttachable);

We will address this error with a fix or any PR's are welcome.


Replace anyhow with thiserror

As this is a library crate, it should not use anyhow.
It should rather use thiserror and define actual error types, that a user can then handle properly and as they think it is best for them.
This PR refactors the codebase to use thiserror rather than anyhow.
Some of these error kinds are still not nice, but I guess it is a starting point. Please tell me what you think!

After fixing the divergence between master and the published crates (by merging #113), there are now some conflicts with this rather widespread change. I agree that it is a good thing to do, thanks for pushing for it! Will do a full PR review now.

Thanks for the in-depth review! I cannot do the fixes right now. Maybe later today, if not then tomorrow! I am eager to get this in! :+1:
Thanks for the in-depth review!

I am about to rebase this btw

I don’t like dyn Error very much, but the alternative is to add two enum variants and make it Error<PutError, GetError>, possibly held in an associated type

There's the third alternative:
Make the BlockWriter and ReadOnlyStore traits have an associated type:
trait BlockWriter {
    type Error;
    // ...
}

And use our own error type only for places where we implement these traits within the codebase. The associated type might need a : From<banyan::error::Error> bound, but that's not too much of an issue, IMO.
I don't think that's too much effort. Quite contrary, I think this is actually the way to go! Just wanted to make sure whether you're okay with this! :smile:

wrt your annotations: Will push fixes in a few minutes.

Are you still working on this? I’d like to publish 0.18 next week, and I could also help push this over the finish line if you want.

Rebased, squashed away my fixups and formatted the codebase.
Lets see what CI tells us.
Thanks for pinging me on this!

And some more things to make clippy happy. Please have a look at https://github.com/Actyx/banyan/pull/115/commits/6e04476918b80797700c5ad465b5eba77ed77605 because I think there might be a bug there...

:thinking: why does clippy succeed locally but fail on actions? What am I missing here?

Probably a different version: clippy gets new warnings in every Rust version … The CI setup doesn’t specify a version, so I guess stable is used (which should be 1.65 today).

Weird. I am using nightly here, which is IIRC the one specified for the clippy step.
I will double check tomorrow, am on the road today.

And some more things to make clippy happy. Please have a look at 6e04476 because I think there might be a bug there...

Yes, the new code looks more reasonable than the original, good catch!

Hi @matthiasbeyer, do you plan on adding the PutError and GetError variants to the new Error type? As far as I can see this PR cannot yet be merged as is, right?

Hi.
Yeah... so what I've done (not published yet) is trying to get the banyan-utils crate to build as well... but because of the change of interfaces in the banyan crate, this essentially means to rewrite the whole banyan-utils codebase, which is one big mess (the rewrite, not the code).
I'm kinda stuck in the middle of it, actually... help would be much appreciated, TBH! :laughing:

I’m currently incapacitated, but if you push your code somewhere I could take a look after Christmas.

Turns out I wasn’t able to work on this over the Christmas break, and it is unlikely that I’ll be able to before Jan 19, sorry about that.

No problem, take your time!


Add SVG support for images

This should partially address #121
By default, coil does not support SVG images, instead trying to render them normally and failing.
Note that this isn't thoroughly tested but should work according to https://coil-kt.github.io/coil/svgs/

Thank you very much for the Pr.


PanoramaSky created using Viewport texture is always rendered pink.

Godot version
master (f013315980ca13f4b66df29b5e32d3ecc310cb84)
System information
Windows 11, Nvidia 1070
Issue description
This test subviewport:

Looks like it's not having any effect once passet as viewport texture, like this:

Notice that this happens even if I use both PR https://github.com/godotengine/godot/pull/64138 and https://github.com/godotengine/godot/pull/64152
Also, repro project shows no error or warning in any console or output.
Steps to reproduce
Open repro project, run, observe the pink where there should be a procedural sky.
Minimal reproduction project
ViewportBug.zip

Is the viewport's update mode set to Always?

I've tried setting it to all combinations of update and clear mode.

If a resource's sub-resources have local_to_scene enabled, that resource also needs to have local_to_scene enabled.
If there is such a resource chain Node-R1-R2-R3(local_to_scene)-R4, it is required that R1, R2, and R3 all need to enable local_to_scene, and R4 does not have to be enabled.

Doing as @Rindbee says solved my problem. I think that the editor should complain when something needs a certain "local chain" and does not get one, or one resource is marked as local and it's not having any effect because there is a lack of a link on the locality chain. I know that viewport does ask for "local", but it did not hint at the chain Rindbee mentioned.


Kubernetes v1.30

Epic
Support Kubernetes v1.30 for all providers.
Status

Provider
WC support
MC support
MC-Bootstrap support
GS WCs updated
MCs updated

CAPA

CAPZ

CAPV

CAPVCD

AWS Vintage
Not supported
Not supported
N/A
N/A
N/A

Github issues
- [ ] CAPA `v30.0.0` release
- [ ] CAPZ `v30.0.0` release
- [ ] CAPV `v30.0.0` release
- [ ] CAPVCD `v30.0.0` release
- [ ] Update `mc-bootstap` to use CAPA `v30.0.0`
- [ ] Update `mc-bootstap` to use CAPZ `v30.0.0`
- [ ] Update `mc-bootstap` to use CAPV `v30.0.0`
- [ ] Update `mc-bootstap` to use CAPVCD `v30.0.0`
- [ ] Update all GS clusters to CAPA `v30.0.0`
- [ ] Update all GS clusters to CAPZ `v30.0.0`
- [ ] Update all GS clusters to CAPV `v30.0.0`
- [ ] Update all GS clusters to CAPVCD `v30.0.0`
- [ ] Update all MCs to CAPA `v30.0.0`
- [ ] Update all MCs to CAPZ `v30.0.0`
- [ ] Update all MCs to CAPV `v30.0.0`
- [ ] Update all MCs to CAPVCD `v30.0.0`

FYI Yesterday we've released cilium v0.26.0 which includes Cilium v1.16.

Work on v30.0.0 with Kubernetes v1.30 will start after v29.0.0 is available for all of our CAPI providers. There's also the possibility of working in parallel with v29.0.0 in case there's capacity.

An overview of the v29.0.0 releases is available in a separate issue.

@alex-dabija same here tasks for Q4 are needed

Draft CAPA v30.0.0 PR: https://github.com/giantswarm/releases/pull/1357
Draft CAPZ v30.0.0 PR: https://github.com/giantswarm/releases/pull/1359


fix(autoware_compare_map_segmentation): fix passedByValue

Description
This is a fix based on cppcheck passedByValue warnings
perception/compare_map_segmentation/src/voxel_grid_map_loader/voxel_grid_map_loader.hpp:227:30: performance: Function parameter 'map_cell_ids_to_remove' should be passed by const reference. [passedByValue]
    std::vector<std::string> map_cell_ids_to_remove)
                             ^

perception/compare_map_segmentation/src/voxel_grid_map_loader/voxel_grid_map_loader.hpp:274:47: performance: Function parameter 'map_cell_id_to_remove' should be passed by const reference. [passedByValue]
  inline void removeMapCell(const std::string map_cell_id_to_remove)
                                              ^

Related links
Parent Issue:

Link

How was this PR tested?
Notes for reviewers
None.
Interface changes
None.

Effects on system behavior
None.

Thanks for the merge.


Questions about the pre-training model

@yysijie @yjxiong ,hello, sorry to interrupt you, I am naive to ST-GCN and I have built my own dataset which is much smaller than kinetics, there are 99 classes. I use my dataset to fine-tune the pre-trained model you gave and modified num_classes in train.yaml, but with the following error:
Mismatch for fcn.weight:copying a param of torch.size([99,256,1,1]) from checkpoint,where the shape is torch.Size([400,256,1,1]) in current model
If you can, can you tell me where to fix this problem?Thank

It looks like the classifier weights are causing the problem. When finetuning, you should create a new classifier module instead of loading the one in the pretrained models.

@xiaoyuliu - Would've been great with a little more in-depth explanation. It seems like an issue that multiple people are facing, including myself.
I would like to load the pretrained model (on the 400 classes) in order to utilize transfer learning for my 7 classes, but am stuck at how to load the weights, getting basically the same error message as @hd120105  (Did you ever figure this out?).

It looks like the classifier weights are causing the problem. When finetuning, you should create a new classifier module instead of loading the one in the pretrained models.

how to load pretrained model in old version st-gcn base code to train new model?

Hey guys!
I want to do a training on a custom dataset using ST-GCN, but I can't understand exactly how the dataset should look like. It seems that you overcame this issue, if someone can help me that would be amazing. I have data extracted from sport videos using OpenPose (25 keypoints).


Azure deployment image selection errors

What does this PR change?
Azure exit with errors when selecting the images available to deploy. Needs investigation on how to get those with the new department account.
We need to check:

terraform azure provider version
azure-cli tool supported version
Image filtering (offer, publisher, etc)
Azure account image subcription

I haven't used sumaform with Azure with our new okta account.
I tried to deploy opensuse-leap-15-4 manually. The search is still working. But we need to have the security type to standard otherwise it fails with Trusted Launch Visual Image.


Grouping all provider/model related logic into llm directory

This is a work in progress version of the refactoring I suggested. It's not well tested yet and there are probably a few regressions here and there but I wanted to show you the idea before going further.
I've introduced the concept of ModelManager. There is one implementation per API and they deal with the small differences we can have between model. The manager is instantiated with the model so it's available everywhere.
The idea is that everything that is specific to a model or a provider should be in the provider directory.
Let me know what you think.

[!IMPORTANT]
Refactor codebase by moving provider/model logic to providers directory and introducing ModelManager for model-specific operations.

Refactoring:

Move provider and model-related logic to providers directory.
Introduce ModelManager for handling model-specific logic, instantiated with the model.

Imports:

Update imports in chat.py, commands.py, init.py, message.py, reduce.py, server/api.py, tools/chats.py, tools/youtube.py, and test_server.py to reflect new directory structure.

Functionality:

Add supports_file and supports_streaming properties to ModelManager.
Implement prepare_file method in AnthropicModelManager and OpenaiModelManager for handling file preparation.

Miscellaneous:

Update logic in llm.py, llm_anthropic.py, and llm_openai.py to use ModelManager for model-specific operations.
Adjust get_model() usage across various files to utilize the new ModelManager structure.

This description was created by  for 12a90672845c49961e8ca899c12df196e96b59bf. It will automatically update as commits are pushed.

Hey @ErikBjare I think we are going in the right direction :rocket: . I applied your suggestions and it's much better. My only doubt is about the code duplication in the file handling in each providers. We could do something, but I'm not sure it's necessary/a good idea. Let me know what you think.

A few ideas on how we can get this merged, it will really be an improvement and I appreciate your efforts.
Sorry if I was grumpy before, I've been sick this week.

Sure, no problem. Happy to help.

Rebased and force pushed.
Typechecks and tests passing locally :tada:

Going to go ahead and merge this, I'll fix any remaining issues in follow-up PRs.
Thanks a lot for pulling through with this @jrmi! :muscle:
You dropped this: :crown:


How use with $q notify?

Hi, here my question.
I have my service called 'searchService' that return a promise never resolved but notify my controller ( is a trick for polling) .
I can't execute append without rendering all the DOM. Is this normal? If needed I can my make a plunk.

@CaosZero Yes, if it's possible, please, provide a plunk.

Closed due to inactivity. Please, feel free to reopen it with appropriate repro.


optimise consumer/stream creation

Since reworking the API many info calls are being done during stream and consumer create:
14:37:23 [Stream Create] X
14:37:23 [JS API] $JS.API.STREAM.CREATE.X $G
14:37:23 [JS API] $JS.API.STREAM.INFO.X $G
14:37:23 [JS API] $JS.API.STREAM.INFO.X $G
14:37:23 [JS API] $JS.API.STREAM.INFO.X $G
14:37:41 [JS API] $JS.API.STREAM.INFO.X $G
14:37:41 [Consumer Create] X > X
14:37:41 [JS API] $JS.API.CONSUMER.DURABLE.CREATE.X.X $G
14:37:41 [JS API] $JS.API.CONSUMER.INFO.X.X $G
14:37:41 [JS API] $JS.API.STREAM.INFO.X $G
14:37:41 [JS API] $JS.API.CONSUMER.INFO.X.X $G
14:37:41 [JS API] $JS.API.CONSUMER.INFO.X.X $G
14:37:41 [JS API] $JS.API.CONSUMER.INFO.X.X $G

Ditto stream edit
14:45:07 [JS API] $JS.API.STREAM.INFO.X $G
14:45:07 [JS API] $JS.API.STREAM.INFO.X $G
14:45:09 [Stream Modify] X
14:45:09 [JS API] $JS.API.STREAM.UPDATE.X $G
14:45:09 [JS API] $JS.API.STREAM.INFO.X $G
14:45:09 [JS API] $JS.API.STREAM.INFO.X $G
14:45:09 [JS API] $JS.API.STREAM.INFO.X $G
14:45:09 [JS API] $JS.API.STREAM.INFO.X $G

https://github.com/nats-io/jetstream/pull/206


Always crash on every tab on Windows

Describe the bug
I installed ungoogled-chromium from scoop package manager, and it always crash on every tab.
To Reproduce
Steps to reproduce the behavior:

Go to any page
Tabs crashes

Expected behavior
The tab shouldn't crash.
Screenshots
https://user-images.githubusercontent.com/15059605/103122329-b6394500-46ba-11eb-8ef2-7edc41a102e6.mp4
Environment (please complete the following information):

OS/Platform and version: Windows 10 1809
ungoogled-chromium version: 87.0.4280.67-1

Sadly I am experiencing the same issue. The issue occurred right after I set up a junction for my user profile due to having a small SSD. A fresh install using the repos available fails, but installing it using chocolatey package manager works fine. Sadly, the choco version is not a viable alternative due to not being recognized by windows as a web browsing program and cannot be set to default.
Version 88.0.4324.182
Windows 10 Home v. 20H2

Same with 89.0.4389.90-1

Is this still an issue? If so, please file this issue with the corresponding platform repo: ungoogled-software/ungoogled-chromium-windows

Sorry for the late update, this issue seems like only happens when ungoogled-chromium is installed via scoop.
Check the related issue here: https://github.com/lukesampson/scoop-extras/issues/5479


Companion to #67

This is only a PR so that I can get Travis to run against it

Further commits including these back on #67


Fix devices template

The devices.tsv template has two extra columns with no headers currently. This is an issue for trying to process this file programmatically and also causes issues with GitHub's table display.
The file is now fixed to display correctly: https://github.com/obi-ontology/obi/blob/e647433c28f4dd5e4be73b5b40f3de055ee5be76/src/ontology/templates/devices.tsv

@ddooley There was a column without a header that had some notes. I think you probably added those. Becky moved them into "editor notes". We're going to merge this now, but if you don't want them there, we'll delete them later.

Oh, I thought robot would just ignore that but now I see that still gets in the way of nice Github display.  There is no need for including that note column - accident from direct cut and paste from another source table.


Initial support of DataFrame.GroupBy by single literal column

Hello @kozlov-alexey! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file sdc/datatypes/common_functions.py:

Line 569:9: E306 expected 1 blank line before a nested definition, found 0
Line 591:9: E306 expected 1 blank line before a nested definition, found 0

In the file sdc/datatypes/hpat_pandas_dataframe_functions.py:

Line 1245:1: W391 blank line at end of file

In the file sdc/datatypes/hpat_pandas_groupby_functions.py:

Line 129:13: E272 multiple spaces before keyword
Line 130:11: E272 multiple spaces before keyword
Line 131:12: E272 multiple spaces before keyword
Line 132:14: E272 multiple spaces before keyword
Line 133:11: E272 multiple spaces before keyword
Line 134:12: E272 multiple spaces before keyword
Line 135:11: E272 multiple spaces before keyword
Line 136:11: E272 multiple spaces before keyword
Line 137:11: E272 multiple spaces before keyword
Line 215:1: E302 expected 2 blank lines, found 1
Line 262:29: E231 missing whitespace after ':'
Line 263:31: E231 missing whitespace after ':'
Line 292:29: E231 missing whitespace after ':'
Line 293:31: E231 missing whitespace after ':'

@kozlov-alexey conflicts.
Let's merge it as-is for now


Fix generated column evaluation based on default constraint.

When evaluating generated columns, possible default constraints of referenced columns must be taken into account.

@mfussenegger I missed one scenario, pushed a fixup.

Cool. Thanks for the fast turn-around! 👍


Use tar checksum instead of md5 of the files and fix memory bloat

Fixes #27 and point 1 in #90

Thanks for the PR, however, based on the feed back from https://github.com/wagoodman/dive/issues/90#issuecomment-442315617 I'm going to close this PR.
Also, I was looking for a way to get this functionality without forking the tar lib and it came down to this approach:
	hdrBuf := new(bytes.Buffer)

	tarFile, err := os.Open("image.tar")
	if err != nil {
		fmt.Printf("ERROR: %v\n", err)
	}

	tr := tar.NewReader(io.TeeReader(tarFile, hdrBuf))

	for {
		hdrBuf.Reset()
		header, err := tr.Next()
		if err == io.EOF {
			break
		}
		hdrBuf.Next(hdrBuf.Len() % 512)

		fmt.Printf("%s\n", hex.Dump(hdrBuf.Bytes()))
		fmt.Printf("Type: %v\n", header.Format)
		fmt.Printf("Chksum: %v\n", string(hdrBuf.Bytes()[148:][:8]))
	}

This way we could grab only the bytes we need and avoid drifting implementation from forking tar.


Emmet expansion with React components

There are currently two ways to expand a React component.

Type in the opening bracket, begin typing in the component name, accept the suggestion, type in the closing bracket, and then let VSCode's auto closing tag feature do the rest.

Enable the following setting: "emmet.triggerExpansionOnTab": true,.  After which we can then just start typing the component name, accept either the word or symbol suggestion, and then tab again to have Emmet complete the tag.

Feature Request
I believe option 2 is probably preferable to most. However, I wonder if it'd be possible to remove the requirements of that second tab, making it behave more like a normal html tag would in emmet (i.e. accept suggestion and done). In other words, if the accepted suggestion is an imported React component, it will automatically expand the tag without having to trigger it.
Side Note
The only reason why we are able to select imported React components at all times from the suggestion list is because of the following setting: "editor.wordBasedSuggestions": true. Without it, you would only be able to use this when the symbol suggestion appears, which is limited, as described here. This is an unnecessary limitation, because an imported component is almost never noise (the reason given in the docs for why VSCode might ignore suggestions), and should always appear as a suggestion when editing JSX.

@jabacchetta I think Emmet waits for the second tab so that you can combine multiple HTML nodes into a single abbreviation such as ul>li.item$*5>span. If Emmet didn't wait for the second tab, then it can only expand one node at once.
Thoughts?


Clarify -ignore-checksum in README

For the "Pull" chapter, I tried to make the text a bit more coherent. For the "Push" chapter I wanted to make clear that true is the default.

Hello there @gjalsem, thank you for working on this. I've just left two notes in the CL comments but otherwise looks good.

Thanks for the review, I updated my branch based on your comments.

Dope, thanks for the review. Just one more thing, could you squash your commits into one. Just in case you need to, you can do it like this
$ git rebase -i head~2
$ # When prompted, pick one, squash the other, add the message such as below
README: more coherent documentation on --ignore-checksum

For the "Pull" chapter, I tried to make the text a bit more coherent.
For the "Push" chapter I wanted to make clear that true is the default.

Ok, I have experience with git, but this was my first rebase. I think it worked though.

Awesome, yes it worked! LGTM and thank you for this fix.


Allow parallel testing

Closes #68

@jleni We are using a random port if the desired one (default one) is in used. Theoretically we should be able to run test in parallel. However, I am not sure why tests take same time. They seem to run sequentially, even though jest should run them in parallel.


Scalar feature and vector feature

Hi, In your paper, you mentioned that you split the atom feature to 'scalar' feature and 'vector' feature. Motivated by subtraction of electronegativity,when estimating the bond polarity,in organic chemistry. . Any reference? what is subtraction of electronegativity? Thank you~

Hi, the script model.py need import masked_binary_crossentropy, but i  can't find this function in loss.py, what should i do to fix id?Thank you!


Feat: Navbar Missing on Login and Sign-Up Pages

Describe the feature
The navbar is missing from both the login and sign-up pages of the application, causing a navigation issue. Users are unable to access other parts of the site directly from these pages, leading to a disrupted user experience. This problem might be due to incorrect template rendering or conditional logic that hides the navbar. Ensuring the navbar's consistent presence across all pages is crucial for seamless navigation. Debugging the page templates and reviewing any conditional statements related to the navbar should help identify and resolve the issue.
Additionally, the code is already prepared and ready for implementation, I kindly request to be assign me to the issue
Links:-
https://community-site-theta.vercel.app/login.html
https://community-site-theta.vercel.app/signup.html
Add ScreenShots
Sign up page

Login Page

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Hi @Its-Aman-Yadav ,
Could you please assign this issue to me? I would like to work on it.
Thank you!

@mdjalal07 Thanks for your enthusiasm! It's great to see you're eager to contribute. Just to clarify, I'm already working on this issue and have mentioned in the issue that I want to take it on. I've also checked the box indicating my interest, and the code part is ready. Let's collaborate on future tasks! 😊👍

Hi @coderiksenthil ,
Thank you for the update! I appreciate your clarification. I'll keep an eye out for other issues to contribute to and look forward to collaborating in the future. Let me know if there's anything else I can assist with. 😊👍
Best regards,
mdjalal07

Hey @coderiksenthil   Please assign this to me under GSSoC'24, I can fix this easily as I have already worked on this. I agree to follow the code of conduct of GSSoC'24.
Regards,
Tanishka Bhalla

@Tanishka023 Thanks for your enthusiasm! It's great to see you're eager to contribute. To clarify, I'm already working on this issue and have mentioned in the issue that I want to take it on. I've also checked the box indicating my interest and the code part is ready. Let's collaborate on future tasks! 😊👍


Feature Imps not storing with Forecaster.tune_test_forecast

Hello,
Thank you for your development and support of this valuable package.
I cannot get feature_importance=True and summary_stats=True to behave as expected. All models seem to be affected.
I ran --upgrade yesterday.
Environment:

Mac with M2 Pro and Sonoma 14.0
Jupyterlab running with AMD64 emulation on Docker - up-to-date :latest tag and no other package installs (I can think of, at least)

My forecaster objects are generated by:
import pandas as pd
import numpy as np
from scalecast.Forecaster import Forecaster
from scalecast import GridGenerator
from scalecast.multiseries import export_model_summaries
from datetime import datetime
import matplotlib.pyplot as plt
import seaborn as sns

forecasters= {}
for k,v in dfsd.items():
    f = Forecaster(y=v['GROSS_COUNT'],
                  current_dates = v.index)
    f.generate_future_dates(360)
    f.set_test_length(.1)
    f.set_validation_length(28)
    f.add_seasonal_regressors(
        'dayofyear',
        'week',
        'month',
        'quarter',
        raw=False,
        sincos=True,
    )
    f.add_seasonal_regressors('year')
    f.add_time_trend()
    f.add_covid19_regressor(end=datetime(2022,2,1,0,0))
    forecasters[k] = f

tune_test_forecast is looped with:
for f in forecasters.values():
    f.tune_test_forecast(models, feature_importance=True, summary_stats=True)

The warnings/errors I get are below. Prophet verbose INFO has been removed:
/opt/conda/lib/python3.11/site-packages/scalecast/Forecaster.py:2729: Warning: rf does not have summary stats.
  warnings.warn(
/opt/conda/lib/python3.11/site-packages/scalecast/Forecaster.py:2705: Warning: Cannot set pfi feature importance on rf. Here is the error: cannot import name 'if_delegate_has_method' from 'sklearn.utils.metaestimators' (/opt/conda/lib/python3.11/site-packages/sklearn/utils/metaestimators.py)
  warnings.warn(
/opt/conda/lib/python3.11/site-packages/scalecast/Forecaster.py:2729: Warning: gbt does not have summary stats.
  warnings.warn(
/opt/conda/lib/python3.11/site-packages/scalecast/Forecaster.py:2705: Warning: Cannot set pfi feature importance on gbt. Here is the error: cannot import name 'if_delegate_has_method' from 'sklearn.utils.metaestimators' (/opt/conda/lib/python3.11/site-packages/sklearn/utils/metaestimators.py)
  warnings.warn(
/opt/conda/lib/python3.11/site-packages/scalecast/Forecaster.py:2729: Warning: xgboost does not have summary stats.
  warnings.warn(
/opt/conda/lib/python3.11/site-packages/scalecast/Forecaster.py:2705: Warning: Cannot set pfi feature importance on xgboost. Here is the error: cannot import name 'if_delegate_has_method' from 'sklearn.utils.metaestimators' (/opt/conda/lib/python3.11/site-packages/sklearn/utils/metaestimators.py)
/opt/conda/lib/python3.11/site-packages/scalecast/Forecaster.py:2729: Warning: prophet does not have summary stats.
  warnings.warn(
/opt/conda/lib/python3.11/site-packages/scalecast/Forecaster.py:2705: Warning: Cannot set pfi feature importance on prophet. Here is the error: 'Forecaster' object has no attribute 'X'
  warnings.warn(

I would expect FI for most of these sklearn models. Can you please help me understand this miss?

That is not working as expected. Give me a little bit to look into it. Thanks for raising the issue!

After investigating, I am sure that the root of the problem is with the eli5 library. See this issue. I can't say for sure if the developers of that package will ever update it so that it works with newer versions of scikit-learn, so maybe a work-around is needed for scalecast. I'm not sure what that would be as scikit-learn 1.3.1 is needed to do some things in scaleccat. If you need feature importance while I try to figure something out related to this, you can try setting method = 'shap' when using feature importance, but I believe it only works for tree-based models right now.

The fix for this is in 0.19.4. See the new save_feature_importance() documentation. Feature importance has been expanded in the package to include the two types previously offered, plus five additional methods, all through the shap package.
If you agree with the fix, we will close the issue.


Unit test harness logging issues

There are some issues with the current unit test logging used by the repo:

Some information is sent to the log file, while other information is sent to console
a. This makes getting all the required problem info from the Jenkins/autotest log difficult
b. Since you must get information from 2 separate places (console & log file) and also have access to the local machine to check the log (and runs happen on several different target machines based on version)
Both print statements and logging statements are used in the code (and somewhat inconsistently) when this is unnecessary
a. Logging statements can just be directed toward multiple "handlers" (file and stdout)
b. print statements used throughout the code with if Configuration.DEBUG == True: print(...)

Suggest we:

Short term: add logger handler to also direct logger calls to stdout (I have PR for this just need issue to tie to) - this is a higher priority since it is needed to debug autotest issues
Longer term: replace:
a. prints with logger.info
b. if DEBUG : print with logger.debug

@csmoore Please comment to provide an update on the progress made on this issue.

I did the first item ( directed logging to stdout in #636 ) but all the print statements still need changed to log.debug/trace statements.


Deconz websocket support

Add support for deconz websocket wpi to support push notifications from deconz. Idea is to use this to support auto on lights for all rooms based on mapped names.

Documents to webapi https://dresden-elektronik.github.io/deconz-rest-doc/endpoints/websocket/


autocorrect hangs for fetchers.rb in Ruby cassandra driver

rubocop -a -d cluster/schema/fetchers.rb
For /Users/sandeeptamhankar/ruby-driver/lib/cassandra: configuration from /Users/sandeeptamhankar/ruby-driver/.rubocop.yml
Inheriting configuration from /Users/sandeeptamhankar/ruby-driver/.rubocop_todo.yml
Default configuration from /Users/sandeeptamhankar/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/rubocop-0.36.0/config/default.yml
Inheriting configuration from /Users/sandeeptamhankar/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/rubocop-0.36.0/config/enabled.yml
Inheriting configuration from /Users/sandeeptamhankar/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/rubocop-0.36.0/config/disabled.yml
Inspecting 1 file
Scanning /Users/sandeeptamhankar/ruby-driver/lib/cassandra/cluster/schema/fetchers.rb

CPU is pegged, so I suspect a tight loop. Clone the ruby-driver repo (https://github.com/datastax/ruby-driver.git) and try this and you should see the same behavior. NOTE: without auto-correct, rubocop does terminate.

RC's autocorrect is incredibly slow in some cases. I am working on speeding it up.
Let's see how it works for you after that.

Well, just to be clear, the autocorrect was working through several of my files and then it got stuck on fetchers.rb for many minutes. To narrow things down, I reverted client.rb (which is about 900+ lines of code) and ran rubocop on just that file with auto-correct, and it finished in about 15 seconds. Do the same with fetchers.rb (which is about 1100+ lines), and it sits for minutes before I abort it.
So I don't think this is just a performance issue. Now, fetchers.rb is a fairly complex file, so it may be slower because of that, but orders of magnitude slower sounds very suspicious.

When I run auto-correction on that file I get the following error after about 90 seconds:
/home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:184:in `check_for_infinite_loop': Infinite loop detected in /home/jonas/dev/ruby-driver/lib/cassandra/cluster/schema/fetchers.rb. (RuboCop::Runner::InfiniteCorrectionLoop)
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:159:in `block in do_inspection_loop'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:158:in `loop'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:158:in `do_inspection_loop'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:87:in `process_file'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:59:in `block in inspect_files'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:57:in `each'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:57:in `inspect_files'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/runner.rb:35:in `run'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/lib/rubocop/cli.rb:30:in `run'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/bin/rubocop:14:in `block in <top (required)>'
	from /home/jonas/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/benchmark.rb:308:in `realtime'
	from /home/jonas/.rvm/gems/ruby-2.3.0/gems/rubocop-0.36.0/bin/rubocop:13:in `<top (required)>'
	from /home/jonas/.rvm/gems/ruby-2.3.0/bin/rubocop:23:in `load'
	from /home/jonas/.rvm/gems/ruby-2.3.0/bin/rubocop:23:in `<main>'
	from /home/jonas/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
	from /home/jonas/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'

I can try to find the cause of the problem soon.

I've narrowed it down to
def f
  X.map do |(a,
             b)|
  end
end

It also causes an infinite auto-correction loop.

It looks like MultilineBlockLayout and BlockEndNewline are fighting.

I've got a fix.

I don't have time to write specs right now, but I'll push first.


Large refactor to allow support of identifier objects

Large refactoring of serialization/deserialization
Processing resource objects relationship will now always go through ResourceObjectConverter->RelationshipObjectConverter->ResourceObjectConverter
Each converter handles only its part of the process, but can process multiple different inputs
Can now support custom Identifier objects

Would you be able to publish a pre release? If so I'm happy to try it in prod and see how it goes.

@alex-davies would you accept a PR which adds something like GitVersion and a move to a tag based release process using the github releases feature? I've had a really good experience with GitVersion myself (including on appveyor).

would you accept a PR which adds something like GitVersion and a move to a tag based release process using the github releases feature?

I'm not against it, but it is not something i'm really that concerned with. The current process of keeping the version in the proj file is simple, works fine and hasn't really caused me many headaches

I have fixed a few more backward comparability issues. Again most of these fixes a bit hacky but will live with them until 2.0
@jonnii I have released a beta version (https://www.nuget.org/packages/JsonApiSerializer/1.6.0-beta01) feel free to try it out and see if it fulfils your needs

Will give this a whirl tomorrow! Thanks!

I'm not against it, but it is not something i'm really that concerned with. The current process of keeping the version in the proj file is simple, works fine and hasn't really caused me many headaches

The benefit is it makes generating the version really easy and consistent and if you wanted to be able to release a branch (for example) it'll tag everything correctly with the SHA and the branch name.

@alex-davies anything I can do to help here?


Breaking change in 0.2.7 - Double .html filename extension showing up

Thanks everyone involved for making this lovely extension - it is great :heart:
#45 seem to have broken the documentation setup in this project using myst-parser along with sphinxext-rediraffe. I'm not sure if it is to be considered a bug in this project or somewhere else how we are using it end to end but I figured it could be good to quickly report the experience here.
I can go back and forth between the documentation build failure by installing 0.2.7 and 0.2.6 without changing anything else. I'm using the command make html to reproduce the error, which is in practice sphinx build in some way.
# 0.2.6 works like this:
The HTML pages are in build/html.
Writing redirects...
(good) customizing/user-management.html --> jupyterhub/customizing/user-management.html
(good) customizing/user-storage.html --> jupyterhub/customizing/user-storage.html

# 0.2.7 works like this:
The HTML pages are in build/html.
Writing redirects...
WARNING: (broken) customizing/user-management.html.html redirects to jupyterhub/customizing/user-management.html.html but /home/erik/dev/contrib/jupyterhub/zero-to-jupyterhub-k8s/doc/build/html/jupyterhub/customizing/user-management.html.html does not exist!
WARNING: (broken) customizing/user-storage.html.html redirects to jupyterhub/customizing/user-storage.html.html but /home/erik/dev/contrib/jupyterhub/zero-to-jupyterhub-k8s/doc/build/html/jupyterhub/customizing/user-storage.html.html does not exist!

Ping @chrisjsewell as you are very familiar with myst-parser and the author of #45 which seems related

Ha yeh well I'll leterally made the PR to fix a project where I am also using myst-parser, but  its actually not to do with that.
It is because you have listed your redirect files with .html extensions (https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/c819835794a5a42f7a5016c0f3cdd952c28d48a3/doc/source/conf.py#L141), e.g.:
 "customizing/user-management.html": "jupyterhub/customizing/user-management.html",

which as of #45 will no longer be replaced, only suffixes related with a source document (like .rst or .md).
Is there a reason you are adding the .html extensions to the redirects? I'm not sure thats how rediraffe is intended to write these redirects (obviously @TheTripleV et al can clarify). If you simply remove them then it will work, i.e.:
 "customizing/user-management": "jupyterhub/customizing/user-management",

or
 "customizing/user-management.md": "jupyterhub/customizing/user-management.md",

I notice in one of your redirects also you use resources/community.html#links-to-community-project-resources, which I also don't think rediraffe has the capability to do currently, i.e. it was previously just converting that to resources/community.html

if we didn't want to recover this behaviour, then you could add some extra code to: https://github.com/wpilibsuite/sphinxext-rediraffe/blob/09516f0df9fb63559de2c0828e216e912c01a443/sphinxext/rediraffe.py#L124
to also strip .html and potentially .html#...

Regarding redirecting to urls with fragments and queries:
rediraffe passes fragments and queries from the original url to the new url.
Ex: If a.html is redirected to b.html, then visiting a.html#abc will go to b.html#abc.
I now realize that this is not documented. I don't think specifying fragments or queries in the rediraffe config works. Iirc, the problem I faced in the original design was how to handle internal urls with fragments.
If the config is
a b#f1
b c

, then should the fragment f1 be propagated through or disappear? Should users be allowed to specify a separate redirect b#f1 d for individual fragments?
Regarding the core issue, doubling html extensions
This extension was intended to have the source suffix specified in the redirects config.
(a.rst b.rst instead of a b or a.html b.html)
While the 2 alternatives seem to work for the core functionality of creating redirects, I don't believe it works with our diff checking builder that makes sure links don't break. This is actually why our tests didn't catch this; All of our test cases include the source suffix in their configs.
I'd rather enforce that the source suffix is included in the rediraffe config. But, I am open to a good reason why destination suffixes or no suffixes should be allowed.

If point 1 is something you'd like implemented, please do open an issue.

Thanks for this very helpful discussion, I've made my build succeed by updating a.html b.html to a b and removed any #anchors suffixing b.

I'd rather enforce that the source suffix is included in the rediraffe config. But, I am open to a good reason why destination suffixes or no suffixes should be allowed.

Hmmmm I deliberated a bit about this without so good project knowledge. But I was thinking that if you have a a.rst b.rst redirection rule because a.rst was renamed b.rst, then you no longer have the file a.rst and could in practice not really enforce such file existed or had .rst or .md extension etc?
Then I also got thinking, if one would have b.rst c.rst because b.rst was later renamed to c.rst, one wouldn't have a file representing a.rst or b.rst that was part of the original redirection rule a.rst b.rst which still serves a purpose in a a->b->c redirection sequence.

I'll go ahead and close this issue, thank you for the assistance to migrate my projects configuration and for an excellent sphinx extension!

Is there a reason you are adding the .html extensions to the redirects?

Open source :) It wasn't me who set this up originally so I don't know.


[BUG]Metrics Analysis Not showing Single datapoint result from Prometheus Metrics

What is the bug?
Once the span resolution becomes too wide and a single result is returned from the metrics
The graph doesn’t show the single datapoint in a clear way
How can one reproduce the bug?
Steps to reproduce the behavior:
-- See attached movie top reconstruct the steps
What is the expected behavior?
A single datapoint should be very apparently visible
Do you have any screenshots?
https://github.com/opensearch-project/dashboards-observability/assets/48943349/87fb8995-ccaf-41aa-a950-5501b630993a

Should this be triaged to OSD core? I'm not sure if the logic for drawing visualizations is here or in the panel itself.


Is this library stable/still being maintained?

It looks like there's lots of potential to it. But was only updated 2 years ago...? Btw, are you on the Kotlin slack?

Now it seems like there's a 401 error "No read access to this repo" from Jitpack... :(, right after I started migrating my code to this lib...

In the end I had to add this to gradle... it seems to be a mistake in the core dependency name...
configurations.all {
    resolutionStrategy.eachDependency {
        if (requested.group == "com.github.vanspo" && requested.name == "state-machine-core") {
            useTarget("com.github.vanspo:state-machine:${requested.version}")
            because("fixes mistake in dependency name")
        }
    }
}

Hi Dave!
Sorry for not replying for so long. As you've probably guessed by now, this library is not maintained, as I'm not active on GitHub these days. Thank you for catching my mistake!


Add ability to generate a Schema from a JSON example

It would be nice to be able to provide a JSON sample and create a valid Schema from that sample.  It doesn't need to support all possible schemas, but just the basics:

Arrays
Object properties
Basic types: string, boolean, number, date, etc

Fixed by https://github.com/EricWittmann/oai-ts-core/commit/fc42882024e92c2260bdd8c165d0aa503e5a9aa2


Update ui while open

UI does not update when pressing start/stop. One must close the window and open it again to see the updated state.

I get mixed results with this.


How to get the dc_id of a file

It is used to identify the dc_ic of users and groups / channels, but it seems to be hidden.

There is no way to get a dc_id from TDLib, because this is an internal implementation detail and is never needed by clients.


Fix 1D numpy arrays edition issue on the Variable Explorer

Fixes #5014

@andfoy can we write a test for this that covers the 1D 2D case and handles this regression ?

Just to double check @andfoy did the test fail without the fix :-p ?

I didn't test it under the actual scenario, let me check

It seems that is passing successfully for some reason

@andfoy thats the magic of regression testing :-), test should fail without the fix ;-)

So what's happening with #5014?


Video: Allow access to all controls in small screen #4712

Basically, an overflow button for the video control bar

Past Tickets

#4712
https://github.com/OdyseeTeam/odysee-frontend/issues/1288#issuecomment-1101090605

There's a few issues that have popped up with miniplayer or medium layout that would use this feature.

Also #1787 #1791 #1603

As Chapters, Snapshot and others have highlighted, this needs to be addressed first before attempting others like Captions.
Not sure how it looks, but maybe we can copy and tweak from the following as a start:
https://github.com/samueleastdev/videojs-setting-menu/blob/master/src/plugin.js


add support for remote state in version 0.9

This PR adds support for

TF_STATE, can be a path to a state file or a path to a terraform root directory
If it is a directory it runs terraform state pull which manages both local and remote state as documented here.

I had a look at #PR59 but it I did not like the fact that it only support s3 and talked directly to it

It looks like terraform state pull works with both remote and local files. Do you think we might be able to always call that, to avoid the distinction?

I was going to suggest that, but was just worried I did not have enough test cases to guarantee it would not break backward compatibility for all the ways people might be using the tool, but i agree terraform state pull would be a more stable solution

Your concern is well-founded, but I think the simplification will be worth it. We can do a longer beta period before release, and users can always stick with an older version if we break their workflow. Now that Terraform can fetch and dump the statefile for us, however it's stored, this tool should ideally only be responsible for transforming the JSON into Ansible's INI format.

I totally agree with you. I currently use terraform and ansible extensibly so this tool has been of immense help to me. Let me know if you need help with coding/testing/maintaining.

@adammck +1 on this approach, and look forward to the next release.

I tested this PR on Terraform 0.9.5 using remote state and it worked well. Thanks @ballad89!

This could use a little cleaning up, but works for me, and is useful enough that I'm going to stop holding up this PR and merge/release. Thanks very much, and sorry for the delay!


Add ESLint config validation tests

https://github.com/scottnonnenberg/eslint-config-thehelp/blob/3eaed6cda4e14c10df6609885361776c28691a70/scripts/validate.js#L5-L11
The whole repo is also an interesting look at setting up a custom config.

Reraised here: https://github.com/Shopify/eslint-plugin-shopify/issues/8


Notification block does not work always with Realm Object Server

Goals
Update the user interface instantly when my Collection Result changes (using Realm Object Server as my target realm database)
Expected Results
Refresh the user interface whenever the Results change
Actual Results
The notification block works flawlessly using local realm database. I wanted to move my database server-side, so I tried to convert my code to work with realm mobile platform
The user interface is sometimes updated as soon as changes occur, sometimes takes seconds, sometimes never update (although when checked, the actual collection result is changed)
for example, when I first initialize the notification block, the table view refreshes successfully.. when I add a new object, update or remove an object, sometimes it refreshes instantly sometimes it takes time sometimes it doesn't... etc
Please note that every time this happens I check the Collection Results, and make sure that it changed successfully
Code Sample
var notificationToken: NotificationToken?

func initNotification() -> NotificationToken? {

        return self.myObjects?.addNotificationBlock { [weak self] (changes: RealmCollectionChange) in
            guard let tableView = self?.tableView else { return }
            switch changes {
            case .initial:
                // Results are now populated and can be accessed without blocking the UI
                tableView.reloadData()
                break
            case .update(_, let deletions, let insertions, let modifications):
                // Query results have changed, so apply them to the UITableView
                tableView.beginUpdates()
                //tableView.insertRows(at: IndexSet(insertions),
                //                     withAnimation: NSTableViewAnimationOptions.effectGap )
                //tableView.removeRows(at: IndexSet(deletions),
                //                     withAnimation: .effectFade)
                //tableView.reloadData(forRowIndexes: IndexSet(modifications), columnIndexes: IndexSet(0...tableView.tableColumns.count-1))
                tableView.reloadData()
                tableView.endUpdates()
                break
            case .error(let error):
                // An error occurred while opening the Realm file on the background worker thread
                fatalError("\(error)")
                break
            }
        }
   }

    deinit {
        notificationToken?.stop()
    }

    func syncRealm() {
        self.userLogin() { config in
            DispatchQueue.main.async {
                MyObject.configuration = config
                self.myObjects = MyObject.getAll()
                self.notificationToken = self.initNotification()
            }
        }
    }

    func userLogin(onCompletion: @escaping (Realm.Configuration) -> Void) {
        let serverURL = URL(string: "http://<IP_ADDRESS>:9080")!
        let credentials = SyncCredentials.usernamePassword(username: "test@test", password: "test")
        SyncUser.logIn(with: credentials, server: serverURL) {
            user, error in

            if let user = user {
                let syncServerURL = URL(string: "realm://localhost:9080/~/test")!
                let config = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user, realmURL: syncServerURL))
                //let realm = try! Realm(configuration: config)
                onCompletion(config)
            } else if let error = error {
            }
        }

    }

Version of Realm and Tooling
Realm version: 2.1.2 (Swift 3)
ProductName:	Mac OS X
ProductVersion:	10.12.1
BuildVersion:	16B2555

/Applications/Xcode.app/Contents/Developer
Xcode 8.2.1
Build version 8C1002

/usr/local/bin/pod
1.1.0.rc.2
(not in use here)

/bin/bash
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)

/usr/local/bin/carthage
0.17.2
(not in use here)

/usr/bin/git
git version 2.10.1 (Apple Git-78)

I think we had this issue before but it should have been fixed in https://github.com/realm/realm-cocoa/pull/4253, however it was released in 2.1.0.. @hadiyazdi could you please try to reproduce this issue with the latest (2.2.0) version of Realm and if it still exists, it would be great if you can provide an example Xcode project to reproduce it. Thanks!

Hey guys!
I noticed the SDK in implementation is different than the documentation.
More specifically, the notification block does not return the changes anymore, but only the notification name and the realm:
let block : NotificationBlock = { [weak self] (notification: Realm.Notification, realm: Realm) in
guard let self = self else { return }
        print("realm notification : \(notification)")

        if let callback = self.onReloadData {
            DispatchQueue.main.async(execute: callback)
        }
    }

But the docs are different in implementation: https://realm.io/docs/swift/latest/#collection-notifications
@stel the question is: How do I access the actual changes (the insertions, deletions, modifications) ?

@danipralea these are two different types of notifications: Realm Notifications that are triggered everytime when any write transaction is committed and Collection Notifications that notify about the changes in specific Realm Results.

thanks @stel


docs/governance: import from homebrew-governance.

Saves us having Yet Another Public Repository.

Review period will end on 2022-04-22 at 13:02:41 UTC.

Add governance to _config.yml's exclude: list to skip the folder when building the docs site.

Add governance to _config.yml's exclude: list to skip the folder when building the docs site.

@EricFromCanada I was actually thinking of adding these somewhere to be viewed by Jekyll, just couldn't decide where?

If you rename the destination folder to _governance, then _config.yml can define a "governance" collection and another page can generate a dynamic list of links to each item with e.g. {% for item in site.governance %}.

Review period ended.

After some needless difficulty 😬 I've added an underscore to the governance folder name. I'll cook up a suggestion for how to display the collection on the site later today.


Slider: add set/is_editable

Fixes #9574

I tried making images for the grabber but it always be displayed as 'ERROR'. Apparently I don't know enough about theming. I've tried mogrify-ing and pngcrush-ing but it didn't work. Not sure what I've done wrong. :/
If someone can tell me how to make images for theme, I can use that instead of hardcoding a modulate. :)


MuTual scores not matching with values in paper

Both detokenized and non-detokenized have the same problem

current impl on master

plus has higher score, presumably because it isn't all-lowercased

@leogao2 can we close this?


Refactor classname - prepend namespace - Button

Please have a look over this to say whether correct cheers

Coverage remained the same at 100.0% when pulling 306efb1c769fa1fcfdc2a0ec3cb12e0311f4658f on namespaces into e458c662ccf119332bb0cab3d4ed57db3c9220a3 on master.

Coverage remained the same at 100.0% when pulling a4565fba27dd295c6bdbb0bd7c9c4e79a4ecc9f3 on namespaces into e458c662ccf119332bb0cab3d4ed57db3c9220a3 on master.


Create itrf-web.yaml

Please check if the PR fulfills these requirements:

[ ] After these changes, the app was run and still works as expected
[ ] Unit tests for these changes were added (if applicable)
[ ] All existing unit tests were run and still pass

Please specify the type of change this PR introduces (Bug fix, feature addition, content update, chore, etc.):
Additional Notes:

PR looks good, thanks for fixing the merge conflicts.


Data disk from snapshot in VMSS

Feature Request
Does VMSS allow to create a data disk from snapshot during creation? I check in V4 & V5 of armcompute go sdk and couldn't find any relevant methods. Can you please suggest whether it is possible?
Regards
Vishnu

Hi @vishnujanardhanan, we are looking into this. Thanks!

Closing due to inactivity


Grunt buildsystem

As hinted in #8, I now created a suggestion for a build system, based on Grunt (& Node.js).
It provides three tasks right now, based on jshint, jsbeautify and uglifyjs . The readme.md has been extended to describe the process.
The caused changes are minimal:

jshint is currently not in the default chain, since there are still too many errors reported
jsbeautify only changed a bit of whitespace and indentation
uglifyjs produced the same result, only comparisons where flipped ("x < y" became "y > x" at places)

If this pull request is accepted, I have the following further plan:

Get jshint used; Get rid of the non-configurable warnings & integrated in compile chain, then make settings more strict on the further go
Clearer project structure (separation between src, demo, lib)
yuidoc task for documenting the public API
Introduce CommonJS format (browserify); A CommonJS format helps regarding dependencies (jshint undeclared warnings) and would make the bits testable under Node.js
Add a test framework

My goal in all of this is to make it easier for people to use and contribute to the library.

Not caring anymore.


main.html:138 Uncaught TypeError

The bot is showing the map but i can't see the Pokemon's and my items.
I have created a API key for Google Maps.
The error list from the console:
Error: Cannot call loadURL because the webContents is unavailable. The WebView must be attached to the DOM and the dom-ready event emitted before this method can be called.(…)
main.html:86 Error getting location, trying second provider PositionError
main.html:88 Found location [52.3824,4.8995] by ipinfo.io
main.html:134 about:blank
main.html:138 Loaded pokemon data..
main.html:138 Google Maps API warning: InvalidKey https://developers.google.com/maps/documentation/javascript/error-messages#invalid-key
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
4main.html:138 [object XMLHttpRequest]
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'inventory_item_data' of undefined
main.html:138 Uncaught TypeError: Cannot read property 'length' of undefined

@remco1271 you can solve this?.
I have the same problem in Linux

I also encountered this

This is an error with the bot not starting. I'm am currently trying to fix it. It is trying to read location values that the bot has not written

Already fixed


[Feature][client] Add Flink client 1.15

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
Add Flink client 1.15
Use case
No response
Related issues
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@aiwenmo , This issue is very good.Hope it can be realized soon, thanks.

Welcome to test it.thx


EOF should maybe yield ReadlineError::Eof instead of just terminating Editor::iter

Context
I'm using using rustyline for the first time in a situation like this:
    rl.iter(" > ").try_for_each(|line| {
        // ...
        let result = match line {
            Ok(line) => process_line(line),
            Err(Eof | Interrupted) => Err(Exit), // user wants to abort normally, fine
            Err(err) => Err(Fatal(err)),         // help
        };
        // ...
    });

I wanted to bind both Ctrl-D and Ctrl-C to exiting, as my program isn't hosting anything else it could reach out to for processing the interrupt. But to my surprise, it seems like Eof is never emitted when using Editor::iter, it just plainly ends the iterator. I'd have expected it to be a constant stream of events.
Suggestions

Make the iterator yielded by Editor::iter infinite, while providing ReadlineError::Eof as a normal "error". (I'd be open to implement that and open a PR, if wanted)
If ^ is not a viable option for whatever reason, document in Editor::iter logical OR in ReadlineError::Eof the special case of when the iterator terminates.

Minimal reproducable code example
Relying on rustyline 10.0.0
use rustyline::{error::ReadlineError, Editor};

fn main() {
    let mut rl = Editor::<()>::new().unwrap();

    for line in rl.iter("pls hit ctrl-d> ") {
        match line {
            Err(ReadlineError::Eof) => unreachable!("I want to get here"),
            Err(ReadlineError::Interrupted) => {
                unreachable!("This is also a real error though it technically isn't")
            }
            Err(err) => panic!("irrelevant: {}", err),
            Ok(_) => panic!("please do enter ctrl-d"),
        }
    }

    println!("done! :sparkles:");
}

https://github.com/kkawakam/rustyline/blob/master/src/lib.rs#L942
The iterator currently behaves like a line iterator on a file: the iterator ends at end of file.

Like https://python-prompt-toolkit.readthedocs.io/en/master/pages/tutorials/repl.html?highlight=iterate#loop-the-repl

Yep, I get the current behavior. I'd love to have some documentation shine light on this behavior though, or allow it to be handled specifically by yielding Eof instead of just terminating.

For me, the line iterator becomes useless without the EOF condition: just use a loop.
But yes, this should be documented.

Alright. Thank you!


.try in Either Type not documented

I've been going through the data.Either documentation (might be old version and not supported as it's been migrated to origamitower) and haven't found any reference to the .try constructor. It's a shame as its very handy.
Also I've been in the new documentation site and haven't seen the Either type in the 'data' Types. Is the migration in progress or will the type but dropped?

Ah, the old documentation was written manually, rather than generated from the code, so documentation and code'd get out of sync quite often (and it looks like I never got around adding .try to the docs Orz).
In the new library, Either has been renamed to Result: http://origamitower.github.io/folktale/api/en/folktale.src.data.result.try.try.html. Documentation for Result, Validation, Task, and Future is still WIP, but hopefully will be done by the end of this month.

Oh ... Sorry for that then. Just out of curiosity then. Why call it 'Result'? Given it expresses a disjunction the name 'Either' seemed appropriate. Won't calling it 'Result' confuse it with 'Validation'?

There's a short justification here: https://github.com/origamitower/folktale/pull/62
Result is short for "the result of the operation" in a more imperative vocabulary. Not sure why Result'd be confused with Validation, but that's a valid concern.

Thanks for the link to the renaming comment. My confusion came from Result's Left and Right being called Error and Ok, which seems like we would be validating or 'testing' something rather than offering two possible ways to go.
I don't know if I explained myself correctly ... either way (pun intended) thanks for the feedback :+1:

I'm adding some clarifications on when to use Result and when to use Validation in their documentation. Does this explanation seem reasonable to you, or is there something missing from it?  https://github.com/origamitower/folktale/blob/ea1cfd741ed54acd618cc92a7079fa41518717ab/docs/source/en/data/result/index.md#how-does-result-compare-to-validation

Indeed this helps to see the different use cases for each Type. Thanks for the added info :top:
Personally one of the things I like about Either/Result is its a bifunctor which allows me to part ways in a sequential computation, essentially offering two different roads depending on a previous decision/result. Given its still available all it will take is a little vocabulary adaption for future implementations with Result ;)


Update parent version

The newest version of hotels-oss-parent includes the profile sonatype-oss-release, which has the maven-gpg-plugin, so it can be removed from this project.
Acceptance Criteria;

Update to version 2.0.5 of hotels-oss-parent.
Remove the maven-gpg-plugin from the oss-release profile in pom.xml.

Done and merged.