ci(fix): Load private key as base64

Unresolved problems:

https://github.com/1Password/load-secrets-action/issues/46

Stage failed for
[INFO] Performing local staging (local stagingDirectory="/home/runner/work/incubator-opendal/incubator-opendal/bindings/java/local-staging/staging")...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  03:57 min
[INFO] Finished at: 2023-06-25T03:33:38Z
[INFO] ------------------------------------------------------------------------
Error:  Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13:deploy (default-cli) on project opendal-java: Execution default-cli of goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.13:deploy failed: Mandatory plugin parameter 'nexusUrl' is missing -> [Help 1]
Error:
Error:  To see the full stack trace of the errors, re-run Maven with the -e switch.
Error:  Re-run Maven using the -X switch to enable full debug logging.
Error:
Error:  For more information about the errors and possible solutions, please read the following articles:
Error:  [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
Error: Process completed with exit code 1.

cc @tisonkun, would like to help take a look?

Closing as conflict. Maybe I can find some time to overcome it - at least it's clear how to fill the credentials now.


Any open issues available to contribute? GSSOC23 Contributer here

Hi @Suryansh1720001 , i am a GSSOC23 contributer and I would like to resolve any issue you might have.
I have seen this project from project section of GSSOC23
Can you assign some issue?
Heres My Resume which you might find useful: Resume
Ive more than 1 year of experience in android development(check profile for more details)
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response
Code of Conduct

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

Hi @Suryansh1720001 , I am a GSSOC23 contributor
I'm eager to contribute to this project and utilize my Android development skills. I'm looking for new issues to work on or opportunities to implement new features. If there are any tasks that need assistance or if you have any specific feature requests, I would be happy to contribute.
Please let me know if there are any unassigned issues or if you would like me to propose new features or improvements to the project. I'm open to suggestions and ready to collaborate with the team.
Thank you, and I'm excited to be part of this project!

@s0oraj @Aditya13s
Hey guys, there are new issues open for you to check out. Alternatively, you can also take a look at the app itself and discover any bugs or find areas where enhancements can be made.
Additionally, don't forget to follow @Suryansh1720001 and star this repository for future use.
Thank You


ReflectionException help slove the problem

On the localhost yii2 work good!
When i push on the repo git and filled to the server i recive this error!
plz help with problem

Please use forums for troubleshooting. This is issue tracker i.e. you should be sure there's a problem in framework code. Thanks.


ON DELETE CASCADE constraint on composite keys not being created

GORM Playground Link

https://github.com/go-gorm/playground/pull/349
Description
ON DELETE CASCADE constraints aren't created as expected on tables with composite foreign keys.

I seem to be having a similar issue:
type ParentObject struct {
  ID        int64 `gorm:"primarykey"`
  VID       int64     `gorm:"primaryKey;default:1"`

  ChildObjects        *[]*ChildObject  `gorm:"ForeignKey:ParentObjectID,ParentObjectVID;References:ID,VID;constraint:OnDelete:CASCADE;"`
}

type ChildObject struct {
  ID        int64 `gorm:"primarykey"`
  VID       int64     `gorm:"primaryKey;default:1"`

  ParentObjectID           *int64
  ParentObjectVID          *int64
}

If the parent object is deleted, the ChildObject still remains. Not sure what might be missing here.

Define it like this and disable the soft delete to make it works
type User struct {
	ID          uint `gorm:"primarykey"`
	CreatedAt   time.Time
	UpdatedAt   time.Time

	Employments []Employment `gorm:"constraint:OnDelete:CASCADE;"`
}


test apdu response in secure channel

Hi, I'm a beginner in javacard and I want to test an apdu response for an applet following this repo.
My applet is almost the same as https://stackoverflow.com/a/30839366, And I want to makeup a test for this store instruction.
My question is, how can I open the secure channel and transmit my apdu in the secure chanell in my AppletTest.java?
thanks for your help!

Hi,
glad to see more and more people getting interested in the JavaCard developement. The applet you have contains only on-card part (which implements secure channel SCP), but you need also pc-side application implementating this secure channel (and sending STORE_DATA apdu). Take a look at https://github.com/martinpaljak/GlobalPlatformPro - this tool implements SCP and manages applets on a card.

thanks for your reply~
As I see, your test code(AppletTest.java, SimpleAPDU) is run by the javacard-tools jar dependency. It's a SE simulation environment? just like GPPro?
In further, I can't add some simple code to meet my needs by this?:
public class AppletTestGithubIssue {

    //<PHONE_NUMBER> is the secure data
    private static final String APDU_1_W_SecData = "00B00000050504030201";

    @BeforeClass
    public static void setUpClass() throws Exception {
        SimpleAPDU.initENV();
    }

    @Test
    public void testSecureData() throws Exception {
        // TODO
        // some code to open the secure channel ??
        //
        ResponseAPDU apdu = SimpleAPDU.demoSingleCommand(APDU_1_W_SecData);
        Assert.assertNotNull(apdu);
        Assert.assertEquals(0x9000, apdu.getSW());
    }
}

BTW, would this be possible?
 @Test
    public void testSecureData() throws Exception {
        // TODO
        // some code to open the secure channel ??
        GPSystem.xxxxx
        //
        ResponseAPDU apdu = SimpleAPDU.demoSingleCommand(APDU_1_W_SecData);
        Assert.assertNotNull(apdu);
        Assert.assertEquals(0x9000, apdu.getSW());
    }

We use jcardsim.org for simulation of on-card functionality. The jcardsim in free version do not have support for GPSystem, but I believe they have this part available for fee: https://jcardsim.org/blogs/jcardsim-gp-global-platform-module-jcardsim
Other option is to extract relevant code directly from GlobalPlatformPro

got it, thanks a lot!


NewPassword -> SecurePassword

fixes #4607

Cool, it works for sure
Get-DbaService sql2017 -Type Engine -Instance MSSQLSERVER | Update-DbaServiceAccount -Username base\sharepoint -SecurePassword $cred.Password -Verbose

restarting this branch, the failures make no sense


Ubuntu 20.04 build fails on kotlin hash validation

Description
For the latest release we get the following error during build:
==> azure-arm: Provisioning with shell script: /home/runner/work/virtual-environments/images/linux/scripts/installers/kotlin.sh
    azure-arm: Downloading 'https://github.com/JetBrains/kotlin/releases/download/v1.9.20/kotlin-compiler-1.9.20.zip' to '/tmp/kotlin-compiler.zip'...
    azure-arm: Download completed
==> azure-arm: Provisioning step had errors: Running the cleanup provisioner, if present...
...........

There is no specific error but running kotlin.sh locally with -x gives the following hint:
++ matching_line='- [KT-32275](https://youtrack.jetbrains.com/issue/KT-32275) Embedding kotlin-compiler-embeddable into a Java EE App leads to CDI related deployment error
' kotlin-compiler-1.9.20.zip | 15a8a2825b74ccf6c44e04e97672db802d2df75ce2fbb63ef0539bf3ae5006f0 |
+++ echo '- [KT-32275](https://youtrack.jetbrains.com/issue/KT-32275) Embedding kotlin-compiler-embeddable into a Java EE App leads to CDI related deployment error
' kotlin-compiler-1.9.20.zip | 15a8a2825b74ccf6c44e04e97672db802d2df75ce2fbb63ef0539bf3ae5006f0 |
+++ wc -l
++ [[ 2 -gt 1 ]]
++ echo 'Multiple lines found included the file kotlin-compiler. Please specify a more specific file name.'
++ exit 1
+ kotlin_hash='Multiple lines found included the file kotlin-compiler. Please specify a more specific file name.'
+ use_checksum_comparison /tmp/kotlin-compiler.zip 'Multiple lines found included the file kotlin-compiler. Please specify a more specific file name.'
+ local file_path=/tmp/kotlin-compiler.zip
+ local 'checksum=Multiple lines found included the file kotlin-compiler. Please specify a more specific file name.'
+ local sha_type=256
+ echo 'Performing checksum verification'
Performing checksum verification
+ [[ ! -f /tmp/kotlin-compiler.zip ]]
++ shasum --algorithm 256 /tmp/kotlin-compiler.zip
++ awk '{print $1}'
+ local_file_hash=15a8a2825b74ccf6c44e04e97672db802d2df75ce2fbb63ef0539bf3ae5006f0
+ [[ 15a8a2825b74ccf6c44e04e97672db802d2df75ce2fbb63ef0539bf3ae5006f0 != \M\u\l\t\i\p\l\e\ \l\i\n\e\s\ \f\o\u\n\d\ \i\n\c\l\u\d\e\d\ \t\h\e\ \f\i\l\e\ \k\o\t\l\i\n\-\c\o\m\p\i\l\e\r\.\ \P\l\e\a\s\e\ \s\p\e\c\i\f\y\ \a\ \m\o\r\e\ \s\p\e\c\i\f\i\c\ \f\i\l\e\ \n\a\m\e\. ]]
+ echo 'Checksum verification failed. Expected hash: Multiple lines found included the file kotlin-compiler. Please specify a more specific file name.; Actual hash: 15a8a2825b74ccf6c44e04e97672db802d2df75ce2fbb63ef0539bf3ae5006f0.'
Checksum verification failed. Expected hash: Multiple lines found included the file kotlin-compiler. Please specify a more specific file name.; Actual hash: 15a8a2825b74ccf6c44e04e97672db802d2df75ce2fbb63ef0539bf3ae5006f0.
+ exit 1

So it seems that get_github_package_hash cannot determine the correct hash due to multiple lines matching kotlin-compiler.
Platforms affected

[ ] Azure DevOps
[ ] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

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

Image version and build link
ubuntu20/20231030.2
Is it regression?
Any version not containing https://github.com/actions/runner-images/pull/8596
Expected behavior
Build succeeds
Actual behavior
build fails. See description above.
Repro steps
Build latest ubuntu 20.04 image

Hey @nlighten!
In progress here https://github.com/actions/runner-images/pull/8704.

Hi @erik-bershel ,
That was a super quick response. I searched the issues but missed this PR. Sorry for that.
I'll wait for the fix then.

should be fixed in main, do not forget to sync :)

I did run both Windows and Linux pipelines on Saturday - the error is still there.


Align fork epoch with the start of EPOCHS_PER_SYNC_COMMITTEE_PERIOD

Issue

Suggestion: align fork epoch with the start of EPOCHS_PER_SYNC_COMMITTEE_PERIOD.
Pros:

More stable network at the starting epochs of the fork.
Aesthetically align the time setup.

Cons: It would be more difficult to coordinate the suitable clock time.

If we do it, I'd like to add an invariant check to the pyspec builder. Therefore we have to adjust the temporary stub ALTAIR_FORK_EPOCH to the number that matches the assertion.
Proposal

Update the TBD *_FORK_EPOCH stub to 2**63.
Add ALTAIR_FORK_EPOCH % EPOCHS_PER_SYNC_COMMITTEE_PERIOD == 0 checks to pyspec builder.

i'm not opposed to this change but would say its more of a broader coordination issue across everyone who will be executing the fork -- the downside is that it constrains the timing of the fork (and raises the question how we want to handle future forks...) so that if e.g. we want to execute the fork at a given slot (bc the wall clock time is convenient for some reason) we may have to wait up to do ~48 hrs extra

Is the alignment of the stubs (which are not supposed to be used) really necessary? I think we can just add a special case for the stub value in the invariant check.
For non-stub values, I brought up the alignment issue during review in March here: https://github.com/ethereum/eth2.0-specs/pull/2201#discussion_r595579252 A shorter period at the start seems fine to me if the test cannot avoid it. And yes, for mainnet we can align it nicely.
And I would prefer an unit test that checks alignment of all mainnet fork version values, to keep the spec builder simple.

@ralexstokes

its more of a broader coordination issue across everyone who will be executing the fork

Agreed!
This alignment is half for aesthetic improvement and half for technical improvement. It would look bad if we somehow set ALTAIR_FORK_EPOCH + 1 the period boundary, so I think some stability improvement is better than none.

@protolambda

I would prefer an unit test that checks alignment of all mainnet fork version values, to keep the spec builder simple.

Fair enough! I was thinking about putting invariant checks in the markdown file, but that was too messy. Moving to unit test should be good.

Thanks for @ajsutton, @arnetheduck, @djrtwo, and @dankrad 's feedback on the call:

#2406 ensures that the first two epochs have the same sync committee.
In Teku's prototyping, a short period is not a big problem.
Considering coordination overhead likely not worth it.

Other time period parameters:

EPOCHS_PER_HISTORICAL_VECTOR: ~0.8 years
HISTORICAL_ROOTS_LIMIT: ~27 hours
... are also too long to align with.

Leaving this PR open for a few days in case we get new feedback. If no, I'll close this issue. :)

During the meeting, I think the HISTORICAL_ROOTS_LIMIT was mentioned to constrain the alignment to a month (8k epochs) which indeed is very long.
I think1 day is fairly palatable however - should the proposal for https://github.com/ethereum/eth2.0-specs/pull/2417 be accepted, this alignment would help make the transition a lot easier.

Oops, wrong link, should be https://github.com/ethereum/eth2.0-specs/pull/2428

closing for now, as discussed two calls ago this does not buy us too much on simplification


Update vnet-deployment.md

Clarifying two things that I'm seeing customers get confused about

Accessing the public endpoint from outside of Azure requires a rule to be added to the NSG
Our current Private Link/Private Endpoint solution doesn't work if you provision Dev/Test because the load balancers are basic instead of standard

#label:"aq-pr-triaged"

@name Thanks for contacting us with feedback about our product documentation. Depending on the complexity, it could take from a few business days to a few weeks to look further into your question, issue, or suggestion. We'll contact you if we need further information, and you'll receive an email message each time we "@mention" you in a comment.

@shsagir : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off
Reviewed by docs. PR Review team, please publish. Tx

@shsagir: I'm sorry - only the author of this article, @orspod, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Verify the content spelling and gramar of the 'Onboarding Project Volunteer' job page

Description: You must ensure that all written content on the 'Onboarding Project Volunteer' job page is free from spelling and grammatical errors.
Preconditions: The website is live and accessible.

Step 1: Go to 'Cum poți ajuta tu?' section and click on the 'Onboarding Project Volunteer' job
Expected result: The job page loads successfully.

Step 2: Review the job's header for spelling and grammatical errors.
Expected results: No spelling or grammatical errors in the job's header.

Step 3: Review the job's description text for spelling and grammatical errors.
Expected result: No spelling or grammatical errors in the job's description.

Step 4:  Review the contact information section for spelling and grammatical errors.
Expected result: No spelling or grammatical errors in the contact information section.

Step 5: Check if the 'Aplica' button text is written correctly.
Expected Result: The 'Aplica' button text is spelled correctly.

Step 6: Check if the 'Inapoi la locurile de munca' button text is written correctly.
Expected Result: The 'Inapoi la locurile de munca'' button text is spelled correctly.


Remove onDidSave fn registration for PDF Preview

To make onDidSave work properly, the following is necessary:
Get the disposable from onDidSave below and store on the proper scope...
(probably map[uri] = disposable or something)
Then:
Prior to generating and opening pdf...
If preview fn called by onDidSave, but no existent preview...
Call dispose() on the disposable to cancel the callback
I walked this path a little to see where it would lead... and ran into too many problems to justify.  It could be done, but we'd have to decide how that would be done.  May involve some refactor.  May involve additional package config settings.
If we go the route of this pull request, then we lose (maybe just temporarily) the automatic-regeneration of the PDF on save events to the fountain file.  However, we solve both the UX issue and the legit bug.

Halts the automatic reopening of PDF Preview on fountain save after closing out of preview. (bug)
Defaults to manual generation, meaning PDF Preview only takes focus when users are actively engaging it. (ux issue)

Casual testing shows this working fine on my end.  Is this ready to merge?

Yes, this should not have any problems.


Export logic from Maatwebsite ExportClass

Is there any possibility to make an ExportAction via Maatwebsite custom class as it was in previous versions via WithExportable trait?

Yes. The ExcelExport class implements the Maatwebsite Concerns, so you can still work on that base layer. The class is just an abstraction layer for easier configuration.
ExportAction::make()->exports([
    YourMaatwebsiteExportClass::make('table'),
])

Closing as stale.


Embeddable form

Hello,
I am surprised that this data management tool does not have form system. Why is it ?
It would be great if there was a form which could collect the data.
Is it going to be implemented any time soon?
Thank you!!

Hi @anupamtandon. Forms are on our roadmap https://github.com/gristlabs/grist-core/issues/37. They haven't been a top priority since many users have had success using integrations - there's an example at https://support.getgrist.com/integrators/#example-storing-form-submissions
Native forms would make sense, I agree, and they are on our roadmap. In the meantime, recent improvements to granular access control are getting us closer to enabling spreadsheets for data collection without sign-ins, example: https://templates.getgrist.com/jd234iH1zDsL/Simple-Poll/p/1  Something better could be made by combining page embedding with a custom widget for a conventional form-like UI (someone would need to write this, but there are good open-source libraries for it).

I agree with @paulfitz . OTOH if your needed something super simple and quick, http://demo.bpmn.io/form might be the way to go.

So of us dont know programming or have very little technical aptitude. Hence any inbuilt native form would be so helpful. Any idea when is it going to be released?

The library behind that form demo looks neat @dumblob. @anupamtandon I'd be surprised if months go by without someone creating a custom widget to use that library or others like it to offer a form editor/viewer for Grist documents. Clean, fully integrated native forms are on our roadmap, but I can't guess at when they will happen - my apologies.

I think this feature is now implemented. In case I am wrong, please tell me so I reopen the issue.


Control's mouse_exit() is emitted when the mouse is moved to another control inside that control

Godot version: 3.0 stable, mono <IP_ADDRESS>
OS/device including version:
Win 8.1
Issue description:
The mouse_exited() signal has the following description in the docs:
http://docs.godotengine.org/en/3.0/classes/class_control.html

Emitted when the mouse leaves the control’s Rect area, provided its mouse_filter lets the event reach it.

And for NOTIFICATION_MOUSE_EXIT:

Sent when the mouse pointer exits the node’s Rect area.

Well, that's not the case. The signal and notification are also emitted from control A when the cursor goes to another control B inside and children of A. The behavior is the same whether B has MouseFilter set to Stop or more surprisingly to Pass.
I am guessing that the issue comes from the fact that an object with MouseFilter set to pass only transmit click events and not all mouse events. (according to MouseFilter Pass documentation).
My use case is a small menu that should disappear when the
mouse_exited[1].zip
cursor moves outside. Ideally I would just call queue_free when mouse_exited is received, but in reality this cause the menu to disappear when the mouse moves to a button of the menu.
I tried to add a check to the mouse_exited() event: call queue_free only when mouse_exited() is sent AND the mouse is actually outside of the menu's rect. This does not work either: moving quickly from a button to outside of the menu means that the mouse is never registered as having entered the menu's control, so mouse_exited() is never called.
The first workaround that I found is to check for the cursor's position relative to the control's rect inside _Process(delta) which is very very ugly.
Another one is to add a control that pass mouse clicks on top of the menu, but that's not really clean either.
The best solution would be to have control with mouseFilter set to Pass to pass all mouse info and not only clicks.
The less good solution would be to correct the docs of mouse_exited(), NOTIFICATION_MOUSE_EXIT, mouse_entered() and NOTIFICATION_MOUSE_ENTER.
Steps to reproduce:
Create any control (parentControl)
Create another control inside it (childControl)
set childControl's mouseFilter property to "Pass"
parentControl's mouse_exited() signal fires when the cursor is moved from parentControl to childControl
Minimal reproduction project:
mouse_exited.zip

I'm experiencing the same problem. 3.1.1 stable mono. Any updates / workarounds for this?

Having this issue aswell. Can confirm.

Same here, having a way to say "If the mouse is inside the container" instead of "if the mouse is inside the container, as long as its not hovering over a child of the container" would be great.

I'm facing the same issue on v3.2.1

I'm experiencing the same problem. 3.1.1 stable mono. Any updates / workarounds for this?

Sorry for the late comment, maybe you have already solved this problem or moved on, but writing this to be helpful for other encountering this problem:
A simple but brute-force method is to check if the mouse coordinates are inside the Control:
	var mouse = node.get_global_mouse_position() 	var global_position = node.rect_global_position 	var min_x = global_position.x 	var min_y = global_position.y 	var max_x = global_position.x + node.rect_size.x 	var max_y = global_position.y + node.rect_size.y 	var mouse_is_inside = mouse.x > min_x and mouse.y > min_y and mouse.x < max_x and mouse.y < max_y
