softmax_cross_entropy handles -inf logits incorrectly

softmax_cross_entropy handles a -inf logit incorrectly when the corresponding label is 0. For example:
import optax
from jax import nn, numpy as jnp
from jax.scipy.special import xlogy

def softmax_cross_entropy_alt_0(logits, labels):
    return -(xlogy(labels, nn.softmax(logits, -1))).sum(-1)

def softmax_cross_entropy_alt_1(logits, labels):
    return -(labels * nn.log_softmax(logits, -1)).sum(-1, where=labels != 0)

def softmax_cross_entropy_alt_2(logits, labels):
    x = labels * nn.log_softmax(logits, -1)
    return -jnp.where(labels == 0, 0, x).sum(-1)

logits = jnp.array([-jnp.inf, 0])
labels = jnp.array([0, 1])
print(optax.softmax_cross_entropy(logits, labels))  # nan
print(optax.softmax_cross_entropy(logits.clip(-1e10), labels))  # -0.0
print(softmax_cross_entropy_alt_0(logits, labels))  # -0.0
print(softmax_cross_entropy_alt_1(logits, labels))  # -0.0
print(softmax_cross_entropy_alt_2(logits, labels))  # -0.0

In principle, it should be doing what softmax_cross_entropy_alt_0 does, which uses xlogy, which treats x * log(y) as 0 when x == 0.
Two possible solutions are given by softmax_cross_entropy_alt_1 and softmax_cross_entropy_alt_2 above.
I can submit a PR for either.
(For context, I encountered this issue when doing action masking of logits in an RL setting.)

Hello @carlosgmartin,
Great catch! If you are up for doing a PR that would be great.
Why wouldn't you use the function xlogy, that is softmax_cross_entropy_alt_0? This seems to me to be the safest option.

@vroulet I was guessing there was some reason why optax chose log_softmax over log (or now xlogy) of softmax. Perhaps log_softmax is supposed to have better numerical properties/stability? If there's no advantage, softmax_cross_entropy_alt_0 would be fine.

If my math is correct, symbolically,
softmax_cross_entropy(x, p) == (x * p).sum(-1) - logsumexp(x, -1)

which, with "hard zeroing" according to the label probabilities p, becomes
jnp.where(p == 0, 0, x * p).sum(-1) - logsumexp(x, -1)

Great point for the fact that we want to treat the logsumexp with a specific implementation and never pass by an actual softmax.
Quick question though:

if we just permute the labels we would get an error which is rather strange in a classification setting where this loss is usually used. I'm afraid this would create unexpected behaviors depending on the choice of labels.
from your comment above, I'm wondering whether you rather want to look at some form of kl divergence?

In other words, I agree with you that y log x = 0 for x=0, y=0 if both x and y are real numbers (the convention stems from looking at the limit towards 0 for both x and y). But here y is a categorical variable that is handily mapped to a set of integers. It seems to me that what you really want is to encode the support of a reference probability distribution against which you compute a kl divergence. You'll see that the code for the kl_divergence handles exactly what you want (in terms of y log x). On the other hand it may not handle properly the softmax, so one may create a loss for such a case.

@vroulet Not sure I understood you correctly. Can you explain what you mean by "permute the labels" with a concrete example? If a logit is -inf but the corresponding label is not 0, the correct cross entropy in that case should be +inf, if my understanding is correct. Example:
import optax
from jax import nn, numpy as jnp
from jax.scipy.special import logsumexp, xlogy

def softmax_cross_entropy_alt_0(logits, labels):
    return -(xlogy(labels, nn.softmax(logits, -1))).sum(-1)

def softmax_cross_entropy_alt_1(logits, labels):
    return -(labels * nn.log_softmax(logits, -1)).sum(-1, where=labels != 0)

def softmax_cross_entropy_alt_2(logits, labels):
    x = labels * nn.log_softmax(logits, -1)
    return -jnp.where(labels == 0, 0, x).sum(-1)

def softmax_cross_entropy_alt_3(x, p):
    return logsumexp(x, -1) - jnp.where(p == 0, 0, x * p).sum(-1)

logits = jnp.array([-jnp.inf, 0, 1])
labels = jnp.array([0.2, 0.4, 0.4])
print(optax.softmax_cross_entropy(logits, labels))  # inf
print(optax.softmax_cross_entropy(logits.clip(-1e10), labels))  #<PHONE_NUMBER>.0
print(softmax_cross_entropy_alt_0(logits, labels))  # inf
print(softmax_cross_entropy_alt_1(logits, labels))  # inf
print(softmax_cross_entropy_alt_2(logits, labels))  # inf
print(softmax_cross_entropy_alt_3(logits, labels))  # inf

So I think all implementations handle this case correctly.
Please correct me if I misunderstood your point.

Absolutely but that creates strange behaviors such as (for logits=[-inf, 2])

cats are labelled 0 and dogs are labelled 1 -> no bug
cats are labelled 1 and dogs are labelled 0 -> bug
You see that the choice of labels is completely arbitrary in this case. It's rather strange to get a but in a case and not in the other one while these labels were chosen arbitrarily.

Isn't your objective to properly handle the support of a target distribution as in the kl_divergence?

I wouldn't expect -inf logits to arise in practice (barring severe training pathologies, in which case all bets are off anyway) unless some explicit masking is being applied to the logits, like action masking in RL or, in your example, if the classifier knows ahead of time that the image is definitely not a dog, thanks to some external piece of information being passed to the classifier.
I don't think it's necessarily an issue (or avoidable) that there are situations where a value is finite but the gradient is infinite. (An example of this is jnp.sqrt(0.) == 0. but jax.grad(jnp.sqrt)(0.) == jnp.inf.)

Ok, you won me. If you can make a PR with softmax_cross_entropy_alt_1 it would be great. We'll see if some integration tests break then.

Did you mean alt_3?

@vroulet Done: #898

Solved in #898, with #916 ensuring correct gradients w.r.t. labels. Thanks again @carlosgmartin !

@vroulet Hi Vincent, I'm a little confused by https://github.com/google-deepmind/optax/commit/9f7446eba856108b98600ff070a2fda6048266af. Does this mean that the standard softmax_cross_entropy will not handle the -inf case correctly? Is there any reason to create two separate functions, one that works correctly and one that doesn't? To my understanding, that just seems to sow confusion. Thanks for the clarification.

Hello Carlos,
The first implementation #898 broke an internal test as the derivatives with respect to the labels were not properly handled, see #916. (We could also have raised an error if the user was trying to differentiate w.r.t. labels. But then this would probably need to be done through all losses that have a similar logic. I preferred to simply fix the function to let it handle properly derivatives.)
The fix #916 created a spark of instability in internal experiments. I haven't been able to identify why. I had to revert this to ensure not breaking everyone's experiments. I separated then your proposal from the original code to keep access to both.
Now, I can remove your proposal if you think this creates confusion.
To integrate your proposal, we need to get proper tests that could let us know whether such a change can break other people's code/experiments (I may have access to codebases that would enable to check such behaviors, but instabilities can happen late in training so this would not be a simple unit test). If you have leads on why the instabilities happened (it could be the custom jvp for example), we can work on that.

@vroulet
Thanks for letting me know. I think I might know what the problem is, and how to solve it.
My guess is that the gradient mismatch arises because the hard zeroing (one branch of the jnp.where) causes the gradient with respect to a zero label to be zero, which might not be the case (if the corresponding log_prob is nonzero).
Below is a script showing the issue as well as potential solutions that (I think) yield both correct values and gradients:
import jax
from jax import nn, numpy as jnp
from jax.test_util import check_grads

def softmax_cross_entropy_1(logits, labels, axis=-1, where=None):
    log_probs = nn.log_softmax(logits, axis=axis, where=where)
    return -(labels * log_probs).sum(axis=axis, where=where)

def softmax_cross_entropy_2(logits, labels, axis=-1, where=None):
    log_probs = nn.log_softmax(logits, axis=axis, where=where)
    x = jnp.where(labels == 0, 0, labels * log_probs)
    return -x.sum(axis=axis, where=where)

def softmax_cross_entropy_3(logits, labels, axis=-1, where=None):
    log_probs = nn.log_softmax(logits, axis=axis, where=where)
    force_zero = (labels == 0) & ~jnp.isfinite(log_probs)
    x = jnp.where(force_zero, 0, labels * log_probs)
    return -x.sum(axis=axis, where=where)

def softmax_cross_entropy_4(logits, labels, axis=-1, where=None):
    log_probs = nn.log_softmax(logits, axis=axis, where=where)
    x = labels * log_probs
    force_zero = (labels == 0) & ~jnp.isfinite(log_probs)
    x = jnp.where(force_zero, 0, x)
    return -x.sum(axis=axis, where=where)

def main():
    logits = jnp.zeros(4).at[0].set(-jnp.inf)
    labels = jnp.zeros(4).at[1].set(1)

    for f in [
        softmax_cross_entropy_1,
        softmax_cross_entropy_2,
        softmax_cross_entropy_3,
        softmax_cross_entropy_4,
    ]:
        print(f(logits, labels))

    logits = jnp.zeros(4)
    labels = jnp.zeros(4).at[0].set(1)

    for f in [
        softmax_cross_entropy_1,
        softmax_cross_entropy_2,
        softmax_cross_entropy_3,
        softmax_cross_entropy_4,
    ]:
        try:
            check_grads(f, (logits, labels), 1)
            print(f.__name__, "grad ok")
        except Exception as e:
            print(f.__name__, "grad not ok")
            print(e)

if __name__ == "__main__":
    main()

Output:
nan
1.0986123
1.0986123
1.0986123
softmax_cross_entropy_1 grad ok
softmax_cross_entropy_2 grad not ok

Not equal to tolerance rtol=0.002, atol=0.002
JVP tangent
Mismatched elements: 1 / 1 (100%)
Max absolute difference: 0.24685502
Max relative difference: 0.1283005
 x: array(2.170893, dtype=float32)
 y: array(1.924038, dtype=float32)
softmax_cross_entropy_3 grad ok
softmax_cross_entropy_4 grad ok

Yes, that's what https://github.com/google-deepmind/optax/pull/916 was about using a customjvp. (see the tests that were added too).
We can indeed simply target the corner case.
The main issue is the instability we get then in experiments and how to test that.

Relevant thread regarding the issues nans cause with autodiff: https://github.com/google/jax/issues/1052#issuecomment-514083352.
Could you give some more details about the instabilities you're referring to?

I don't have access to full logs of such instabilities.
The repo responsible for the alarm is the following one: https://github.com/google/aqt/blob/main/aqt/jax/v2/numerics/fp8_numerics_test.py.
These tests were failing half the time after https://github.com/google-deepmind/optax/commit/9f7446eba856108b98600ff070a2fda6048266af .

