Crash Parameter Suggestions (RideEntity)

Just a couple of suggestions I had for the crash parameters for the RideEntity action, they're quite niche for my usecase, and i'm unsure if they're possible, but any help is appreciated!-

crash_entity_speed / crash_entity_dismount_speed
At the moment, there are 'entity' versions of most of the crash parameters, but these two are absent. Currently this is slightly abuseable in my usecase, as players are crashing whenever an entity is near them at the lowest speeds. This also means they can very slowly walk/ride towards mobs or hordes of mobs and continuously push them away and damage them.

crash_cooldown / crash_entity_cooldown
Another slight problem is that crash effects seem to spam/repeat constantly if the player is stuck against/inside a block or entity. This can result in deafening noise spam and particles if there are crash effects enabled. It would be handy to have a parameter where we can set a cooldown, where players cannot crash again within this timeframe.

crash_entity_speed and crash_entity_dismount_speed added for next dev build.
Unlike crash_dismount_speed, the behavior for crash_entity_dismount_speed is to not dismount by default, to match current behavior.

Also adding the cooldown parameters :)
I wasn't able to test any of this, so please let me know if it's not working.

Thanks for adding these! Just gave them all a quick test-
crash_entity_speed and crash_cooldown both seem to work exactly as intended!
crash_entity_dismount_speed does technically work, but it seems to trigger and dismount you as soon as you hit the speed determined within this parameter. I'm wondering if it's because it's accidentally targeting the mount or rider?
crash_entity_cooldown unfortunately doesn't seem to work, and it's still possible to creep forward at a mob continuously damaging/crashing into it.
A couple other things as well- could crash_entity_braking potentially be another parameter? That way players can configure whether motion stops when crashing into blocks or entities independently
& the Velocity action doesn't seem to work on a player that is currently using RideEntity anymore- It used to on one of my old dragon spells in HTTYD, but it will no longer apply velocity if the player is moving with that spell. It will however, apply velocity if the player is using RideEntity but is currently stationary/not moving.

Oh, I did have one more request, sorry to ask for so much! Could we get a jump_cast_cooldown as well? Currently there is no buffer/click cooldown for when the player presses space, so they are immediately spammed with the spell's cooldown sound effect and message every tick if they tap or hold spacebar for longer than a millisecond.

Another update- unfortunately, crash_speed doesn't seem to be working for me anymore, and no matter the value it is set to, crash effects will run on a collision with a block. crash_dismount_speed also seems to be working differently, as now you will be dismounted immediately at 0 speed if the value is not manually set to something higher.
When removing all crash parameters from a RideEntity spell, it seems the player will immediately crash and dismount if the Entity starts the spell on a solid block.
This can be circumvented by setting crash_dismount_speed to a value over 0, but crash effects will still run whenever the player collides with a block at any speed no matter what crash_speed is set to (but this does still respect crash_cooldown)

Oof- so sounds like I broke something? And then released it... :sob:

Potentially, although I'm a little confused as this happened upon updating magic from the first crash parameters dev built to the new full release 😅 It seemed normal when I was on Paper 1.20.1 and the dev build, but I only noticed this behaviour upon updating to Paper 1.20.4 and using the full 10.8.12 Magic release... Though I may have simply not noticed it prior to updating...

Oh, I did have one more request, sorry to ask for so much! Could we get a jump_cast_cooldown as well? Currently there is no buffer/click cooldown for when the player presses space, so they are immediately spammed with the spell's cooldown sound effect and message every tick if they tap or hold spacebar for longer than a millisecond.

I think for this one you could/should just remove cooldown FX for such spells- is that an ok workaround?
I don't really want to track separate cooldowns for different triggers, feels like a slippery slope.
I am looking at all the problems with crashing you've described but can't see what I broke in the code. I am getting tempted to revert all of the changes if I can't figure it out quickly but I will keep you updated.

That's understandable, no worries! Removing cooldown fx should work fine for that :)
I'm not 100% sure what could have broken/changed either with the crash triggering, I see you pushed a new dev build so I'll give that a couple tests to see if anything changed! If not, no worries about reverting it- I doubt the addition was getting much use outside of my own request anyway :sweat_smile:

Well I was worried I completely broke vehicles or crashing, but I tested broomsticks and cars and they seem ok.
I did find a couple of issues with the new parameters, that's what the dev build was about- but nothing I expect to fix the stuff you're seeing.
If you still have trouble and can provide a simplified test case that'd help a lot!

Just checked my server with the new build and still getting the same result unfortunately... I compiled a simple spell and mob that use the same configs/parameters as the actual ones I use, as you said. Hopefully that might help narrow it down! (Had to change filetype from yml to txt to attach)
crash_testmob.txt
crash_testspell.txt

Update to this:
I fear the release may have broken brooms for a few people. We've had a few reports in Discord of brooms no longer working in 10.8.12 - Perhaps reverting the change may be necessary :(

:(
I'll try and find some time to look at this today. I really don't know what could've gotten broken (just reviewing the code several times), and they're working fine on my demo server.

Oh I think that issue from Discord is a different problem, fortunately. That's a general problem summoning entities from an internal Spigot change.

I was able to reproduce the "instant dismount" behavior with the configs you provided.
But, interestingly, the problem is the same  in build#4253 which doesn't have any of the new parameters or other changes in it.
So I'm not sure what's going on here- it seems like the spell thinks the target mob is inside of the block underneath it, which is why there is an instant-crash.
Do you normally use parrots as mounts without issue? Not sure if it could be something specific to them ...
I'll keep testing and see if I can figure out what's going on, but I'm hoping this means all the new parameters may be working ok.

That's super weird... In that case I honestly can't think of anything that might've changed other than me tinkering with my own configs... I've been using parrots as the base for all my dragons since around May last year with no issues, and the instant crashes sort of blindsided me as I was testing these new parameters- so it probably is something within those configs that's tripping me up

Huh that is weird! I can't think of how it would've been avoiding the crash before. Possibly something in a Minecraft/Spigot update?
What I'm seeing in the debugger is that mounting a parrot causes the player to drop down so their Y-coordinate is underground. This causes an instant-crash.
What I can offer:

I could add a parameter to bypass this check, but I would caution against that. There are a lot checks in there meant to prevent exploits, like players glitching through walls or ceiling.
I was able to fix it by teleporting the parrot up one block before mounting. This required some tweaks to the Teleport action (so new dev build) and these changes:

    cast:
    - class: Cancel
    - class: ChangeContext
      target_offset: 0,1,0
      actions:
      - class: Teleport
        teleport_target: true
        direct: true
      - class: RideEntity

Thanks so much for providing this fix!! Teleporting the parrot definitely seems like the best bet- I'll give the new dev build and teleportation a try now! (I'll also check if the constant crash effects persist)

Upon testing the new build- The teleportation works great and allows the player to get off the ground! However, if the player touches a block they are still immediately dismounted if crash_dismount_speed is not set. Could this be defaulting to 0 and causing crashes at speeds of 0 and above? I'm unsure if this was already the default behavior though, so may be nothing to worry about...
crash_speed still doesn't seem to be working properly though unfortunately, the behavior is similar to crash_dismount_speed where it appears to be defaulting to 0 and triggering at any/all speeds, but unlike crahs_dismount_speed this doesn't seem to be chanegable/fixable by simply setting the parameter manually, and giving the parameter a value doesn't seem to have any effect at all


java.lang.NoSuchMethodException: setActivityController

Hi All,
I have issue when run code . My error :
Failed to install custom IActivityController: setActivityController [interface android.app.IActivityController]
java.lang.NoSuchMethodException: setActivityController [interface android.app.IActivityController]
at java.lang.Class.getMethod(Class.java:1981)
at java.lang.Class.getDeclaredMethod(Class.java:1960)
error at method :
private static void setActivityController(@Nullable IActivityController activityController) {
try {
Class<?> amClass = Class.forName("android.app.ActivityManagerNative");
Method getDefault = amClass.getMethod("getDefault");
Object am = getDefault.invoke(null);
Log.d(TAG, "setActivityController: " + am.getClass());
Method setMethod = am.getClass().getDeclaredMethod("setActivityController", new Class[]{IActivityController.class});
setMethod.invoke(am, activityController);
} catch (Throwable e) {
Log.e(TAG, "Failed to install custom IActivityController: " + e.getMessage(), e);
}
}
Can you tell me how to fix this error ?

Can you share more info about your setup? What kind of emulator are you using? And what version of Test Butler?

I've seen this before. You aren't using Gradle 3.5 are you? If so, try Gradle 3.4.1.

I'd be curious to know how Gradle version could cause this. We've used Test Butler with Gradle 3.5 as well as Gradle 4.0 without any issues.

Ignore that last suggestion, sorry.
Sounds like a mismatch of test butler versions on the emulator and the library version used in androidTest.

Download and install the latest test butler APK from here (currently 1.3.1) on the emulator.
Check the test butler library is the same version as used in the code.
e.g.
androidTestCompile 'com.linkedin.testbutler:test-butler-library:1.3.1'

Line code : Object am = getDefault.invoke(null) returned ActivityManagerProxy for me and method setActivityController not in ActivityManagerProxy .
I using nexus 5x.

I've been able to use it fine on a Nexus 5X API 25 emulator fine. Not sure what's different. What api level was the Nexus 5X and Nexus 6P at? Were they different?

I don't know but when I run on nexus 5x with API then I have to fix code with two params. I run on simulator 6P API 23 then I don't have to fix code.

Quick question: Do the emulators come with Google APIs (e.g. Google maps, etc)?

yeah, it has Google APIs

OK, try using an emulator image API 25 without Google APIs.

I tried run with API 25 without Google APIs and it's ok. Don't need to fix code .

Cool. But I am running tests on API 25 with Google APIs on my machine. It's bizarre why it's not working on your machine.
Does it manage to do some tests and then fails on one test or does the build fail setting up tests?

Is there a workaround without compiling test butler myself? Are there any other google api emulators i could use?

Can your demo invoke setActivityController successfully ? As I know system will check if the caller has permission <android.permission.SET_ACTIVITY_WATCHER>. If no, it will fail to invoke. Unfortunately the permission is HIDE and system app use only. Is it possilbe to invoke it on 3rd party app?

I see the same issue. Pixel Emulator, API 25 w/ Google APIs. I've verified that the apk and library versions match. I don't see a system image in sdkmanager for API 25 without Google APIs.
This issue occurs both on setup and teardown. Stack trace:
03-15 18:26:31.624 10149-10149/? D/ButlerService: ButlerService starting up...
03-15 18:26:31.639 10149-10149/? E/NoDialogActivityController: Failed to install custom IActivityController: setActivityController [interface android.app.IActivityController]
                                                               java.lang.NoSuchMethodException: setActivityController [interface android.app.IActivityController]
                                                                   at java.lang.Class.getMethod(Class.java:1981)
                                                                   at java.lang.Class.getMethod(Class.java:1637)
                                                                   at com.linkedin.android.testbutler.NoDialogActivityController.setActivityController(NoDialogActivityController.java:114)
                                                                   at com.linkedin.android.testbutler.NoDialogActivityController.install(NoDialogActivityController.java:95)
                                                                   at com.linkedin.android.testbutler.ButlerService.onCreate(ButlerService.java:147)