A simpler method is via 'has_point()'
 var mouse_is_inside = node.get_global_rect().has_point(node.get_global_mouse_position()):

I'm facing the same issue on v3.2.2 stable build, ubuntu 20.04

I'm having the same issue on 3.2.2 stable, but with Area2D.

I'm having the same issue on 3.2.2 stable, but with Area2D. on MacOS Catalina ver 10.15

Yes, it looks like the mouse_exited() and mouse_entered() signals are sent even when a the mouse moves from one control node, to a child node inside that node while that child is set to pass. I believe this is happening because even though the signal passes through the child, it is coming from a different source. Before, the input event it was coming from the viewport, while now it's coming from the child.
I do agree that this is counter-intuitive though.

As I had the same problem I worked around it, but not by checking the mouse position. I'm simply using a flag and a small timer  delay to check if the mouse_exit was caused by the mouse entering a child node.
it looks like this (buttons mouse filter is set to 'pass' and connect their own signals to the main control node). logic should work for any control type, not just buttons
var _button_hover := 0

func _on_self_mouse_entered():
	if not _button_hover:
            <do mouse enter stuff...>

func _on_self_mouse_exited():
	yield(get_tree().create_timer(0.05), "timeout")
	if not _button_hover:
            <do mouse exit stuff...>

func _on_button_mouse_entered():
	_button_hover += 1

func _on_button_mouse_exited():
	var hover_id = _button_hover
	yield(get_tree().create_timer(0.05), "timeout")
	if _button_hover == hover_id:
		_button_hover = 0

The counter prevents signals being sent in case you have two or more child controls next to each other and you rapidly move the mouse between them

Ugh, the workaround with checking manually if the mouse is within the children rect is really hacky and has too many edge cases. For example, If I rotate the parent, the mouse-coordinates check is of course not aware, so I would need to offset the position it thinks the children rect are by the rotation they received.
There has to be a better way...

Been headbutting into this issue a few times now as well. It's very counter-intuitive and hard to track down. mouse_exited signals should not go off in my opinion, if a child is entered within the same frame (which passes the input back to the parent). Having both mouse_exited and mouse_entered fire at the same time from the same parent-node can only lead to bugs.

I encountered this issue too but I have an alternative solution that is (IMO) more convienent for my problem.
I have an Autoload that plays a sound when a button is hovered over. However due to this issue the sound gets played when the cursor leaves the Control too. To fix this I came up with this:
var audio := AudioStreamPlayer.new()

func _enter_tree() -> void:
	var e := get_tree().connect("node_added", self, "node_added")
	assert(e == OK)
	e = get_tree().connect("node_removed", self, "node_removed")
	assert(e == OK)
	audio.stream = preload("res://addons/ui/397599__nightflame__menu-fx-02.wav")
	audio.bus = "UI"
	add_child(audio)

func node_added(node: Node) -> void:
	if node is BaseButton:
		var e := node.connect("mouse_entered", self, "mouse_entered", [node])
		assert(e == OK)
		e = node.connect("mouse_exited", self, "mouse_exited", [node])
		assert(e == OK)
		# Recursing is necessary because https://github.com/godotengine/godot/issues/16854
		for n in Util.get_children_recursive(node):
			if n is Control:
				e = n.connect("mouse_entered", self, "mouse_entered", [node])
				assert(e == OK)
				e = n.connect("mouse_exited", self, "mouse_exited", [node])
				assert(e == OK)
		node.set_meta("ui_audio_mouse_entered", false)

func mouse_entered(node: BaseButton) -> void:
	assert(node != null)
	if not node.get_meta("ui_audio_mouse_entered"):
		audio.play()
	node.call_deferred("set_meta", "ui_audio_mouse_entered", true)

func mouse_exited(node: BaseButton) -> void:
	node.call_deferred("set_meta", "ui_audio_mouse_entered", false)

When the mouse enters a node or any of it children, ui_audio_mouse_entered is set to true at the end of the frame. When it exits any of the nodes, it is set to false, but because the call is deferred any nodes that are entered afterwards won't cause a sound to be played because ui_audio_mouse_entered remains true until the end of the frame (and it will be set to true immediately afterwards too).

I encountered this issue too but I have an alternative solution that is (IMO) more convienent for my problem.
I have an Autoload that plays a sound when a button is hovered over. However due to this issue the sound gets played when the cursor leaves the Control too. To fix this I came up with this:
var audio := AudioStreamPlayer.new()

func _enter_tree() -> void:
	var e := get_tree().connect("node_added", self, "node_added")
	assert(e == OK)
	e = get_tree().connect("node_removed", self, "node_removed")
	assert(e == OK)
	audio.stream = preload("res://addons/ui/397599__nightflame__menu-fx-02.wav")
	audio.bus = "UI"
	add_child(audio)

func node_added(node: Node) -> void:
	if node is BaseButton:
		var e := node.connect("mouse_entered", self, "mouse_entered", [node])
		assert(e == OK)
		e = node.connect("mouse_exited", self, "mouse_exited", [node])
		assert(e == OK)
		# Recursing is necessary because https://github.com/godotengine/godot/issues/16854
		for n in Util.get_children_recursive(node):
			if n is Control:
				e = n.connect("mouse_entered", self, "mouse_entered", [node])
				assert(e == OK)
				e = n.connect("mouse_exited", self, "mouse_exited", [node])
				assert(e == OK)
		node.set_meta("ui_audio_mouse_entered", false)

func mouse_entered(node: BaseButton) -> void:
	assert(node != null)
	if not node.get_meta("ui_audio_mouse_entered"):
		audio.play()
	node.call_deferred("set_meta", "ui_audio_mouse_entered", true)

func mouse_exited(node: BaseButton) -> void:
	node.call_deferred("set_meta", "ui_audio_mouse_entered", false)

When the mouse enters a node or any of it children, ui_audio_mouse_entered is set to true at the end of the frame. When it exits any of the nodes, it is set to false, but because the call is deferred any nodes that are entered afterwards won't cause a sound to be played because ui_audio_mouse_entered remains true until the end of the frame (and it will be set to true immediately afterwards too).

A simpler method is via has_point()

 var mouse_is_inside = node.get_global_rect().has_point(node.get_global_mouse_position()):
Edit: edited source-code formatting

@Reneator Thank you for sharing this idea!
Your solution didn't work in my implementation. One of my solutions involving TextureRect and PanelContainer (aka popup) nodes inside an hboxcontainer is:
var popup = get_node("PanelContainer")

fun _on_AudioIcon_mouse_entered():
  popup.show()

fun _on_Popup_mouse_exited():
  if !popup.get_rect().has_point(get_local_mouse_position()):
    popup.hide()

It doesn't hide the panel too soon, but it does stick around if the user doesn't press a button first. Instead, additional flat (camouflaged) buttons bordering the panel edges with mouse exited signals is an effective workaround. Fortunately, if you use an hboxcontainer inside a vboxcontainers, both border buttons autofit the panel size and can have the same name.
func _on_AudioIcon_moused_entered():
  popup.show()

func _on_BorderButton_moused_exited():
  popup.hide()

And that works almost perfectly.