Thanks. To be clear, are you sure that this new version
def softmax_cross_entropy(logits, labels, axis=-1, where=None):
    log_probs = nn.log_softmax(logits, axis=axis, where=where)
    force_zero = (labels == 0) & jnp.isneginf(log_probs)
    x = jnp.where(force_zero, 0, labels * log_probs)
    return -x.sum(axis=axis, where=where)

causes issues? The forced-zero branch of where is now only taken when log_probs isn't finite, so it appears to me that, on finite inputs, it should always yield the same values and gradients as the current softmax_cross_entropy.


Laravel 5.1?

Can I use it with Laravel 5.1?

Hi @lsobral
Not yet, if I find some time tonight I can add support for laravel 5.*

Thanks a lot!

@lsobral you can now use V1.0.10 with Laravel 5.1 :)

Thanks for the quick solution.


[Perf] Memoize relative paths to speed up builds

AggressiveSplittingPlugin asks for relative paths for each (module,chunk) pair for every time it is run (which is a lot if it does multiple splits). On the example in the webpack stress test, just looking up relative paths was most of the time in the profile.
This PR adds a manual memoization to the relative path lookup. On the webpack stress test, this reduces the run time from ~60s to ~12s on my machine.
In Slack, there was discussion of two other solutions to this, which are not in this PR:

We could actually fix the logic in AggressiveSplittingPlugin. Right now, the plugin re-runs all of its logic every time it makes a split, so if it ends up making N splits, the time required actually grows O(n^2). This should still be done, but it was beyond my current understanding. This PR makes the coefficient on the O(n^2) drastically smaller and so is already a substantial improvement.

It was suggested to switch from a manual memoization to the lodash implementation. I have currently not done this because lodash is currently a dev dependency and adding it to this logic would force it to become a hard dependency. Also, the manual version performs a good deal better (12s v 30s on the stress test). I think this is because lodash needs to inspect arguments and run a function to transform them into a cache key, whereas my manual memoization takes advantage of knowing we have exactly two strings to avoid that. (I'm happy to switch to lodash if someone is ok with adding it as a dependency and accepting the slowdown.)

I've addressed the code review comments by splitting the non-memoized implementation into its own function and storing the cache on the compilation object so it can be GC'd.

I think the failing code coverage comparison check was because my branch wasn't up-to-date with master, so I've rebased to try to get it green.

I made a small change to the code, trying to reduce the number of calls to Map. I called get directly without checking for has.

Thanks


How to configure CACHE_VIRT_SIZE and CACHE_PHY_SIZE?

Hi, I'm really impressed with how solid your work is.
I have some questions about how to configure the CACHE_VIRT_SIZE and CACHE_PHY_SIZE  to fit my sever when running the code.
In particular, why do you divide $i by 8 and add 48 in run_ligra_cache_small.sh? Why the CACHE_VIRT_SIZE is set to 32 T?
    export CACHE_VIRT_SIZE=$(expr 32 \* 1024 \* 1024 \* 1024 \* 1024  )
    ......
    echo $(expr \( $i \/ 8 + 48 \) \* 1024 \* 1024 \* 1024) | sudo tee /sys/fs/cgroup/limit/memory.max
    export CACHE_PHY_SIZE=$(expr \( $i - $i \/ 8 - 48 \) \* 1024 \* 1024 \* 1024 )

Could you please guide me in finding answers for these questions? Thanks in advance.

Thanks for your response. I now can run the code on my server. I still have a question for setup_spdk.sh, which is used to set up DMA memory for SPDK. Is the physical memory used by the TriCache buffers fully contained in that DMA memory, which also means CACHE_PHY_SIZE needs to be no larger than the DMA memory size? If I want to utilize all the physical memory on my server for running the code, I should make the CACHE_PHY_SIZE (or DMA memory size) plus the size of the memory outside of TriCache equal to the total memory size of my server, right?

Yes, CACHE_PHY_SIZE should be smaller than the DMA memory size. Yes, that is correct.

2022年12月20日 17:01，dangzzz @.*** @.***>> 写道：
Thanks for your response. I now can run the code on my server. I still have a question for setup_spdk.sh, which is used to set up DMA memory for SPDK. Is the physical memory used by the TriCache buffers fully contained in that DMA memory, which also means CACHE_PHY_SIZE needs to be no larger than the DMA memory size? If I want to utilize all the physical memory on my server for running the code, I should make the CACHE_PHY_SIZE (or DMA memory size) plus the size of the memory outside of TriCache equal to the total memory size of my server, right?
—
Reply to this email directly, view it on GitHub https://github.com/thu-pacman/TriCache/issues/1#issuecomment-1359032247, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACMYG3UBTISC5K77D5ZH6DLWOFYXBANCNFSM6AAAAAATDV5ZTE.
You are receiving this because you commented.

Thank you very much!


Baseline: Treat Samsung Internet as a "major browser"

I was clicking around a little bit on caniuse, looking for outlier features that didn't get to 95% market share as fast as I might expect.
I noticed https://caniuse.com/beforeafterprint which is still at only 94.12% share, despite being supported in Chrome, Edge, Firefox, and Safari since 2019-09-19. So, what's the holdup? Samsung Internet doesn't support it yet.
Then I looked at CSS clamp() https://caniuse.com/css-math-functions which is still only at 93.88%, despite being supported in the big four browsers since 2020-04-08. (Safari was the last to support it.) Samsung Internet is, again, responsible for the holdup, because Samsung Internet shipped the feature two months later, in June 2020. (And, ah, Samsung users upgrade kinda slowly.)
Other caniuse features where Samsung Internet was the last browser to support it, and are not yet at 95% market share:

https://caniuse.com/css-revert-value
https://caniuse.com/css-image-orientation
https://caniuse.com/css-matches-pseudo
https://caniuse.com/css-not-sel-list
https://caniuse.com/css-cascade-layers

When I ask myself the question, "is it safe to use these features if major browsers support it, but Samsung Internet doesn't?" I think: Samsung Internet is a browser under active development, with a global market share rivaling Firefox.
If Firefox is on the the list, then, I claim, Samsung Internet should be on the list, too.

see : https://github.com/web-platform-dx/feature-set/issues/179

That's the data side of the argument and it's valid, the other side of the argument is about developer perception and behavior. When we ask developers which browsers they are waiting for before they start using a feature, Samsung Internet is usually not on that list. I can only speculate why that is, maybe people are not getting feedback about issues in Samsung Internet and therefore are less likely to consider it a blocker? Either way, any recommendation would need to consider developer expectations as well as the data.

@dfabulich have you tested the "beforeprint" event in Samsung Internet? https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeprint_event#browser_compatibility claims it is supported, so either caniuse or BCD is wrong here.
Have you found any other features which aren't available in Samsung Internet, and which seemingly aren't on their way either?

The Samsung Internet browser has not been included in the Core browser set for now. One consideration that makes it difficult to integrate Samsung Internet directly today is that the support data in BCD for Samsung Internet is more and more maintained through "mirroring", in other words derived automatically from support in Chrome.
The 30-month duration since the keystone date was partly selected to cater for the time needed by other browsers based on one of the core browsers to integrate the feature. In other words, a feature with Baseline High status should be supported in Samsung Internet too.
The list of browsers that ought to be part of the Core browser set will be reviewed annually. If developers feedback report issues with baseline high features on Samsung Internet, that would be a good signal that the definition needs to be amended.

I don't want to revive this ticket, but I do think it is important to point out that Edge has exactly the same aspect of having only mirrored data since it switched to blink as its engine. So that should not be seen as a barrier if future survey responses mention Samsung Internet more than they do today.

I agree with @romainmenke that the mirroring of some/most of the BCD data doesn't really tell us much. In fact, even if most of the BCD data is mirrored from Chrome to Edge, not all of it is. There are, and always will be, small differences.


Move keyboard down with drag

I'm trying to achive keyboard behaviour when it is going down when dragging down just like iMessage does. I checked example projects but I can't make it work - even so GIF on README shows it is possible.
Unfortunately, having keyboardDismissMode as .interactive makes keyboard move but toolbar with textView stays in the same position.
tableView?.keyboardDismissMode = .interactive
From the other hand, isKeyboardPanningEnabled is set to true but it dosen't do anything, because, from what I understand, it won't work above iOS 9. The problem is here, in SlackTextViewController.m, method - (void)slk_handlePanGestureRecognizer:(UIPanGestureRecognizer *)gesture, where we can't access keyboardView - the property is nil.
Is there any option to do it within SlackTextViewController?

+1


Refactor and modify OutOfBandReceiver

Refactoring
Modified behaviour - do not modify decorators on retrieved attached message - I don't know why this was being done in a first place (perhaps trying to be graceful toward misbehaving OOB sender message?)

We're currently processing your upload.  This comment will be updated when the results are available.


Parser Error

Hi,
i have a problem with the start of your code. I replace the web.config with yours and change the app directory. But if i start the homepage i got this error.

Can you help with this problem?

If you could translate the error message for me, that would help. However, from the wording of your question I am concerned that you might not have setup the site correctly. You need to download the v1.0-alpha-1 release and put everything in the DirectoryListing.zip file into your site directory.

Big big Thanks, with the v1.0-alpha-1 the new design works, but ich have a HTTP-Error 500 if i click on any folders..

The User-Accounts have acces to the folders, but it doesnt work

You are supposed to update the Web.config RootDirectory setting to the root directory you want to display.

Hi,
now it works, thank you many times.


Single step BPs obsoletions: alpha-1-microglobulin-chromophore linkage

Please provide as much information as you can:

GO term ID and Label
GO:0019923 'alpha-1-microglobulin-chromophore linkage'

Reason for deprecation
The reason for obsoletion is that this term refers to a class of proteins.

"Replace by" term (ID and label)
If all annotations can safely be moved to that term

"Consider" term(s) (ID and label)
Suggestions for reannotation

Are there annotations to this term?
No annotations

Are there mappings and cross references to this term? (InterPro, Keywords; check QuickGO cross-references section)

Is this term in a subset? (check the AmiGO page for that term)

Any other information

Dear all,
For the project of removing single step BPs from the ontology (and moving them to MFs as appropriate), the proposal has been made to obsolete GO:0019923 'alpha-1-microglobulin-chromophore linkage'.
There are NO annotations to this term.
This term is not present in any subsets.
We will leave 2 weeks for review before obsoleting the terms. You can comment in the ticket:
https://github.com/geneontology/go-ontology/issues/23141
Thanks.
Raymond


Update server.py

is this any better

Bunnyshell created the Environment staging / crblanaru-patch-1:master / PR-3 for PR #3:

backend:

https://backend-xfcqsr.bunnyenv.com/


Add contributing guidelines for openebs/dashboard

openebs/dashboard - is a clone of kubernetes/dashboard, with the intent of adding storage related functionality - some of which can be added in a generic way that can be sent upstream to kubernetes/dashboard.
The development setup will be similar to https://github.com/kubernetes/dashboard/wiki/Getting-started, with some modifications to run with minikube, possibly with heapster and prometheus.  Sample steps are at:
https://github.com/kmova/bootstrap/blob/master/kube-dashboard/README.md
This issue is to update the contributing section under the openebs/openebs/contribute folder.

The changes made to openebs/dashboard have been upstreamed. There is no need to work on this issue anymore.


Comsos DB: Update overview title and add postgresql get started

Clarification for overview that the access to cosmos db is via credentials
Add postgresql get started to introductions

@microsoft-github-policy-service agree

Learn Build status updates of commit c86b7a4:
:warning: Validation status: warnings

File
Status
Preview URL
Details

articles/cosmos-db/access-key-vault-managed-identity.md
:warning:Warning

Details

articles/cosmos-db/cassandra/TOC.yml
:warning:Warning

Details

articles/cosmos-db/gremlin/TOC.yml
:warning:Warning

Details

articles/cosmos-db/how-to-setup-managed-identity.md
:warning:Warning

Details

articles/cosmos-db/managed-identity-based-authentication.md
:warning:Warning

Details

articles/cosmos-db/mongodb/integrations-overview.md
:warning:Warning

Details

articles/cosmos-db/mongodb/TOC.yml
:warning:Warning

Details

articles/cosmos-db/nosql/certificate-based-authentication.md
:warning:Warning

Details

articles/cosmos-db/table/TOC.yml
:warning:Warning

Details

articles/cosmos-db/access-secrets-from-keyvault.md
:white_check_mark:Succeeded
n/a (file deleted or renamed)

articles/cosmos-db/credentials-based-authentication.md
:white_check_mark:Succeeded

articles/cosmos-db/introduction.md
:white_check_mark:Succeeded

articles/cosmos-db/nosql/TOC.yml
:white_check_mark:Succeeded

articles/cosmos-db/access-key-vault-managed-identity.md

Line 93, Column 49: [Warning: file-not-found - See documentation] Invalid file link: 'access-secrets-from-keyvault.md'.

articles/cosmos-db/cassandra/TOC.yml

Line 398, Column 17: [Warning: file-not-found - See documentation] Invalid file link: '../access-secrets-from-keyvault.md'.

articles/cosmos-db/gremlin/TOC.yml

Line 349, Column 17: [Warning: file-not-found - See documentation] Invalid file link: '../access-secrets-from-keyvault.md'.

articles/cosmos-db/how-to-setup-managed-identity.md

Line 258, Column 3: [Warning: file-not-found - See documentation] Invalid file link: 'access-secrets-from-keyvault.md'.

articles/cosmos-db/managed-identity-based-authentication.md

Line 332, Column 3: [Warning: file-not-found - See documentation] Invalid file link: 'access-secrets-from-keyvault.md'.

articles/cosmos-db/mongodb/integrations-overview.md

Line 87, Column 3: [Warning: file-not-found - See documentation] Invalid file link: '../access-secrets-from-keyvault.md'.

articles/cosmos-db/mongodb/TOC.yml

Line 486, Column 17: [Warning: file-not-found - See documentation] Invalid file link: '../access-secrets-from-keyvault.md'.

articles/cosmos-db/nosql/certificate-based-authentication.md

Line 246, Column 3: [Warning: file-not-found - See documentation] Invalid file link: '../access-secrets-from-keyvault.md'.

articles/cosmos-db/table/TOC.yml

Line 359, Column 17: [Warning: file-not-found - See documentation] Invalid file link: '../access-secrets-from-keyvault.md'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Learn Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 829db32:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/cosmos-db/access-key-vault-managed-identity.md
:white_check_mark:Succeeded

articles/cosmos-db/access-secrets-from-keyvault.md
:white_check_mark:Succeeded
n/a (file deleted or renamed)

articles/cosmos-db/cassandra/TOC.yml
:white_check_mark:Succeeded

articles/cosmos-db/credentials-based-authentication.md
:white_check_mark:Succeeded

articles/cosmos-db/gremlin/TOC.yml
:white_check_mark:Succeeded

articles/cosmos-db/how-to-setup-managed-identity.md
:white_check_mark:Succeeded

articles/cosmos-db/introduction.md
:white_check_mark:Succeeded

articles/cosmos-db/managed-identity-based-authentication.md
:white_check_mark:Succeeded

articles/cosmos-db/mongodb/integrations-overview.md
:white_check_mark:Succeeded

articles/cosmos-db/mongodb/TOC.yml
:white_check_mark:Succeeded

articles/cosmos-db/nosql/certificate-based-authentication.md
:white_check_mark:Succeeded

articles/cosmos-db/nosql/TOC.yml
:white_check_mark:Succeeded

articles/cosmos-db/table/TOC.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

#hold-off

After conferring, we had to break this PR into smaller chunks for two reasons:

The introduction is in the process of being rewritten. We cherry-picked your change and included it in that rewrite.
The name credentials-based-authentication is to generic as that's how authentication is done in a lot of the quickstarts. For now, the article's name will remain access-secrets-from-keyvault.md but we are looking at renaming it to something like store-credentials-key-vault.md.

Thanks for your contribution!
#please-close

@seesharprun is the overview picture of cosmos and the corresponding APIs also in process of rewritting, because there is Postgres currently missing, I could add it there

Yes, but we are reworking that graphic entirely. It's horizontal now making it hard to fit all of the APIs while keeping the font legible.
We have someone from the art team taking a look at this to see if we can make it easier to read and more accessible.


Fix: Remove streams

Description:
Aims to remove the use of streams from the SDK, which would allow us to remove a backport dependency and dramatically shrink the size of the SDK.
Related issue(s):
Fixes #735
Notes for reviewer:
Unfortunately, we seem to have inadvertently exposed one of the backports publicly: TopicMessageQuery.setRetryHandler() takes a Predicate.  We are trying to target Java 7 for the sake of Android development, but Predicate is Java 8, so we were using a backport of Predicate here.  We need to decide what to do about this before going forward.
Checklist

[ ] Documented (Code comments, README, etc.)
[ ] Tested (unit, integration, etc.)

Unfortunately it doesn't look like we can actually do this as we discussed before, so closing.


Add support for MS Style Zonefiles

These changes allow support for Microsoft AD DNS zone files which were throwing errors before.
This adds handling for [AGE:***] Parameters and TXT entries enclosed in Brackets.
See the spec changes for an idea of what the entries look like.

:+1:

Thanks @dimitertodorov @pangloss, I'll merge this in and deploy a new gem tomorrow morning :)

Thanks!

@craigw Can you take a look at this. And see if you can deploy a new version of the gem.

Hi @craigw sorry to bug you about it, but would you mind pushing a release if you're comfortable doing so? I need to do a release this week and would much prefer to use a released version than have to bother with a workaround.
If you've got any reservations or otherwise don't think you'll be able release today, kindly let me know so I can plan accordingly.
By the way, if want to add to your list of companies using this, please add ipam.lightmesh.com. :)
Thanks!

