IPSEC port settings

Still not working, it seems like the ports are reported as 0 and 0 in the spec (go code), regardless of setting it

This is ready, and working.

sent another update of the patch to remove some unnecessary empty lines ';D

This is failing to build the Operator for me. The error is:
# github.com/submariner-operator/submariner-operator/pkg/controller/submariner
pkg/controller/submariner/submariner_controller.go:186:60: undefined: strconv
pkg/controller/submariner/submariner_controller.go:191:61: undefined: strconv

I tested with make codegen-operator; make build-operator on this PR, then verified everything passed with the same on the base operator branch, then double-checked I saw the same failure running again on this PR.

# github.com/submariner-operator/submariner-operator/pkg/controller/submariner
pkg/controller/submariner/submariner_controller.go:186:60: undefined: strconv
pkg/controller/submariner/submariner_controller.go:191:61: undefined: strconv

Ah, it’s missing the strconv import.

Can we add checks that cover this in verify_subm_engine_pod and verify_subm_engine_container of lib_operator_verify_subm.sh? They can be copies/modifications of the existing IPSEC checks.

Can we add checks that cover this in verify_subm_engine_pod and verify_subm_engine_container of lib_operator_verify_subm.sh? They can be copies/modifications of the existing IPSEC checks.

NVM, these checks exist, not sure how I missed them the first time.

ohh the strconv!, yeah, I forgot to copy that part to the "nolint" version.

It's now failing with:
# github.com/submariner-operator/submariner-operator/pkg/controller/submariner
pkg/controller/submariner/submariner_controller.go:185:15: cr.Spec.CeIpsecIkePort undefined (type v1alpha1.SubmarinerSpec has no field or method CeIpsecIkePort, but does have CeIpsecIKEPort)
pkg/controller/submariner/submariner_controller.go:190:15: cr.Spec.CeIpsecNattPort undefined (type v1alpha1.SubmarinerSpec has no field or method CeIpsecNattPort, but does have CeIpsecNATTPort)

This is the error I was telling you about - where fixing the API warnings on the generation side causes this on the Go side.

It's now failing with:
# github.com/submariner-operator/submariner-operator/pkg/controller/submariner
pkg/controller/submariner/submariner_controller.go:185:15: cr.Spec.CeIpsecIkePort undefined (type v1alpha1.SubmarinerSpec has no field or method CeIpsecIkePort, but does have CeIpsecIKEPort)
pkg/controller/submariner/submariner_controller.go:190:15: cr.Spec.CeIpsecNattPort undefined (type v1alpha1.SubmarinerSpec has no field or method CeIpsecNattPort, but does have CeIpsecNATTPort)

This is the error I was telling you about - where fixing the API warnings on the generation side causes this on the Go side.

Sorry, right, I fixed it now, and checked E-2-E ' :)

I verified this (codegen/build/e2e), all was well. I'll push a properly done rebase to operator branch to merge the PR and fix my botched GUI-based merged commit at the same time.


I can't use my cell phone

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: [Windows]
scrcpy version: [2.0]
installation method: [download release 2.0 64x]
device model: Mi 11 PRO
Android version: [12]

Describe the bug
I can make the connection and see the cell phone screen, but I can't move anything.
scrcpy 2.0 <https://github.com/Genymobile/scrcpy>
C:\scrcpy\scrcpy-server: 1 file pushed, 0 skipped. 63.3 MB/s (52867 bytes in 0.001s)
[server] INFO: Device: Xiaomi M2102K1AC (Android 12)
INFO: Renderer: direct3d
INFO: Initial texture: 1440x3200

Please do not post screenshots of your terminal, just post the content as text instead.

https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#mouse-and-keyboard-do-not-work
https://github.com/Genymobile/scrcpy#prerequisites


Improve documentation

Checklist

[X] I added a descriptive title
[X] I searched open requests and couldn't find a duplicate

What is the idea?
conda-index's sphinx documentation is quite bare. It would be nice to expand it, and possibly include autogenerated CLI documentation.
Could consider documenting the meant-to-be-overridden sqlite cache.
Why is this needed?
No response
What should happen?
No response
Additional Context
No response

The first page of the docs begs the question what is a channel directory? (a directory with subdirectories noarch, , osx-64 etc.; the subdirectories contain packages).

https://github.com/conda/conda-index/pull/95


Fix for #1715

This is a fix for https://github.com/rejectedsoftware/vibe.d/issues/1715.
The change is to use the same cast as at: https://github.com/rejectedsoftware/vibe.d/blob/master/mongodb/vibe/db/mongo/connection.d#L370

Unfortunately the fix  revealed another issue which is triggered by the vibe-core target:

....\Users\appveyor\AppData\Roaming\dub\packages\eventcore-0.8.8\eventcore\source\eventcore\drivers\winapi\sockets.d(10,7): Error: class eventcore.drivers.winapi.sockets.WinAPIEventDriverSockets interface function 'void setTargetAddress(Handle!("datagramSocket", Handle!("socket", Handle!("fd", uint,<PHONE_NUMBER>u), Handle(4294967295u)), Handle(Handle(4294967295u))) socket, scope Address target_address) nothrow @safe' is not implemented

So it seems the new issue is fixed with https://github.com/vibe-d/eventcore/commit/https://github.com/vibe-d/eventcore/commit/420c361b5f8b2ded5de9e6ab166cf27ab1dada97 but we are not yet consuming the eventcore sources. I'll try to figure out what can be done.

Okay, thanks for preparing the fix! I'll merge this and will also have a look at the remaining errors on Travis. I've also tagged eventcore 0.8.9 with the WinAPI fix present. Let's see what happens...


acquire_many: 2 fixes

Fix 1
Update head to the next available Hazard Pointer Record rather than the next hazard pointer record, as we should only be returning available records.
Previous behavior demonstrated
suppose we have a list of the following records
0: Rec {
  next: 1,
  next_available: 2,
}
1: Rec {
  next: 2,
  next_available: null,
}
2: Rec {
  next: null,
  next_available: null
}

A call to try_acquire_many would count the available nodes and return n = 2, but when we build our array of nodes, we'd put in nodes 0 and 1, rather than nodes 0 and 2, since we'd take next on each record rather than next_available
If we had called acquire_many with N = 3, we'd end up with an array of [0, 1, 2] rather than an array of [0, 2, New]
Fix 2
Properly order the newly created Hazard Pointer Records in relation to the existing records that were acquired. This reverse the direction of the links from pointing from record i to i-1 to instead point from record i to i+1.
Previous behavior demonstrated:
suppose try_acquire_many returned n = 3 and N is 5, we'd have an array of the following:
each step:
# 1
head = Rec { next_available: 1 }
tail = null
built_array = [
  0: Rec { next_available: 1 },
  ...
]

# 2
head = Rec { next_available: 2 }
tail = Rec { next_available: 1 }
build_array =  [
  0: Rec { next_available: 1 },
  1: Rec { next_available: 2 },
  ...
]

# 3
head = Rec { next_available: null }
tail = Rec { next_available: 2 }
built_array = [
  0: Rec { next_available: 1 },
  1: Rec { next_available: 2 },
  2: Rec { next_available: null },
  ...
]

# Then we'd get to our newly created records
# 4
head = null
tail = Rec { next_available: null }
rec = Rec { next_available: null }
rec.next_available = tail
built_array = [
  0: Rec { next_available: 1 },
  1: Rec { next_available: 2 },
  2: Rec { next_available: null },
  3: Rec { next_available: 2 },
  ...
]

# 5
head = null
tail = Rec { next_available: 2 }
rec = Rec { next_available: null }
rec.next_available = tail
built_array = [
  0: Rec { next_available: 1 },
  1: Rec { next_available: 2 },
  2: Rec { next_available: null },
  3: Rec { next_available: 2 }, // points backwards
  4: Rec { next_available: 3 }, // points backwards
]

With the previous behavior, we construct a list with two heads, each pointing inwards to share a tail
By changing rec.next_available = tail to tail.next_available = rec we can maintain proper ordering of our list

Nice! Do you think it's possible to add tests that trigger the issue as well? That'd be particularly helpful.

Also, thinking some more about this, I think we'll want to replace all debug_asserts with a macro that does:
if cfg!(loom) {
    assert!(...);
} else {
    debug_assert!(...);
}

so that we actually pick up debug assertion failures when running under loom (which uses --release). That might help catch some issues like these. Also, adding tests for the behavior you've fixed here is almost certainly just a matter of adding more assertions, and then loom should catch them.
Speaking of loom, we should really get CI up and running, and include MIRI, ASAN, and TSAN runs in there. I'll open an issue.

See https://github.com/jonhoo/haphazard/issues/10 if you want to take a stab at CI :)

Hey there! Just got some tests written and updated the PR with some new info regarding API changes & another fix

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@9acd218). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #9   +/-   ##
=======================================
  Coverage        ?   88.22%
=======================================
  Files           ?        7
  Lines           ?      552
  Branches        ?        0
=======================================
  Hits            ?      487
  Misses          ?       65
  Partials        ?        0

Continue to review full report at Codecov.

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

