Typed provider configuration

This adds strong typing around our CI configuration options.
Currently our config is just a bag of values, which has led to repos specifying options which have no effect on CI (e.g. parallel:, makeTemplate: etc.).
This adds types for all of our available options and will fail if ci-mgmt.yml specifies an unrecognized option. For backwards compatibility we continue to allow existing no-op params in order to not break existing providers.

Is there any option to conbine the defaults into the parser too so we don't have to maintain the defaults file separately?

Is there any option to conbine the defaults into the parser too so we don't have to maintain the defaults file separately?

Sure! I kept it around since this is already a pretty big change but that's very doable.

Would be nice to not have the documentation duplicated between the types and the defaults at some point, but that could be a follow-up task.

Agree and created https://github.com/pulumi/ci-mgmt/issues/1146

We'll also need a roll-out plan for fixing any bad fields in config files.

We should get build failure issues for any providers specifying some bad fields not allow-listed here, and I can fix those as needed. Otherwise cleaning these up isn't urgent (arguably not worth doing). IMO it's more important that the boilerplate repos reflect the correct usage and I think you already took care of that.


error due to model and env observation space mismatch when I load pretrained agent

❓ Question
Hi, when I continue training,that is load pretrained agent for my own environment, I found the observation space in the saved model is not correspond with the definition! What's the problem? I'm confused.
Loading saved VecNormalize stats
Loading pretrained agent
Traceback (most recent call last):
File "/home/sc/rl-baseline3-zoo/train.py", line 237, in
results = exp_manager.setup_experiment()
File "/home/sc/rl-baseline3-zoo/utils/exp_manager.py", line 188, in setup_experiment
model = self._load_pretrained_agent(self._hyperparams, env)
File "/home/sc/rl-baseline3-zoo/utils/exp_manager.py", line 607, in _load_pretrained_agent
model = ALGOS[self.algo].load(
File "/home/sc/miniconda3/envs/sc_mujoco2.3/lib/python3.10/site-packages/stable_baselines3/common/base_class.py", line 684, in load
check_for_correct_spaces(env, data["observation_space"], data["action_space"])
File "/home/sc/miniconda3/envs/sc_mujoco2.3/lib/python3.10/site-packages/stable_baselines3/common/utils.py", line 228, in check_for_correct_spaces
raise ValueError(f"Observation spaces do not match: {observation_space} != {env.observation_space}")
ValueError: Observation spaces do not match: Dict(achieved_goal: Box(-inf, inf, (3,), float64), desired_goal: Box(-inf, inf, (3,), float64), observation: Box(-inf, inf, (14,), float64), rope_in_hand: Box(0.0, 1.0, (1, 1), float32), touch_info_0: Box(-10.0, 10.0, (3, 32, 32), float32), touch_info_1: Box(-10.0, 10.0, (3, 32, 32), float32)) != Dict(achieved_goal: Box(-inf, inf, (3,), float64), desired_goal: Box(-inf, inf, (3,), float64), observation: Box(-inf, inf, (14,), float64), rope_in_hand: Box(0.0, 1.0, (1, 1), float32), touch_info_0: Box(0, 255, (3, 32, 32), uint8), touch_info_1: Box(0, 255, (3, 32, 32), uint8))
Checklist

[X] I have checked that there is no similar issue in the repo
[X] I have read the SB3 documentation
[X] I have read the RL Zoo documentation
[X] If code there is, it is minimal and working
[X] If code there is, it is formatted using the markdown code blocks for both code and stack traces.

Hi, we need more information to answer you. I suggest you to use the bug report template instead. Unless you are using a custom env, then use the custom env template.

I have encounter this kind of problem, have you change your env script after you trained this agint ?
Changing the observation space or action space dimension can potentially lead to this problem.

I have encounter this kind of problem, have you change your env script after you trained this agint ?
Changing the observation space or action space dimension can potentially lead to this problem.

I didn't change the script. But I found that  changing the stable_baselines3 version from 1.7.0 to 1.6.0 can solve the problem


fix(ui-kit): Row 컴포넌트 상하 마진 제거

변경사항
Row 컴포넌트에 의도치 않은 상하 마진이 포함되어 이를 제거합니다

:tada: This PR is included in version 1.1.0-alpha.29 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


To address this issue, the command format shall be
genectl describe <resource type> <resource name>

Or
genectl describe <resource type>/<resource name>

Its better change the del command also.
At present it is
genectl del executionName [flags]
to genectl del execution  executionName [flags]

/assign @SrinivasChilveri


HIDError

I got the following error when using API. This problem has been bothering me for a long time. Could you please help me see the reason?I packaged it as an exe and that's the same problem:
Traceback (most recent call last):
File "G:\GitHub\others-github\DMCUProg\dap_test.py", line 64, in
test.on_btnWrite_clicked()
File "G:\GitHub\others-github\DMCUProg\dap_test.py", line 21, in on_btnWrite_clicked
self.cpu = self.openDAP()
File "G:\GitHub\others-github\DMCUProg\dap_test.py", line 51, in openDAP
self.daplink.open()
File "G:\GitHub\others-github\DMCUProg\pyocd\probe\cmsis_dap_probe.py", line 137, in open
self._link.open()
File "G:\GitHub\others-github\DMCUProg\pyocd\probe\pydapaccess\dap_access_cmsis_dap.py", line 569, in open
self._packet_count = self._protocol.dap_info(self.ID.MAX_PACKET_COUNT)
File "G:\GitHub\others-github\DMCUProg\pyocd\probe\pydapaccess\cmsis_dap_core.py", line 125, in dap_info
self.interface.write(cmd)
File "G:\GitHub\others-github\DMCUProg\pyocd\probe\pydapaccess\interface\pywinusb_backend.py", line 149, in write
self.report.send([0] + data)
File "C:\Python39\lib\site-packages\pywinusb\hid\core.py", line 1474, in send
raise HIDError("Report size has to be %d elements (bytes)"
pywinusb.hid.helpers.HIDError: Report size has to be 1025 elements (bytes)

@LONGZR007 Did you figure out the problem?

@flit  Yes, I saw on #686 that you answered this question for others, thank you


HIE unnecessarily reloads modules

I have created a minimal repro here: https://github.com/expipiplus1/hie-reload-example
The gist of it is, I have loaded a project in which module Foo depends on Bar. I make an edit to Foo and both Foo and Bar are reloaded. I would expect that only Foo would be reloaded as would happen in ghci using the :r command.
One can see Bar being reloaded here: https://github.com/expipiplus1/hie-reload-example/blob/master/hie.log#L113
This makes quite a difference in very large projects.
I was very surprised to see this, so perhaps I am driving things in an unusual way or doing something else wrong.

I'm also experiencing the same issue, if I save a my executable, it reloads the entire library it depends on.  This makes for a really long feedback loop.

@expipiplus1 Does it happen when you set an explicit component, too? E.g.
cradle:
  cabal:
    component: "lib:hie-reload-example"

Probably part of the problem is shown in line:
2020-03-11 10:37:23.385812562 [ThreadId 48] - setTargets: [("/home/j/projects/bugs/reload/src/Foo.hs","/run/user/1000/haskell-lsp17296/Foo.hs-00000--4428135201160501691.hs")]

The targets should contain Bar.hs

Looks like the problem that #1526 aimed to solve.

For anyone else finding this, #1526 isn't the whole solution.
From @fendor on IRC

it would require more investigation. The invocation is correct, but targets are a bit unexpected.

Seems to happen with explicit flags (with the bios cradle too). As far as I can tell #1526, seems to just change telemetry options (the important commit seems to have been reverted) which would explain why it made no difference, although nothing seems to change without that revert either.
Just to check, has this always been the behavior of HIE, reloading every module on every edit?

Reloading modules, yes, otherwise we cant tell which modules need changes after one of their module dependencies have changed. However, that should be fast, comparable to a :r in ghci (almost identical since it is the same mechanism).
Actually, how fast/slow is it? I grep'd for occurrences of New cradle and that looked fine.

Ah, I was wrong, at least for my small test case. With #1526 (without the reverting commit) Bar.hs is not reloaded.
I still suffer from this in a larger project (with very slow reloading), perhaps this is due to

Use of Template Haskell
Use of hs-boot files
Directly specifying flags instead of using a cabal cradle

I can confirm that ghci with the same flags does not reload modules as eagerly.,

Use of Template Haskell
Use of hs-boot files

Yeah, both of these are not well supported and cause regular problems :(

right, that explains it, hopefully this will be better with HLS! Happy to have this closed if these issues are already mentioned elsewhere, not that it really matters much in the hie repo :)


Update resource limits

Update the docs to appropriately reflect the total memory available per subnet and the Wasm stable memory limit after the recent bump of those values.

I think we should perhaps wait with merging until the proposal for the replica version containing the bump is accepted and rollout starts.
@dfinity/editorial Once the PR has the required approvals I can monitor things and hit merge as soon as the conditions above are met.


Bug: iOS14 Simulator

This command:
await audioPlayer.play("sounds/CLICK12A.mp3");
causes the simulator lock up for a few seconds and doesn't play the audio. Worked fine in iOS 13 and also works on Android.

Is iOs 14 out already? 🤔

Just an early heads up, that's why they give developers access to the iOS 14 betas :)

Just an early heads up, that's why they give developers access to the iOS 14 betas :)

Phew, I freaked out for a moment hahaahaha

Good news. XCode 12 beta 2 seems to have fixed the issue. Must have been a problem with the simulator?


Oddity in hypergeom

I'm using python 3.5.2, MacOS, scipy verison 0.18.1.
This code [simplified] came up in a simulation.  I keep everything the same except for the value of 'n', that is, the number of Type 1 (Success) objects.  As the number of Success objects increases, the probability of success should increase.  But we see it doesn't even follow a monotonic behavior.  This is very peculiar.
See example below:
    from scipy.stats import hypergeom

    rv1 = hypergeom( 10000, 1000, 215 )
    rv2 = hypergeom( 10000, 1200, 215 )
    rv3 = hypergeom( 10000, 2000, 215 )
    rv4 = hypergeom( 10000, 3000, 215 )

    z1 = rv1.cdf( 107 )
    z2 = rv2.cdf( 107 )
    z3 = rv3.cdf( 107 )
    z4 = rv4.cdf( 107 )

    print("z1=%.14f" % z1)
    print("z2=%.14f" % z2)
    print("z3=%.14f" % z3)
    print("z4=%.14f" % z4)

which yields results:
z1=0.99999999998262
z2=0.99999999999750
z3=0.99999999998063
z4=0.99999999970559

We that from 1000 to 1200 it goes up (as expected), but then decreases.  I do not see how this is possible without a bug.

This is essentially noise of lost precision:
In [48]: for _ in [1200, 1500]:
    print(hypergeom.cdf(107, 10000, _, 215),  hypergeom.sf(107, 10000, _, 215))
   ....:
(0.99999999999749689, 4.9276765454965867e-44)
(0.99999999998118949, 9.9811198877272598e-35)

There might be some room for improving precision somewhat by rewriting https://github.com/scipy/scipy/blob/master/scipy/stats/_discrete_distns.py#L321 in terms of betaln, but I doubt that'll help much in this extreme case.

betaln may help, because I guess the loss of precision comes from a>>b
which iirc is a limit handled by betaln.

Am adding the easy-fix label for the betaln cleanup. There is also a sum of 107 terms, so I guess we'll need to see if whether the accuracy is limited by each term or the sum.

Note that a better way to compute the pmf is with the Lanczos approximation, which is now in special. (Though private.)

What is the protocol for me on this ticket?  I looked into the difficulty of implementing betaln() myself, but it was sufficiently complicated I felt there was too high chance I'd break things.  Do I just wait until the betaln() patch is implemented?  Anything else I can before then?
An aside, your work in fantastic.

betaln is already a function in scipy.special; the idea is to use that function in the log pmf. (Which would be the easy fix.)

Now that I think, it's not so clear betaln will help here, the loss of
precision may also come from summing many pmf terms in the cdf
computation. So maybe the calculation should switch to 1 - sf this far
in the tail, which is probably numerically stabler.

Oh, I see this was noted also by ev-br much earlier :)

I rewrited https://github.com/scipy/scipy/blob/master/scipy/stats/_discrete_distns.py#L321 in terms betaln
For this example with code in terms gammaln:
    from scipy.stats import hypergeom

    rv1 = hypergeom( 10000, 1000, 215 )
    rv2 = hypergeom( 10000, 1200, 215 )
    rv3 = hypergeom( 10000, 2000, 215 )
    rv4 = hypergeom( 10000, 3000, 215 )

    z1 = rv1.cdf( 107 )
    z2 = rv2.cdf( 107 )
    z3 = rv3.cdf( 107 )
    z4 = rv4.cdf( 107 )

    print("z1=%.14f" % z1)
    print("z2=%.14f" % z2)
    print("z3=%.14f" % z3)
    print("z4=%.14f" % z4)

I have output:
    z1=0.99999999998262
    z2=0.99999999999750
    z3=0.99999999998063
    z4=0.99999999970559

_log_pmf function in terms betaln:
    def _logpmf(self, k, M, n, N):
        tot, good = M, n
        bad = tot - good
        return betaln(good+1, 1) + betaln(bad+1,1) + betaln(tot-N+1, N+1)\
            - betaln(k+1, good-k+1) - betaln(N-k+1,bad-N+k+1)\
            - betaln(tot+1, 1)

And new output for previous example:
    z1=0.99999999998341
    z2=0.99999999999583
    z3=0.99999999998275
    z4=0.99999999970387

As we see, _log_pmf function in terms betaln doesn't solve problem

I'm new to contributing to scipy, so I've just been lurking around the issues, looking for something to contribute to. Conceptually, I'd like to know why "As the number of Success objects increases, the probability of success should increase." (quote from original post)?  I haven't actually sat down and worked out the algebra yet, I'm not quite able to see this monotonic relationship.
My intuitive (and unreliable) explanation to the contrary: for a fixed population size N, as the number of type 1 objects, K, increases, the number of type 2 objects, N - K, must necessarily decrease.  If we choose n objects without replacement, out of which k are type 1 objects (where n > k so that this is a nontrivial case), it becomes "easier" to choose a type 1 object as K increases, but "harder" to choose a type 2 object to fill the n - k chosen type 2 objects.

Hi, I'm new to contributing in general so I've just been lurking around. From the original post: "As the number of Success objects increases, the probability of success should increase." I haven't sat down to work out the algebra yet, but I can't quite see this relationship?
My intuitive (and therefore unreliable) explanation to the contrary: for a fixed total population of N objects, where n are type 1 objects and N - n are type 2 objects, as n increases, N - n must necessarily decrease.  So if we choose M objects with replacement, m of which are type 1 objects, it becomes "easier" to choose type 1 objects as n increases, but also "harder" to choose type 2 objects.
Some back-of-the-envelope calculations, adapting the scipy example:
def nCr(n, r):
    f = math.factorial
    return f(n)/f(r)/f(n-r)
def hypergeom(M, m, N, n):
    hpg = nCr(M, m)*nCr((N - M), (n - m))/nCr(N, n)
    return hpg
N=20 #Total population size
n=12 #no. of objects chosen
m=6 #no. of type 1 objects chosen
m_rng = np.arange(m, N-m)
#vary the no. of type 1 objects available
for M in m_rng:
    hpg = hypergeom(M, m, N, n)
    print(M, hpg)

6 0.023839009287925695
7 0.09535603715170278
8 0.205382233865206
9 0.308073350797809
10 0.3500833531793284
11 0.308073350797809
12 0.205382233865206
13 0.09535603715170278
14 0.023839009287925695

Some back-of-the-envelope calculations, adapting the scipy example:
def nCr(n, r):
    f = math.factorial
    return f(n)/f(r)/f(n-r)
def hypergeom(M, m, N, n):
    hpg = nCr(M, m)*nCr((N - M), (n - m))/nCr(N, n)
    return hpg
N=20 #Total population size
n=12 #no. of objects chosen
m=6 #no. of type 1 objects chosen
m_rng = np.arange(m, N-m)
#vary the no. of type 1 objects available
for M in m_rng:
    hpg = hypergeom(M, m, N, n)
    print(M, hpg)

6 0.023839009287925695
7 0.09535603715170278
8 0.205382233865206
9 0.308073350797809
10 0.3500833531793284
11 0.308073350797809
12 0.205382233865206
13 0.09535603715170278
14 0.023839009287925695

As we see, _log_pmf function in terms betaln doesn't solve problem

So the issue is not an easy-fix, thanks for checking @evgenyzhurko! A rewrite of the _logpmf in terms of betaln would still be a nice cleanup, so please submit it as a PR if you've done it anyway.

I rewrote https://github.com/scipy/scipy/blob/master/scipy/stats/_discrete_distns.py#L321 in terms betaln
For this example with code in terms gammaln:
    from scipy.stats import hypergeom

    rv1 = hypergeom( 10000, 1000, 215 )
    rv2 = hypergeom( 10000, 1200, 215 )
    rv3 = hypergeom( 10000, 2000, 215 )
    rv4 = hypergeom( 10000, 3000, 215 )

    z1 = rv1.cdf( 107 )
    z2 = rv2.cdf( 107 )
    z3 = rv3.cdf( 107 )
    z4 = rv4.cdf( 107 )

    print("z1=%.14f" % z1)
    print("z2=%.14f" % z2)
    print("z3=%.14f" % z3)
    print("z4=%.14f" % z4)

I have output:
    z1=0.99999999998262
    z2=0.99999999999750
    z3=0.99999999998063
    z4=0.99999999970559

_log_pmf function in terms betaln:
    def _logpmf(self, k, M, n, N):
        tot, good = M, n
        bad = tot - good
        return betaln(good+1, 1) + betaln(bad+1,1) + betaln(tot-N+1, N+1)\
            - betaln(k+1, good-k+1) - betaln(N-k+1,bad-N+k+1)\
            - betaln(tot+1, 1)

And new output with new _log_pmf for previous example:
    z1=0.99999999998341
    z2=0.99999999999583
    z3=0.99999999998275
    z4=0.99999999970387

As we see, _log_pmf function in terms betaln doesn't solve problem

I haven't seen the code but I'm pretty sure the problem is that cdf should be calculated as 1-sf when sf is small and sf as 1-cdf when cdf is small. Basically, if the code uses summation techniques, it should start with the largest pmf value to be included (or omitted via 1-) and sum towards the tail. Actually, I see this has been suggested earlier as the cause of the problem.
Also, it makes little or no difference whether the code uses betaln or gammaln to evaluate the pmf. Both betaln and gammaln will return large values when given large arguments. These large values are added and subtracted and what is important is the absolute error in the total. When that total is exponentiated to obtain the pmf, the absolute error in the value being exponentiated becomes the relative error of the exponentiated value. exp(correct value + ae) is approximately correct answer * (1+ae). With the numbers in the example, the use of log factorial functions causes a loss of between 5 and 6 figures of accuracy.
I have attached code for the Beta Binomial and Beta Negative Binomial in my response to issue 7102. This code also evaluates the hypergeometric and negative hypergeometric pmf, cdf and sf functions. Although my knowledge of python is somewhat primitive, it may give someone ideas on how to deal with the loss of precision issues with the hypergeometric distribution functions.

We [see] that from 1000 to 1200 it goes up (as expected), but then decreases.

As @Don86 suspected, I don't think we would expect the cdf - that is, the probability of selecting up to (and including) 107 Type 1 objects - to increase as n, the number of Type 1 objects, increases.
Perhaps it's easier to think of the CDF at k=0 instead of k=107. This is the same as the PMF at k=0. Certainly, we would expect the probability of picking only/exactly 0 Type 1 objects to decrease as the number of Type 1 objects increases. Similarly with all numbers of successes up to including 107. So the CDF should decrease.
Another way of looking at it: as n increases, the distribution shifts toward the right (higher numbers of successes), so the CDF at a fixed value of k will tend to decrease.
Anyway, we used Boost for this distribution now, and here's a plot of CDF(107, 10000, n, 215) as a function of n.

The output of the code at the top is:
z1=1.00000000000000
z2=1.00000000000000
z3=1.00000000000000
z4=0.99999999972268

So no more weird back and forth with these values, and in fact, it's monotonic with integer n for the range I tested (2000 to 9000), so this is resolved.


Debug-log for gssntlmssp cannot be collected for process with nonempty permitted capability set

We use gssntlmssp from SMB server (NTLM authentication) and we need to enable logging feature for gssntlmssp.
Logging is already supported here in some basic way via GSSNTLMSSP_DEBUG environment variable.
However in the code 'secure_getenv' function is used to fetch it:
void gssntlm_debug_init(void)
{
...
    env = secure_getenv("GSSNTLMSSP_DEBUG");

From 'man secure_getenv':
The  GNU-specific secure_getenv() function is just like getenv() except that it returns NULL in cases where "secure execution" is required.
...
*  the process has a nonempty permitted capability set

Alas, in SMB server we need to listen SMB port 445 (lower port < 1024) so cap_net_bind_service is specially set for this.
Bottom line - our process can't enable logging in any way because secure_getenv always returns NULL. We need some optional way to enable logging.

The debug log can reveal security relevant information, and we do not want to accidentally do that in a setuid binary or similar, which is why secure_getenv() is used.
I am open to ideas on how to handle this. Would your case be satisfied by providing a public callable symbol to turn on debugging ?
You would have to use dlsym() to make sure the symbol is currently available in the process to avoid a potential crash if the plugin is not actually loaded, but other than that it would give direct control to the calling binary w/o depending on an environment variable.

Alternatively I think we could provide a facility via a gss_set_sec_context_option() call ?

Uhm the problem with gss_set_sec_context_option() is that it requires a context object, so it would come too late ..

A gss_set_cred_option() call could be used too ... not ideal but at least can be set before a ISC/ASC operation is performed by acquiring the credentials before hand ...

I'm afraid that using dlopen/dlsym for direct access to gssntlmssp library .so breaks the whole concept of GSSAPI.
What we actually do in our code is linking with '-lgssapi_krb5' library (MIT Kerberos GSSAPI library) and we use GSSAPI provided by it. Our binary doesn't do anything to load gssntlmssp, this is done internally by MIT library (i.e. gssntlmssp acts like a plugin of public GSSAPI to provide NTLM auth additionally to Kerberos). Moreover, the path to gssntlmssp.so is written in /etc/gss/mech.d/ntlmssp.conf (not hardcoded) and we don't want to duplicate the logic of GSSAPI to read and parse this file during our initialization.
We want to have more convenient public API for this; using dlsym looks like a hack...

The option with calling gss_set_cred_option() looks much better from API point of view.
I would refactored/split gssntlm_debug_init code to accept  new path of log-file (NULL if should be disabled) and would make it re-enetable (current code never closes debug_fd and does not free associated resources). In case if debug_fd is already opened then gss_set_cred_option should make a transaction to open a new file and update debug_fd atomically (it's a pointer, we can rely on CPU atomic updates of machine-word  variable) and then free old resources if needed.

Ok, I need to carefully think about this. Esp in terms of how it will work once (one day) we finally get gss_create_sec_context() and will be finally able to set context options.
My intention with proposing context/cred options was to then tied debug logs to only calls that use those creds, and if a context is created from the creds then "inherit" the debug setting on the context.
Ie my intention is not to abuse a gss_set_cred_option() to set a global variable or even a per-thread variable.
Do these considerations change in any way your opinion on the viability of using gss_set_cred_option() ?

For our specific use-case we call gss_acquire_cred to fetch SMB server credentials and after that we use it for gss_accept_sec_context every time we need authentication via GSS. We call gss_acquire_cred during initialization of SMB server (usually done only once on the very start) so calling gss_set_cred_option doesn't change our main flow (not needed for each individual authentication).
Having that, binding debugging log to the context of gss_cred_id_t is Ok for us. We don't care too much about other GSS calls outside of server credentials.
But from other side, if the problem happens in GSS layer BEFORE successful call of gss_accept_sec_context/gss_set_cred_option, we will be not able to see anything in logs (because they are not enabled yet); so the feature of 'global variable' introduced by gssntlm_debug_init is still useful in general case.

Well, we don't need to support old and new versions of gssntlmssp with the same code.
So exporting new function via gssntlmssp.h is a good option for us (and we don't need to parse ntlmssp.conf and call dlopen/dlsym).
As for specific API - we just would like to keep this way simple enough - as before. Writing much new code for such a trivial feature (that already present in other non-suid applications) is not something I can easily explain to my manager when planning efforts for tasks :-)


Update to FIT SDK v20.35

This required a few tweaks to generate_profile.py.
 This is caused by the presence of more "group_name" in the message list, which affect the key in the comparator for the sorted() function.
This is annoying as it makes it hard to really diff. Let me know if you have other thoughts on this.

@dtcooper Anyone got time to look at this one?

@liamjm I've just had a look but it's pretty much impossible to do a thorough full review of a +/- 5000 change diff.
Some questions:

I noticed is that all the units fields are now all unicode strings. Was this done on purpose? Does it affect anything in the parsing/data processing?
Did all the tests pass using the final profile.py?

A few stray thoughts on making diffs easier going forward:

Most of the elements that are output by the generate_profile.py script sort by name. However, MessageInfo, MessageList both sort their fields dictionary attributes by id (after group name). Would changing this to sort by name instead result in more manageable diffs (ie. would the numbers ever change while referring to the same data)?
Removing the MessageList group name sorting from the generated profile.py would probably make future diffs much simpler. This would have an impact on human readability but does a file full of autogenerated struct definitions really need to be human-readable?

@dtcooper thoughts?

I trust your judgement, @pR0Ps. But I would like to see this file programatically generated, or if things need to happen by hand, then a clear documented process to generate the profile.

Hey,
This change was generated by the generate_profile.py, which required a few tweaks to parse the latest SDK version. But yes, it is crazy big and unreasonable to expect manual review.
A few more thoughts going forward:

let's add running of the tests to the project to protect against regressions.
I'll try to get v20.33  of the SDK (the source of the current version) and re-generate profile.py to ensure that no changes are being introduces by my environment.
IMHO sorting should be done to reduce differences. We just need to work out the most stable property to sort on. To the best of my recall, many of the changes were caused by the change in group name, but I can dig into this more.

What about to split profile.py file to more files: profile_types.py and profile_messages.py (or just the old profile.py to keep backward compatibility.) Then, it would be a bit simpler to track commit changes.


Add Youless Energy Meter

Fixes #8929
Ref #8919

power
energy

/cc @matrover

@premultiply that was quick! thanks, will test with next release.

@premultiply works! thanks


⚠ Bofrost.be has degraded performance

In 3c6d4db, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1166 ms

Resolved: Bofrost.be performance has improved in 6fa321e after 23 minutes.


Creating bot service through CLI fails

Describe the bug
When creating the bot through the CLI per the instructions listed here: https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-tools-az-cli?view=azure-bot-service-3.0 the CLI prompts me to login again using the device code, upon completion of logging in, I receive the following message: "Unable to provision appid and password for supplied credentials". This was also tried locally and from the cloud shell
To Reproduce
Steps to reproduce the behavior:

execute: az bot create --resource-group "sandbox" --name "uniquedeploykris" --kind "webapp" --description "description-of-my-bot" --debug

Expected behavior
Would not expect the CLI to have me authenticate again, and for the Bot to be created without an error.
Screenshots
CLI Output (removed start up CLI module logs):
Getting management service client client_type=AzureBotService
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - Authority:Performing instance discovery: ...
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - Authority:Performing static instance discovery
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - Authority:Authority validated via static instance discovery
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - CodeRequest:Getting user code info.
urllib3.connectionpool : Starting new HTTPS connection (1): login.windows.net:443
urllib3.connectionpool : https://login.windows.net:443 "POST /72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/devicecode?api-version=1.0 HTTP/1.1" 200 455
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - OAuth2Client:Get Device Code Server returned this correlation_id: 7cf50588-629b-426d-8d13-ca131fe0caa6
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AWFC6MF9C to authenticate.
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - Authority:Instance discovery/validation has either already been completed or is turned off: ...
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - TokenRequest:Getting a token via device code
urllib3.connectionpool : Starting new HTTPS connection (1): login.windows.net:443
urllib3.connectionpool : https://login.windows.net:443 "POST /72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/token HTTP/1.1" 400 404
urllib3.connectionpool : Starting new HTTPS connection (1): login.windows.net:443
urllib3.connectionpool : https://login.windows.net:443 "POST /72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/token HTTP/1.1" 400 404
urllib3.connectionpool : Starting new HTTPS connection (1): login.windows.net:443
urllib3.connectionpool : https://login.windows.net:443 "POST /72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/token HTTP/1.1" 200 3747
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - OAuth2Client:Get token with device code Server returned this correlation_id: 7cf50588-629b-426d-8d13-ca131fe0caa6
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - TokenRequest:Storing retrieved token into cache
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - CacheDriver:Adding entry AccessTokenId: b'***************REDACTED***************', RefreshTokenId: b'*****************REDACTED***************'
adal-python : 7cf50588-629b-426d-8d13-ca131fe0caa6 - CacheDriver:Added entry is MRRT
urllib3.connectionpool : Starting new HTTPS connection (1): dev.botframework.com:443
urllib3.connectionpool : https://dev.botframework.com:443 "POST /api/botApp/provisionConvergedApp?name=uniquedeploykris HTTP/1.1" 500 101
Unable to provision appid and password for supplied credentials

Desktop (please complete the following information):

Windows 10
Firefox
CLI Version 2.0.41

Additional context
N/A

Sorry, looks like this is a duplicate of https://github.com/Microsoft/botbuilder-tools/issues/183

Closing as dupe of #183


Fix running with --web

Fixes #25

Can this go out with the next 1.6.0 beta?

Yes as long as it gets a green build :)

@paulb777 merged but the option is broken since the url generated is not parsed by cocoapods.org and therefore you see no search results.
But in terms of this project the crash is fixed.

Maybe the --web option should be removed in favor of only supporting terminal output?


modify: OnEnable OnDisable methods to be protected

In this way, we can inherit NaughtyInspector and still be able to receive the editor callbacks for OnEnable and OnDisable methods.
Currently, if we inherit NaughtyInspector in a class with OnEnable and OnDisable methods, we prevent Unity from calling the base class OnEnable/Disable methods, so it throws erros on the console panel because the inspector's variables have not been initialized.
The only solution is to avoid declaring OnEnable/Disable methods, which are very useful.
If the methods become protected, we will be able to call base.OnEnable() and base.OnDisable() at the start of our own methods to make it work.

I have the same on my fork.
Just out of curiosity, why not virtual methods?

you are right,
indeed, I have just realised that OnEnable and OnDisable methods are not being called in the child class even if I hide the base class methods with the new keyword, so this PR is not even working
however, I have also tried marking them as virtual methods, but if you override them in the child class they are not called either
so thanks for pointing it out!

@Maximetinu are you sure? I'm having no problems with them as protected virtual. Just need to remember to call base.On[Enable|Disable] and it's all good.


disable firewall

I want to avoid this playbook touching any iptable rules, is there a way to disable roles/maas_firewall/tasks/setup_firewall_rules.yaml completely?
Background:
It took me somewhat of an hour to figure out why local traffic works, but no ping or curl command came through from outside the node. I think it is not ok to completely lock down the node this way.
In my case, after MAAS I run kubespray to deploy a cluster, using a http server running on the MAAS server to host static binaries for the deployment.

Hey @blackliner
You should be able to extend the firewall variable files to add additional ports (ie: https://github.com/maas/maas-ansible-playbook/blob/main/group_vars/maas_region_controller/60-firewall), which is an approach I would definitely recommend!
You did mention a specific use case however, so I'm wondering if #141 address your issue? that should allow per-host disabling of the firewall setup. For security sake that should definitely be an option secondary to the above.

Closing this issue due to #141 landing. Feel free to re-open this if it doesn't address the issue!


Add port param support for npx sandbox

Currently npx sandbox seems to only support port 3333
If something else is running on it you get:
Error .arc sandbox cannot start

The address http://localhost:3333 is already in use.

Would be awesome to suggest other port or offer param.

Fixed in 3.2.16, thanks @kmelve!


Return percentage information in Alexa Smart Home response

Description:
Fix Alexa saying "I don't know what went wrong" when setting cover position.
Something to note: This doesn't return the requested percentage, but in fact the current percentage at the time of the request. This doesn't seem to be an issue for Alexa however, as the service accepts the response fine.
Example entry for configuration.yaml (if applicable):
homeassistant:

frontend:

alexa:
  smart_home:

cover:
  - platform: demo

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[x] Tests have been added to verify that the new code works.

Both cover and fan support percentage controller, please consider support both.

I assume you mean in my test coverage? It seems that the fan capabilities already contains a percentage controller.

No, I mean when you return the percentage, you are assuming the entity is a cover. You should return current position if entity is a cover, return current speed if entity is a fan.

Oops! I've fixed that now, good catch :+1:

Ready to merge after build pass


UI5 hides the succeeding div's when placing controls across multiple divs.

Say there are two  under the  and a sap.m.Button is placed under each of the div. But the framework hides whatever is placed in the second div. Is the framework designed this way ?
var oBtn1 = new sap.m.Button({text:"Hello"});
var oBtn2 = new sap.m.Button({text:"World"});
oBtn1.placeAt("content1");
oBtn2.placeAt("content2"); //rendered but hidden

http://jsbin.com/hosiba/edit?html,js,output

It took me indeed a while to understand what's going wrong:
Your JSBin uses two nested
 elements, although it doesn't look like that:

HTML5 doesn't generally support the self-closing
 syntax that XML supports (see http://www.w3.org/TR/html5/syntax.html#start-tags for a more precise definition where they are supported and where not). Browsers just interpret the
as the opening tag and automatically add the missing closing tag.
When you comment out the two placeAt() calls in your JSBin and inspect the resulting raw DOM, then.you'll notice that the
 is nested into the
. In such a case, it is normal behaviour for UI5 to preserve the "content2" (means: move to sap-ui-preserve). The framework would restore it as soon as an HTML control or XMLView with ID "content2" would be placed somewhere.
If you modify your HTML so that it properly defines two
s in parallel, then the two buttons are rendered as expected:

See http://jsbin.com/yaqazasovi/1/edit?html,output
HTH + Kind Regards, Frank

My Bad ! Thanks for the explanation.


Don't pass engine_version if engine_mode is serverless

Description
Ensures engine_version is set to null if engine_mode is set to serverless
Motivation and Context
Fixes https://github.com/terraform-aws-modules/terraform-aws-rds-aurora/issues/160
Breaking Changes
No breaking changes
How Has This Been Tested?
Tested by passing engine_version=null externally via parameter when calling a module.

thanks for the PR @AutomationD - could you update your changes with master when you get a chance, and then update the serverless example to reflect your changes here. specifically, remove lines

https://github.com/terraform-aws-modules/terraform-aws-rds-aurora/blob/bbf8c4acbd294d9af73c02494763145099c70360/examples/serverless/main.tf#L43
https://github.com/terraform-aws-modules/terraform-aws-rds-aurora/blob/bbf8c4acbd294d9af73c02494763145099c70360/examples/serverless/main.tf#L96


Prometheus query runner

Works with Swarm and K8S, if PROMETHEUS_URL env var is not specified it will lookup the swarm DNS, if that doesn't work it will use the K8S address prometheus.openfaas.

@stefanprodan this function needs a rebase for merging.

Having a clear-up on GitHub issues / PRs over 1 month old. Let's revisit as necessary. Thank you for the PR.


Add a transparent textured background to the Preview component

Display a transparent textured background in the Preview component when the user reduces the color opacity instead of showing a blank space.

This background causes a overlap of the transparancy grid when the preview has a border radius bigger than zero

The color picker uses images in its slider and panels, as well as the Preview component. However, for some reason that I don't fully understand, rough edges can appear and disappear depending on the device and rendering engine being used. Additionally, using a dark background can make these edges more visible.


Infinite loop

>>> import threading2
>>> threading2.current_thread().priority = 1
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "threading2/t2_base.py", line 378, in _set_priority
    self.priority = priority
...
  File "threading2/t2_base.py", line 378, in _set_priority
    self.priority = priority
  File "threading2/t2_base.py", line 378, in _set_priority
    self.priority = priority
  File "threading2/t2_base.py", line 378, in _set_priority
    self.priority = priority
  File "threading2/t2_base.py", line 377, in _set_priority
    if self.is_alive():
  File "/usr/lib/python2.6/threading.py", line 679, in isAlive
    return self.__started.is_set() and not self.__stopped
RuntimeError: maximum recursion depth exceeded

Thanks for reaching out. Unfortunately I am no longer actively maintaining this project, so I'm going to move it into archive mode:
https://rfk.id.au/blog/entry/archiving-open-source-projects/


API session reference

I currently have this data in my sample timeld.org timehseet:
{"@id":"victor/api-integration","@type":"Timesheet"}
{"@id":"wDvUoLR9heTXa9ff7rE4SW/1","activity":"timeld local setup and connection","duration":30,"session":{"@id":"wDvUoLR9heTXa9ff7rE4SW"},"start":{"@value":"2022-07-27T13:04:36.424Z","@type":"http://www.w3.org/2001/XMLSchema#dateTime"},"@type":"Entry","vf:provider":{"@id":"http://timeld.org/victor"}}
{"@id":"wDvUoLR9heTXa9ff7rE4SW/2","activity":"api review","duration":0.2,"session":{"@id":"wDvUoLR9heTXa9ff7rE4SW"},"start":{"@value":"2022-07-27T13:05:19.404Z","@type":"http://www.w3.org/2001/XMLSchema#dateTime"},"@type":"Entry","vf:provider":{"@id":"http://timeld.org/victor"}}

API docs suggest that session key of the timesheet entry should point to the Timesheet record. Here, I think it points to my local timeld device I used timeld cli on to create these entries. First row suggest ID of the timesheet record as "victor/api-integration" while the actual entry session ID is wDvUoLR9heTXa9ff7rE4SW. What should I use when importing?
Note that I think both Prejournal and Tiki doesn't use the concept of Timesheet records as individual entities. Is it possible to keep the timesheet record for one user as one entity and use that for all entries?

What should I use when importing?

Sorry, this needs to be clearer in the docs.
The "session" you see in the report is a generated internal identifier. We should probably hide that.
When importing, the "session" key in the JSON should be the timesheet identity (in your case, yes, victor/api-integration).
If you report on the imported data, you will see that the session has been switched to a new generated key.

Note that I think both Prejournal and Tiki doesn't use the concept of Timesheet records as individual entities. Is it possible to keep the timesheet record for one user as one entity and use that for all entries?

You can certainly do that, yes. However, it seems strange that there would be only one timesheet for everything the user ever does. Maybe you mean "keep the timesheet record [in a project] for one user as one entity"? In that case, maybe concatenate the project name and the user name to make a timesheet name, e.g. fedb-george.

Thanks George. That definitely works!

I'll leave the ticket open to deal with this part:

Sorry, this needs to be clearer in the docs.
The "session" you see in the report is a generated internal identifier. We should probably hide that.


Custom classNames should be appended

I am starting to try this package to use mdc. I notice that when adding a className to an element like <Fab className="my-class">favorite</Fab>
The rendered markup is class="my-class mdc-fab mdc-ripple-upgraded".
I would expect it to be class="mdc-fab mdc-ripple-upgraded my-class ".
This subtle difference helps overriding easily some css rules inherit from mdc (without needing to use !important)
Other packages like react-md works in the same way: custom classes are appended to the framework ones.
Maybe I am missing some scenario regarding why is better to prepend the custom classes. I am happy to listen to them.

rmwc 1.3.0
material-components-web 0.31.0

duplicate of #124.
Ordering of classes in the DOM does not matter for CSS specificity. The simply need to make a more specific selector than the ones included with MDC.


Release version 1 (or 0.1) of the online book

This was the goal for the first release: https://github.com/moorepants/learn-multibody-dynamics/milestone/1
We could probably drop a few of those things.

Done: https://github.com/moorepants/learn-multibody-dynamics/releases/tag/v0.1


Will not patch versions of log4j2 older than 2.10

Hi,
The property you are using to disable lookups does not exist for versions older than 2.10:
https://issues.apache.org/jira/browse/LOG4J2-2109
You should look for other alternatives like clearing the strLookupMap map (or at least, remove the jndi entry):
https://github.com/apache/logging-log4j2/blob/master/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java#L56
This map has had other names, in 2.0 it was there, but named lookups:
https://github.com/apache/logging-log4j2/blob/log4j-2.0/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java#L39

Maybe a way to detect version of log4j and do whatever it needs depending on version.
2.10 and up --> disablelookups
other --> kill jndi in lookups

@alvdavi  i was just about to write about strLookupMap myself (and using lookups when strLookupMap doesn't exist)
LoggerContext ctx = (LoggerContext)LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
StrSubstitutor strs = config.getStrSubstitutor();
Interpolator i = (Interpolator)strs.getVariableResolver();
i.getStrLookupMap().remove("jndi");

Pushed a fix that uses the above trick (as a fallback).
Passed all my tests from >= 2.0 to 2.14.1.
Let me know if you have any issues.


"Problem Reaching this app" error (similar to closed issue #4249)

Published version 5.3.1.
I'm using the app via Teams online. We were able to use the app a week ago, and now receiving the following page:
CC error 11323
Cleared browser history and no change.
Restarted services in azure and no change.

Hi @tgainey ,
Thank you for raising the query.  Please respond to the below queries.

What is the error displayed when trying to access author app? Please share a screenshot of it.

Could you please point to this issue CC error 1132 you are pointing to with a link or supporting screenshot

Please share the repository URL and branch. Here is the reference

Hi @tgainey ,
Our support scope is very limited with the standard version as the area of code modification is not known to us for customized versions. We will not be able to provide much assistance on this issue as the deployed instance is a customized version. Please let us know if you have any issues with the standard version.
Official repository:- https://github.com/OfficeDev/microsoft-teams-apps-company-communicator


add user check for account merging

Purpose
Ultimate fix for https://trello.com/c/iuQqlj9Z/88-making-email-primary-while-logged-in-as-another-user-sends-confirmation-email-to-an-already-confirmed-user.

@sloria rdy for review


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-main" workflow

Codecov Report

Merging #605 (e1e8fc9) into main (02dced5) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #605   +/-   ##
=======================================
  Coverage   95.69%   95.69%
=======================================
  Files           1        1
  Lines         395      395
  Branches       53       53
=======================================
  Hits          378      378
  Misses         17       17

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


User manual updates

I Just created this issue to keep track of everyone's suggestions to improve the user manual as requested by @amraladdin
@daren-thomas @gabriel-happle @BhargavaKrishnaSreepathi @shanshanhsieh @shizhongming please check the guide and add your comments and  recommendations in here.

Hey amr: here are my comments about the user manual

In the 'Get Started' page, we are not providing any details about DBF reader, so should it be mentioned? It is in the first paragraph of the page
At the bottom of the same page, there is a section about 'Main Steps'. I did not understand the necessity of it on this page. Is there any reason?
Sorry for being so picky, in the page 'creating multiple scenarios', under the section of 'modifying building properties', in the third line, it should be 'changed' instead of 'changes'
'Visualise' is more of british english, i think it should be 'Visualizing'. This happens multiple times on the page 'Visualising Results'

@amraladdin It is a great starting point and i see it is well structured and easy to read. I mention some points that could be covered and add the questions that each topic should answer to the reader.

Guide to modify geometry: how do i create a new scenario and modify, the height, location and 2D vertices of buildings directly in ArcGIS?. How do I add a some new buildings either using ArcGIS or Autocad?
while presenting the process of running a quick simulation it would be great to know: Where and what are the rdata being created?.
Benchmarking graphs of the 2000-watt society: This part is just missing. @martin-mosteiro worked in it.

Other than that i see it works perfectly with teh current version of CEA.

Update from @JIMENOFONSECA
PR 531 introduces a new structure of databases:

basically the thermal_properties.shp is erased. most of the values contained in this shapefile now will exist in the architecture.shp for the sake of simplicity. @martin-mosteiro please consider this for the HQ case study. If you upload it to the private repository we will make this change for you inmediately.

in connection to this, the database envelope_systems.xls will now handle the thermal properties of the Archetypes_properties.xls/THERMAL. With this update, the type of windows, walls and roof are strongly related to a certain U value / Gvalue and etc. This will allow to create new construction material in CEA in agreement with different building certification approaches.

It makes all the files in the building-properties folder a type .dbf instead of .shp.  If the case studies have .shp this is not a problem, so no need to change previous case studies. .dbf make better the managment of data and avoids changes in geometry of one file to be reflected in any other shapefile. @amraladdin means that everytime you wanna map a value from the building-properties folder it is necessary to do a join to the zone.shp file to visualize it. Please take into account this in the documentatio

@BhargavaKrishnaSreepathi Regarding your first comment... The DBF reader, could you provide the information necessary there? I'm not familiar with the DBF reader.
Regarding point no. 2... you're right, I should add this part to the quick simulation introduction. It basically shows the main steps users need to go through in order to create a successful simulation.
Points 3 and 4 are done... Please feel free to be as picky as possible. The aim here is to provide a professional manual for the CEA users, so no worries... Shoot :)

@amraladdin meant to tag you @JIMENOFONSECA i guess :)

:D maybe I meant to tag both of you Bharga, cause I was referring to the first point in your comment :) but you're right, Jimeno also mentioned it in his 3rd point in the update I added yesterday :)
So, if any of you guys can add this to the manual, it would be great! Otherwise, I would need more time to learn more about it and implement it!

SUMMARY FOR TOMORROW
@BhargavaKrishnaSreepathi 's points 2, 3 and 4 are fixed. However, for point no.1, I will need someone to create the DBF reader part, this also applies to Jimeno's update comment on the building properties.
@JIMENOFONSECA 's point 3 is finished, @martin-mosteiro will help me with point no. 1 and I will get on point no. 2 after the meeting.

@JIMENOFONSECA @BhargavaKrishnaSreepathi @daren-thomas @martin-mosteiro @gabriel-happle @shanshanhsieh @shizhongming Which of you will help me with the DBF reader steps in the Users' Manual?


Feature request: inference meta-analysis graph data

TypeScript Version:  2.5.3
I'm having an awful time trying to figure out why the complex interplay between various generic types and higher-order generic functions is producing certain inference failures, errors and mismatches to what I'm expecting. Beyond a certain level of complexity, trying to follow the trail to determine why TypeScript doesn't like a particular combination of things, or why it's inferring one type over another, becomes really, really frustrating, and I find myself spending more time fighting the type system than actually writing code.
Is there any way you could implement something that produces some kind of lazy directed graph data that can be explored to determine why TypeScript is making the inferences it is, and where expected inferences are failing? Something like this would not only be a huge help for developers, but would probably cut down on a lot of your support requests too, because people could simply look at the graph and pinpoint exactly where they're going wrong.
I imagine you'd just produce and update the data as code is modified, and tools and extensions in editors would do the job of visualising it and making it explorable while coding.

You could just add type declarations to avoid inference? You could take them away once you'd solved the problem if you prefer inference.

You could just add type declarations to avoid inference? You could take them away once you'd solved...

Your solution is fine for simple cases. Note that I said:

complex interplay between various generic types and higher-order generic functions

Is there a particular case where you're unable to narrow an error down by providing more type annotations?

The request is rather vague. can you provide more context of the issue you are looking into?

I'm not really interested in solving one specific issue. I'm dealing with complex composition scenarios between higher-order, sometimes-curried functions, with various combinations of typing features such as keyof, multiple generics that extend other types and which depend on sibling generics, and which return other functions with generiucs that depend on their higher-order counterparts, then passing those things to other functions with similar constraints, and it reaches a level of complexity that is very difficult to solve manually.
The request is about the fact that I'll see that TypeScript is making an unexpected inference somewhere, and it can be really, really difficult to figure out why that inference is being made.
The request boils down to this:
How could the TypeScript compiler expose better information to help developers figure out how TypeScript decided to infer a given type at a given point in the code?  Even when a message follows, sometimes it is such a complex description of the types involved, that deciphering the message is half the battle, and even then, developers still arrive at the question of why a given inference was made. If we could see that types A through G were involved in the inference chain behind the currently-observed problem, and that at each step of the way there was a clear indication of what the inference logic was at that point, it'd make it a lot easier to solve our own problems without having to go online to ask for help - something that is often not even feasible given that problems of that sort of complexity are usually rather nuanced, and difficult to reproduce without including large amounts of source code.

@axefrog What do you think we should print in this situation?
const a = [0];
const b = a.map(x => x + "1"); // Dev thinks this is a number[] (accidental quotes)
const c = b.map(x => x + 2); // Dev thinks this is a number[]
const d = c.map(Math.abs); // Huh, error? Where'd it go wrong?

In this case the type of d is wrong because the type of c is wrong because the type of b is wrong. It don't think we'd want to print all of that out, so we just give you the error at Math.abs and assume that the inferred type of c is correct.

In the original question, I wrote:

I imagine you'd just produce and update the data as code is modified, and tools and extensions in editors would do the job of visualising it and making it explorable while coding.

You wouldn't display that yourself. You'd make the data available so that extensions and other tools could provide different ways of examining the data.

... It don't think we'd want to print all of that out, so we just give you the error ...

The first step is ALWAYS getting the data right. Make the data available, then let the community decide what to do with it.

It would be useful to have an API method that gives you the type arguments that were inferred at a callsite, which would help with no-inferred-empty-object-type. T

It would be useful to have an API method that gives you the type arguments that were inferred at a callsite, which would help with no-inferred-empty-object-type.

If that API allowed you to drill back through the type hierarchy to establish a model of "how did we get to this point", that would be incredibly useful! :-)

A simple log call inserted at the top of checkExpression would give you the raw data you could reprocess into a graph. As is, we don't store the data that you would need to get the type dependency graph

As is, we don't store the data that you would need to get the type dependency graph

What are the downsides of gathering that data to allow for better tooling?

The request is about the fact that I'll see that TypeScript is making an unexpected inference somewhere, and it can be really, really difficult to figure out why that inference is being made.

can you share an example so that we are not talking about the abstract? i understand you are interested in a general solution, but it is hard to understand what you are talking about without an example.

How could the TypeScript compiler expose better information to help developers figure out how TypeScript decided to infer a given type at a given point in the code? I

That is what quick info/hover is for in your IDE.

@mhegazy I feel like I've covered these things already...

I'm dealing with complex composition scenarios between higher-order, sometimes-curried functions, with various combinations of typing features such as keyof, multiple generics that extend other types and which depend on sibling generics, and which return other functions with generics that depend on their higher-order counterparts, then passing those things to other functions with similar constraints, and it reaches a level of complexity that is very difficult to solve manually.

to go online to ask for help - something that is often not even feasible given that problems of that sort of complexity are usually rather nuanced, and difficult to reproduce without including large amounts of source code.

So... sure, I can give you an example, but how much of the codebase do you want me to reproduce? If I boil it down to a minimal example, you'll only see a simple example that appears to be easy to solve. If I paste a large amount of code, it'll be unreasonable to expect you to figure out what it's supposed to be doing.

That is what quick info/hover is for in your IDE.

"quick info/hover" is pretty much the opposite of what I'm suggesting.
Quoting myself:

Is there any way you could implement something that produces some kind of lazy directed graph data that can be explored to determine why TypeScript is making the inferences it is, and where expected inferences are failing?

If we could see that types A through G were involved in the inference chain behind the currently-observed problem, and that at each step of the way there was a clear indication of what the inference logic was at that point, it'd make it a lot easier to solve our own problems without having to go online to ask for help

The first step is ALWAYS getting the data right. Make the data available, then let the community decide what to do with it.

Anyway, it was never my intention to come across as antagonistic, I just feel like everyone who sits in no-man's land between trying to bend the type system to its limits (given that variadic types, higher-kinded types, etc. don't seem to be getting any development traction, or at least are on the backburner pending further compiler groundwork), is kind of at a loss for adequate introspection data to figure out typing issues when complex composition scenarios are in play.
This request is basically useless to people doing simple, run-of-the-mill OO stuff. TypeScript is reasonably easy to wield in those cases, and your error messaging, hints and so forth cover those cases just fine. What is lacking is useful introspection data for anyone doing stuff with more of a functional approach. In those cases, there are deep composition hierarchies in play, and trying to figure out what's being inferred, and where, can be downright painful.

I don't know how useful this is, but here's the current version of a get function I'm using. It's one place where I was experiencing a lot of pain.
import { DataRef, MaybeStream, Metadata, Producer, Resource, isResource } from '@@salix:core';
import { Stream, map, now, startMemoized, switchMap } from '@@salix:streams';
import { isObject, isUndefined } from '@frptools/core';

export type Getter<K extends keyof TMeta, TMeta extends Metadata> = Producer<TMeta[K], GetterMetadata<K, TMeta>>;

export interface GetterMetadata<K extends keyof TMeta, TMeta extends Metadata> extends Metadata<TMeta[K]> {
  '@type': 'sx:Resource/MetadataGetter';
  key: K;
  source: DataRef<TMeta>;
}

const jsonldContext = {
  source: 'sx:Resource/MetadataGetter/source',
  key: 'sx:Resource/MetadataGetter/key',
};

export function get<K extends keyof TMeta, TMeta extends Metadata> (key: K, source: DataRef<TMeta>, context: Resource): Getter<K, TMeta> {
  return context.create<GetterMetadata<K, TMeta>, TMeta[K]>(getter => ({
    '@context': jsonldContext,
    '@type': 'sx:Resource/MetadataGetter',
    'sx:value': startMemoized(emitValue, getter),
    key,
    source,
  }));
}

function emitValue<K extends keyof TMeta, TMeta extends Metadata> (getter: Getter<K, TMeta>): MaybeStream<TMeta[K]> {
  return switchMap<GetterMetadata<K, TMeta>, TMeta[K] | undefined>(emitProperty, getter.snapshot$);
}

function emitProperty<K extends keyof TMeta, TMeta extends Metadata<any, any>> (snapshot: GetterMetadata<K, TMeta>) {
  const { key, source } = snapshot;
  const stream: Stream<TMeta[K] | undefined> = isUndefined(source) ? now(void 0)
    : isResource(source) ? map(maybeProp<K, TMeta>(key), source.snapshot$)
    : isObject(source) ? now(source[key])
    : notImplemented('DataRef -> string (URI only)');
  return stream;
}

function maybeProp<T extends { [key: number]: T[typeof key] }> (key: number): (value: T | undefined) => T[typeof key] | undefined;
function maybeProp<K extends keyof T, T extends { [P in keyof T]: T[P] }> (key: K): (value: T | undefined) => T[K] | undefined;
function maybeProp (key: string | number) {
  return (value: any) => isUndefined(value) ? void 0 : value[key];
}

What are the downsides of gathering that data to allow for better tooling?

Many of the objects we're creating here are short-lived. Keeping all the data around would be a large increase in memory pressure and would decrease performance, as well as decrease the maximum amount of code we can analyze in a 32-bit process at once (which is already a primary concern).
That's not to say we can't do it, it's just to say, we would need to understand the reasons for doing so and make sure that "providing the data" is the right way to accomplish that task.

If I boil it down to a minimal example, you'll only see a simple example that appears to be easy to solve. If I paste a large amount of code, it'll be unreasonable to expect you to figure out what it's supposed to be doing.

Please don't assume bad faith or an unwillingness to engage. There's no need to self-sabotage the discussion. We work with small examples here all the time and we fully understand what it means for a small example to be representative of a larger codebase.

The answer is, simply, data. The more data you expose to tool developers, the more the community can solve its own problems.

There are dozens of kinds of data being generated during the typechecking process and an infinite number of ways we could expose that data. Without specifying a concrete task (literally here is an input and here is the output I would like to see or here is a kind of thing I would like to derive from that data), we don't even know which kind of data you're looking for.
As an absurd example, you can already attach a debugger to the nodejs tsc process and take a heap dump, and now you "have the data", but I don't think that's what you're looking for. Certainly you want something more useful that is structured in a way that makes analysis easier than trawling through bytes in a binary dump. We need to understand what "useful" would mean.

Please don't assume bad faith or an unwillingness to engage.

I apologise, that wasn't my intent. Having just come off a half day of fighting the TypeScript compiler, I wanted to somehow convey a desire for something that could improve this experience for both myself and for others. Several responses prior to yours appeared to be asking me to know what specific problem I was trying to solve, and it felt like those responses missed my point, but I may of course have misinterpreted them.
There are two cases I'm talking about:

I'm trying to assign one thing to another, where the generics in both have at least semi-complex sets of constraints and hierarchies. The error message says that I can't make the assignment, but offers no explanation. This is a common experience for me.

I'm performing a transformation somewhere (same level of complexity as above), and the compiler is telling me that something is being inferred as one thing when I'm expecting another thing. Because the generics involved include a combination of different libraries, functions, interfaces and modules in general, tracking down the point in the inference chain where a divergence from what I expected occurred, proves to be really difficult. This is also a common occurrence for me.

This cropped up as I was discussing this with a friend whose workplace is currently porting their codebase over to TypeScript, and he'd been expressing a lot of the frustration I've experienced, and his workplace's codebase also uses a lot of higher-order functions, constrained generics, composition and so forth. We were both noting how much time we sometimes spend trying to deal with the type system instead of iterating on the actual implementation.

Automatically closing this issue for housekeeping purposes. The issue labels indicate that it is unactionable at the moment or has already been addressed.


Add sorting by sale price on collection & profile

Would be good to have sorted by price on top of

[x] profile
[x] collection

That could also include having a filter to show only for sale NFTs, collectors unnecessary doesn't need to see ones which is not for sale.
Use switch [ ] - "Buy Now"

Seems gallery getting upgrade soon 👀

@roiLeo What about having this one? 😇

closed in #890 & #875


NSSecureCoding Implementation

What:
This patch puts Mixpanel in conformance with NSSecureCoding and should stop warnings (and possibly some crashes) about non-compliance.
Why:
Warnings were getting concerning and possible security matters are important to address. Also, there appears to possibly be a crasher with iOS 15.1 when not using secure coding. This last part is still speculative and I am investigating.
How:
This implementation, I believe, conforms to the "letter of the law" of NSSecureCoding, and makes progress on the "spirit" of the law. The change adds conformance to NSSecureCoding by adding "+ (BOOL)supportsSecureCoding", use of "-decodeObjectOfClass:forKey:", and changing the protocol from NSCoding to NSSecureCoding.
I'm implementing this to reduce warnings about lack of NSSecureCoding and to investigate a possible fix to a NSCoding crash I'm seeing on iOS 15.1 beta.
Possible issues

I applied this to master and only later realized I was unsure about the branching strategy and the use of 4.0.0.beta. It's possible I messed up in such a way this needs to be redone. Presumably anyone reading this at mixpanel understands the branching situation better than I.
Someone who understands the implementation better should probably clamp down more on MPTweakValue given that it seems that may just be intended to store a basic type.
This change is, as of this moment, untested other than compilation. I'm going to push out a TestFlight build of my app that uses it to try it out shortly.

okay I am now a bit thrown as I don't see these classes at all in 4.0.0.beta. Perhaps this PR is un-needed?

yes @davidhodge , the pr is not needed but thanks so much for your contribution!


WIP: Remove unused endpoints & associated tests

Do not merge yet - testing the excision of currently unused endpoints from the server and the associated tests.  Will have to do likewise in client.  May or may not want to further remove orphaned code.

Codecov Report

Merging #2 into master will decrease coverage by 9.59%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master       #2     +/-   ##
=========================================
- Coverage   83.68%   74.09%   -9.6%
=========================================
  Files          31       31
  Lines        7694     7625     -69
  Branches      939      938      -1
=========================================
- Hits         6439     5650    -789
- Misses       1063     1817    +754
+ Partials      192      158     -34

Impacted Files
Coverage Δ

ga4gh/server/frontend.py
87.97% <ø> (-2.24%)
:arrow_down:

ga4gh/server/datamodel/genotype_phenotype.py
24.33% <0%> (-55%)
:arrow_down:

ga4gh/server/datamodel/sequence_annotations.py
43.47% <0%> (-52.18%)
:arrow_down:

ga4gh/server/datamodel/continuous.py
28.78% <0%> (-42.93%)
:arrow_down:

.../server/datamodel/genotype_phenotype_featureset.py
62.08% <0%> (-36.82%)
:arrow_down:

ga4gh/server/paging.py
52.56% <0%> (-36.37%)
:arrow_down:

ga4gh/server/backend.py
64.12% <0%> (-22.14%)
:arrow_down:

ga4gh/server/datamodel/datasets.py
88.03% <0%> (-6.18%)
:arrow_down:

ga4gh/server/datamodel/variants.py
84.53% <0%> (-6.03%)
:arrow_down:

ga4gh/server/datarepo.py
80.54% <0%> (-3.98%)
:arrow_down:

... and 3 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #2 into master will decrease coverage by 9.61%.
The diff coverage is 40%.

@@            Coverage Diff             @@
##           master       #2      +/-   ##
==========================================
- Coverage   83.68%   74.07%   -9.62%
==========================================
  Files          31       31
  Lines        7694     7630      -64
  Branches      939      938       -1
==========================================
- Hits         6439     5652     -787
- Misses       1063     1820     +757
+ Partials      192      158      -34

Impacted Files
Coverage Δ

ga4gh/server/backend.py
63.94% <33.33%> (-22.32%)
:arrow_down:

ga4gh/server/frontend.py
87.78% <50%> (-2.44%)
:arrow_down:

ga4gh/server/datamodel/genotype_phenotype.py
24.33% <0%> (-55%)
:arrow_down:

ga4gh/server/datamodel/sequence_annotations.py
43.47% <0%> (-52.18%)
:arrow_down:

ga4gh/server/datamodel/continuous.py
28.78% <0%> (-42.93%)
:arrow_down:

.../server/datamodel/genotype_phenotype_featureset.py
62.08% <0%> (-36.82%)
:arrow_down:

ga4gh/server/paging.py
52.56% <0%> (-36.37%)
:arrow_down:

ga4gh/server/datamodel/datasets.py
88.03% <0%> (-6.18%)
:arrow_down:

ga4gh/server/datamodel/variants.py
84.53% <0%> (-6.03%)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #2 into master will decrease coverage by 9.05%.
The diff coverage is 40%.

@@            Coverage Diff             @@
##           master       #2      +/-   ##
==========================================
- Coverage   83.83%   74.77%   -9.06%
==========================================
  Files          33       33
  Lines        7938     7874      -64
  Branches      957      956       -1
==========================================
- Hits         6655     5888     -767
- Misses       1084     1819     +735
+ Partials      199      167      -32

Impacted Files
Coverage Δ

ga4gh/server/backend.py
64.62% <33.33%> (-21.23%)
:arrow_down:

ga4gh/server/frontend.py
88.27% <50%> (-2.32%)
:arrow_down:

ga4gh/server/datamodel/genotype_phenotype.py
24.33% <0%> (-55%)
:arrow_down:

ga4gh/server/datamodel/sequence_annotations.py
43.47% <0%> (-52.18%)
:arrow_down:

ga4gh/server/datamodel/continuous.py
28.78% <0%> (-42.93%)
:arrow_down:

.../server/datamodel/genotype_phenotype_featureset.py
62.08% <0%> (-36.82%)
:arrow_down:

ga4gh/server/paging.py
61.79% <0%> (-26.97%)
:arrow_down:

ga4gh/server/datamodel/datasets.py
88.03% <0%> (-6.18%)
:arrow_down:

ga4gh/server/datamodel/variants.py
84.53% <0%> (-6.03%)
:arrow_down:

... and 4 more

Continue to review full report at Codecov.

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


[BUG] the menu buttons dont work

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

What problem did you encounter?
the menu buttons dont work, i am using v1 menu and i need to force the roblox process to close
Bloxstrap Log
No response

Try setting FFlagFixReportButtonCutOff to false.


Show/render empty component?

On search function if search array is empty it show a blank view.
Can we show/render an empty component if no data is available.

Any progress on this?

@AdelRedaa97 Any progress on this?

I just added empty row child props and deployed it as a customzized library. You could use it if you want it :)
Here is  the link https://www.npmjs.com/package/react-native-select-dropdown-customized