Hi @pangloss. Sorry, I should have mentioned here to let you know. I released 1.0.6 just after I merged the PR which should, unless I've totally done it wrong, include your changes.
Please have a try with 1.0.6 and let me know. Thanks again for your contribution! :)

Oh great, thanks! I was just waiting to see the version bump commit, which I guess is not technically a part of releasing... :)

Hahah, I knew I messed something up! I'll push that tonight :+1:


Before transition event

Hi,
I need a way to know when Iscroll starts the transition to a snap,
to add transforms of my own on the elements inside the iScroll.
This way I can change the elements inside, inheriting the transform-duration that iScroll sets, avoiding having to use the probeType: 3.

any thoughts about this ?

+1

+1


Make Swift_Message more easily customizable and lazy when sending email

This is an alternate implementation of #497 that not only allows customization of Swift_Message based on logged data, but also adds a performance gain when using the Swift_Message callback option. There is one possible BC break for anyone extending SwiftMailerHandler. See the bottom of this PR.
Added Swift_Mailer as a dev dependency
New test cases exercise SwiftMailerHandler using real instances of Swift_Message.
SwiftMailerHandler subclasses can customize Swift_Message given logged data
Prior to this PR a SwiftMailerHandler subclass had to override the entire send() method to customize the sent Swift_Message. After this PR subclasses can instead override the buildMessage() function. This was originally proposed in #497 and the implementation here is mostly the same.
Customizing the sent Swift_Message in a subclass:
class CustomSwiftMailerHandler extends SwiftMailerHandler
{
    protected function buildMessage($content, array $records)
    {
        $subject = 'Error Occurred';
        if (count($records) > 1) {
            $subject = 'Many Errors Occurred';
        }

        $message = new \Swift_Message;
        $message->setSubject($subject);

        return $message;
    }
}

SwiftMailerHandler Swift_Message callback now supports customization given logged data
The constructor callable is now passed two new arguments: the logged contents and logged records. Either could be used to further customized the sent Swift_Message.
$callback = function ($content, array $records) {
    $subject = 'Error Occurred';
    if (count($records) > 1) {
        $subject = 'Many Errors Occurred';
    }

    $message = new \Swift_Message;
    $message->setSubject($subject);

    return $message;
};

$handler = new SwiftMailerHandler($mailer, $callback);

Using a callback to customize Swift_Message has been supported by the Symfony MonologBundle for some time: https://github.com/symfony/MonologBundle/blob/master/DependencyInjection/MonologExtension.php#L389
monolog:
    handlers:
        # ... snipped some other config here ...
        swift:
            type:       swift_mailer
            level:      error
            # Below service builds the Swift_Message that will be sent
            email_prototype:
                id: my_error_email_prototype
                method: buildMessage

