BREAKING CHANGE: xSQLServerMaxDop: added key, fixed code

Changed SQLInstanceName MOF attribute to Key so that multiple instances
of this resource can be used.
Fixed code to properly handle parameters.
Added Get-MaxDopDynamic function to separate DynamicAlloc logic.

This change is

Hi @gigi81, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@gigi81, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

I thought I start the review process since you signed the cla. Thanks for contributing!
I know this is a 'smaller' change in an existing resource, but if you would be so kind to change style according to the style guideline that would be awesome. I have pointed out some in the comments.
Also, does this PR fix an existing issue, if so, could you reference to it in a comment here?
Some test were also failing, but if you do a rebase with the dev branch that should solved that since that is fixed there.
If you are unsure how to do this, there is a guide how to do this (not yet merged into DSCResource), but you find it here in GettingStartedWithGitHub , look for 'Resolve merge conflicts'

Reviewed 2 of 2 files at r1.
Review status: all files reviewed at latest revision, 12 unresolved discussions, some commit checks failed.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 2 [r1] (raw file):

# Load Common Code
Import-Module $PSScriptRoot\..\..\xSQLServerHelper.psm1 -Verbose:$false -ErrorAction Stop

Can you change this work Import-Module .... to this block so it matches other resources
$script:currentPath = Split-Path -Parent $MyInvocation.MyCommand.Path
Write-Debug -Message "CurrentPath: $script:currentPath"