I updated it to return [&'array mut HazardPointer] and avoided the HazardPointer's individual drops by putting them inside ManuallyDrop


TransferProcess: remove unnecessary REQUESTED_ACK state

I got no responses to the discussion about the REQUESTED_ACK state, so with issue I propose to delete it.
Discussed in https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/discussions/629

Originally posted by ndr-brt February  7, 2022
Going through the TransferProcess state machine I noticed this REQUESTED_ACK state.
This state, according to the code and the docs, can be reached only on the consumer side, and at the moment there's only one point where there's such state transition:
after the provision is complete, the TP is set in REQUESTED state and the data request is sent to the provider, if the response is successful, the TP is moved to REQUESTED_ACK and moved suddenly to IN PROGRESS (or STREAMING).
There's also a checkProvisioned() method that fetches TPs in such state to move them in IN PROGRESS (or STREAMING), but probably never won't find anything.
To follow the "state machine pattern" that was defined in #613 probably we would remove the REQUESTED_ACK state, and for the PROVISIONED TP the process should be:

put it in REQUESTED state
send data request to provider
if response is successful, move it to IN_PROGRESS or STREAMING
if response is failed, move it to PROVISIONED if there's a retry strategy set or to ERROR elsewhere.

I'm not sure we can remove this. For example, after the ack is received from a request, there may be some time before the data transfer is put in progress (or streaming) on the provider side. Also, there is the case where the provider has to issue a key for the client to access the data and that happens sometime after the ack is received.
The code that transitions immediately from ACK to IN_PROGRESS/STREAMING was a temporary workaround until we implement the notification mechanism.
Maybe this is something we should look into further for M3?

Ok, seems reasonable, however this makes me feel like we have a discrepancy in the state naming convention.
At the moment there are these states:

REQUESTED (I'm about to call the provider)
REQUESTED_ACK (the provider responded successfully)

But, if I take a look at other cases e.g. in the *ContractNegotiationManagers, the pattern is (for example):

CONSUMER_OFFERING (I'm a about to call the provider)
CONSUMER_OFFERED (the provider responded successfully)

So maybe the two TransferProcess status should be called REQUESTING and REQUESTED, this would give more cohesion and reduce confusion.

This was done in #831


Scroll floating button

Better UX
Add a floating button to get back to the top search and focus on the search input (improvements for UX), it can be something like green button:

Why this?
As you can see, when we have a big scroll down, we have to scroll up the same way (it can be annoying and tiresome for the user)

We have added this new feature @JairDavid thanks a lot for your feedback


Imbued zamorak cape (L)

=equip mage Imbued zamorak cape (L)
shount this only be a lvl 75 mage requirement not max cape?

This is no longer an issue.


Firewall rule fails open if no sources specified

The firewall for this module fails open (to range <IP_ADDRESS>/0) if no sources are specified.
This is concerning as it leaves unaware users of this module one step away from opening their load balancer to traffic from anywhere, possibly without realising.

This looks to be represented upstream as well: https://github.com/hashicorp/terraform-provider-google/issues/6789

I got stung by this today :(
Still relevant in latest version


Link card layout is broken

can't reproduce, they look fine for me

Sorry, it works fine for me now.

I have the exact same issue, using OldTweetdeck and BetterTweetdeck's last versions., on Firefox Developer 117.
Usually, refreshing the page helps fixing it, but it comes back some time after that.

Layout remains broken when clicking on a tweet with a card link.
Console doesn't display anything different (that I can spot, at least) when layout is broken compared to when it's working fine.


fix(command): fix typo

Closes https://github.com/adonisjs/adonis-commands/issues/10

Coverage remained the same at 97.952% when pulling 720d350b2dde40952d53a347b4c74dbd9427b2be on RomainLanz:patch-1 into 2e413fe8643141f4d3752f4df04bd936bd65638d on adonisjs:develop.

Thanks 😄


Application persistent header storage

Add persistent and searchable header storage tied to block height. For enabling fast sync

Jobs done!


Skeleton performance is low on GLES2 Android

Godot version:
3.2.2 02ed72c373
OS/device including version:
Linux mint 19.3 / Galaxy S8+
Issue description:
FPS is dropped to around 40 when using skeleton on GLES2.
It's steady 60fps on GLES3 with same scene.
I tested it on GLES2 first and then GLES3 with the same amount of time.

GLES2

GLES3
(ignore the distorted mesh with bones)
Steps to reproduce:

Download attached project
run on Android GLES2
wait about 1 minute or little more and see FPS is getting to drop
run on Android GLES3
see pretty steady 60fps even after several minutes

Minimal reproduction project:
skeleton_performance_gles2.zip

I think GLES2 uses a software path for skeletons (see define USE_SKELETON_SOFTWARE). I don't remember why but I guess it probably means that the GPU implementation requires features that are not available on all GLES2 devices.

You should check if this is true or false on your hardware:
https://github.com/godotengine/godot/blob/3.2/drivers/gles2/rasterizer_storage_gles2.cpp#L6022-L6024

This issue makes an irony for me.
I need GLES2 for Android game for supporting many devices, stability and performance.
GLES3 gives crashes on many devices, but better performance with Skeleton.
I can't choose either... :cry:

Well the thing is that if your device supports GLES3, it should also support the GPU skeleton path on GLES2, unless for some weird reason the driver vendors decided not to implement the float texture support and vertex textures on GLES2 even though their GLES3 (and thus hardware) supports them.
If it's not taking the software path though, that would be a bug as the GLES2 GPU path shouldn't be drastically slower than the GLES3 (I don't have specific knowledge about this though, this is just an expectation).
If you are using the software path, we could still look into possible ways to optimize it for speed.

the driver vendors decided not to implement the float texture support and vertex textures on GLES2 even though their GLES3 (and thus hardware) supports them

I guess this is the case.
according to test result in OP, it runs well on GLES3.

Well it's not the same code on GLES2 and GLES3, so that doesn't tell us which code path it uses on GLES2.
Please check this as I mentioned: https://github.com/godotengine/godot/issues/37696#issuecomment-611127505
You can add a print_line, or check your device specs with http://opengles.gpuinfo.org/ (there's an Android app to generate the report if your device is not already in the list).

here's my phone specs.
http://opengles.gpuinfo.org/displayreport.php?id=4476
and confirmed it uses skeleton software.
in godot/drivers/gles2/rasterizer_storage_gles2.cpp
config.use_skeleton_software = (config.float_texture_supported == false) || (config.max_vertex_texture_image_units == 0);
if (config.use_skeleton_software) print_line("use_skeleton_software = true");
else print_line("use_skeleton_software = false");

--- Debugging process started ---
Godot Engine v3.2.2.rc.custom_build.97fe589ff - https://godotengine.org
OpenGL ES 2.0 Renderer: Mali-G71
use_skeleton_software = true

The logic is correct, as without either float texture or vertex texture read the hardware path won't work. Looking at the phone specs it looks like it doesn't support float texture in GLES2.
If I remember correctly the skeleton software path may be horribly inefficient, I'd not seen that approach before, and I suspect it was done because it was easier to retrofit to the existing pipeline rather than efficiency.
Probably more standard hardware skinning (passing the matrices in array or uniform), or even software skinning would be faster. But they might be a bit more involved to fit into the existing framework. It might be worth adding both because some hardware has bugs about what hardware methods are supported, and software skinning will always be supported.

Same problem here, im working with a scene with 10 characters with skeletons and the fps stay in 2 or 3 in GLES2, but runs normally on GLES3 at 60FPS. This frame rate makes the game unplayable.
I would really like this problem to be solved asap because i intended to publish this game soon, but this incompatibility is becoming a huge obstacle for us
This problem only occurs on this device:

The problem did not occur on the Zenfone 5 and Zenfone Selfie that I tried, only on the printed device.

Same problem here, im working with a scene with 10 characters with skeletons and the fps stay in 2 or 3 in GLES2

How many vertices per model out of interest? You may need to drop your vertex count - high vertex count skinned models is unlikely to work well with fallback methods. Or perhaps there is something else going on, depends on your models.
@pouleyKetchoupp actually already wrote a software skinning implementation recently as part of:
https://github.com/godotengine/godot-proposals/issues/784
Which we suggested to reduz at the time might be of use for software skinning fallback, but he was against it, I can't find the irc logs. He may have believed it wouldn't be faster than the existing fallback. Irrespective, I'm aiming to experimentally try this out for 4.x as well as some alternate hardware skinning implementations. @endragor also did some earlier research in this area I believe.

@pouleyKetchoupp actually already wrote a software skinning implementation recently as part of:
godotengine/godot-proposals#784

The software skinning I've implemented is currently limited to GLES3. It crashes with GLES2 on exported games, because RasterizerStorageGLES2::mesh_surface_get_array is allowed only in tool.
https://github.com/godotengine/godot/blob/7f6767470dda159832162e0670ecbe1fbdfa7e71/drivers/gles2/rasterizer_storage_gles2.cpp#L2671-L2673
I haven't investigated this problem yet, so I'm not sure how it works in the editor and if it would be possible to either make this functionality available for non-tool, or change the skinning implementation to update the vertex buffer in a different way.

Ah I was hoping you'd got around that. :smile: That was the bit I was going to copy lol. Yeah if there's no support for dynamic VBs in GLES2 we will have to write for 4.x.

How many vertices per model out of interest? You may need to drop your vertex count - high vertex count skinned models is unlikely to work well with fallback methods. You could for example, ship 2 variations of skinned mesh, and switch at runtime depends on your frame rate.

@lawnjelly on blender: 2,155 vertices; on godot: 14,850 on GLES2 and 2,358 on GLES 3. I do not believe that it is a high quantity, the project is low poly by nature and I have had a lot of difficulty to reduce even that quantity, I do not know if it is possible to reduce it even more without losing a considerable level of quality.
If i run the project with only one character on scene the fps is around 20, but with 2 characters it reduces to 3. And the reduction occurs since the scene begins, not after some minutes as the original report of @volzhs
After post i tried on a Sansumg Galaxy S9 with a Snapdragon and the problem does not occurs, apparently it's just happening with samsung's Exynos Chipset.
Prints of my animated model:

@lawnjelly As an update, after checking again on 3.2 branch, dynamic VB is supported after #34794. I had made my original tests on a custom branch based on 3.1. So my code for software skinning can be used with GLES2.
The error in non-tool builds is still there but it can be removed since retrieving mesh array data is actually supported.

@Host32 Sorry I only just saw this.
14K skinned verts will indeed toast a lot of GLES2 devices, even best case. It is interesting the discrepancy between GLES2 and GLES3 (not sure how this is measured, debug monitor?). Are you using shadows? That could be causing problems too, each shadow might be causing another skinning pass (I haven't really examined this stuff yet, @clayjohn will know more). I would try turning shadows off to confirm this.
One extra advantage of software skinning is that you can reuse the same skinned mesh for shadow passes.

@lawnjelly As an update, after checking again on 3.2 branch, dynamic VB is supported after #34794. I had made my original tests on a custom branch based on 3.1. So my code for software skinning can be used with GLES2.
The error in non-tool builds is still there but it can be removed since retrieving mesh array data is actually supported.

Retrieving mesh array data shouldn't be necessary for skinning. Maybe it is for historical reasons in the functions that are currently available for dynamic use. The relationship only needs to be one way.

Retrieving mesh array data shouldn't be necessary for skinning. Maybe it is for historical reasons in the functions that are currently available for dynamic use. The relationship only needs to be one way.

In my case with subdivision, I need to retrieve weights from the array data so I can apply skinning from the mesh directly without storing any extra information. But yeah, there are probably better ways to implement software skinning within the GLES2 code.

@lawnjelly

14K skinned verts will indeed toast a lot of GLES2 devices, even best case.
I didn't see it in practice, all the devices i tested with 1GB of RAM and weak CPUs could run the project at 60FPS, only this specific chipset has problems with the animations.

not sure how this is measured, debug monitor?

I have no idea. I see that enabling "View Information" on the editor.

Are you using shadows?

No, i tested it in every possitble way and got the same results. The only difference when enabling shadows is that performance also drops a little on GLES3, but nothing really significant. I did an extensive job to optmize the shaders and use as few passes as possible, so the rendering cost is very low. The only factor that is reducing performance and making the game unplayable is the use of the skeletal animations in the characters.

@lawnjelly As an update, after checking again on 3.2 branch, dynamic VB is supported after #34794. I had made my original tests on a custom branch based on 3.1. So my code for software skinning can be used with GLES2.
The error in non-tool builds is still there but it can be removed since retrieving mesh array data is actually supported.

@pouleyKetchoupp what do i need to do to teste your algorithm? Can i compile the project from your fork or do i need to wait for these changes to be merged with the official branch? I'm in a bit of a hurry for this solution as it could compromise our launch schedule.

906b5e7f3f it's already merged since stable-3.2. so there is if you using 3.2.x

@Host32 @volzhs I've just made a quick implementation of the software skinning I'm using for subdivision in MeshInstance directly:
https://github.com/nekomatata/godot/commit/4bc6923bb70f1f4da0dcdf727641fa95d24aa6ee
If you want to test it, you need to compile a custom version of the 3.2 branch including this commit. Make sure it's the latest 3.2 branch to get #40235 otherwise you'll be spammed with errors at runtime.
In order to test on Android, you also need to compile custom templates using the same changes.
Then you can just check "Software Skinning" property in a mesh instance to test it.

@Host32 @volzhs I've just made a quick implementation of the software skinning I'm using for subdivision in MeshInstance directly:
nekomatata@4bc6923
If you want to test it, you need to compile a custom version of the 3.2 branch including this commit. Make sure it's the latest 3.2 branch to get #40235 otherwise you'll be spammed with errors at runtime.
In order to test on Android, you also need to compile custom templates using the same changes.
Then you can just check "Software Skinning" property in a mesh instance to test it.

I suspect that implementation could be sped up quite a bit too, but it would be interesting to see the comparison with the hardware method, I will try your version later. :+1:

Ok I've now forced SKELETON_SOFTWARE path (which as I said is very inefficient). The results are very enlightening:
4 directional lights:
Software Skinning 133fps
Hardware (fast path) 133fps
Hardware (SKELETON_SOFTWARE) 9fps

@pouleyKetchoupp wow. I just tested it with my project.
without software skinning, it runs 35~40 fps on Galaxy s8+
with software skinning, it's pretty stable 60 fps! yes!

@pouleyKetchoupp I found that all skeleton nodes play the same animation at the same time with duplicated instances when using software skinning.

@pouleyKetchoupp wow. I just tested it with my project.
without software skinning, it runs 35~40 fps on Galaxy s8+
with software skinning, it's pretty stable 60 fps! yes!

This is all adding up to be a convincing case to have this available in addition (and possibly replace in the long run) the USE_SKELETON_SOFTWARE path. I spoke to @clayjohn yesterday and he agreed it seemed convincing.
We can try and bring this to @reduz attention on irc so we can all discuss it.

I'm not sure about the history of USE_SKELETON_SOFTWARE, but indeed it seems somewhat pointless. A faster implementation (and the one we use) would be to store bone transforms in a uniform vector. The downside is that size of uniforms is limited, but even on older devices it allows about 75 bones per mesh, which is more than enough for most use cases on mobile. The uniform bone limit could be set as a project setting.
This is also significantly faster than the "main method" where transforms are provided through a texture.

I'm not sure about the history of USE_SKELETON_SOFTWARE, but indeed it seems somewhat pointless. A faster implementation (and the one we use) would be to store bone transforms in a uniform vector. The downside is that size of uniforms is limited, but even on older devices it allows about 75 bones per mesh, which is more than enough for most use cases on mobile. The uniform bone limit could be set as a project setting.
This is also significantly faster than the "main method" where transforms are provided through a texture.

Yup indeed I also understood this to be the most common method of skinning for GLES2 (and was thinking in terms of using this for the rewrite of GLES2 3d in 4.x, with software skinning fallback).

@pouleyKetchoupp I found that all skeleton nodes play the same animation at the same time with duplicated instances when using software skinning.

Could you please share a minimal repro for this case?

@pouleyKetchoupp - I've made a minor modification to the skinning code:
No lights:
Software skinning 199fps -> 580fps
USE_SKELETON_SOFTWARE 285fps
So now software skinning is twice as fast as the old fallback path, even with no lights, and should be even faster with lights.
The modification was to add this at the start:
	// pre get bones
	int num_bones = visual_server->skeleton_get_bone_count(skeleton);
	const int SKIN_MAX_BONES = 128;
	Transform bone_transform[SKIN_MAX_BONES];
	for (int n=0; n<num_bones; n++)
	{
		bone_transform[n] = visual_server->skeleton_bone_get_transform(skeleton, n);
	}

and change the per vertex to this:
			int b0 = bone_id[0];
			int b1 = bone_id[1];
			int b2 = bone_id[2];
			int b3 = bone_id[3];

			Transform transform;
			transform.origin =
					bone_weight[0] * bone_transform[b0].origin +
					bone_weight[1] * bone_transform[b1].origin +
					bone_weight[2] * bone_transform[b2].origin +
					bone_weight[3] * bone_transform[b3].origin;

			transform.basis =
					bone_transform[b0].basis * bone_weight[0] +
					bone_transform[b1].basis * bone_weight[1] +
					bone_transform[b2].basis * bone_weight[2] +
					bone_transform[b3].basis * bone_weight[3];

(The aliasing isn't necessary of course).
There's probably still quite a bit of gains to be got.

@pouleyKetchoupp Something I just noticed, we are not transforming normals I don't think? So it is not exactly like for like at the moment.
For performance reasons in software skinning it can be nice to have the option to not transform normals, but it should be optional. This might be something that could benefit from a per mesh setting, as well as a global setting - you could e.g. not transform normals on enemies, but do transform on the main player.

@lawnjelly I've just pushed a new version with prepared bone transforms and I've made it a draft PR to make it easier to test and make more changes if needed : #40313
Good point for the normals, and it sounds good to have it as an option.

Fixed by #40313.


Set VSECM_LOG_LEVEL to 3

During the recent release cut we’ve inadvertently defaulted the log level to "7" everywhere.
Here’s an example.
            - name: VSECM_LOG_LEVEL
              value: "7"

7 is way too verbose.
We should default it to "3".

Assign


x/mobile: stdlibc++ deprecation building issue: flags set but still shows error: clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of iOS 7 [-Wdeprecated]

What version of Go are you using (go version)?

$ go version
go version go1.11.2 darwin/amd64

Other version info:

Xcode: Version 10.1 (10B61)
macOS: 10.14.2 (18C54)

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/wildcat/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/wildcat/golang"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.11.2/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.11.2/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS="-stdlib=libc++"
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/4q/nqwtcbqx7kl9pp0dllbqx4qc0000gn/T/go-build198858859=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

Background: I was trying to build a Go library (with C++ source) into objective-c bindings (as .framework).
$ export CGO_CPPFLAGS="-stdlib=libc++"
$ gomobile bind -target ios github.com/yanyiwu/gojieba
gomobile: darwin-arm: go build -tags ios -buildmode=c-archive -o /var/folders/4q/nqwtcbqx7kl9pp0dllbqx4qc0000gn/T/gomobile-work-251366135/gojieba-arm.a gobind failed: exit status 2
# github.com/yanyiwu/gojieba
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of iOS 7 [-Wdeprecated]
ld: library not found for -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see invocation)

What did you expect to see?
The library can be built as an iOS framework.
What did you see instead?
The build failed due to libstdc++ is used even if I set export CGO_CPPFLAGS="-stdlib=libc++".
Without export CGO_CPPFLAGS="-stdlib=libc++", it shows:
$ export CGO_CPPFLAGS=""
$ gomobile bind -target ios github.com/yanyiwu/gojieba
gomobile: darwin-arm: go build -tags ios -buildmode=c-archive -o /var/folders/4q/nqwtcbqx7kl9pp0dllbqx4qc0000gn/T/gomobile-work-275429029/gojieba-arm.a gobind failed: exit status 2
# github.com/yanyiwu/gojieba
warning: include path for stdlibc++ headers not found; pass '-std=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
In file included from jieba.cpp:5:
In file included from ../../../../golang/src/github.com/yanyiwu/gojieba/deps/cppjieba/Jieba.hpp:4:
../../../../golang/src/github.com/yanyiwu/gojieba/deps/cppjieba/QuerySegment.hpp:4:10: fatal error: 'algorithm' file not found

CC @eliasnaur @hyangah

@imWildCat you can use the latest version of gomobile or the -iosversion flag to set a minimum iOS version >= 7.

Thank you, @eliasnaur ! It works perfectly!


Cursor is zoomed when using recording/meeting software like Zoom and ScreenFlow

VSCode Version: latest
OS Version: macOS latest

Steps to Reproduce:

Record your screen with ScreenFlow or Zoom
Notice the recording has the cursor huge

This happens to everyone I've seen who has tried it.
It even happens in CodeSandbox.io with the VSCode editor experience enabled.
See the gifs here: https://twitter.com/kentcdodds/status/1113160739114455040

I can reproduce with

rMBP's retina screen, vscode on the left and focused, browser on the right

I can't reproduce with

rMBP's retina screen, monaco editor playground https://microsoft.github.io/monaco-editor/index.html
External monitor (non-4k), any setup

Is it possible (IMO very likely) that this is a feature of Screenflow or Zoom, where it enlarges the cursor when necessary?

Highly unlikely I think. I don't see why it would only apply it to vscode based editors...

Notes from debugging:
VS Code codebase specific
Not electron specific
Repros in CodeSandbox
High DPI related issue
Don't see it on regular DPI monitors
Not Monaco specific
Not in playground
Chromium + webkit repo
No gecko

Debugged together with @auchenberg and nailed it down to -webkit-image-set.


regions to scrutinize

in hg002:
4:79,404,896-79,404,957
4:144,660,836-144,660,939

Issue outdated?


Heads

Hey,
Is there any way to create a head only net? I mean I want to detect bounding boxes of all the people + their heads only.
Thanks.

If you were to have a heads only net, you could not properly generate the bounding box of the people right? Openpose already supports extracting the pose and the location of facial keypoints. Calculating the bounding boxes from these two sets of keypoints should be trivial.
If you only care about bounding boxes, openpose (and thus pyopenpose) might be overkill.  There are other, often RCNN based, detectors available online which only report back the bounding boxes instead of all detected keypoints.

I only care about the bounding boxes. Right now I'm using yolo v3 which is working quite good but the thing is coco model detects humans pretty accurately but most of the time heads(trained with Hollywood+SCUT head datasets) are not detected. So I'm thinking about trying openpose, time is not an issue so if something is highly accurate I'll be happy to accept it.
Next thing I'm gonna do is use google open images dataset with yolo and faster rcnn I guess it'll work good enough.

I have not tried out the face keypoint detection of openpose, but you could certainly try a easy enough approximation of the face bounding box using various keypoints. you could try some example images and see if you can extract the face bounding box using the ear or shoulder keypoints. That should work okayish I'm guessing.


Daemon crashed with "Signature failed to verify"

Please find the attached logs

https://drive.google.com/file/d/1Muq0FJVMjmDGnnYXcnzh6dsrggeSSZ1F/view?usp=sharing

The last several log lines are:
{
  "timestamp": "2021-01-20 18:16:21.329125Z",
  "level": "Faulty_peer",
  "source": {
    "module": "Trust_system__Peer_trust",
    "location": "File \"src/lib/trust_system/peer_trust.ml\", line 185, characters 10-51"
  },
  "message": "Banning peer $sender_id until $expiration due to $action",
  "metadata": {
    "action": "Trust_system.Actions.Sent_invalid_signature_or_proof (Staged_ledger error: $error)",
    "error": "Pre_diff_info.Error error: (Verification_failed (Verification_failed \"signature failed to verify\"))",
    "expiration": "2021-01-21 18:16:21.329110Z",
    "host": "<IP_ADDRESS>",
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302,
    "sender_id": {
      "host": "<IP_ADDRESS>",
      "peer_id": "12D3KooWKRb1WyoUX9nAyrmqcnWBUZAiAU1BNXTPbwYjdmgpvMjf",
      "libp2p_port": 8302
    }
  },
  "event_id": "4d3d3e37e0365f1dbc6d35fddafeb77d"
}
{
  "timestamp": "2021-01-20 18:16:21.791501Z",
  "level": "Error",
  "source": {
    "module": "Cache_lib__Impl",
    "location": "File \"src/lib/cache_lib/impl.ml\", line 222, characters 10-48"
  },
  "message": "Cached.sequence_result called on an already consumed Cached.t",
  "metadata": {
    "cache": "Transition_handler__Unprocessed_transition_cache",
    "host": "<IP_ADDRESS>",
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302
  }
}
{
  "timestamp": "2021-01-20 18:16:21.791640Z",
  "level": "Error",
  "source": {
    "module": "Transition_handler__Processor",
    "location": "File \"src/lib/transition_handler/processor.ml\", line 190, characters 14-26"
  },
  "message": "Error while building breadcrumb in the transition handler processor: $error",
  "metadata": {
    "error": {
      "string": "Pre_diff_info.Error error: (Verification_failed (Verification_failed \"signature failed to verify\"))"
    },
    "host": "<IP_ADDRESS>",
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302,
    "state_hash": "3NKMLqDmgc4Mq4QHfzi4QQQJgwSNqXtRRn9xqQdV2saLs7PcErPA"
  }
}
{
  "timestamp": "2021-01-20 18:16:21.791679Z",
  "level": "Debug",
  "source": {
    "module": "Network_pool__Batcher",
    "location": "File \"src/lib/network_pool/batcher.ml\", line 130, characters 4-26"
  },
  "message": "Verifying proofs in batch of size $num_proofs",
  "metadata": {
    "host": "<IP_ADDRESS>",
    "num_proofs": 2,
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302
  }
}
{
  "timestamp": "2021-01-20 18:16:21.791688Z",
  "level": "Debug",
  "source": {
    "module": "Network_pool__Batcher",
    "location": "File \"src/lib/network_pool/batcher.ml\", line 153, characters 4-26"
  },
  "message": "Calling verifier with $num_proofs on $ids",
  "metadata": {
    "host": "<IP_ADDRESS>",
    "ids": [
      8118,
      8119
    ],
    "num_proofs": 2,
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302
  }
}
{
  "timestamp": "2021-01-20 18:16:22.255401Z",
  "level": "Fatal",
  "source": {
    "module": "Init__Coda_run",
    "location": "File \"src/app/cli/src/init/coda_run.ml\", line 580, characters 2-26"
  },
  "message": "Unhandled top-level exception: $exn\nGenerating crash report",
  "metadata": {
    "exn": {
      "sexp": [
        "monitor.ml.Error",
        "Cached item has already been finalized",
        [
          "Raised at file \"src/error.ml\" (inlined), line 9, characters 14-30",
          "Called from file \"src/lib/cache_lib/impl.ml\", line 173, characters 30-51",
          "Called from file \"src/lib/cache_lib/impl.ml\", line 199, characters 6-69",
          "Called from file \"src/lib/transition_handler/processor.ml\", line 198, characters 16-102",
          "Called from file \"src/deferred0.ml\", line 56, characters 64-69",
          "Called from file \"src/job_queue.ml\" (inlined), line 131, characters 2-5",
          "Called from file \"src/job_queue.ml\", line 171, characters 6-47",
          "Caught by monitor coda"
        ]
      ],
      "backtrace": [
        "Raised by primitive operation at file \"src/jemalloc.ml\", line 53, characters 2-36",
        "Called from file \"src/jemalloc.ml\", line 57, characters 48-67"
      ]
    },
    "host": "<IP_ADDRESS>",
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302
  }
}

It seems as though sending a staged ledger diff with a bad signature may be triggering misbehaviour in Cache_lib, causing a fatal Cached item has already been finalized error.

The last several log lines are:
{
  "timestamp": "2021-01-20 18:16:21.329125Z",
  "level": "Faulty_peer",
  "source": {
    "module": "Trust_system__Peer_trust",
    "location": "File \"src/lib/trust_system/peer_trust.ml\", line 185, characters 10-51"
  },
  "message": "Banning peer $sender_id until $expiration due to $action",
  "metadata": {
    "action": "Trust_system.Actions.Sent_invalid_signature_or_proof (Staged_ledger error: $error)",
    "error": "Pre_diff_info.Error error: (Verification_failed (Verification_failed \"signature failed to verify\"))",
    "expiration": "2021-01-21 18:16:21.329110Z",
    "host": "<IP_ADDRESS>",
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302,
    "sender_id": {
      "host": "<IP_ADDRESS>",
      "peer_id": "12D3KooWKRb1WyoUX9nAyrmqcnWBUZAiAU1BNXTPbwYjdmgpvMjf",
      "libp2p_port": 8302
    }
  },
  "event_id": "4d3d3e37e0365f1dbc6d35fddafeb77d"
}
{
  "timestamp": "2021-01-20 18:16:21.791501Z",
  "level": "Error",
  "source": {
    "module": "Cache_lib__Impl",
    "location": "File \"src/lib/cache_lib/impl.ml\", line 222, characters 10-48"
  },
  "message": "Cached.sequence_result called on an already consumed Cached.t",
  "metadata": {
    "cache": "Transition_handler__Unprocessed_transition_cache",
    "host": "<IP_ADDRESS>",
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302
  }
}
{
  "timestamp": "2021-01-20 18:16:21.791640Z",
  "level": "Error",
  "source": {
    "module": "Transition_handler__Processor",
    "location": "File \"src/lib/transition_handler/processor.ml\", line 190, characters 14-26"
  },
  "message": "Error while building breadcrumb in the transition handler processor: $error",
  "metadata": {
    "error": {
      "string": "Pre_diff_info.Error error: (Verification_failed (Verification_failed \"signature failed to verify\"))"
    },
    "host": "<IP_ADDRESS>",
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302,
    "state_hash": "3NKMLqDmgc4Mq4QHfzi4QQQJgwSNqXtRRn9xqQdV2saLs7PcErPA"
  }
}
{
  "timestamp": "2021-01-20 18:16:21.791679Z",
  "level": "Debug",
  "source": {
    "module": "Network_pool__Batcher",
    "location": "File \"src/lib/network_pool/batcher.ml\", line 130, characters 4-26"
  },
  "message": "Verifying proofs in batch of size $num_proofs",
  "metadata": {
    "host": "<IP_ADDRESS>",
    "num_proofs": 2,
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302
  }
}
{
  "timestamp": "2021-01-20 18:16:21.791688Z",
  "level": "Debug",
  "source": {
    "module": "Network_pool__Batcher",
    "location": "File \"src/lib/network_pool/batcher.ml\", line 153, characters 4-26"
  },
  "message": "Calling verifier with $num_proofs on $ids",
  "metadata": {
    "host": "<IP_ADDRESS>",
    "ids": [
      8118,
      8119
    ],
    "num_proofs": 2,
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302
  }
}
{
  "timestamp": "2021-01-20 18:16:22.255401Z",
  "level": "Fatal",
  "source": {
    "module": "Init__Coda_run",
    "location": "File \"src/app/cli/src/init/coda_run.ml\", line 580, characters 2-26"
  },
  "message": "Unhandled top-level exception: $exn\nGenerating crash report",
  "metadata": {
    "exn": {
      "sexp": [
        "monitor.ml.Error",
        "Cached item has already been finalized",
        [
          "Raised at file \"src/error.ml\" (inlined), line 9, characters 14-30",
          "Called from file \"src/lib/cache_lib/impl.ml\", line 173, characters 30-51",
          "Called from file \"src/lib/cache_lib/impl.ml\", line 199, characters 6-69",
          "Called from file \"src/lib/transition_handler/processor.ml\", line 198, characters 16-102",
          "Called from file \"src/deferred0.ml\", line 56, characters 64-69",
          "Called from file \"src/job_queue.ml\" (inlined), line 131, characters 2-5",
          "Called from file \"src/job_queue.ml\", line 171, characters 6-47",
          "Caught by monitor coda"
        ]
      ],
      "backtrace": [
        "Raised by primitive operation at file \"src/jemalloc.ml\", line 53, characters 2-36",
        "Called from file \"src/jemalloc.ml\", line 57, characters 48-67"
      ]
    },
    "host": "<IP_ADDRESS>",
    "peer_id": "12D3KooWEmAo5xheX8r5ZJnNAYrtqXn5XfZxsV6U9kFo5PFeRXdZ",
    "pid": 12,
    "port": 8302
  }
}

It seems as though sending a staged ledger diff with a bad signature may be triggering misbehaviour in Cache_lib, causing a fatal Cached item has already been finalized error.

This should be fixed by #7568, which will be in the next release. Thanks for reporting!

This should be fixed by #7568, which will be in the next release. Thanks for reporting!


RESTEASY-2330

Adjust the Optional feature implemented for @PathParam according to the discussion in EAP7-1248

waiting for final decision from discussion...


O(n) worst case sampling runtime

The worst case sample time is also O(n) (or O(1) with a large constant factor, if you prefer to think about it that way), achieved when the list of levels starts with a lot of zeros:
julia> using DynamicSampling, Chairmarks

julia> ds = DynamicSampler()
DynamicSampler(Tuple{Int64, Float64}[])

julia> push!(ds, 1, 1.0)
DynamicSampler([(1, 1.0)])

julia> @b ds rand
8.429 ns

julia> for i in 2:1000
           push!(ds, i, 2.0^i)
       end

julia> @b ds rand
16.424 ns

julia> for i in 2:1000
           delete!(ds, i)
       end

julia> @b ds rand
1.292 μs (1 allocs: 48 bytes)

It's possible that this could be fixed by performing a partial sort while traversing the list during sampling, though maybe there's another way with less sampling overhead.

IIUC, the best this algorithm can get is O(log(n)) sampling time because of the case where weights are of the form [1, 1/2, 1/2, 1/4, 1/4, 1/4, 1/4, ...] and level selection alone takes log(n) time.

IIUC, the best this algorithm can get is O(log(n)) sampling time because of the case where weights are of the form [1, 1/2, 1/2, 1/4, 1/4, 1/4, 1/4, ...] and level selection alone takes log(n) time.

Yes my earlier comment was wrong, you are right, it actually requires O(log(n)) as you say, and we can't do better than that for this case


Fix links and typos in documentation

This incorporates fixes in:

https://github.com/input-output-hk/cardano-node/pull/2852
https://github.com/input-output-hk/cardano-node/pull/2763
https://github.com/input-output-hk/cardano-node/pull/2703

bors merge


fix: remove unnecessary property

Fixes #77

Tugboat has finished building the preview for this pull request!
Link:

https://pr78-2a1fvzrda1vpc2vscqqabgklvknqnxfi.tugboatqa.com

Dashboard:

https://dashboard.tugboatqa.com/6399b9cfe2e14d36b53eadcd

Visual Diffs:

https://dashboard.tugboatqa.com/6399b9cfe2e14d36b53eadcd/visualdiffs


Update Changelog, Error Messages, and Docs

With the acceptance of #234, we needed to update the changelog, torus set documentation and clarify a few of the new error messages.

:white_check_mark: Build torus-cli 60 completed (commit https://github.com/manifoldco/torus-cli/commit/cda5d22b77 by @ianlivingstone)


Use snake case versions of fields in API queries

Standardizing on snake case for API fields. The browser currently uses some camel case fields which are aliases of snake case versions.

Remaining camel case fields in schema:

[ ] searchResults
[ ] multiNucleotideVariant
[ ] variantId argument for variant and structural_variant
[ ] pLI field on ExAC and gnomAD constraint

Remaining camel case fields in schema:

[ ] searchResults
[ ] multiNucleotideVariant
[ ] variantId argument for variant and structural_variant
[ ] pLI field on ExAC and gnomAD constraint


seat: use XKB_* env vars for configuring keyboard devices

Fixes #66

@ddevault Does this fix your feature request?


Distributed Go app making use of your DB

This is actually a question.
First I tried to use your slack but I couldn't connect to your workspace for some reason.
I"m considering using your DB as an embedded DB in a distributed Go application. That means that in some way I should taking care of the DB instances to be synced.

Have you had the chance to hear about someone who did it?
Do you have any features to sync between different instances?
Does this project is ready for production?

Thanks

I don't recommend using Genji in a distributed setting unless you know exactly what you are doing.
Though it might be possible to do it, and it's certainly something that I would like to achieve at some point, no work has been done yet to make that happen.

No
No
No*. It's been used in production for a while but the database API is not stable yet so things can break in the future.

At this point, I would definitely recommend using something else if you need to sync data between services.

Ok thanks for the quick answer


GPC-NONE: Update to gradle 8

Presumably we need to upgrade the docker base image and or the github actions that reference gradle directly?

I think this is going to cause more trouble than it's worth for the time being. I'll wait until spring have had a chance to catch up and officially support gradle 8


Style elements make it hard to debug failing tests

I'm using React testing library, which outputs the dom when a test fails. react-tooltip injects style elements into the dom, which make it hard to debug failing tests, especially when it results in the output getting cut off because it's so long. Ideally, I'd like some way to be able to turn off the style injection during testing.
Is there a way to turn off style element injection during jest test runs?

Running into this issue also.

Running into this issue also.

same issue on our projects :-(

My workaround was to mock entirely the library with
jest.mock('react-tooltip', () => jest.fn(({ children }) => children));

but I think those repeated inline styles should be fixed regardless

@pastinepolenta it works only if you don't call the static methods of the ReactTooltip

I ended up not mocking the react-tooltip and set an id and uuid instead, resulting in more consistent classnames and ids, like below
       <ReactTooltip id={this.state.tooltipId} uuid={this.state.tooltipId} class='c-tooltip' type='light' html />

Just make the output in the testing library longer via screen.debug(undefined, <size of output> f.e. screen.debug(undefined, 1000000)


Add support for env_file

Background & motivation
While porting services from docker compose I'm unable to port env_file:
https://docs.docker.com/compose/compose-file/05-services/#env_file
Desired behaviour
Support env_file in ServiceConfig
How important is this to you?
Painful; the lack of this feature makes using Kurtosis frictionful.
What area of the product does this pertain to?
SDK: the Software Development Kit libraries - Typescript, Go, etc.

Have you tried using the env_vars field in ServiceConfig
Yes, however the service is published with an env file so it is painful to keep it in sync.

Gotcha! You can make those env_vars parameters that you or anyone using your package can pass in as arguments at runtime!


If Bicep returns a non-0 exit code (e.g. there are any build errors), not propagating output

Describe the bug
@anthony-c-martin of the Bicep team asked me to raise this issue here:
https://github.com/Azure/bicep/issues/11960#issuecomment-1902696228
This issue being experienced is that when az bicep lint fails (returns a non-0 exit code) no output is produced.
Related command
Consider the following command that lints a Bicep module and outputs to a bicep.sarif file:
az bicep lint --file ./infra/main.bicep --diagnostics-format sarif > bicep.sarif
This works well when it comes to lints that exit with 0 (only warnings).  Output is produced, this is as desired. However if the linting fails / exits with non-0 then output is not produced.  This is a problem as users are not advised as to the problem.
Errors
Haha - it's actually the lack of errors that is the issue!
Issue script & Debug output
Running in the context of GitHub Actions:
      - name: Lint Bicep
        if: github.event_name == 'pull_request'
        uses: azure/CLI@v1
        with:
          inlineScript: |
            az bicep install
            az bicep version
            az bicep lint --file ./infra/main.bicep --diagnostics-format sarif > bicep.sarif
            echo '::warning::Bicep linting results:'
            cat bicep.sarif

With a bicepconfig.json that looks like this:
{
  // See https://aka.ms/bicep/config for more information on Bicep configuration options
  // Press CTRL+SPACE/CMD+SPACE at any location to see Intellisense suggestions
  "analyzers": {
    "core": {
      "rules": {
        "no-unused-vars": {
          "level": "error"
        }
      }
    }
  }
}

And in the main.bicep file an unused variable:
var unusedVar = 1

This produces no output.  See here: https://github.com/johnnyreilly/blog.johnnyreilly.com/actions/runs/7684802835/job/20941714974?pr=817
Error: Error: az cli script failed.
cleaning up container...
MICROSOFT_AZURE_CLI_1706434089539_CONTAINER

Error: az cli script failed.

Expected behavior
By contrast compare with https://github.com/johnnyreilly/blog.johnnyreilly.com/actions/runs/7684722135/job/20941552998 where there was a 0 return code:
{
  "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.6.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "bicep"
        }
      },
      "results": [
        {
          "ruleId": "no-unused-vars",
          "message": {
            "text": "Variable \"unusedVar\" is declared but never used. [https://aka.ms/bicep/linter/no-unused-vars]"
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "file:///home/runner/work/blog.johnnyreilly.com/blog.johnnyreilly.com/./infra/main.bicep"
                },
                "region": {
                  "startLine": 19,
                  "charOffset": 5
                }
              }
            }
          ]
        }
      ],
      "columnKind": "utf16CodeUnits"
    }
  ]
}

Regardless of whether exiting with 0 or non-0, az bicep lint should produce output.
Environment Summary
Will provide in a moment
Additional context
Read more from the thread here: https://github.com/Azure/bicep/issues/11960 - there's a bunch of things in there

Thank you for opening this issue, we will look into it.


[bug]: gitpod.yml run error

Is there an existing issue for this?

[X] I have searched the existing issues

Current behavior
Problem
So on opening a new workspace for samples-go, the gitpod.yml file builds the app but for some reason the "init" command for 'docker compose up -d' was giving an error. It started the keploy server successfully but was failing at running the docker service.
Solution
I made changes to the file by moving the docker command to "command" section and it worked nicely without any errors.
Screenshot
Initially

after fixing gitpod.yml file

Steps to reproduce

open samples-go in a new workspace in gitpod
observe the terminal for "echo-sql-sample-application task"

Environment
None
Version
Cloud

I have already fixed the issue. If it's approved I will raise a PR.


Runtimes and APIs for perfect compatibility with Windows programs

Add OpenGL, OpenGL ES and Vulkan to this installation ? I want to make sure that the user dont have to do anything other than running a tool like yours to use the computer and that He can directly move to install the programme he wants with no disturb of any kind by an API or runtime installation.
OpenGL : https://www.opengl.org/
OpenGL ES : https://www.khronos.org/api/opengles
Vulkan : https://www.vulkan.org/
You can Alonso Add Winevdm and DOSBox for compatibility with older programs
Winevdm (to run Windows x86 16 bits programs on Windows x86 64 bits) : https://github.com/otya128/winevdm
DOSBox (to run DOS programs on modern computers) : https://www.dosbox.com/
If you see anything more to install to run all programs, make sure to add it. Thanks.

Thanks for the comment.
OpenGL and Vulkan come bundled with your graphics driver and should not be installed with other versions because of compatibility issues with your drivers.
Since Dosbox is an emulator and not a runtime, I will not add it, and Winevdm is basically an emulator too.
What I could do is create another program with SDKs and add more options there.
I hope this helps and you find the tool still useful.
Manily - Marcel


Fix warnings

Fix [WARNING]: Consider using 'become', 'become_method', and 'become_user' rather than running sudo
fix lint

@venkataanil could you please have look


BIP38 private key trouble

Each time I attempt to sweep my paper wallet to my copay I get an error message that say's, "could not decrypt BIP38 private key. This paper wallet was created on the bitaddress.org website. Can anyone help?

Sorry about that. There is an issue on the prompt. Try entering 'cancel' instead of 'ok'. The buttons label is wrong.

Thanks so much for your reply! I tried the cancel but that button in fact worked to cancel it. I also tried to sweep the paper to my Jaxx account and it just freezes. I was wondering if it was an encryption issue with the bitaddress system.

The good news is that a great friend was totally stressing thinking he had lost everything and after using your advise he recovered everything!!! Thank you for that!

I think Mycelium have the option to decrypt BIP38. You can try it.
Thanks for your report, we will fix it ASAP.

I had the same problem with Copay & Bitpay with the same paper wallet. hit the Cancel button on Copay an it worked thanks for the answer

@XWingNut
I can recover your wallet if you want need help send me email<EMAIL_ADDRESS>


Does not work with util.promisify... however:

Trying to use with Promisify library may produce the following error if any files are indeed open:
Uncaught TypeError: Cannot read property 'unescape' of undefined
    at //node_modules/@ronomon/opened/index.js:106:31

even if it does work with no files open. Thus: the following code will allow you to use this with promises:
// const openedFiles = promisify(Opened.files) // For if/when it does work...
const openedFiles = paths => {
    return new Promise( (resolve, reject) => {
        Opened.files(paths, (error, hashTable) => {
            if (error) return reject(error)
            return resolve(hashTable)
        })
    })
}

and can be used like so:
// Using ES6 syntax
let paths = [...]
// async/await method (Use only within function/method marked async)
let openPaths = await openedFiles(paths).catch(error => throw error)
// promise method
openedFiles(paths)
  .then(pathTable => openPaths = pathTable )
  .catch(error => throw error)

Thanks @alt-jero , I hope your workaround will help others who want to use promises.
Supporting promises is a non-goal however. I would rather encourage vanilla JS. It's far more efficient from a performance perspective.

I would rather encourage vanilla JS

Erm...
https://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects


Exception has occurred. PlatformException (PlatformException(sign_in_canceled, com.google.GIDSignIn, The user canceled the sign-in flow.))

google_sign_in: ^4.1.0 , run as debug after login google dialog and user cancel app error exception with IOS. how can help?

Hi @peterkuch
can you please provide your updated  flutter doctor -v
and your flutter run --verbose?
Also, to better address the issue, would be helpful
if you could post  a minimal code sample
or the steps to reproduce the problem.
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of 'flutter doctor -v'  please.
All system setups can be slightly different so its always better to open new issues and reference related issues.

I can reproduce this with google_sign_in: 4.1.4
Exception has occurred.
PlatformException (PlatformException(sign_in_canceled, com.google.GIDSignIn, The user canceled the sign-in flow.))
void signInWithGoogle() async {
     final _googleSignIn = GoogleSignIn();

      try {
        final GoogleSignInAccount googleSignInAccount = await _googleSignIn.signIn();
        final GoogleSignInAuthentication googleSignInAuthentication =
            await googleSignInAccount.authentication;
      } catch (_) {
        print("Error!");
      }
    }

    • Flutter version 1.15.3 at /Users/<user>/Projects/OSS/flutter
    • Framework revision 67826bdce5 (3 weeks ago), 2020-02-10 14:59:32 -0800
    • Engine revision 6158f03ef5
    • Dart version 2.8.0 (build 2.8.0-dev.8.0 514a8d4c84)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/<user>/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio 3.1.1.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3.1, Build version 11C504
    • CocoaPods version 1.8.4

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio 3.1.1.app/Contents
    • Flutter plugin version 43.0.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] IntelliJ IDEA Ultimate Edition (version 2018.1)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 31.3.1
    • Dart plugin version 181.4203.498

[✓] VS Code (version 1.42.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.8.1

[✓] Connected device (4 available)
    • iPhone 11 Pro Max • 19A9D9C7-F2C6-43FB-AB9B-FFC7BD7866D0 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-3
      (simulator)
    • macOS             • macOS                                • darwin-x64     • Mac OS X 10.15.3 19D76
    • Chrome            • chrome                               • web-javascript • Google Chrome 80.0.3987.122
    • Web Server        • web-server                           • web-javascript • Flutter Tools

• No issues found!```

@VladyslavBondarenko - This issue does not reproduce with flutter run against the iOS simulator.  It appears to be an issue with Visual Studio Code and the Flutter plugin where these exceptions are not treated as "caught".
The break occurs at the line calling siginIn() if the user cancels the initial Google Login dialog (in the simplest case).
If "Uncaught Exceptions" is unchecked in Visual Studio Code then the catch() in the same above is triggered.    This may be an issue with PlatformException handling in the tool chain.

Hi @peterkuch
does the issue occur in debug or release?
could you please provide you flutter run --verbose?
Thank you

i got same problem in VSCode with google sign in v4.2.0
Tested on iOS Simulator


[Frontend] Footer

(Use the hi-fi designs for each respective component / page on MainWebsite-Documentation.)
Implement the following:

Replace link placeholders (LI, IG, etc.) with their respectives logo images
Make all components scaled with screen size (vh, vw), keep them looking similar to hi-fi design on any size
Add "Footer" component to the bottom of every page ("Home" page is already done for you so you can use it as a reference)

Refer to Style Guide for any formatting.

Replaced the logo.


Suggestion deduplication is ignored

forgot to implement :(

fixed in https://github.com/nixiesearch/nixiesearch/pull/205


enable rspec --profiling option

What was the end-user problem that led to this PR?
Test is too slow to run at local. It's pain.
What is your fix for the problem, implemented in this PR?
My fix is for profiling test at local by default.
if it enable this,
Top 10 slowest examples (34.13 seconds, 3.2% of total time):
  bundle install with git sources git sources that include credentials that are username and password does not display the password
    4.09 seconds ./spec/install/gemfile/git_spec.rb:1322
  compact index api does not fetch every spec if the index of gems is large when doing back deps & everything is the compact index
    3.86 seconds ./spec/install/gems/compact_index_spec.rb:426
  bundle install with git sources git sources that include credentials that is an oauth token displays the oauth scheme but not the oauth token
    3.74 seconds ./spec/install/gemfile/git_spec.rb:1338
  compact index api does not fetch every spec if the index of gems is large when doing back deps
    3.54 seconds ./spec/install/gems/compact_index_spec.rb:401
  gemcutter's dependency API does not fetch every spec if the index of gems is large when doing back deps using blocks
    3.48 seconds ./spec/install/gems/dependency_api_spec.rb:399
  global gem caching using the cross-application user cache when installing gems from a different directory uses the global cache as a source
    3.32 seconds ./spec/install/global_cache_spec.rb:136
  bundle exec nested bundle exec with a system gem that shadows a default gem only leaves the default gem in the stdlib available
    3.32 seconds ./spec/commands/exec_spec.rb:736
  .bundle/config subcommands unset
    2.96 seconds ./spec/commands/config_spec.rb:411
  global gem caching using the cross-application user cache when the same gem from different sources is installed should use the appropriate one from the global cache
    2.92 seconds ./spec/install/global_cache_spec.rb:41
  global gem caching using the cross-application user cache when the same gem from different sources is installed should not install if the wrong source is provided
    2.89 seconds ./spec/install/global_cache_spec.rb:84
Top 10 slowest example groups:
  global gem caching
    2.06 seconds average (12.35 seconds / 6 examples) ./spec/install/global_cache_spec.rb:3
  bundle pristine
    1.45 seconds average (14.46 seconds / 10 examples) ./spec/commands/pristine_spec.rb:5
  bundle outdated
    1.34 seconds average (77.68 seconds / 58 examples) ./spec/commands/outdated_spec.rb:3
  process lock spec
    1.31 seconds average (1.31 seconds / 1 example) ./spec/install/process_lock_spec.rb:3
  bundle install with :allow_offline_install
    1.26 seconds average (5.03 seconds / 4 examples) ./spec/install/allow_offline_install_spec.rb:3
  bundle package with git
    1.24 seconds average (11.15 seconds / 9 examples) ./spec/cache/git_spec.rb:16
  bundle update conservative
    1.18 seconds average (11.84 seconds / 10 examples) ./spec/commands/update_spec.rb:655
  bundle cache with git
    1.18 seconds average (10.6 seconds / 9 examples) ./spec/cache/git_spec.rb:16
  bundle cache
    1.18 seconds average (34.12 seconds / 29 examples) ./spec/cache/gems_spec.rb:3
  bundle update in more complicated situations
    1.16 seconds average (3.49 seconds / 3 examples) ./spec/commands/update_spec.rb:353
Finished in 18 minutes 3 seconds (files took 1.12 seconds to load)

is added on test result.

Thanks for opening a pull request and helping make bundler better!
The core team is aware that the tests are fairly slow and effort has been made to make them faster. I don't think enabling the --profile option is going to reveal new information that will be a benefit to everyone.

Ok. thanks. It's just suggestion.


--ui-highlight regex word

did ./preset/defatult.json support regex for maching word ?

Hey. It should because it uses String.prototype.replace https://github.com/mthenw/frontail/blob/master/lib/web/assets/app.js#L148

can u explain to me. how to ?
and i cant use multiple word highlight
{
"words": {
"error": "color: red;"
},
"words": {
    "warning": "color: yellow"
}

}
thanks before

Oh, sorry it's not possible right now. I forgot how patterns are defined. Not sure when I will have a change to implement that though.

Is the highlighting feature still working? I'm having trouble getting it to work.
Its a great UI anyhow though! Great work!
fyi:
{ frontail: '4.0.1',
  npm: '3.10.9',
  ares: '1.10.1-DEV',
  cldr: '29.0',
  http_parser: '2.7.0',
  icu: '57.1',
  modules: '51',
  node: '7.1.0',
  openssl: '1.0.2j',
  tz: '2016b',
  unicode: '8.0',
  uv: '1.10.0',
  v8: '5.4.500.36',
  zlib: '1.2.8' }

@NickBuilder yup, working for me, could you create separate issue with description what is not working.

I'd also be interested to use regex for highlighting. @mthenw are you still willing to look into this feature? Thanks for your work on this great little project!
In particular I'd be interesed in grouping, example:
2017-03-20 01:25:53 [ItemStateChangedEvent] - BD_Heating_ActTemp changed from 20.80 to 20.70

I want to highlight "BD_Heating_ActTemp" hence highlighting needs to be similar to
"words": {
    "] - (\\w*) changed.*": "color: yellow;"
}

+1

+1

+1 nice to have feature, any news or deadline for this? (thanks and keep up the good work)

Hi all, I found a solution to this issue!
All you need to do is add the new function file after function  var _highlightWord = function(line) { ... } in file /usr/local/lib/node_modules/frontail/web/assets/app.js
var _highlightRegExpr = function(line) {
  var output = line;
  if (_highlightConfig && _highlightConfig.regexpr) {
    Object.keys(_highlightConfig.regexpr).forEach((pattern) => {
       output = output.replace(new RegExp(pattern, 'gm'), _highlightConfig.regexpr[pattern]);
    });
  }
  return output;
};

Change the code on line 326 in the same file from p.innerHTML = _highlightWord(data); to p.innerHTML = _highlightRegExpr(_highlightWord(data));
Then add a new section called regexpr to the file /usr/local/lib/node_modules/frontail/preset/default.json
My variant is:
{
   "regexpr":{
      "(received command )(.*)":"$1$2",
      "(predicted to become )(.*)":"$1$2",
      "(changed from )(.*)(\\sto\\s)(.*)":"$1$2$3$4",
      "\\'([^\\']+)\\'":"'$1'",
      "\\[(INFO |ERROR|WARN )\\]":"$&"
   },
   "lines":{

   },
   "words":{

   }
}

And voilà.


docs: deprecate import.meta.globEager usage

Description 📖
This pull request changes the documentation to drop the deprecated import.meta.globEager (since Vite 3) usage.
Background 📜
This was happening because Vite 3 was released.
The Fix 🔨
Not really a fix, just a documentation update.
Screenshots 📷

Thanks Johann! 😃


improve error message

Scope & Purpose
Add more info to an error message.

[x] Bug-Fix for a released version (did you remember to port this to all relevant release branches?)
[x] The behavior in this PR can be (and was) manually tested (support / qa / customers can test it)

Related Information

[x] There is a JIRA Ticket number (In case a customer was affected / involved): ES-383

Testing & Verification
This change is a trivial rework / code cleanup without any test coverage.
https://<IP_ADDRESS>/view/PR/job/arangodb-matrix-pr/7259/

hot_backup tests failed in the PR run. everything else ok.


Add .bcr configs for publishing to the central registry

Adding BCR configs to start publishing rules_android_ndk to the Bazel Central Registry.

@ahumesky are you OK with moving this PR forward?

Thank you!


BlanklineAfterOpenTagFixer - Do not add a line break if there is one already.

The BlanklineAfterOpenTagFixer adds a line even is there is one already.
Fix for:
https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/1331

Please take a look about which branch you should target with your PR: https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/1.11/CONTRIBUTING.md#quick-guide

Thank you @SpacePossum.

Please take a look about which branch you should target with your PR:

will do, sorry!
thanks @keradus


Store original transitions in the ModelChecker execution stack

Currently, during the ModelChecker execution, it's stack stores states and oracles, the latter representing the transition picked to reach the state. This transition is represented, though, as a relative index in the array of transitions enabled in the previous state.
For reporting purposes (e.g. printing a counterexample) we need the stack to contain references to the original transitions from the specification. Please refactor ModelChecker for that purpose.

This will be resolved in the multicore version, as it completely changes ModelChecker

This is fixed long time ago in TransitionExecutor.


Implement generalized accessors using yield-once coroutines

For now, the accessors have been underscored as _read and _modify.  I'll prepare an evolution proposal for this feature which should allow us to remove the underscores or, y'know, rename them to purple and lettuce.
_read accessors do not make any effort yet to avoid copying the value being yielded.  I'll work on it in follow-up patches.
Opaque accesses to properties and subscripts defined with _modify accessors will use an inefficient materializeForSet pattern that materializes the value to a temporary instead of accessing it in-place.  That will be fixed by migrating to modify over materializeForSet, which is next up after the read optimizations.
SIL ownership verification doesn't pass yet for the test cases here because of a general fault in SILGen where borrows can outlive their borrowed value due to being cleaned up on the general cleanup stack when the borrowed value is cleaned up on the formal-access stack.  Michael, Andy, and I discussed various ways to fix this, but it seems clear to me that it's not in any way specific to coroutine accesses.
rdar://35399664

@atrick I'd appreciate a review of the SILOptimizer changes here.
@slavapestov @jckarter If y'all wouldn't mind looking over the Sema and SILGen changes.

Build failed
Swift Test OS X Platform
Git Sha - 92044016cdc37b43a86746df19bcf95e4deb50a1

Build failed
Swift Test Linux Platform
Git Sha - 92044016cdc37b43a86746df19bcf95e4deb50a1

@swift-ci Please test.

Build failed
Swift Test OS X Platform
Git Sha - 92044016cdc37b43a86746df19bcf95e4deb50a1

Build failed
Swift Test Linux Platform
Git Sha - 92044016cdc37b43a86746df19bcf95e4deb50a1

@swift-ci Please test.

Build failed
Swift Test OS X Platform
Git Sha - 217c651ee7fd63e31eb46be855a8d970715c6ab2

Build failed
Swift Test Linux Platform
Git Sha - 217c651ee7fd63e31eb46be855a8d970715c6ab2

@rjmccall it looks to me like SIL formal access on the begin_apply's address will be handled correctly with this patch.
I suspect that side effect analysis will just be conservative at the begin_apply, in the sense that it continues analyzing the function past the yield, summarizing both the initialization and resume effects at the begin_apply.
The end_apply will be a problemif there's no any restriction on what users can do in the coroutine's "tail". As such, I'm a little surprised that it isn't also modeled as an ApplySite. In the current implementation, its side effects are conservative, and the effects on the call graph should already be modeled by the begin_apply, so it may be ok in general. But I'm pretty sure AccessedStorageAnalysis will be wrong. It currently assumes that formal access can only occur at an ApplySite or begin_access. Ultimately, that should be fixed to view the end_apply's effects as if it were an ApplySite. The most natural way to do that would be to teach SideEffectAnalysis in general to treat end_apply as an ApplySite. How do you feel about that? I don't see an alternative short of preventing the user from performing formal access in the coroutine tail. Of course, for now, I could just hack SideEffectAnalysis to call setWorstEffects at an end_apply.

There are no restrictions about what can happen in the end_apply; that instruction runs the coroutine to completion.  Note that borrows and inout accesses that are initiated for arguments to begin_apply must last until the end of the end_apply / abort_apply, so you may need some special treatment.
Beyond that, I don't know what significance treating end_apply as an apply site has beyond having pessimal side effects.

Two things.

Correctness. I want to rely on the fact that only a begin_access or  ApplySite may initiate formal access. I need to extend that to include end_apply now, and maybe abort_apply† Note that there's no other non-apply instruction quite like this that can execute arbitrary SIL operations (aside from deinit). So, more generally, if I create a new opcode and declare that something can only happen via that opcode, now I need to check for: the opcode itself, all ApplySites, all end_apply's.

Strength of the analysis. In the long run, we don't just want to assume an end_apply could access anything, unless we also assume it will be inlined whenever possible.

†I'd like to assume that an arbitrary release, which may call deinit, does not need to check at runtime that a global/property accessed by the deinit may conflict with something being accessed in the caller. That will be prohibitive for access marker merging/elimination. That's shady though because it's not quite "as if" the deinit ran later.

Note that abort_apply can run arbitrary cleanups including, yes, releases, but also defer blocks.  So yeah, anything can happen there.  If you think it makes sense to treat it as an ApplySite, okay, but I suspect that that isn't right for literally any other client.

I think it's conceptually right to make end_apply and apply everywhere. But I don't think it's worth it. There are too many places in the code that assume an ApplySite is either Full or Partial. This would be neither. It would have a callee but no normal arguments. I think that's sort of what you're saying.
In practice, giving end_apply arbitrary side effects will end up being conservatively correct in almost all cases. AccessedStorageAnalysis can be fixed easily. SIL developers will just need to remember that there are other apply-like things to check for now.


click "Matching Donation" for Opp for $0.00 yield unexpected error

Minor issue:
I have a Donation that creates an Opportunity for zero dollars like so:

When I click the "Matching Donation" button the resulting screen says only "Error:
Attempt to de-reference a null object"

**lurch: add

Tracking W-017267


Named DU support

[<Test>]
    let ``Produces an union with fields`` () =
        AnonymousModule() {
            Union("Colors") {
                UnionCase("Red", [ Named(nameof(string)); NameAndType("b", nameof(int)) ])
                UnionCase("Green")
                UnionCase("Blue")
                UnionCase("Yellow")
            }
        }

        |> produces
            """

type Colors =
    | Red of string * b: int
    | Green
    | Blue
    | Yellow

"""

Given Named and NameAndType are widgets, I think for consistency it would be preferable to use the collection syntax for UnionCase instead of passing an array.

Given Named and NameAndType are widgets, I think for consistency it would be preferable to use the collection syntax for UnionCase instead of passing an array.

That was my first attempt. But I could not make it work as we needed to have a WidgetBuilder and CollectionBuilder with the same Widgetkey, which did not work


Design of menu

I was studying the organization of sourceadacemy's menus and realised that despite the 3-tier navigation, my friends and I did not use most of the pages (e.g inbox). This is what it looks like now:

I believe that using just one navigation bar, we can extract the important parts of each section, like so (I have yet to add things like paths and contests). Semantic differentiation can easily be done using delimiters (like the one beside the Device button).

UPDATE:
I've made the changes on #70, it looks like this:


Failed to prepare distributions

Steps to Reproduce
I uninstalled rye and reinstalled it in a different location.
When I open the previous project again and run rye sync, it gives an error.
❯ rye sync
Reusing already existing virtualenv
Generating production lockfile: C:\Users\inasa\Desktop\pyproject\requirements.lock
Generating dev lockfile: C:\Users\inasa\Desktop\pyproject\requirements-dev.lock
Installing dependencies
Resolved 14 packages in 12ms
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: pyproject @ file:///C:/Users/inasa/Desktop/pyproject
  Caused by: Failed to create temporary virtualenv
  Caused by: Could not find a suitable Python executable for the virtual environment based on the interpreter<EMAIL_ADDRESS>error: Installation of dependencies failed in venv at C:\Users\inasa\Desktop\pyproject\.venv. uv exited with status: exit code: 2

But rye show can output the information correctly.
❯ rye show
project: pyproject
path: C:\Users\inasa\Desktop\pyproject
venv: C:\Users\inasa\Desktop\pyproject\.venv
target python: 3.8
venv python<EMAIL_ADDRESS>virtual: false
configured sources:
  default (index: https://pypi.org/simple/)

But there are no issues with newly created projects.
I tried to delete .venv and then run rye sync, but there was still no change.
Expected Result
❯ rye sync
Reusing already existing virtualenv
Generating production lockfile: C:\Users\inasa\Desktop\pyproject2\requirements.lock
Generating dev lockfile: C:\Users\inasa\Desktop\pyproject2\requirements-dev.lock
Installing dependencies
Resolved 1 package in 6ms
Audited 1 package in 0.37ms
Done!

Actual Result
❯ rye sync
Reusing already existing virtualenv
Generating production lockfile: C:\Users\92867\Desktop\pyproject\requirements.lock
Generating dev lockfile: C:\Users\92867\Desktop\pyproject\requirements-dev.lock
Installing dependencies
Resolved 14 packages in 13ms
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: pyproject @ file:///C:/Users/92867/Desktop/pyproject
  Caused by: Failed to create temporary virtualenv
  Caused by: Could not find a suitable Python executable for the virtual environment based on the interpreter<EMAIL_ADDRESS>
error: Installation of dependencies failed in venv at C:\Users\92867\Desktop\pyproject\.venv. uv exited with status: exit code: 2

Version Info
❯ rye --version
rye 0.39.0
commit: 0.39.0 (bf3ccf818 2024-08-21)
platform: windows (x86_64)
self-python<EMAIL_ADDRESS>symlink support: false
uv enabled: true

Stacktrace
No response

Where is<EMAIL_ADDRESS>which evidently doesn't exist any more after uninstalling Rye, referenced in the files of your project? Do you want to download<EMAIL_ADDRESS>as a "toolchain" or upgrade the project to the already available<EMAIL_ADDRESS>of the new Rye installation?

upgrade the project to the already available<EMAIL_ADDRESS>of the new Rye installation. How to do this?

I would try the following:
rye pin 3.12
rye sync -f

Using -f on sync will delete the old .venv instead of trying to use it, so it needs to reinstall everything.

When I execute rye sync -f, the following error occurs:
❯ rye sync -f
error: failed to delete existing virtualenv (at 'C:\Users\inasa\Desktop\pyproject\.venv')

Caused by:
    Access is denied. (os error 5)

Running the cmd with administrator privileges also results in the same error.
But when I manually delete the .venv and then execute rye sync -f, it works.

When I open it again, it doesn't work.
pyproject on  main [?] is 📦 v0.1.0 via 🐍 v3.12.5 (pyproject)
❯ rye pin 3.12
pinned 3.12.5 in C:\Users\inasa\Desktop\pyproject\.python-version

pyproject on  main [?] is 📦 v0.1.0 via 🐍 v3.12.5 (pyproject)
❯ rye sync -f
Initializing new virtualenv in C:\Users\inasa\Desktop\pyproject\.venv
Python version<EMAIL_ADDRESS>Generating production lockfile: C:\Users\inasa\Desktop\pyproject\requirements.lock
Generating dev lockfile: C:\Users\inasa\Desktop\pyproject\requirements-dev.lock
Installing dependencies
Resolved 14 packages in 13ms
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: pyproject @ file:///C:/Users/inasa/Desktop/pyproject
  Caused by: Failed to create temporary virtualenv
  Caused by: Could not find a suitable Python executable for the virtual environment based on the interpreter<EMAIL_ADDRESS>error: Installation of dependencies failed in venv at C:\Users\inasa\Desktop\pyproject\.venv. uv exited with status: exit code: 2

Do you have any .python-version or .python-versions files in this directory or any above? Look everywhere :)

I also met the same issue, here's the log
  Caused by: Failed to create temporary virtualenv
  Caused by: Could not find a suitable Python executable for the virtual environment based on the interpreter<EMAIL_ADDRESS>
the temporary solution is rye fetch 3.12.3. I wonder why my rye requires 3.12.3 to operate everything?

I had the same problem and here's what I did:

first pin to 3.11

rye pin 3.11
rye sync

then pin to 3.12

rye pin 3.12
rye sync

I've tried, but it still doesn't work.


Give a way to alert if we can't connect to the server

As far as I can tell from brief digging (in particular, looking at Haste.WebSockets) there is no way for the client to know that the websocket connection failed, except to write our own javascript.  Can we have something in Haskell for this?  Thanks!

The third argument to withWebSocket is a computation that gets invoked when an error occurs, usually the connection failing or getting terminated. Do you need any additional info about why the connection was terminated for your use case?

I was playing with the example apps, and the only way I was able to figure out why it wasn't working (host name issue with the WS connection) was by launching the javascript console.  Even with the server completely inaccessible, I never saw an error of any kind.
Now that I know what to look for, I see that runClient does have an error handler, but in the case of never having connected, it doesn't seem to fire.

That's definitely a problem. Will look into it.


Logging to debug worker timeouts

Short Description

This adds logging to help us understand what the webapp is doing when we get WORKER TIMEOUTS.

Changes
I've added:

Logging before / after erica requests (to get timestamps).
SQLAlchemy echo logging, without values for privacy reasons (gives us timestamps on transactions).
Log the request-id generated by nginx in gunicorn access and any other python logs.

Feedback

Nothing specific.

Reference:

https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.hide_parameters
https://docs.python.org/3/howto/logging-cookbook.html#using-filters-to-impart-contextual-information
https://docs.gunicorn.org/en/stable/settings.html#access-log-format

Request id needs testing on staging.

I am not so sure if we can ensure the privacy with the hide_parameters parameter.

Agreed, but see my comment above. This was the change you requested, correct?

Do we want to log the request_id also in Erica?

Yeah, that would be the next step if we find out that timeouts are caused by Erica. For now, I'd leave it at this and see if it takes us closer to understanding the problem.