Swift_Message callback is now only invoked when mail will be sent
For most applications, sending email as part of any request is a rare event. In addition, SwiftMailerHandler currently only sends email when a message is logged with ERROR severity. Handling an ERROR message in most applications should be even more rare than sending normal lifecycle emails.
Laziness is desired for performance reasons. Prior to this PR, a Swift_Message object would be instantiated even if no email was sent because SwiftMailerHandler constructor required an injected Swift_Message OR the callback to create a Swift_Message was always invoked. After this PR the callback is only invoked if an email is going to be sent. (Any code injecting a Swift_Message object will of course still incur the expense to instantiate it.)
In fact Symfony MonologBundle specifically makes Swift_Message creation lazy when not specifying a callback function. (The linked PR alludes to how expensive it is to instantiate Swift_Message.) This PR adds lazy support to MonologBundle when a callback is configured.
Potential Backwards Compatibility break for subclasses using SwiftMailerHandler $this->message
Before this PR a SwiftMailerHandler subclass could always assume $this->message was an instance of Swift_Message because the constructor stores the injected Swift_Message or resolves the callable to create a Swift_Message.
If you always inject a Swift_Message object, no change is necessary. But if your subclass allows a developer to inject a Swift_Message OR a callback, you'll need to call $this->buildMessage() instead of $this->message
I would be open to fully removing protected $message; and replacing it with private $template; and protected function buildMessage(). This way the callable vs injected Swift_Message is private implementation details, and anyone relying on $this->message being present would see a more obvious error message that it no longer exists.

Force-pushed a fix for PHP 5.3 compatibility so now Travis is happy.
@iltar said this implementation fits the needs of #497.

Thanks @johnkary! And I added a BC layer using good old school __get (see commit above)

Ahh very nice idea! Thanks for your work :)

Very nice to see this is merged and already tagged! Now I can finally start adding some more meta information to my emails to allow additional filtering, thanks!


Casting float string to int will return null

Because StringParser does't support cast float string to int,  as following:
mysql> select cast("11.22" as int);
+----------------------+
| CAST('11.22' AS INT) |
+----------------------+
|                 NULL |
+----------------------+
1 row in set (0.01 sec)
so we will have to change SQL to this:
mysql> select cast(cast("11.22" as double) as int);
+--------------------------------------+
| CAST(CAST('11.22' AS DOUBLE) AS INT) |
+--------------------------------------+
|                                   11 |
+--------------------------------------+
1 row in set (0.00 sec)

There is currently no plan to support the conversion of float to int


Pods status wrong when unnamed step fails (followed by named step)

Expected Behavior
Pods status should show error
$ oc get pods
NAME                                                     READY   STATUS      RESTARTS   AGE
test-unnamed-correct-jw2nl-pod-4m4lz      0/4       Error                     0          16m
test-unnamed-wrong-6snn5-pod-95cbq     0/4        Error                     0          16m

Actual Behavior
$ oc get pods
NAME                                                       READY    STATUS      RESTARTS   AGE
test-unnamed-correct-jw2nl-pod-4m4lz     0/4           Completed           0          16m
test-unnamed-wrong-6snn5-pod-95cbq     0/4           Error                    0          16m

Steps to Reproduce the Problem

Create taskrun

oc create -f https://gist.githubusercontent.com/praveen4g0/cac6134def1034b029c92195495ea824/raw/5ded34dd71fd18b302cf3c160cfa350350d45fe6/unamed-steps-pod-status.yaml

Wait for taskrun to fail

Check for pods status

Additional Info

Tekton Pipeline version:
Output of tkn version or kubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}'
v0.11.3

@praveen4g0
The STATUS of kubectl get po is come from State.Terminated.Reason of one container of the pod, maybe the first not nil one.
So let's back to your sample, the step-named-step will go beyond step-unnamed-x as the first one(sort by first character), so its State.Terminated.Reason will be displayed. That's why the behavior are not consistent.
That's means tekton can do nothing about the issue.

Yea, as @vincent-pli commented.
It's because Pod status in oc get/kubectl get is status of first container in alphabetical order.
Just change your name here to x-named-step, https://gist.github.com/praveen4g0/cac6134def1034b029c92195495ea824 you will see Completed for both taskrun pod.

It sounds like this isn't a bug in Tekton so I'll close this, please re-open if I'm wrong


[BUG] Can't find Winget package

Please confirm these before moving forward

[X] I have searched for my issue and have not found a work-in-progress/duplicate/resolved issue.
[X] I have tested that this issue has not been fixed in the latest (beta or stable) release.
[X] I have checked the FAQ section for solutions.
[X] This issue is about a bug (if it is not, please use the correct template).

UniGetUI Version
3.1.0
Windows version, edition and architecture
Windows 11 22H2 22621.3296
Describe your issue
I can't find winget package after update.
I have run command Install-Module Microsoft.WinGet.Client in powershell.
Steps to reproduce the issue
No response
UniGetUI Log
[2024/7/3 18:13:09]
                       __  __      _ ______     __  __  ______
                      / / / /___  (_) ____/__  / /_/ / / /  _/
                     / / / / __ \/ / / __/ _ \/ __/ / / // /
                    / /_/ / / / / / /_/ /  __/ /_/ /_/ // /
                    \____/_/ /_/_/\____/\___/\__/\____/___/
                        Welcome to UniGetUI Version 3.1.0
[2024/7/3 18:13:09]
[2024/7/3 18:13:09] Version Code:  3.1
[2024/7/3 18:13:09] Using bundled GSudo at C:\Program Files\WingetUI\Assets\Utilities\gsudo.exe
[2024/7/3 18:13:09] Loaded language locale: zh_CN
[2024/7/3 18:13:10] Randomly-generated background API auth token for the current session: 5fqxotkxtam7iziqzfjp7iz1uwrnnwb50dtfgtdjy90zd2imruhm9eau2arhhi6l
[2024/7/3 18:13:10] Api running on http://localhost:7058
[2024/7/3 18:13:10] Downloaded new icons and screenshots successfully!
[2024/7/3 18:13:10] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: .NET Tool
                    █ Enabled: False
                    █ THE MANAGER IS DISABLED
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/3 18:13:10] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Pip
                    █ Enabled: False
                    █ THE MANAGER IS DISABLED
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/3 18:13:11] UniGetUI is up to date
[2024/7/3 18:13:11] Lang files were updated successfully from GitHub
[2024/7/3 18:13:11] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Npm
                    █ Enabled: False
                    █ THE MANAGER IS DISABLED
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/3 18:13:11] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Winget
                    █ Enabled: True
                    █ Found: True
                    █ Fancye exe name: winget.exe
                    █ Executable path: C:\Users\Shao\AppData\Local\Microsoft\WindowsApps\winget.exe
                    █ Call arguments:
                    █ Version:
                    █   Naive WinGet CLI Version: v1.9.1792-preview
                    █   Microsoft.WinGet.Client PSModule version:
                    █   Using Native WinGet helper (COM Api)
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/3 18:13:11] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Chocolatey
                    █ Enabled: False
                    █ THE MANAGER IS DISABLED
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/3 18:13:12] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Scoop
                    █ Enabled: True
                    █ Found: True
                    █ Fancye exe name: scoop
                    █ Executable path: C:\Windows\system32\windowspowershell\v1.0\powershell.exe
                    █ Call arguments:  -NoProfile -ExecutionPolicy Bypass -Command scoop
                    █ Version:
                    █   Current Scoop version:
                    █   d337bb1f chore(release): Bump to version 0.4.2 (#5964)
                    █
                    █   'main' bucket:
                    █   5246366cf uv: Update to version 0.2.21
                    █
                    █   'extras' bucket:
                    █   0fb73b4e3 sidekick-browser: Update to version <IP_ADDRESS>488-aa4b5ae
                    █
                    █   'dorado' bucket:
                    █   7a3725fb swift-nightly: Update to version 20240702.3
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/3 18:13:13] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: PowerShell
                    █ Enabled: True
                    █ Found: True
                    █ Fancye exe name: powershell.exe
                    █ Executable path: C:\Windows\system32\windowspowershell\v1.0\powershell.exe
                    █ Call arguments:  -NoProfile -Command
                    █ Version:
                    █   Name                           Value
                    █   ----                           -----
                    █   PSVersion                      5.1.22621.2506
                    █   PSEdition                      Desktop
                    █   PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
                    █   BuildVersion                   10.0.22621.2506
                    █   CLRVersion                     4.0.30319.42000
                    █   WSManStackVersion              3.0
                    █   PSRemotingProtocolVersion      2.3
                    █   SerializationVersion           <IP_ADDRESS>
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/3 18:13:14] Dependency WinGet PowerShell Module for manager Winget is present
[2024/7/3 18:13:14] Found 5 installed packages from Scoop
[2024/7/3 18:13:14] Dependency Scoop-Search for manager Scoop is present
[2024/7/3 18:13:14] Dependency Git for manager Scoop is present
[2024/7/3 18:13:14] LoadComponentsAsync finished executing. All managers loaded. Proceeding to interface.
[2024/7/3 18:13:16] Found 4 installed packages from PowerShell
[2024/7/3 18:13:17] Found 0 installed packages from Winget
[2024/7/3 18:13:17] Backup saved to C:\Users\Shao\Documents\UniGetUI\SHAO-PC 已安装软件包列表 2024-07-03 18-13-17.json
[2024/7/3 18:13:18] Found 0 available updates from Winget
[2024/7/3 18:13:18] Found 0 available updates from PowerShell
[2024/7/3 18:13:20] Found 5 installed packages from Scoop
[2024/7/3 18:13:25] Found 2 available updates from Scoop

Package Managers Logs
Manager Winget with version:
Naive WinGet CLI Version: v1.9.1792-preview
Microsoft.WinGet.Client PSModule version:
Using Native WinGet helper (COM Api)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListSources
Process start time: 2024/7/3 18:13:11
Process end time:   2024/7/3 18:13:11

-- Task information
 ...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "C:\Users\Shao\AppData\Local\Microsoft\WindowsApps\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 2024/7/3 18:13:13
Process end time:   2024/7/3 18:13:14

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListPackages
Subprocess executable: "C:\Windows\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 2024/7/3 18:13:13
Process end time:   2024/7/3 18:13:17

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : �޷�����Write-Output����ʶ��Ϊ cmdlet���������ű��ļ�������г�������ơ��������Ƶ�ƴд���������·��
  ����ȷ��·����ȷ��Ȼ������һ�Ρ�
  ����λ�� ��:1 �ַ�: 1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException

  Get-WinGetPackage : An error occurred while searching for packages: CatalogError
  ����λ�� ��:1 �ַ�: 1
  + Get-WinGetPackage | Print-WinGetPackage
  + ~~~~~~~~~~~~~~~~~
      + CategoryInfo          : NotSpecified: (:) [Get-WinGetPackage], FindPackagesException
      + FullyQualifiedErrorId : RuntimeException,Microsoft.WinGet.Client.Commands.GetPackageCmdlet

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListSources
Process start time: 2024/7/3 18:13:13
Process end time:   2024/7/3 18:13:13

-- Task information
 ...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "C:\Windows\system32\windowspowershell\v1.0\powershell.exe"
