[ENH] Tweedie Distribution

Reference Issues/PRs

related to #423
What does this implement/fix? Explain your changes.

Implements a Tweedie distribution in skpro by working the compound poisson gamma case when power parameter 1<p<2. Calls the other pre-existing distributions in other interger cases
Does your contribution introduce a new dependency? If yes, which one?

No
What should a reviewer concentrate their feedback on?

If this idea would be suitable or is there something that might hinder the further extension as skpro does not handle case when 2<power<3.
Did you add any tests for the change?

no
PR checklist

For all contributions

[ ] I've added myself to the list of contributors with any new badges I've earned :-)
How to: add yourself to the all-contributors file in the skpro root directory (not the CONTRIBUTORS.md). Common badges: code - fixing a bug, or adding code logic. doc - writing or improving documentation or docstrings. bug - reporting or diagnosing a bug (get this plus code if you also fixed the bug in the PR).maintenance - CI, test framework, release.
See here for full badge reference
[x] The PR title starts with either [ENH], [MNT], [DOC], or [BUG]. [BUG] - bugfix, [MNT] - CI, test framework, [ENH] - adding or improving code, [DOC] - writing or improving documentation or docstrings.

For new estimators

[ ] I've added the estimator to the API reference - in docs/source/api_reference/taskname.rst, follow the pattern.
[ ] I've added one or more illustrative usage examples to the docstring, in a pydocstyle compliant Examples section.
[ ] If the estimator relies on a soft dependency, I've set the python_dependencies tag and ensured
dependency isolation, see the estimator dependencies guide.

@fkiraly I have tried to implement pdf of the compound poisson-gamma case when power is in (1,2). But I am still unsure what can be done to handle the case when power is in (2,3) or when it is p<0.
Need some thought on whether this would be a good idea to distinguish them based on the power parameters in the way I have done or is there any better way.

hm, this is incomplete - only covers p between 1 and 2, no?

Yes I will be splitting it into Compound poisson gamma and then calling it in the tweedie distribution. However I still face the problem of integrating the pdf to get the cdf. Is there any method in scipy apart from using quad to integrate the pdf manually?
Also facing the same issue for finding the ppf some ideas would be helpful. I've asked gpt and it suggests using a scipy.optimize.brentq to find the ppf I'm not very sure if that will work correct.

Brute force integration and such are typically last resort defaults.
I would suggest to check the approximation formulae along the lines of those linked in this comment: https://github.com/sktime/skpro/issues/429#issuecomment-2237709472

I was going through the section 3 of the Withers Nadaraja paper and it seems to me that the cdf ppf

is still not a simple term it although it looks straight forward.
It requires the summation of the infinite series of the Hermite polynomial

where $\phi(x)=(e^-\frac{(x)^2}{2})$ . and $\Phi(x)$ is the wright_bessel function.
I am not sure how we can do this efficiently. Also where is the power parameter here I do not seem to spot it it should ideally be present right as it will alter the value of the cdf.
Some insight here would be helpful.

Also where is the power parameter here I do not seem to spot it it should ideally be present right as it will alter the value of the cdf.

it's implicit in the constants $c_rj$ (the formula below)

it's implicit in the constants crj (the formula below the screenshot box, in the paper)

I see then how do I generate these crj from the power parameter alone.
And also any thoughts on how this infinite series summation can be made efficient. Is there any way this expression will simplify to something without a summation?

I see then how do I generate these crj from the power parameter alone.

I think you need to map them, following through the correspondence between Tweedie and CPG parameters. I would recommend you start implementing CPG in pure CPG parameters, and the mapping is done in the delegator.

I don't think so - the usual procedure is to prescribe an epsilon and abort once the change becomes less than that epsilon - this is sound as long as you know the magnitudes are decreasing, and you have some theory that links magnitude of individual terms to magnitude of the total remainder.

Can we not just keep the pdf = poisson.pdf(x) * gamma.pdf(x) where gamma will have the $\alpha=i*\alpha$ where $\alpha$ would have been the shape otherwise and i is at all the integers. so now we get the complete poisson gamma distribution. For the cdf we must sum these up for all values keeping a tolerance does that work?

I am not able to get the gr(x) polynomial could you please help out as to what that is.

@fkiraly I have implemented the cdf as per the Witheres Nadaraja paper. But I think there is some small issue as the function is not converging to a sum within [0,1] when the iterations(r) are large. Some help in finding out the fault would be helpful.

Sure!
What would help me if you write a snippet of code, either assuming the branch or just numpy imports, that compute the sum.

I am not able to get the gr(x) polynomial could you please help out as to what that is.

I have no context here, what is the gr polynomial, what does it mean to "get" it, and why do you need to get it?

What would help me if you write a snippet of code, either assuming the branch or just numpy imports, that computes the sum.

With reference to this theorem

cdf

equation(3.8) is the cdf which requires sum(equation(3.10)) for all positive integer r.
Now the equation(3.10) requires the sum of for values of j from 1 to r.
cdf is being computed by

    def _cdf(self, x):
        """Cumulative distribution function.

        Parameters
        ----------
        x : 2D np.ndarray, same shape as ``self``
            values to evaluate the cdf at

        Returns
        -------
        2D np.ndarray, same shape as ``self``
            cdf values at the given points
        """
        rho = self.alpha
        max_r = 10  # Adjust as needed
        phi_x = np.exp(-(x**2) / 2) / np.sqrt(2 * np.pi)
        series_sum = np.zeros_like(x, dtype=float)
        for r in range(1, max_r + 1):
            hr_x = self._compute_hr(x, r, rho)
            series_sum += hr_x
            # print(f"r={r}, hr_x={hr_x}, series_sum={series_sum}")
            # if np.any(np.abs(hr_x) < 1e-6):  # Convergence check
            #     break
        cdf = phi_x * (1 + series_sum)
        return cdf

Using $\phi(x)=\frac{e^-\frac{x^2}{2}}{sqrt(2*pi)}$.
He(r+2j,x) is being computed by

from scipy.special import eval_hermitenorm
eval_hermitenorm(r + 2 * j, x)

in the method
    def _compute_hr(self, x, r, rho):
        from scipy.special import eval_hermitenorm, factorial

        hr = np.zeros_like(x, dtype=float)
        for j in range(1, r + 1):
            H = eval_hermitenorm(r + 2 * j, x)
            crj = self._compute_crj(r, j, rho)
            hr += H * crj / factorial(j)
        return hr

This now requires the crj term for each value of r which is being computed by.

    def _compute_crj(self, r, j, rho):
        from itertools import combinations_with_replacement

        from scipy.special import factorial

        c_rj = 0
        partitions = [
            p for p in combinations_with_replacement(range(1, r + 1), j) if sum(p) == r
        ]
        for partition in partitions:
            term = 1
            for s_i in partition:
                term *= factorial(rho + 1 + s_i) / (
                    factorial(rho - 1) * factorial(s_i + 2)
                )
            c_rj += term
        c_rj *= (rho**2 + rho) ** (-r / 2 - j)
        return c_rj

So the idea here is that the partitions array contains the possible arrays which in turn contain values of si (that is required in calculation of crj as per the equation in the paper) where sum(si) = r for different values of r.
From this I am then finding the nCr formula and multiplying all the possible arrays for a specific r value and then summing them up to make crj.
I am then multiplying the resultant crj by the constant term $(\rho^2 + \rho)^(-\frac{r}{2}-j)$ to get the final required crj.
There seems to be some fault in the way crj is being calculated as the sum is not converging to a value between [0,1] when r=say 10.

ppf

the ppf requires the computing of the equation(3.7) where $\Phi(x)$ is the standard normal cumulative distribution and $\lambda$ is the self.lambda but I am not sure what the definition of gr(x) here is. So I now need the definition of this polynomial g(r,x).

Just following through the references, my interpretation: the gr are the g-polynomials in the Cornish-Fisher expansion, see here: https://en.wikipedia.org/wiki/Cornish–Fisher_expansion

I am not quite sure I see an implementation of $g_r$ polynomial here. It only shows the $h_r$ polynomial .
I am not able to find any pre-existing method in scipy to interface the computation of $c_{rj}$. From the various implementations I have done so far it does not produce results in the interval [0,1] for the cdf. It would be of much help if you could take a look at the implementation of the _compute_crj method. As from what I infer from the Withers and Natharaja paper the implementation of the crj seems to be correct however it does not produce the right results.

This is the code that was used to test
from skpro.distributions.cmp_pois_gam import CmpPoissonGamma
import numpy as np
lambda_param = 2.0
alpha_param = 1.5
beta_param = 1.0

cmp_poisson_gamma_dist = CmpPoissonGamma(lambda_=lambda_param, alpha=alpha_param, beta=beta_param)

x_values = np.array([[0.5, 1.0, 1.5], [2.0, 2.5, 3.0]])
p_values = np.array([[0.1, 0.25, 0.5], [0.75, 0.9, 0.95]])

pdf_values = cmp_poisson_gamma_dist._pdf(x_values)
pmf_values = cmp_poisson_gamma_dist._pmf(np.floor(x_values).astype(int))
cdf_values = cmp_poisson_gamma_dist._cdf(x_values)
# ppf_values = cmp_poisson_gamma_dist._ppf(p_values)

print(f"PDF values:\n{pdf_values}")
print(f"PMF values:\n{pmf_values}")
print(f"CDF values:\n{cdf_values}")
# print(f"PPF values:\n{ppf_values}")

Output
PDF values:
[[0.17620241 0.19445143 0.19319874]
 [0.18385598 0.17024862 0.154407  ]]
PMF values:
[[0.13533528 0.27067057 0.27067057]
 [0.27067057 0.27067057 0.18044704]]
CDF values:
[[ 2483.23279161 -1265.84513228<PHONE_NUMBER>1]
 [<PHONE_NUMBER>6  -333.03847813<PHONE_NUMBER>1]]

Regarding the implementation specifics is present in the comment.

ok, I see, this is typical for "implementation from paper" - it is not unusual that it looks like -

replace common functions computed explicitly by scipy functions, e.g., normal pdf, cdf used in the formulae

I dont think I have ended up calculating the exact normal pdf, cdf as such. Could you please point out where it seems to be exactly the pdf or cdf of a normal distribution.

If we did this, and pdf, pmf values fail to match the constraints still, then there is supsicion that there is an error in the math, in the paper. But until we can conclude this, we need to do the tedious manual verification above.

I think I shall give this manual verification a try by computing the smaller values myself and see if the outputs are indeed correct. If that does not work out then we can perhaps park our thoughts in the issue linking this PR.

I have manually verified the $c_{rj}$ for many values of r and j it is producing the correct results for each value so maybe it is not exactly the fault with the calculation of $c_{rj}$. The function is also converging for large values of r and j. So it somewhat makes sense as well.
Also I just wanted to clarify regarding

This represents the $^nC_r = \frac{n!}{(n-r)!*r!}$ (combinations) right? or is it anything else .
I shall next verify the calculation of the hermite polynomial next if that works out fine then there might be an issue with the math itself.

Also I just wanted to clarify regarding

Yes, this is - to the best of my knowledge - the binomial coefficient
https://en.wikipedia.org/wiki/Binomial_coefficient
also denoted in various combinations of C with sub-, super- and presuperscripts, which one is used depends on country and/or textbook.
https://en.wikipedia.org/wiki/Binomial_coefficient#History_and_notation
For the displayed binomial coefficient, spelling it out in terms of factorials, it should be
$$\frac{(\rho + 1 + s_1)!}{(s_1 + 2)!(\rho - 1)!},$$
although this is not how I would calculate it, as there are ways to compute binomial coefficients in more efficient and numerically stable ways than the naive algorithm of first computing the factorials and then fractions.