I am also unable to install the test butler APK on API 24 or 26.

The fix for this has been merged, I'll do a new release sometime this week.


only show the free space that current driver

is more confortable to see only free space that current driver. The letter is very small when show all driver

Certain times it could be relevant, such as when deleting titles, are not tied to any specific partition.


update readme

Try to make it less confusing to new users.
cc @AkihiroSuda @lachie83

Codecov Report

Merging #100 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master    #100   +/-   ##
======================================
  Coverage    0.16%   0.16%
======================================
  Files          11      11
  Lines         619     619
======================================
  Hits            1       1
  Misses        617     617
  Partials        1       1

Ya I was thinking the same :) going to downsize haha just Linux lol
On Thu, May 24, 2018 at 20:25 Akihiro Suda<EMAIL_ADDRESS>wrote:

@AkihiroSuda commented on this pull request.
In README.md
https://github.com/genuinetools/img/pull/100#discussion_r190764970:

-This project is not trying to reinvent buildkit. If anything all changes and
-modifications for buildkit without privileges are being done upstream. The
-goal of this project is to in the future just be a glorified cli tool on top of
-buildkit.
+Make sure you have sufficient entries (typically >=65536) in your
+/etc/subuid and /etc/subgid.
+
+### High Level
+
+
LGTM but maybe images are too large?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/genuinetools/img/pull/100#pullrequestreview-123214025,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABYNbEBHGCZUm04wlK0JJNoMVqygqeR0ks5t109-gaJpZM4UM2j0
.

--
Jessie Frazelle
4096R / D4C4 DD60 0D66 F65A 8EFC  511E 18F3 685C 0022 BFF3
pgp.mit.edu http://pgp.mit.edu/pks/lookup?op=get&search=0x18F3685C0022BFF3

This is great. Thanks Jess. Love the diagrams. 👍


if support input a data dir for training data and eval data

Thanks for participating in the XGBoost community! We use https://discuss.xgboost.ai for any general usage questions and discussions. The issue tracker is used for actionable items such as feature proposals discussion, roadmaps, and bug tracking.  You are always welcomed to post on the forum first :)
Issues that are inactive for a period of time may get closed. We adopt this policy so that we won't lose track of actionable issues that may fall at the bottom of the pile. Feel free to reopen a new one if you feel there is an additional problem that needs attention when an old one gets closed.
For bug reports, to help the developer act on the issues, please include a description of your environment, preferably a minimum script to reproduce the problem.
For feature proposals, list clear, small actionable items so we can track the progress of the change.

Yes, you can simply specify the full path of the directory containing multiple LIBSVM/CSV files.

if you mean i should use the jvm-package version, i use the shell dmlc_yarn.py now, can you give me a demo? thanks

Wherever a file name is to be specified for data files, you can put in directories.