Please update the main package and close this issue.

Please update the main package and close this issue.

sure! thank you for reply :)

Fixed in v4.0 take a look at the changes made in v4.0
https://github.com/AdelRedaa97/react-native-select-dropdown?tab=readme-ov-file#-major-changes
Feel free to open the issue again if it still exists

hi, not seeing anything related to the mentioned issue, please assist @AdelRedaa97

@AdelRedaa97 please reopen this issue


Caption to images

Dear all,
thanks for the work.
I am looking for a recipe to add and display caption information to images. I'll try for starters to add exif information.
Best regards
Sebastian

Hi, and thanks for the feedback
Did you try add a caption and it didn't work? From the readme:

Every item also may have data-caption attribute or, if you use

 markdown, you can have
 in it.

Cheers for the prompt answer. I would like to embedd info in the image (for example EXIF title tag) and read that to display as caption.
Am 20. Februar 2024 08:33:16 MEZ schrieb Karmalakas @.***>:

Hi, and thanks for the feedback
Did you try add a caption and it didn't work? From the readme:

Every item also may have data-caption attribute or, if you use

 markdown, you can have
 in it.

--
Reply to this email directly or view it on GitHub:
https://github.com/Karmalakas/grav-plugin-photoswipe/issues/15#issuecomment-1953628536
You are receiving this because you authored the thread.
Message ID: @.***>