I shall next verify the calculation of the hermite polynomial next if that works out fine then there might be an issue with the math itself.

I think there are still more layers to check - the polynomial, then the full formulae for cdf, pdf. Only if those are found to agree with the code outputs too, then one can doubt the math.

I think there are still more layers to check - the polynomials hr, gr, then the full formulae for cdf, pdf. Only if those are found to agree with the code outputs too, then one can doubt the math.

Yes thats right I will be checking for the full cdf and pdf formulae as well along with hr. Since gr has not yet been implemented I think there is no requirement for that to be checked yet.

I have now verified all the individual values related to the cdf namely $h_r$, $c_{rj}$, factorial(j), overall cdf calculation including the increments after each iteration and $\phi(x)$.
My thought on this is that the hermite polynomial being produced is a very large number of the order of atleast 10^15 in most cases. This is then getting scaled down by crj and which is converging to small values of order 10^-6 and the factorial(j) which is of orders ranging from 10^0 to 10^6. This is bringing down the overall term to a value of around 10^3. It is not converging beyond this and their summation is also not converging as such for values upto r= 20. It may converge when it goes to infinity we can really never say. So I think this might just actually be going into a rabbit hole.

then, that does not sound right. I thought all values occurring in cdf were non-negative, so each individuall should be between 0 and 1.
Can you post some computed values so I can verify myself the calculations by hand?

This comment is the output for the final output of cdf.
Now for the individual values itself for example
the hermite polynomial for respective values of x as given in the comment linked above is
[[ -3240.81005859    936.           5141.87841797]
 [ -3342.         -13760.63232422  12312.        ]]

when r=5 and j=3 so the above array contains $He_{11}(x)$  and
$c_rj$ for the same is 0.018245457192850898
and $j!$ = 6.0
and the value  $\frac{He_{r+2j}(x)*c_{rj}}{j!}$ for this iteration is
[[ -9.8550102    2.84629132  15.63598709]
 [-10.16271966 -41.844838    37.43967816]]

Now doing this for all values of j from 1 to r where r=5 gives $h_5(x)=$
[[ -8.43080033   7.69420971   6.21852576]
 [-23.28549087   8.26764324  73.77196399]]

Now these are smaller for small values of r but when r is larger the hermite polynomial also becomes bigger
for example when r=8 and j=8
we get hermite $He_{24}(x)$ =
[[-2.64545228e+11  9.25901342e+10  2.46363203e+11]
 [-7.97293258e+11  1.45418958e+12 -1.42824459e+12]]

and $c_{rj}$=6.779681328689356e-05
and 8!=40320.0
the value of this iteration given by $\frac{He_{r+2j}(x)*c_{rj}}{j!}$
is
[[ -444.82448913<PHONE_NUMBER>1<PHONE_NUMBER>2]
 [-1340.62356486  2445.17409824 -2401.54841047]]

and doing this for all values of j from 1 to r=8 gives
$h_8$=sum( $\frac{He_{r+2j}(x)*c_{rj}}{j!}$) we get
[[ -369.49482312    70.70751258<PHONE_NUMBER>9]
 [-1030.47215469  1589.06248313 -1351.95793231]]