it works by use the directory directly， i got the error because of i use the /xxx/*， thank you for my help！


[bug]: funding_txid_str not returned when opening channel using REST API

Background
the response of creating a channel does not return funding_txid_str as one of the fields despite being listed as valid parameters in the documentation: https://lightning.engineering/api-docs/api/lnd/lightning/open-channel-sync
Your environment
Bitcoin core v24.0, LND 0.15.5-beta running in Polar (Windows)
Steps to reproduce
Create two nodes and create a channel between them using the following:
 curl --location --request POST 'https://<IP_ADDRESS>:8081/v1/channels' \ --header 'Grpc-Metadata-macaroon: your_macaroon_here' \ --header 'Content-Type: application/json' \ --data-raw '{     "node_pubkey": "pubkey_here",     "local_funding_amount": "100000" }'
Expected behaviour
Response should include funding_txid_str alongside funding_txid_bytes and output_index
Actual behaviour
API call returns the following:
{
    "funding_txid_bytes": "iNGB21WBmdcPr/JC4kuvbu61swks+VV5NVvYc/i7gZk=",
    "output_index": 0
}

Same as in #7421, this feature targets v0.16.0-beta
I will update this comment with how you can check the docs for a targeted version

@positiveblue thanks. By "can only contain one of the values" does this mean that we need to check for the existence of both?

@rolznz yes, one of those values will always be undefined/null, but it is up to the method implementation to decide which one. Changing it now would be breaking the API (because people may not be checking which one is set but assuming that it will always be the one that was there when they tried it)

@positiveblue is there an implementation that returns funding_txid_str, so we can test it?

@rolznz I do not know any endpoint that sets the str version instead of the byte one


Terraform Integration

Hi mate,
I was looking at using this to create a terraform provider for proxmox; was this your intended use of the library?
It looks like I'll need to make a bunch of changes to get it to work in a similar fashion to how most of the other providers work -- let me know if you'd want my changes or if I'm better starting another project :)
Cheers!
H

Hello houst0n,
I wrote this library as part of writing a command line tool to manage a ProxMox/Foreman cluster in an automated build system. As a sysadmin starting out with Go, I am more than happy to accept all extensions/improvements/standardisations and any advice from others to make this library better.
As long as people agree to the open license of the project, I'll encourage them to join me on this project.

https://github.com/lord2800/terraform-provider-proxmox/issues/1


TorXakis wrongly refuses action

Looked deeper into the error got in SpecProduce (see #100).
When we run the following "purpose-model" with MultipleControlLoops.txs model,
PROCDEF replayProc [In_Correction :: Int # BatchId; In_ProduceCmd :: Int # ProduceCmd; In_ProduceMaterial :: Int # BatchInfo; Out_ProduceMaterial :: Int # BatchInfo; Out_ProduceReport :: Int # ProduceReport]() EXIT
::=

    In_ProduceCmd ! 0 ! C_ProduceCmd(C_ProductId(1),C_RecipeId(16))
>-> In_ProduceCmd ! 0 ! C_ProduceCmd(C_ProductId(1),C_RecipeId(-38))
>-> In_ProduceMaterial ! 0 ! C_BatchInfo(C_ProductId(1),C_BatchSize(50))
>-> EXIT
ENDDEF

MODELDEF  Replay
    ::=
        CHAN IN     In_Correction
        ,           In_ProduceCmd
        ,           In_ProduceMaterial
        CHAN OUT    Out_ProduceReport
        ,           Out_ProduceMaterial
    BEHAVIOUR
        replayProc [ In_Correction,In_ProduceCmd,In_ProduceMaterial,
                                       Out_ProduceMaterial,Out_ProduceReport] ( )
        |[ In_Correction,In_ProduceCmd,In_ProduceMaterial,
                                       Out_ProduceMaterial,Out_ProduceReport]|
        produce [ In_Correction, In_ProduceCmd, In_ProduceMaterial, Out_ProduceReport, Out_ProduceMaterial ] ( 0 )
ENDDEF

TorXakis reports failure:
TXS <<  stepper Replay
TXS >>  Stepper started
TXS <<  step 4
TXS >>  .....1: Act { { ( In_ProduceCmd, [ 0 C_ProduceCmd(C_ProductId(1),C_RecipeId(16)) ] ) } }
TXS >>  .....2: Act { { ( In_ProduceCmd, [ 0 C_ProduceCmd(C_ProductId(1),C_RecipeId(-38)) ] ) } }
TXS >>  .....3: Act { { ( In_ProduceMaterial, [ 0 C_BatchInfo(C_ProductId(1),C_BatchSize(50)) ] ) } }
TXS >>  cannot do action
TXS >>  FAIL: Act { { ( In_ProduceMaterial, [ 0 C_BatchInfo(C_ProductId(1),C_BatchSize(50)) ] ) } }

According to the model the action is allowed. In due time, one of these outputs is expected:
Out_ProduceReport ! 0 ! C_ProduceReport(C_BatchInfo(C_ProductId(1),C_BatchSize(50)),C_RecipeId(16),C_Time(X))
OR
Out_ProduceReport ! 0 ! C_ProduceReport(C_BatchInfo(C_ProductId(1),C_BatchSize(50)),C_RecipeId(-38),C_Time(X))

Happens in StepN

The hidden action is non-unique, which is not allowed by TorXakis.
However, the error message is not related to this fact!

The behaviour of TorXakis is not wrong:  There are hidden variables which do not have unique solutions, and TorXakis cannot deal with that. So what is wrong is that indeed the related error message was not printed.  This bug has been repaired.

Additional remark:
Hidden variables:  [ $H_In_Cmd$$$2151$9$1$1$   $H_In_Cmd$$$2151$10$1$2$   ]
Solutions:
( "H_In_Cmd$$$2151$9$1$1" == 0 )
( "H_In_Cmd$$$2151$10$1$2" == "C_ProduceCmd$1396" ( "C_ProductId$1150" ( 1 ) "C_RecipeId$1349" (     16 ) ) )
( "H_In_Cmd$$$2151$9$1$1" == 0 )
( "H_In_Cmd$$$2151$10$1$2" == "C_ProduceCmd$1396" ( "C_ProductId$1150" ( 1 ) "C_RecipeId$1349",     ( -38 ) ) )

Repaired error messages:

$ torxakis MultipleControlLoops.txs Purp.txs
TXS >>  TorXakis :: Model-Based Testing
TXS >>  txsserver starting: "PC-31093.tsn.tno.nl" : 9875
TXS >>  Solver initialized : Z3 [4.5.1 - build hashcode 1f29cebd4df6]
TXS >>  TxsCore initialized
TXS >>  input files parsed:
TXS >>  MultipleControlLoops.txs Purp.txs
TXS <<  stepper Replay
TXS >>  Stepper started
TXS <<  step 5
TXS >>  .....1: Act { { ( In_ProduceCmd, [ 0 C_ProduceCmd(C_ProductId(1),C_RecipeId(16)) ] ) } }
TXS >>  .....2: Act { { ( In_ProduceCmd, [ 0 C_ProduceCmd(C_ProductId(1),C_RecipeId(-38)) ] ) } }
TXS >>  .....3: Act { { ( In_ProduceMaterial, [ 0 C_BatchInfo(C_ProductId(1),C_BatchSize(50)) ] ) } }
TXS >>  after: cannot find unique value for hidden variables
TXS >>  stepN - cannot do action
TXS >>  FAIL: Act { { ( In_ProduceMaterial, [ 0 C_BatchInfo(C_ProductId(1),C_BatchSize(50)) ] ) } }
TXS <<


PowerBI Calculation Group Yields "not a Valid M Expression"

This might not be an issue with the tool but worth trying anyway...With 2.9.6 and "Allow unsupported Power BI features (experimental)" checked, I can create a Calculation Group and save back appropriately (at least using a .pbit file).
However, when opening the template in PowerBI I receive "The query, New Calculation Group 1, does not have a valid M Expression"

I noticed that the following gets written in the DataModelSchema
        "partitions": [
          {
            "name": "Partition",
            "source": {
              "type": "calculationGroup"
            }
          }
        ]

Which when compared to other queries I've seen doesn't have an "expression" key in the "source" object (may or may not be an issue)

By the way would be happy to help debug on this; out of curiosity how are you figuring out the requirements for the DataModelSchema file? Is this published by MSFT?

Found the PartitionSource docs which I assume this may be derived from, though didn't see anything documented for calculationGroup
https://docs.microsoft.com/en-us/dotnet/api/microsoft.analysisservices.tabular.partitionsourcetype?view=analysisservices-dotnet

Calculation Groups are not yet supported on models hosted by Power BI Desktop, which is why you're getting this error. If you have access to a Read/Write enabled Power BI Premium workspace, you should be able to add calculation groups to a dataset that was published to this workspace without issue.


Suggestion: Index signatures that exclude certain names

Search Terms
index signatures, else, negation
Suggestion
Most immediately inspired by https://github.com/mui-org/material-ui/blob/01b8b09fd6a28d6092ad0b192305ebe8e11c97ea/packages/material-ui-styles/src/withStyles/withStyles.d.ts#L38.  The goal is to say that "this type contains all the properties of the base type and for any other property name a CreateCSSProperties will be returned".
I can imagine implementing this as either an "anything else" signature or as an explicit/computed list of excluded names (the added flexibility of which may or may not be desirable).
Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

I've previously discussed this with @RyanCavanaugh

Duplicate of #17867


whenData() should preserve the value of AsyncLoading()

Is your feature request related to a problem? Please describe.
Consider this gist:
https://dartpad.dev/?id=ba69a9c1066bed38ea72ec8dd185f44d
This example consists of:

a FutureProvider userProvider that loads user data
an intermediary provider firstNameProvider that uses .selectAsync to extract the first name
a final provider greetingProvider that watches the intermediary provider and returns a greeting for the user

When the userProvider is invalidated, the UserProvider becomes an AsyncData(<old value>, isLoading:true)
and finally switches to AsyncData(<new value>).
The firstNameProvider however becomes a AsyncLoading(value: ) for one frame when the userProvider updates, since .selectAsync returns a future which is only resolved on the next tick of the event loop.
And the greeting provider, which uses .whenData() on firstNameProvider, will be AsyncLoading() without any value.
See this print of the values of these providers in the given sample:
AsyncData<({String firstName, String id, String lastName})>(value: (firstName: Abigail 902, id: 902, lastName: Miller))
AsyncLoading<String>(value: Abigail 538)
AsyncLoading<String>()

The first line is the userProvider with the new, updated value.
The second line is the firstnameProvider which still has the old name as value, because the future returned by .selectAsync still has to resolve, indicated by the AsyncLoading type.
The third line however does not have any value at all and is just an AsyncLoadin(), because it calls .whenData on an AsyncLoading() which does not preserve the value.
This causes a one-frame loading state on the widget that reads the greeting provider.
Describe the solution you'd like
I would propose a change to .whenData((data) => mapper(data)) to transform an AsyncLoading(value) to an AsyncLoading(mapper(value)) instead of an AsyncLoading() without value.

Would you be open to an additional method on AsyncValue or parameters similar to skipLoadingOnRefresh or skipLoadingOnReload?
We can make or own whenData as extension methods on AsyncValue, but extensions are not as powerful;
AsyncData does not have a public constructor that allows setting the isLoading field, and AsyncLoading does not have a public constructor that allows setting any fields.
I would like to have a method that just maps any present value on the AsyncValue and keeps the rest as is, I don't think this is possible with the current public API.

AsyncData does not have a public constructor that allows setting the isLoading field, and AsyncLoading does not have a public constructor that allows setting any fields.

Use copyWithPrevious for that purpose.
For now, I am unsatisfied with "whenData". I don't like it ,and don't like extending it more or adding variants.
I'd rather find a solution to the root of the problem and remove whenData entirely

Understood.
Actually, I might just avoid .selectAsync() as the additional asynchronicity caused by  Future returned by it is the source of my problem.
Have you though about a synchronous counterpart with similar semantics, which does not return Future but an AsyncValue?

Have you though about a synchronous counterpart to .selectAsync with similar semantics, which does not return Future but an AsyncValue?

That's just select

The function passed to .select() receives an AsyncValue<T> though, not an unwrapped T like .selectAsync().
So filtering rebuilds is not straightforward just with .select, also due to the possible transitions with AsyncData(loading: true) or  AsyncLoading(<oldValue>).
But I cansee  that there's so straightforward solution that fits all use cases here...

@knaeckeKami you can implement this kind of select as an extension function. Nevertheless, I support your point that this should be part of Riverpod.
extension<T> on ProviderListenable<AsyncValue<T>> {
  ProviderListenable<AsyncValue<Selected>> selectData<Selected>(
    Selected Function(T data) selector,
  ) {
    return this.select((value) => value.whenData(selector));
  }
}

Alright, it seems like we have got different use cases then.
selectData does indeed avoid rebuilds in my case.

True, in cases like this it works. In my use case, the provider rebuilds because it is invalidated or its dependencies update.

I don't think I'll go with this change. It could be breaking apps silently, which is a no-go for me.
Considering it is easy to add your own extension, I'd suggest doing that.

If anyone is looking for a way to also map the value of AsyncLoading, following code worked for me:
  AsyncValue<R> mapData<R>(R Function(T) mapFunction) {
    return when(
        data: (data) => AsyncValue.data(mapFunction(data)),
        error: (e, stackTrace) => AsyncValue.error(e, stackTrace),
        loading: () {
          final data = valueOrNull;
          final AsyncValue<R> dataAsync;
          if (data is T) {
            dataAsync = AsyncData(mapFunction(data));
          } else {
            dataAsync = const AsyncLoading();
          }
          return AsyncValue<R>.loading()
              .copyWithPrevious(dataAsync, isRefresh: false);
        });
  }

I do know that this is most probably against the guidelines of riverpod, but I found no other solution to filter the data of an AsyncValue without loosing information like isRefreshing or isLoading.


Selenium: When text entered in textbox field dropdown flashes then disappears

Chrome browser on Windows 10
Digging more to try and pinpoint the actual failure mode.  Entering issue description here in-case anyone else has an issue with this.
Selenium chrome driver being driven from C# code.  When the Selenium 'SendKeys' is executed to enter text in the typeahead input element the text is shown and the typeahead dropdown is drawn; possibly with the suggestions.  However as soon as it is drawn (or in process of being drawn) it disappears - hence unsure if suggestions are populated or not.
The really odd thing is that in Visual Studio, if the code is stepped through (Hitting F10 with Visual Studio in focus) it usually works - with the dropdown (populated with suggestions) remaining visible.
I'm in the process of trying to strip the test code down to a bare minimum and for the Typeahead to be rendered in a blank page (possibly from a static HTML locally).
For normal 'human' use all is good; the Typeahead works as expected.  It is only when under Selenium control that there is this issue.  Also unsure if this is a Selenium issue, Browser issue or Typeahead issue.

When the browser loses windows focus the onBlur event fires whose handler removes the dropdown.
However, the onBlur is also called when the browser loses focus.  While this may be a design feature it does make test, and debugging test, a real headache.
I'll close the issue, as it is probably by design, and raise a request or maybe a pull request so that the blur event handler checks that the onBlur is not a windows blur event.


METAR with no TAF

Hi, when retrieving a METAR for AU BOM station YCNK, there is no TAF issued as this is not an airport with a published approach. Hence there is only a METAR. How can we retrieve just the metar data only when no TAF exists? I see from service.py that the BOM service looks for TAF to then pull the METAR data. Can this dig a bit deeper?

Thanks for letting me know. I've fixed this in the last commit. It's part of an alpha feature release (1.4.0a1) which is now on PyPI. Let me know if it's working for you.

pulled and installed the updated version: Successfully installed avwx-engine-1.4.0a1
However, when running:
from avwx.station import Station

File "/home/pi/.local/lib/python3.7/site-packages/avwx/init.py", line 5, in
from avwx.current.metar import Metar
ModuleNotFoundError: No module named 'avwx.current'

I'm having tons of module import issues right now. I went from a flat structure to submodules, and these import errors are only showing up while installed in a separate environment. Working on fixing while trying to keep everything as similar as possible with the primary imports.

The import issue should be fixed with 1.4.0a9 Give that a try.

Yes fixed 😊 Thanks Michael
Regards,
Evan Rose
0411130975
0284466711
<EMAIL_ADDRESS>From: Michael duPont<EMAIL_ADDRESS>Reply to: avwx-rest/avwx-engine<EMAIL_ADDRESS>Date: Friday, 27 March 2020 at 4:59 pm
To: avwx-rest/avwx-engine<EMAIL_ADDRESS>Cc: "Evan Rose (evrose)"<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [avwx-rest/avwx-engine] METAR with no TAF (#28)
The import issue should be fixed with 1.4.0a9 Give that a try.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/avwx-rest/avwx-engine/issues/28#issuecomment-604829828, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHCPF32QQHZYBFHTUF7UWUDRJQ6EVANCNFSM4LK3NENA.


Generate purely non dynamic site without app bundle

Summary
I'd like to generate a site that doesn't require an app bundle or the Vue.js client side framework. I would like to use Gridsome for it's SSG features, but doesn't require dynamic app support on the client side.
Currently the build generates a rather large js bundle and loads it however this is unnecessary for purely static sites.
Is there a way to configure gridsome to eliminate building and loading these JS assets?

After some experimentation, I figured out the way to override this behavior is to change the template for the html page using a custom src/index.html.
A look at the Gridsome source shows there's some template definitions for various custom link, meta, script tags that you can embed into the document wherever you'd like, along with removing the Gridsome defined ones as well. This means you can remove the links to the Vue app bundle and the page scripts if they are not necessary for your static output.

@J-Rojas Could you provide the index.html you used to achive this?

Index.html example
<!DOCTYPE html>
<html lang="en">
    <head>
        ${title}
        ${vueMetaTags}
        ${vueMetaLinks}
    </head>
    ${app}
</html>


Update support documentation to be more accurate

We were missing instructions to report security vulnerabilities,
and all of the documentation referred to Kenneth as the only
source of support. We were also missing a link to StackOverflow.

One note. =D

Added you @Lukasa and added a bit more detail about vulnerability reporting.

This looks good.

I might duplicate the vulnerability reporting text in a top-level page called "Security". Basically you want to make it really easy for anyone googling "python requests security" to find the page and if it's under a page heading called Support it's easier for Google/users to miss it

I might break up the text into multiple paragraphs, as people don't read on the Internet, but they tend to fixate on the left edge of text (eg the beginnings of paragraphs).

I might duplicate the vulnerability reporting text in a top-level page called "Security". Basically you want to make it really easy for anyone googling "python requests security" to find the page and if it's under a page heading called Support it's easier for Google/users to miss it

"Security" is going to cause more search problems than not. I have a feeling people will be searching for that in relation to verifying/securing connections. I'm not adverse to this being a separate page (in fact I'd prefer it) but this will do for now.

I might break up the text into multiple paragraphs, as people don't read on the Internet, but they tend to fixate on the left edge of text (eg the beginnings of paragraphs).

Done

@Lukasa ping ;)

@sigmavirus24 Is it worth adding GPG key fingerprints for you and I?

Let me find mine, can you add yours as a comment?

Actually, I'll push mine, you can update yours since this is a branch on requests proper that we can both push to.

My key is there now. =)

Good to merge?

:+1:

:cake: :sparkles: :cake:


td-layout events

is it possible to subscribe to the td-layout open/close events ?

Yep, there is a sidenav property you can access to get a MdSidenav object and with it you can register to those events.

that api is here https://material.angular.io/components/component/sidenav


Add longer accuracy test on CI

nit: May we also change this in this PR? https://github.com/sgl-project/sglang/blob/89f23a5178769ce867e8fb3af3cb44da2f5399ec/python/sglang/srt/managers/tp_worker.py#L67-L68


Semantic data

Nice work! Can you share the data relevant to the semantic which format is .npy?

Thanks!


Write a Python program to convert binary to octal

Description
Write a Python program to convert binary to octal
Binary is a base-2 number system. It uses only two digits: 0 and 1. The digits are called bits. A bit is the smallest unit of information in a computer. A bit can be either 0 or 1. A bit can be used to represent a single value, such as 0 or 1, or it can be used to represent a single state, such as on or off.
Octal is a base-8 number system. It uses only eight digits: 0, 1, 2, 3, 4, 5, 6, and 7. The digits are called octits. An octit is the smallest unit of information in a computer. An octit can be used to represent a single value, such as 0, 1, 2, 3, 4, 5, 6, or 7, or it can be used to represent a single state, such as on or off.
To convert a binary number to octal, we can use the following algorithm:

Convert the binary number to decimal.
Convert the decimal number to octal.

Input  : 1010
Output : 12

How to contribute

Save the solution in convert-binary-to-octal.py file
Add convert-binary-to-octal.py file in convert-binary-to-octal folder

!assign


CI cleanup

This PR:

merges the document checks into the main QC file
removes the social workflow as both vendors would charge for the API now
rename the QC workflow from "QC checks" to "QC" to make rendering of the workflows better readable on mobile
adds a check to make sure we only run server code checks if code in InvenTree changed

Nice addition, the paths filter looks useful


UI : Change Pipeline tasks ui to switch tabs

Describe your changes :

Issue:  https://github.com/open-metadata/OpenMetadata/issues/8513#issuecomment-1319634779
Change Pipeline tasks ui to switch tabs

Type of change :

[x] Improvement

Frontend Preview (Screenshots) :

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

Reviewers
@open-metadata/ui

merge main and fix sonar

Resolve conflict


Additional benchmark launches implemented

The benchmark can now be run with the new libraries.
Case:

We run a benchmark with 8 algorithms for comparison. All results are saved in a folder. In a few months we want to test another algorithm, but we don't need to run all the previous ones. Previously, the configuration serialization mechanism would not allow us to run experiments in the same folder with the new configuration.

It is now possible to do so. You need to add the library to the configuration file and that's it.
Also add new test for some simple forecasters

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

In the file test/test_forecaster.py:

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


Adding data to the keyframes

Hi @ievgennaida,
I am working on a figma plugin, I need to record animations for the nodes in it

--> above is the screenshot on what i want to achieve, is there any way to add data to each key frame, and functions to handle it.
--> I am also planning to add a graph editor to each keyframe is there any scope for it

You can create a new TypeScript interface with all the fields required:
interface YourKeyframe extends TimelineKeyframe  {
data: ...
}
Then cast key frames to this interface and  use events to track changes .

You can check some inspiration here:
https://github.com/recallfx/tesla-light-show-editor


Document opt_ API

Also made some functions static that didn't need to be public.

Thanks @slontis and @levitte .  Fixup commit pushed addressing your feedback. @mattcaswell was right about me being right on the global A/An change :)  I just marked things as resolved to reduce the email.  Now to finish it.

Ready for review now. @ddvo, sorry about the "not apps/cms.c" comment, but it is true.

fixup: non-negative -> nonnegative

Ah, and there is the wonderful type STRINT_PAIR - I suggest removing it on this occasion
(replacing all uses by its synonym OPT_PAIR - I tried it out, it works despite the comment in opt.h) -
then there is no reason to document it :wink:

Re: STRINT_PAIR:  speak to @paulidale about that one.
I maintain this is good enough to accept for internal documentation right now.

YAFCP  (yet another fixup commit pushed)

I'm done.  Feel free to push your own fixup commits to this branch.

YAFCP (yet another fixup commit pushed)

This would make a nice CLI command alias :rofl:

The last fixup was incomplete.

I encourage you to make the changes.  As I said, for this INTERNAL manpage I'm done.

The last fixup was incomplete.

I encourage you to make the changes. As I said, for this INTERNAL manpage I'm done.

Come on, just make the markup of function arg names consistent
and I'll re-approve. And I presume @t8m will be happy as well.

Maybe we should have a doc-nit-pick tool analogous to check-format.pl :wink:

I made all the function arg names use I<>  You're now also asking for field names to be changed, if I understand comments like the one at line 96. And I shouldn't have to spend time trying to understand.  Shrug.  Change it, merge it, reject it. The nits have worn me down.

I made all the function arg names use I<> You're now also asking for field names to be changed, if I understand comments like the one at line 96. And I shouldn't have to spend time trying to understand. Shrug.

Oops, right, this is an instance of a field name! For them I'm not sure what the convention is - @t8m?
I just know that, these days, func arg names are supposed to be written like this: I<arg>
since I was often asked to make changes in this direction.
B<argv> is a function arg name, so it should look like this: I<argv>.
Similarly, "argc, argv" would better be given as I<argc>, I<argv>.
And the CLI option I<-sha1> should be rendered as B<-sha1>.
Likely these four nits are the only ones remaining.

I'm willing to approve anyway as this is internal API doc.

Thanks for the comments and feedback, glad this is getting merged.  Hope someone will fix all the remaining nits at some point, I guess.  (And yes, as the original author of find-doc-nits I appreciate the irony)

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Squashed and merged :)

The issues identified above and not solved by this PR are now handled in the follow-up PR #15111.


Is this a virus?

I dont know if its a virus please tell me

What do you think?

Well if virus total says no… what do you think??

I doubt this works anymore.


Add custom informations request on Contact form

We will have to create different forms in the Contact form to gather different informations:

General enquiries
Feedback
Payement information change
Claim my listing

@lcoenen
I remember that I added comments to an issue in which I explained each of the purposes of the contact form and the questions for each one, but I can't find it.
Do you know where they are?
Thanks.

Found it.
Issue #113 the comments were hidden.
Do you want to keep them there? Or do you prefer that I transfer that information into this issue?

@RohrerHope please copy-paste them here, this will be easier :)

@RohrerHope please copy-paste them here, this will be easier :)

Here it is
Ideas for the dropdown menu:
Title of the field: Select your contact purpose

General Inquiry
Booking a pub
Listing a space
Claiming a listing
Changing the payment information
Corporate Benefit Inquiry

What happens when they choose each of them?

General Inquiry
Booking a pub
Listing a space

Contact form remains the same. No new field needs to be presented.

Claiming a listing

Contact form adapts and adds new fields (all mandatory):

Your name (text field)
Your last name (text field)
Your email address (text field with validation for proper email address)
Listing's name (text field)
Are you the owner or manager of the pub? (multiple options question with 2 options: Owner, Manager. Only one option can be selected.)
What's the pub's phone number? (text field controlling the number of characters to be entered)
Please indicate if the pub has any of the following: (checkbox options with 4 options: Website, Facebook page, Twitter, Instagram. More than one option can be selected.)
To claim your listing you must agree to our Terms & Conditions of Service, together with our Privacy Policy. (checkbox with only one checkbox option: I agree. The T&Cs and Privacy Policy must be hyperlinked to their corresponding pages.)

Best case scenario here is that as they are typing the name of the listing, we show results below it, with the listings that match the text they are inputting. Much like what Google does in Google Maps when you start typing an address and it starts to show results that match your text.

Changing the payment information

Contact form adapts and adds new fields:

Account email (text field with validation for proper email address)
Listing's name (text field)
New listing IBAN (text field with validation for proper IBAN format)

1.1 Note: Best case scenario here is that the account email is already populated if the user is logged in.
2.1 Note: Best case scenario here is that as they are typing the name of the listing, we show results below it, with the listings that match the text they are inputting. Much like what Google does in Google Maps when you start typing an address and it starts to show results that match your text.
3.1 Note: Best case scenario here is that the IBAN field validates the IBAN format. IBANs have an international format and we can validate against it.

Corporate Benefit Inquiry

Contact form adapts and adds new fields:

Your name (text field, mandatory)
Organisation (text field, mandatory)
Number of employees (dropdown field: options here: https://developer.linkedin.com/docs/reference/company-size-codes#, mandatory)
Website (URL field, mandatory)

Thank you 👍

We will have to remember to adjust the links in FAQPage.

Here is the list here: https://github.com/Whichost/frontend/issues/113#issuecomment-487271349

Here's the requirement list:

The correct set of fields should be shown depending on the enquiry field.
The email template should react accordingly.
The mail address field should be grabbed from connected user if any.
The enquiry field should react to the URL.
The IBAN should be validated.
The links accross the website should be updated.

1.1 Note: Best case scenario here is that the account email is already populated if the user is logged in.

I will try to implement that, but that will take a little bit of time.

Best case scenario here is that as they are typing the name of the listing, we show results below it, with the listings that match the text they are inputting. Much like what Google does in Google Maps when you start typing an address and it starts to show results that match your text.

This is non-trivial. If you want this, please create a separate issue :)

3.1 Note: Best case scenario here is that the IBAN field validates the IBAN format. IBANs have an international format and we can validate against it.

This is trivial and should be implemented quickly.

To claim your listing you must agree to our Terms & Conditions of Service, together with our Privacy Policy. (checkbox with only one checkbox option: I agree. The T&Cs and Privacy Policy must be hyperlinked to their corresponding pages.)

For consistency reasons, I will not implement a checkbox, but will add a message above the button as it is shown in the Sign up Page:

Contact form adapts and adds new fields:
Account email (text field with validation for proper email address)
Listing's name (text field)
New listing IBAN (text field with validation for proper IBAN format)

For security reasons, I think we shouldn't ask for the account email. We are already asking for their contact email address and it should be the same - otherwise, it could be a fraud.

What have been done: Finished the contact form
Pushed to: add-custom-informations-request-on-contact-form
Tag somebody: @RohrerHope
PR: #193
Asking for validation:

Check on mobile and on desktop if the issue have been correctly fixed.
If everything is correct, move the card to accepted column.
If the issue isn't fixed, re-open the comment clearly what the problem is and what is the desired result.
Move the card to have issues column.
Merge (or express approval in) the corresponding PR if needed. Move the card to the launch column.

What have been done: Add interactions scenarios into the Contact Us form
Pushed to: add-custom-informations-request-on-contact-form
Tag somebody: @Shane-Walsh
PR: #209


proposal: exp/xerrors: add try and handle

Proposal Details
Disclaimer: The following was originally posted by u/Enough_Compote697 on r/golang. For greater reach, and especially for the attention from the Go team, re-post here after the deletion of the original post. Please keep in mind that I am NOT the OP of that Reddit thread, so please don’t tag me in this GitHub issue (unless reposting violates the rules here).
To encourage robust programming by reducing error handling boilerplates, I propose promoting the following functions from a third party library to exp/xerrors and eventually making them built-in:
func handle(h func (error)) {
    r := recover()
    if r == nil {
        return
    }
    if e, ok := r.(error); ok {
        h(e)
        return
    }
    panic(r)
}

func check(e error) {
    if e != nil {
        panic(e)
    }
}

func try[T any](v T, e error) T {
    check(e)
    return v
}

func try2[S, T any](u S, v T, e error) (S, T) {
    check(e)
    return u, v
}

Technically, a built-in variadic try() would eliminate the need of check, try2, try3, etc.
Before commenting/voting on this proposal, please make sure you are familiar with the Reddiquette, and please abide by it the best you can.
Examples

Ex. 1:
func main() {
    defer handle(func(e error) { log.Fatal(e) })
    os.Stdout.Close()
    try(fmt.Println(42))
}

Ex. 2: (see blog/errors-are-values)
func flush(h func(error)) {
    defer handle(h)
    try(fd.Write(p0[a:b]))
    try(fd.Write(p1[c:d]))
    try(fd.Write(p2[e:f]))
}

Note that with the try/handle pair, this version of flush is much simpler and cleaner than the errWriter example in the blog, and much less code is needed.
Ex. 3: (see issue/32437)
func sum(a, b string, h func(error)) int {
    defer handle(h)
    return try(myAtoi(a)) + try(myAtoi(b))
}

Ex. 4: (see play/p/bOUz7qx3urD and the corresponding r/golang post)
Ex. 5: (see design/go2draft-error-handling-overview)
func CopyFile(src, dst string, h func(error)) {
    defer handle(func(err error) { h(fmt.Errorf("copy %s %s: %w", src, dst, err)) }
    r := try(os.Open(src))
    defer r.Close()
    w := try(os.Create(dst))
    defer handle(func(err error) {
        os.Remove(dst)
        panic(err)  // propagate to the handle above for formatting
    })
    defer w.Close() // to close b4 remove, as defer is last-in-fisrt-out
    try(io.Copy(w, r))
}

Ex. 6: (see design/go2draft-error-handling
func SortContents(w io.Writer, files []string, h func(error)) {
    defer handle(func(e error) { h(fmt.Errorf("process: %w", e)) })
    lines := make([][]string, len(files))
    for i, f := range files {
        defer handle(func(e error) { panic(fmt.Errorf("read %s: %w", f, e)) })
        r := try(os.Open(f))
        defer r.Close()
        lines[i] = mySplit(try(io.ReadAll(r)))
    }
    sorted := slices.Sort(slices.Concat(lines))
    for _, line := range sorted {
        try(io.WriteString(w, line))
    }
}

To prevent mishandling deeply nested error that is out of interest, one may limit the error type to a specific kind, and handle the error only after a type assertion, e.g.
defer handle(func(e error) {
    if pe, ok := xerrors.As[fs.PathError](e); ok {
        // error handling code
    } else {
        panic(e) // not interested, pretending not intercepted
    }
})

Ex. 7: (an alternate version of ex. 6, changes marked with ~)
func SortContents(w io.Writer, files []string~) ~error~ {
    defer handle(func(e error) { ~panic~(fmt.Errorf(...) }
    // ...
    return nil
}

Since both return and panic are for propagating error back to the main() function, they are nearly identical semantically. That said, if library authors dislike this kind of error propagation, they may just keep using the current idiomatic if err != nil to handle errors, or adopt the handler propagation style illustrated above.
In addition, even though this version of SortContents panics instead of returning an error, the return argument (error) in the function signature can be kept for documentation purpose by treating the signature as a kind of function annotation, but the cost is to add a corresponding trailing return nil statement. Although the compilation will fail if this final line is omitted, it seems like a gotcha with stinky code smell.
Ex. 8: (another alternative as in regexp and text/template)
func MustSortContents(…) {…}

Note the idiomatic Must prefix implies the function panics in case of error. Although it is up to callers to decide whether to ignore or handle the error in case the program panics, personally I am more inclined to proper error handling rather than turning a blind eye on it, as this proposal is all about encouraging robust programming.
Motivation

When there are too many trivial error handling surrounded by boilerplates, their non-trivial counterparts will just nearly disappear, so this proposal tries to promote the visibility of truly important red flags by reducing boilerplates.
Also, by reducing the burdens on programmers, they are less deterred from handle error robustly. (See the law of effect and operant conditioning for more on the topic.)
Scope

This proposal is only about adding 2 functions (try and handle) to the official repository. Although the introduction of this pair may sparkle debate on error handling style (handler propagation vs error propagation), this proposal is not intended to set a new convention. That is left for the community to discuss and experiment on how to use these 2 functions. If you prefer the idiomatic return err, it is fine, and you can just keep using it. This proposal is not aimed at replacing that idiomatic error handling style but just at reducing programmers’ burden by promoting to try/handle pair from a third party library to the official repository, so please keep in mind that the discussion here should focus on the cost and benefits of such promotion. Thanks for your cooperation.
(Expected) Benefits

By reducing the burden of programmers, they are less deterred from robust error handling.
By refactoring repeating error handling blocks, programmers are writing code less vulnerable to copy-pasting bug, which can be catastrophic. (Below are examples from Google Project Zero)

Exception-oriented exploitation on iOS
Oops, I missed it again!

(Expected) Cost

Basically, when it comes to programming proposal, it is all about trade-off in the following trilemma:

programmers’ time
compilation time
execution time

The latter two can be addressed with technical improvement. For example, go1.14 reduce the cost of defer with design/34481-opencoded-defers. Although the benchmark then might now become slightly outdated, the tax of try/handle still seems far from being prohibitive.
Regarding programmers’ time, it can be further broken into learning time and coding time. Reducing boilerplates means saving coding time in a recurring manner, so the one-time cost of learning looks like a worthy investment, not to mention the potential robustness enhancement.
Comparisons

vs design/go2draft-error-handling: change statements to functions to enhance composablility (see examples above)
vs design/32437-try-builtin: change implicit return to implicit panic to reduce surprises, as implicit panic already exists while implicit return is something new and surprising, violating the principle of least astonishment.
same: callers still need to write their error handling logic.

FAQ

Q: Why revisit the try built-in proposal?
A: To reduce boilerplates of error handling. It is a pain point of many Go developers according to past surveys.
Q: Why not the idiomatic if err != nil { return } flow but the foreign throw-catch model?
A: When most library routines encounter an error, they immediately abort and return a non-nil error coupled with 1/2 negligible zero value(s), so replacing return with panic means nearly semantically the same for the caller.
Moreover, return err can coexist with the panic-recover model, so library authors can choose the error handling flow that fit their needs the most.
Q: But that violates the Go philosophy. There should be one (and preferably only one) obvious way to do it.
 This proposal is not about adding a 3rd way of error handling to the language, but just about utilising the existing language constructs to reduce boilerplates.
Q: How about go try(f(…))?
A: Not clear. Before understanding how goroutines would impact defer/panic/recover, it seems prudent to forbid go try(f(…)) first by

issuing a compilation error when try is called in a go statement, and
adding a vet check for exp/xerrors during the transitional stage.

Library authors can keep using the good old idiomatic if err != nil check with goroutines as is.
Discussion

Examples above simply convert return err to panic. More complex control flow like goto/break/continue may need extra care when switching the error handling flow to the panic-recover model. In case simple refactoring is not enough, perhaps just remaining as-is (if err != nil) suit such scenario the most. Without real world data, it is hard to tell whether the task of refactoring is easy or daunting. If there are real world examples demonstrating non-trivial refactoring, let’s see if we can write tool to automate the work as in the rangefunc experiment. For example, given a function:
package foo
//go:generate witherrhandle
func f(v T) error {
return g(v)
}

Running go generate play.ground/foo yields:
  func fV2(v T) (err error) {
      fWithHandler(v, func(e error) { err = e })
      return
  }

  func fWithHandler(v T, h func(error)) {
      defer handle(h)
      try(g(v))
  }

For the sake of compatibility, current stdlib routines would keep panicking or returning errors as is, but the internal may use the new mechanism as long as such changes are invisible to callers. When the timing becomes mature, signatures of newly added functions may form a new idiomatic flow of error handling as shown above.

From a dependency management perspective, promoting handle from a third party library to the official repository, meaning establishing a mechanism for panic interception, may do more good than harm, but the pros and cons are not so clear, so it is left for the community to discuss. For example, if package main imports package foo, and the input sanitizer of foo.Bar panics like the MustXXX family in package regexp and text/template, the main function, especially that of critical server, would be better-off with panic recovery and graceful error handling.

Alternatives

The try function can be written in a variadic fashion with some cost illustrated below:
func try(vs ...any) []any {
if e, ok := vs[len(vs)-1].(error); !ok {
panic("try: last argument is not error")
} else if e != nil {
panic(e)
}
return vs[:len(vs)-1]
}

Although this version of try is variadic, it is much less user-friendly. Since it returns []any instead of concrete types, type assertion is needed for devirtualisation. For example, to open a read-only file, one has to write
  f := try(os.Open(name)).(fs.File)

It will be even more clumsy when devirtualising more than one interface{}.

While try is technically most suited to be a built-in function, handle is less constrained and it can be a function in the errors package instead. Although where will it land eventually is out of scope of this proposal, please feel free to discuss here about the pros and cons of adding one more reserved word. In particular, is handle frequently used as a custom variable/function name? If so, it means the built-in handle will be often shadowed, rendering it less useful to be a built-in. On the other hand, a nice side-effect of moving the handle function to the errors package is the possibility to define a visually pleasant errors.Handler interface.

Postscript
Although this proposal is just about including a pair of trivial functions in the official repository, it is surprisingly hilariously disproportionally lengthy, reminding me the Parkinson’s law of triviality. The reason is that much length is used for highlighting the differences between the new and the idiomatic error handling flow so as to address the Fredkin’s paradox, psychological inertia and path dependence. Nonetheless, if clearer explanation can help us reach consensus more easily, it is worth writing more words.
Acknowledgement
Thanks all for you thoughtful feedback, including but not limited to u/FullTimeSadBoi, u/justinisrael and u/drvd. Please accept my apology if I have forgotten to mention your name.

I don't think we need a mirror of a reddit discussion in the issue tracker.


Testing the sample fails

- [ ] bug report -> please search issues before submitting
- [ ] feature request
- [X] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce
Fork the repo
Open in GitHub Codespaces
az login
azd auth login
azd up
In "Step 3: Testing the sample" says:
pf flow test --flow ./summarizationapp --inputs problem="data/audio-data/issue0.wav"
it fails with the following error message as the summarizationapp doesn't exist in the root. It is under src folder.
Any log messages given by the failure

Expected/desired behavior
if we run as follows it works.
pf flow test --flow ./src/summarizationapp --inputs problem="data/audio-data/issue0.wav"

Your PR I just merged fixes this so closing this issue. Thank you!


[DOCFIX] Improve deterministic hashing and ufs read policy docs

Only need to review the second commit, first commit was needed to fix the docs build and can be reviewed separately in https://github.com/Alluxio/alluxio/pull/7227

Local docs look like this:

The links point to the right javadoc pages on https://www.alluxio.org/

yep, ymls are all auto-generated with bin/alluxio confDocGen

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/19431/
Test PASSed.


Improve error message for Groovy DSL plugins block

Fixes #17967
There didn't appear to be a test for any of the messages here, not sure if it'd be worth adding some.

@bot-gradle test and merge

OK, I've already triggered a build for you.


wasm fallback for _mm_shuffle_epi8()?

Hi, I'm looking for a wasm fallback for _mm_shuffle_epi8() (using emscripten, for my case at least)
I see from https://emscripten.org/docs/porting/simd.html that it should be as simple as "emulated with a SIMD swizzle+and+const". However, not being particularly versed in SIMD operations, I'm not sure how to translate this into actual code.
I see that wasm/simd128.h has something similar in simde_wasm_i8x16_swizzle(), but it doesn't seem quite the same as _mm_shuffle_epi8().
Any suggestions as to how to exactly emulate _mm_shuffle_epi8() in wasm?
(BTW have the same question for _mm_alignr_epi8(), but will try to resolve this first before posting as a separate issue)

_mm_shuffle_epi8() zeros when index >u 0x7F.
wasm_i8x16_swizzle() zeros when index >u 0x0F.
so you need to clear those three bits of the shuffle index.
_mm_shuffle_epi8(a, b) -> wasm_i8x16_swizzle(a, wasm_v128_and(b, wasm_i8x16_splat(0x8F)));

Will try it out thank you!

@liquidaty can you send a PR with your WASM optimized implementation of _mm_shuffle_epi8?

I implemented this in a different body of code than simd-everywhere but here is the code I used. Note, this basically is exactly what @aqrit suggested and it seems to work for my purposes, but I certainly have not tested enough to make any representation myself as to its equivalence in results for all conceivable inputs to _mm_shuffle_epi8.
#ifdef __EMSCRIPTEN__

/* x_mm_shuffle_epi8 is the wasm version of mm_shuffle_epi8 */