Maybe I'm misunderstanding something, but I don't think I would add EXIF data reading to this plugin. I believe there are some other plugins for that purpose. Maybe that could be used to extract the data and save it on Grav as a caption for your images and then use that to add a caption to Photoswipe plugin 🤔


Add DistFileSystem interface

We should have simple interface for distributed file system, that can cover at least two implementations for now: hdfs, and s3.  We should also be able to access the local file system through the same interface.

We've added the following:

Local
HDFS
Azure


modal add hiden func

need modal component add hidden function, it'll be important for useState

You can control it through the component's props (open), this is a simple example, useState is already supported, it just depends on how you use:
const [state, setState] = useState(false)

useEffect(() => {
  api.post(something)
   .then(() => setState(false))
}, [])

<Modal open={state} onClose={closeHandler} />


fix: sentry import

Fixes https://github.com/pascaliske/ngx-sentry/issues/18

Hello @siiick,
Thanks for your PR! 🙂
The imports from /esm were intentionally at first to reduce the library size but I think it would be better to move sentry to the peerDependencies instead. This would allow every consumer to choose between @sentry/browser and @sentry/browser/esm.
Therefore could you please change all imports of sentry in this library to @sentry/browser to be consistent. Afterwards I can merge this. 🙂

Hello @pascaliske,
I agree @sentry/browser should be a peer dependecy.
All sentry imports are now consistent :)