Command-line arguments: "-ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 2024/7/3 18:13:14
Process end time:   2024/7/3 18:13:18

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Write-Output : �޷�����Write-Output����ʶ��Ϊ cmdlet���������ű��ļ�������г�������ơ��������Ƶ�ƴд���������·��
  ����ȷ��·����ȷ��Ȼ������һ�Ρ�
  ����λ�� ��:1 �ַ�: 1
  + Write-Output (Get-Module -Name Microsoft.WinGet.Client).Version
  + ~~~~~~~~~~~~~
      + CategoryInfo          : ObjectNotFound: (Write-Output:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException

  Get-WinGetPackage : An error occurred while searching for packages: CatalogError
  ����λ�� ��:1 �ַ�: 1
  + Get-WinGetPackage | Print-WinGetPackage
  + ~~~~~~~~~~~~~~~~~
      + CategoryInfo          : NotSpecified: (:) [Get-WinGetPackage], FindPackagesException
      + FullyQualifiedErrorId : RuntimeException,Microsoft.WinGet.Client.Commands.GetPackageCmdlet

Return code: SUCCESS (0)

——————————————————————————————————————————

Relevant information
No response
Screenshots and videos

I think I have the same issue. When updating to UniGetUI today, I did see a screen popup to install something (...) with a lot of errors (red text). So I think something did not install correctly. In my new version I do not see any WinGet packages when I gog to 'Installed on this system'.
These are the errors I saw:
`Cannot invoke method. Method invocation is supported only on core types in this language mode.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:7574 char:13

        $wid=[System.Security.Principal.WindowsIdentity]::GetCurr ...

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage

new-object : Cannot create type. Only core types are supported in this language mode.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:7575 char:18

...        $prp=new-object System.Security.Principal.WindowsPrincipal($wi ...

            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : PermissionDenied: (:) [New-Object], PSNotSupportedException
FullyQualifiedErrorId : CannotCreateTypeConstrainedLanguage,Microsoft.PowerShell.Commands.NewObjectCommand

You cannot call a method on a null-valued expression.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:7577 char:13

        $script:IsRunningAsElevated = $prp.IsInRole($adm)

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : InvokeMethodOnNull

Cannot invoke method. Method invocation is supported only on core types in this language mode.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:7455 char:8

if($Force -or $psCmdlet.ShouldContinue($shouldContinueQueryMessag ...

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage

New-Object : Cannot create type. Only core types are supported in this language mode.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:14734 char:18

$exception = New-Object $ExceptionName $ExceptionMessage;

             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : PermissionDenied: (:) [New-Object], PSNotSupportedException
FullyQualifiedErrorId : CannotCreateTypeConstrainedLanguage,Microsoft.PowerShell.Commands.NewObjectCommand

New-Object : Cannot create type. Only core types are supported in this language mode.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:14735 char:20

... rorRecord = New-Object System.Management.Automation.ErrorRecord $exce ...

            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : PermissionDenied: (:) [New-Object], PSNotSupportedException
FullyQualifiedErrorId : CannotCreateTypeConstrainedLanguage,Microsoft.PowerShell.Commands.NewObjectCommand

Cannot invoke method. Method invocation is supported only on core types in this language mode.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:14736 char:5

$CallerPSCmdlet.ThrowTerminatingError($errorRecord)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage

Cannot invoke method. Method invocation is supported only on core types in this language mode.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:1799 char:16

        if($PSBoundParameters.ContainsKey("Repository"))

           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage

PackageManagement\Install-Package : Unable to find module providers (PowerShellGet).
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\<IP_ADDRESS>\PSModule.psm1:1809 char:21

...          $null = PackageManagement\Install-Package @PSBoundParameters

                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidArgument: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], E
xception
FullyQualifiedErrorId : UnknownProviders,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage`

I think you have PowerShell misconfigured:
https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/

In the settings, under 'package managers' -> WinGet, I used 'Reset Winget Sources'. There is a green check 'Winget is enabled and ready to go'.  Winget Version:
Naive Winget CLI version: v1.8.1791
Microsoft.WinGet.Client PSModule version:
Using Native Winget helper (COM Api)

I think you have PowerShell misconfigured: https://devblogs.microsoft.com/powershell/powershell-constrained-language-mode/

I'll check that out! Thanks.

@XinSSS, your issue is caused by WinGet failing to connect to Catalogs, and I can't fix this from UniGetUI

I don't know, I have never seen it. Perhaps you can open an issue at microsoft/winget-cli, they may be able to help you

I think I got it fiex. I had some restrcvited plicy serttings I needed to change. https://learn.microsoft.com/nl-nl/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.4 After that I was able to use Install-Module Microsoft.WinGet.Client and the I reset the Winget Source in the application settings. After a restart of UniGetUI the packages (and updates) showed up. Excellent!

@marticliment I can only roll back to version 3.0.2, which works fine.
How do I disable the automatic software update installation 3.1.0? I have already disabled it in the settings.

This happened to me as well. In my case, it was because I had Cobalt installed and it offered conflicting Powershell commands.
Fix for me was to uninstall that and restart UniGetUI and let it grab the dependency again.

Similar problem, module is installed, but unigetui still can't find it.

you need to disable updates again in 3.0.2

This happened to me as well. In my case, it was because I had Cobalt installed and it offered conflicting Powershell commands.
Fix for me was to uninstall that and restart UniGetUI and let it grab the dependency again.

I only have PowerShell 7 and Oh My Posh. Not sure if my problem is related to this. I need to research it.

I had the same problem. Tried everything. In my case it helped to copy the module to the root module folder:
the folder:
%Documents%\WindowsPowerShell\Modules\Microsoft.WinGet.Client\PowerShell\Modules\Microsoft.WinGet.Client\
copied to
c:\Program Files\WindowsPowerShell\Modules\

I am having this issue too. I clicked the reset button in the settings and it cannot properly add the source.

Think I'm having the same issue. Winget just forced an update on me, then keeps telling me that the Powershell module is not installed. It appears to download and install it, but then after WinGet restarts it says the module needs to be installed and repeats the process.

Update: I got it working, it appears to have been blocked because the module is flagged as unsafe, assuming because it's new? If you open an admin PowerShell terminal, ensure you uninstall the current version: Uninstall-Module Microsoft.WinGet.Client, then install the new version manually Install-Module Microsoft.WinGet.Client you get a security warning saying it's not trusted. If you accept anyway, it installs and UniGet stops complaining it can't find it and it can find my packages now.

I don't know why, but I can only find Microsoft.WinGet.Client in the Get-InstalledModule command, and I can't find it in the other commands(like Get-Module Get-Module -ListAvailable).

Get-Module -ListAvailable

But now it is located in the directory C:\Program Files\WindowsPowerShell\Modules

I am also confused about the version numbers.
The winget version in use is v1.9.1792-preview.
The installed Microsoft.WinGet.Client version is 1.8.1791.
Is there anything wrong with this?

This should be fine

Were you able to uninstall it with the command Uninstall-Module Microsoft.WinGet.Client?

And neither does it work?

And neither does it work?

The installation was also smooth after uninstall, but it just didn't take effect in wingetui, I don't know why.

I will investigate. Meanwhile, please downgrade to 3.0.2 and disable updates

I will investigate. Meanwhile, please downgrade to 3.0.2 and disable updates

FWIW I couldn't downgrade. WinGet 3.0.2 just kept crashing after I upgraded to 3.1. Assuming there was some config file I couldn't find somewhere that is not backwards compatible so just keep that in mind.

WinGet 3.0.2 just kept crashing after

Any crash logs?

WinGet 3.0.2 just kept crashing after

Any crash logs?

I didn't know where they were stored and I couldn't open WinGet to check tbh haha. I instead upgraded back to 3.1 and got the module working (what I posted above) so that 3.1 appears to be working as expected now.

Hello,
To all users facing issues with version 3.1.0, please try the new 3.1.1 beta, which aims to fix this issues.
UniGetUI 3.1.1-beta0 release: https://github.com/marticliment/UniGetUI/releases/tag/3.1.1-beta0
Direct installer URL: https://github.com/marticliment/UniGetUI/releases/download/3.1.1-beta0/UniGetUI.Installer.exe
Excuse me for the inconveniences.

@marticliment
Thank you for the compatibility change. Now the list of installed software is displayed normally.
The following is the log
[2024/7/6 11:09:50]    __  __      _ ______     __  __  ______
                      / / / /___  (_) ____/__  / /_/ / / /  _/
                     / / / / __ \/ / / __/ _ \/ __/ / / // /
                    / /_/ / / / / / /_/ /  __/ /_/ /_/ // /
                    \____/_/ /_/_/\____/\___/\__/\____/___/
                        Welcome to UniGetUI Version 3.11
[2024/7/6 11:09:50]
[2024/7/6 11:09:50] Version Code:  3.109
[2024/7/6 11:09:50] Encoding Code Page set to 936
[2024/7/6 11:09:50] Using bundled GSudo at C:\Program Files\WingetUI\Assets\Utilities\gsudo.exe
[2024/7/6 11:09:50] Loaded language locale: zh_CN
[2024/7/6 11:09:50] Randomly-generated background API auth token for the current session: xw944jf0oty5v6b5hdn43h1c2u6qpxm1fh06z7fcwy618g8a4biconcrmxlu751y
[2024/7/6 11:09:51] Api running on http://localhost:7058
[2024/7/6 11:09:51] Lang files were updated successfully from GitHub
[2024/7/6 11:09:51] Downloaded new icons and screenshots successfully!
[2024/7/6 11:09:51] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: .NET Tool
                    █ Enabled: False
                    █ THE MANAGER IS DISABLED
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/6 11:09:51] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Pip
                    █ Enabled: False
                    █ THE MANAGER IS DISABLED
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/6 11:09:51] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Winget
                    █ Enabled: True
                    █ Found: True
                    █ Fancye exe name: winget.exe
                    █ Executable path: C:\Users\Shao\AppData\Local\Microsoft\WindowsApps\winget.exe
                    █ Call arguments:
                    █ Version:
                    █   Native WinGet CLI Version: v1.9.1792-preview
                    █   Microsoft.WinGet.Client PSModule version:
                    █   Using Native WinGet helper (COM Api)
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/6 11:09:52] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Npm
                    █ Enabled: False
                    █ THE MANAGER IS DISABLED
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/6 11:09:52] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Chocolatey
                    █ Enabled: False
                    █ THE MANAGER IS DISABLED
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/6 11:09:52] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: Scoop
                    █ Enabled: True
                    █ Found: True
                    █ Fancye exe name: scoop
                    █ Executable path: C:\Windows\system32\windowspowershell\v1.0\powershell.exe
                    █ Call arguments:  -NoProfile -ExecutionPolicy Bypass -Command scoop
                    █ Version:
                    █   Current Scoop version:
                    █   716b6db3 chore(release): Bump to version 0.5.0 (#6035)
                    █
                    █   'main' bucket:
                    █   7e455fe35 trid: Update to version 2.24-24.07.05
                    █
                    █   'extras' bucket:
                    █   8fb8f35d1 sidekick-browser: Update to version <IP_ADDRESS>488-aa4b5ae
                    █
                    █   'dorado' bucket:
                    █   bd1f64a2 typos: Update to version 1.23.1
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/6 11:09:52] UniGetUI is up to date
[2024/7/6 11:09:53] ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
                    █▀▀▀▀▀▀▀▀▀▀▀▀▀ MANAGER LOADED ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
                    █ Name: PowerShell
                    █ Enabled: True
                    █ Found: True
                    █ Fancye exe name: powershell.exe
                    █ Executable path: C:\Windows\system32\windowspowershell\v1.0\powershell.exe
                    █ Call arguments:  -NoProfile -Command
                    █ Version:
                    █   Name                           Value
                    █   ----                           -----
                    █   PSVersion                      5.1.22621.2506
                    █   PSEdition                      Desktop
                    █   PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
                    █   BuildVersion                   10.0.22621.2506
                    █   CLRVersion                     4.0.30319.42000
                    █   WSManStackVersion              3.0
                    █   PSRemotingProtocolVersion      2.3
                    █   SerializationVersion           <IP_ADDRESS>
                    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