static really_inline m128 x_mm_shuffle_epi8(m128 a, m128 b) {
  return wasm_i8x16_swizzle(a, wasm_v128_and(b, wasm_i8x16_splat(0x8F)));
}


cs setup keeps failing

Installed coursier on my Mac (MacOS Big Sur 11.5.2 ) using homebrew. Unable to run the initial setup as I get the following error.
cs setup
Checking if a JVM is installed
Exception in thread "main" java.lang.Exception: Error while getting https://github.com/shyiko/jabba/raw/master/index.json: download error: Caught javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target (PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target) while downloading https://github.com/shyiko/jabba/raw/master/index.json
	at coursier.jvm.JvmIndex$.$anonfun$load$5(JvmIndex.scala:141)
	at coursier.jvm.JvmIndex$.$anonfun$load$5$adapted(JvmIndex.scala:139)
	at coursier.util.Task$.$anonfun$flatMap$extension$1(Task.scala:14)
	at coursier.util.Task$.$anonfun$flatMap$extension$1$adapted(Task.scala:14)
	at coursier.util.Task$.wrap(Task.scala:84)
	at coursier.util.Task$.$anonfun$flatMap$2(Task.scala:14)
	at scala.concurrent.Future.$anonfun$flatMap$1(Future.scala:307)
	at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:41)
	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:64)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.lang.Thread.run(Thread.java:834)
	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:517)
	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)