Merged - Will do a release in the near future. 🙂


Clang arm64 build errors

I was trying to compile in Windows 11 arm64 using https://github.com/mstorsjo/llvm-mingw. In Windows x64 build works, but arm64 build fails.
xmake f -p mingw -c --mingw=C:\prog\llvm-mingw-20220209-ucrt-aarch64 -a arm64
Also, arm64 in Linux with Clang had similar errors, GCC builds worked.
src/sqlite3patched.c:15677:22: warning: redefinition of typedef 'PgHdr' is a C11 feature [-Wtypedef-redefinition]
typedef struct PgHdr PgHdr;
                     ^
src/sqlite3patched.c:10384:22: note: previous definition is here
typedef struct PgHdr PgHdr;
                     ^
In file included from src\sqlite3mc.c:146:
In file included from src/rijndael.c:85:
src/aes_hardware.c:502:14: warning: implicit declaration of function 'vaeseq_u8' is invalid in C99 [-Wimplicit-function-declaration]
        v8 = vaeseq_u8(v8, vdupq_n_u8(0));
             ^
src/aes_hardware.c:502:12: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
        v8 = vaeseq_u8(v8, vdupq_n_u8(0));
           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/aes_hardware.c:565:26: warning: implicit declaration of function 'vaesimcq_u8' is invalid in C99 [-Wimplicit-function-declaration]
        keySchedule[j] = vaesimcq_u8(tempKeySchedule[j]);