[2024/7/6 11:09:55] Dependency WinGet PowerShell Module for manager Winget is present
[2024/7/6 11:09:55] Found 5 installed packages from Scoop
[2024/7/6 11:09:55] Dependency Scoop-Search for manager Scoop is present
[2024/7/6 11:09:55] Dependency Git for manager Scoop is present
[2024/7/6 11:09:55] LoadComponentsAsync finished executing. All managers loaded. Proceeding to interface.
[2024/7/6 11:09:57] Found 4 installed packages from PowerShell
[2024/7/6 11:09:58] WinGet installed packages returned zero packages, attempting legacy...
[2024/7/6 11:09:58] WinGet updates returned zero packages, attempting legacy...
[2024/7/6 11:09:58] Found 0 available updates from PowerShell
[2024/7/6 11:10:01] Found 320 installed packages from Winget
[2024/7/6 11:10:01] Found 24 available updates from Winget
[2024/7/6 11:10:01] Backup saved to C:\Users\Shao\Documents\UniGetUI\SHAO-PC 已安装软件包列表 2024-07-06 11-10-01.json
[2024/7/6 11:10:02] Found 5 installed packages from Scoop
[2024/7/6 11:10:07] Found 2 available updates from Scoop

Package manager log
Manager Winget with version:
Native WinGet CLI Version: v1.9.1792-preview
Microsoft.WinGet.Client PSModule version:
Using Native WinGet helper (COM Api)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListSources
Process start time: 2024/7/6 11:09:51
Process end time:   2024/7/6 11:09:51

-- Task information
 ...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is RefreshIndexes
Subprocess executable: "C:\Users\Shao\AppData\Local\Microsoft\WindowsApps\winget.exe"
Command-line arguments: " source update --disable-interactivity"
Process start time: 2024/7/6 11:09:53
Process end time:   2024/7/6 11:09:55

-- Process STDOUT
 ...

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListPackages
Subprocess executable: "cmd.exe"
Command-line arguments: "/C C:\Windows\system32\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 2024/7/6 11:09:53
Process end time:   2024/7/6 11:09:58

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Get-WinGetPackage : An error occurred while searching for packages: CatalogError
  所在位置 行:1 字符: 1
  + Get-WinGetPackage | Print-WinGetPackage
  + ~~~~~~~~~~~~~~~~~
      + CategoryInfo          : NotSpecified: (:) [Get-WinGetPackage], FindPackagesException
      + FullyQualifiedErrorId : RuntimeException,Microsoft.WinGet.Client.Commands.GetPackageCmdlet

Return code: SUCCESS (0)

——————————————————————————————————————————

Logged native task on manager Winget. Task type is ListSources
Process start time: 2024/7/6 11:09:54
Process end time:   2024/7/6 11:09:54

-- Task information
 ...

The task reported success

——————————————————————————————————————————

Logged subprocess-based task on manager Winget. Task type is ListUpdates
Subprocess executable: "cmd.exe"
Command-line arguments: "/C C:\Windows\system32\windowspowershell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoLogo -NoProfile"
Process start time: 2024/7/6 11:09:55
Process end time:   2024/7/6 11:09:58

-- Process STDIN
 ...

-- Process STDOUT
 ...

-- Process STDERR
  Get-WinGetPackage : An error occurred while searching for packages: CatalogError
  所在位置 行:1 字符: 1
  + Get-WinGetPackage | Print-WinGetPackage
  + ~~~~~~~~~~~~~~~~~
      + CategoryInfo          : NotSpecified: (:) [Get-WinGetPackage], FindPackagesException
      + FullyQualifiedErrorId : RuntimeException,Microsoft.WinGet.Client.Commands.GetPackageCmdlet

Return code: SUCCESS (0)

——————————————————————————————————————————


import earthstat data

I have included a logic for downloading the 175 crops from earthstat in Francis code. I've just included some parts for converting the nodata to -9999 value. We can change this if we want .
We will need to check the import in supervizz as this is super heavy - let me know what you think. My idea is to incorporate in this code the download process for the other data needed in the platform.

Thanks @elpamart for pulling this out.
Just tested it locally and waterfootprint h3 table data is created / populated, and its info persisted in the H3 master table.
Looks good, thanks!


log is not defined when attempting setLevel() in console

Apologies, this is more of a question than a bug report.  In the documentation it says "...then run log.setLevel("trace") in your console to turn it all back on...".  I'm using Chrome on a Mac. When I enter log.setLevel("trace") in the dev tools console for an app I am developing with has imported loglevel as log i'm getting "Uncaught ReferenceError: log is not defined". I'm obviously missing something here so any tips would be greatly appreciated.

It sounds like log is not available in the global scope, for example you've imported it only inside a module of your application, so it's only defined in that scope. Does that sound plausible?
If you want to access log globally, you'll either need to import it globally somehow, or more likely you want to expose it globally from your application code, e.g. by putting window.log = log inside your application code.

Yes, window.log = log in my root project file did it for me. Thanks so much for the instant response!

No problem, glad to hear that worked for you!


Option to create resource group during provisioning

This is a continuation work of #5272.
Add a text field in the option dialog to receive New Resource Group. Its value is only used when the Existing Resource Group dropdown list selects [New resource group].
During the provisioning time always try to create the resource group even if it already exists. It does not throw exception. This simplifies the backend process.
Only the last commit is for this PR. The first two are to be merged through #5272


Pattern Info: Template Tab

This is now working off of the new feature-panels branch of styleguidekit-assets-default


yaws fails to start with Erlang 18.1

OS X 10.10.5, Erlang 18.1 (Homebrew)
Yaws's latest sources.
What I did:
make --prefix=/opt/yaws
make install
/opt/yaws/bin/yaws -i
Eshell V7.1  (abort with ^G)
1>
=INFO REPORT==== 29-Sep-2015::21:27:59 ===
Yaws: Using config file /opt/yaws/etc/yaws/yaws.conf
1>
=INFO REPORT==== 29-Sep-2015::21:27:59 ===
yaws debug:Add path "/opt/yaws/lib/yaws/examples/ebin"
1>
=INFO REPORT==== 29-Sep-2015::21:27:59 ===
yaws debug:Add path "/opt/yaws/lib/yaws/examples/ebin"
1>
=INFO REPORT==== 29-Sep-2015::21:27:59 ===
yaws debug:Running with id="default"
Running with debug checks turned on (slower server)
Logging to directory "/opt/yaws/var/log/yaws"
1>
=INFO REPORT==== 29-Sep-2015::21:27:59 ===
Ctlfile : /Users/zuav/.yaws/yaws/default/CTL
1>
=INFO REPORT==== 29-Sep-2015::21:27:59 ===
Yaws: Listening to <IP_ADDRESS>:8000 for <2> virtual servers:

http://*:8000 under /opt/yaws/var/yaws/www
http://localhost:8000 under /var/folders/qf/_fj_8z_j0yxddzhh30nbxcj40000gn/T
1>
=INFO REPORT==== 29-Sep-2015::21:27:59 ===
Yaws: Listening to <IP_ADDRESS>:4443 for <1> virtual servers:
https://*:4443 under /var/folders/qf/_fj_8z_j0yxddzhh30nbxcj40000gn/T
1>
=ERROR REPORT==== 29-Sep-2015::21:27:59 ===
** gen_event handler yaws_log_file_h crashed.
** Was installed in error_logger
** Last event was: {info_report,<0.33.0>,
{<0.35.0>,progress,
[{supervisor,{local,yaws_sup}},
{started,
[{pid,<0.38.0>},
{id,yaws_server},
{mfargs,
{yaws_server,start_link,
[{env,true,false,false,false,false,false,
"default"}]}},
{restart_type,permanent},
{shutdown,120000},
{child_type,worker}]}]}}
** When handler state == {<0.62.0>,"/opt/yaws/var/log/yaws/report.log",[]}
** Reason == {function_clause,
[{error_logger_file_h,write_event,
[{<0.62.0>,"/opt/yaws/var/log/yaws/report.log",[]},
{info_report,<0.33.0>,
{<0.35.0>,progress,
[{supervisor,{local,yaws_sup}},
{started,
[{pid,<0.38.0>},
{id,yaws_server},
{mfargs,
{yaws_server,start_link,
[{env,true,false,false,false,false,false,"default"}]}},
{restart_type,permanent},
{shutdown,120000},
{child_type,worker}]}]}}],
[{file,"error_logger_file_h.erl"},{line,114}]},
{error_logger_file_h,handle_event,2,
[{file,"error_logger_file_h.erl"},{line,79}]},
{gen_event,server_update,4,[{file,"gen_event.erl"},{line,538}]},
{gen_event,server_notify,4,[{file,"gen_event.erl"},{line,520}]},
{gen_event,handle_msg,5,[{file,"gen_event.erl"},{line,261}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,240}]}]}
1>

Thanks, we already know about this and a fix is in progress.

Thanks for a quick fix.
It worked for me :)

Perfect fix, I'll build 2.0.1 with this as soon as I see the travis tests go through.


Multiple Improvements

Problem addressed
There was no cancel order function
There was no Positions object
Added missing Stop Limit and Stop Market order types
Solution
Created the function
Checklist

PR commits have been squashed
All tests pass
Code adheres to contributing guidelines

P.S. If you ever need to see why the build is not succeeding, just go to https://travis-ci.org/boyan-soubachov/tastyworks_api


Fixed #33237 -- Corrected regex for source maps in HashedFilesMixin.