coursier version installed 2.0.13

Try using brew install coursier/formulas/coursier

I am closing this issue since I am unable to reproduce it. Feel free to comment if we need to re-open it.


Clarify prestop hook invocation condition

This PR clarifies that the preStop hook won't be invoked if the termination grace period is set to 0. Another commit attempts to tidy up the page for paragraphs and indentations.

I noticed that most of the reference of pods are with capital P but at few places it is not changed to Pod / Pods.
it might be better to have same format , either we change all in-sentence references of pods to Pods or keep all of them as is.
For reference:

{{< note >}} When a Pod is being deleted, it is shown as Terminating by some kubectl commands. This Terminating status is not one of the Pod phases. A Pod is granted a term to terminate gracefully, which defaults to 30 seconds. You can use the flag --force to terminate a Pod by force. {{< /note >}}

Since Kubernetes 1.27, the kubelet transitions deleted pods, except for static pods and force-deleted pods without a finalizer, to a terminal phase (Failed or Succeeded depending on the exit statuses of the pod containers) before their deletion from the API server.

I noticed that most of the reference of pods are with capital P but at few places it is not changed to Pod / Pods. it might be better to have same format , either we change all in-sentence references of pods to Pods or keep all of them as is. For reference:

{{< note >}} When a Pod is being deleted, it is shown as Terminating by some kubectl commands. This Terminating status is not one of the Pod phases. A Pod is granted a term to terminate gracefully, which defaults to 30 seconds. You can use the flag --force to terminate a Pod by force. {{< /note >}}