... lots of other vaeseq_u8 related erros

I was trying to compile in Windows 11 arm64 using https://github.com/mstorsjo/llvm-mingw. In Windows x64 build works, but arm64 build fails.

Unfortunately, I don't have currently access to any ARM64 system, neither macOS nor Windows.

xmake f -p mingw -c --mingw=C:\prog\llvm-mingw-20220209-ucrt-aarch64 -a arm64

MinGW is based on gcc, and therefore it will most likely need some compile flags to compile the AES hardware support code.

Also, arm64 in Linux with Clang had similar errors, GCC builds worked.

Most likely clang also needs a special compile flag.

src/sqlite3patched.c:15677:22: warning: redefinition of typedef 'PgHdr' is a C11 feature [-Wtypedef-redefinition]
typedef struct PgHdr PgHdr;
                     ^
src/sqlite3patched.c:10384:22: note: previous definition is here
typedef struct PgHdr PgHdr;
                     ^

As already mentioned in issue #66 I will address to eliminate this warning for the next release.

In file included from src\sqlite3mc.c:146:
In file included from src/rijndael.c:85:
src/aes_hardware.c:502:14: warning: implicit declaration of function 'vaeseq_u8' is invalid in C99 [-Wimplicit-function-declaration]
        v8 = vaeseq_u8(v8, vdupq_n_u8(0));
             ^