Switched regex to multiline mode in order to match per-line, rather than against
the whole file.
Adjusted ordering of asserts in test case to make behavior under test the
(potential) first failure.
Thanks to Joseph Abrahams for the report.
Regression in e32722d1606794f0a85d74811e53a0336a1ce305

Regression was in 781b44240a06f0c868254f40f36ce46c927f56d1 — which removed the (?m) that @adamchainz originally had there. (Investigating)

OK, updated. Thanks for checking both! 👍

Thanks for all the work on this you all! 👍


Preserve formatting when pasting from Google Chrome, Word, etc.

Is your feature request related to a problem? Please describe.
Currently when a user copies text with simple formatting like italicization and bolding from a source like Microsoft Word or Google Docs, and then pastes that text into the markdown editor, none of the formatting is preserved.
As a user I would like as much of my formatting to be preserved as possible. I would expect basic formatting like italicization and bolding at least to be preserved. I would not want to paste in text from another contract and then have to manually identify what is supposed to be italicized and what's supposed to be bold, and then change every instance in the markdown editor to match my original document

This may possibly involve further work in the markdown-transform

To debug these we need the HTML that they are putting on the clipboard. If it is a mess of span with css to apply formatting then it can be very hard to recover semantic content like <h1> etc.


[DO NOT MERGE] Run Python RC Validation Tests

Run Python ReleaseCandidate

Run Python ReleaseCandidate

Run Python ReleaseCandidate


Hidden programs are inaccessible for TI Clients

Describe the bug
Hidden programs are inaccessible for TI Clients
To Reproduce
Steps to reproduce the behavior:

Create a hidden program with name say Test.
Try to access the program as an applicant- with /test appended to the CiviForm URL. (eg. https://civiformstage.seattle.gov/programs/test )
Go to TI dashboard and create a new Client.
Got to the applications page of the Client.
Try accessing the hidden program with programs/test appended to the URL.
It doesn't load

Expected behavior
Hidden programs should be accessible by both TI Clients and residents.
Screenshots
View from residents: on typing https://civiformstage.seattle.gov/programs/test

The first screenshot has a URL of the pattern /applicants/:applicantId/:programSlug which is not a valid URL pattern.
The valid URL pattern for accessing a program using its slug is /programs/:programSlug.

@bion  - The TIs were unable to test the Fresh Bucks form on Friday which is a hidden program. Unless it is an expected behavior this issue shouldn't be closed and needs to be investigated. They accessed the program using program/programslug in the same session after logging in as TI. @elisekalstad  - Please feel free to add in more details.

Elise to update the issue--screen shots too!

The issue is actually slightly different: The TI is able to see the hidden program by using the direct link. But the TI is unable to apply for the program on behalf of a client using the current workaround. (Long term fix is to allow CiviForm Admins to specify programs that are visible for selected CBOs. Design currently underway by @msprenke ).
Steps to reproduce:

Megan, the TI, logs into CiviForm as a TI

Clicks Add Client

Adds Troy, the client

Clicks Applicant Dashboard

Pastes in the direct program link: https://civiform.seattle.gov/programs/cboenrollment

Form shows that she is applying on behalf of herself, and not her client, Troy.

Working as designed.  Will address with new request to allow programs to be visible only to TIs


Embedding Generation Times Being Included In Final Reported TIme

Is there something we should be doing to ensure that the benchmark suite does not include the embedding generation time in the final number for 'load duration'?
Shouldn't that time strictly the insert function that preps the record and inserts that record into the database?
For example our overall 1M. 768 load duration is 100s, 60s of that is the embedding value generation. E.G if we comment out  the body of our 'insert_embeddings' function hook for our driver, the load test still takes 60s. The actual act of loading to the database only takes 40s, e.g the time spent in the 'insert_embeddings' function of our driver.
Are we missing something in our driver to prevent this timing to be measured like this?

@gpudb-nnegahban Currently, all the datasets used in VDBBench are already pre-existing vectors, and there is no process for embedding generation.
If you are looking to incorporate new datasets and test cases with embedding generation, please provide us with more detailed information.
Concerning the "load_duration" metric, we aim to display the time it takes from data insertion to being ready for query, which encompasses the time for inserting vectors, creating an index, building the index, and optimization.
Given that several cloud products automatically initiate index building during data insertion, it becomes challenging to separate these time periods. Additionally, the optimization strategy varies for each product, and directly displaying it could lead to misunderstandings among users. After careful consideration, we have decided to present the total time from data insertion to when it can function correctly.

@alwayslove2013 - just a follow-up clarification...does the data insertion time will also include the client-side file reading time in addition to the database insertion time?

@eglaser77 Yes, load_duration includes the time it takes to read the data file.
In theory, it is possible to read the entire data file before inserting the data and subtract the reading time from the overall duration. However, this presents a significant challenge to the memory capacity of the testing client, especially for datasets of 10M 768dim or larger.
Currently, we are utilizing the pyarrow iterator to read and insert data in order to conserve memory. Simply removing the time it takes for the iterator reading is inappropriate because, during that time, the database is actively processing the data that has been inserted.
Maybe we can try to reduce this time by pre-fetching the data file for the next iterator, or use SSD?

@eglaser77 I guess what you need is to directly test the database with the ready data already inserted. Feel free to update to the latest version. We provide an index_already_existed option to skip the insertion and optimization.
pr: #260


SmoothQuant mappings tutorial

Description:
This PR adds a tutorial that guides users on specifying the correct mappings for the SmoothQuant Modifier in llm-compressor. The tutorial explains how to smooth inputs to the q/k/v projections in self-attention and the fc1 block in feed-forward layers, based on the SmoothQuant paper.
Changes:

New Tutorial:

Located at src/llmcompressor/modifiers/smoothquant/README.md the tutorial provides instructions for identifying layers, targeting leaf modules, and using regular expressions for mappings.
A sample mapping for LLaMA-like models is included.

Motivation:
This tutorial simplifies applying SmoothQuant, helping users correctly target layers for efficient model quantization.
Testing:

Manually reviewed and tested on a sample LLaMA model to ensure accuracy of instructions.

Relevant Links:

SmoothQuant Paper: https://arxiv.org/abs/2211.10438
Code Reference: smoothquant/base.py

just a clarity question otherwise LGTM.
@robertgshaw2-neuralmagic would be good to get your feedback

Dipika smoothquant shifts the difficulty of quantizing activations to weights by scaling up the the weights and performing the inverse transformation to activations; to accomplish this it needs to know which layer the smoothed out activations pass into i.e which layers weights need to be scaled up.

just a clarity question otherwise LGTM.
@robertgshaw2-neuralmagic would be good to get your feedback

Dipika smoothquant shifts the difficulty of quantizing activations to weights by scaling up the the weights and performing the inverse transformation to activations; to accomplish this it needs to know which layer the smoothed out activations pass into i.e which layers weights need to be scaled up.

Yes I understand that.  My comment was that I did not understand the wording behind layers smoothed inputs pass into  - read awkwardly. Maybe something like layers that have smoothed inputs being passed into or something along those lines

just a clarity question otherwise LGTM.
@robertgshaw2-neuralmagic would be good to get your feedback

Dipika smoothquant shifts the difficulty of quantizing activations to weights by scaling up the the weights and performing the inverse transformation to activations; to accomplish this it needs to know which layer the smoothed out activations pass into i.e which layers weights need to be scaled up.

Yes I understand that. My comment was that I did not understand the wording behind layers smoothed inputs pass into - read awkwardly. Maybe something like layers that have smoothed inputs being passed into or something along those lines

I tried to address it in my last commit kindly let me know if that's better

Why do inputs and outputs need to be specified in the mappings? Correct me if I'm wrong, but smoothquant is non-applicable for layers with multiple inputs, so specifying the input module should be enough to uniquely identify that activation, right?

Why do inputs and outputs need to be specified in the mappings? Correct me if I'm wrong, but smoothquant is non-applicable for layers with multiple inputs, so specifying the input module should be enough to uniquely identify that activation, right?

You are correct we could do something like that, but that's an algorithmic change which is out of the scope for this PR

@rahul-tuli We can make a future change to support output inference, conditioned on the type of the mapping. Ie List[List[Union[List[str], str]] is the current mapping type, List[str] can be an inferrable mapping type.


No such file or directory: 'test.txt'

When I run eval.py I can get the results file, as following(I just use 3 images to test the code)
Finished loading model!
F:\Research\Pytorch-SSD-master\ssd.py:100: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.
self.softmax(conf.view(-1, self.num_classes)),  # conf preds
im_detect: 1/3 1.819s
im_detect: 2/3 3.539s
im_detect: 3/3 1.817s
Evaluating detections
Writing aeroplane VOC results file
Writing bicycle VOC results file
Writing bird VOC results file
Writing boat VOC results file
Writing bottle VOC results file
Writing bus VOC results file
Writing car VOC results file
Writing cat VOC results file
Writing chair VOC results file
Writing cow VOC results file
Writing diningtable VOC results file
Writing dog VOC results file
Writing horse VOC results file
Writing motorbike VOC results file
Writing person VOC results file
Writing pottedplant VOC results file
Writing sheep VOC results file
Writing sofa VOC results file
Writing train VOC results file
Writing tvmonitor VOC results file
VOC07 metric? Yes
Traceback (most recent call last):
File "F:/Research/Pytorch-SSD-master/eval.py", line 424, in
thresh=args.confidence_threshold)
File "F:/Research/Pytorch-SSD-master/eval.py", line 401, in test_net
evaluate_detections(all_boxes, output_dir, dataset)
File "F:/Research/Pytorch-SSD-master/eval.py", line 406, in evaluate_detections
do_python_eval(output_dir)
File "F:/Research/Pytorch-SSD-master/eval.py", line 163, in do_python_eval
ovthresh=0.5, use_07_metric=use_07_metric)
File "F:/Research/Pytorch-SSD-master/eval.py", line 250, in voc_eval
with open(imagesetfile, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
but, finally, it gives FileNotFoundError: No such file or directory: 'test.txt'
I have no idea about the 'test.txt' because I have already a 'test.txt' in path'~\VOC2007\ImageSets\Main'
Have anyone met this? Thanks!

I figure it out, it's path problem.

I figure it out, it's path problem.
Hello, how did you solve your problem？

How do you fix it ?

I figure it out, it's path problem.

I have the same problem.  Do you know how to fix it? thanks


[FEATURE] Make paramethers of goto_preview_definition optional

LSP gives warning about them being required, but it works perfectly without opts

Hey, do you mean opts in the setup call of the plugin?


Unable to export keys from keychain on chrome Mac

I am trying to switch browsers from chrome to Brave and I am unable to export the files. Chrome shows a download, but nothing happens and does not show up in the downloads folder Mac

Can you please check if you can download files without issues from your
browser? I ve got a similar issue before but it turned out it was a
browser issue after an update.
I've tested it and it's working fine on my end on both Chrome and Brave
(Mac).
Le jeu. 15 avr. 2021 à 02:11, dm312-1 @.***> a écrit :

I am trying to switch browsers from chrome to Brave and I am unable to
export the files. Chrome shows a download, but nothing happens and does not
show up in the downloads folder Mac
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/stoodkev/hive-keychain/issues/90, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHXAF3KS35X4KROR6XKYQX3TIXLG7ANCNFSM4254TXWA
.

I figured out what happened. I had to disable ask where to download on chrome.


Update Director:BuildScript action,condition matching

This change makes the markup a little relaxed. Before, a single single space was required between the action and the start of the condition bracket. If more than one space was present after the action, it would fail with the error Invalid Action as the action string had trailing spaces. (yeah maybe a well placed action:trim() would've probably worked too, but this fixes it at the source)
Following example is valid, and will parse as expected:
change(#2)            [ self(#3).active  ]
use(Emerald Bite:525) [ enemy.hp < 454   ]
use(Emerald Dream:598)[ enemy(#2).active ]

Also has the added benefit of triggering the Invalid Line error instead of Invalid Condition if someone were to construct the line wrong.
Tested with /dump PetBattleScripts:GetModule('Director'):BuildScript('use(#3)   [ self(#3).active ]')

Figured you'd want a screenshot of this working. Fresh install with only this change applied.

Was there a reason to not do the same for the f(x) parser, i.e. allow use    (strong) [ kill ]? If no, I suggest adding
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 89af36b..03aca14 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,7 @@

 ### Fixes

-- Allow a dynamic number of spaces between action and condition to allow both `do(x)   [ yes ]` and  `do(x)[yes]`.
+- Allow a dynamic number of spaces between action and condition to allow both `do  (x)   [ yes ]` and  `do(x)[yes]`.

 ## v1.8

diff --git a/Core/Util.lua b/Core/Util.lua
index 9591983..fe3f27d 100644
--- a/Core/Util.lua
+++ b/Core/Util.lua
@@ -16,7 +16,7 @@ function Util.ComparePet(owner, index, pet)
 end

 function Util.ParseQuote(str)
-    local major, quote = str:match('^([^()]+)%((.+)%)$')
+    local major, quote = str:match('^([^()]-)%s*%((.+)%)$')
     if major then
         return major, Util.ParseID(quote) or quote
     end

Other major languages support this, so I think it is OK! :)

Was there a reason to not do the same for the f(x) parser

Honestly never thought about that. I just liked the idea of aligning multiple lines of conditions.

Other major languages support this, so I think it is OK! :)

Well if Lua allows it, than why not.


[iOS][Accessibility] ACRTextView placeholder text color too light

Platform
What platform is your issue or question related to?

iOS

Author or host
Host
Version of SDK
Latest main (2020.07)
Details
ACRTextView placeholder text color is not using UIColor.placeholderText. The ACRTextView placeholder text color is lighter than the placeholderText color causing accessibility issues. In the attached screenshots the “Tell me hey you’re calling (briefly)” text is the rendered adaptive card. I’ve attached a screenshot with accessibility -> increase contrast to better show the text color difference.

@JustinBlock
What's your target iOS version? placeholderTextColor is only available on iOS 13+ https://developer.apple.com/documentation/uikit/uicolor/3173134-placeholdertextcolor?language=objc
Thanks

@jwoo-msft I am running on iOS 13.6. In my example the top text block is using UIColor.placeholderTextColor but the bottom rendered card isn’t.

@jwoo-msft I am running on iOS 13.6. In my example the top text block is using UIColor.placeholderTextColor but the bottom rendered card isn’t.

Yes, I can update the UITextColor to placeholder text color for the devices with iOS 13+.


Get "Resource Does Not Exist" when trying to save or cancel version history

it redirects to https://ipt.gbif-uat.org/manage/history.do?r=mike-resource&v=1 instead of https://ipt.gbif-uat.org/manage/history.do?r=mike-resource&v=1.0

Fixed with e4e22a200185a57b0a1e08445f36e17d93030295


Coordinates for Region Objects

Describe the bug
The web GUI lets you use lat/long coordinates for a Region to multiple decimal places:

The provider only let's you use one decimal place (example 51.5) and when you get to two decimal places or more (example 51.51) the error below is receieved:

Expected behavior
Provider should allow input of the same format of number as the web GUI and underlying PAN-OS
Current behavior
Provider errors if more than one decimal place number is used
Steps to reproduce
resource "sase_objects_regions" "test_terraform_01" {
  folder = "Shared"
  name   = "test-region-01-terraform-london"
  geo_location = {
    latitude  = 51.500152
    longitude = -0.126236
  }
}

Screenshots
See above
Your Environment

Version used: No provider version yet, tested with up-to-date git pull on 20 March 2023
Environment name and version (e.g. Chrome 59, node.js 5.4, python 3.7.3): Terraform 1.3.8
Operating System and version (desktop or mobile): MacOS Ventura 13.2.1
Link to your project: https://github.com/jamesholland-uk/playground/tree/main/sase-terraform

This looks to have been a SDK bug, which was fixed in yesterday's 1.2 release:
hashicorp/terraform-plugin-framework#648
I'll update the dependencies for the provider and this should be fixed.


replace task name with slot id

Codecov Report

Merging #373 into master will increase coverage by 0.2%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master     #373     +/-   ##
=========================================
+ Coverage   42.95%   43.16%   +0.2%
=========================================
  Files          21       21
  Lines       10764    10764
=========================================
+ Hits         4624     4646     +22
+ Misses       4937     4901     -36
- Partials     1203     1217     +14

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 4a74acb...ba4609d. Read the comment docs.


table_add and table_read accept only STANDARD TABLE

Hello Lars,
Implementing switches and business functions/business function sets objects I found an issue with table_add and table_read methods in lcl_xml class. They accept only standard table. If we add a structure to xml with nested table as sorted one for instance, there will be a dump. Faced it with structure SFW_BFBS_OUTTAB_LINE component CELLTAB. I changed it locally in a way that it_table/ct_table is an index table. And in table_read method instead of
APPEND INITIAL LINE TO ct_table ASSIGNING <lg_line>.
used:
DATA: lrs_line TYPE REF TO data.
CREATE DATA lrs_line LIKE LINE OF ct_table.
ASSIGN lrs_line->* TO <lg_line>.
CASE lv_kind.
.....
ENDCASE.
INSERT <lg_line> INTO TABLE ct_table.

What do you think? Should it be changed to ANY TABLE or INDEX TABLE is enough?

Yeah, I also ran into that problem once, used a workaround instead of a real fix, I'm lazy :smile:
I think we should change the method signature to ANY TABLE and add above code. Not sure if it will work with everything, but we will find out in the future, perhaps add some unit tests.

this should be fixed now with next-gen-xml


Improve toolbar object addon compatibility

Addons like ElvUI, praise be to their name, use the text field on LDB objects when creating displays for those objects. Our toolbar objects were missing this field, so they'd show up in the DataText selection but would be completely blank.
I've added a function that allows objects to signal when they're updated, as well as added text attributes to some of the buttons people might want to use as DataTexts. Maybe it's worth going through and standardizing the way these LDB objects are handled but until then, this makes the objects functional for LDB displayer addons.

I don't see why we're manually firing callbacks still - they're fired automatically. If other addons aren't listening to them then us firing them twice by force accomplishes nothing.

I don't see why we're manually firing callbacks still - they're fired automatically. If other addons aren't listening to them then us firing them twice by force accomplishes nothing.

well boy do I have news for you


MWPW-162914 [nala][MEP]Nested placeholders

This nala test addresses issues with nested placeholders: they should be accessible in a separate manifest and the most recent placeholder should replace the previous one.
Resolves: MWPW-162914
Test URLs:
Before: https://main--milo--adobecom.aem.page/?martech=off
After: https://nested-placeholder--milo--adobecom.aem.page/?martech=off
PSI check: https://nested-placeholder--milo--adobecom.aem.page/?martech=off
test page with examples: https://main--milo--adobecom.hlx.page/drafts/nala/features/personalization/nested-placeholder/

I am closing this PR because there is an outstanding issue: https://jira.corp.adobe.com/browse/MWPW-162760
When that MWPW ticket is closed, I will re-open a new PR


Iteration & Array for boot.tsx

Replacing the repeating setTimeOut & setText calls with an iteration of an array. Not tested in the project. Just an example.

Thanks!


Module/File missing

evaluation.py makes a reference to "cGAN.model" which is not present in this code.

@IdanAzuri

@shastripawas, thanks for reaching out. Indeed there is a missing module of the conditional GAN, however this is not evaluation script of GLICO. The relevant evaluation file can be found here:

glico_model/evaluation.py

Thank you for the clarification.
Get Outlook for iOShttps://aka.ms/o0ukef

From: Idan_azuri @.>
Sent: Saturday, July 2, 2022 10:12:35 PM
To: IdanAzuri/glico-learning-small-sample @.>
Cc: PAWAS SHASTRI @.>; Mention @.>
Subject: Re: [IdanAzuri/glico-learning-small-sample] Module/File missing (Issue #4)
Closed #4https://github.com/IdanAzuri/glico-learning-small-sample/issues/4 as completed.
—
Reply to this email directly, view it on GitHubhttps://github.com/IdanAzuri/glico-learning-small-sample/issues/4#event-6922341955, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AN7LVBRI3FKUNLIIM54SETTVSBWPXANCNFSM52NSJKMQ.
You are receiving this because you were mentioned.Message ID: @.***>


how do I get the text of the message sent

I mean Like if I want to get the message befor passing it the the hears() function.

What do you mean? You could listen for .* if you want to listen for all messages

I found it. please create a gitter chat on this repo.
Many are getting lost with help

If you need help that is unrelated to issues, please join us on our BotMan Slack team: https://rauchg-slackin-jtdkltstsj.now.sh/


Miner Mole should become the copied card in opponent's city

Describe the bug
According to the rulebook. Miner Mole should become the copied card in opponent's city. If the copied effect requires any other card in the city, it should check the opponent's city not the city where Miner Mole is in.

To Reproduce

A has Farm & Barge Toad in his city
B doesn't have a Farm in town. B plays Miner Mole and specify Barge Toad in A's city
B gains no twigs

Expected behavior
B should gain 2 twigs because there is a Farm in A's city

Thanks for catching this! Pushed a fix, will deploy this shortly

Thanks for catching this! Pushed a fix, will deploy this shortly