Since Kubernetes 1.27, the kubelet transitions deleted pods, except for static pods and force-deleted pods without a finalizer, to a terminal phase (Failed or Succeeded depending on the exit statuses of the pod containers) before their deletion from the API server.

As one of the commits deals with tidying up the page this might as well be included in this PR so all changes are merged together. WDYT @tengqm

/approve


colored command line spawned connections

Hi! Is there an attribute I can set when spawning a connection via the command line to define a color for the newly (temporary) created connection?

It's not possible now.
Here is a feature request about it #22358


When configuring an identifying FK put it on the second type discovered to match 1.1.2 behavior.

Fixes #9446

We decided that there weren't enough reports of this issue to warrant it being fixed in a patch release.


ThrottlingMiddleware and custom API key

How can I retrieving API Client Key from query string when using ThrottlingMiddleware?
Thanks,
Paresh

Please ignore this issue .. I was able to figure it out.
Just in case anybody else trying to achieve same thing.. Please override following method of ThrottlingMiddleware with custom logic
protected virtual RequestIdentity SetIndentity(IOwinRequest request)

Thanks,
Paresh


Drawer shadow flashes when drawer appears

[✓] Flutter (on Linux, channel master)
• Flutter at /src/flutter
• Framework revision 92d0445a8f (43 minutes ago), engine revision 603b0701a6
[✓] Android toolchain - develop for Android devices (Android SDK 23.0.1)
• Android SDK at /usr/local/google/home/eseidel/Android/Sdk
• Platform android-23, build-tools 23.0.1
• OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu<IP_ADDRESS>)
[✓] Atom - a lightweight development environment for Flutter
• flutter plugin version 0.2.2
• dartlang plugin version 0.6.22
See video
https://youtu.be/sK7XSPdNzHo

@abarth says this is the same root bug as https://github.com/flutter/flutter/issues/5203 and is a bug in Skia that the returned bounds rect for shadows is wrong.  We need to make a reduced test case and file.

@chinmaygarde can you take on the task of making a reduction for Skia?  I want to make sure that we get this on Skia's radar ASAP as I've had at least one person point this out to me when demoing flutter gallery to them.

Sorry it took so long for this one. Went on a wild goose chase looking in Skia and the framework. Its the raster cache not accounting for the shadow. Skia is fine.

We aren't suggesting that the cullRect of the SkPicture should include any extensions introduced to shapes as a result of the filters applied on the paints that were used at the time of the draw of said shapes on the canvas are we? Seems like a pretty invasive change.

@chinmaygarde I don't know.  That's an @abarth question.  Does your raster cache fix resolve https://github.com/flutter/flutter/issues/5203 as well?

Well, so far, there is no raster cache fix. But the issue is in there. https://github.com/flutter/flutter/issues/5203 is also related to the raster cache but its a different issue where the results of to a texture  subsequently rendering that texture to the surface vs rendering directly to the window surface (or parent picture) is resulting in rendering artifacts.

FWIW the shadow flash happens when going into or out of a component demo, too.

We aren't suggesting that the cullRect of the SkPicture should include any extensions introduced to shapes as a result of the filters applied on the paints that were used at the time of the draw of said shapes on the canvas are we? Seems like a pretty invasive change.

There's code in Skia that knows how much filters outset the bounds of the geometry they're filtering.  I thought that was wired up to the cull rect, but maybe it comes out somewhere else?  If the cull rect doesn't take the filter outsets into account, then it can incorrectly cull pictures that actually would intersect a clip rect due to filter outsets.

@chinmaygarde did you decide if this was a Skia issue or not?

@chinmaygarde tells me he's tried various fixes, including to the framework and will update the bug shortly.

Any updates @chinmaygarde?

@abarth can you take driving this?  I believe @chinmaygarde has a partially completed investigation.

Sorry, can't take this on at the moment.

The notes from the last time I investigated this issue:

The RasterCache uses the cullRect (and the CTM) of the SkPicture to decide the size of the offscreen image in which to snapshot the contents of the picture.
The cullRect does not reflect the bounds of what has been recorded into the picture, i.e the draw* operations on the canvas. The origin of the cullRect returned is always {0, 0}