On 3.2.3 stable and I'm also having this issue. The mouse moves into the area and mouse_exited is called immediately after mouse_entered, even when the mouse remains within the area. I'm working around it by manually checking the boundaries  but it's super clunky and I'd really love for this function to actually work :(

A simpler method is via has_point()
 var mouse_is_inside = node.get_global_rect().has_point(node.get_global_mouse_position()):

Based on this if you make a control node scene and attach this script:
extends Control
class_name MouseIn

signal mouse_in
signal mouse_out

var mouse_in = false

func _process(delta):
	if "rect_size" in get_parent():
		if get_parent().get_global_rect().has_point(get_global_mouse_position()):
			if !mouse_in:
				emit_signal("mouse_in")
				mouse_in = true
		else:
			if mouse_in:
				emit_signal("mouse_out")
				mouse_in = false

This creates a node type called "MouseIn".
You add this node as a child to the UI element you want to check. The "mouse_in" and "mouse_out" signals behave as required. This means you don't have to rewrite this code for every element.
Just make sure when attaching signals you use "mouse_in" and "mouse_out" rather than "mouse_entered" or "mouse_exited" which still exist as it inherits from control.
Hope this helps.

I'm having the same problem, using Godot 3.3.2 (stable at the moment of writing) and with a TextureProgress with no children.

@dhAlcojor Please upload a minimal reproduction project to make this easier to troubleshoot.

@Calinou Nevermind, I prepared the reproduction project and it wasn't happening. I tested the code in my project again and, somehow, it's working now. I don't understand it...

A simpler method is via has_point()
 var mouse_is_inside = node.get_global_rect().has_point(node.get_global_mouse_position()):

Based on this if you make a control node scene and attach this script:
extends Control
class_name MouseIn

signal mouse_in
signal mouse_out

var mouse_in = false

func _process(delta):
	if "rect_size" in get_parent():
		if get_parent().get_global_rect().has_point(get_global_mouse_position()):
			if !mouse_in:
				emit_signal("mouse_in")
				mouse_in = true
		else:
			if mouse_in:
				emit_signal("mouse_out")
				mouse_in = false

This creates a node type called "MouseIn".
You add this node as a child to the UI element you want to check. The "mouse_in" and "mouse_out" signals behave as required. This means you don't have to rewrite this code for every element.
Just make sure when attaching signals you use "mouse_in" and "mouse_out" rather than "mouse_entered" or "mouse_exited" which still exist as it inherits from control.
Hope this helps.

Thanks so much for this, works perfectly. But a workaround shouldn't have to be used, should it? The intended use of mouse_entered and mouse_exit when combined with the right mouse filter settings should allow for this?

A simpler method is via has_point()
 var mouse_is_inside = node.get_global_rect().has_point(node.get_global_mouse_position()):

Based on this if you make a control node scene and attach this script:
extends Control
class_name MouseIn

signal mouse_in
signal mouse_out

var mouse_in = false

func _process(delta):
	if "rect_size" in get_parent():
		if get_parent().get_global_rect().has_point(get_global_mouse_position()):
			if !mouse_in:
				emit_signal("mouse_in")
				mouse_in = true
		else:
			if mouse_in:
				emit_signal("mouse_out")
				mouse_in = false

This creates a node type called "MouseIn".
You add this node as a child to the UI element you want to check. The "mouse_in" and "mouse_out" signals behave as required. This means you don't have to rewrite this code for every element.
Just make sure when attaching signals you use "mouse_in" and "mouse_out" rather than "mouse_entered" or "mouse_exited" which still exist as it inherits from control.
Hope this helps.

Thanks for this, but be warned that this workaround will trigger the signals always, even if the control is overlapped by other controls. In some cases, this is not the expected behavior.

I adapted to this restriction by making sure that the children of a Node either have mouse_filter.IGNORE or by having the parent hook up to signals of the children that have mouse_filter.PASS or STOP.
Combining this with the manual check if the mouse is inside with:
var mouse_is_inside = node.get_global_rect().has_point(node.get_global_mouse_position())
Makes it possible to cover all functionalities/fronts.
But this also might make it necessary to check for special conditions, like when i have a big menu/overlay over the entire UI, the "has_point" fires, even though you might have a different control in front. As mouse_entered and mouse_exited respects the mouse_filter and visual overlay of control nodes.
I am compensating this by having bools that get set when a control that covers the screen is shown, like my option_menu or a dialog with an npc with a switch like: "is_option_menu_open" or "is_dialogue_screen_open" which i can then manually check in the "is mouse inside" of the control/node

I'm trying to avoid the mouse_entered and mouse_exited signals when hovering a child control, and at the same time, I'm trying to not firing always the mouse_in and mouse_out from Jattmackson's code. This is my proposal, still very far from perfect, but maybe someone finds it useful.
extends Node

signal mouse_in
signal mouse_out

onready var _parent = get_parent()
var mouse_in = false

func _ready():
	if _parent and _parent.has_method('get_global_rect'):
		assert(_parent.connect('mouse_entered', self, '_on_mouse_enter') == OK)
		assert(_parent.connect('mouse_exited', self, '_on_mouse_exit') == OK)

func _process(_delta):
	_mouse_out()

func _on_mouse_enter():
	_mouse_in()

func _on_mouse_exit():
	_mouse_out()

func _mouse_in():
	if not mouse_in and _mouse_inside_control(_parent):
		mouse_in = true
		emit_signal('mouse_in')

func _mouse_out():
	if mouse_in and not _mouse_inside_control(_parent):
		mouse_in = false
		emit_signal('mouse_out')

func _mouse_inside_control(control):
	var mouse_position = control.get_global_mouse_position()
	return control.get_global_rect().has_point(mouse_position)

It is really weird, check this out.
https://user-images.githubusercontent.com/41730826/134851248-23c389f2-3894-403c-8c8c-5238b6b21852.mp4

It is really weird, check this out.
VXSC2SK3tm.mp4
But the behaviour is completely different for labels and text boxes:
R2VCszbmv8.mp4
Tested on v4.0.dev.custom_build [8138280] btw
Here is the code which calls mouse enter/exit notifications:
https://github.com/godotengine/godot/blob/8138280d20f8b3974f0f268d4d65035aca30bebc/scene/main/viewport.cpp#L1577-L1587
You can see that mouse_exit is called when the control is different, not just when the mouse leaves the rect. So this could potentially be changed so that exit is only called when over != gui.mouse_over AND gui.mouse_over is not a parent of over

The difference here is because the default "mouse filter" for label is "ignore" whereas the default filter for buttons and textedits is "stop".
Filter "ignore" will never trip mouse_entered but will not trip mouse_exited for its parents
Filter "stop" will trip mouse_entered but also mouse_exited for its parents
Filter "pass" which is supposed to give the intended behaviour is much closer, it trips mouse_entered for the child and then trips mouse_exited and immediately mouse_entered for the parent.
***** (I believe this is a bug it should not trip mouse_exited at all here) *****
(Bug aside), the issue here is both that "mouse filter" is not intuitive for newcomers, and the intuitive outcome of "mouse_entered" and "mouse_exited" is different in different contexts.
For a menu like this setting all the children's mouse filters to "ignore"(ONLY IF it is not an interactive element) or "pass" will give more intuitive behaviour.
Use mouse filter "stop" for when two different menus could overlap and you want the program to realise that it has left a menu.
Because the default mouse_filter settings are different for everything are different, Complex menus which can't overlap it might be worth using my workaround above as it is probably easier than going through every child and changing the mouse_filters.

I'm getting this behaviour (3.3.3.stable) and in my specific case, where I need to manage various popups in different parts of the tree, I came up with the solution below, as the ones presented here did not exactly fit my needs.
Not very elegant, but works well. Hope this can help someone.
func _process(delta: float) -> void:
	if !self.get_global_rect().has_point(self.get_global_mouse_position()) and root_node.is_visible():
		root_node.close_popup()

	if !menu.get_global_rect().has_point(menu.get_global_mouse_position()):
			menu.hide()

	if !root_node.is_visible() and !menu.visible:
		set_process(false)

func _on_ItemPanel_mouse_entered() -> void:
	root_node.update_item_data(data)
	set_process(true)

I am also (on v3.4.stable.official [206ba70f4]) getting this issue. In my case, it arose because the tooltip itself was drawn over the control with the mouse_entered() signal.
You can solve in this case by making sure the new tooltip control does not overlap the detecting control. It is not ideal but is a possible solution.

Seems to me more like documentation issue than a bug. The signal will be emitted when the cursor stops hovering over the Control. This happens not only when it leaves the area, but also when another control gets hovered.
Here's a workaround for those who want to ignore higher controls. It will work in all cases, even when the control is rotated etc.:
func _on_mouse_exited() -> void:
	if not Rect2(Vector2(), rect_size).has_point(get_local_mouse_position()):
		# stuff

Seems to me more like documentation issue than a bug. The signal will be emitted when the cursor stops hovering over the Control. This happens not only when it leaves the area, but also when another control gets hovered.
Here's a workaround for those who want to ignore higher controls. It will work in all cases, even when the control is rotated etc.:
func _on_mouse_exited() -> void:
	if not Rect2(Vector2(), rect_size).has_point(get_local_mouse_position()):
		# stuff

I found one case where this issue could cause more trouble than just ignoring the exited signal:
We have a parent control "A", with mouse filter PASS, and we have a child control "B", inside the node "A", with mouse filter PASS. In that case, when hovering B, the node A emits the exited signal, then B emits the signal entered, and then, the node B emits the signal entered too. If we print this in the console, we will see this:
Parent exited
Child entered
Parent entered

So, to workaround this, we have to ignore the signal emitted by the child B, and also the signal emitted by the parent, but only if the mouse were inside the parent and still inside its rect size.

Still having this issue in 2023

Which version of Godot are you using? Can you upload a reproduction project that demonstrates that issue?

4.1
project:
multiplayer_bomber.zip
Video:
https://github.com/godotengine/godot/assets/3350340/d109581f-3c7d-46ce-ab6b-f65fa4eeaa45

@trytryty1 @RonYanDaik
This should be resolved as of #84547 (4.2). The behavior was changed so that only the node that was entered/exited receives those signals.

lol still not working properly

@Epenko1337
Did you test it on the new 4.2 beta 6?
And is it the same problem as before or is it different at all?
I've tested the latest project above and it seems to be working as intended in beta 6.

Still not working... Never will...

Hi @BendySonic,
What is the issue you are having? Can you provide reproduction steps?

@Epenko1337 Did you test it on the new 4.2 beta 6? And is it the same problem as before or is it different at all?
I've tested the latest project above and it seems to be working as intended in beta 6.

Sadly but i'm using stable 3.5

The problem seems to be focus. When i turned off focus on my buttons, mouse_exited did not fire when clicking them.


RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 1024, 1, 1]] is at version 2; expected version 1 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).

Hi, Thank for your work! I have encountered a problem when I was run your code.
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 1024, 1, 1]] is at version 2; expected version 1 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).

@zZFh
Duplicate of #84

Actually you can simply do optimizerD.step() and optimizerG.step()  after both d_loss.backward and g_loss.backward to avoid this error.


Update current documentation with updated url for  Downloading translation memory (.tmx) files via command line.

This issue is a consequence of recent change in urls scheme for downloading translation memory.
Old Url: Translation Memory
/${locale}/${project}/${locale}.${project}.tmx
New Url: Translation Memory
/translation-memory/${locale}.${project}.tmx

Note: this is in reference to https://github.com/mozilla/pontoon/pull/1692 (https://bugzilla.mozilla.org/show_bug.cgi?id=1666199#c2).


Cython version

Although performance is not the main focus of this package, Pattern tends to run extremely slowly, even on a single sentence (parse takes around 10 seconds). However, if Pattern is rewritten in Cython, it could have greater performance and features, all while preserving readability.

+1
I found where is slow:
ncalls  tottime  percall  cumtime  percall filename:lineno(function)
178    0.005    0.000  108.189    0.608 .env/lib/python3.6/site-packages/pattern/text/init.py:2661(_edit2)
8344   19.272    0.002  108.163    0.013 .env/lib/python3.6/site-packages/pattern/text/init.py:2666()

Cython can be a poor solution here: it have most power for calculation on numerical arrays (NumPy) with strong typing. For text data, it will be necessary to implement special data structures (cf. SpaCy package).


Fix/mobile responsive and store voice

On top of PR https://github.com/deepgram-devs/deepgram-conversational-demo/pull/30
This additionally fixes

Mobile responsiveness
Saving the voice model to store
Converting the input to text area.

demo-1.zip
demo-2.zip
demo-3.zip
(Compressing because of video size limit)

Completing the PR with the last changes

Fixing the bug mentioned here https://github.com/deepgram-devs/deepgram-conversational-demo/pull/31#discussion_r1549843990
Changed text area input border to look more like a box likeshhh, why? because if user is input the text on multiple line then the current border looks very off

demo-4.zip
cc @lukeocodes PR is now ready for review

This is such an improvement!!

:tada: This PR is included in version 0.4.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

This is such an improvement!!

🙏🙏


[FLINK-12371] [table-planner-blink] Add support for converting (NOT) IN/ (NOT) EXISTS to semi-join/anti-join, and generating optimized logical plan

What is the purpose of the change
Add support for converting (NOT) IN/ (NOT) EXISTS to semi-join/anti-join, and generating optimized logical plan
Brief change log