Import-Module $script:currentPath\..\..\xSQLServerHelper.psm1 -Verbose:$false -ErrorAction Stop

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 10 [r1] (raw file):

    param
    (
        [parameter(Mandatory = $true)]

Could you change parameterto Parameterwith capital P? At this location and al others in the file.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 20 [r1] (raw file):

    if(!$SQL)
    {
        $SQL = Connect-SQL -SQLServer $SQLServer -SQLInstanceName $SQLInstanceName

Could you change $SQL to $sql, here and the rest of the code?

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 25 [r1] (raw file):

    if($SQL)
    {
        $CurrentMaxDop = $SQL.Configuration.MaxDegreeOfParallelism.ConfigValue

Could you change $CurrentMaxDop to $currentMaxDop, here and the rest of the code?

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 100 [r1] (raw file):

}

Could we remove on of the blank lines here?

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 150 [r1] (raw file):

            {
                New-VerboseMessage -Message "Current MaxDop is $CurrentMaxDop should be updated to $MaxDop"
                return $False

Could you change $False to $false?

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 164 [r1] (raw file):

            {
                New-VerboseMessage -Message "Current MaxDop is $CurrentMaxDop should be updated to 0"
                return $False

Could you change $False to $false?

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 178 [r1] (raw file):

    )

    $NumCores = $SQL.Processors

Could you change $NumCores to $numCores? here and the rest of the function

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 179 [r1] (raw file):

    $NumCores = $SQL.Processors
    $NumProcs = ($SQL.AffinityInfo.NumaNodes | Measure-Object).Count

Could you change $NumProcs to $numProcs?

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 183 [r1] (raw file):

    if ($NumProcs -eq 1)
    {
        $MaxDop =  ($NumCores /2)

It's a white space to much after the equals sign, and a space after $numCores
Can this be changed to ($NumCores/2) or ($NumCores / 2)?

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 184 [r1] (raw file):

    {
        $MaxDop =  ($NumCores /2)
        $MaxDop=[Math]::Round( $MaxDop, [system.midpointrounding]::AwayFromZero)

There are no white space before and after the equals sign. And also a space after the first parenthesis, it's okay style guide line wise, but since you don't use that format in the rest of the code, could we remove it?
Could you change to?
$MaxDop = [Math]::Round($MaxDop, [system.midpointrounding]::AwayFromZero)

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 197 [r1] (raw file):

    $MaxDop
}

Could we remove one of the blank lines here?

Comments from Reviewable

Hi @johlju
The code is not fixing any existing issue.
The main problem I had with this resource was that I couldn't use it for more than one instance per server  because the SQLInstanceName parameter was not set as a key. So, as you can see from the PR, I changed it to a key and as long as I was at it, I improved the code.
As you can understand, changing the parameter to a key is a breaking change. So first let me know if this is acceptable. Then I can have a look at the code and change it accordingly to your review comments.

@gigi81 We have done breaking changes earlier, like in PR #106, so I would say that it is acceptable, because it's a bug that can't be solved any other way.
But as you say, it would be good point out that it actually is a breaking change. Since you should add what this PR is changing to the unreleased section of the README.md as well, you could point out there that it's a breaking change.
I would say, fix the comments and we get input from the PowerShell team in the mean time regarding this.
@mbreakey3 or @kwirkykat Can we get your input on this? How should we mention breaking changes in the README.md?

@gigi81 I submitted an issue for this PR, for making the resource work on multiple instances on the same server. Since the rest of the code is style changes and improvements in structure only, and no logic change, no issue should be necessary for that. It's normal to align the code with style guide when making even a small change.

@gigi81 Now we got an update to the CONTRIBUTING.md for breaking changes; https://github.com/PowerShell/DscResources/blob/master/CONTRIBUTING.md#breaking-changes
So please change your PR according to these new guidelines. :) Let us know if there are any questions.

Hi @johlju
Updated the code as requested.
Updated the readme and the release notes.

Great that you fixed these. Sorry for not being quicker with the review. Long workdays this week. :)
Could you change the title of the PR to "BREAKING CHANGE: xSQLServerMaxDop: added key, fixed code"
I couldn't help you with that, apparently only maintainers and the submitter can do that. :)
Also a few additional changes to the code

Reviewed 2 of 2 files at r2.
Review status: all files reviewed at latest revision, 13 unresolved discussions.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 2 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Can you change this work `Import-Module ....` to this block so it matches other resources
>
> ```
> $script:currentPath = Split-Path -Parent $MyInvocation.MyCommand.Path
> Write-Debug -Message "CurrentPath: $script:currentPath"
>
> Import-Module $script:currentPath\..\..\xSQLServerHelper.psm1 -Verbose:$false -ErrorAction Stop
> ```

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 10 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you change `parameter`to `Parameter`with capital P? At this location and al others in the file.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 20 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you change `$SQL` to `$sql`, here and the rest of the code?

This one is not fixed, can you do that?

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 25 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you change `$CurrentMaxDop` to `$currentMaxDop`, here and the rest of the code?

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 100 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could we remove on of the blank lines here?

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 150 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you change `$False` to `$false`?

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 164 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you change `$False` to `$false`?

LTGM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 178 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you change `$NumCores` to `$numCores`? here and the rest of the function

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 179 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you change `$NumProcs` to `$numProcs`?

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 183 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> It's a white space to much after the equals sign, and a space after `$numCores`
> Can this be changed to `($NumCores/2)` or `($NumCores / 2)`?

I can't see a guideline in the style guide how to write this, so I just think you should be consistent here.
Could you change ($numCores /2) to either
($numCores / 2) - blank space between / and 2
or
($numCores/2) - keeping everything tight together

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 184 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> There are no white space before and after the equals sign. And also a space after the first parenthesis, it's okay style guide line wise, but since you don't use that format in the rest of the code, could we remove it?
> Could you change to?
> `$MaxDop = [Math]::Round($MaxDop, [system.midpointrounding]::AwayFromZero)`
>

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 197 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could we remove one of the blank lines here?

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 200 [r1] (raw file):

Export-ModuleMember -Function *-TargetResource

Could you make sure there is a blank line at the end of the file.
https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#newline-at-end-of-file

Comments from Reviewable

Review status: all files reviewed at latest revision, 14 unresolved discussions.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 158 [r2] (raw file):

        "Absent"
        {
            If ($currentMaxDop -eq 0)

Could you change all If to if (lowercase). Found a few places in the code.

Comments from Reviewable

Review status: 2 of 3 files reviewed at latest revision, 14 unresolved discussions.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 2 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LGTM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 10 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LGTM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 20 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> This one is not fixed, can you do that?

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 25 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LGTM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 100 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LGTM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 150 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LGTM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 164 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LTGM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 178 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LGTM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 179 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LGTM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 183 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> I can't see a guideline in the style guide how to write this, so I just think you should be consistent here.
>
> Could you change `($numCores /2)` to either
> `($numCores / 2)` - blank space between / and 2
> or
> `($numCores/2)` - keeping everything tight together

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 184 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> LGTM

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 200 [r1] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you make sure there is a blank line at the end of the file.
> https://github.com/PowerShell/DscResources/blob/master/StyleGuidelines.md#newline-at-end-of-file

Done.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 158 [r2] (raw file):
Previously, johlju (Johan Ljunggren) wrote…
> Could you change all `If` to `if` (lowercase). Found a few places in the code.

Done.

Comments from Reviewable

@johlju update code and PR title as requested

I don't think the PowerShell Team is enforcing that these existing resources need to have a unit test when doing code changes (they do on new resources).
But it would be awesome if you could write one for this resource. I think you have a good example here.
Do you think that is something you would feel up to?

Reviewed 1 of 1 files at r3.
Review status: all files reviewed at latest revision, 14 unresolved discussions.

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 2 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 10 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 20 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 25 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 100 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 150 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 164 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 178 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 179 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 183 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 184 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 200 [r1] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

DSCResources/MSFT_xSQLServerMaxDop/MSFT_xSQLServerMaxDop.psm1, line 158 [r2] (raw file):
Previously, gigi81 (Luigi Grilli) wrote…
> Done.

LGTM

Comments from Reviewable

Hi @johlju
I would be happy to add unittest for this resource and the sql memory as well. Anyway I would like to have the 3 pending PRs I have on this module merged before doing any more work.

@gigi81 We only need a maintainer to go thru this PR too. They have a lot to do, but let's hope they have time to come around soon enough.
@kwirkykat or @mbreakey3 This looks good to me, could you glance thru this PR and merge if you feel it's all good?

Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable


Material Theme

What version of React-Table are you using?
Last version
What bug are you experiencing, or what feature are you proposing?
Isn't an error, is only that I want to get the table with a material style, so we need use a material table that allow us resize columns, so we have tried to use react-md (datatable) and add resize styles but really is very ugly. Exist some material theme for reacttable?
Thanks

react-table is not theme-based so there is no simple way to create a theme for a particular CSS approach. You have the following options to style react-table:

style, headerStyle, footerStyle on columns
getProps and getHeaderProps on columns
a function override (get...Props) for pretty much every component
completely replacing the sample CSS provided with the package (or selectively for various pieces)


Angular 2 component does not mask initial value

After we merged #154, the Angular 2 component no longer formats the initial value of the form input element.
We need to figure out how to fix that.

Fixed in #157 and published to npm.
CC @andyrue

I'm facing this issue using FormControl, if I initialize the FormControl with a value this value isn't formatted until I edit the input. I'm using version 0.20 on Ionic 2 beta.11 (Angular 2 rc.4).

Anyone got a solution for this?


Use stackage lts snapshot instead of nightly

An lts snapshot  is supposed to be more stable and more likely to be already
found in other users' cache.
Also made the script snapshot version the same as the stack.yaml snapshot.

Fixed in latest master, thanks!


non-conformable arrays error from susie_rss via rpy2 but not via native r.

When running rpy2-susie_rss, following error occurs
>>> susie_result = susie.susie_rss(ss_qc.z.to_numpy(),LD,max_iter = 4)
R[write to console]: WARNING: Providing the sample size (n), or even a rough estimate of n, is highly recommended. Without n, the implicit assumption is n is large (Inf) and the effect sizes are small (close to zero).

R[write to console]: HINT: For large R or large XtX, consider installing the Rfast package for better performance.

R[write to console]: Error in Xty - s$XtXr : non-conformable arrays

R[write to console]: In addition:
R[write to console]: Warning message:

R[write to console]: In (function (package, help, pos = 2, lib.loc = NULL, character.only = FALSE,  :
R[write to console]:

R[write to console]:  library '/usr/lib/R/site-library' contains no packages

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/conda/lib/python3.8/site-packages/rpy2/robjects/functions.py", line 204, in __call__
    return (super(SignatureTranslatedFunction, self)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/robjects/functions.py", line 127, in __call__
    res = super(Function, self).__call__(*new_args, **new_kwargs)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/rinterface_lib/conversion.py", line 45, in _
    cdata = function(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/rinterface.py", line 817, in __call__
    raise embedded.RRuntimeError(_rinterface._geterrmessage())
rpy2.rinterface_lib.embedded.RRuntimeError: Error in Xty - s$XtXr : non-conformable arrays

However, while running susie_rss using the same data in R. Things runs without errors.
WARNING: Providing the sample size (n), or even a rough estimate of n, is highly recommended. Without n, the implicit assumption is n is large (Inf) and the effect sizes are small (close to zero).

Warning message in susie_suff_stat(XtX = R, Xty = z, n = 2, yty = 1, scaled_prior_variance = prior_variance, :
“IBSS algorithm did not converge in 100 iterations!
                  Please check consistency between summary statistics and LD matrix.
                  See [https://stephenslab.github.io/susieR/articles/susierss_diagnostic.html”](https://stephenslab.github.io/susieR/articles/susierss_diagnostic.html%E2%80%9D)

One hints for the error is that
library '/usr/lib/R/site-library' contains no packages

which may indicate lacking of dependencies within susie rpy2.

could u make sure this works with R directly, when you call susieR::susie_rss from R ..

I believed the non-conformability  is caused by
      # Remove lth effect from fitted values.
      s$XtXr = s$XtXr - XtX %*% (s$alpha[l,] * s$mu[l,])

Since the issue occurs even if max_iter = 1, the problem should be on the input s of the update_each_effect_ss

Mimicing the   s$XtXr = s$XtXr - XtX %*% (s$alpha[l,] * s$mu[l,]) in python produce a matrix that can successfully do Xty - s$XtXr
>>> ss_qc.z - (XtXr - LD @ (s_final[0][0] * s_final[1][0]))
0       1.520408
1       0.718750
2       0.268789
3       1.578947
4      -0.094105
          ...
9336    0.323810
9337   -1.522989
9338    0.342857
9339   -2.011353
9340    0.626412
Length: 9341, dtype: float64
>>>

When inputting the manually generated s and LD and Z to the problematic update_each_effect_ss function, a different error occurs. This error happend after the original error, which means the original error is passed.
>>> s_update = susie.update_each_effect_ss(XtX = LD, Xty = ss_qc.z.to_numpy(),s_init =  s_final)
R[write to console]: Error in s$mu[l, ] <- res$mu : replacement has length zero

R[write to console]: In addition:
R[write to console]: Warning message:

R[write to console]: In w * prior_weights :
R[write to console]:

R[write to console]:  longer object length is not a multiple of shorter object length

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/conda/lib/python3.8/site-packages/rpy2/robjects/functions.py", line 204, in __call__
    return (super(SignatureTranslatedFunction, self)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/robjects/functions.py", line 127, in __call__
    res = super(Function, self).__call__(*new_args, **new_kwargs)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/rinterface_lib/conversion.py", line 45, in _
    cdata = function(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/rinterface.py", line 817, in __call__
    raise embedded.RRuntimeError(_rinterface._geterrmessage())
rpy2.rinterface_lib.embedded.RRuntimeError: Error in s$mu[l, ] <- res$mu : replacement has length zero

>>>
>>> s_update = susie.update_each_effect_ss(XtX = LD, Xty = ss_qc.z.to_numpy(),s_init =  s_final,estimate_prior_variance = True)
R[write to console]: Error in if (neg.loglik.logscale(lV, betahat = betahat, shat2 = shat2,  :
  missing value where TRUE/FALSE needed

R[write to console]: In addition:
R[write to console]: There were 50 or more warnings (use warnings() to see the first 50)
R[write to console]:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/conda/lib/python3.8/site-packages/rpy2/robjects/functions.py", line 204, in __call__
    return (super(SignatureTranslatedFunction, self)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/robjects/functions.py", line 127, in __call__
    res = super(Function, self).__call__(*new_args, **new_kwargs)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/rinterface_lib/conversion.py", line 45, in _
    cdata = function(*args, **kwargs)
  File "/opt/conda/lib/python3.8/site-packages/rpy2/rinterface.py", line 817, in __call__
    raise embedded.RRuntimeError(_rinterface._geterrmessage())
rpy2.rinterface_lib.embedded.RRuntimeError: Error in if (neg.loglik.logscale(lV, betahat = betahat, shat2 = shat2,  :
  missing value where TRUE/FALSE needed

>>>

Therefore, the error happened within this code block:
function (XtX, Xty, yty, n, X_colmeans = NA, y_mean = NA, maf = NULL,
    maf_thresh = 0, L = 10, scaled_prior_variance = 0.2, residual_variance = NULL,
    estimate_residual_variance = TRUE, estimate_prior_variance = TRUE,
    estimate_prior_method = c("optim", "EM", "simple"), check_null_threshold = 0,
    prior_tol = 1e-09, r_tol = 1e-08, prior_weights = NULL, null_weight = 0,
    standardize = TRUE, max_iter = 100, s_init = NULL, coverage = 0.95,
    min_abs_corr = 0.5, tol = 0.001, verbose = FALSE, track_fit = FALSE,
    check_input = FALSE, refine = FALSE, check_prior = FALSE,
    n_purity = 100, ...)
{
    args <- list(...)
    if (any(is.element(names(args), c("bhat", "shat", "R", "var_y"))))
        stop("susie_suff_stat no longer accepts inputs bhat, shat, R or var_y; ",
            "these inputs are now accepted by susie_rss instead")
    estimate_prior_method = match.arg(estimate_prior_method)
    if (missing(n))
        stop("n must be provided")
    if (n <= 1)
        stop("n must be greater than 1")
    missing_XtX = c(missing(XtX), missing(Xty), missing(yty))
    if (all(missing_XtX))
        stop("Please provide all of XtX, Xty, yty, n")
    if (ncol(XtX) > 1000 & !requireNamespace("Rfast", quietly = TRUE))
        warning_message("For large R or large XtX, consider installing the ",
            "Rfast package for better performance.", style = "hint")
    if (ncol(XtX) != length(Xty))
        stop(paste0("The dimension of XtX (", nrow(XtX), " by ",
            ncol(XtX), ") does not agree with expected (", length(Xty),
            " by ", length(Xty), ")"))
    if (!is_symmetric_matrix(XtX)) {
        warning_message("XtX is not symmetric; forcing XtX to be symmetric by ",
            "replacing XtX with (XtX + t(XtX))/2")
        XtX = XtX + t(XtX)
        XtX = XtX/2
    }
    if (!is.null(maf)) {
        if (length(maf) != length(Xty))
            stop(paste("The length of maf does not agree with expected",
                length(Xty)))
        id = which(maf > maf_thresh)
        XtX = XtX[id, id]
        Xty = Xty[id]
    }
    if (any(is.infinite(Xty)))
        stop("Input Xty contains infinite values")
    if (!(is.double(XtX) & is.matrix(XtX)) & !inherits(XtX, "CsparseMatrix"))
        stop("Input XtX must be a double-precision matrix, or a sparse matrix")
    if (anyNA(XtX))
        stop("Input XtX matrix contains NAs")
    if (anyNA(Xty)) {
        warning_message("NA values in Xty are replaced with 0")
        Xty[is.na(Xty)] = 0
    }
    if (check_input) {
        semi_pd = check_semi_pd(XtX, r_tol)
        if (!semi_pd$status)
            stop("XtX is not a positive semidefinite matrix")
        proj = check_projection(semi_pd$matrix, Xty)
        if (!proj$status)
            warning_message("Xty does not lie in the space of the non-zero eigenvectors ",
                "of XtX")
    }
    if (is.numeric(null_weight) && null_weight == 0)
        null_weight = NULL
    if (!is.null(null_weight)) {
        if (!is.numeric(null_weight))
            stop("Null weight must be numeric")
        if (null_weight < 0 || null_weight >= 1)
            stop("Null weight must be between 0 and 1")
        if (is.null(prior_weights))
            prior_weights = c(rep(1/ncol(XtX) * (1 - null_weight),
                ncol(XtX)), null_weight)
        else prior_weights = c(prior_weights * (1 - null_weight),
            null_weight)
        XtX = cbind(rbind(XtX, 0), 0)
        Xty = c(Xty, 0)
    }
    p = ncol(XtX)
    if (standardize) {
        dXtX = diag(XtX)
        csd = sqrt(dXtX/(n - 1))
        csd[csd == 0] = 1
        XtX = t((1/csd) * XtX)/csd
        Xty = Xty/csd
    }
    else csd = rep(1, length = p)
    attr(XtX, "d") = diag(XtX)
    attr(XtX, "scaled:scale") = csd
    if (length(X_colmeans) == 1)
        X_colmeans = rep(X_colmeans, p)
    if (length(X_colmeans) != p)
        stop("The length of X_colmeans does not agree with number of variables")
    s = init_setup(0, p, L, scaled_prior_variance, residual_variance,
        prior_weights, null_weight, yty/(n - 1), standardize)
    s$Xr = NULL
    s$XtXr = rep(0, p)
    if (!missing(s_init) && !is.null(s_init)) {
        if (!inherits(s_init, "susie"))
            stop("s_init should be a susie object")
        if (max(s_init$alpha) > 1 || min(s_init$alpha) < 0)
            stop("s_init$alpha has invalid values outside range [0,1]; please ",
                "check your input")
        s_init = susie_prune_single_effects(s_init)
        num_effects = nrow(s_init$alpha)
        if (missing(L)) {
            L = num_effects
        }
        else if (min(p, L) < num_effects) {
            warning_message(paste("Specified number of effects L =",
                min(p, L), "is smaller than the number of effects",
                num_effects, "in input SuSiE model. The initialized SuSiE model will have",
                num_effects, "effects."))
            L = num_effects
        }
        s_init = susie_prune_single_effects(s_init, min(p, L),
            s$V)
        s = modifyList(s, s_init)
        s = init_finalize(s, X = XtX)
        s$XtXr = s$Xr
        s$Xr = NULL
    }
    else s = init_finalize(s)
    elbo = rep(as.numeric(NA), max_iter + 1)
    elbo[1] = -Inf
    tracking = list()
    bhat = (1/attr(XtX, "d")) * Xty
    shat = sqrt(s$sigma2/attr(XtX, "d"))
    z = bhat/shat
    zm = max(abs(z[!is.nan(z)]))

@hsun3163 the function call is just susieR::susie_rss, right? It is my understanding that the input to the rpy2 version of this function would return error but not the native R version. Then the only source of error is the input data type (not even data format ) ... I wonder if you add something like as.matrix to the relevant lines in the  susieR package, to force the data types to unify, would there still  be an issue? I am thinking the fix might come from susieR itself. It is helpful to identify where the issue comes from using  the rpy2 interface, so we can fix  the R codes. =

@hsun3163 the function call is just susieR::susie_rss, right? It is my understanding that the input to the rpy2 version of this function would return error but not the native R version. Then the only source of error is the input data type (not even data format ) ... I wonder if you add something like as.matrix to the relevant lines in the susieR package, to force the data types to unify, would there still be an issue? I am thinking the fix might come from susieR itself. It is helpful to identify where the issue comes from using the rpy2 interface, so we can fix the R codes. =

Yes, the cause of this issue is that, for some reason the z vector are considered array instead of matrix array in rpy2, after as.matrix(z), this error no longer exist. I think this unificiation should be done as upstream as possible. But let me first verify if array can't minus a matrix array in R.

It is verified that array and matrix are not conformable, TIL.

array(ss_qc$z)-as.matrix(ss_qc$z)
Error in array(ss_qc$z) - as.matrix(ss_qc$z): non-conformable arrays
Traceback:

Using following wrapper can fix the issue. I believed it is best to solve it outside of the susieR package, for the point that need unification may be many and this issue seems only to be caused by rpy2. TBH I have not seen any array data type in R usage.

i see. Okay let's do what you propose!


Fix incorrect use of flags in re.sub()

tests/run/extstarargs.pyx read:
    __doc__ = re.sub(u"(ELLIPSIS[^>]*Error: )[^\n]*\n", u"\\1...\n", __doc__, re.M)

But the 4th argument of re.sub() is supposed to be maximum number of substitutions, not flags.
Moreover, re.M affects only semantics of ^ and $, so it wouldn't have any effect on this regexp.

Thanks


coin swap rate difference in graph and card

In the graph 1wftm = 0.37087 where as in the card below the swap it says 1wftm = 0.374832 .

added an info button, that is the coingecko rate, the rate on the card is the swap rate. This is why it says Compared to - within 1.06% directly below it.


Allow public objects as an explicit option.

Currently any s3 bucket will have no public access.
I'm proposing no public access by default but with the option to set public as input.

linked PR a bit late but closing this as PR has been merged.


ARROW-4223: [Python] Support scipy.sparse integration

This is to resolve ARROW-4223.

I think this is ready for review.
Appveyor seems to be failing on unrelated issue and I'm not sure about Travis.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@ed6e429). Click here to learn what that means.
The diff coverage is 66.85%.

@@            Coverage Diff            @@
##             master    #4779   +/-   ##
=========================================
  Coverage          ?   89.11%
=========================================
  Files             ?      721
  Lines             ?   101887
  Branches          ?        0
=========================================
  Hits              ?    90792
  Misses            ?    11095
  Partials          ?        0

Impacted Files
Coverage Δ

cpp/src/arrow/python/serialize.h
0% <ø> (ø)

cpp/src/arrow/ipc/writer.h
100% <ø> (ø)

cpp/src/arrow/ipc/writer.cc
91.04% <0%> (ø)

cpp/src/arrow/ipc/read-write-test.cc
99.83% <100%> (ø)

python/pyarrow/serialization.pxi
83.95% <100%> (ø)

cpp/src/arrow/python/pyarrow_api.h
81.53% <100%> (ø)

cpp/src/arrow/python/deserialize.cc
88.35% <55.55%> (ø)

python/pyarrow/serialization.py
82.58% <59.37%> (ø)

python/pyarrow/tests/test_serialization.py
87.52% <75%> (ø)

cpp/src/arrow/python/serialize.cc
88.48% <77.77%> (ø)

... and 1 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ed6e429...a2bbb18. Read the comment docs.

Hey @mrkn. I'm trying to enable components serialization for sparse tensor to enable cases like this test. I'm using GetSparseTensorMessage, but I'm not sure if this is the right way to go. Could you please give some feedback on GetSparseTensorMessage?
I want to implement this to enable Torch serialization.

@rok I’m investigating the reason why the skipped test is failed.

@rok I’m investigating the reason why the skipped test is failed.

I think this line I added is not correct.

@rok I'm considering what is the better way to manage the number of objects for each different sparse index types.

@rok I'm considering what is the better way to manage the number of objects for each different sparse index types.

Do we want components of indexes in separate buffers?

@rok Thank you for inviting me to your fork.
My work is still work-in-progress, but I want to share the direction of my work to you.
The HEAD of my worktree is here:
https://github.com/mrkn/arrow/commit/14a9fb5ae9c65c2467fe159639841c9cf7a81878
My approach is counting COO and CSR separately and manage these counts in a dictionary.
I need to replace this dictionary with a struct because using dictionary prevents calling GetSerializedFromComponents  in nogil context.  This is my remaining work.
And, to prevent copying memory, I'll add some new internal reader and writer functions who use IpcPayload for the media of buffers.
I think I can finish this work by Wednesday.

Thanks @mrkn! No hurry, it's ready when it's ready :).

@rok My work is done.

@mrkn thank you! I'll read your changes tonight. :)
I think this is now ready for review.
It would also be good to have an opinion on torch serialization change related to ARROW-4452

@mrkn your changes look good, thanks for the help!

@rok Can you rebase please?

@pitrou Rebased.
I need to look into test_sparse_tensor_csr_components_serialization, but I think it's a small issue.

Sorry for forgetting to look into this PR again. This may conflict once #5290 gets in, though, so I'd rather tackle #5290 first.

Yeah, good point, I'll add that as well. So far my focus was on serialization.
Can you review the work so far and I'll perhaps open a separate PR?

@pitrou I added from_scipy and to_scipy methods to pa.SparseTensorCXX.

@rok Can you enable Travis-Ci and AppVeyor on your Arrow repository fork? It will allows faster CI roundtrips, as the main Arrow queue is often quite clogged.

@rok Can you enable Travis-Ci and AppVeyor on your Arrow repository fork? It will allows faster CI roundtrips, as the main Arrow queue is often quite clogged.

Thanks for the tip, that is indeed much faster!

@pitrou please note there is still the issue on clang. I'll get back to it after finishing #5716.

@ursabot build

@pitrou I think this is now ready for another review round. I've updated #4990 too.

The R download failure on AppVeyor is unrelated, merging.

Thanks @pitrou @mrkn and @jorisvandenbossche! :)


Fix Windows Action

We need to install bundler before entering building process on Windows.
Signed-off-by: Hiroshi Hatake<EMAIL_ADDRESS>

:tada:


userRoleStatus

2021-10-26T21:21:48+0000:WARNING:vehicle:/vehicles/XXXYYYZZZ111: Unknown attribute userRoleStatus with value ENABLED
2021-10-26T21:26:50+0000:WARNING:vehicle:/vehicles/XXXYYYZZZ222: Unknown attribute userRoleStatus with value UNKNOWN

Fixed in 0.22.0


#253 Added Swedish (sv) localization

Added Swedish (sv) localization.

Great work, let me check it 👍
Thanks!


helm install myeshop .

helm install myeshop .
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: [unable to recognize "": no matches for kind "Component" in version "dapr.io/v1alpha1", unable to recognize "": no matches for kind "Configuration" in version "dapr.io/v1alpha1"]

Make sure you deploy Dapr to K8s first: https://docs.dapr.io/operations/hosting/kubernetes/kubernetes-deploy/


CCI: Enable Automatic RD Naming in the npsp_default_settings cci task.

Update the cci npsp_default_settings task to enable Automatic Naming for Recurring Donations. This is a feature that works in both RD1 and RD2, and will be pre-enabled in Trial Orgs in the very very near future. Updating this task allows our scratch orgs to more closely match how our customer orgs will look.

Critical Changes
Changes
Issues Closed
Community Ideas Delivered
New Metadata
Deleted Metadata

Thanks @mpusto. Can you approve the PR when you get an opportunity?

@mpusto Nevermind. I think I just needed to refresh a couple of times. Merging now. Thank you.


Add documentation for ExampleGroup#idempotently_define_singleton_method

It's hard to understand how the method works at first sight.

No. but if anyone like me ever wanted to do a code review he/she probably gets stuck in the process.

Thanks!


Error msg: Connection refused

First: Thanks for this great guide. I'm new to Linux and PhotoPrism but was able to understand and proceed the steps that you described. Good work :-)
Unluckily I'm not able to login to the PhotoPrism interface yet.
Using $ systemctl status photoprism for analyzes, I get the following information:
systemd[1]: Starting photoprism.service - PhotoPrism Service...
photoprism[738]: level=error msg=dial tcp <IP_ADDRESS>:3306: connection refused"
photoprism[1284]: level=error msg=dial tcp <IP_ADDRESS>:3306: connection refused"
systemd[1]: photoprism.service: Deactivated successfully.
systemd[1]: Started photoprism.service - PhotoPrism Service.
systemd[1]: photoprism.service: Consumed 7.282s CPU time.
I assume that the server settings for the MariaDB in the .env-file are not correct.
The IP of my PC is: <IP_ADDRESS>
Do you have any advice what I need to change to make it work?
My settings in /var/lib/photoprism/.env are:
# Database - MariaDB
PHOTOPRISM_DATABASE_DRIVER="mysql"
PHOTOPRISM_DATABASE_SERVER="<IP_ADDRESS>:3306"
PHOTOPRISM_DATABASE_NAME="photoprism"
PHOTOPRISM_DATABASE_USER="photoprism"
PHOTOPRISM_DATABASE_PASSWORD="a_secure_password"
# Connection
PHOTOPRISM_HTTP_HOST="<IP_ADDRESS>"
PHOTOPRISM_HTTP_PORT="2342"
# Initial password
PHOTOPRISM_AUTH_MODE="password"
PHOTOPRISM_ADMIN_USER="photoprism"
PHOTOPRISM_ADMIN_PASSWORD="a_secure_password"
# Storage directories
PHOTOPRISM_STORAGE_PATH="/var/lib/photoprism"
PHOTOPRISM_ORIGINALS_PATH="/var/lib/photoprism/Originale"
PHOTOPRISM_IMPORT_PATH="/var/lib/photoprism/Importe"
Or is there maybe anything else which needs to be done to make Photoprism run?
Your advice is highly appreciated.

That's a database connection error. You're running PhotoPrism and MariaDB on the same machine? Then try using <IP_ADDRESS>:3306 or localhost:3306 for the database server address. I believe MariaDB by default doesn't listen on any other addresses.

Thanks for your quick response.
Yes. PhotoPrism and MariaDB are supposed to run on the same machine. It's my old laptop I'm using for this. Is there anything odd about it?
My new laptop is supposed to be the client.
Now, I tried <IP_ADDRESS>:3306, then localhost and finally <IP_ADDRESS>:3306. After each change of the .env-file I did the daemon-reload and restart and enabling of PhotoPrism.
The error message always changed accordingly, e.g.: photoprism[1284]: level=error msg=dial tcp localhost:3306: connection refused"
Any ideas?

I assume MariaDB is actually running, you have executed mariadb-secure-installation and created the PhotoPrism user and password?
Can you connect locally using the mariadb CLI utility?
Also see here: https://mariadb.com/kb/en/troubleshooting-connection-issues/

No, I did nothing else than installing Debian 12 (standard setup) and then following all the steps in your PhotoPrism guide.
Are there any other steps / other requirements that need to be done before I can start PhotoPrism?  If so, can you provide suitable links to me, please?
Forgive me: I'm a Linux noob and do not really understand the questions that you ask me in your last message :-/ But will try to dive into and understand.

I understand that MariaDB needs to be installed first.
Now, I was just following the steps described here:
https://linuxgenie.net/how-to-install-mariadb-on-debian-12-bookworm-distribution/
Then did the daemon-reload as well as start and enabling of PhotoPrism.
The message 'Connection refused' is gone now. Yeah :+1:
Got a new one though: Access denied for user 'photoprism'@'localohost'
Guess it means that I need to create the PhotoPrism user and database as you said. How do I do this?

Correct, MariaDB needs to be installed separately.
See the PhotoPrism docs for commands to create the database and user: https://docs.photoprism.app/getting-started/advanced/databases/#configuration

BINGO! I finally got to see the PhotoPrism web interface :-)
I followed the instructions in this guide to create the photoprism database and the admin user: http://java.xrheingauerx.de/mariadb_datenbank_anlegen_benutzer_berechtigen.html
Thank you for your support! I think it would be helpful to mention in your guide that prerequisites are:

Install MariaDB on Debian
Create the database photoprism in MariaDB monitor.
Create the database DB User + permissions in MariaDB monitor.

It might be obvious to advanced users but it certainly is not for beginners.
By the way: I was studying the documentation on PhotoPrism.app BUT it was not really helpful as it does not say clearly what to do in which order and where.

Glad to hear you got it working.
MariaDB is technically not a prerequisite since PhotoPrism defaults to SQLite, and the .env file in the guide mentions this, but I'll try and clarify this point.
Good luck!


Support separate virtual/dtb provider

Small updates that re-enable the use of a separate virtual/dtb provider for r36. Now we can simply change the KERNEL_DEVICETREE variable and update the PREFERRED_PROVIDER_virtual/dtb. The actual recipe to build the devicetrees has to pull in the oot-modules sources to build them, so an update to tegra demo distro will be subsequently due.

Hi @kekiefer
Thanks for this PR.
Is this an improvement to the current implementation or you are fixing an issue ?

This is a fix needed to make it possible to define a new provider of virtual/dtb. Without it, the required oot-modules cannot be built since providers of a package are mutually exclusive..

Got it. Thanks


dynamic shape for deconv ops

i just check https://github.com/tensorflow/tensorflow/issues/833
it provide code for tf.nn.conv2d_transpose to support dyncmic shape. i want to ask how to apply it for slim.conv2d_transpose. Plz help to check. thank you!

This question is better asked on StackOverflow since it is not a bug or feature request. There is also a larger community that reads questions there.
Thanks!


Question: Move canvas while dragging items

Hi all,
Is it possible to move the canvas along while dragging the item 'out of view'?
So for example:
I have only 2 weeks in my view and I want to drag an items to 4 weeks in the future. To do this, I have to place the item at the end of the canvas, scroll the canvas and do a second move.
It would be great if the canvas scrolls along when I am dragging an item and hovering over the left or right part of the timeline.

Hi,
It´s not implemented on the library, fortunately I managed to get a simple solution, not very elegant and feels laggy but it works. using the function https://www.npmjs.com/package/react-calendar-timeline/v/0.27.3-beta#moveresizevalidatoraction-itemid-time-resizeedge.
Here you can check if item moving is close to the borders of the Timeline, and if it happends I move the timeline canvas (by a percentage of the full timeline range "to" "from") while still dragging. Check this simple solution, you can play a bit with the numbers.
It´ll be nice to have something similar implemented by the library, cuz this feels a laggy and forced solution.
`const handleValidateMovingResizingItem = useCallback((action, item, time, edge) {
if (action === 'move') {
const stateFrom = timelineComponent.current.state.visibleTimeStart;
const stateTo = timelineComponent.current.state.visibleTimeEnd;
const zoomMinutes = Math.round((stateTo - stateFrom) / 60000);
const MOVEMENTWINDOW = 4;

// 5 % Percent of the window area will be used for activanting the move Time window, will change base on zoom level
// For Zoom level 2 hours, area 6 minutes
const percetageTolerance = (zoomMinutes * 5) / 100;
const timeBorderArea = Math.round(percetageTolerance * 60000);

// Moves to right
if (item.end_time > stateTo - timeBorderArea) {
  const newFrom = stateFrom + (timeBorderArea * MOVEMENTWINDOW); // Moves 20 percent
  const newTo = stateTo + (timeBorderArea * MOVEMENTWINDOW); // Moves 20 percent

  if (isValidZoom(newFrom, newTo)) {
    // onChangeVisibleTime(newFrom, newTo);
    timelineComponent.current.updateScrollCanvas(newFrom, newTo);
    return time + (timeBorderArea * MOVEMENTWINDOW);
  }
}

// Moves to left
if (item.start_time < stateFrom + timeBorderArea) {
  const newFrom = stateFrom - (timeBorderArea * MOVEMENTWINDOW); // Moves 20 percent
  const newTo = stateTo - (timeBorderArea * MOVEMENTWINDOW); // Moves 20 percent

  if (isValidZoom(newFrom, newTo)) {
    // onChangeVisibleTime(newFrom, newTo);
    timelineComponent.current.updateScrollCanvas(newFrom, newTo);
    return time - (timeBorderArea * (MOVEMENTWINDOW));
  }
}
return time;

}
}`

Hi @davidbejarcaceres,
Thanks for your response. I agree with you that it would be nice to have this in the library, but this already helped me a lot, thanks!
Johan


Missing Region for Availability zone support of the App Service plan

Seems like Norway East is missing from the list of regions here:
https://learn.microsoft.com/en-us/azure/reliability/migrate-app-service#prerequisites
-at least the portal lets me select Zone Redundancy = Enabled when Region = Norway East
regards
J

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

ID: 9ef86ae6-02f7-b8dd-5530-519ba21d153d
Version Independent ID: 6274feaa-aa0a-721b-fb18-2dce06cec13e
Content: Migrate Azure App Service to availability zone support
Content Source: articles/reliability/migrate-app-service.md
Service: app-service
GitHub Login: @anaharris-ms
Microsoft Alias: anaharris

@FairW ,
Thanks for contacting Microsoft. I will look into getting the docs updated. I'll also make sure that there aren't some other missing regions.
Thank you again for your help!

Thanks for catching this. Doc update has been submitted and will be live in a couple hours.


Signup Page is broken

Basic Information
Go to /signup and this shows up
./src/components/ui/signup/multi-step-form.tsx:1:1
Module not found: Can't resolve 'react-image-crop/dist/ReactCrop.css'
> 1 | import "react-image-crop/dist/ReactCrop.css";
    | ^
  2 |
  3 | import Image from "next/image";
  4 | import React, { useRef, useState } from "react";

https://nextjs.org/docs/messages/module-not-found

Import trace for requested module:
./src/pages/signup.tsx

Other Information
This is on main :)

Nvm run npm install


Go install not working

Bug Description
The readme install command is not working
go install github.com/GoogleCloudPlatform/cloud-sql-proxy@latest                                                    1 ↵

Stacktrace
go install github.com/GoogleCloudPlatform/cloud-sql-proxy@latest                                                    1 ↵
go: downloading github.com/GoogleCloudPlatform/cloud-sql-proxy v1.32.0
go: github.com/GoogleCloudPlatform/cloud-sql-proxy@latest: module github.com/GoogleCloudPlatform/cloud-sql-proxy@latest found (v1.32.0), but does not contain package github.com/GoogleCloudPlatform/cloud-sql-proxy

How to reproduce

Run go install

Environment

OS type and version: MacOS ARM
Cloud SQL Proxy version (./cloud-sql-proxy --version): latest

This is a typo in the README.
Use:
go install github.com/GoogleCloudPlatform/cloud-sql-proxy/v2@latest

I'll update the README shortly here.


[VL] Add shortcut tools/gluten-it/sbin/gluten-it.sh to run gluten-it

Any impact to current build script? if there is, then can you highlight what's it before and after this PR?

Any impact to current build script? if there is, then can you highlight what's it before and after this PR?

It doesn't impact any part of current build. It is just to add a shortcut .sh file to shorten the command used in CI.


#437 - AutoIndex label NPE during initialization and index lookup

Description

Preventing AutoIndex initialization when disabled in configuration
Preventing Session creation when AutoIndex is disabled
Building AutoIndex during initialization to avoid redundant operation
Fixing LabelPrimaryId to set child's label instead of parent's
Fixing LabelPrimaryId equals and hashcode to avoid NPE during lookup
Updating AutoIndex test accordingly
Creating AutoIndex and LabelPrimaryId tests in EntityAbstractionTest

Related Issue
#437 - AutoIndex label NPE during initialization and index lookup
Motivation and Context
Avoiding NPE caused by AutoIndex initialization when using node entities abstraction as well as correcting LabelPrimaryID logic to correctly set child's label of an abstract entity and return null for nonexistent ID references during hash lookups instead of breaking with NPE.
How Has This Been Tested?
Using existing test case in addition to new tests
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Thank you for checking this out @michael-simons!
First of all, I'm sorry for the IDE auto formatting (split diff view will be helpful in this case).
This PR main changes are regarding the creation of AutoIndexManager and LabelPrimaryId.
When AutoIndex does not exist, the LabelPrimaryId changes are necessary to fix our main issue that's the ability to use Abstract parent class without having its label on children nodes. In order to handle the LabelPrimaryId changes properly I had to ensure equals/hashcode are dealing with null values.
Finally, I thought it would make sense to make a minor improvement regarding session creation since its related to AutoIndexManager creation as well.
Please, let me know if you have any concerns regarding this task so I can help finalize it.

@michael-simons have you had a chance? we're eagerly waiting on some kind of resolution in #437

Hi @TWiStErRob I have added my review comments some weeks ago actually, but forget to submit the review. Sorry for that. Working on it right now.

I'm closing this now in favor of #514. The label determination works now as described in the documentation. I kept the improvements of AutoIndexManager but moved the actually execution to org.neo4j.ogm.session.SessionFactory#runAutoIndexManager.


Quest Generator D2E v1.0

Hi all,
I have been working on a software package for randomized quest generation for D2E (basically a set of MATLAB/octave routines). The s/w selects tiles at random and builds a dungeon with them; placing doors, spawning monsters, placing search tokens, and including a quest objective. The output can be used with Valkyrie to play a different quest each time. They are mainly intended for one-offs, or side quests, but anything is possible. They might also serve to start people of who want to create their own quests. Just generate a few dungeons until you get something you like, and start editing from there.
The plan now is to integrate it in Valkyrie itself with help from Bruce. Also, if anyone has ideas how to add more variety, let me know. Just keep in mind that it should be quite modular to easily fit in different dungeons.
Discussion at boardgamegeek:
https://boardgamegeek.com/thread/1850261/random-dungeon-generator
and the files:
QuestGeneratorD2E_v01.zip

Some random thoughts:
If leaving number of tiles to the random generator it can go down to 1 tile and up to all tiles used.  Perhaps setting a minimum and maximum is useful?
I would like to change the tile definition arrays to characters, so that it is more visual and will line up using fixed width.  This can be done with a find and replace, I am thinking something like this:

  ._
##*&##
######
######
######
######
##&*##
  _.

The problem is that a hazard square can't be on a puzzle edge, but I don't think this ever happens?  One solution that may also help readability is to only mark the external puzzle spaces (1/2) and imply the others.
Going further still, only the extended bit (2) needs to be marked, as long as A/B type connections are known.  This could mean using numbers 0 to 9 for here to mark inside, outside, city and blackrealm.  I am also thinking ahead to Imperial Assualt which has even more types.
Traits in Valkyrie will need to be updated, this is not a big issue.
Currently this doesn't allow for excluding tiles sides where the other side of the same tile is already used.  Valkyrie has this information already so it shouldn't be hard to add.
It doesn't look like you have a tile count to limit number of end peices or other duplicates.  This will need to be added (Valkyrie doesn't have this either).
The traits you have are:
'Building','Cave','Cold','Corridor','Crossroads','Dark','Hot','Room','Tunnel','Water'
Some of these are the standard D2E monster/quest traits are some are not.  It is not immediately clear to me how these are used and mixed.
Random Names:
This is both easier and harder in Valkyrie.  You can self reference in dictionaries so you can have:

quest.name,{qst:PLACE_NAME2} {qst:OF} {qst:ADJECTIVE4} {qst:THEME1}
PLACE_NAME1,Crypt
PLACE_NAME2,Dungeon
PLACE_NAME3,Labyrinth
OF,of

This will allow for translations, however the quest.name will need to be generated, so any language that doesn't fit the X of Y Z template will break without special support.
These all look like things that should be exposed as controls for the generator:
% probability that a doorway has a door
ratedoor=.75;
% probability that a tile has a spawn event
ratespawn=.67;
% probability that a tile has a search item
ratesearch=.33;
On questtype, my concept is to have these still manually created.  So the quest would have a manually written intro/outtro and the bit in the middle will be filled in.  One implementation of this would then be to create a quest (not an internal Valkyrie feature) that has a whole bunch of questtypes as you have done and picks one at random, but I don't see that is something that should be built in.
The Long/Short weighting doesn't seem to do anything?
I think the first step is to get the extra TileSide data into Valkyrie, I will start on this.

Here is my current thinking:

[TileSide1B]
name="1B"
top=197
left=105
image="{import}/img/001B.dds"
traits=throne inside building
reverse=TileSide1A
zero=1,1
map00=    B
map01= ##*#####
map02= ##*#####
map03= ########
map04=B########
map05= ##*#####
map06= ##*#####
map07=     B

Where A is a join protrusion on an A side, B is for B side, C is for city and  D is for blackrealm. * is obstacle, _ is pit, ! is hazard, ~ is water and = is sludge.

Tile definitions added here:
https://github.com/NPBruce/valkyrie/blob/quest_generator/unity/Assets/StreamingAssets/content/D2E/base/tiles.ini
I will stick with the base tiles until I have something working.

If leaving number of tiles to the random generator it can go down to 1 tile and up to all tiles used. Perhaps setting a minimum and maximum is useful?

Yes, that needs some improvement. I think the best solution would be if the user can choose between e.g.  small, medium, large, vast, and the number of tiles then becomes 10,20,30,40 +/- 2 (random part) or something similar. That way the user can plan his evening, while not knowing the exact number of tiles.

I would like to change the tile definition arrays to characters, so that it is more visual and will line up using fixed width.

I like that idea. Using numbers makes it easy to literally add the tiles, but that can also be solved in a different manner. Or do you want to translate back before fitting?

The problem is that a hazard square can't be on a puzzle edge, but I don't think this ever happens?

I think that's a safe bet, because ffg wouldn't be able to complete the colored lines otherwise.

One solution that may also help readability is to only mark the external puzzle spaces (1/2) and imply the others. Going further still, only the extended bit (2) needs to be marked, as long as A/B type connections are known. This could mean using numbers 0 to 9 for here to mark inside, outside, city and blackrealm. I am also thinking ahead to Imperial Assualt which has even more types.

Yes, the tile shapes would be completely defined by using A or B. You will need to make the fitting algorithm a bit smarter though. Just make sure the 1 in my tile definition is still an occupied square, and can only be used for a connection. That way it can almost always be closed of with an end cap.
Again, I don't know if you want to translate back before fitting, but otherwise you could get the following. Suppose you have two tiles. To which tile does the middle B belong?
B

##B##B

Having said that, my method might also have some problematic corner cases, E.g. when combining A and B tiles.

Currently this doesn't allow for excluding tiles sides where the other side of the same tile is already used. Valkyrie has this information already so it shouldn't be hard to add.

That would be a nice addition. I only considered B sides so far.

It doesn't look like you have a tile count to limit number of end peices or other duplicates. This will need to be added (Valkyrie doesn't have this either).

True.

The traits you have are:
'Building','Cave','Cold','Corridor','Crossroads','Dark','Hot','Room','Tunnel','Water'
Some of these are the standard D2E monster/quest traits are some are not. It is not immediately clear to me how these are used and mixed.

I used the following traits:

D2E monster/quest traits
'Corridor' vs 'Room' tile traits determined manually by looking at the tile.
'Tunnel' vs 'Crossroads' tile traits determined automatically from the number of possible connections
'Long' vs 'Short' for weighting

A generated quest can have any type of trait.
1-3 are used to select tiles to include in the dungeon (simply ignoring 4).
4 is used to select the connection where to place the next tile (1-3 are ignored)
1 is used to spawn monsters (2-4 are ignored)

Random Names:
This is both easier and harder in Valkyrie. You can self reference in dictionaries so you can have:
quest.name,{qst:PLACE_NAME2} {qst:OF} {qst:ADJECTIVE4} {qst:THEME1}
PLACE_NAME1,Crypt
PLACE_NAME2,Dungeon
PLACE_NAME3,Labyrinth
OF,of
This will allow for translations, however the quest.name will need to be generated, so any language that doesn't fit the X of Y Z template will break without special support.

I did not consider this yet. English might actually be the easiest language for something like this. Having a 4 word combination and 4 word lists simplifies it a bit (a list can also be a single word). That way the adjective can e.g. be placed at the back. But that still might give problems with male vs female words etc. Maybe it would be better to just provide a long list of complete names?

These all look like things that should be exposed as controls for the generator:
% probability that a doorway has a door
ratedoor=.75;
% probability that a tile has a spawn event
ratespawn=.67;
% probability that a tile has a search item
ratesearch=.33;

Do you mean controlled by the user? I'm not sure. Maybe better to set them according to difficulty level.

On questtype, my concept is to have these still manually created. So the quest would have a manually written intro/outtro and the bit in the middle will be filled in. One implementation of this would then be to create a quest (not an internal Valkyrie feature) that has a whole bunch of questtypes as you have done and picks one at random, but I don't see that is something that should be built in.

I see what you mean, and I agree about the 'fluff'. But there still should be some kind of archetypes I guess, Because it also determines whether there should e.g. be an exit, unique monster etc.

The Long/Short weighting doesn't seem to do anything?

It should influence where the next tile is placed. Far from the entrance, or close to the entrance. The idea is that this makes the dungeon more stretched out or more densely packed.

Where A is a join protrusion on an A side, B is for B side, C is for city and D is for blackrealm. * is obstacle, _ is pit, ! is hazard, ~ is water and = is sludge.

Nice selection of symbols! I planned to distinguish between B and D could through tile traits. They can be mixed quite easily, but this also works.

Nice selection of symbols! I planned to distinguish between B and D through tile traits. They can be mixed quite easily, but this also works.
You can't use tile traits because of tiles that cover multiple types, it has to be on the connection.

I'm working on implementing the basics of this now.

I got Mists of Bilehall in the post today, and going through the tiles I noticed the following tile:
83B
  B
!!!#!#B
*!!!!#
!!##!!
   B

The hazard square under the top B would not have fit in my system, because the yellow square around the tile is not complete. But for your proposed system it should not be a problem. I'll also go over the other tiles one of these days.

I haven't forgotten this, but I've had a lot going on and a new MoM expansion just dropped, so I'll be adding support for that first.


Feat: add new features page section with call to action

Hi, this is my first ever contributions to a open source, let me know if I have done it correct,
Thank you

@all-contributors please add @edizyurdakul for code


[AutoRelease] t2-apimanagement-2023-04-11-67175(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/3940
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=966

issue link:https://github.com/Azure/sdk-release-request/issues/3940

/check-enforcer override


chore: fix makefile lint targets

Fix makefile lint targets.

@mowies i will look at it and eventually open a follow up

i'd be fine with fixing that in this PR as well, but as you like 🤷🏼

Yeah, in another PR will be better.


Refactor charts to use billboard.js

https://naver.github.io/billboard.js/

In-progress - using the billboard branch for testing

Merged in Master


fix scss-lint warnings

EmptyLineBetweenBlocks: Rule declaration should be followed by an empty line
LeadingZero: 0.1 should be written without a leading zero as .1
PropertySortOrder: Properties should be ordered
SpaceAfterPropertyColon: Colon after property should be followed by one space
SpaceAroundOperator: $width*2 should be written with a single space on each side of the operator: $width * 2
StringQuotes: Prefer single quoted strings

Sass Guidelines also recommends using two spaces instead of four to indent.
@kazzkiq What do you think about it?

@marcobiedermann Thanks for the pull requests.
About the indent spaces, I personally like four spaces for readability purposes, but as this topic is highly subjective and it seems there is still no consensus on two vs four indent spaces, I think we can keep them as they are. If this leads to inconsistency on projects where people use different number of spaces, they could just convert it on their IDEs/Code Editors anyways.


[MM-17369] Support filters for other issue fields

Summary
This PR adds functionality to filter on custom fields (like Mattermost Team) and Security Level.
Tested on cloud and server
Ticket Link
https://mattermost.atlassian.net/browse/MM-17369
There are some steps to setting up Security Level on Jira's side:

Modify issue permission scheme

Add a new role to "Set Issue Security". Set to "Application access - Jira Core" for server or "Application access - Jira Software" for cloud

Edit issue security scheme

For each relevant Security Level, add a new role. Set to "Application access - Jira Core" for server or "Application access - Jira Software" for cloud

Edit project's issue security settings to use this scheme

Screenshot:

@mickmister and I talked offline about the caching change, and he'll simplify it. Added Awaiting Submitter Action until then, please re-request the review when ready?

@levb re-requesting review through comment because the previous review is pending

Adding Do Not Merge label as there are changes in here that go against the recently decided scope of the first release of the channel subscriptions feature.

This issue has been automatically labelled "stale" because it hasn't had recent activity.
A core team member will check in on the status of the PR to help with questions.
Thank you for your contribution!
/cc @jasonblais @hanzei


Add HPC job queue support

We currently support yarn and local processes, it would be good to also add support for traditional job queues (SLURM, etc...). dask-jobqueue will be a good reference.

PBS support was added in #38. I'm going to close this, new issues can be created for additional job-queue backends.


Feature/key files are only readable by owner

Issue #99
Description of changes
The gem now creates new keys with read and write permissions for the user running the command (0600). It also raises an exception when given a key that has the wrong permissions, informing the user about the expected value.
The tests also include an assertion verifying the permissions on newly created keys and the exception raised when given a key file with invalid permissions.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thank you for the pull request


How to filter devices by serviceUuids?

Like I have serviceUuid: daebb240-b041-11e4-9e45-0002a5d5c51b and i want to search only for these devices?

You can set the withServices parameter:
flutterBlue.startScan(scanMode: ScanMode.balanced, withServices: [Guid("yourSpecificServiceUUIDString")], timeout: Duration(seconds: 30)).catchError((error) {       print("error starting scan $error");     });

Strangely, when I setup withServices like in the example above, no device is seen. Without it I can connect to required device with that service guid (so guid is set correctly). Is it working properly in other's projects?

If I am not mistaken unless you are specifically exposing that Service UUID in the advertisement data you cannot use it as a parameter to isolate your scanResult.

You can also use dart's built-in filter functionality for streams:
services.where((s) => s.uuid == someUuid)

In the future, please consider using a public forum like StackOverflow to ask questions.


[Suggestion] Option to disable mobs dropping their items

There's a config option to disable mobs from dropping their armor, but none exists for other items (artifacts, shields, weapons).
An option to disable dropping items as well would be nice, thanks!

As far as I know, those are controllable through datapack - you override the mob's loot table file and replace it with whatever you deem appropriate. Mobs dropping their armor is an internal thing, which is why we provide an option to disable it.

I've been digging through the data files and have yet to find a way to disable item drops like the shields - even when removed from the body pieces vanguards will still drop their shield no matter what. They seem to be handled in a similar manner to armor.
Interestingly their held items are classified as "boss gear", although some pieces do indeed appear to be hardcoded.

Can confirm, here is the geomancer loot table: https://github.com/Infamous-Misadventures/Dungeons-Mobs/blob/1.18/src/main/resources/data/dungeons_mobs/loot_tables/entities/geomancer.json
But it still has a low chance to drop the Geomancer Staff artifact (dungeons_mobs:geomancer_staff), which is hardcoded as a hand item here: https://github.com/Infamous-Misadventures/Dungeons-Mobs/blob/1.18/src/main/java/com/infamous/dungeons_mobs/entities/illagers/GeomancerEntity.java#L152
Indeed, from what I can tell item drops are hardcoded the same way armor is in the mod currently, an option to change it would be much appreciated!

Added the config option to toggle our mobs dropping their held items.


router isActive property not correct

I'm submitting a bug report

Library Version:
major.minor.patch-pre1.0.2
Node Version:
4.4.7
NPM Version:
3.10.3
JSPM OR Webpack AND Version
webpack
Language:
TypeScript

Current behavior:
Using the typescript-webpack skeleton.
When programmatically routing to a route using me.router.navigateToRoute('community');, for a route defined like so:
{          route: 'community',            name: 'community',           moduleId: './community',           nav: true,               className: 'ico-users',            title: this.i18n.tr('router.nav.community')        },
the 'isActive' property in the navModel object does not seem to be set properly; it is not set to active as expected.  In the Chrome debugger, I see this:
`navigationInstruction:Object
observers:Object
className:"ico-users"
get className:()
set className:()
moduleId:"./community"
name:"community"
nav:true
navModel:NavModel
observers:Object
config:(...)
get config:()
set config:()
href:(...)
get href:()
set href:()
isActive:false
get isActive:()
set isActive:()
order:104
relativeHref:"community"`
Notice that the navModel's 'isActive' property is showing the value false, after we have navigated to this route.
Expected/desired behavior:
The navModel's 'isActive' property should be true if we have navigated to the associated route.

What is the motivation / use case for changing the behavior?

I am using the skeleton, and the nav-bar.html has this code, which relies on the 'isActive' property:
<li repeat.for="row of router.navigation" class="${row.isActive ? 'active' : ''}">
This code is not functioning properly due to this bug.

Can you create a gist.run demo of this? or a basic cli project that you can upload here where we can see the behavior. We haven't observed this happening elsewhere.

Hi,
I'm struggling as well with this bug. In my application I have to create some routes dynamically using router.addRoute(), i.e.:
this.router.addRoute(
          {
            route: item.id,
            moduleId: "views/item-dashboard",
            href: '#/item/' + item.id + '/dashboard',
            generationUsesHref: true,
            name: item.id,
            nav: true,
            auth: true,
            title: item.id,
            settings: {
              subtitle: "Overview of the item",
              icon: "fa fa-circle-o",
              type: 'item',
              item: item
            }
          }
        );

this.router.refreshNavigation();

When the route is defined normally, without href, the isActive works as expected.
I'm using aurelia-router 1.0.0-beta.2.0.0, since I cannot upgrade right now...

I found that in my setup, the isActive works, however, on the other route - I have a route config as follows:
{
          route: 'item/:id/dashboard',
          moduleId: "views/item-dashboard",
          name: "item",
          nav: false,
          auth: false,
          title: "Item dashboard",
          settings: {
              subtitle: "Overview of the item",
              icon: "fa fa-server"
          }
        }

which is loaded before the dynamic routes, and it is not included in the nav. Once the item route is loaded, i.e. by going to item/1234, the route item/:id/dashboard is set active, and not the item route that is specified dynamically.
How to make the opposite, so that, the dynamic route is made active instead of the pattern-like route shown above (kind of isActive override)?

@don-bluelinegrid Is the route you're navigating to one that you've added dynamically as well?

Same problem here and the route i'm navigating to is not dinamically added.

@don-bluelinegrid Is the route you're navigating to one that you've added dynamically as well?

No, it is a standard route, constructed in the Router config object.

A gist.run or sample repo would be really helpful, and I can take a look and see what's up.

I have an issue with the isActive property.
I have a route like this:
route: 'category/:title'
I then have five more routes with the same route property, but with href set (to set a title) and nav: true.
When i am on any of these pages the router always says the last in the route table is active no matter which of the pages I am on.
Not sure which router version I am on, jspm folder says 1.0.6 but in my package.json i specified 1.1.0

I am also experiencing this issue, specifically in any routes that are not in the root navigation model.
I (painfully) created a Gist.Run using @jagonalez recursive menu example that can be found below
Gist.Run
https://gist.run/?id=766b653db2020b300c9b62524940972e
Original GitHub Repo
https://github.com/jagonalez/aurelia-menu/
It demonstrates the issue pretty clearly - only the root Router's NavModel's have isActive assigned. I have been trying to solve this issue using the default navigation model stuff for a few days now. I'm still new to Aurelia, but it looks like when navigating, the root most module is resolved and the child modules are automagically handled from there, without recursively setting isActive at each children's NavModel.

@AustinBrunkhorst if you add an activate method within one of the child router's viewModels, isActive is set to true on the navModel. It's just not updating on the view. I'll need to take a look and try to fix it in the demo.

@Steffeng87 your comment describes https://github.com/aurelia/router/issues/433.
Other then that, there are not enough details to reproduce this.

The original issue was that programatically navigating to a route does not update the isActive property. Here is a gist demonstrating that this is no longer a problem: https://gist.run/?id=2da65567f2df138c8cd626a7895d675c


Nuxt Devtools not showing emails

Hello, I only see example dashboard when accessing Vue Email tab.

And I see this error in the terminal:

Is something wrong on my side or is there a bug in the code for fetching email components from directory?
Thank you for your help

I'll take a look, thanks


Allow redirecting to a different path than after_sign_out_path_for on invalid token

Currently, the default behavior for users trying to accept an invitation with an invalid token is to redirect to after_sign_out_path_for. This doesn't really work for us, and we'd like to redirect these users to a different path, reserved for invalid invitation tokens. Our after_sign_out_path_for is /user/sign_up and we don't want invited users to see the sign up form  as they would potentially create a new account instead.
Would it be possible to add the possibility to customize this, either using an overridable method or with a configuration option, just like it's possible to customize after_invite_path_for & after_accept_path_for ?
I'm happy to propose a solution, just checking beforehand if that's something that would work for the gem as a whole 🙂
You can take a look at what I've scribbled until now : https://github.com/scambra/devise_invitable/compare/master...Lersoo:devise_invitable:customizable-invalid-token-path?expand=1

You're code looks good, can you send a PR?

Never mind, I created a PR from your link and merged


Add CONTRIBUTING.md

This is the contributing.md used for the masterlists, adjusted for the prelude repository.

Merging this as I think the current version is good to go. If needed, we could adjust the wording at a later date.


 It's only a source of confusion having an aborted workflows (or in this specific case, aborted-archived) still with jobs in the system, see:
https://cms-logbook.cern.ch/elog/Workflow+processing/23773
IMO, we let the sites clean after themselves.

#6572 will address this issue.

Yes, sites have their own unmerged area cleanup anyways.

@amaltaro, This is fixed with the periodic cleaning and complete transition change. Can we close this?

Sure, let's do it! Closing


UI starter

Skeletal UI, nothing functional but should be a good starting point for iteration.

Also, these are the pages used in the report.

I think it sounds good - we'll want to reorganize it according to the PHP conventions once we get started, but that is a good start!


Provide Linux installers

Currently we only provide installers for MacOS and Windows - we should strive to provide installers for major Linux distros also - https://distrowatch.com/dwres.php?resource=ranking&sort=votes could help us choose

Maybe you could provide just binary ? If you do that, most distros have a way to wrap it in installable packages, like Arch linux AUR etc


file.createReadStream([opts]) yields "Uncaught Error: invalid selection"

WebTorrent version: 0.91.4
Browser name/version (if using WebTorrent in the browser): 50.0.2661.94 m

file.createReadStream([opts]) yields "Uncaught Error: invalid selection".
opts === {start: 0, end: 129241752} works
opts === {start:<PHONE_NUMBER>, end: 129241752} yields "Uncaught Error: invalid selection".
Is there a lower limit on the difference between start and end?
If yes, please remove it.

See torrent.js#L758
In your opts start > end, that's why.

That's right. Thank you.
I did not expect that from my program.


Opencv support | Conda package caffe2-cuda8.0-cudnn7

Hello,
I am using the conda caffe2-cuda8.0-cudnn7 package.
I was able to successfully install caffe2 from this package
But, it appears this conda package does not support opencv>=3.2 and numpy>=1.13 both of which are requirements for running detectron.
Output when upgrading Opencv:
>>> from caffe2.python import core
WARNING:root:This caffe2 python run does not have GPU support. Will run in CPU only mode.
WARNING:root:Debug message: libopencv_highgui.so.2.4: cannot open shared object file: No such file or directory
CRITICAL:root:Cannot load caffe2.python. Error: libopencv_highgui.so.2.4: cannot open shared object file: No such file or directory

System information

Operating system: Ubuntu 16.04.9
Compiler version: GCC 5.4.0
CMake version: 3.5.1
Relevant libraries/versions (e.g. CUDA):
CUDA - 8.0
CUDNN - 7.1

Please suggest a possible workaround and the reason behind restricting this package support to opencv 2.

Try installing opencv first and then installing Caffe2. There are packages in conda that are built with opencv 3.3.1, but they do not have human readable names.

I tried installing opencv before installing caffe2, it doesn't work either.  Still getting the same error.

@akshay-raj-dhamija opencv 3.3.1 was causing issues when installed alongside the other protobuf, leveldb, and gflags. There are changes coming soon that will let us not need the protobuf from conda, and then it should be possible for me to build a package with opencv 3.3.1. In the meantime, please install from source.


Uploaded amount

The uploaded amount in the detailed view of an torrent is not updated.

I have the same issue

I think I just fixed this one: https://github.com/ziahamza/webui-aria2/issues/310

https://github.com/ziahamza/webui-aria2/pull/309


Md5 patterns and unit tests

Contains
Based off of #3240
I created a class, MD5Patterns, to hold the patterns that were in both the
MD5AnimationLoader and MD5SkeletonLoader classes. Also,
I updated the float pattern from @kartikey0303's suggestion.
In addition, I added unit tests for all of the patterns in the
new class that was created.
How to test
Run the new unit test class, along with all of the unit tests.

Hooray Jenkins reported success with all tests good!

Poking @kartikey0303 and @flo for review referencing this as a replacement for #3240 :-)
Beyond the regular models and the newest ones from HumanoidCharacters we should probably also test it with the MawGooey, but I'm realizing we don't have it in a module yet, we just have the meta module: https://github.com/MetaTerasology/MawGooey
@kartikey0303 or @Quaternius would either of you mind doing an export and adding the files to https://github.com/Terasology/MawGooey please ? I just created it along with a team so you should both have access

I've spent some time testing this, #3240, the deer, skeleton, and new MawGooey (https://github.com/Terasology/MawGooey) - I think there is something slightly off with the Regex here, I'm getting some parsing errors from WildAnimals and the MawGooey when running this one.
#3240 does seem to work even if it doesn't cover all the cases quite as well, so I've merged that in and figure we can add this on top with another regex tweak. @J-Dill could you take a look at starting the game with this PR with the WildAnimals and MawGooey modules enabled? Look for the parsing errors on startup, and spawn some stuff to see what happens - with this PR i didn't get any animations, although the models did load into the world

spawnPrefab deer
spawnPrefab mawGooey

Play test in about 10 hours to try the new model and other stuff out, will be around most the day fixing bugs and coordinating GSOC stuff :-)

Hey @Cervator, I am getting the parsing errors also, along with the absence of animations. I will try out the float pattern that is in #3240 to see if that fixes things.
If I do replace the float pattern, do you think that it would be acceptable to remove the cases from the unit tests that we know the pattern will not be able to handle?

Hey @J-Dill thanks :-)

If I do replace the float pattern, do you think that it would be acceptable to remove the cases from the unit tests that we know the pattern will not be able to handle?

Sure - or mark those as ignored as well with a TODO to improve the pattern further? Depends a bit on whether it is just too much hassle to figure out at the moment but still desirable to get to later, or entirely "Yeah don't worry about it". If the latter then just remove outright :-)

Hooray Jenkins reported success with all tests good!

@Cervator  Was able to figure out the parsing error, and I decided to just take the test cases in the unit tests out. I believe it should be good to go, but then again I did before also :p

Does indeed look good this time :-)
No errors noted in the log and the models I could test turned out fine. Unit tests run. 👍
Merged and added you to the credits. Also tweaked at some trivial quality issues since the files were being touched anyway (feel free to update license years, empty javadoc, etc)


Problem with ui.grid margin in safari

Using a simple ui.grid in safari shows a horizontal scroll... Only happens in Safari. Firefox and Chrome is ok.
You can check it here: https://fiddle.jshell.net/9L4h9kop/

I couldn't replicate it. What version of safari / os x?

Same problem :

safari : Version 9.1.1 (11601.6.17)
os x : Version 10.11.5 (15F34)

I have the same problem with Safari on OS X or iOS (Chrome too on iOS but I guess they use the same rendering engine). If I use a "page grid" or a "grid ui container" the horizontal scroll bar disappears but the content is padded instead of taking all the space.

I'm seeing the same problem (visible on https://partsbox.io/) with Safari 10.1.1 on Mac OS X 10.11.6.
One of my users reported it with:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4
Removing margin-left: -1rem; margin-right: -1rem from .ui.grid makes the problem disappear, but likely introduces other issues.

Same here, also seeing this problem in Safari dues to margins. Any solution?

Well, the issue might be stale, but it does need solving eventually...

@jwr Do you still get this issue? I can't seem to replicate it on Safari 9, 10 or 11

@hammy2899 I have seen this issue with Safari 11, although I don't know how to reproduce it

@ezfe I can't seem to reproduce this issue, if anyone can reproduce it please create a jsfiddle or i'm going to mark it as can't reproduce.

The original jsfiddle still reproduces it for me. I've added a blue bar here, and here's a screen recording: https://youtu.be/BP-llvlLh_E

@ezfe My bad haha I thought it showed some scrollbars, but it also happens in my chrome so it might be browser wide.

@hammy2899 I'm definitely not seeing this in my chrome 🤷🏻♂, and yeah not sure why the scrollbar isn't there, may be a change to Safari since this was originally reported


Error: (line)  ',' expected.

I just ran into a bug very similar to the one described in #820 (see jupyterlab/jupyterlab#6471). However, it can't be the exact same thing since I'm already using 1.4.2. Typedoc errors out on a line from a compiled declaration file icon.d.ts. Here's the command I used to run typedoc:
typedoc --options tdoptions.json --theme ../../typedoc-theme src

Here's the error message:
Using TypeScript 3.2.4 from /Users/tel/usr/venv/jup-test/git/jup-test/node_modules/typedoc/node_modules/typescript/lib
Error: /Users/tel/usr/venv/jup-test/git/jup-test/node_modules/@jupyterlab/ui-components/lib/icon/icon.d.ts(59)
 ',' expected.
Error: /Users/tel/usr/venv/jup-test/git/jup-test/node_modules/@jupyterlab/ui-components/lib/icon/icon.d.ts(59)
 ',' expected.

Here are the offending lines from icon.d.ts:
export declare namespace IconRegistry {
    interface IModel {
        name: string;
        className?: string;
        svg: string;
    }

    const defaultIcons: readonly IModel[];
}

If I comment out the const defaultIcons: readonly IModel[]; line, then typedoc runs just fine.
My gut says that this issue may be fixed with the release of the current HEAD (or maybe just 1.5.0) on npm. HEAD bumps the ts version to 3.4.x, while the project I'm working on uses 3.5.1, so it seems like there'd be less chance for weird compatibility issues.

Your gut is correct, the readonly T[] syntax was introduced in 3.4. Previously, you had to use ReadonlyArray<T>
That said, I don't think we have a test for the new syntax, and I have no idea how it will render even if it converts correctly.

That syntax is definitely the problem. In my original .ts file, defaultIcons was defined like this:
export const defaultIcons = _defaultIcons;

If I add an explicit type declaration:
export const defaultIcons: ReadonlyArray<IconRegistry.IModel> = _defaultIcons;

then the type in the compiled icon.d.ts changes as well:
const defaultIcons: ReadonlyArray<IconRegistry.IModel>;

and the problems with typedoc disappear. So I guess this is a fine workaround until the release of a newer version of typedoc?

Closing as v0.15.0 uses TS3.4


DeriveActiveEnum is incompatible with deny(missing_docs) attribute

Description
When using sea-orm = 0.11, compilation throws an error when using DeriveActiveEnum with #![deny(missing_docs)].
Steps to Reproduce
Given the following example:
//! Hello World
#![deny(missing_docs)]

use sea_orm::entity::prelude::*;

/// This is my documentation.
#[derive(DeriveActiveEnum, EnumIter)]
#[sea_orm(rs_type = "i32", db_type = "Integer")]
pub enum MyEnum {
    /// This values means something.
    SomeValue = 1,
}

Expected Behavior
The code should compile.
Actual Behavior
cargo check answers:
    Checking sea-orm-test v0.1.0 (/tmp/sea-orm-test)
error: missing documentation for a struct
 --> src/lib.rs:7:10
  |
7 | #[derive(DeriveActiveEnum, EnumIter)]
  |          ^^^^^^^^^^^^^^^^
  |
note: the lint level is defined here
 --> src/lib.rs:2:9
  |
2 | #![deny(missing_docs)]
  |         ^^^^^^^^^^^^
  = note: this error originates in the derive macro `DeriveActiveEnum` (in Nightly builds, run with -Z macro-backtrace for more info)

error: could not compile `sea-orm-test` due to previous error

Reproduces How Often
Happens always.
Versions
sea-orm-test v0.1.0 (/tmp/sea-orm-test)
└── sea-orm v0.11.0
    ├── sea-orm-macros v0.11.0 (proc-macro)
    ├── sea-query v0.28.3
    │   ├── sea-query-derive v0.3.0 (proc-macro)
    ├── sea-strum v0.23.0
    │   └── sea-strum_macros v0.23.0 (proc-macro)

Hi there, thank you for your suggestion. This is a common complaint for the linter, so in general you can't put #![deny(missing_docs)] everywhere.
That say, we can sprinkle some #[doc = "generated by sea-orm-macros"] in places.
https://github.com/rust-lang/rust/issues/78490

Thanks for the hint, I was not aware of the rust-lang issue.
So as far as I can see, it would also be an option to add #[allow(missing_docs)] to the generated types. But imo adding your suggested doc attribute would make more sense.
If I would want to add these changes, this would affect the -codegen and -macro?

Yes I think you need both, but changing the macros is more important - you can't workaround that otherwise.
For the codegen, I think it totally depends on your philosophy. IMO you can leave them undocumented. Because there is more good than harm for the cli to generate some stub docs /// FIXME This is the Cake Entity right?

For the codegen, I think it totally depends on your philosophy. IMO you can leave them undocumented. Because it is no better for the cli to generate some stub docs /// FIXME This is the Cake Entity right?

Ah, didn't know that codegen is for the cli. That sounds reasonable, leaving models generated by CLI undocumented adds some implicit requirement for the user to document their code.
I am happy to add a draft PR as soon as I have a spare minute.

I added the PR linked above as draft as base for further discussions, is required.

Released in 0.11.1


⚠ Bofrost.de has degraded performance

In ac4d66e, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1105 ms

Resolved: Bofrost.de performance has improved in bc101d8 after 48 minutes.


Recognizing Routes with extensions

See https://github.com/pretenderjs/pretender/issues/190

@trek https://github.com/tildeio/route-recognizer/issues/125#issuecomment-269098681


Add comment for why dropping k8s client api metric

FWIW, it sounds like skipping it in discovery might further reduce memory by scraping less.

Could be, but per https://prometheus.io/docs/prometheus/2.37/configuration/configuration/#regex:~:text=One use for this is to exclude time series that are too expensive to ingest., using metric_relabel_configs seems to be the recommended way to exclude time series.

FWIW, it sounds like skipping it in discovery might further reduce memory by scraping less.

Could be, but per https://prometheus.io/docs/prometheus/2.37/configuration/configuration/#regex:~:text=One use for this is to exclude time series that are too expensive to ingest., using metric_relabel_configs seems to be the recommended way to exclude time series.

I think you’re missing the point. This isn’t a general purpose Prometheus for monitoring everything on the cluster. It’s exclusively needed for testing. We don’t need it to monitor anything we’re not testing. We don’t need it to monitor cilium at all. We could change how discovery is configured and make it so it’s only monitoring the components we care about. That would reduce memory/cpu use, make it more predictable, and more it more similar in different environments (like GKE vs autopilot)


pulse: Don't read pa_sink_port_info.available when runtime pulseaudio…

… is < 2.0
The code reading that field is build-time protected, so as long as the
runtime pulseaudio version is greater than the one used at build-time,
we're good. And as of now, the build-time version for Firefox is
0.9.something, from our Centos 6 build environment.
In bugzilla bug 1399679, we're going to switch the build environment to Debian
Wheezy, which comes with pulseaudio 2.0 headers, enabling that code.
This means running the official Firefox on e.g. Ubuntu 12.04, which has
1.1, would read past the end of the pa_sink_port_info, possibly leading
to random behavior with port availability.
https://bugzilla.mozilla.org/show_bug.cgi?id=1427150

Thanks @glandium


Support Debian 12

This one was easier than expected, just works =)

Thank @wiktor2200, I am just very annoyed about molecule failing all the time. For my other repos I don't have this problem but I use molecule with podman instead of docker. I remember podman didn't work for install nextcloud on first try, maybe I can try to troubleshoot that.

Yeah, it's quite annoying. What is more it's sending lots of emails about failed pipelines. Unfortunately I won't have time this week to also take a closer look on that, so I'm keeping my fingers crossed for your trial :)


Lint/TopLevelReturnWithArgument confuses arguments with conditionals

Expected behavior
Lint/TopLevelReturnWithArgument should detect arguments to return, but not conditionals.
Actual behavior
Incorrectly detects return used with if/unless
Steps to reproduce the problem
return 'The ntp::mac_os_x_client recipe only supports macOS' unless platform_family?('mac_os_x')

RuboCop version
0.89.0 (using Parser <IP_ADDRESS>, rubocop-ast 0.3.0, running on ruby 2.7.1 x86_64-darwin19)

I think this behaviour is as expected.
% cat example.rb
return 1, 2, 3 if condition

% bundle exec rubocop example.rb --only Lint/TopLevelReturnWithArgument
(snip)

example.rb:1:1: W: Lint/TopLevelReturnWithArgument: Top level return with argument detected.
return 1, 2, 3 if condition
^^^^^^^^^^^^^^

1 file inspected, 1 offense detected

Because Ruby 2.7 also warns when if / unless condition modifier is specified.
% ruby -vwe 'return 1, 2, 3 if false'
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin17]
-e: warning: argument of top-level return is ignored


Support ZDIH URL

What about resolving this not by hardcoded custom names but rather by an optional resource file on the classpath? If the file is present, then the value configured in it would be used.

We're not doing this :relieved:


Previous versions

Hi @ahawkins ,
Thanks for this docker official support!
Is it possible to add older version using tags ?
For example I need version 0.8.0, I can build my own image with your Dockerfile but this is not as easy to use than just pull from Docker Hub.
Maybe can I add a "0.8" folder with the good Dockerfile and you can add this version to the Docker Hub, are you ok ?
Best Regards

We are using 0.9.0 for BC reasons and would appreciate it if there was an official image for 0.9.0 since installing the outdated version locally has proven to be a time-consuming challenge for some developers.


Save an allocation of Dictionary in RouteBase.MergeValues

MergeValues copies the values from a source dictionary to destination dictionary. It always creates a new destination dictionary and inserts the source key and values. If the destination dictionary is empty, we can use source as destination rather than allocating a new dictionary for the destination. This will save 1 dictionary allocation per request to ASP.NET MVC . Below is the profile call stack for the allocation

and below is the suggested change
private static void MergeValues(
RouteValueDictionary destination,
RouteValueDictionary values)
{
  if(destination.Count == 0)
{
destination = values;
}
else
{
foreach (var kvp in values)
{
// This will replace the original value for the specified key.
// Values from the matched route will take preference over previous
// data in the route context.
destination[kvp.Key] = kvp.Value;
}
}

cc @rynowak
Some questions:

Has this shown to be significant in profiles?
Are the dictionaries not expected to mutate? My general concern about copying the reference is that mutating the original will mutate both. (I doubt that is a concern here, but I don't know the code.)

Has this shown to be significant in profiles?

This is 1 dictionary per request. For the kinds of scenarios we're looking at now it's pretty low priority. A good fix is more complex than what's detailed here. The above would optimize away an "empty" dictionary that hasn't had any internal data structures allocated. A better fix would be to have the matcher put it's values directly into RouteData.Values and elide a "full" dictionary.

Are the dictionaries not expected to mutate? My general concern about copying the reference is that mutating the original will mutate both. (I doubt that is a concern here, but I don't know the code.)

This isn't really a concern. It's already protected by the snapshotting we do on `RouteData.
I'd recommend backlog. If we see routing used in more micro-scenarios we could always pull this back.

Moved to Backlog.


Add CertManagerExits logic for PackageController Installation

The existence of cert-manager is required to ensure proper operation of the PackageController. We modify the cluster creation workflow and imperative package installation command to add in the CertManagerExits logic, and guide users to handle the case where cert-manager is not present in the cluster.
Issue #, if available: https://github.com/aws/eks-anywhere-packages/issues/278
Description of changes: Modified the cluster creation workflow and imperative package installation command to add in the CertManagerExits logic
Testing (if applicable): Tested in cluster creation workflow and imperative package installation
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/hold
Currently doing some testing

Per discussed, we will move forward with https://github.com/aws/eks-anywhere/pull/2752. I will close this PR for now.