src/aes_hardware.c:502:12: error: assigning to 'uint8x16_t' (vector of 16 'uint8_t' values) from incompatible type 'int'
        v8 = vaeseq_u8(v8, vdupq_n_u8(0));
           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/aes_hardware.c:565:26: warning: implicit declaration of function 'vaesimcq_u8' is invalid in C99 [-Wimplicit-function-declaration]
        keySchedule[j] = vaesimcq_u8(tempKeySchedule[j]);

... lots of other vaeseq_u8 related erros

When an ARM platform has been detected, the header file arm_neon.h (or arm64_neon.h) will be included (line 414 / 412 in aes_hardware.c). This header file should declare the functions for which the warnings of implicit declaration are issued. Please check which header file is actually included and whether it contains declarations for the functions in question or not.

If I add define USE_ARM64_NEON_H and copy header file then there are no errors in the compilation.
Problems come with linking: ld.lld: error: undefined symbol: neon_st1m_q8 and others starting with neon. I tried to find info about needed library, but I could not find it. Maybe Clang does not support neon 64 yet.

Clang has arm_neon.h, but without arm64_neon.h it created those errors.
I found this repo, maybe it has some info to help: https://github.com/DLTcollab/sse2neon.

I had to re-create my Linux virtual machine. I added GCC first and then Clang and now I can compile also with Clang. Linux is not a problem, GCC works in Linux with arm64.
The problem has been Windows 11 and arm64 (Apple M1 in Parallels). If I add USE_ARM64_NEON_H define and arm64_neon.h to Clang include folder then there are no compile errors. But I get linker errors:
error: ld.lld: error: undefined symbol: neon_st1m_q8
>>> referenced by build\.objs\sqlite3mc\mingw\aarch64\release\src\sqlite3mc.c.obj:(aesGenKeyEncrypt)
>>> referenced by build\.objs\sqlite3mc\mingw\aarch64\release\src\sqlite3mc.c.obj:(aesGenKeyDecrypt)
>>> referenced by build\.objs\sqlite3mc\mingw\aarch64\release\src\sqlite3mc.c.obj:(aesEncryptCBC)
>>> referenced 7 more times