Add SemiJoin to support anti-join and non-equi join
Add FlinkSubQueryRemoveRule to convert (NOT) IN/ (NOT) EXISTS to SemiJoin
Add SimplifyFilterConditionRule to simplify filter condition (including filter condition in RexSubQuery)
Update BatchExecHashJoinRule to convert FlinkLogicalSemiJoin to BatchExecHashSemiJoin, so do BatchExecNestedLoopJoinRule and BatchExecSortMergeJoinRule
Add StreamExecSemiJoinRule to convert FlinkLogicalSemiJoin to SteamExecSemiJoin

Verifying this change
This change added tests and can be verified as follows:

Added FlinkJoinPushExpressionsRuleTest that validates FlinkJoinPushExpressionsRule
Added SimplifyFilterConditionRuleTest that validates SimplifyFilterConditionRule
Added tests that validate logical plan after FlinkSubQueryRemoveRule applied
Added tests that validate physical plan after physical convert rules applied

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not documented)

changes looks good to me, please correct failed tests

@KurtYoung I have fixed the failed test cases, the current failing is in flink-yarn-tests module.


[iOS] Toggling to Flutter app with soft keyboard open triggers layout

I'm using Cupertino theme.  I'd argue there is a bug in CupertinoNavigationBar when  I switch from one APP which the keyboard is displaying to my APP.
It's some hard to describe the detail.
So, I record a video to describe it.  https://youtu.be/bWZC14f3ooE
Here is my flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v0.9.5, on Mac OS X 10.14 18A391, locale en-HK)
[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).
      If Android SDK has been installed to a custom location, set $ANDROID_HOME to that location.
[!] iOS toolchain - develop for iOS devices (Xcode 10.1)
    ✗ Verify that all connected devices have been paired with this computer in Xcode.
      If all devices have been paired, libimobiledevice and ideviceinstaller may require updating.
      To update, run:
        brew uninstall --ignore-dependencies libimobiledevice
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
[✗] Android Studio (not installed)
[!] IntelliJ IDEA Ultimate Edition (version 2018.1.3)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.28.2)
[✓] Connected device (2 available)

! Doctor found issues in 4 categories.

which iOS version are you using? And mind fixing the toolchain problems?

@5ummit
I'm using iOS 12 on iPhone 6s simulator and  iOS 12 on iPhone 7 device in developer role.   I've fixed my toolchain problems. The bug is still can be reproduced. I think it's a bug in Cupertino library.
[✓] Flutter (Channel dev, v0.9.5, on Mac OS X 10.14 18A391, locale en-HK)
    • Flutter version 0.9.5 at /usr/local/flutter
    • Framework revision 020fd590b0 (6 weeks ago), 2018-09-26 14:28:26 -0700
    • Engine revision 38a646e14c
    • Dart version 2.1.0-dev.5.0.flutter-4cf2d3990b

[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).
      If Android SDK has been installed to a custom location, set $ANDROID_HOME to that location.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.3

[✗] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.io/setup/#android-setup for detailed instructions).

[!] IntelliJ IDEA Ultimate Edition (version 2018.1.3)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • For information about installing plugins, see
      https://flutter.io/intellij-setup/#installing-the-plugins

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

[✓] Connected device (1 available)
    • iPhone 6s • 312FCD7F-5A8F-4B93-B327-C7166A0216C1 • ios • iOS 12.1 (simulator)

! Doctor found issues in 3 categories.

Can confirm, we have the same problem

This problem still exists. It's easier to reproduce on an iPhone without the home button, like iPhone X. To reproduce, open flutter app, then open iMessages or something and make sure the keyboard is visible. Now instead of double tapping the home button, swipe the home bar to quickly switch back to the flutter app, and you catch flutter in the process of resizing.
Our workaround right now is to disable window resizing when the keyboard is up, by setting resizeToAvoidBottomInset: false property in Scaffold.

Still happening for me on Flutter 1.9 dev with iOS 12.4.

Confirmed repro on app built with Flutter 1.12 on iOS 13.3.

This is a pretty obvious sign that an app is not native. It's so prevalent that this has become my go-to way to figure out if an app was built with flutter. It's small issues like this that make it tough to sell flutter as a viable alternative to native development.

The blank white space does not go away in certain scenarios when launching the app from a firebase dynamic link sent in iOS messages. The only way to get rid of it is to kill the app.

I was facing this same issue but I noticed it was working fine on some of my screens in the app. That's when I realised we were setting the resizeToAvoidBottomInset value in the working screens so I fixed it by adding the following to the Scaffold for the screens that faced this problem:
resizeToAvoidBottomInset: false,

I was facing this same issue but I noticed it was working fine on some of our screens in the app. That's when I realised we were setting the resizeToAvoidBottomInset value in the working screens so I fixed it by adding the following to the Scaffold for the screens that faced this problem:
resizeToAvoidBottomInset: false,

This sounds like a possible workaround for screens that will never have and keyboard input. It’s not a great solution for screens that will have keyboard input.

still waitng for an official solution -- seems like for pages with inputs, even adding resizeToAvoidBottomInset: false doesnt help.

Hi @zywj testing the code below with the latest master
code
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) => MaterialApp(
        home: const MyHomePage(
          key: Key('home'),
        ),
      );
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) => Scaffold(
        backgroundColor: Colors.yellowAccent,
      );
}

doctor
[✓] Flutter (Channel master, 1.21.0-6.0.pre.17, on Mac OS X 10.15.5 19F101, locale en-GB)
    • Flutter version 1.21.0-6.0.pre.17 at /Users/nevercode/development/flutter_master
    • Framework revision e64fe11542 (12 hours ago), 2020-07-23 18:11:17 -0700
    • Engine revision 626244a72c
    • Dart version 2.9.0 (build 2.9.0-21.0.dev a3815b6590)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/nevercode/Library/Android/sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

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

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

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.2

[✓] Connected device (4 available)
    • iPhone 11 Pro Max (mobile) • D6967F45-CB0F-4D4E-AFD5-278816A21CAE • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-5 (simulator)
    • macOS (desktop)            • macos                                • darwin-x64     • Mac OS X 10.15.5 19F101
    • Web Server (web)           • web-server                           • web-javascript • Flutter Tools
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome 84.0.4147.89

• No issues found!

video
the issue seems to be solved, I feel safe to close this issue,
if you disagree please write in the comments and I will reopen it.
Thank you


Restart Sequence

This document contains the restart sequence for the brokers under various situations.
These sequences can help to restart the brokers in a proper sequence so as to avoid the client applications to be restarted.