Thus, the cullRect may be affected by not only shadows or other filters, but also by custom paint operations drawing to coordinates less than 0 on either axis.

When the PictureLayer decides to perform an SkImage substitution of a cached SkPicture, it does not know the size of the canvas that was used to create that picture and its offset relative to that picture's cullRect origin (which is {0, 0}).
Lacking this information, the PictureLayer draws the SkImage just like it would an SkPicture. But the origin offsets have not been accounted for.

I am sure I have missed a few things. Will continue investigating this. Just an update.

Maybe we need a different API from skia to compute the bounding box of what we recorded into the picture.  We should record the pictures it RTrees, which compute bounding boxes.

There's code in Skia that knows how much filters outset the bounds of the geometry they're filtering. I thought that was wired up to the cull rect, but maybe it comes out somewhere else?

It is definitely not wired up to the cull rect. Is there some other call you can recall that does this? For non-filter related contents that exceed the bounding box, I have successfully wired up the calls into blink::Canvas to keep track of the bounding box. Since we have this extra information, I am able to apply the correct size and offset in the raster cache. This still does not help in the case of the filter however. So it only solves part of the problem.

This still does not help in the case of the filter however.

Hold on, I have the paint. I can maybe use getFillPath to calculate this extra offset and join it with the rest. Trying.

Huzzah! That worked. Cleaning up.

This can be fixed by keeping track of the bounding box and offset on each call to the blink::Canvas API. An example of one such approach is implemented in https://github.com/flutter/engine/pull/3224. However, the suggestion is to implement this API (or some version thereof) in Skia. A ticket for the same is filed in Skia at https://bugs.chromium.org/p/skia/issues/detail?id=5974. Till that ticket is resolved or we decide to land the complete version of https://github.com/flutter/engine/pull/3224, I am blocked on this.

@chinmaygarde looks like the Skia bug is waiting for feedback from you?

We had another dev ask about this in gitter just now.  Just checked the Skia bug again just now, looks like it's still waiting for feedback from @chinmaygarde

Can I get an ETA on this?

Any updates on this one?

I have been prototyping a fix based on this comment in the linked ticket. Was busy with Vulkan on Fuchsia for the past few weeks so was not able to wrap it up. But I am done with Vulkan for now. Will give you another update when I make progress here.

Confirmed this is still happening on a Nexus 5 with a release build from today.

@chinmaygarde is there any status update?  Should you still own this?

I am following up on this. I think I should still own this. If someone else does want to take over however, I have prepared a reduced test case in Skia Fiddle that better explains the problem we are seeing in Flutter and the desired behavior we are looking for. The Fiddle is available at https://fiddle.skia.org/c/d3fde342e23b38e35da0759c2ebef573

Some updates from Skia: The API suggested by Skia in this Fiddle requires workarounds for the issues mentioned in this comment on the ticket. We have also identified a few failing cases specific to some pictures in Flutter. Some patches fixing infinite recursion on SkRect::MakeLargest have landed. But the kDraws == 1 (mentioned in a comment in the linked Fiddle) and the Flutter specific failure still need to be addressed. From our Skia sync, I understand that Mike is currently working on fixing the rest of the issues.

Update: Mike Klein is working on tracking bounds when a SkMiniPicture is rendered as part of the drawing operations.

Update: A patch was posted in Skia that added support for tracking of SkMiniPicture components. After attempting a Skia roll, it was found that while a lot of the previously failing cases were fixed, some drawTextBlob and drawPath calls were still failing to update the cullRect. The failing cases have been added to the Skia issue tracker here.

Progress continues.  Almost done.  Blocked on more fixes from skia.

Any status updates @chinmaygarde?

Paths and text blobs still don't report their cull rects correctly. Waiting for fixes for the same. Will update this ticket when those changes land.

/cc @pylaligand

@eseidelGoogle @chinmaygarde I thought this bug was fixed?  @pylaligand seems to have just run into it again.

This issue has been fixed. I should have closed this ticket a while ago.


SelfHost (Dedicated Server) StreamerOnline/Offline Errors

Hey there,
Since the last update with eh new streamers online/offline announcements the offline part has stopped working and the console is filled with errors about it. the dedicated server internet is working fine so are the other bots and things on that server running 24/7 - https://puu.sh/zr8w7/393b377972.png all working
https://hastebin.com/alihisupec.vbs

Before any other people come to help you, can you try to edit your message and use Hastebin?
You can past this gigantic log in there,.
Also if you take a look at it, you see it repeats itself. So try stripping down that log a bit.

I pushed a fix for this, talked to him in dms. it should work fine now.


Resize grid height on slice panel toggle

For #5309
If the slice panel is initally collapsed and then is expanded by the user, the bottom ~4 rows are cut off because the SlickGrid grid height is manually calculated and set, and the grid isn't aware that neighboring elements have increased in height. The solution here is to tell the grid to resize itself.

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR).
[x] Title summarizes what is changing.
[x] Has a news entry file (remember to thank yourself!).
[x] Appropriate comments and documentation strings in the code.
[x] ~Has sufficient logging.~
[x] ~Has telemetry for enhancements.~
[x] ~Unit tests & system/integration tests are added/updated.~
[x] ~Test plan is updated as appropriate.~
[x] ~package-lock.json has been regenerated by running npm install (if dependencies have changed).~

Codecov Report

Merging #5593 (759e9fa) into main (70a6e7b) will decrease coverage by 0%.
The diff coverage is n/a.

@@          Coverage Diff           @@
##            main   #5593    +/-   ##
======================================
- Coverage     72%     72%    -1%
======================================
  Files        402     402
  Lines      26724   26724
  Branches    3899    3899
======================================
- Hits       19453   19261   -192
- Misses      5638    5838   +200
+ Partials    1633    1625     -8

Impacted Files
Coverage Δ

src/client/datascience/webviewExtensibility.ts
32% <0%> (-40%)
:arrow_down:

src/client/datascience/utils.ts
48% <0%> (-16%)
:arrow_down:

...atascience/interactive-window/interactiveWindow.ts
59% <0%> (-13%)
:arrow_down:

...ce/interactive-window/interactiveWindowProvider.ts
63% <0%> (-13%)
:arrow_down:

src/client/datascience/jupyter/jupyterExporter.ts
62% <0%> (-11%)
:arrow_down:

.../datascience/interactive-common/interactiveBase.ts
62% <0%> (-9%)
:arrow_down:

src/client/datascience/jupyter/jupyterNotebook.ts
70% <0%> (-6%)
:arrow_down:

src/client/datascience/jupyter/serverPreload.ts
73% <0%> (-6%)
:arrow_down:

.../client/datascience/interactive-window/identity.ts
91% <0%> (-5%)
:arrow_down:

...ent/datascience/jupyter/kernels/kernelExecution.ts
69% <0%> (-5%)
:arrow_down:

... and 11 more


Build breaks SVG files

When running npm run build in a project, some SVG files get broken.
As far as i can see, this only seems to happen, when the SVG file contains an internal <style> tag.
SVG file content before build:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
	<style>
		path{
			animation-name: rotate;
			animation-duration: 40s;
			animation-timing-function: linear;
			animation-iteration-count: infinite;
			transform-origin: center;
		}

		@keyframes rotate {
			0%{
				transform: rotate(0deg);
			}

			100%{
				transform: rotate(360deg);
			}
		}
	</style>
	<path stroke="none" stroke-width="0">
		<animate repeatCount="indefinite" attributeName="d" dur="20s" values="M405.6,122.6c43.3,43,75.6,96.9,74.3,149.4c-1.1,52.6-36.1,103.8-79.4,137.5s-94.5,49.9-150,54.1
		c-55.7,4.2-115.7-3.2-156.9-36.9C52.4,393.4,29.6,333.4,32.2,276S63,164.3,104.4,121.3s95.8-74.6,150.2-74.1
		C308.8,47.5,362.6,79.6,405.6,122.6z;
		M406.2,121.3c43.3,43,75.6,96.9,74.3,149.4
		c-1.1,52.6-36.1,103.8-79.4,137.5s-94.5,49.9-150,54.1c-55.7,4.2-115.7-3.2-156.9-36.9c-41.2-33.3-64-93.3-61.4-150.7
		S63.6,163,105,120s95.8-74.6,150.2-74.1C309.4,46.2,363.2,78.3,406.2,121.3z;
				M413.2,106.3c43.3,43,59.2,100.9,57.9,153.4c-1.1,52.6-31,123.2-74.3,156.9s-86.1,42.7-141.6,46.9
		c-55.7,4.2-123.6-19.3-164.8-53c-41.2-33.3-51.8-87.8-49.2-145.2s26.1-98.7,67.5-141.7S210.6,47.6,265,48.1
		C319.2,48.4,370.2,63.3,413.2,106.3z;
				M405.6,122.6c43.3,43,75.6,96.9,74.3,149.4c-1.1,52.6-36.1,103.8-79.4,137.5s-94.5,49.9-150,54.1
		c-55.7,4.2-115.7-3.2-156.9-36.9C52.4,393.4,29.6,333.4,32.2,276S63,164.3,104.4,121.3s95.8-74.6,150.2-74.1
		C308.8,47.5,362.6,79.6,405.6,122.6z;
				" />
	</path>
</svg>

and after:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<style>@keyframes rotate{0%{transform:rotate(0deg)}}</style>
</svg>

Does it persist if you have some values in a d attribute on the <path> at all? SVGO may be removing that element mistakenly since it doesn’t have any geometry data and therefore doesn’t render — except that said data is inserted thanks to <animate>.