ld.lld: error: undefined symbol: neon_aesimc
>>> referenced by build\.objs\sqlite3mc\mingw\aarch64\release\src\sqlite3mc.c.obj:(aesGenKeyDecrypt)
>>> referenced by build\.objs\sqlite3mc\mingw\aarch64\release\src\sqlite3mc.c.obj:(aesDecryptCBC)
>>> referenced by build\.objs\sqlite3mc\mingw\aarch64\release\src\sqlite3mc.c.obj:(aesDecryptCBC)
>>> referenced 1 more times
...

This is not a big problem now because Windows 11 can run x64 programs.

I had to re-create my Linux virtual machine. I added GCC first and then Clang and now I can compile also with Clang. Linux is not a problem, GCC works in Linux with arm64.

In the meantime I added CI jobs for ARM architectures and verified that the builds work under Ubuntu-20.04. Additionally, I modified the source code in commit 9c5eddc60065d9bd560d52253ce2455c84d11662, so that the reported warning should now be eliminated.

The problem has been Windows 11 and arm64 (Apple M1 in Parallels). If I add USE_ARM64_NEON_H define and arm64_neon.h to Clang include folder then there are no compile errors.

Since I don't have access to a system with such a combination, I can't help to resolve this issue. As said before clang typically uses arm_neon.h. Only Microsoft renamed that include file to arm64_neon.h for Visual C++ and ARM64.

But I get linker errors:

That should not happen. AFAIK the compiler transforms the neon intrinsics into machine instructions not requiring additional link libraries.