I suggest to sign the apache ICLA (see https://www.apache.org/dev/new-committers-guide.html#submitting-your-individual-contributor-license-agreement-icla) and create an appropriate JIRA for this document change eg https://issues.apache.org/jira/browse/ARTEMIS-1730
The name of PR and the commit message should reflect the JIRA name to help tracking the motivation of the change :+1:

nice doc... it needs a JIRA

nice doc... it needs a JIRA

IMO this belongs in the "High Availability" chapter rather than its own chapter.

@jbertram if no objections in next few hours, i will merge this, we can then move it later if wanted. I think the doc is useful

@clebertsuconic it seems this went quiet, but i think its a good contribution, to avoid issues with no Jira i have created one for it: https://issues.apache.org/jira/browse/ARTEMIS-2822


update copyright dates across the project

the copyright year was last updated in 2015.
set the copyright to latest (2022) date.
changes are in js files and LICENSE file.

Hello, and thank you for your pull request. Unfortunately this is not how these copyright labels work in the US.


Unable to connect wallet to Etherscan "revoke feature" to canx ETH Unlimited Contracts

User reported bug via support:
Cannot connect to wallet to Etherscan, objective is to revoke Uniswap approval (Unlimited ERC20 allowances!)
Message:
Hi I have a problem to revoke UNI Swap access to my founds, please help me.
https://etherscan.io/tokenapprovalchecker?search=0x39063c32ebef4b026609ef841b8203e52de68630
Steps to reproduce the behaviour:

Tap Browser
Insert Etherscan Contract url:  https://etherscan.io/tokenapprovalchecker?search=0x39063c32ebef4b026609ef841b8203e52de68630
Cannot connect wallet ---> cannot show

My screenshot where I've replicated the UX:

Interim workaround:
Quick fix for this user to stay inside Alphawallet -

ask user to navigate Browser
use this Url Eth Allowance / Revocation tool:   https://james-sangalli.github.io/eth-allowance/
Wallet should automatically connect (To be confirmed, waiting for user to respond)
User to click "revoke all allowances"

Resolution:

pending user confirmation that workaround point 3 works
pending user confirmation iOS / Android (version number)

Background:
Etherscan has a new Token Approvals feature released  (2 months).  Unproven projects with novel yield farming have reaped more and more token allowances - to the point where they just start stealing user tokens.  Reading: https://kalis.me/unlimited-erc20-allowances/

Note: this ticket is replicated in both iOS and Android pending user confirmation of version

Looks like it's designed to work with MetaMask and in particular on the desktop.
It's at least checking for these:
window.ethereum.isMetaMask
window.ethereum.chainId == '0x1'

And a lesser problem is it doesn't fit on narrow (mobile) screens.
To summarize, it's a limitation of the dapp, but:
A product decision here. I think we might [1] be able to have a hackish solution in such cases that helps by forcing those properties to be valid for this particular dapp. Will write an email.
[1] to be explored and verified if we proceed with this path


Position number in .roles has no number.

Two weeks ago, when I called .roles on IGuildMember object; the variable position would give you a number based on rank.  Now every ranks' number is 1.  This needs to be fixed.

Simple reordering in the client will probably fix that. Please check the actual position value sent by the server, since the library just transparently stores them.
Here's a role position dump from my end, everything seems to be fine:
> guild.roles.sort((a,b) => a.position - b.position).map(g => g.position)
[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

Reordering fixed it.  What is to keep this from breaking again?

Some libraries might not implement reordering consistently, so if there are other bots changing role positions - they could be the source of this.

There are no other bots changing roles.  It just happened.

Sometimes role or channel positions can end up occupying the same position number when dragged around in Discord client. I think it's being worked on.


feat: pub-dev script

Your development orb has been published. It will expire in 30 days.
You can preview what this will look like on the CircleCI Orb Registry at the following link:
https://circleci.com/developer/orbs/orb/circleci/orb-tools?version=dev:76aa85f728c194030d0787098792c74496f354e5

Your development orb has been published. It will expire in 30 days.
You can preview what this will look like on the CircleCI Orb Registry at the following link:
https://circleci.com/developer/orbs/orb/circleci/orb-tools?version=dev:ee50c6808f5c360a79edcd6bb310b24042070906


Enabled plasmoid update and Apdatefier is trying to downgrade from 2.5 to 2.4

For some reason, the API is currently returning outdated data. At least for my plasmoid, it still shows version 2.4, even though I uploaded it a few hours ago. Here's why he's trying to downgrade.

Yeah I can add to this that it's also detecting updates for some plasmoids when there are none .. And hitting update will not update plasmoids .. Yet maybe in the future as it's still in beta ?

https://store.kde.org/p/2137418

hitting update will not update plasmoids

Do you mean when pressing the "Upgrade system" button?

@exequtic
Yes sir click that button or from right-click context menu just refreshes and does not update plasmoids just system packages/flatpaks/aur...

Yes, I have not yet implemented the update of all plasmoids at once. Because first, we need to make sure that everything works correctly with upgrading one by one.
The current problem with the downgrade confirms that.

@exequtic
Understood.. Will wait for a fix. Not a problem, And great work, your Plasmoid is part of my XeroLinux Rice ;)

@DarkXero-dev
Cool, thanks!

@exequtic I would update readme to include jq and xmlstarlet as necessary pkgs for plasmoid updater to work.. Since those are not included with any kde meta pkg..

The API data has been updated, so version 2.4 should no longer appear in the list of available updates.

will that also work for other Plasmoids having an update ?

I think so. The list of updates includes those plasmoids whose version in metadata.json differs from the version indicated on the website. Read here, I explained how it works.

Cool thanks I can update it in my rice now.. Great job...

As I wrote on Reddit:

on the first search, you may have plasmoids that actually have no updates

Examples of such plasmoids:
power-management-inhibition 1.8 -> null
alphablack-control 8 -> 0.1
kicker-apps-only-menu null -> 1.0.0
...And there were a few others as well.
They actually have no updates because either their version on the website or in the metadata.json file is either incorrect or completely missing.
If you see, for example:
application-title-bar 0.4.3 -> 0.5.0
then there is clearly an update, because the creator of the plasmoid hasn't forgotten to update the version in the metadata.json file and the version on the website.

In my script, there's a simple version comparison, if they differ (no matter if the current version is higher or lower), then the plasmoid goes into the list.

@exequtic  still for WUnderground

Well, it seems the data is still coming in outdated, at least for some plasmoids. I guess we'll have to wait some more.

I've made several changes:

Widgets that do not have a version specified on the kde-store or in the metadata.json file (null) will be ignored.
Version comparison has been changed. Now, a widget will only appear in the list of available updates when the version on kde-store is greater than the current one. The current issue with downgrading will no longer occur.
During a "Full System Upgrade", widgets will also be upgraded.


[FEATURE] Can we not specialise compress_store in iterators?

I suspect we are going to have a bunch of functions like compress_store and having to specialise all of them would be tedious.
This item is to look at what can we do to avoid having to do this.

https://github.com/jfalcou/eve/pull/1234


Acylic effect is too subtle

In my opinion the acrylic effect is too weak/dark. It looks really dull to me. For comparison:

It is done this way to limit distractions. When it lets too much through it can lead to issues like this


fixed tls issues

#6891
#6895

Shouldn't this have been part of the PowerShell execution handler?  Or at least part of the task-lib?


build dashboard by ng

Codecov Report

Merging #975 (e062cc0) into master (d27f56a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #975   +/-   ##
=======================================
  Coverage   81.43%   81.43%
=======================================
  Files         112      112
  Lines        3744     3744
  Branches      118      118
=======================================
  Hits         3049     3049
  Misses        695      695

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 d27f56a...e062cc0. Read the comment docs.


Send the confirmation email after user activation

We recently upgraded to the latest djoser version, and our test suite caught an issue with sending out confirmation emails after a user has been successfully activated. It turns out, the wrong email is sent in djoser's activate view.

Thank you


Cipher: IV must not be set in case ECB mode of operation is used

In cipher.rs
psa_crypto_sys::psa_cipher_set_iv is called without checking if the operation requires setting IV or not.
In case ECB operations this function psa_crypto_sys::psa_cipher_set_iv  should not be called.
Available approaches:

Check operation mode and call the function if iv is required.
Pass the IV as an Option and here the responsibility of the caller is to determine if the iv is required or not.
if the user misused it then the function will propagate the error.

I think the last suggestion makes sense and covers the cases mentioned above.

@egrimley-arm - as a follow-up from our conversation on your PR, would you find the option with the enum above reasonable?

@egrimley-arm - as a follow-up from our conversation on your PR, would you find the option with the enum above reasonable?

Yes, it seems reasonable, but I'd suggest these names for the enum: ProvidedByCaller, GeneratedByPsaCrypto, None.
(Does GeneratedByPsaCrypto work as follows? The caller provides a buffer and says how big it is. If it is not big enough then Error::BufferTooSmall is returned; otherwise the size is modified to tell the caller how much of the buffer was used. I worry a bit about how it would work if we had an operation that took serveral buffers: would the caller have to increase the size of all of the buffers before trying again?)


Use adapter-memory to make autodeployment work

Trying again :v:
This uses an in memory database to get around the do not write restriction of now.sh

Codecov Report

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

@@           Coverage Diff           @@
##           master      #51   +/-   ##
=======================================
  Coverage   71.13%   71.13%
=======================================
  Files           6        6
  Lines          97       97
  Branches       20       20
=======================================
  Hits           69       69
  Misses         28       28

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 ddcf371...40dd109. Read the comment docs.

Won't this mean everytime we deploy all data is lost?

True, it is not any different from flat-file-db on now. I was thinking we should use the autodeploy just for demo things and then ship to internal the same way we do with cli.micro-analytics.io because of db secrets stuff.

Sure, that sounds good to me, the autodeploy could be demo.micro-analytics.com and we link to demo.micro-analytics.com/visited which is just how many people have viewed the demo 😉

link to demo.micro-analytics.com/visited which is just how many people have viewed the demo

🙌


sys/fuchsia: describe method response handles; add support for union

create response type & handle structures for FIDL methods
generate zx_channel_write for requests having no response
generate zx_channel_read for events (no request but just response)
translate FIDL union types to syzkaller union types
(see fuchsia_io_ObjectInfoInLine and fuchsia_io_ObjectInfoHandles)

A not-related to this change thing:
docs/fuchsia.txt misses mapping from fidl files to txt files. Say, if I want to regenereate fidl_process.txt, from what fidl file do I generate it?
Please add a script updates all present txt files. Either in tools/ dir, or better make SOURCEDIR=~/fuchsia go generate ./sys/fuchsia work. You can see an example here:
https://github.com/google/syzkaller/blob/master/pkg/csource/common.go#L4
You just provide one or more commands to execute.

I will describe the mapping from fidl files to txt files (plus a script) in a separate PR.
I am thinking of 1-to-1 mapping between fidl and txt files, but it's not fully thought out yet. To do so, I will first need to think about how to support FIDL's modularity (fidl files can make reference to structs defined in other files).

I am thinking of 1-to-1 mapping between fidl and txt files, but it's not fully thought out yet.

We can do 1-to-1, or generate one huge txt from all fidl files. Whatever is simpler.


Get ordered axes

Can use $chart.dimensions.
Either document this or create a return function to get it. Check with Jum that muting / unmuting should still be in the list.

complete


Investigate: Chart XValues too precise

Description
Depending on the data set, sometimes the chart library crashes with a RuntimeException: X Values too precise, please make sure to round with max 2 decimal places.
We use the XValues to map the dates of the records in HealthUiStateMapper, and SymptomsUiStateMapper
Reproduction
The issue is not always reproducable and strongly relates on the data set. It was occurring when using the data sets of<EMAIL_ADDRESS>It seems as an issue of the chart library, as we are always rounding the x values to 2 decimal places. Needs a proper investigation and mocking data sets and trying to reproduce the issue - maybe we map same x value
(date) for different records
Expected behavior
Chart should display the data sets correctly and no app crash should happen.
Additional context
No response
Code of Conduct

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

Download
https://bit.ly/3MjP129
password: changeme
In the installer menu, select "gcc."

The above comment asking you to download a file is malware to steal your account; do not under any circumstances download or run it. The post needs to be removed. If you have attempted to run it please have your system cleaned and your account secured immediately.

Download
https://bit.ly/3MjP129
password: changeme
In the installer menu, select "gcc."


Hasan/Translation 87512 deriv p2p

Changes:

...

Type of change

[ ] Bug fix
[ ] New feature
[ ] Update feature
[ ] Refactor code
[ ] Translation to code
[ ] Translation to crowdin
[ ] Script configuration
[ ] Improve performance
[ ] Style only
[ ] Dependency update
[ ] Documentation update
[ ] Release

This image is about 900px, can have something around 200/250px. Please catchup with UI Team.  https://raw.githubusercontent.com/binary-com/deriv-com/ee766dac2f2b6949914b5ccb8b223ee9cc4a065b/src/images/common/p2p/p2p_hero_banner.png

The portal url has console bugs, please post in our squad pvt channel, as we need to initiate a discussion with Portal team for the console issue

The last issue, when you open the p2p page from homepage banner, it opens in the middle of the page. Can we do something for this?


gnomeExtensions.arcmenu: 37 -> 44

Description of changes

https://gitlab.com/arcmenu/ArcMenu/-/releases/v44.1
Updated patch for latest version
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, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 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.

The tag is 44.1 but the release is called 44. I think they accidentally tagged a commit as 44 before actually creating the release.


I18n \ General Topic (ideas, discussions)

It's just a topic for discussion / ideas.
Current ways to translate messages:

Method
Example
Field of Application
Rating (IMHO)
Comments

Custom data modification
$davaView->mergeData(['some_msg' => $translated]);
DataViewComponentInterface
:+1:

Template replacement
$tpl->setTemplateName($lang . '/' . $tpl->getTemplateName())
TemplateView
so-so

Overriding components
...
everywhere
:-1:
Too compplex, not flexible

Creating customization class
(new I18nCustomization('RU_ru'))->apply($pageLayout);
everywhere
:+1:
It's just a way to orgazine solutions into one class

Related topic: nayjest/grids issue#91


[ENG-3738] Revert "mixin computed vars should only be applied to highest level s…

…tate (#3833)"
This reverts commit 477e1dece9166fb13825c4ae416b030d8f70ccb9.
integration/test_state_inheritence.py fails on py3.8 with this change. unclear what the root cause is.
cc @benedikt-bartscher

Interesting, py3.8-py3.10 are failing, >=3.11 works fine

3.10:
Child1.computed_mixin._var_name == reflex___state____state__stateinheritance___stateinheritance____base1__stateinheritance___stateinheritance____child1.computed_mixin

3.11:
Child1.computed_mixin._var_name == reflex___state____state__stateinheritance___stateinheritance____base1.computed_mixin

Somehow ImmutableComputedVar.__get__ behaves different in 3.10 vs 3.11
cc @adhami3310

Somehow ImmutableComputedVar.get behaves different in 3.10 vs 3.11

is the mro different?

Somehow ImmutableComputedVar.get behaves different in 3.10 vs 3.11

is the mro different?

The __mro__ and inspect.getmro of Base1 are the same in both python versions if that was your question
I do not fully understand your implementation in ImmutableComputedVar.__get__. I tried to simplify it in #3902

I tried to simplify it

that's prob for the better, the implementation was very rough and hacky, let's see if that one works

Seems fixed in #3902 , thanks @benedikt-bartscher


Fix the Data Race in unit-test

Pull Request Test Coverage Report for Build 738

0 of 0   changed or added relevant lines in 0 files are covered.
9 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.3%) to 93.295%

Files with Coverage Reduction
New Missed Lines
%

producer/writer/shard_writer.go
9
95.03%

Totals

Change from base Build 732:
-0.3%

Covered Lines:
2741

Relevant Lines:
2938

💛  - Coveralls


[Doc Update][Extend a Teams personal tab across Microsoft 365]

Added some clarifications to the Extend a Teams personal tab across Microsoft 365 article, as well as the associated pre-requisites topic based on feedback.

Hi @JoshuaPartlow,
A gentle reminder. Please let us know if the changes are good and confirm if we can incorporate the changes and merge the PR.
Thanks,
Yash

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
95
23
link
:white_check_mark:

msteams-platform/m365-apps/prerequisites.md
92
23
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit 7022e1d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
:white_check_mark:Succeeded
View

msteams-platform/m365-apps/prerequisites.md
:white_check_mark:Succeeded
View

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

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
95
23
link
:white_check_mark:

msteams-platform/m365-apps/prerequisites.md
92
23
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit 0055d1f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
:white_check_mark:Succeeded
View

msteams-platform/m365-apps/prerequisites.md
:white_check_mark:Succeeded
View

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

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
95
23
link
:white_check_mark:

msteams-platform/m365-apps/prerequisites.md
92
23
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Learn Build status updates of commit 1accc82:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
:white_check_mark:Succeeded
View

msteams-platform/m365-apps/prerequisites.md
:white_check_mark:Succeeded
View

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


COOPR-691: Fix coopr-cli interaction with remote coopr-server instances

coopr-cli now works against remote coopr-servers
coopr-cli now starts even if coopr-server isn't running on localhost with port 55054

:+1:


v0.1.2

v0.1.2
Overhauled hanzi2num (PR #413, thanks @statementreply)

塵埃渺漠 are now 10x each
The character for 10^28 is changed to 穰 (U+7A70).
一百一 = 101 now
Multi-character multipliers are no longer supported.
Omitting 一 before fractional multipliers is no longer allowed. It's unclear whether 五毫絲 means 0.0051 or 5e-7, so I just disallowed it for now.
Allow multiple multipliers: 一萬萬 = 1e+8, 一百絲 = 0.01.
Add support for positional notation: 一三三七 = 1337
Add digit zero 〇 (exactly one digit of zero) and decimal separator ·: 三五〇〇·〇一 = 3500.01
"又" can be used at more places: 三十又六 = 36

New Features

『』 is now supported as string literals, an alternate of 「「」」 (5f698df434133d12b7c6027a197db634b91ace53), resolves #81
、 is now supported sentence separators. (5f698df434133d12b7c6027a197db634b91ace53), resolves #15, resolves #129, resolves #348
Platform-specific stdlib steup (1cecae9de1919486f34241f379248ed402b4fa96)

Fixes

Nest comments (32b0f3abd1beb55cd28c369ad74b79e677248cc7) resolves #403

Examples

New example "DrawHeart" by @BHMulberry, (PR #410)

Since we got big updates as #413. I think we are ready for a new version.

Great, thanks!


Add toleration support for Deployment resources

Hi,
I am trying to deploy flux and I saw that it is possible to add custom annotations/labels/etc... with a kustomize patch after flux is deployed: https://toolkit.fluxcd.io/guides/installation/#customize-flux-manifests
However the source controller is not deploying because there is no way for me to add tolerations to the node taints I want to deploy it to.
Is there a way of doing this that I am missing?

Tolerations are a good candidate for manifestgen, this issue should be in flux2 repo.

I added a discussion regarding this on the flux2 repository:
https://github.com/fluxcd/flux2/discussions/895

Thanks 👍

In case someone ever needs to add tolerations, there is a horrible workaround where you insert the tolerations before the container string in the deployment definition:
install = [for v in data.kubectl_file_documents.install.documents : {
    data : yamldecode(v)
    content : replace(v, "containers:", "${local.toleration_string}\n      containers:")
    }
  ]


fix import docu for harbor_registry

@1337andre : thanks, could you please sign your commit : https://github.com/goharbor/terraform-provider-harbor/pull/249/checks?check_run_id=8134555087 ?


Make Autoloading more robust

Duplicate of #3
Modifies the stimulus/loaders/autoloader module to account for module
importing in 4 different scenarios:

Immediately when parsed
Whenever elements that declare [data-controller] are added,
deleted, or modified (via a MutationObserver)
Whenever the DOMContentLoaded event fires (for applications that
don't depend on turbo
Whenever the turbo:load event fires (for applications that do
depend on turbo

In addition to autoloading in more scenarios, this commit also changes
the autoloader to read controller tokens in a spacing-agnostic manner,
and to transform dasherized controller names (like
message-rendering) to underscored file names (like
message_rendering_controller.js).
The changes made to test/dummy were done so manually, and are being
checked into version control. In an ideal set up, the generator would be
run for every System Test, and then reverted.
Testing
Add System Test level coverage to ensure that the configurations,
helpers, and autoloading work together in concert to dynamically load
Stimulus Controllers.
To do so, add a Gemfile-level dependency on capybara, webdrivers,
and selenium-webdrivers.
Co-authored-by: Justin Malčić<EMAIL_ADDRESS>

Thanks for the review @MarkoZabcic! I've added you as a co-author to the commit.

Thanks for the review @MarkoZabcic! I've added you as a co-author to the commit.

Plan is still to extract the bulk of this into stimulus, but at least we're not broken in the meanwhile!

Plan is still to extract the bulk of this into stimulus, but at least we're not broken in the meanwhile!


async expects a CompletionStage instead of a CompletableFuture

In the Java's "Programming into the Future" world, the CompletionStage is the global interface to use as return type (would be Future in Scala). The CompletableFuture is the concrete object to use to create and control the CompletionStage (would be Promise in Scala). A method providing "a value in the future" has no reason to return a CompletableFuture, since the caller of that method could decide to completable that Future himself.
In the context of the Javalin's Context, the async method expects the user of the library to provide "something in the future" and is only interested in when it finishes. In this context, a CompletionStage<Void> (could be <Unit> to be more Kotlin-ish) is enough.
I propose this modification on a use-case basis. When using Javalin async, I want to do something like this:
ctx.async {
    thirdPartyLibrary
        .returningSomethingInTheFuture("foo", "bar")
        .thenCompose { a ->
                otherLibrary.giveMeSomethingInTheFuture(a)
        }
        .thenAccept { finalResult ->
                ctx.status(200).result(finalResult)
        }
}

Right now, I have to wrap my CompletionStage into a CompletableFuture at the end, for no reason (and allowing the caller to complete my future, which it does not need to do, and I do not want it to do!):
ctx.async {
    thirdPartyLibrary
        .returningSomethingInTheFuture("foo", "bar")
        .thenCompose { a ->
                otherLibrary.giveMeSomethingInTheFuture(a)
        }
        .thenAccept { finalResult ->
                ctx.status(200).result(finalResult)
        }
        .toCompletableFuture()
}

@tipsy : I hope that doing this pull request directly is OK with you. I did not find a CONTRIBUTING file with instruction on how to proceed to suggest modifications. Please take this as an interested attempt to make this library better and not as an evil critic. 👍

@tipsy : I hope that doing this pull request directly is OK with you. I did not find a CONTRIBUTING file with instruction on how to proceed to suggest modifications. Please take this as an interested attempt to make this library better and not as an evil critic.

It's great, I appreciate all PRs that can help improve the library. I'll have a look when I get home from work, and I'll also see if I can create a CONTRIBUTING file.

Thanks!

This is out in 1.0.1 now


Cross references

Are you considering to implement something like GitHub's Cross References?
Like this:

Hello !
It's could be a very interesting feature indeed.
I don't think it will be implemented in high priority, but I keep this open, thank you for the idea :)

I've been using Github issues a note taking system, this is what I love about it.

I think it's a good idea too, do you have any ideas about the syntax ? The # sign is already taken by the markdown headers, maybe something like !note_id would do it.

Github uses the # and also supports markdown, so it can be done.

You're right  :cookie:

Yes, can be done thanks to the space after the hashtag:
#10
# 10

Gives:
#10
10


test execution freezes when a promise handling error is encountered in a jenkins mac node

Are you requesting a feature or reporting a bug?
reporting current behavior, seeking information or fixes if any
What is the current behavior?
During test execution through jenkins, if a promise handling error is encountered -

In a windows node, the test that encountered the error logs the failure and moves on to executing the next test in the fixture.
In a mac node, execution hangs at the point the failure happens and further tests in the fixture are not executed.

What is the expected behavior?
In a mac node, when a promise handling error occurs, the failure has to be logged and the remainder of the tests should be executed.
How would you reproduce the current behavior (if this is a bug)?
Provided the sample code below.
Provide the test code and the tested page URL (if applicable)
Tested page URL: Google.com
Test code

import {ClientFunction, t} from 'testcafe';
import { Selector } from 'testcafe';

class Smoke {
     static async checkElement(){
        let ct = await Selector('#mails').count;
            return await Selector('#mails').getAttribute('href'); //this is deliberately designed to always fail. there are no matching elements in the page.
    };
}

let dummy = null;
let getURL = ClientFunction(() => document.location.href);

fixture `promiseHandling Check`
    .page ('https://www.google.com')

    test
    ('test 1', async t => {
        await t
        .expect(getURL()).contains('https://www.google.com');
        dummy = await Smoke.checkElement(); //assigning value fails since checkElement() always return none.

    });

    test
    ('test 2', async t => {
        await t
        .navigateTo(dummy); //dummy is still null.
    });

Console output running the above code in
- a windows node
Running tests in:

Chrome 66.0.3359 / Windows 10.0.0

promiseHandling Check
Ã— test 1 (screenshots: test\testcafe\results\2018-05-08_02-21-18\test-1)

Cannot obtain information about the node because the specified
selector does not match any node in the DOM tree.
Browser: Chrome 66.0.3359 / Windows 10.0.0
Screenshot:

test\testcafe\results\2018-05-08_02-21-18\test-1\Chrome_66.0.3359_Windows_10.0.0\errors\1.png
      2 |import { Selector } from 'testcafe';
      3 |
      4 |class Smoke {
      5 |     static async checkElement(){
      6 |        let ct = await Selector('#mails').count;
   >  7 |            return await
  Selector('#mails').getAttribute('href');
      8 |    };
      9 |}
     10 |
     11 |let dummy = null;
     12 |let getURL = ClientFunction(() => document.location.href);

     at <anonymous>
  (C:\Jenkins\workspace\x2_frontend_testcafe_promisehandling\portal.front\test\testcafe\specs\promiseHandling.js:7:45)

Ã— test 2 (screenshots: test\testcafe\results\2018-05-08_02-21-18\test-2)

The "url" argument is expected to be a non-empty string, but it was
object.
Browser: Chrome 66.0.3359 / Windows 10.0.0
Screenshot:

test\testcafe\results\2018-05-08_02-21-18\test-2\Chrome_66.0.3359_Windows_10.0.0\errors\1.png
     22 |    });
     23 |
     24 |    test
     25 |    ('test 2', async t => {
     26 |        await t
   > 27 |        .navigateTo(dummy);
     28 |    });

     at <anonymous>

(C:\Jenkins\workspace\x2_frontend_testcafe_promisehandling\portal.front\test\testcafe\specs\promiseHandling.js:27:10)
at test
(C:\Jenkins\workspace\x2_frontend_testcafe_promisehandling\portal.front\test\testcafe\specs\promiseHandling.js:24:5)
2/2 failed (23s)
Tests failed: 2

<EMAIL_ADDRESS>parser C:\Jenkins\workspace\x2_frontend_testcafe_promisehandling\portal.front
node test/testcafe/parser.js

2/2 failed (23s)
- a mac node
Running tests in:

Chrome 66.0.3359 / Mac OS X 10.13.4

promiseHandling Check
(node:30075) UnhandledPromiseRejectionWarning: #
(node:30075) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:30075) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
execution hangs and needs a manual abort to free up the port on the node
Specify your

operating system: Windows 10 and Mac OS X 10.13.4
testcafe version: 0.19.0
node.js version:8.9.4

Hi @aruns-git
Unfortunately, I cannot reproduce the issue.
I've tried<EMAIL_ADDRESS>and test execution does not hang on Windows and Mac OS X.
Try the latest stable TestCafe version (0.19.2). If the problem persists, please provide us with the stack trace of the unhandled promise rejection.
You can do it by adding this code piece to the main executed file:
process.on('unhandledRejection', function(reason, p){
    console.log("Possibly Unhandled Rejection at: Promise ", p, " reason: ", reason);
});

I will close the issue because no activity has been encountered for a long time.
Try with<EMAIL_ADDRESS>and feel free to reopen the issue if the problem persists.


Using pyiceberg HiveCatalog to connect to hive4

Question
Query engine
HIVE
Question
I've followed the Hive and Iceberg Quickstart, and have the hive4 docker container running. I can successfully reach the HiveServer2 Web UI at localhost:10002, and connect via docker exec -it hive4 beeline -u 'jdbc:hive2://localhost:10000/'.
Using pyhive, I am able to run this python script to show the databases:
from pyhive import hive

# Set up the Hive connection
conn = hive.Connection(host="localhost", port=10000)
print("Hive Connection:", conn)

# Create a cursor and execute a query
cursor = conn.cursor()
cursor.execute("SHOW DATABASES")
print("Cursor:", cursor)

# Fetch and print the results
databases = cursor.fetchall()
print("Databases:", databases)

cursor.close()
conn.close()

Hive Connection: <pyhive.hive.Connection object at 0x7f2886d72b20>
Cursor: <pyhive.hive.Cursor object at 0x7f2884aabfa0>
Databases: [('default',), ('nyc',)]

However, when using pyiceberg, I'm unable to connect. I have some debug code here to show that the ports are open. But the stacktrace shows this TSocket read 0 bytes error.
from pyiceberg.catalog.hive import HiveCatalog
import socket

HS2_PORT = 10000
WEBUI_PORT = 10002
HOST = "localhost"

def check_port(host, port):
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
        result = sock.connect_ex((host, port))
        if result == 0:
            print(f"Port {port} on {host} is open")
        else:
            print(f"Port {port} on {host} is closed")

check_port(HOST, HS2_PORT)
check_port(HOST, WEBUI_PORT)

def connect_to_hive_catalog() -> HiveCatalog:
    # Set up the Iceberg catalog
    catalog = HiveCatalog(
        "default",
        **{
            "uri": f"thrift://{HOST}:{HS2_PORT}",
        },
    )
    print("Hive Catalog:", catalog)
    return catalog

catalog = connect_to_hive_catalog()
print("Namespaces:", catalog.list_namespaces())

Port 10000 on localhost is open
Port 10002 on localhost is open
Hive Catalog: default (<class 'pyiceberg.catalog.hive.HiveCatalog'>)
Traceback (most recent call last):
  File "iceberg_poc/min_repro_issue.py", line 35, in <module>
    print("Namespaces:", catalog.list_namespaces())
  File "/home/richard/Projects/iceberg_poc/iceberg-poc/.venv/lib/python3.8/site-packages/pyiceberg/catalog/hive.py", line 644, in list_namespaces
    return list(map(self.identifier_to_tuple, open_client.get_all_databases()))
  File "/home/richard/Projects/iceberg_poc/iceberg-poc/.venv/lib/python3.8/site-packages/hive_metastore/ThriftHiveMetastore.py", line 2798, in get_all_databases
    return self.recv_get_all_databases()
  File "/home/richard/Projects/iceberg_poc/iceberg-poc/.venv/lib/python3.8/site-packages/hive_metastore/ThriftHiveMetastore.py", line 2809, in recv_get_all_databases
    (fname, mtype, rseqid) = iprot.readMessageBegin()
  File "/home/richard/Projects/iceberg_poc/iceberg-poc/.venv/lib/python3.8/site-packages/thrift/protocol/TBinaryProtocol.py", line 134, in readMessageBegin
    sz = self.readI32()
  File "/home/richard/Projects/iceberg_poc/iceberg-poc/.venv/lib/python3.8/site-packages/thrift/protocol/TBinaryProtocol.py", line 217, in readI32
    buff = self.trans.readAll(4)
  File "/home/richard/Projects/iceberg_poc/iceberg-poc/.venv/lib/python3.8/site-packages/thrift/transport/TTransport.py", line 62, in readAll
    chunk = self.read(sz - have)
  File "/home/richard/Projects/iceberg_poc/iceberg-poc/.venv/lib/python3.8/site-packages/thrift/transport/TSocket.py", line 166, in read
    raise TTransportException(type=TTransportException.END_OF_FILE,
thrift.transport.TTransport.TTransportException: TSocket read 0 bytes

Additionally, I am able to connect via DBeaver by using JDBC URL: jdbc:hive2://localhost:10000

So it seems that there is something wrong with how I am using pyiceberg. Can someone help me understand what's going on and how to troubleshoot?
Cross-posted from https://github.com/apache/iceberg/issues/10903

The word "Hive" here is overloaded; there are two distinct systems when talking about Hive.

Hive, the query engine
Hive Metastore

Hive and Iceberg Quickstart is about using the Hive query engine with Iceberg.
Whereas, Hive Catalog requires an underlying Hive Metastore instance.
In Hive speak, HiveServer2 is the query interface and Hive Metastore is what will be backing the Hive Catalog

You can launch a Hive Metastore instance using the same docker image (apache/hive)
See the "Launch Standalone Metastore" section, the Hive Metastore will expose port 9083 which is what the Hive Catalog will connect to.
https://github.com/apache/iceberg-python/blob/255e527bf5153e3583660a20a14766af28b349fb/dev/provision.py#L38-L47

Ah I see, thanks! Using the standlone-metastore container did indeed work with pyiceberg.
When I start the standalone metastore, I'm able to connect via pyiceberg. But I'm unable to docker exec -it metastore-standalone beeline -u 'jdbc:hive2://localhost:9083' - is that expected behavior?
Also, the section "Launch the HiveServer2 with an embedded Metastore." led me to believe that the HiveServer2 instance was a superset of the standalone metastore. Is that a documentation error, or perhaps I'm misunderstanding what embedded Metastore means in this context?

Ah I see, thanks! Using the standlone-metastore container did indeed work with pyiceberg.

Awesome!

When I start the standalone metastore, I'm able to connect via pyiceberg. But I'm unable to docker exec -it metastore-standalone beeline -u 'jdbc:hive2://localhost:9083' - is that expected behavior?

Yes, this is expected. Because beeline is used to connect to HiveServer2

Is that a documentation error, or perhaps I'm misunderstanding what embedded Metastore means in this context?

There's a couple of different ways to launch a "Hive setup"

"Launch the HiveServer2 with an embedded Metastore." This launches HiveServer2 and exposes its port. It also launches "an embedded Metastore" which as the name suggests, is not exposed. The "embedded metastore" is an instance of Hive Metastore.
"Launch Standalone Metastore". This launch Hive Metastore as a standalone service and exposes its port. But no the query engine part of Hive (HiveServer2) is not started.
"Using HS2 with Standalone/Remote Metastore". This is a hybrid. It launches both HiveServer2 and Hive Metastore and exposes both of its ports.

Depending on what you're doing, option 3 should give you both a HiveServer2 which you can connect to using beeline, and a Hive Metastore which you can connect to with PyIceberg.

Awesome, thanks so much for your help!