```.

could you kindly do this bottom-up, with some values calculated manually, and saying explicitly which object in the papers this corresponds to?
E.g., sth like
manual computation for he_5
$He_5 = ...$
using the code
In the implementation, we call he(5), this gives ...

So the  whole stack output for say $h_5$ =
1. r =  5  and j = 1
2. He( 7 , [[0.5 1.  1.5]
 [2.  2.5 3. ]] ) =
 [[ -40.0234375  -20.          54.4921875]
 [  86.         -62.3046875 -396.       ]]
3. crj for r= 5 j= 1  =  0.030768701028203366
4. j! 1.0
5. h_ 5 upto from j=1 to j= 1  =  [[ -1.23146918  -0.61537402   1.67665383]
 [  2.64610829  -1.9170343  -12.18440561]]
-------------------------------
1. r =  5  and j = 2
2. He( 9 , [[0.5 1.  1.5]
 [2.  2.5 3. ]] ) =
 [[<PHONE_NUMBER>2   28.         -541.21289062]
 [-190.         1431.10351562 1620.        ]]
3. crj for r= 5 j= 2  =  0.034147998534292366
4. j! 2.0
5. h_ 5 upto from j=1 to j= 2  =  [[ 4.34375849 -0.13730204 -7.56401467]
 [-0.59795157 22.51762607 15.47547321]]
-------------------------------
1. r =  5  and j = 3
2. He( 11 , [[0.5 1.  1.5]
 [2.  2.5 3. ]] ) =
 [[ -3240.81005859    936.           5141.87841797]
 [ -3342.         -13760.63232422  12312.        ]]
3. crj for r= 5 j= 3  =  0.018245457192850898
4. j! 6.0
5. h_ 5 upto from j=1 to j= 3  =  [[ -5.51125171   2.70898928   8.07197242]
 [-10.76067123 -19.32721193  52.91515137]]
-------------------------------
1. r =  5  and j = 4
2. He( 13 , [[0.5 1.  1.5]
 [2.  2.5 3. ]] ) =
 [[  37809.77648926  -23672.          -47160.5592041 ]
 [  84398.           73069.20471191 -350568.        ]]
3. crj for r= 5 j= 4  =  0.004783453196627576
4. j! 24.0
5. h_ 5 upto from j=1 to j= 4  =  [[  2.02463563  -2.00909006  -1.32762456]
 [  6.06074056  -4.76374856 -16.95674948]]
-------------------------------
1. r =  5  and j = 5
2. He( 15 , [[0.5 1.  1.5]
 [2.  2.5 3. ]] ) =
 [[ -505845.15194702   469456.<PHONE_NUMBER>9839]
 [-1419802.<PHONE_NUMBER>0591  4389552.        ]]
3. crj for r= 5 j= 5  =  0.0024803090649180024
4. j! 120.0
5. h_ 5 upto from j=1 to j= 5  =  [[ -8.43080033   7.69420971   6.21852576]
 [-23.28549087   8.26764324  73.77196399]]
-------------------------------
6. h_ 5  =  [[ -8.43080033   7.69420971   6.21852576]
 [-23.28549087   8.26764324  73.77196399]]

This corresponds to

The eqn 2) gives the Hermite polynomial $He_{r+2j}(x)$.

can we schedule a walkthrough for the Monday tech session, or whichever next is convenient? I think this needs discussion with questions and explanations.

So I have implemented the permutation of the partitions that we spotted. The cdf values did come down by a lot to the order 10^0. But it still has some values outside the [0,1] range. Not sure how to tackle that.
The current cdf output
CDF values:
[[ 0.21771439  0.13619774  0.40067358]
 [-1.52041722  3.87381296 -4.79373376]]

The change handles it this way
[[1 2]
 [2 1]]
1. r =  3  and j = 2

where the array is the partition array when r=3 and j=2.
The code doing that is
        partitions = np.array(
            [
                p
                for p in combinations_with_replacement(range(1, r + 1), j)
                if sum(p) == r
            ]
        )

        partitions = np.vstack([np.array(list(set(permutations(sub_list)))) for sub_list in partitions])

hm, this seems correct, if a bit inefficient (and likely subject to combinatorial explosion for larger r) - a better solution would be a direct computation for the multiplicity factor, though I suppose we can leave optimization until after the entire code is correct.
The next oddity I am spotting are the negative values.
I am suspecting pre-factors in capital and lower case phi - can you point me to the exact python code that you have for these two?

I am suspecting pre-factors in capital and lower case phi - can you point me to the exact python code that you have for these two?

Which pre-factors in capital are we talking about. The lower case $\phi(x)$ is the normal pdf and is being calculated by
phi_x = norm.pdf(x)

right here in the cdf

there is a capital phi and a lower case phi

right here in the cdf  there is a capital phi and a lower case phi

The capital phi represents the normal cdf but I have not used it anywhere in my code since I am implementing the equation (3.8) which is the 4th equation here in the paper for the cdf which is an approximation of equation (3.5).

Waitasec I am now noticing this:

equation(3.8) is the cdf which requires sum(equation(3.10)) for all positive integer r.

Equation 3.8 is the equatoin for pdf, not cdf! The "dot" above the P_r is physicist notation for derivative. Odd choice in a statistics paper, and strictly speaking wrong since in the narrow sense it refers to derivative with respect to time.
Equation 3.5 is the equation for cdf.

Ahhh I see thats a blunder. But all the functions created are still useful nevertheless. I shall make the change and commit it.

The reason why the value is going a little out of bound for x=3,x=4 etc maybe due to the minor division errors that keep on aggregating while calculating . It is outputting cdf=1.0 for large x like 20,100,200 etc.

Nice! My gut feeling says that we have caught all logical inaccuracies, and the remainder is - as you say - probably indeed numerical issues.
Specifically, I think the large coefficients are contributive here, the naive calculation will lead to severe error propagation.
I would suggest to add tests for the individual functions in play.
The typical next steps would be to use numerical "tricks of the trade" to bring down the error, and at least ensure properties such as monotonicity for the cdf.

I tried plotting the cdf to see if it is monotonically increasing atleast not decreasing by a large amount due to the division errors. It works well on most inputs but there seemed to be some anomaly in the 1st case any reason why it is coming that way?

it seems to have problems in case 3 as well.
The oscillations in the 1st case do not look like numerical artefacts, but still might be - we should investigate.
Could you print the coefficients maybe, to see how large they get? And if you do any divisions, how large numerators/denominators are?

From some playing around with the values I have found that the oscillations are directly dependent only on the $\lambda$ variable. Not sure if it is the expected behaviour.

Upon modifying alpha and beta after attaining a monotonic curve the monotonicity remains same.

The hermite polynomials does oscillate

So it probably makes sense for our cdf to oscillate as well. But this oscillation is getting neutralised when the $\lambda$ is big as is expected from the eqn.

does this equation converge to something monotonic if you take enough terms?

@fkiraly I have followed through the references as mentioned in this <a href="https://github.com/sktime/skpro/pull/428#issuecomment-2252710366>comment and I dont think I see anything about the $g_r$ polynomial which is required for calculating the ppf of CPG.
I could only find some formula for first 4 $g_r$ polynomials in one of Withers's papers.

Could you please have a look at it again and give a more explicit form for the $g_r$ polynomial.

do you have a link to Fisher/Cornish 1960, or is that a physical library-only reference?

do you have a link to Fisher/Cornish 1960, or is that a physical library-only reference?

The screenshot of the first 4 $g_r$ polynomials I have attached above can be found here it is the 17th reference that was present in the "Withers and Nadaraja On the Compound Poisson Gamma Distribution".
Regarding the Cornish Fisher 1960 expansions it can be found here. I think it can be accessed only through an institute account.

that sounds like the wrong paper? The author is someone named Ulyanov from Moscov State U.

that sounds like the wrong paper? Similar name, but the author is someone named Ulyanov from Moscov State U.

Yea I wasn't able to find any original one as such.

 Should we park this? Would be a bit of a shame.


Remove value2tag and get col type in quote method of MiqExpresion

Links

related https://github.com/ManageIQ/manageiq/pull/18369

@miq-bot assign @kbrock
@miq-bot add_label refactoring

kinda like it before the "DRY" commit

@lpichler just 2 more to go... :)


[all cogs] Style + added workflows

So, i've added an workflower to you, this styles up your cog. Now it looks better. :3


Error StringExpected

when i use the code on the npm page to create the house I get
Error
    at createCanvas (C:\Users\User\Documents\Discord Bots\Suggestions\node_modules\@napi-rs\canvas\index.js:160:7)
    at Object.execute (C:\Users\User\Documents\Discord Bots\Suggestions\commands\user commands\profile.js:24:24)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  code: 'StringExpected'
}

the line 24 in profile.js is
const canvas = createCanvas(300, 320)

is it possible to make these errors more meaningful? Right now it's hard to debug what exactly went wrong because most of the errors are like
Error ...
    code: '<SomeType>Expected'

We have to depend upon the line number in the stacktrace

I'll improve the error messages in NAPI-RS

Related on Prisma side: https://github.com/prisma/prisma/issues/13864


create-react-app config is loading twice

Describe the bug
The create-react-app config is loading twice, but should not be.
To Reproduce
Steps to reproduce the behavior:

Run storybook alongside an application based on create-react-app.
Observe terminal output.

Expected behavior
This config should be loaded once only.
Screenshots

System:

OS: Windows 10 - Ubuntu on WSL
Device: Surface Book 2
Browser: N/A
Framework: React
Addons: a11y, actions, knobs, links
Version: 4.1.0-alpha.8

Additional context
I discovered this whilst working on #4902, as I was getting a strange error and then discovered that the config was loading twice. I've worked around this issue on that branch, for now, and commented so that line can be remove when this issue is resolved.

As I've mentioned here - https://github.com/storybooks/storybook/pull/4902#issuecomment-443510766
We are applying presets on baseConfig and defaultConfig independently (it's not an issue introduced only in presets feature, it was also before, but now it's more visible):
module.exports = (baseConfig, mode, defaultConfig) => { /*...*/ }

The reason for this, is that we don't know what user will choose.
The possible solution could be:
Changing them into funcs:
module.exports = (baseConfig, mode, defaultConfig) => {
  const config = baseConfig(); // let's say the presets will be applyed only upon the invocation.
}

☝ this can be backward compatible with a deprecation message.
Reducing the baseConfig at all (my prefered actually)
The difference between the base and default configs are only a few css/images rules added by default. IMO this is more a historical setup, and we can just use only one. Also, since we are trying to make things work out of the box with the tools like CRA and angular-cli (and more in the future).
So it could be like this:
module.exports = (config, mode) => { /* ... */ }

☝ this is a breaking change

Will be a part of the v5


Adding "Pin the Note" feature to make that note remain at top

Is your feature request related to a problem? Please describe.
It may create bad UX, in case there are many notes.
Describe the solution you'd like
Creating an option for each note to Pin it at top of other notes. In case of a lot of notes the specific note, which the user wants, will remain at top.
Describe alternatives you've considered
Creating a "Pin the Note" option / feature to notes.
Additional context
No response
Code of Conduct

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

Can you assign me this issue, I want to work on this under IWOC24

I'm assigning you this task for IWOC'24. You can reach out to me on LinkedIn through this link or follow me on GitHub. Feel free to connect with me.
And at the time of coding, take care of the UI, and set valuable variable names.


[Loc] update to mssql and sql-database-projects xlfs

This PR fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage remained the same at 41.978%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/dialog/configurePython/configurePathPage.ts
1
57.02%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
28766

Relevant Lines:
63636

💛  - Coveralls


Replace link in Help command

Replace the link at the end of the help command with the updated version of the github.io page for Hera: https://chromeroni.github.io/Hera-Chatbot/

Changed link.


Data preprocess details of MineCLIP

Hi there,
First of all, thank you for your amazing work!
Recently I have been fine-tuning this pre-trained weight(attn.pth), I have prepared some video clips(mp4 files: 16 consecutive frames with 160 × 256 resolution) with matched text(JSON file formatted) for my fine-tuning task. I tried to preprocess my dataset based on what you mentioned in your paper, but I am a little confused about how you preprocessed raw video clips before as the input of MineCLIP, Did you use OpenCV or Imageio, etc. thank you a lot!
Sorry I might be stupid enough to ask this question as I am a new beginner in this field, thank you for your time and patience!

I think you need to use a tokenizer


Help with Amazon Machine image

Hello,
Thanks for this code.
Please can you advise after running rpmbuild -ba tacacs.spec what will next step to start tac_plus service and make changes to tac_plus.conf?
I'm trying to install on Amazon Machine image vm on AWS.
sorry in advance for my dumb question, as i'm new to linux.
appreciate your support.

Hi,
Could you try to install the rpm you just built?
<rpm -i path_to_rpm>
If it doesn't install the conf file and a systemd unit then you might need to create one manually.
Try running:
</usr/sbin/tac_plus -C /etc/tac_plus.conf>


Use nullable reference for AnyType if required

Hi. When using C# code generation from openapi3.0 format and given the following :

GenerateNullableAnnotations option is enabled,
and type of nullable object isn't specified:

propertyName:
  type: object
  nullable: true

then Nswag generates code with object type for propertyName, not object?.
Changing AnyType to object? in code generation settings doesn't help either since it results with following code:
public object? PropertyName {get;set;} = new object?();

which can't be compiled.
This PR changes type resolver behavior by append ? to AnyType.

@jeremyVignelles can you do a review?
It looks good to me.

@jacobpovar Can you also add some tests covering this?

Does the code still generate = new object(); ?
I don't think it's the right thing to return(should be null), but that would likely break things to change it now.
If there is = new object();, can it still be null or will it just be skipped by deserialization?
If it can't be null, there's no point of making the type nullable

@RicoSuter @jeremyVignelles thank you for reviewing this request
@RicoSuter sure, added couple of tests.
@jeremyVignelles
An object will have new object() initializer only if it's required.
when reading jsonschema from C# class then both optional and required fields will have = default! initializer.
when reading schema from json (the difference is that properties have explicit object type now) an optional field still has = default! initializer and will remain null.
a required field will have new object() initializer as it had before my changes.
So, if I'm not mistaken, If property is not set, it will remain null after deserialization. If it's present, then it won't be null.

I didn't check but that sounds good 🙂 Thanks for the explanations


macvlan support

Hello, thanks for multus support in eks,
I have one query regarding macvlan support.
There are many requirements to fix mac address to PODs for legacy applications
(These are license programs which runs on specific mac address)
From search, we found

use NET_ADMIN which needs more privilege not preferable
macvlan on multus

So I'd like to know I can run following sample.
https://github.com/k8snetworkplumbingwg/multus-cni/blob/master/examples/macvlan-pod.yml
I'm trying to test but it takes time :(

Hi Macvlan would not work across the node as VPC supports Layer 3 networking. Please use IPVLAN CNI.


missing document for options

"youtubedr -h" will print information for options, but missing document in README
document should describe options and provide some examples.

document is added by #46
Thanks to Cheng0639


Could you add some examples about outlier_detection in the examples directory?

I searched for a long time in the examples directory and docs and wanted to test the outlier_detection function.
But it never works, not sure where is wrong with the configuration! I hope you have an outlier_detection example in the examples directory.
The following configuration will not automatically kick the host out regardless of how many 500 errors the upstream http service has.
admin:
  address:
    socket_address:
      address: <IP_ADDRESS>
      port_value: 8001

static_resources:

  listeners:
    - name: listener_0
      address:
        socket_address:
          address: <IP_ADDRESS>
          port_value: 10000
      filter_chains:
        - filters:
            - name: envoy.filters.network.http_connection_manager
              typed_config:
                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                codec_type: AUTO
                stat_prefix: ingress_http
                upgrade_configs:
                  - upgrade_type: websocket
                access_log:
                  - name: envoy.access_loggers.stdout
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
                route_config:
                  name: rc01
                  virtual_hosts:
                    - name: vh01
                      domains:
                        - "*"
                      routes:
                        - name: retry-route
                          match:
                            prefix: /
                            headers:
                              - name: "enable-retry"
                                exact_match: "y"
                          route:
                            cluster: envoy_rest_server
                            retry_policy:
                              retry_on: "connect-failure,refused-stream,reset,gateway-error"
                              num_retries: 3
                              per_try_timeout: 0.5s

                        - name: timeout-route
                          match:
                            prefix: /
                            headers:
                              - name: "enable-timeout"
                                exact_match: "y"
                          route:
                            cluster: envoy_rest_server
                            timeout: 0.5s

                        - name: default_route
                          match:
                            prefix: /
                          route:
                            cluster: envoy_rest_server

                http_filters:
                  - name: envoy.filters.http.router
                    typed_config:
                      "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router

  clusters:
    - name: envoy_rest_server
      connect_timeout: 0.25s

      outlier_detection:
        consecutive_5xx: 3
        interval: "10s"
        base_ejection_time: "30s"
        max_ejection_time: "30s"
        max_ejection_percent: 100
        enforcing_consecutive_5xx: 100

      type: STATIC
      load_assignment:
        cluster_name: envoy_rest_server
        endpoints:
          - priority: 0
            lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: <IP_ADDRESS>
                      port_value: 18081

          - priority: 1
            lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: <IP_ADDRESS>
                      port_value: 18082

          - priority: 2
            lb_endpoints:
              - endpoint:
                  address:
                    socket_address:
                      address: <IP_ADDRESS>
                      port_value: 18083

Could you please confirm if the issue is still open for contributions? I'd like to proceed with further improvements if possible. Can you assign this task to me.

Could you please confirm if the issue is still open for contributions? I'd like to proceed with further improvements if possible. Can you assign this task to me.

If you can help me with this problem. It will be very much appreciated

Could you please confirm if the issue is still open for contributions? I'd like to proceed with further improvements if possible. Can you assign this task to me.

My request is that when the downstream service calls the upstream service and there are 3 consecutive 5xx errors, the service will be kicked out and no longer send requests to the upstream service within 30 seconds. Directly return "upstream service is unavailable". Just like istio.
Now: There are 3 consecutive 5xx errors, and the downstream service will still request the upstream service

hi @ogetysaisandeep work on this would definitely be appreciated
adding sandbox/examples can take quite a few iterations as there are a few moving parts
overall i would say the thing to understand is that while ~all the examples are tested and so function as a kind of integration test, they are "docs-first" - ie the walkthrough/steps that the end user can take from them is the most important part
if you are happy to take this on im happy to work with you and review

Sure @phlax let me review but can you assign this to me?


Create Episode Controller Class

Create an Episode controller class that will interact with the Episode object
saveRecord()
deleteRecord()
updateRecord()
getByEpisodeId()
getByEpisodeName()
getEpisodeList()
Create a test class to cover all methods

Test classes should be

Test for positive result
Test for negative result
Test for bulk transactions
Test for permission sets


The test code may have a little problem when using assertDictEqual

In IDA_scripts' test code, like test_large_acfg_disasm.py in IDA_acfg_disasm, the code uses assertDictEqual to test if the data feature that readers reproduce is the same as gt's.
However,  assertDictEqual will think {'a': [[2, 3], [3, 2]]} != {'a': [[3, 2], [2, 3]]}. But when we reproduce the data feature, like ACFG's edge, we may get different orders of edges, which is also correct.
This is not a big problem, I just hope that the person replicating the code will be aware of this when the test fails.

Thanks @LJianCode for reporting this issue. This needs to be fixed.


Recent Chrome updates in mac broke profiler

I used to use this tool to profile memory leaks with my running node apps, but this new update in Chrome (Mac) broke it. I am using Version 32.0.1700.77

Should be fixed now.


Add app-wide loading mask component

This adds an app-wide loading mask component, which covers the application and shows a loading spinner:

Quite useful when performing essential AJAX requests, where the user should not interact with the application.
To toggle the loading mask you could use WguEventBus.$emit('app-loading-mask-toggle'); or in order to explicitly set a visibility for the mask one could use WguEventBus.$emit('app-loading-mask-toggle', newViz); .

Thanks for your review @fschmenger. I added some tests regarding the 'app-loading-mask-toggle' event (see 10d0875). I am going to merge now.

Since we have a couple of new features by now, could you bump up the minor version?

I also had that in mind and come up with that separately.


How to reproduce this perfectly valid Elastic query using the package's methods

Software
Version

PHP
7.4

Elasticsearch
OpenSearch 2.3 (AWS)

Laravel
8.83.25

Laravel Scout
9.8.1

Elastic Scout Driver
2.0.0

Describe the bug
Not a bug, rather a question.
How to reproduce this perfectly valid Elastic query with the methods provided by the package?
GET _search
{
  "query": {
    "nested": {
      "path": "metadata",
      "query": {
        "bool": {
          "must": [
            { "match_phrase_prefix": { "metadata.key": "the key name" }},
            { "match_phrase_prefix": { "metadata.value": "the key value" }}
          ]
        }
      }
    }
  }
}

Defining the raw query like this:
$query = [
    'nested' => [
        'path' => 'metadata',
        'query' => [
            'bool' => [
                'must' => [
                    'match_phrase_prefix' => [
                        'metadata.key' => 'the key name',
                        'metadata.value' => 'the key value',
                    ]
                ]
            ]
        ]
    ]
];

... fails with this error:
 {"error":{"root_cause":[{"type":"parsing_exception","reason":"[match_phrase_prefix] query doesn't support multiple fields, found [metadata.key] and [metadata.value]","line":1,"col":128}],"type":"x_content_parse_exception","reason":"[1:128] [bool] failed to parse field [must]","caused_by":{"type":"parsing_exception","reason":"[match_phrase_pre fix] query doesn't support multiple fields, found [metadata.key] and [metadata.value]","line":1,"col":128}},"status":400}
And using the package Query::nested method like this returns results, event though the Elastic query already mentioned above does not, which is the actual expected behavior:
$query = Query::nested()
    ->path('metadata')
    ->query(Query::matchPhrasePrefix()->field('metadata.key')->query('the key name'))
    ->query(Query::matchPhrasePrefix()->field('metadata.value')->query('the key value'))
;

Hi @ftrudeau-pelcro, I think your raw query doesn't match the elastic query, it should be something like the following:
$query = [
    'nested' => [
        'path' => 'metadata',
        'query' => [
            'bool' => [
                'must' => [
                    [
                        'match_phrase_prefix' => [
                            'metadata.key' => 'the key name'
                        ],
                    ],
                    [
                        'match_phrase_prefix' => [
                            'metadata.value' => 'the key value'
                        ]
                    ]
                ]
            ]
        ]
    ]
];

The same can be achieved with the query helper:
 $query = Query::nested()
    ->path('metadata')
    ->query(
        Query::bool()
            ->must(Query::matchPhrasePrefix()->field('metadata.key')->query('the key name'))
            ->must(Query::matchPhrasePrefix()->field('metadata.value')->query('the key value'))
    ) ;

I did not test it, but this is how I'd construct the query you mentioned above. I hope this helps :)


Maven Jenkins agents does not set MAVEN_HOME

Hello,
I am not sure if it is by design but things like MAVEN_HOME and JAVA_HOME are not set in images such as https://access.redhat.com/containers/?tab=tech-details#/registry.access.redhat.com/openshift3/jenkins-agent-maven-35-rhel7
Can these images provide those environment variables out of the box as opposed to requiring the user to set them explicitly through things like MAVEN_HOME=$(dirname $(dirname "$(which mvn)"))?
Thanks

Yeah I feel like there is some history here, but don't recall the specifics at the moment.... maybe @bparees does

i also have a vague sense this was deliberate but don't recall any specific reason.
our wildfly image sets java_home (during s2i assemble, but not at runtime) but not maven_home.
setting JAVA_HOME in particular is slightly fiddly because of our logic to use either 32 or 64bit java depending on the container constraints.

Can't remember, I'm afraid.

I think I finally found some of the old links I had for research here.  In particluar, check out some of the warnings at
https://stackoverflow.com/questions/17136324/what-is-the-difference-between-m2-home-and-maven-home
and
https://stackoverflow.com/questions/26609922/maven-home-mvn-home-or-m2-home
about not needing either as of 3.5 (which our image is at now).
Closing out.


Camel 10319: SNMP Producer

https://issues.apache.org/jira/browse/CAMEL-10319

Hello @Fabryprog
Can you please amend the commit messages with a reference to the issue CAMEL-10319?
This way we can always track the history of an issue.

Please, run mvn -Psourcecheck too
oscerd@ghost:~/workspace/apache-camel/camel/components/camel-snmp$ mvn -Psourcecheck
[WARNING]
[WARNING] Some problems were encountered while building the effective settings
[WARNING] 'profiles.profile.id' must be unique but found duplicate profile with id jboss-public-repository @ /opt/apache-maven-3.3.9/conf/settings.xml
[WARNING] 'profiles.profile.id' must be unique but found duplicate profile with id redhat-earlyaccess-repository @ /opt/apache-maven-3.3.9/conf/settings.xml
[WARNING]
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Camel :: SNMP 2.18.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-maven) @ camel-snmp ---
[INFO]
[INFO] --- maven-bundle-plugin:3.2.0:cleanVersions (versions) @ camel-snmp ---
[INFO]
[INFO] --- maven-checkstyle-plugin:2.17:checkstyle (validate) @ camel-snmp ---
[INFO] Starting audit...
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java:114:5: File contains tab characters (this is the first instance). [FileTabCharacter]
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpProducer.java:2: Line does not match expected header line of ' * Licensed to the Apache Software Foundation (ASF) under one or more'. [Header]
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpProducer.java:106:17: '{' at column 17 should have line break after. [LeftCurly]
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpProducer.java:106:50: 'catch' is not followed by whitespace. [WhitespaceAround]
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpProducer.java:106:65: '{' is not followed by whitespace. [WhitespaceAround]
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpProducer.java:107:17: '{' at column 17 should have line break after. [LeftCurly]
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpProducer.java:107:45: 'catch' is not followed by whitespace. [WhitespaceAround]
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpProducer.java:107:60: '{' is not followed by whitespace. [WhitespaceAround]
[ERROR] /home/oscerd/workspace/apache-camel/camel/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/ProducerTest.java:2: Line does not match expected header line of ' * Licensed to the Apache Software Foundation (ASF) under one or more'. [Header]
Audit done.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.998 s
[INFO] Finished at: 2016-09-14T17:06:47+02:00
[INFO] Final Memory: 30M/319M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:checkstyle (validate) on project camel-snmp: An error has occurred in Checkstyle report generation. Failed during checkstyle execution: There are 9 errors reported by Checkstyle 6.17 with camel-checkstyle.xml ruleset. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Maybe, squash all the commit into one only if possible.
Thanks.

Can you please amend the commit messages with a reference to the issue CAMEL-10319?
Or squash all the commit into only one?
Thanks!

@lburgazzolii have fix variable into consumer!

I meant if the initialization of targetAddress, address and usm can be moved in onStart and related cleanup onStop , in general the number of object created should be reduced to the min.

@lburgazzoli I entered your valuable guidance

Can you please squash commit once again?
Thanks. After that I'll merge. If there will be any change you can simply track your update on a new JIRA and open a PR.
:-)

@oscerd is it mandatory? :-) i merged the master to test it and now is a very tedious work! :-1:

It isn't mandatory but read "merge branch 'master'" in the git log is so ugly...

Merged! :-)
Many thanks! Can you close this PR?

Thanks :100: !!!!


Array and string offset access syntax with curly braces is deprecated

I know that version 1.0 is not designated for php 7.4 but this deprecation is older .

Build is broken due to the fact that PHP < 5.6 is only available in Trusty dist. Can you please add dist: trusty to .travis.yml and see if it works?

@DeyV sorry about having to push a commit to your branch but to me this was the easiest way to fix a bug that occurs when running with xdebug >=2.8 which your PR uncovered.
Thanks for fixing the deprecations!

1.11.0 was just release which includes this PR. Thanks again!


bump all dependencies

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Can you also run go mod tidy, to cleanup go.sum


Merge to main

Merge to main for deployment to production.
 Renewal code not ready to go to production.

Closing until ready for production.


[Docs] Add ; for proper sql syntax

Summary
Was working thru the quickstart and noticed that one sql command was missing a ;
Why / Goal
Makes it easier for folks to copy/paste the code
Test Plan

[ ] Added Unit Tests
[x] Covered by existing CI
[ ] Integration tested

Checklist

[ ] Documentation update

Reviewers

Thanks @ken-zlai


add more local llm model support through ollama

demo usage are provided in demo.ipynb. User are not required to install ollama model if they don't use it, as I put import ollama inside model calling function.

thanks for writing !

demo usage are provided in demo.ipynb. User are not required to install ollama model if they don't use it, as I put import ollama inside model calling function.
Thank you for the great work! It helped me a lot!

demo usage are provided in demo.ipynb. User are not required to install ollama model if they don't use it, as I put import ollama inside model calling function.

Thank you for the great work! It helped me a lot!


Fix error computing includer indentation

Resolves #123

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

17 of 17 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
378

Relevant Lines:
378

💛  - Coveralls


dts leaks absolute paths

With dts enabled, the GlobalComponents interface now uses absolute paths for components, causing user paths to be leaked. Previously all paths were relative.
For reproduction I simply cloned vitesse
and ran pnpm i and pnpm dev. After that the src/components.d.ts file had changed to
// generated by unplugin-vue-components
// We suggest you to commit this file into source control
// Read more: https://github.com/vuejs/vue-next/pull/3399

declare module 'vue' {
  export interface GlobalComponents {
    CarbonCampsite: typeof import('~icons/carbon/campsite')['default']
    CarbonDicomOverlay: typeof import('~icons/carbon/dicom-overlay')['default']
    CarbonLanguage: typeof import('~icons/carbon/language')['default']
    CarbonLogoGithub: typeof import('~icons/carbon/logo-github')['default']
    CarbonMoon: typeof import('~icons/carbon/moon')['default']
    CarbonPedestrian: typeof import('~icons/carbon/pedestrian')['default']
    CarbonSun: typeof import('~icons/carbon/sun')['default']
    CarbonWarning: typeof import('~icons/carbon/warning')['default']
    Footer: typeof import('C:/Users/MyUserName/Downloads/vitesse-main/src/components/Footer.vue')['default']
    README: typeof import('C:/Users/MyUserName/Downloads/vitesse-main/src/components/README.md')['default']
  }
}

export { }

This is on Windows 10 Version 21H2 (OS Build 19044.1263)

I don't have Windows to test so I might need some help here. The fix should be straightforward to check isAbsolute here
https://github.com/antfu/unplugin-vue-components/blob/872019591a925dcb2af326a651005eb712cb9b5d/src/core/declaration.ts#L22

I tested
const related = isAbsolute(path)
          ? `./${relative(dirname(filepath), path)}`
          : path

And this seems to be working on Windwos at least.

Would you might to send a PR so you can have the credit?


sklearn bug

We have some issue with sklearn when modifying the readme. That should come from something deprecated from our code ?
https://travis-ci.org/YosefLab/scVI/builds/620632239
@PierreBoyeau would you look into that and try to:

merge the README modif
fix the codecov and make sure the new PR get a codecov
merge the posterior predictive checks
merge the gene filtering fix

You're right, I am pretty sure it's linked with the new sklearn update. I'm on it!


Update User Guide for Mark commands

Add documentation for mark
Add documentation for unmark

Fixes #41

Codecov Report

Merging #59 (af571d6) into master (7738c91) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #59   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


drivers: fpga: fixup for renesas slg471X5

Correct Kconfig and evaluate return value of i2c read during verification.

@alpineisle the CI failure we see in the CI has been resolved, please rebase to make the CI green


docs: Add Pokemon Database to showcase

Description
This PR adds Pokemon Database Starlight documentation site to the showcase.

Hello! Thank you for opening your first PR to Starlight! ✨
Here’s what will happen next:

Our GitHub bots will run to check your changes.
If they spot any issues you will see some error messages on this PR.
Don’t hesitate to ask any questions if you’re not sure what these mean!

In a few minutes, you’ll be able to see a preview of your changes on Netlify 🤩

One or more of our maintainers will take a look and may ask you to make changes.
We try to be responsive, but don’t worry if this takes a few days.


TypeError when using the Ava test framework

I get the following error when running tests in a brand new project using the Ava test framework:
  ✖ No tests found in test/specs/Logo.spec.js

  1 uncaught exception

  Uncaught exception in test/specs/Logo.spec.js

  /usr/src/nuxt-app/node_modules/@vue/component-compiler-utils/node_modules/prettier/index.js:1957

  TypeError: Super expression must either be null or a function

  _inherits (node_modules/@vue/component-compiler-utils/node_modules/prettier/index.js:1957:11)
  node_modules/@vue/component-compiler-utils/node_modules/prettier/index.js:40358:5
  node_modules/@vue/component-compiler-utils/node_modules/prettier/index.js:40378:4
  createCommonjsModule (node_modules/@vue/component-compiler-utils/node_modules/prettier/index.js:193:35)
  Object.<anonymous> (node_modules/@vue/component-compiler-utils/node_modules/prettier/index.js:40350:18)
  compile (node_modules/require-extension-hooks/src/hook.js:75:10)
  hook (node_modules/require-extension-hooks/src/hook.js:32:3)
  actuallyCompile (node_modules/@vue/component-compiler-utils/dist/compileTemplate.js:97:24)
  compileTemplate (node_modules/@vue/component-compiler-utils/dist/compileTemplate.js:28:16)
  getCompiledTemplate (node_modules/require-extension-hooks-vue/src/index.js:123:20)

error An unexpected error occurred: "Command failed.
Exit code: 1
Command: sh
Arguments: -c ava
Directory: /usr/src/nuxt-app
Output:
".
info If you think this is a bug, please open a bug report with the information provided in "/usr/src/nuxt-app/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Steps
/usr/src # yarn create nuxt-app nuxt-app

yarn create v1.5.1
[1/4] Resolving packages...
[2/4] Fetching packages...
info<EMAIL_ADDRESS>The platform "linux" is incompatible with this module.
info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning "@vue/cli > @vue/cli-ui ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0".
warning "@vue/cli > @vue/cli-ui ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>[4/4] Building fresh packages...
success Installed<EMAIL_ADDRESS>with binaries:
      - create-nuxt-app
> Generating Nuxt.js project in /usr/src/nuxt-app
? Project name nuxt-app
? Project description My wicked Nuxt.js project
? Use a custom server framework none
? Choose features to install Linter / Formatter, Prettier, Axios
? Use a custom UI framework bootstrap
? Use a custom test framework ava
? Choose rendering mode Universal
? Author name jason
? Choose a package manager yarn

/usr/src # cd nuxt-app/
/usr/src/nuxt-app # yarn test

It seems to be related to the importing of the Logo component into the test/spec/Logo.spec.js file.
If I replace the generated code in that file with something like the following it runs fine:
// import { mount } from '@vue/test-utils'
import test from 'ava'
// import Logo from '../../components/Logo.vue'

test('is a Vue instance', t => {
  // const wrapper = mount(Logo)
  // t.is(wrapper.isVueInstance(), true)
  t.pass()
})

Has anyone else experienced this?

me else.

i added the follow line at the end of test/helpers/setup.js, and it works fine.
window.Date = global.Date = Date;

i added the follow line at the end of test/helpers/setup.js, and it works fine.
window.Date = global.Date = Date;

Thanks, dude! This was driving me crazy :)

Spent almost 2 hours before I arrived here.

Should be fixed with #226

Resolved via #283


On commit c3c344d sometime tx is allowed when AM

On commit c3c344d sometime tx is allowed when AM.
Just after update or QS power off/on.
Pressing of PTT does not show TX disable and red led is lit. It seems the behaviour occurs until 1st squelch opening.

Yes I know, I've been trying to do too many things at once,, I'll fix it shortly. Bare with me.

Just report you ti keep it in mind :)

ha. software/firmware is NEVER finished.
Just don't delete this issue, otherwise I will forget :)

Do you have dual-watch (Dual-RX) enabled when the problem happens ?

On commit c3c344d sometime tx is allowed when AM.
Just after update or QS power off/on.
Pressing of PTT does not show TX disable and red led is lit. It seems the behaviour occurs until 1st squelch opening.

I had reported this already buddy..you could have just added too that instead of starting  new issue...

It seems the behaviour occurs until 1st squelch opening.

Thank you !   that's a key bit of info, I'll soon find that.

Yes, I have dual watch and active channel is set on AM

Since 2 commits I use lower squelch feature also

it's only when dual-watch is enabled. It does transmit on the FM channel not the AM channel, it's just that it shouldn't be transmitting at all when the main channel is the AM one.

I shall check it with standard squelch. I never noticed it earlier

I have checked and the issue depends only on dual watch

Try it now, I 'think' I've got it, though there are multiple factors that affect the TX freq/chan to take into account, my heads spinning from it.

no, ignore that :(

The issue is fixed on commit e0aa1a8.
The ticket can be closed

i think there is still a funny with, I had it do it once which means I've missed something that needs finding.

IMHO the bug was fixed. Cannot reproduce the issue.

I've been changing it slightly, so let me know if the problem re-appears, or if it TX's on the wrong VFO (should only ever TX on the selected VFO - solid black triangle indicator).

Cannot reproduce now


I am unable to find .ANE file in this folder, any one can guide.

check it
https://github.com/alebianco/ANE-Google-Analytics/releases

Error: libNativeGATracker.a are required to have universal iOS libraries. Please contact the ANE developer(s) to get the same. It gives me following error on ios app can you please guide?

@laraibmalik90 This is related to #67 to supporting 64-bit iOS apps.


feat: add script for watch, remove tsc from test

Author should do the followings, if applicable

[x] Add tests
[x] Run tests
[x] yarn denoify to generate files for Deno

@yusukebe you want to run typecheck before tests?

@ariskemper
Yes!

Thanks!


[208] Fix location display on profile preview

Screenshots of UI changes:
Before

After

 Display job preferences locations correctly on the Preview page

Cheers @elliotcm , all good from me 👍


Enable and disable excludeMessages on runtime

I was wondering, is there a way right now to enable/disable certain exclusions before and after tests?

For example, I would like to test 404 and 500 errors that trigger console logs... but I don't want to exclude these logs for all tests - only for these very specific tests.

Based on this plugin I came to a slightly different solution, see https://github.com/nils-hoyer/cypress-fail-on-console-error/issues/47

But it had some drawbacks like you needed to start every test with cy.visit().

Some days ago I changed the approach to the same as @nils-hoyer and got this very simple solution (which doesn't required cy.visit() before each test):

support/index.ts.. no additional imports for "sinon" or sinon-chai were required in my case
/**
 * the code inside this file will be loaded in each spec file
 * FAIL_ON_CONSOLE_ERROR will
 * - in "afterEach" hook: detect and collect console errors (which were not excluded by excludeMessagesDefault or excludeMessages)
 * - in "after" hook: let the last test fail if any console errors occurred (if we would let the test fail in the afterEach hook, subsequent tests would be skipped)
 * */
if (Cypress.env('FAIL_ON_CONSOLE_ERROR')) {
  let spy: sinon.SinonSpy;
  Cypress.on('window:before:load', (win) => {
    // we need to use native sinon, because cy.spy will be reset by Cypress between tests
    // this way we can reuse the same spy without having to start each test with cy.visit(..)
    spy = Cypress.sinon.spy(win.console, 'error');
  });

  Cypress.on('command:end', () => {
    if (!spy || spy.callCount < 1) {
      return;
    }
    const exclusions: RegExp[] = Cypress.env('excludeMessages')
      ? [...excludeMessagesDefault, ...Cypress.env('excludeMessages')]
      : excludeMessagesDefault;

    cy.log(`analyzing console errors with exclusions:\r\n${exclusions.join('\r\n')}`);
    const consoleErrors: string[] = [];
    spy.getCalls().forEach((spyCall) => {
      const consoleErrorText = spyCall.args.toString();
      if (!exclusions.some((excludeMessage) => excludeMessage.test(consoleErrorText))) {
        consoleErrors.push(consoleErrorText);
      }
    });
    spy.resetHistory();
    if (consoleErrors.length > 0) {
      throw new Error(`console errors occurred: ${JSON.stringify(consoleErrors, null, 2)}`);
    }
  });
}

In every describe or test you could then add "env: { excludeMessages: [/some message/, /another message/]}"
I didn't extend the Cypress-Config-Object for my purpose, but it would be cleaner than using "env". I'm hoping that this feature gets somehow included into this plugin.. didn't have the time yet to create a PR for it :D
Beware that in Cypress < 10 the env variables will spill over into other tests inside the same spec if you run Cypress in open mode..
Originally posted by @mirobo in https://github.com/nils-hoyer/cypress-fail-on-console-error/issues/109#issuecomment-1216777093

https://github.com/nils-hoyer/cypress-fail-on-console-error/pull/126


Add test report github action

@hedgehog1833
How can we access this report bzw. where is the file?

@DanielW1987 You can see it on the action's page, after the point "Execute all tests" is now also "Publish test report"


Add iIntegration tests to CI

Acceptance Criteria

[x] Integration tests run after any Rust, toml, or integration test file change
[x] Integration test failure will fail the build
[ ] (May want to parse out to a different issue) Should still work if there are api-augment changes without needing an npm release of api-augment. (aka should build and use "local" api-augment)
[ ] If a new extrinsic and the integration test for it are all added in one PR, it should still pass (aka Should use the same commit for the chain)

Tasks:

[x] Ensure Readme has instructions on how to run integration tests
[x] Update Frequency CI diagram
[x] Collect feedback on updated Diagram from @demisx and @wilwade
[x] Update "Verify PR" Workflow
[x] Modify filters: in changes CI job
[x] Test with a failing tests
[x] Resolve XXX

@demisx

Should still work if there are api-augment changes without needing an npm release of api-augment. (aka should build and use "local" api-augment)

Options and steps to make this happen:
Option 1 [Integrated build]:

Start Instant Sealing Node
Working Dir: js/api-augment

npm ci
npm run fetch
npm run build

Working Dir: js/api-augment/dist

npm pack
cp frequency-chain-api-augment-0.0.0.tgz ../../../

Working Dir: integration-tests

npm ci (existing)
npm i ../frequency-chain-api-augment-0.0.0.tgz
[continue existing CI process]

Option 2 [using output and dependent build]:

Alter verify-js-api-augment

Add final step of:

Working Dir: js/api-augment/dist
npm pack

Cache/artifact: js/api-augment/dist/frequency-chain-api-augment-0.0.0.tgz

Alter run-integration-tests

Dependency on verify-js-api-augment
npm ci (existing)
Get frequency-chain-api-augment-0.0.0.tgz from cache/artifacts
npm i frequency-chain-api-augment-0.0.0.tgz
[continue existing CI process]


Experimental Badge

for stuff like templation, should be larger than normal, placed above other ones.

i'll move templation out of here. i don't think i'm going to continue working on it and i don't think anyone else is interested. :D


Fix incorrect wrapping width in Heading{One,Two}TagElement

Fixes terrarium-earth/Heracles#98
Since text in heading elements are scaled, we have to divide the available width by the scale.
In the future, we might want to refactor the common logic between these two classes (and perhaps others).

Can I get some screenshots of this working in-game?

How do I test my changes? I’ve thought of temporarily changing Heracles’ dependency on Hermes to a local directory, but I can’t get that working.

publish locally with a new version number and then change the version loaded in heracles and include mavenLocal as a repo

I’ve figured it out myself (by using "modImplementation"(files(...))).


local_variables is broken

def _generate
  var = 110
  proc {|hoge| p local_variables }
end
_generate.call

outputs [:hoge], but I expect [:hoge, :var] as CRuby does.
As I looked the code, struct REnv * assigned to the generated proc gets unshared when cipop called in OP_RETURN, and that makes the env not enumarated. Is this a mruby's spec or not?
Even if that's a spec, I believe that  the following behavior is absolutely a bug.
def _generate
  eval("var = 110; proc {|hoge| p local_variables }")
end

def _call(invisible)
  invisible.call
end

_call(_generate)

says [:hoge, :invisible], but if I'm correct invisible shouldn't appear.
In this case, the env of the generated proc is not unshared due to another callinfo, but mrb_local_variables refers current callinfo stack, so variables not related to the proc appears. As a similar example,
def _generate
  eval("var = 110; proc {|hoge| p local_variables }")
end

def dummy(invisible)
end

Fiber.new {
  ret = _generate
  dummy(nil)
  ret
}.resume.call

outputs the same, [:hoge, :invisible]. In this case, another context's callinfo which gets overwrited by calling dummy function is referred.

The first issue is mruby limitation. We will try to address it but it would take time.
The second issue is caused by a bug in eval (create_proc_from_string).

Actually I found the first issue when debugging the second one, so I'm not stacked at that if I know that's a limitation. Thanks a lot!

Oops, issue number was wrong.


White background on startup

When oni starts up it shows window with white background, which is quite annoying when dark theme is used.

Yes, this is a great point, it really hurts the polish and feel of Oni.
I have this issue tracking some ideas around improving the load flow of Oni: #355
I'll be investing heavily in polishing and smoothing out the UI as part of the 0.4 milestone.
I'll close this because I believe it is tracked in #355, but feel free to add any suggestions / ideas. Thanks!


Response not Appear in the chat

Book ingest done, and I could see incoming prompt at OpenAI Language model usage page.
The response is not showing in the chat flow.

the last lines in the terminal:
data: IncomingMessage {
_readableState: [ReadableState],
_events: [Object: null prototype],
_eventsCount: 1,
_maxListeners: undefined,
socket: [TLSSocket],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
rawHeaders: [Array],
rawTrailers: [],
joinDuplicateHeaders: undefined,
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 404,
statusMessage: 'Not Found',
client: [TLSSocket],
_consuming: false,
_dumped: false,
req: [ClientRequest],
responseUrl: 'https://api.openai.com/v1/chat/completions',
redirects: [],
[Symbol(kCapture)]: false,
[Symbol(kHeaders)]: [Object],
[Symbol(kHeadersCount)]: 22,
[Symbol(kTrailers)]: null,
[Symbol(kTrailersCount)]: 0
}
},
isAxiosError: true,
toJSON: [Function: toJSON]
}

Hi, I'm also encountering this. Did you mark it as complete because it just took a really long time to run or you figured it out on your own?

Hi, I'm also encountering this. Did you mark it as complete because it just took a really long time to run or you figured it out on your own?

Hi I fixed this issue by changing the model from 4.0 to 3.5 turbo .
Hope it helps.

Hi! Thank you for responding so quickly!  I'm already running on 3.5 turbo :/ I might just let it run a bit more to see if anything happens


CASMHMS-5607: Remove hardcoded certificate

Summary and Scope

Removed hardcoded certificate from RTS container image.
Added a file watcher for a provided HTTPs certificate key pair so RTS can automatically reload the certificate.
The Mock backend now properly stands up the Certificate Service.
Updated and added documentation and tooling to perform local testing of RTS.

Issues and Related PRs
LIST AND CHARACTERIZE RELATIONSHIP TO JIRA ISSUES AND OTHER PULL REQUESTS. BE SURE LIST DEPENDENCIES.

Resolves CASMHMS-5607

Testing
LIST THE ENVIRONMENTS IN WHICH THESE CHANGES WERE TESTED.
Tested on:

Mug
VShasta

Were the install/upgrade based validation checks/tests run?(goss tests/install-validation doc)
Were continuous integration tests run? Y/N   If not, Why? Yes
Was an Upgrade tested?                 Y/N   If not, Why? Yes
Was a Downgrade tested?                Y/N   If not, Why? Yes
If schema changes were part of this change, how were those handled in your upgrade/downgrade testing?
WHAT WAS THE EXTENT OF TESTING PERFORMED? MANUAL VERSUS AUTOMATED TESTS (UNIT/SMOKE/OTHER)
HOW WERE CHANGES VERIFIED TO BE SUCCESSFUL?
Mug testing
Deployed this version of RTS with its accompanying helm chart https://github.com/Cray-HPE/hms-rts-charts/pull/9
Determined the pod IP of the RTS pod:
cray-hms-rts-544fcbd89f-7gwgc                                     3/3     Running             0          3m26s   <IP_ADDRESS>     ncn-w008   <none>           <none>

I verified that RTS us using a HTTPs certificate that was generated by cert-manager:
ncn-m002:~ # openssl s_client -showcerts -connect <IP_ADDRESS>:8083 < /dev/null | openssl x509 -noout -text
Can't use SSL_get_servername
depth=2 O = Shasta, OU = Platform, CN = Platform CA (8e66a091-ef18-401a-a855-27cebe76db36)
verify return:1
depth=1 O = Shasta, OU = Platform, CN = Platform CA - L1 (8e66a091-ef18-401a-a855-27cebe76db36)
verify return:1
depth=0 CN = cray-hms-rts.services.cluster.svc
verify return:1
DONE
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            25:3f:20:16:a7:f4:81:ff:f6:52:1b:d2:66:e6:9b:1a:42:94:df:2b
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: O = Shasta, OU = Platform, CN = Platform CA - L1 (8e66a091-ef18-401a-a855-27cebe76db36)
        Validity
            Not Before: Jul 15 22:40:14 2022 GMT
            Not After : Aug 14 22:40:44 2022 GMT
        Subject: CN = cray-hms-rts.services.cluster.svc
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:ad:c4:ad:5b:eb:ef:ec:3e:b8:2b:a5:49:a6:83:
                    28:43:3e:b2:22:0d:c3:27:0b:46:79:b1:aa:05:df:
                    27:19:82:b9:2f:10:fe:6e:85:bf:f1:9e:79:e9:85:
                    b6:0d:9e:a9:4b:ca:31:92:c4:53:68:e1:38:b0:f3:
                    57:44:c2:fd:56:65:66:5e:19:eb:2c:99:20:11:e1:
                    74:7d:7c:61:cf:b2:a6:3b:28:62:7c:9d:54:ad:a0:
                    9a:7a:8e:9a:e1:2f:73:fe:37:95:63:ac:6b:9b:72:
                    54:52:d5:10:25:ae:91:59:4b:cf:87:ff:de:a0:5e:
                    f6:c9:b8:1e:df:e9:59:bd:b7:bb:a8:cf:54:2e:2c:
                    ea:06:d9:b3:63:24:be:fb:64:4c:ce:1f:90:d7:fb:
                    34:ec:ec:c9:df:62:bb:bd:9d:94:c8:b7:3a:b3:4a:
                    d9:ec:aa:be:01:bb:46:c0:86:c7:6f:ab:89:41:b5:
                    35:10:17:84:f3:4e:14:40:dc:93:f1:25:a7:37:5e:
                    a0:3b:da:33:a9:09:a3:31:7d:69:8a:11:fe:27:08:
                    07:ad:0f:c1:38:44:cc:f3:94:7d:49:49:dd:8b:58:
                    4b:c8:f6:2f:3b:ca:96:bb:62:a7:cf:f0:eb:a9:c8:
                    14:f0:46:52:c2:94:a2:36:d1:e2:a3:3b:6a:c7:f7:
                    e3:0d
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment, Key Agreement
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Subject Key Identifier:
                2D:5C:D2:A6:F7:95:78:1A:81:16:3B:7C:52:B2:89:7A:4B:71:4A:5A
            X509v3 Authority Key Identifier:
                keyid:CC:73:09:FF:98:02:BE:BA:C8:BD:50:6E:D0:9B:71:1D:C3:74:FD:9E

            Authority Information Access:
                CA Issuers - URI:http://cray-vault.vault:8200/v1/pki_common/ca

            X509v3 Subject Alternative Name:
                DNS:cray-hms-rts, DNS:cray-hms-rts.services, DNS:cray-hms-rts.services.cluster.svc
            X509v3 CRL Distribution Points:

                Full Name:
                  URI:http://cray-vault.vault:8200/v1/pki_common/crl

    Signature Algorithm: sha256WithRSAEncryption
         58:1f:08:4e:ad:5d:32:98:3e:b7:75:56:1b:71:f9:5a:ae:96:
         04:e6:32:e9:cf:d7:12:9a:22:76:2c:c8:be:9f:c8:a7:2e:b2:
         8f:48:50:c1:e8:06:f2:1d:49:f1:da:8e:20:e5:dc:df:b9:2f:
         66:fa:5c:b7:02:4e:0d:df:a7:c1:a9:89:a0:dd:d6:e5:73:f9:
         f4:5c:e2:7e:e0:39:db:46:d7:54:0a:27:67:5e:3e:e0:08:60:
         95:47:4d:d3:e1:a5:83:a7:56:de:c7:75:6c:43:48:fb:ef:aa:
         18:bd:d3:e4:53:0b:04:24:b0:0d:3e:40:7b:3c:5c:d1:d2:ee:
         23:50:9c:f4:1d:70:34:9e:39:b4:6c:51:8e:89:76:4b:6f:71:
         57:2d:eb:a0:9b:08:6e:ea:26:d7:64:4f:91:25:ed:0c:b2:f1:
         39:4f:5c:d7:a4:6f:7d:0a:4d:e4:96:ff:d0:37:bb:be:7e:b5:
         e5:6b:70:4b:fe:02:87:1d:c5:9f:36:dd:ef:c0:ef:38:82:77:
         d2:bf:24:0d:c9:5d:ec:fb:98:9b:18:5d:1a:35:46:38:30:68:
         6f:12:f8:f2:7e:30:01:71:89:25:b2:97:8a:1d:f2:ff:f3:c8:
         2e:00:d7:1c:20:35:4a:ca:62:76:92:31:b9:34:e8:1c:3c:20:
         65:e0:b5:12:c3:f2:c5:a4:69:96:7a:ee:09:a1:94:9f:58:56:
         81:e2:e4:39:af:06:67:8f:72:66:d4:93:a5:1b:1e:0b:2c:7a:
         81:7a:cf:56:a6:db:ef:d2:0f:25:0d:b1:13:18:19:c0:2c:c2:
         9a:04:45:ba:5e:79:80:ad:8b:c2:9c:12:d4:d8:6f:7f:74:a8:
         51:cb:e7:5f:77:9a:15:34:8d:7d:02:21:d2:4e:69:5f:e7:9a:
         28:ec:0e:f7:6b:18:ec:65:13:dc:20:c1:2f:37:7b:e6:98:ee:
         02:64:b3:e8:54:6f:3c:96:96:51:bf:77:92:5d:da:5f:1b:0f:
         b7:aa:b7:92:37:2a

I manually forced a renewal of the HTTPs certificate
ncn-m002:~ # kubectl -n services delete secrets cray-hms-rts-default-tls
secret "cray-hms-rts-default-tls" deleted

# A few seconds later a new cert is created

ncn-m002:~ #  kubectl -n services  get secrets cray-hms-rts-default-tls
NAME                       TYPE                DATA   AGE
cray-hms-rts-default-tls   kubernetes.io/tls   3      32s

RTS noticed the change:
INFO[2022-07-15T22:57:41Z]internal/backend_helpers/certificateservice.go internal/backend_helpers.(*CertificateService).LoadDefaultCert Loading default HTTPs certificate             certFile=/default-tls/tls.crt keyFile=/default-tls/tls.key

And it is now serving a new certificate:
ncn-m002:~ # openssl s_client -showcerts -connect <IP_ADDRESS>:8083 < /dev/null | openssl x509 -noout -text
Can't use SSL_get_servername
depth=2 O = Shasta, OU = Platform, CN = Platform CA (8e66a091-ef18-401a-a855-27cebe76db36)
verify return:1
depth=1 O = Shasta, OU = Platform, CN = Platform CA - L1 (8e66a091-ef18-401a-a855-27cebe76db36)
verify return:1
depth=0 CN = cray-hms-rts.services.cluster.svc
verify return:1
DONE
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            64:68:1c:c0:53:e7:b3:a7:b4:7a:a5:a0:b3:aa:37:a1:82:6a:fa:a0
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: O = Shasta, OU = Platform, CN = Platform CA - L1 (8e66a091-ef18-401a-a855-27cebe76db36)
        Validity
            Not Before: Jul 15 22:57:07 2022 GMT
            Not After : Aug 14 22:57:37 2022 GMT
        Subject: CN = cray-hms-rts.services.cluster.svc
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:ae:97:fc:c3:e8:00:4b:15:b5:c6:f7:9e:17:d2:
                    d2:69:b2:d7:be:98:61:f5:de:70:5f:8c:5b:61:ad:
                    23:60:6f:0b:5c:78:21:e2:17:e2:a2:a0:e3:a6:0c:
                    47:a4:d1:68:71:57:d9:88:0b:80:57:90:eb:67:f8:
                    c5:0a:fd:35:68:16:7c:a7:f3:4d:e7:02:23:8b:b1:
                    0c:b9:92:0a:b9:2b:a1:73:9c:94:96:00:68:3b:c5:
                    4a:d3:0c:d9:9d:22:66:81:22:09:ef:c9:f6:4b:72:
                    9a:3e:25:d9:85:4e:2d:4c:ea:19:fc:db:69:56:ba:
                    69:5e:a6:65:8c:95:25:5c:96:c1:6b:c2:45:7a:80:
                    cd:a6:b1:4e:14:10:8f:73:a3:5d:f2:46:70:62:8c:
                    d3:bf:ea:38:65:d4:6b:dc:2a:ae:f6:5b:21:b2:40:
                    04:68:42:18:be:10:cf:92:95:a0:fc:30:c7:d1:52:
                    c7:8e:98:d5:c1:84:25:cf:be:a8:9f:4d:9d:4a:72:
                    03:2d:b8:ed:b6:f9:59:62:5d:74:ba:e0:1d:a1:e7:
                    83:6f:96:98:ba:7c:af:d1:26:8c:ab:a2:65:fd:d7:
                    43:a3:dd:56:8f:a2:a9:d0:3f:00:53:7d:b3:ee:1c:
                    f6:a3:9d:9b:39:5a:d4:0b:cc:30:a1:be:f5:94:65:
                    94:7f
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment, Key Agreement
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Subject Key Identifier:
                02:9C:21:26:BF:74:45:AA:4F:61:04:54:7A:93:FE:03:02:AA:CE:B6
            X509v3 Authority Key Identifier:
                keyid:CC:73:09:FF:98:02:BE:BA:C8:BD:50:6E:D0:9B:71:1D:C3:74:FD:9E

            Authority Information Access:
                CA Issuers - URI:http://cray-vault.vault:8200/v1/pki_common/ca

            X509v3 Subject Alternative Name:
                DNS:cray-hms-rts, DNS:cray-hms-rts.services, DNS:cray-hms-rts.services.cluster.svc
            X509v3 CRL Distribution Points:

                Full Name:
                  URI:http://cray-vault.vault:8200/v1/pki_common/crl

    Signature Algorithm: sha256WithRSAEncryption
         2a:ce:b3:45:9d:bc:e7:89:26:cb:5f:9f:86:6d:8a:7e:19:91:
         13:c1:ae:88:60:a7:31:86:15:72:9d:92:b4:66:cb:12:8a:32:
         43:87:84:4a:25:5d:ce:5f:2b:2a:a1:5c:ce:ab:9f:2e:d9:23:
         62:99:68:ec:dc:dc:b1:97:a8:f3:f3:22:34:2a:e8:3b:4e:87:
         91:6d:a3:12:89:29:45:d4:53:8d:28:d7:8a:37:28:4a:18:61:
         c9:8a:44:7a:0d:b0:af:ba:e2:d4:b7:97:ad:f8:f3:28:48:7f:
         94:d0:e7:4f:62:7d:c4:06:97:56:3a:80:20:79:22:c6:95:6f:
         43:58:f7:71:22:8d:3d:15:e5:db:43:96:15:78:9b:88:31:57:
         0b:80:11:cc:8a:8d:16:17:a7:7f:3e:c7:76:16:ca:52:26:5f:
         f2:c3:ae:0b:f0:b3:f9:99:0a:0f:a0:fc:70:c7:8f:ee:0f:68:
         5c:4c:ac:c6:0a:28:ca:f8:fe:b8:f1:eb:23:1f:ff:b3:de:8b:
         af:08:f9:f4:36:30:0c:88:de:14:96:74:b0:6b:5d:58:37:a9:
         70:9d:81:99:42:9c:9a:ab:f9:05:08:15:1d:f8:0b:c1:46:d9:
         55:55:7f:9b:9c:e3:6f:02:a6:f9:fd:c9:c3:22:62:cc:1b:d3:
         40:f7:04:10:bf:58:d2:aa:82:11:92:55:a9:3a:25:c3:d4:24:
         5a:13:72:c7:6d:9d:a4:48:46:86:11:4f:68:68:68:9e:a0:8c:
         19:8f:50:49:0e:1a:48:3c:39:bd:52:49:4a:75:cb:9f:1b:27:
         94:39:84:6d:ff:18:0a:87:f7:a0:14:d0:3f:af:de:b7:76:bb:
         96:e3:3f:9d:f4:d1:31:f5:ce:e2:81:29:c3:46:2c:75:87:6a:
         2e:22:33:d4:27:c2:38:8c:56:3b:16:49:00:2b:fb:1a:70:cf:
         af:d7:86:35:09:d4:f6:fc:c1:0b:6c:dd:ee:93:cc:93:05:6a:
         f2:70:95:c8:61:dd

I also tested the scenario of cert-manager renewing the certificate via its  normal process. I reconfigured the cert to have a life of 10 minutes, and to renew 5 minutes before it expires. RTS automatically reloaded the certificate.
VShasta testing
Deployed this version of RTS with its accompanying helm chart https://github.com/Cray-HPE/hms-rts-charts/pull/9
Verified the correct certificate was in place:
# Determined the IP of the RTS pod:
$ kubectl -n services get pods -o wide| grep rts
cray-hms-rts-c78c7974c-nfbnz                                      3/3     Running     0          3m57s   <IP_ADDRESS>   ncn-w003-bf209cf3   <none>           <none>

# View the certificate of the pod:
ryansjostrand@ncn-w001-cc5b6470:~> openssl s_client -showcerts -connect <IP_ADDRESS>:8083 < /dev/null | openssl x509 -noout -text
Can't use SSL_get_servername
depth=2 O = Shasta, OU = Platform, CN = Platform CA (ADE450CA-F7EB-4914-8BD9-6423F20EB65F)
verify error:num=19:self signed certificate in certificate chain
verify return:1
depth=2 O = Shasta, OU = Platform, CN = Platform CA (ADE450CA-F7EB-4914-8BD9-6423F20EB65F)
verify return:1
depth=1 O = Shasta, OU = Platform, CN = Platform CA - L1 (ADE450CA-F7EB-4914-8BD9-6423F20EB65F)
verify return:1
depth=0 CN = cray-hms-rts
verify return:1
DONE
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            12:29:32:75:ae:5f:07:1f:52:79:cb:a0:33:a8:69:82:4b:d7:ea:85
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: O = Shasta, OU = Platform, CN = Platform CA - L1 (ADE450CA-F7EB-4914-8BD9-6423F20EB65F)
        Validity
            Not Before: Jul 20 19:26:52 2022 GMT
            Not After : Aug 19 19:27:22 2022 GMT
        Subject: CN = cray-hms-rts
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:b7:e6:d0:47:f5:a1:8b:f7:8b:cb:bb:1e:b6:2a:
                    b2:49:2a:f0:e9:48:97:f4:98:ee:ad:67:66:3f:2d:
                    3b:0b:77:50:a2:f9:11:00:92:df:9c:a1:48:b1:d8:
                    44:9b:cf:e2:1f:06:3b:94:58:97:ff:4b:53:26:8a:
                    9f:67:9f:80:60:8a:14:b0:40:00:1f:74:41:ef:45:
                    cc:5a:e0:30:0f:40:b8:9f:e9:b0:f4:ed:d4:4e:cb:
                    ce:a0:e6:27:98:7f:e4:4b:26:34:c4:0c:1b:11:4b:
                    f3:37:8d:15:9c:f6:b3:c8:03:84:20:e9:e3:07:e0:
                    b8:f9:d0:05:5f:94:a7:b8:4b:f0:c6:1a:70:fa:61:
                    89:44:02:d8:27:56:28:2d:ee:e4:5a:6e:5b:ae:84:
                    22:99:4e:25:10:08:32:41:97:16:3c:42:4b:29:98:
                    c5:7c:8c:0c:8f:ae:ae:bf:a2:1b:8d:0b:43:1d:ba:
                    48:35:ed:5e:e7:84:5b:02:ae:f0:62:7c:9d:6e:67:
                    e6:8f:16:16:62:d3:e2:03:65:6a:25:26:0a:83:11:
                    47:71:ae:4b:f9:6a:ae:bd:f6:e0:2e:d6:13:99:2f:
                    35:2b:d1:0b:8a:23:1b:b7:6e:7e:15:07:2c:92:0e:
                    38:b4:ad:90:ee:17:a8:d5:f0:fc:7b:2c:ca:2e:aa:
                    29:db
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment, Key Agreement
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Subject Key Identifier:
                29:01:66:9C:FE:A0:6E:24:BB:3C:AD:BB:99:8B:15:59:CF:C2:8E:CA
            X509v3 Authority Key Identifier:
                keyid:BA:18:63:E3:1A:8C:26:20:3C:FE:CE:02:D0:D0:46:7D:77:88:8B:94

            Authority Information Access:
                CA Issuers - URI:http://cray-vault.vault:8200/v1/pki_common/ca

            X509v3 Subject Alternative Name:
                DNS:cray-hms-rts.services, DNS:cray-hms-rts.services.cluster.svc, DNS:cray-hms-rts.services.cluster.svc.local
            X509v3 CRL Distribution Points:

                Full Name:
                  URI:http://cray-vault.vault:8200/v1/pki_common/crl

    Signature Algorithm: sha256WithRSAEncryption
         6b:84:58:05:dc:50:aa:cd:60:40:92:fe:7a:c4:34:42:45:8e:
         36:12:4a:3c:59:30:f5:3b:c0:c4:93:ca:87:fb:37:81:53:bc:
         a6:cc:97:8c:5a:5a:cb:df:76:bd:82:10:f1:3d:98:ba:64:65:
         fb:87:e6:5d:34:0a:ef:d6:93:b1:d8:69:c2:43:97:39:d9:26:
         7c:5c:4f:ee:a5:60:f6:b6:b2:e2:17:08:6f:f7:7d:c3:96:df:
         9a:41:8c:77:78:4f:22:71:a9:02:19:14:18:c0:cc:e7:ff:c7:
         61:de:51:38:3b:f3:a6:74:58:13:6a:de:5c:41:e5:12:29:0c:
         35:19:6e:13:b2:df:01:f4:a5:28:d9:50:7e:c1:d2:9c:24:33:
         3a:32:35:ba:b0:20:66:8d:bc:d5:35:08:b6:07:66:76:30:96:
         91:1d:16:28:5e:b5:6e:db:e1:b2:96:07:60:13:86:1e:0e:74:
         6e:4e:d7:30:5e:cc:37:45:da:47:5d:90:3e:d6:da:27:ff:07:
         f6:aa:a0:2e:89:b8:1d:61:dc:f7:67:bb:1c:22:e3:23:31:2f:
         86:62:4c:80:25:46:a3:05:a4:11:d0:87:c0:2d:c5:ec:1b:dd:
         dc:e9:41:c6:0c:93:f3:a2:54:56:a3:ed:f2:f8:6e:9c:c9:a2:
         1a:58:ff:8a:9c:0a:14:32:e7:dd:e9:76:5f:92:68:d2:e0:d5:
         80:f5:73:e8:1b:c2:81:8c:6a:ff:a4:04:e7:4c:43:38:03:bb:
         4d:bc:e3:e9:4c:a2:4d:fc:13:59:00:4a:ac:85:11:99:d6:2e:
         d0:c6:01:43:88:1c:e0:0f:8e:79:dc:20:0b:9b:56:0e:41:0b:
         99:7b:18:ed:09:9c:fe:41:bd:8d:0b:9b:bd:f5:1b:33:62:42:
         f8:32:23:69:45:89:5c:8a:d2:11:09:1b:b5:fe:0c:dc:4d:88:
         61:04:35:e5:f8:0a:09:fa:05:39:87:b7:b0:28:6c:6d:d3:22:
         10:50:ae:ef:9e:e8

I cleared out the RedfishEndpoints from HSM, and had RTS re-add them back. All RedfishEndpoints where DiscoverOK:
bash-5.1# cray hsm inventory redfishEndpoints list --format json | jq '.RedfishEndpoints[] | { ID: .ID, LastDiscoveryStatus: .DiscoveryInfo.LastDiscoveryStatus }' -c
{"ID":"x0c3s1b0","LastDiscoveryStatus":"DiscoverOK"}
{"ID":"x0c3s2b0","LastDiscoveryStatus":"DiscoverOK"}
{"ID":"x0c3s3b0","LastDiscoveryStatus":"DiscoverOK"}
{"ID":"x0c0s1b0","LastDiscoveryStatus":"DiscoverOK"}
{"ID":"x0c0s2b0","LastDiscoveryStatus":"DiscoverOK"}
{"ID":"x0c1s1b0","LastDiscoveryStatus":"DiscoverOK"}
{"ID":"x0c2s1b0","LastDiscoveryStatus":"DiscoverOK"}
{"ID":"x0c4s1b0","LastDiscoveryStatus":"DiscoverOK"}

Also verified that CAPMC was able to communicate to the BMCs:
bash-5.1# cray capmc get_xname_status create  --xnames x0c0s[1-2]b0n0,x0c[1-2]s1b0n0,x0c3s[1-3]b0n0,x0c4s1b0n0
e = 0
err_msg = ""
on = [ "x0c0s1b0n0", "x0c0s2b0n0", "x0c1s1b0n0", "x0c2s1b0n0", "x0c3s1b0n0", "x0c3s2b0n0", "x0c3s3b0n0", "x0c4s1b0n0",]

Risks and Mitigations
Overall a low risk, we need a newer helm chart https://github.com/Cray-HPE/hms-rts-charts/pull/9 to provide the certificate.
Requires:

Additional testing on bare-metal
Compute nodes
3rd party software
Broader integration testing
Fresh install
Platform upgrade

The git history of this repo will be rewritten using BFG to rewrite the secret from history.

The PDU vault loader is for local testing, and is not included the final docker image. The Mock backend is not used in production, but is useful for local testing.


Have font_path() return a PathBuf instead of a String

This change is

Please migrate this change to https://github.com/servo/core-foundation-rs/.


Any way to import my custom trained piper voice models?

Hello! What is the path of the models downloaded in my computer? Exist any form to import piper custom models? Thanks!

Models are stored in browser-managed OPFS (origin private file system), which isn't visible to the user.  We could add an upload form to allow user to import custom models.

I'd like to have that feature too!

Any progress with that feature? I have some voice models stored and I want to import them, but there's no import feature.

I'll work on this tomorrow


Radarr API url needs updating

Running on commit 15ec6d9271473a41f2cf932711d28a227c0cef31 (grafted, HEAD -> master2, origin/master2, origin/HEAD)
Using the lscr.io/linuxserver/htpcmanager docker image
Expand log
2022-03-31 10:33:39 :: root :: INFO :: Welcome to the Python 3 port of Hellowlol's HTPC Manager fork
2022-03-31 10:33:39 :: root :: INFO :: Loglevel set to info
2022-03-31 10:33:39 :: htpc.updater :: INFO :: Using GitUpdater engine
2022-03-31 10:33:39 :: apscheduler.scheduler :: INFO :: Added job "Updater.update_needed" to job store "default"
2022-03-31 10:33:39 :: modules.kodi :: WARNING :: No configured kodi-Servers.
2022-03-31 10:33:39 :: modules.newznab :: WARNING :: No configured Indexers.
2022-03-31 10:33:39 :: modules.stats :: ERROR :: Could not import psutil see install guide.
2022-03-31 10:33:39 :: modules.stats :: ERROR :: No module named 'pySMART'
2022-03-31 10:33:39 :: htpc.server :: INFO :: Starting up webserver
2022-03-31 10:33:39 :: cherrypy.error :: INFO :: [31/Mar/2022:10:33:39] ENGINE Listening for SIGTERM.
2022-03-31 10:33:39 :: cherrypy.error :: INFO :: [31/Mar/2022:10:33:39] ENGINE Listening for SIGHUP.
2022-03-31 10:33:39 :: cherrypy.error :: INFO :: [31/Mar/2022:10:33:39] ENGINE Listening for SIGUSR1.
2022-03-31 10:33:39 :: cherrypy.error :: INFO :: [31/Mar/2022:10:33:39] ENGINE Bus STARTING
2022-03-31 10:33:40 :: cherrypy.error :: INFO :: [31/Mar/2022:10:33:40] ENGINE Serving on http://<IP_ADDRESS>:8085
2022-03-31 10:33:40 :: cherrypy.error :: INFO :: [31/Mar/2022:10:33:40] ENGINE Bus STARTED
2022-03-31 10:33:43 :: modules.radarr :: ERROR :: Failed to fetch url=http://<IP_ADDRESS>:7878/api/profile path=profile error Expecting value: line 1 column 1 (char 0)
2022-03-31 10:33:43 :: modules.radarr :: ERROR :: Failed to fetch url=http://<IP_ADDRESS>:7878/api/profile path=profile error Expecting value: line 1 column 1 (char 0)
2022-03-31 10:33:44 :: modules.radarr :: ERROR :: Failed to fetch url=http://<IP_ADDRESS>:7878/api/Rootfolder path=Rootfolder error Expecting value: line 1 column 1 (char 0)
2022-03-31 10:33:44 :: modules.radarr :: ERROR :: Failed to fetch url=http://<IP_ADDRESS>:7878/api/History?page=1&pageSize=100&sortKey=date&sortDir=desc path=History?page=1&pageSize=100&sortKey=date&sortDir=desc error Expecting value: line 1 column 1 (char 0)
2022-03-31 10:33:44 :: modules.radarr :: ERROR :: Failed to fetch url=http://<IP_ADDRESS>:7878/api/Movie path=Movie error Expecting value: line 1 column 1 (char 0)
2022-03-31 10:33:44 :: modules.radarr :: ERROR :: Failed to fetch url=http://<IP_ADDRESS>:7878/api/health path=health error Expecting value: line 1 column 1 (char 0)
2022-03-31 10:33:44 :: modules.radarr :: ERROR :: Failed to fetch url=http://<IP_ADDRESS>:7878/api/queue path=queue error Expecting value: line 1 column 1 (char 0)

Per https://radarr.video/docs/api/ it looks as though the api url changed from api to api/v3

The sonarr API url doesn't seem to have changed, it's working for me and I'm running sonarr <IP_ADDRESS>7 and confirmed in their documentation https://github.com/Sonarr/Sonarr/wiki/API

pretty sure I've got this working, please give it a try

@lordairivis
Sorry, I haven't used this manager in a while. I can't test it.


Langium Error References Missing Page on Cyclic Deps

The dependency-injection.ts file in langium can throw an error on detecting a cycle with a specific message linking to the following page: https://langium.org/docs/di/cyclic-dependencies. However, this page is not published on the langium website, and appears to be missing from the src entirely?
We should add this page as part of completing documentation for langium

This could also be a subsection in the "Configuration via Services" chapter.

The documentation page is implemented by https://github.com/langium/langium-website/pull/149
URL update in the error message is performed by https://github.com/langium/langium/pull/1057
I suggest closing this issue as soon as https://github.com/langium/langium/pull/1057 is merged

Thanks @hpopov!


Use the java.nio.Path API

This allows for testing with an in-memory filesystem (like Jimfs), for example.

This project is in maintenance mode, so a big change like this is not something we can support.


All "description" meta tags empty on rendered page

Description
The content attribute of description meta tags render as empty on my live site.
Steps to reproduce
(Can be seen on my sandbox here)
Add the following to your main.js file:
head.meta.push({
    key: 'description',
    name: 'description',
    content: `foo`
  })
head.meta.push({
    key: 'og:description',
    name: 'og:description',
    content: `foo`
  })
head.meta.push({
    key: 'twitter:description',
    name: 'twitter:description',
    content: `foo`
  })

Expected result
In both dev and production environments, the tags should render as:
<meta data-key="description" name="description" content="foo" data-vue-tag="true">
etc.

Actual result
Renders normally in dev, but in production renders as:
<meta data-vue-tag="true" data-key="description" name="description" content="">
etc.

Environment

Libs:
- gridsome version: 0.6.0
- @gridsome/cli version: Not sure

Browser:
- [x] Chrome (desktop) version XX
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [ ] Firefox version XX
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [ ] Edge version XX

Looks like overriding meta tags by key only works when overriding form a child component, like pages or templates. I'll fix this by not adding the default description tag if siteDescription is empty.

We definitely should close this one. Fix for the issue has been commited (including test).


5.2: The first boot welcome message mentions TSH 4.0

The message which pops up upon booting a new TSH install for the first time mentions "Tournament Stream Helper 4.0", despite the fact that the software is now in version 5.2 and counting

Fixed in alerts


Use transaction hooks from libs/web3

Update to use web3 Ethereum transaction hooks from libs/web3.
Delete hooks defined in token app

Merged with #1513