This is not a big problem now because Windows 11 can run x64 programs.

At least that is a workaround.


Is vue-carousel production ready one?

@HugoPelletier @coljung @VinceG @YAAK @yannbr Hi Guys, I have a question. This repository looks promising with number of downloads and star ratings, good options and so want to use it. Is this production ready? I saw readme that its on alpha-state. Can you please clarify its stability?

@lakshmananmurugesan we use it in production. The only issue we have which is not a bug but a feature missing is the the ability to drag the carousel back and forth like you would on a mobile device but on desktop.
Other than that we had no issues since we launched.

Hey @lakshmananmurugesan, while the repo is still in alpha (there is lots of development happening) we're approaching a v1 release, in which we will remove the alpha disclaimer from the readme.
In the meantime, lots of people (including myself) use the carousel in production. The disclaimer is mostly there just to let developers know the API spec will usually change frequently (mostly just additions).

@VinceG @quinnlangille Thanks for the quick turn up and clarifications. This helps me!

@quinnlangille Concerning production ready: Is there a rough roadmap which features will be included next? I'm asking since I got the request to find a Vue based slider that is flexible enough to realize stuff like these:
https://www.marc-cain.com/Inspiration/Specials/Look-of-the-Month/
https://www.marc-cain.com/Inspiration/Herbst-Winter-2018/Kampagne/Marc-Cain-Collections/

Hey @its-rj, we have a tag for issues on our roadmap -> https://github.com/SSENSE/vue-carousel/issues?q=is%3Aopen+is%3Aissue+label%3Aroadmap
They're what we're currently prioritizing, but they're also pretty large. So ETA is difficult to evaluate

Thanks, @quinnlangille. Sorry that I haven't noticed it.

Does the carousel support youtube video link?

@pushpitab right now it will support a basic URL to a video in the source. Once we have an answer for #172 it will support basically anything, in case you want to add a custom video component or something like that

Since the initial questions been answered and we haven't had any chat in a while, going to close this. Feel free to open another issue if anyone has any questions :octocat:


Fix/verify bls signature

fix #315

Hey @jleni @rllola any news on this?

Also, I noticed here https://github.com/Zondax/filecoin-signing-tools/blob/master/examples/wasm_node/package.json#L24 dependency is "@zondax/filecoin-signer" while it kind of should be "@zondax/filecoin-signing-tools".

Yeah indeed it should be "@zondax/filecoin-signing-tools". I can do that modification in another PR.
I have fixed the failing test for this PR. It still failing because testnet is not up it seems.

When release, guys? :P


shape

We need to know what shape our matrix is for example if the data is
[
    [1,2,3],
    [4,5,6],
]

will have a shape of (2,3)
but this can get more complicated like if data is
[
    [
        [1,2,3],
        [4,5,6],
    ],
    [
        [1,2,3],
        [4,5,6],
    ]
]

this will have a shape of (2,2,3)
function should refer the data variable in class find the shape and return it no external inputs and output type is Tuple

Hi i was wondering if the tuple will ever need to be of size greater than 3 or if 3 is as large as it will need to be?


GoControl GC-TBZ48 not working

With the home assistant update to Zwave JS, my GoControl GC-TBZ48 had lost connectivity. I thought maybe it was batteries, so I replaced them. Then I was able to exclude and re-add it and it worked.
Today, it lost connection again. I had to factory reset the thermostat and added it again. Now it will not interview properly.

Please choose an appropriate issue template (e.g. bug report) and fill it out completely when opening an issue. That helps us investigate your issue quicker because all the necessary information is there.


Can't use relative URL to spec.yaml file

I'm trying to use a relative URL to the spec.yaml file, which fails because it's interpreted as a file path:
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/sphinx/cmdline.py", line 304, in main
    app.build(args.force_all, filenames)
  File "/usr/lib/python3.6/site-packages/sphinx/application.py", line 331, in build
    self.builder.build_update()
  File "/usr/lib/python3.6/site-packages/sphinx/builders/__init__.py", line 338, in build_update
    'out of date' % len(to_build))
  File "/usr/lib/python3.6/site-packages/sphinx/builders/__init__.py", line 402, in build
    self.finish()
  File "/usr/lib/python3.6/site-packages/sphinx/builders/html.py", line 621, in finish
    self.finish_tasks.add_task(self.gen_additional_pages)
  File "/usr/lib/python3.6/site-packages/sphinx/util/parallel.py", line 50, in add_task
    res = task_func()
  File "/usr/lib/python3.6/site-packages/sphinx/builders/html.py", line 648, in gen_additional_pages
    for pagename, context, template in pagelist:
  File "/usr/lib/python3.6/site-packages/sphinxcontrib/redoc.py", line 47, in render
    os.path.join(specpath, specname))
  File "/usr/lib/python3.6/site-packages/sphinx/util/osutil.py", line 165, in copyfile
    if not path.exists(dest) or not filecmp.cmp(source, dest):
  File "/usr/lib/python3.6/filecmp.py", line 51, in cmp
    s1 = _sig(os.stat(f1))
FileNotFoundError: [Errno 2] No such file or directory: '/api/rest/spec.yaml'

I need to use a relative path because the generated docs will be deployed on multiple hosts, and I don't want to bind the spec to a specific host. As a workaround I'm using the full URL in the config, then edit the generated html file manually before deployment.

@sn4kebite sorry for the late reply, I've been busy lately. :(
I'm not quite sure I understand your use case correctly. Could you please elaborate? For what purpose exactly you want to use relative HTTP URL? I mean, if you specify a path on filesystem, the spec would be copied to output directory and relative URL would be used automatically.

I am building a docker image containing both API and documentation. The spec.yaml file is not available when the documentation is being built, as it is generated by the API on demand.
From what I understand this is when you want to use an HTTP URL to the spec, however I don't know the URL in advance. The spec can however be found relative to the docs, so using a relative URL in this case solves this problem.
Using the HTTP URL without hostname is a neat trick (I didn't know you could do that), but I'm concerned how well supported it is (no results on google that I could find), and it only works with either http or https.

Using the HTTP URL without hostname is a neat trick (I didn't know you could do that), but I'm concerned how well supported it is (no results on google that I could find),

Well, honestly, I don't know; this is behaviour I observe in Python when you do urljoin.

and it only works with either http or https.

A doubt Redoc.js support any other protocol except for HTTP(s). It's a limitation of JS machines in browsers.
Still I do understand your use case now. I'm thinking about fallbacking to HTTP relative URI if the corresponding file wasn't found. I.e.

You would still have something like
 'spec': '/api/rest/spec.yaml',

The extension will try to find a file of filesystem first.

If found, it will be copied over to output directory.

If not found, the extension would pass /api/rest/spec.yaml "As Is" to Redoc.js.


Debian base image

Previously the base image was nixos/nix. This is based on the minimal alpine image. When using nixpacks to build and deploy some real world apps (specifically prisma), there were some issues because alpine is based on musl libc instead of glibc and prisma was failing to find binaries. Alpine linux is great, but it does come with some quirks and it is not uncommon to require some manual user intervention to get binaries installed and running properly. Debian based images are much more common and supported.With the zero-config nature of Nixpacks I think it makes sense to move to debian based images.
This PR changes the base image to be debian:buster-slim (Debian 11) and installs Nix manually. The final image size (for a yarn app) is increase by ~20%.
I will follow up with another PR that focuses on decreasing the final image size and separating build and runtime images.

I'm fine either way FWIW, I'm just wondering where we draw the line


chore: add mit license

:tada: This PR is included in version 1.1.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Conversion between a Config and a ConfigFile

This PR implements the TryFrom for a client::Config so that it can be parsed back into a ConfigFile.
This feature is useful when pulling images from a registry, so that the metadata recieved can be viewed.

I've rebased against the main branch and addressed some conflicts

merged, sorry for the delay


Replace permissions string with enums

close #4968
Pull Request Checklist

[x] Privileged views and APIs are guarded by proper permission checks.
[x] All visible strings are translated with proper context.
[x] All data-formatting is locale-aware (dates, numbers, and so on).
[x] Database queries are optimized and the number of queries is constant.
[x] Database migration files are up to date.
[x] The changes are tested.
[x] GraphQL schema and type definitions are up to date.
[x] Changes are mentioned in the changelog.

Here is the report for 9a2f12c86cd52ff6cb10131b4dc6001937ecffdd (kswiatek92/saleor @ use-enums-for-permissions-codes)
Base comparison is f92c2a0aefc54ff09059aebe48441ef35ec0f750.
**Found 1 differences!** (click me)

# api.benchmark checkout
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
+ add billing address to checkout            	         34	         30	             16
  add shipping to checkout                   	          7	          7	              0
  checkout payment charge                    	         10	         10	              0
  complete checkout                          	          8	          8	              0
  create checkout                            	         50	         50	             24

# api.benchmark homepage
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  retrieve main menu                         	          5	          5	              0
  retrieve product list                      	          4	          4	              0
  retrieve secondary menu                    	          5	          5	              0
  retrieve shop                              	          2	          2	              0

# api.benchmark product
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  product details                            	         15	         15	              3
  retrieve product attributes                	          9	          9	              0

# api.benchmark variant
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  product variant bulk create                	         51	         51	              3
  retrieve variant list                      	         15	         15	              6

# api product sorting attributes
  test name                                  	left count 	right count	duplicate count
  -------------------------------------------	-----------	-----------	---------------
  sort product not having attribute data     	         21	         21	              0


Does not function

Please provide us with the following information:

This issue is for a: (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [x] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

follow the steps given

Any log messages given by the failure

Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.

options.allowedHosts[0] should be a non-empty string.

Expected/desired behavior

That it works

OS and Version?

Windows 11

Versions

Mention any other details that might be useful
Deleting the proxy line in package.json or modifying it to
"options": {
    "allowedHosts": ["localhost", ".localhost"],
    "proxy": "http://localhost:3001"
  }

opens the webpage but returns the error
FATAL_ERROR: <!DOCTYPE html>   <meta charset="utf-8"> <title>Error</title>
Cannot GET /api/get-speech-token

or modifying the env file instead to include
DANGEROUSLY_DISABLE_HOST_CHECK=true

Opens the webpage but instead returns
FATAL_ERROR: Proxy error: Could not proxy request /api/get-speech-token from localhost:3000 to http://localhost:3001/ (ECONNREFUSED).

Thanks! We'll be in touch soon.

It doesn't work for me as well.

You need to enable CORS for this project to work add these lines in index.js of server to  make it work:
Install cors dependency: npm i cors
const cors = require('cors')
const app = express();
app.use(cors())