Adding values to the d attribute of the <path> element will result in the follwoing SVG code when running marko build:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
	<style>@keyframes rotate{0%{transform:rotate(0deg)}}</style>
	<path stroke-width="0" d="M405.6 122.6c43.3 43 75.6 96.9 74.3 149.4-1.1 52.6-36.1 103.8-79.4 137.5s-94.5 49.9-150 54.1c-55.7 4.2-115.7-3.2-156.9-36.9-41.2-33.3-64-93.3-61.4-150.7S63 164.3 104.4 121.3s95.8-74.6 150.2-74.1c54.2.3 108 32.4 151 75.4z" style="animation-name:rotate;animation-duration:40s;animation-timing-function:linear;animation-iteration-count:infinite;transform-origin:center">
		<animate repeatCount="indefinite" attributeName="d" values="M405.6,122.6c43.3,43,75.6,96.9,74.3,149.4c-1.1,52.6-36.1,103.8-79.4,137.5s-94.5,49.9-150,54.1 c-55.7,4.2-115.7-3.2-156.9-36.9C52.4,393.4,29.6,333.4,32.2,276S63,164.3,104.4,121.3s95.8-74.6,150.2-74.1 C308.8,47.5,362.6,79.6,405.6,122.6z;
		M406.2,121.3c43.3,43,75.6,96.9,74.3,149.4 c-1.1,52.6-36.1,103.8-79.4,137.5s-94.5,49.9-150,54.1c-55.7,4.2-115.7-3.2-156.9-36.9c-41.2-33.3-64-93.3-61.4-150.7 S63.6,163,105,120s95.8-74.6,150.2-74.1C309.4,46.2,363.2,78.3,406.2,121.3z;
		M413.2,106.3c43.3,43,59.2,100.9,57.9,153.4c-1.1,52.6-31,123.2-74.3,156.9s-86.1,42.7-141.6,46.9 c-55.7,4.2-123.6-19.3-164.8-53c-41.2-33.3-51.8-87.8-49.2-145.2s26.1-98.7,67.5-141.7S210.6,47.6,265,48.1 C319.2,48.4,370.2,63.3,413.2,106.3z;
		M405.6,122.6c43.3,43,75.6,96.9,74.3,149.4c-1.1,52.6-36.1,103.8-79.4,137.5s-94.5,49.9-150,54.1 c-55.7,4.2-115.7-3.2-156.9-36.9C52.4,393.4,29.6,333.4,32.2,276S63,164.3,104.4,121.3s95.8-74.6,150.2-74.1 C308.8,47.5,362.6,79.6,405.6,122.6z;" dur="2s"/>
	</path>
</svg>

As you can see, when you compare it to the original SVG code, it still lacks some of the internal CSS. Therefore the inline styles set on the <path> element, will not work.

This is probably a bug in the underlying svgo module, but maybe they’ve already fixed it and we need to update.


python3Packages.pyvicare: 2.8 -> 2.8.1

Motivation for this change
Update to latest upstream release 2.8.1
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 137191 run on x86_64-linux 1

2 packages built:

python38Packages.pyvicare
python39Packages.pyvicare

Result of nixpkgs-review pr 137191 at f864697d run on aarch64-linux 1

2 packages built successfully:

python38Packages.pyvicare
python39Packages.pyvicare


data: Aayushpatil77

@rohan-kulkarni-25 please do not approve a PR without doing a full check as this confuses the author


Off-by-one errors in Java APM Integration Tests

Over the past year, we have seen an ongoing pattern of cases wherein we see APM Integration tests fail because a single event which we believe to have sent was not received and an assertion fails.
Error
AssertionError: queried for [('processor.event', 'transaction'), ('service.name', ['springapp'])], expected 1000, got 999
Examples
https://apm-ci.elastic.co/job/apm-integration-tests/job/7.x/751/testReport/junit/tests.agent/test_java/Integration_Tests___All___test_concurrent_req_java_spring/
https://apm-ci.elastic.co/job/apm-integration-tests/job/7.x/738/testReport/junit/tests.agent/test_java/Integration_Tests___All___test_concurrent_req_java_spring/
Discussion
I would like to discuss either finding a fix for the underlying issue or perhaps adjusting the assertion to allow for either 999 or 1,000 as acceptable values if we agree that this condition does not represent an actual software defect.
If we could do this, it would go a long way toward increasing the overall stability of the APM Integration Test suite which is used by many teams to verify the functionality of the APM suite of products.
Thanks!
cc: @elastic/observablt-robots

This is the case for years, thanks for taking the initiative to address that!!
Is it specific only to Java? If so, should we still assume the event is sent and not received?
In order to understand whether all events are sent, if we set agent with log_level=debug and ingest the test logs somewhere, we may be able to count log events.
Any serialization and send attempt should log (expecting 1000):
Receiving TRANSACTION event (sequence <ring-buffer-slot-number>)

Any serialization/write failure should log:
Failed to handle event of type TRANSACTION with this error: ...

Failure to create a connection with the APM Server should log:
Failed to get APM server connection, dropping event: ...

Failure to send should log:
Error sending data to APM server: ...

In addition, at shutdown we log:
Reported events: <num-events>
Dropped events: <num-events>

where the dropped events should contain failures to send.
Once we get to a conclusion whether the right number was sent, we know whether to investigate upstream (agent tracing logic) or downstream (APM Server).


Update MinGW in Windows Server 2019 image: doesn't support Go race detector

Tool name
MinGW
Tool license
GNU
Add or update?

[ ] Add
[X] Update

Desired version
A version compatible with Go race detector.
Approximate size
No response
Brief description of tool
Currently the Windows Server 2019 image build installs MinGW 8.1.0 from SourceForge:
https://github.com/actions/runner-images/blob/69db5c6c63cee6e97ea5b7d9e0b7318a28a2094c/images/windows/scripts/build/Install-Mingw64.ps1#L6-L19
This build was released in 2018. Recently, the link to SourceForge builds was removed from https://www.mingw-w64.org/downloads/ because the builds are outdated: https://github.com/mingw-w64/mingw-w64.github.io/commit/9887fc64d7f5540bbdea093edb96a3376d96c262.
As of Go 1.21, this build of MinGW prevents the race detector from working. This workflow fails on a stdlib test:
name: mingw-stdlib-test

on:
  push:
    branches: [ "main" ]

jobs:
  mingw-stdlib-test:
    runs-on: windows-2019
    steps:
      - uses: actions/setup-go@v4
        with:
          go-version: 1.21.x

      - name: Run stdlib test
        run: go test -race sort

exit status 0xc0000139
FAIL	sort	0.022s
FAIL

Other builds, like the one used for the Windows Server 2022 image, work fine in my testing on the Windows Server 2019 image after manually installing them:
https://github.com/actions/runner-images/blob/69db5c6c63cee6e97ea5b7d9e0b7318a28a2094c/images/windows/scripts/build/Install-Mingw64.ps1#L53-L56
I know a version update isn't something to take lightly, and I'm not totally sure it makes sense to make this change for this image due to the risk. However, I think it's at least worth raising this issue, even if it only helps others find the cause of this error message in CI. 🙂
URL for tool's homepage
No response
Provide a basic test case to validate the tool's functionality.
No response
Platforms where you need the tool

[X] Azure DevOps
[X] GitHub Actions

Runner images where you need the tool

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[X] Windows Server 2019
[ ] Windows Server 2022

Can this tool be installed during the build?
It's possible to download a new MinGW version in a workflow, although it's not trivial. In https://github.com/containerd/containerd/pull/9288, doing this with Chocolatey was attempted, but didn't work smoothly.
Tool installation time in runtime
No response
Are you willing to submit a PR?
No response

Hey @dagood! We'll check a couple of things and come back with an answer.

Hello again @dagood!
After further investigation I may say next. As you have already correctly noted, updating MinGW is not the easiest thing. A bundle is often used, some build systems use the version distributed with MSYS2, some use the standalone version. In your case I suppose standalone is been used. You may replace it using something like this (it's for MinGW64, but you always may replace url filter and path):
name: MinGW64

on:
  workflow_dispatch:

jobs:
  mingw:
    strategy:
      matrix:
        version: [ "11", "12.2.0", "13.1" ]

    runs-on: windows-2019
    steps:
    - name: Check version
      run: |
        gcc --version
        gdb --version
        ld --version
    - name: Install MinGW_64
      run: |
        $urls = @()
        $apiUrl = "https://api.github.com/repos/niXman/mingw-builds-binaries/releases?per_page=100"
        $releases = Invoke-RestMethod -Uri $apiUrl -Method Get
        foreach ($release in $releases) {
          if (($release.tag_name -split "-" | Select-String -Pattern "\d+.\d+.\d+") -ilike "${{ matrix.version }}*"){
            foreach ($asset in $release.assets) {
              if (($asset.name -ilike "x86_64-*-release-posix-seh-*.7z") -and ($asset.name -inotlike "*msvcrt*")) {
                $urls += $asset.browser_download_url
              }
            }
          }
        }
        $url = $urls | Sort-Object -Descending | Select-Object -First 1
        $7zPath = Join-Path $env:TEMP "mingw64.7z"
        Invoke-WebRequest -Uri $url -OutFile $7zPath
        Remove-Item -Path "C:\mingw64" -Recurse -Force
        7z.exe "x" "$7zPath" -o"C:\" -y | Out-Null
        $path = "C:\mingw64\bin\mingw32-make.exe" | Get-Item
        Copy-Item -Path $path.FullName -Destination (Join-Path $path.Directory.FullName 'make.exe') -Force
    - name: Check version
      run: |
        gcc --version
        gdb --version
        ld --version

But talking about image update. For users who are interested in using the standalone version, we provide the 2019 image with a rather old version of the compiler and the 2022 image with the new one. So we wouldn't want to update it for even a couple of releases just yet, but we'll probably come back to that later.
If you need help finalising during-runtime upgrade steps, be sure to reach me out. Also, do not forget that in case of other concerns, you can always submit a new issue.


Real time status update

Hello,
How to have real time update instead of 10 min status update?
Thanks

Is not supported by the API, sorry.


docs(root): update radio and checkbox conditional dynamic examples

Summary of the changes
Update radio and checkbox conditional dynamic examples so that they don't move when the additional field shows
Related issue
#655
Checklist

[x] I have manually accessibility tested any changes, if relevant.
[x] I have raised this pull request against the develop branch

Still getting similar issue but not as bad as before... Is this worth running past @DBD324 ?

I am also seeing this issue with Edge on Windows. Seems to be in the smallest sizes of the medium breakpoint. At 769 we don't have enough padding. I would either expect the text field to shrink to maintain 16px padding with edge of component demo, or we could reduce size of text field so that this doesn't visibly occur. Seems to work nicely on the radio button examples though.


Does WAMR support wasi preview2?

Does WAMR support wasi preview2?

not yet.

Thanks for your reply !

Component model support tracked in #2126


[SR-15743] SourceKit-LSP isn't aware of changes in other modules

Previous ID
SR-15743

Radar
None

Original Reporter
svanimpe (JIRA User)

Type
Bug

Environment
Swift 5.5.2
vscode-swift pluging 0.1.1 in Visual Studio Code

Additional Detail from JIRA

Votes
0

Component/s
SourceKit-LSP

Labels
Bug

Assignee
None

Priority
Medium

md5:<PHONE_NUMBER>8387bc1e6d7b56e761d580

Issue Description:
I'm working on a Swift Package that contains both a library and an executable that uses said library. Whenever I make a change to the API of the library (such as changing the access level of a function from internal to public, or renaming arguments, ...), SourceKit-LSP doesn't pick up this change and reports compilation errors in the executable, even though it builds and runs fine.
These errors usually persist until I restart VS Code, although I have occasionally seen them resolve themselves.
CC @adam-fowler

From the description, it sounds like you are hitting the known caveat that you need to build the project to re-index other modules (https://github.com/apple/sourcekit-lsp#caveats).