Output CSS are not generated when using option mode

Issue description:
When using option mode, the new version of Kirki seemed failed to generate the output CSS. Please check the snippet below. After changing the value via Customizer, the value is saved in the correct option key in the wp_options table, but no inline CSS is printed on the frontend's page source.
This works find on older version.
Version used:
4.0.21
Using theme_mods or options?
options
Code to reproduce the issue (config + field(s))
new \Kirki\Field\Color( array(
	'settings'    => 'color_button_bg',
	'option_type' => 'option',
	'option_name' => 'mytheme_options',
	'section'     => 'styles',
	'type'        => 'color',
	'label'       => esc_html__( 'Button BG color', 'jackrose' ),
	'choices'     => array( 'alpha' => true ),
	'default'     => '#b4d2c8',
	'transport'   => 'auto',
	'output'      => array(
		array(
			'element'  => '.button, button, input[type="button"], input[type="reset"], input[type="submit"]',
			'property' => 'background-color',
		),
	),
) );

Possible bug location
I think the bug is from the CSS generator. Here's what I found.
If we looked at the kirki/packages/kirki-framework/module-css/src/CSS/Generator.php file
self::$value = apply_filters( 'kirki_get_value', get_theme_mod( $field['settings'], $default ), $field['settings'], $default, $option_type );

This line will use theme_mod value by default. But it also provides kirki_get_value filter there, which is then used by kirki/packages/kirki-framework/data-option/src/Option.php file to modify the value for option mode.
public function kirki_get_value( $value = '', $option = '', $default = '', $type = 'theme_mod' ) {

	if ( 'option' === $type ) {

		/**
		 * If the option doesn't contain a '[', then it's not a sub-item
		 * of another option. Get the option value and return it.
		 */
		if ( false === strpos( $option, '[' ) ) {
			return get_option( $option, $default );
		}

		/**
		 * If we got here then this is part of an option array.
		 * We need to get the 1st level, and then find the item inside that array.
		 */
		$parts = \explode( '[', $option );
		$value = get_option( $parts[0], [] );

		foreach ( $parts as $key => $part ) {
			/**
			 * Skip the 1st item, it's already been dealt with
			 * when we got the value initially right before this loop.
			 */
			if ( 0 === $key ) {
				continue;
			}

			$part = str_replace( ']', '', $part );

			/**
			 * If the item exists in the value, then change $value to the item.
			 * This runs recursively for all parts until we get to the end.
			 */
			if ( is_array( $value ) && isset( $value[ $part ] ) ) {
				$value = $value[ $part ];
				continue;
			}

			/**
			 * If we got here, the item was not found in the value.
			 * We need to change the value accordingly depending on whether
			 * this is the last item in the loop or not.
			 */
			$value = ( isset( $parts[ $key + 1 ] ) ) ? [] : '';
		}
	}

	return $value;

}

This filter checks if the provided mode is option and have sub items (with [ character found in the settings name), then try to  decompose the settings name. The problem is your CSS generator doesn't provide the full format of the settings name.
self::$value = apply_filters( 'kirki_get_value', get_theme_mod( $field['settings'], $default ), $field['settings'], $default, $option_type );

This line is the one responsible. $field['settings'] only contains the sub-key, not the option key. Therefore, the filter will always return get_option( 'color_button_bg' ), which does not exist.
I think the code should be:
$setting_name = $field['settings'];
if ( 'option' === $field['option_type'] ) {
	$setting_name = $field['option_name'] . '[' . $field['settings'] . ']';
}
self::$value = apply_filters( 'kirki_get_value', get_theme_mod( $field['settings'], $default ), $setting_name, $default, $option_type );

This way your filter will work fine.
Another workaround
I tried another workaround from the theme / plugin end. If we add the option_name as prefix of the settings_name attribute when adding the field, it works. e.g. mytheme_options[color_button_bg] instead of just color_button_bg.
new \Kirki\Field\Color( array(
	'settings'    => 'mytheme_options[color_button_bg]',
	'option_type' => 'option',
	'option_name' => 'mytheme_options',
	'section'     => 'styles',
	'type'        => 'color',
	'label'       => esc_html__( 'Button BG color', 'jackrose' ),
	'choices'     => array( 'alpha' => true ),
	'default'     => '#b4d2c8',
	'transport'   => 'auto',
	'output'      => array(
		array(
			'element'  => '.button, button, input[type="button"], input[type="reset"], input[type="submit"]',
			'property' => 'background-color',
		),
	),
) );

This works fine, but like I said, older version doesn't have issues on this. So I think this bug should be fixed.

Hey @daviedR,
thank you for the detailed explanation! We were able to replicate the issue and are going to fix it asap. I'll keep you posted :)

We're releasing a fix in a couple minutes. Thanks for reporting this guys!

I saw 4.0.22 go out already, is that it? So far that has fixed it for me. Still doing more testing and will push an update to our beta testers as well.

yep, 4.0.22 takes care of that :) The update is now live in the WordPress repository.

Using 4.0.22, we now have 2 reports of the default value not being output. It only works if you first save a non-default value, then change to the default and save, then it seems to output css.
I'm going to try to test this tomorrow (it's late here now).

Thanks for the update @MapSteps , we will do further test

@JiveDig, do you know what fields/controls are affected?

As of now it's the same field I originally hit the issue with, a radio buttonset.

One more question.
Usually when setting a default, you would also pass the default in php like this:
get_option( 'your_option', 'left' ); where 'left' is the default.
Can you please share an example of the field in question and how the output is handled on the frontend?

Sure, as soon as I get back to my computer in a couple hours.
We were seeing the issue even when hard-coding the default parameter value.
We are only using this value via the output parameter, so there is no other code besides the field registry.

Okay confirming I see this issue when no value is saved. Here is a simplified version of my actual field, that still shows the issue of no CSS being output.
new \Kirki\Field\Radio_Buttonset(
	[
		'settings'        => mai_get_kirki_setting( 'header-right-menu-alignment' ), // This is actually 'mai-engine[header-right-menu-alignment]'
		'option_type'     => 'option',
		'section'         => $section,
		'label'           => __( 'Header Right Menu Alignment', 'mai-engine' ),
		'default'         => 'flex-end',
		'choices'         => [
			'flex-start' => __( 'Left', 'mai-engine' ),
			'center'     => __( 'Center', 'mai-engine' ),
			'flex-end'   => __( 'Right', 'mai-engine' ),
		],
		'output'          => [
			[
				'element'  => '.header-right',
				'property' => '--menu-justify-content',
			],
		],
	]
);

If I set the menu to non-default (center) and save, then it works. Then I can change it to Right (flex-end) and save it, and it works. The issue is that the CSS is not output when there is no value saved to the DB yet. It doesn't render the CSS from the default.

In the Generator class css() method there is:
self::$value = apply_filters( 'kirki_get_value', get_theme_mod( $field['settings'], $default ), $setting_name, $default, $option_type );

I'm not sure how get_theme_mod is able to get the correct option value, but dumping this gives the correct value (returns the default):
apply_filters( 'kirki_get_value', get_theme_mod( $field['settings'], $default ), $setting_name, $default, $option_type )

However, when I dump self::$value the default is not used, it returns empty.

Pardon my documenting as I go...
The kirki_get_value filter in /data-option/src/Option.php Option class is the source of the issue.
In the scenario I'm hitting, my main option does have some values in it, just not the key for this specific field.
The conditions end up here (line 92):
/**
 * If we got here, the item was not found in the value.
 * We need to change the value accordingly depending on whether
 * this is the last item in the loop or not.
 */
$value = ( isset( $parts[ $key + 1 ] ) ) ? [] : '';

However, it never uses the $default here, it's either an empty array or an empty string. Somehow the $default should be used.

Final somewhat related thoughts... it seems like relying on kirki_get_value to check if it's an option or theme_mod is extra work. It's first retrieving the theme_mod then the filter is doing a secondary call to get the option. I'm feeling like there should be a helper function that only uses get_theme_mod or get_option, not both.

Hi @JiveDig , thanks for your thoughts and codes!
Just to re-confirm, in your use-case, this issue only happens to Radio_Buttonset field right?

Any of the fields with choices, but based on the scenario it's likely any field. If the main option is set at all, but a key isn't in that option, the default won't get used.
My fix from above is in place on some of our test sites and is working well for all types of fields.

Hey @contactjavas @MapSteps, is this issue on the radar? It's definitely a real bug. I've manually put in my patch by using the default in $value = ( isset( $parts[ $key + 1 ] ) ) ? [] : $default; but I think this or a similar fix needs to get in an official release. Thanks :)

@JiveDig, apologies for the delay. Time is a bit rare currently. We're getting back to Kirki asap.

No prob, thanks.
A TL;DR quick test to see the bug is to create 2 fields that save to the same option. Make sure a default is set when registering both. Then only update one of the fields. The updated field works but the default does not work for the field that doesn't have a value in the DB yet.

Hi guys, any update on the default value issue?

Hi @daviedR , I think we've implemented the fix based on your suggestion. Have you tried the newest version?
The issue posted by @JiveDig hasn't been fixed though.


Create "meta-codec" for parsing bns state

Scope: web4-read
We want to allow very flexible queries with iov-core.
With BCP-proxy we have access to json and can build dynamic queries easily.
If we want to allow the same power with a direct connection, we need a way of defining that.

[ ] Define format for "codec definition": protobuf plus json transform plus?
[ ] Write "meta-codec" that takes static files and initializes a chain-specific bcp/bns/??? read proxy
[ ] Test this is compatible with current bcp/bns implementation
[ ] Add type-safety for bcp-basic and bns queries

Closing as mostly outdated. There is currently no plan for a meta-codec or we solved that issue differently. BCP-proxy is not developed at the moment.


[Feature]: Map Widget Enhancement - Bind searched location to input fields without clicking on map

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
Add the functionality of binding the address of the searched location from the map widget to an input field, without clicking on the map.

Why should this be worked on?
As an enhancement, this will improve the user experience as it will allow users to search on the Map widget, and display searched fields on other widgets without clicking on the Map widget.

After investigation, i see that we don't show a marker for the item the user has searched in the map widget. Is it not possible to show a marker in the map widget for something which is searched for?
Try searching "SBI Bank" and click on first result you wouldn't know where exactly is the location

Do we have any consensus on this being the generic behaviour across such components elsewhere?

@somangshu @dilippitchika I think here the solution is pretty simple. We just need to add the address to the Map1.center object which only contains the lat/long right now

15 users bound map.center in their bindings

Stats

Stat
Values

Reach
15

Effort (months)
0.25


Integration with apache.commons.fileupload

I'd like to write an integration with apache.commons.fileupload.
Currently when a file is uploaded the whole incoming data are saved in a temp file (if the request exceeds 1kb). Next the data  is parsed and new temp files are created for every uploaded file and then you can copy this/thees files to a place you like. On android this can be a limitation if you try to upload bigger files. Imagin you are tring to send 4.4GB movie file.
Apache fileupload can parse incoming data on the fly and you can get in InputStream to the incoming file and save it on a desired place.
What do you think guys?

The problem is the amount of code necessary (and runtime memory usage) to reach this goal, in any case it would be a great feature.
So please yes try to create a pull request to provide this feature! Please keep it all in one class and if you need a new dependency, then do this it in a subclass in a own module, to keep the basic nanohttpd dependency free.

I already did it for my project. Current implementation is of 2 classes each less than 50 lines of code. And there is a transient dependency of javax.servlet . I have some more work and some more tests and then I can make pull request.

Do you have the code online @vnnv ? I'd like to check it out.

Not yet, tomorrow I will prepare pull requests for this and for nanolets

Does this feature have been integrated into the Nanohttpd? Or is it expected to be integrated at all?

this will be integrated, just not sure yet how ;-) hopefully this weekend

pull request included! thanks!


Remove a nightly check from doc tests

Thanks!
@bors: r+

:pushpin: Commit 5e62437eb9e9e26cac91bbfa5d8452a9559c1354 has been approved by dwijnand

:hourglass: Testing commit 5e62437eb9e9e26cac91bbfa5d8452a9559c1354 with merge 6459852b67ad9b013bc855c03687078ac93003ec...

:sunny: Test successful - status-appveyor, status-travis
Approved by: dwijnand
Pushing 6459852b67ad9b013bc855c03687078ac93003ec to master...


Is it possible to have a preview mode of the created keymap?

When I am in the process of making a keymap I make assumptions about where keys need to be based om my daily typing. However, there is a disconnect between trying it out when I imagine a key doing something and having a text box to type in.
Would it be possible to implement this preview area to try out the currently edited layout.

Of course it would be a lot of work to emulate ZMK to support all the features, so for a first version it could we layer switching and normal keypresses. For determining which layout to compare against I would say the user can select two commits.

That would be really really tough. Emulating ZMK is one thing, another would be having raw signal data from the keyboard (e.g., "switch 37 is being pressed" rather than "UP_ARROW is being pressed") which is impossible without a specific protocol.
It does sound like something ZMK Studio (development is getting underway now) might enable, though I don't know what kind of priority that feature has.

If we are comparing commit "x" and commit "y", we know that a pressed key
is mapped to "a" in commit "x", then we can (hopefully) find the
corresponding key (say 39) in the matrix (assuming that we are starting on
the base layer). Then the output key can be whatever is mapped in commit
"y" to key 39.

But you can only do that for keys bound to &kp or similar behaviors, and only if they are unique in the keymap (e.g., if you have different keys bound to the same character on another layer for convenience, like symbols, there's no way to determine which you'd pressed). You can't detect anything like layer changes or activation of sticky keys, etc, without having a way to directly communicate with ZMK.

I was thinking that it might be possible to track layer changes and store
them in a stack based structure with the base layer as the first inserted.
If you have a momentary layer switch, you add the layer to the stack,
lookup the symbol in the layer and return it, after which you pop the stack.
When duplicate keys exist on a layer, the simplest rule would be to return
the first one.
My goal would not be to have a perfect simulation of my keymap, but a
rudimentary version where one can try out the most used things like &kp,
momentary layer switches, hold modifiers and others. The first version
could be only &kp with manual layer selection.
Op di 28 mei 2024 10:26 p.m. schreef Nick Coutsos @.***

:

If we are comparing commit "x" and commit "y", we know that a pressed key
is mapped to "a" in commit "x", then we can (hopefully) find the
corresponding key (say 39) in the matrix (assuming that we are starting on
the base layer). Then the output key can be whatever is mapped in commit
"y" to key 39.
But you can only do that for keys bound to &kp or similar behaviors, and
only if they are unique in the keymap (e.g., if you have different keys
bound to the same character on another layer for convenience, like symbols,
there's no way to determine which you'd pressed). You can't detect anything
like layer changes or activation of sticky keys, etc, without having a way
to directly communicate with ZMK.
—
Reply to this email directly, view it on GitHub
https://github.com/nickcoutsos/keymap-editor/issues/224#issuecomment-2136048744,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACBBRQQDUJLWFDKHHUU3HCDZETSA7AVCNFSM6AAAAABIMZJURGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZWGA2DQNZUGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

If you have a momentary layer switch, you add the layer to the stack,
lookup the symbol in the layer and return it, after which you pop the stack.

That's the main problem, my app won't know that.
Many behaviors, including the layer-change related ones, don't communicate anything to the OS when you're using them. They're not part of the keyboard HID spec, so they're processed entirely within ZMK along with other events to trigger alternate key presses. There isn't any existing functionality that would let Keymap Editor respond to a layer activating.
Even saying it doesn't have to be a perfect simulation is, in my opinion, really subjective, as different people will have different ideas of what the minimum requirements would be. If you are fine with testing simpler character-to-character mappings you might have better luck with something closer to the OS, or with something like Karabiner Elements for macos or (I think) AutoHotkey on Windows.


Implement Collision properties for objects

In order to further optimize any of the collision modules it will be best to implement a few key variables to determine if the object should even be checked against any or all objects.
Using snake_case give the following booleans and/or int values to the following:
-object_collides_with_others
-object_collides_with_x_type
-object_is_solid
-object_is_movable
-object_is_static
A few more will be added as needed.

Spring 2024 priority.


ctags: fix source url

The upstream SVN appears to no longer exist:
svn: E170013: Unable to connect to a repository at URL 'https://ctags.svn.sourceforge.net/svnroot/ctags/trunk'
svn: E160013: '/svnroot/ctags/trunk' path not found

The download homepage just references the sourceforge download:
http://ctags.sourceforge.net/
which is version 5.8.
Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build ctags

Success on x86_64-linux (full log)
Attempted: ctags
Partial log (click to expand)
cp ./ctags.1 /nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8/share/man/man1/ctags.1  &&  chmod 644 /nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8/share/man/man1/ctags.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8
shrinking /nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8/bin/ctags
gzipping man pages under /nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8/share/man/
strip is /nix/store/92d2ifxcni4n3zx9s8wnkcjlvnx5ajlc-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8/bin
patching script interpreter paths in /nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8
checking for references to /build in /nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8...
/nix/store/l6lzqggbm85gbjif54qpsnmdxfwvf84n-ctags-5.8

Success on aarch64-linux (full log)
Attempted: ctags
Partial log (click to expand)
cp ./ctags.1 /nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8/share/man/man1/ctags.1  &&  chmod 644 /nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8/share/man/man1/ctags.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8
shrinking /nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8/bin/ctags
gzipping man pages under /nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8/share/man/
strip is /nix/store/8yfik687kfccisxnad42j19lfb7ij9b4-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8/bin
patching script interpreter paths in /nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8
checking for references to /build in /nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8...
/nix/store/3ddiifgd68rm469dq8wxv2pcvcqm7ip8-ctags-5.8

Update: just change the fetchsvn url to
url = "https://svn.code.sf.net/p/ctags/code/trunk";
and r816 downloads and builds fine. No other changes required.

Ah thanks @xeji!  I'm glad we can just swap to a moved URL instead of downgrading to the "official" release, which appears semi-abandonded.

Success on x86_64-linux (full log)
Attempted: ctags
Partial log (click to expand)
cp ./ctags.1 /nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816/share/man/man1/ctags.1  &&  chmod 644 /nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816/share/man/man1/ctags.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816
shrinking /nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816/bin/ctags
gzipping man pages under /nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816/share/man/
strip is /nix/store/21ymadblbmsbb2bk4q7gl4kjasp8zmgd-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816/bin
patching script interpreter paths in /nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816
checking for references to /build in /nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816...
/nix/store/knj759y2cpg5vbmdk710ygzwcw8lh2ar-ctags-816

Success on aarch64-linux (full log)
Attempted: ctags
Partial log (click to expand)
cp ./ctags.1 /nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816/share/man/man1/ctags.1  &&  chmod 644 /nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816/share/man/man1/ctags.1
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816
shrinking /nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816/bin/ctags
gzipping man pages under /nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816/share/man/
strip is /nix/store/qg2agrqkf240s656d207zqhipl0bc2id-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816/bin
patching script interpreter paths in /nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816
checking for references to /build in /nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816...
/nix/store/cj15bjd6yidazyb98akdqss3ais83bg3-ctags-816


Cache POST requests with OkHttp

i  have got a question,how can i cache post request with OkHttp,

Thanks for your question. This issue tracker is only for bug reports with test cases and feature requests. Please ask usage questions on Stack Overflow.
https://stackoverflow.com/questions/tagged/okhttp

tks


GTFS libraries to add to the list

I've used both of the following GTFS libraries extensively and think they are good to add to the list.

multigtfs, a Django app to import and export GTSF
GTFSTK, a Python tool kit for processing GTFS

I confess that i'm the author of GTFSTK :-)

GTFSTK looks great.
Can you open a pull request that add multigtfs and GTFSTK them to the GTFS Libraries section?

Yep. Done.


Using Microsoft.UI.Composition with legacy DComp, or- a modern alternative to CreateSurfaceFromHwnd

We are working on a desktop Win32 application that will be mainly WinUI 3, but needs to host content from a Win32 HWND. The scenario is exactly like WebView2: a custom XAML control that hosts legacy/native content. If WebView2 can do it, it seems like it must already be implemented.
The crux is we want to have a Microsoft.UI.Composition visual that has an IDirectCompositionVisual as a child. ExpSystemVisualBridge.BridgeVisual in version 0.8 looks similar to what we need, but is no longer in the most recent versions of the SDK.
We've briefly talked with the WebView2 folks about how they do it, and tried what they suggested. I also was grasping at straws seeing if there was some other alternative. Both approaches are in a demo app as repros reduced as much as possible.
// This code does what the WebView2 team mentioned put_RootVisualTarget does internally.
void WindowlessHostControl::Test_TryInteropWebView2Style()
{
    assert(m_spriteVisual); // Microsoft.UI.Composition::SpriteVisual
    assert(m_hostedVisual); // IDCompositionVisual2, created using DCompositionCreateDevice3

    auto target = m_spriteVisual.try_as<IDCompositionTarget>();
    assert(target); // FAILS. QI'ing a WinUI3 visual for IDCompositionTarget returns E_NOINTERFACE

    target->SetRoot(m_hostedVisual.get());

    // Assuming this is needed. Also, do we need a commit on the underlying WinUI 3 device?
    m_dcompDevice->Commit();
}

The full repro app is at: https://github.com/tonyschr/tonyschr-samples under WinUIExperiments. WindowlessHostControl::Test_TryInteropCompositor is a second approach I tried based on experimentation.
Alternatively, a Microsoft.UI.Composition based implementation of CreateSurfaceFromHwnd is likely all that's needed and might be more generally useful for people building hybrid WinUI / Win32 applications.
This issue is similar to #5224 in some ways, but that seems to have gone off into the weeds a bit with respect to Acrylic, and also perhaps looked like the opposite scenario: rendering a Microsoft.UI.Composition visual to a Win32 window. There also haven't been any updates lately.

@Scottj1s for FYI - this is the isolate repro of the issue we've been hitting trying to build Arc for Windows

@tonyschr you mention ExpSystemVisualBridge.BridgeVisual may provide what you need.  That was ultimately replaced by  Microsoft.UI.Content.ContentExternalOutputLink.PlacementVisual.  Can you evaluate whether that works for you?
cc @jeffstall

@tonyschr, would you please share an update of your code using Microsoft.UI.Content.ContentExternalOutputLink.PlacementVisual?
Due to the lack of documentation and example code, I'm having trouble getting it all plugged together properly.

@HolgerStrauss will do. The sample code had some bugs, but we're using this in the real world and I can fix the sample!

@tonyschr, thank you. Looking forward to seeing how you solved it.

@HolgerStrauss, I've updated my WinUIExperiments sample at https://github.com/tonyschr/tonyschr-samples. It's test code with a lot of hard-coded values, but is a decent demonstration of PlacementVisual. The key part is in WindowlessHostControl::SetHostedVisual():
    m_outputLink = winrt::Microsoft::UI::Content::ContentExternalOutputLink::Create(ElementCompositor());
    winrt::com_ptr<IDCompositionTarget> target = m_outputLink.as<IDCompositionTarget>();

    HRESULT hr = target->SetRoot(m_hostedVisual.get());
    assert(SUCCEEDED(hr));

    winrt::float2 size{400, 300};
    m_outputLink.PlacementVisual().Size(size);
    winrt::ElementCompositionPreview::SetElementChildVisual(*this, m_outputLink.PlacementVisual());

@tonyschr This is very helpful and takes me a step further. Thank you for sharing this.

Is Microsoft.UI.Content.ContentExternalOutputLink going to graduate from the Experimental to the Release channel soon? I want to use this API but can't because of the Microsoft Store restriction.


Select Python Interpreter with Python3 on macOS

VSCode Version:
1.35.1 (1.35.1)

OS Version:
macOS 10.14.5

Python Version:
Python 3.7.3 (Homebrew), Python 2.7 (macOS default)

Steps to Reproduce:

Install Python3 from Homebrew.

In the status bar the app still ask to select a Python Interpreter

while I have an interpreter selected already:

@loretoparisi, thanks for letting us know about this.  Please provide the contents of your settings.json file.

@ericsnowcurrently I don't see anything in settings.json, I'm not sure if it is the same settings (User or Application) you are referring to:

Thanks for clarifying.
The Python environment/interpreter is a per-workspace setting.  Once you select an interpreter the extension will update your workspace settings.json with "python.pythonPath": "<path/to/binary>".  Since there is no such entry in your settings.json, you haven't selected an interpreter yet for the current workspace.  Once you select one it will show up in the status bar and in your workspace settings.json.  If that doesn't happen then please let us know.
Keep in mind that we default to "python3" until you have selected an interpreter for your workspace.  That is why you have a "current" value in the screenshot you originally provided.

@ericsnowcurrently thank you Eric. Question, why I can see as current python3, but there is any value in python.pythonPath? I mean at some point I get this current option from the env right?
Because on my machine I have both python2 and python3, but python points to python2, so where the current comes from?
Thank you.

If you do not have an interpreter selected (i.e. "python.pythonPath" is not set in your settings.json) then "current' will be the default.  We have the default hard-coded to "python3".

ok so basically I can set python.pythonPath=/usr/local/bin/python3 to enforce it.

@loretoparisi, with "python.pythonPath": "/usr/local/bin/python3", set in your workspace settings.json file, you should not be seeing any message about setting a Python interpreter.  Here are a few questions I have for you:

was that your workspace settings.json or your user one?
do you see your configured Python version in the status bar?
what happens when you reload the window (<ctrl><shift>P; "Developer: Reload Window")?
what version of the extension are you running?

Hi, so

I assume these were User Settings from the path I can see at the top of the window here:

The version of the Python extension is the

Nothing happens when pressing <ctrl><shift>P

The configured versions of Python are

and I cannot choose Python3 from the menu.

Thanks for the info, @loretoparisi.  Sorry about <ctrl><shift>P.  On Mac it is different (⇧⌘P).  Or just hit F1.
Here are a few more questions:

what happens when you run /usr/local/bin/python3 at the shell?
what happens when you add the setting to your workspace settings.json?
what Python version is showing in the status bar (lower left corner)?  For example:

which version of the extension? It is listed next to the extension name in the "Extensions" side bar.  For example:

Hope this helps!
mbploreto:~ loretoparisi$ /usr/local/bin/python3
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

I supposed I had already the settings.json ok in my workspace (see image) or those ones are general settings? In that case how access this personal settings?

There are a couple of logs I'd like you to check for messages related to the interpreter (and report back here):

the Python output panel; for example:
the developer console (Help -> Toggle Developer Log)

I supposed I had already the settings.json ok in my workspace (see image)
or those ones are general settings? In that case how access this personal settings?

From what you indicated in https://github.com/microsoft/vscode-python/issues/6357#issuecomment-506693506, you have not set any workspace settings.  The settings from https://github.com/microsoft/vscode-python/issues/6357#issuecomment-509530852 are your user (global) settings.

@ericsnowcurrently ok, it makes sense, here you are
Starting Microsoft Python language server.
Starting Jedi Python language engine.
Diagnostic Code: InvalidPythonInterpreterDiagnostic, Message: No Python interpreter is selected. You need to select a Python interpreter to enable features such as IntelliSense, linting, and debugging.

How to setup the local json settings file?

To set up the workspace settings.json, either go through the settings UI in vscode (make sure you click on "Workspace"), or open .vscode/settings.json under your workspace folder.  It should end up looking like this:
{
    "python.pythonPath": "/usr/local/bin/python3"
}

Please let us know how that goes.

All that said, I do find it curious that Python 3 is missing from the list of Python environments; it was able to find /usr/local/bin/python after all.  That means the extension could not find /usr/local/bin/python3 for some reason.
I'll look into what might cause that and let you know, regardless of whether or not your workspace settings.json fixes the problem for you.

In fact, some weird is going on. I have setup now /usr/local/bin/python3 in both global settings

and user workspace settings:

I have then closed and restarted VSCode.
BTW, just got an update, now running `1.36.1 (1.36.1)
Thank you for your help!

The code that looks for Python interpreters looks in a number of directories (including /usr/local/bin).  So I'm not sure what's going on here.
@loretoparisi, please check for errors or warnings in the developer console (Help -> Toggle Developer Log).
@DonJayamanne, any thoughts?

@ericsnowcurrently to give you some hint...
ip-192-168-22-157:task loretoparisi$ ls -l /usr/local/bin/python*
lrwxr-xr-x  1 loretoparisi  admin  36 Mar 13 02:13 /usr/local/bin/python -><EMAIL_ADDRESS>lrwxr-xr-x  1 loretoparisi  admin  43 Mar 13 02:13 /usr/local/bin/python-config -><EMAIL_ADDRESS>lrwxr-xr-x  1 loretoparisi  admin  37 Mar 13 02:13 /usr/local/bin/python2 -><EMAIL_ADDRESS>lrwxr-xr-x  1 loretoparisi  admin  44 Mar 13 02:13 /usr/local/bin/python2-config -><EMAIL_ADDRESS>lrwxr-xr-x  1 loretoparisi  admin  39 Mar 13 02:13 /usr/local/bin/python2.7 -><EMAIL_ADDRESS>lrwxr-xr-x  1 loretoparisi  admin  46 Mar 13 02:13 /usr/local/bin/python2.7-config -><EMAIL_ADDRESS>lrwxr-xr-x  1 loretoparisi  admin  34 Apr 26 14:12 /usr/local/bin/python3 -> ../Cellar/python/3.7.3/bin/python3
lrwxr-xr-x  1 loretoparisi  admin  41 Apr 26 14:12 /usr/local/bin/python3-config -> ../Cellar/python/3.7.3/bin/python3-config
lrwxr-xr-x  1 loretoparisi  admin  40 Feb 14 20:14 /usr/local/bin/python3.6 -> ../Cellar/python36/3.6.8_1/bin/python3.6
lrwxr-xr-x  1 loretoparisi  admin  41 Feb 14 20:14 /usr/local/bin/python3.6m -> ../Cellar/python36/3.6.8_1/bin/python3.6m
lrwxr-xr-x  1 loretoparisi  admin  48 Feb 14 20:14 /usr/local/bin/python3.6m-config -> ../Cellar/python36/3.6.8_1/bin/python3.6m-config
lrwxr-xr-x  1 loretoparisi  admin  36 Apr 26 14:12 /usr/local/bin/python3.7 -> ../Cellar/python/3.7.3/bin/python3.7
lrwxr-xr-x  1 loretoparisi  admin  43 Apr 26 14:12 /usr/local/bin/python3.7-config -> ../Cellar/python/3.7.3/bin/python3.7-config
lrwxr-xr-x  1 loretoparisi  admin  37 Apr 26 14:12 /usr/local/bin/python3.7m -> ../Cellar/python/3.7.3/bin/python3.7m
lrwxr-xr-x  1 loretoparisi  admin  44 Apr 26 14:12 /usr/local/bin/python3.7m-config -> ../Cellar/python/3.7.3/bin/python3.7m-config
lrwxr-xr-x  1 loretoparisi  admin  37 Mar 13 02:13 /usr/local/bin/pythonw -><EMAIL_ADDRESS>lrwxr-xr-x  1 loretoparisi  admin  38 Mar 13 02:13 /usr/local/bin/pythonw2 -><EMAIL_ADDRESS>lrwxr-xr-x  1 loretoparisi  admin  40 Mar 13 02:13 /usr/local/bin/pythonw2.7 -><EMAIL_ADDRESS>

ping @DonJayamanne

@loretoparisi
I'm sorry you've been experiencing this issue for a while.
Please could you provide the logs (Help-> Toggle Developer Tools, go into Console tab and copy everything).
Please reload VS Code and open a python file, replicate this issue, then provide the logs.

Because we have not heard back with the information we requested, we are closing this issue for now. If you are able to provide the info later on then we will be happy to re-open this issue to pick up where we left off.


Request to bump up npm version

Thanks for merging in #28 :+1:
Do you mind bumping the package.json version and publishing to npm? I work on an application that pulls this in via npm and it would be great to have that new method for our unit tests. Thanks!

this has been released and closed from https://github.com/chaijs/chai-spies/releases/tag/0.7.0


Add test to validate TX order in blocks

Motivation
A recent bug caused TX Order to be inconsistent in blocks. This PR adds a test that will fail if code changes that causes TX IDs to divert from the expected value or if those TXs are sorted in an unexpected order within a block.
Description
This just adds a test that asserts that given the same inputs TX IDs and how they are sorted within a block is consistent.
Test Plan

n/a

TODO

[x] Explain motivation or link existing issue(s)
[x] Test changes and document test plan
[x] Update documentation as needed
[x] Update changelog as needed

bors merge


SAK-34249 Extended time dates pulled from wrong published assessment

Ensure extended time service is set to the correct published assessment before
checking exam delivery dates

@ottenhoff Thoughts on this? I'm not sure if this addresses the exact issue in the Jira, but we implemented this change locally to fix a similar thing we saw with our custom re-entry feature.


오류5: 액세스가 거부되었습니다

You can create the "C/Users/Lee Woosung" folder.
Error 5: Access is A.
You have changed your username.
I know a few things about this. They like it.

/needsmoreinfo

Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Fixes #728: do not declare tests in HttpAdaptorListenerConnectTest class

Codecov Report
Base: 26.93% // Head: 26.92% // Decreases project coverage by -0.00% :warning:

Coverage data is based on head (ab24495) compared to base (88d0ada).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #729      +/-   ##
==========================================
- Coverage   26.93%   26.92%   -0.01%
==========================================
  Files         131      131
  Lines       31403    31403
  Branches     5025     5025
==========================================
- Hits         8457     8455       -2
  Misses      21857    21857
- Partials     1089     1091       +2

Flag
Coverage Δ

unittests
26.92% <ø> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/router_core/address_watch.c
88.50% <0.00%> (-1.15%)
:arrow_down:

src/router_core/route_tables.c
16.16% <0.00%> (-0.28%)
:arrow_down:

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@kgiusti I merged this to get this into my TLS branch. Thanks.


Link ScaleVolume where appropriate

Character.ScaleVolume is rather obscure, add it as see also where appropriate.
https://adventuregamestudio.github.io/ags-manual/Character.html#characterscalevolume

Added mentions on AudioChannel.md in commit 5001439 and on ViewFrame.md in commit d06a634.


Epoll: Avoid modifying EPOLLOUT interest when in ET mode

Motivation
The EPOLLOUT event is used to indicate fd writability following write buffer exhaustion. We currently update the epoll fd per channel on the fly to change the corresponding interest flag, but based on my (possibly incomplete) understanding it shouldn't be necessary in edge-triggered mode. We could just leave it set and avoid the extra epoll_ctl syscalls.
Modifications
In AbstractEpollChannel, set the EPOLLOUT flag from the outset and intercept existing calls to set/clear it when in ET mode, instead using a separate boolean to indicate that a flush is pending.
This particular approach is a bit hacky imo but involves minimal changes to existing code. I mainly wanted to check the general idea is valid.
Result
Fewer syscalls on event loop when in ET mode (default).

how often is that path of code called though? isn't it triggered only when writability changes which doesn't happen for most of the use cases?

@ninja- good question and something I also wondered :) my guess is also that this would only benefit certain situations/workloads. Hopefully @normanmaurer @Scottmitch and others have better intuition about this. But it's a simple change and doesn't have downsides that I'm aware of, so even if its applicability is narrow it might be worthwhile.
Also I just found out that when registered, the EPOLLOUT flag will be set for all events when the write buffer isn't full (including EPOLLIN-triggered), even in ET mode. So I will make an additional tweak to skip over processing of it unless there's actually a flush pending.

doesn't have downsides that I'm aware of

@normanmaurer @Scottmitch I think I may have realized the downside, which could invalidate this as a possibility. I will aim to verify, but I guess this change would mean virtually all registered channels are included in every event array even when only a subset have a "real" event (edge), since they would all be considered "ready". So when there are many channels this would result in a higher cost of iterating over them all on every wakeup. Does that sound right? Sorry for the noise if so...

Scratch the above comment, it seems the concerns were misplaced and original assumptions correct (at least that particular concern/assumption, I expect there's other things I've missed/misunderstood!). Have also opened #9348 with similar change for EPOLLIN... it doesn't apply to autoRead but otherwise might have broader applicability than this one.

@netty-bot test this please

@njhill I will have a look but as suspected this should not have a lot of impact as it only happens when the channel is not writable or an async connect is happening.

Thanks @normanmaurer, I guess the appeal is more the simplification potential, i.e. if using ET we never need to call epoll_ctl. So then it seemed a shame that we need to keep those (possibly somewhat fragile) mechanics just for LT, which motivated this question...

@netty-bot test this please

@netty-bot test this please

@njhill is this still something I should review, as we now also have: https://github.com/netty/netty/pull/9397

@normanmaurer I think this is still relevant since it could eliminate further epoll_ctl calls beyond what #9397 saves. However the original caveat about this impact being limited still holds, and I'm not actually proposing the way it's implemented here to be the way it's done (was really for illustration/validation), probably better to change the places directly where set/clearFlag(EPOLLOUT) are called.
So given this, yes no need for you to waste time reviewing :) Probably better to just do it when removing LT-related logic (if/when that's done, per #9349) since as mentioned the main value imo is the simplification of never having to set/clear it.

@njhill IMHO we should close this one for now.... WDYT ?

@normanmaurer sure, as mentioned we can reconsider it when removing LT mode!


Custom Economy Icon problem.

I created an economy icon, without problems it is added in the GUI, when I click to set the value, if it is 0 it tells me that I don't have enough EXP even if it is not connected in any way with the exp.
error: https://pastebin.com/XbhcDn6q
discord: Kyumar#3462

Please update to the latest version of TradeSystem.


DTSPO-22117 - Remove DBs as restore has to be done as fresh db creation

Jira link
DTSPO-22117
Change description
Remove DBs as restore has to be done as fresh db creation
Testing done

Checklist

[X] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)
[ ] Does this PR introduce a breaking change

Plan Result (nonprod_general - TerraformPlanApply)
:warning: Resource Deletion will happen :warning:
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 0 to add, 3 to change, 3 to destroy.

Update

azurerm_application_gateway.ag
azurerm_key_vault.atlasssian_kv
azurerm_postgresql_server.atlassian-server

Delete

azurerm_postgresql_database.confluence
azurerm_postgresql_database.crowd
azurerm_postgresql_database.jira

Change Result (Click me)

  # data.azurerm_key_vault_secret.POSTGRES-SINGLE-SERVER-PASS will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "azurerm_key_vault_secret" "POSTGRES-SINGLE-SERVER-PASS" {
      + content_type            = (known after apply)
      + expiration_date         = (known after apply)
      + id                      = (known after apply)
      + key_vault_id            = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.KeyVault/vaults/atlasssian-nonprod-kv"
      + name                    = "nonprod-POSTGRES-SINGLE-SERVER-PASS"
      + not_before_date         = (known after apply)
      + resource_id             = (known after apply)
      + resource_versionless_id = (known after apply)
      + tags                    = (known after apply)
      + value                   = (sensitive value)
      + versionless_id          = (known after apply)
    }

  # data.azurerm_key_vault_secret.POSTGRES-SINGLE-SERVER-USER will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "azurerm_key_vault_secret" "POSTGRES-SINGLE-SERVER-USER" {
      + content_type            = (known after apply)
      + expiration_date         = (known after apply)
      + id                      = (known after apply)
      + key_vault_id            = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.KeyVault/vaults/atlasssian-nonprod-kv"
      + name                    = "nonprod-POSTGRES-SINGLE-SERVER-USER"
      + not_before_date         = (known after apply)
      + resource_id             = (known after apply)
      + resource_versionless_id = (known after apply)
      + tags                    = (known after apply)
      + value                   = (sensitive value)
      + versionless_id          = (known after apply)
    }

  # azurerm_application_gateway.ag will be updated in-place
  ~ resource "azurerm_application_gateway" "ag" {
        id                                = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.Network/applicationGateways/atlasssian-nonprod-app-gateway"
        name                              = "atlasssian-nonprod-app-gateway"
        tags                              = {
            "application"  = "atlassian"
            "builtFrom"    = "hmcts/atlassian-infrastructure"
            "businessArea" = "Cross-Cutting"
            "criticality"  = "Medium"
            "environment"  = "staging"
            "startupMode"  = "always"
        }
        # (8 unchanged attributes hidden)

      - probe {
          - id                                        = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.Network/applicationGateways/atlasssian-nonprod-app-gateway/probes/appgw-probe-cnf" -> null
          - interval                                  = 30 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "appgw-probe-cnf" -> null
          - path                                      = "/confluence" -> null
          - pick_host_name_from_backend_http_settings = true -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 30 -> null
          - unhealthy_threshold                       = 3 -> null
            # (1 unchanged attribute hidden)

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - id                                        = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.Network/applicationGateways/atlasssian-nonprod-app-gateway/probes/appgw-probe-crd" -> null
          - interval                                  = 30 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "appgw-probe-crd" -> null
          - path                                      = "/crowd" -> null
          - pick_host_name_from_backend_http_settings = true -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 30 -> null
          - unhealthy_threshold                       = 3 -> null
            # (1 unchanged attribute hidden)

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      - probe {
          - id                                        = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.Network/applicationGateways/atlasssian-nonprod-app-gateway/probes/appgw-probe-jira" -> null
          - interval                                  = 30 -> null
          - minimum_servers                           = 0 -> null
          - name                                      = "appgw-probe-jira" -> null
          - path                                      = "/jira/status" -> null
          - pick_host_name_from_backend_http_settings = true -> null
          - port                                      = 0 -> null
          - protocol                                  = "Http" -> null
          - timeout                                   = 30 -> null
          - unhealthy_threshold                       = 3 -> null
            # (1 unchanged attribute hidden)

          - match {
              - status_code = [
                  - "200-399",
                ] -> null
                # (1 unchanged attribute hidden)
            }
        }
      + probe {
          + id                                        = (known after apply)
          + interval                                  = 30
          + minimum_servers                           = 0
          + name                                      = "appgw-probe-cnf"
          + path                                      = "/confluence"
          + pick_host_name_from_backend_http_settings = true
          + protocol                                  = "Http"
          + timeout                                   = 30
          + unhealthy_threshold                       = 3
            # (1 unchanged attribute hidden)
        }
      + probe {
          + id                                        = (known after apply)
          + interval                                  = 30
          + minimum_servers                           = 0
          + name                                      = "appgw-probe-crd"
          + path                                      = "/crowd"
          + pick_host_name_from_backend_http_settings = true
          + protocol                                  = "Http"
          + timeout                                   = 30
          + unhealthy_threshold                       = 3
            # (1 unchanged attribute hidden)
        }
      + probe {
          + id                                        = (known after apply)
          + interval                                  = 30
          + minimum_servers                           = 0
          + name                                      = "appgw-probe-jira"
          + path                                      = "/jira/status"
          + pick_host_name_from_backend_http_settings = true
          + protocol                                  = "Http"
          + timeout                                   = 30
          + unhealthy_threshold                       = 3
            # (1 unchanged attribute hidden)
        }

      - request_routing_rule {
          - http_listener_id            = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.Network/applicationGateways/atlasssian-nonprod-app-gateway/httpListeners/appgw-http-listener" -> null
          - http_listener_name          = "appgw-http-listener" -> null
          - id                          = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.Network/applicationGateways/atlasssian-nonprod-app-gateway/requestRoutingRules/appgw-routing-rule" -> null
          - name                        = "appgw-routing-rule" -> null
          - priority                    = 1 -> null
          - rule_type                   = "PathBasedRouting" -> null
          - url_path_map_id             = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.Network/applicationGateways/atlasssian-nonprod-app-gateway/urlPathMaps/appgw-url-map-path" -> null
          - url_path_map_name           = "appgw-url-map-path" -> null
            # (8 unchanged attributes hidden)
        }
      + request_routing_rule {
          + backend_address_pool_id     = (known after apply)
          + backend_address_pool_name   = "appgw-backend-pool-cnf"
          + backend_http_settings_id    = (known after apply)
          + backend_http_settings_name  = "appgw-backend-settings-cnf"
          + http_listener_id            = (known after apply)
          + http_listener_name          = "appgw-http-listener"
          + id                          = (known after apply)
          + name                        = "appgw-routing-rule"
          + priority                    = 1
          + redirect_configuration_id   = (known after apply)
          + rewrite_rule_set_id         = (known after apply)
          + rule_type                   = "PathBasedRouting"
          + url_path_map_id             = (known after apply)
          + url_path_map_name           = "appgw-url-map-path"
            # (2 unchanged attributes hidden)
        }

        # (18 unchanged blocks hidden)
    }

  # azurerm_key_vault.atlasssian_kv will be updated in-place
  ~ resource "azurerm_key_vault" "atlasssian_kv" {
      ~ access_policy                   = [
            # (1 unchanged element hidden)
            {
                application_id          = null
                certificate_permissions = [
                    "Get",
                    "List",
                    "Update",
                    "Create",
                    "Import",
                    "Delete",
                    "Recover",
                    "Backup",
                    "Restore",
                    "ManageContacts",
                    "ManageIssuers",
                    "GetIssuers",
                    "ListIssuers",
                    "SetIssuers",
                    "DeleteIssuers",
                ]
                key_permissions         = [
                    "Get",
                    "List",
                    "Update",
                    "Create",
                    "Import",
                    "Delete",
                    "Recover",
                    "Backup",
                    "Restore",
                    "GetRotationPolicy",
                    "SetRotationPolicy",
                    "Rotate",
                ]
                object_id               = "e7ea2042-4ced-45dd-8ae3-e051c6551789"
                secret_permissions      = [
                    "Get",
                    "List",
                    "Set",
                    "Delete",
                    "Purge",
                ]
                storage_permissions     = []
                tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
            },
          - {
              - certificate_permissions = []
              - key_permissions         = []
              - object_id               = "96f806d7-de3f-4407-bd62-b746b59cc3d7"
              - secret_permissions      = [
                  - "Get",
                  - "List",
                ]
              - storage_permissions     = []
              - tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
                # (1 unchanged attribute hidden)
            },
        ]
        id                              = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.KeyVault/vaults/atlasssian-nonprod-kv"
        name                            = "atlasssian-nonprod-kv"
        tags                            = {
            "application"  = "atlassian"
            "builtFrom"    = "hmcts/atlassian-infrastructure"
            "businessArea" = "Cross-Cutting"
            "criticality"  = "Medium"
            "environment"  = "staging"
            "startupMode"  = "always"
        }
        # (12 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # azurerm_postgresql_database.confluence will be destroyed
  # (because azurerm_postgresql_database.confluence is not in configuration)
  - resource "azurerm_postgresql_database" "confluence" {
      - charset             = "UTF8" -> null
      - collation           = "English_United States.1252" -> null
      - id                  = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.DBforPostgreSQL/servers/atlassian-nonprod-server/databases/confluence-db-nonprod" -> null
      - name                = "confluence-db-nonprod" -> null
      - resource_group_name = "atlassian-nonprod-rg" -> null
      - server_name         = "atlassian-nonprod-server" -> null
    }

  # azurerm_postgresql_database.crowd will be destroyed
  # (because azurerm_postgresql_database.crowd is not in configuration)
  - resource "azurerm_postgresql_database" "crowd" {
      - charset             = "UTF8" -> null
      - collation           = "English_United States.1252" -> null
      - id                  = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.DBforPostgreSQL/servers/atlassian-nonprod-server/databases/crowd-db-nonprod" -> null
      - name                = "crowd-db-nonprod" -> null
      - resource_group_name = "atlassian-nonprod-rg" -> null
      - server_name         = "atlassian-nonprod-server" -> null
    }

  # azurerm_postgresql_database.jira will be destroyed
  # (because azurerm_postgresql_database.jira is not in configuration)
  - resource "azurerm_postgresql_database" "jira" {
      - charset             = "UTF8" -> null
      - collation           = "English_United States.1252" -> null
      - id                  = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.DBforPostgreSQL/servers/atlassian-nonprod-server/databases/jira-db-nonprod" -> null
      - name                = "jira-db-nonprod" -> null
      - resource_group_name = "atlassian-nonprod-rg" -> null
      - server_name         = "atlassian-nonprod-server" -> null
    }

  # azurerm_postgresql_server.atlassian-server will be updated in-place
  ~ resource "azurerm_postgresql_server" "atlassian-server" {
      ~ administrator_login_password      = (sensitive value)
        id                                = "/subscriptions/b7d2bd5f-b744-4acc-9c73-e068cec2e8d8/resourceGroups/atlassian-nonprod-rg/providers/Microsoft.DBforPostgreSQL/servers/atlassian-nonprod-server"
        name                              = "atlassian-nonprod-server"
      ~ tags                              = {
          - "application"  = "atlassian" -> null
          - "builtFrom"    = "hmcts/atlassian-infrastructure" -> null
          - "businessArea" = "Cross-Cutting" -> null
          - "environment"  = "staging" -> null
        }
        # (15 unchanged attributes hidden)
    }

Plan: 0 to add, 3 to change, 3 to destroy.


Undefined reference to rust_begin_unwind

Ideas?
  = note: /home/steve/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-cd0ca85e71f914ca.rlib(core-cd0ca85e71f914ca.0.o): In function `core::panicking::panic_fmt':
          /checkout/src/libcore/panicking.rs:69: undefined reference to `rust_begin_unwind'
          collect2: error: ld returned 1 exit status

I'm not doing anything special with regards to panics.

We run it with panic=abort, hmmm. Does your crate compile standalone with this?

let me try, i dunno

Can’t reproduce. Works just fine to me.

Just tried with semver and it also works fine for me. Can this be closed?

Closing as unable to reproduce--please comment if this is not so, @steveklabnik.

I will probably not be able to for a long time, as I haven't set up any of this on Windows; closing seems good! Stuff has probably significantly changed since then.


Distinguish pod and deployment annotations in Helm charts

Currently we set all annotations for the deployment (or job, cronjob, stateful set) and the pods exactly the same. However, some annotations should only be added to the deployment and some only for pods. We should add a new config podAnnotations to control that

Fixed by #217


Only compile release regex once

Contents
Enhancements

[x] Only compile release regex once

Uncategorised!

[x] Merge ef777290453f11b7519dbd3410b01d34d2e13566 into b043bc85cf558f1706188fafe9676ecd0642ab5a

Codecov Report

Merging #20 (ef77729) into main (b043bc8) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #20   +/-   ##
=======================================
  Coverage   95.38%   95.38%
=======================================
  Files           3        3
  Lines         195      195
=======================================
  Hits          186      186
  Misses          9        9

Impacted Files
Coverage Δ

conventional_commits/compile_release_notes.py
90.80% <100.00%> (ø)

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 b043bc8...ef77729. Read the comment docs.


Disabled Avatar isn't

Description
The disabled avatar should have a lower opacity
Link to documentation
https://opensource.adobe.com/spectrum-css/components/avatar/
Additional context
It looks like the opacity is set to NaN. I'm guessing this is a React bug.

Duplicate of #340, already fixed. See http://spectrum-css-archives.s3-website.us-east-2.amazonaws.com/2.15.2/docs/avatar.html

Ah. That explains why it worked for me... ;)

Sure does! Thanks for the report!


Add missing includes for Windows builds.

Regular PR run (without clcache flush): http://jenkins01.arangodb.biz:8080/job/arangodb-matrix-pr/5599/


Integrating prism syntax highlighter

Integrated Prism. After gulp serve:dist, I was not able to notice any impact on critical path performance in comparison to live website.
@addyosmani Let me know your feedback.

I signed it!

I changed my email ID

again.

...

@manu4543 Thanks. It looks like the google bot finally accepted your PR. Sorry for validation taking a while :)

@addyosmani - Actually I didn't notice a different email id set in commit author. Took a while to sort it.
Have resolved the conflicts. How does it look now?


Update github.com/dapr/dapr to v1.13.0-rc.1

This is incompatible with Go 1.20 it seems, but not sure what's the solution here

@yaron2 I have reverted the go.mod to use 1.20 as the minimum version which looks to at least compile and keep compatibility.

@yaron2 looking at this more- because dapr/dapr now has a go.mod of 1.21 the go mod tidy & diff check will always fail. One option is disabling the diff check on older go versions.

@yaron2 looking at this more- because dapr/dapr now has a go.mod of 1.21 the go mod tidy & diff check will always fail. One option is disabling the diff check on older go versions.

I'm ok with disabling the diff check on older versions. I'm merging this PR for now, please follow up.


Resizer might be broken

Hello,
I came across this when trying to test out LocalStack and what it can do.
I clone this repo and deployed the application using the bin/deploy.sh and it all looked good, I could access the website URL and it looked to be all good.

                )
                return
            if current_state == 'failure':
                reason = f'Waiter encountered a terminal failure state: {acceptor.explanation}'
                raise WaiterError(
                    name=self.name,
                    reason=reason,
                    last_response=response,
                )
            if num_attempts >= max_attempts:
                if last_matched_acceptor is None:
                    reason = 'Max attempts exceeded'
                else:
                    reason = (
                        f'Max attempts exceeded. Previously accepted state: '
                        f'{acceptor.explanation}'
                    )
>               raise WaiterError(
                    name=self.name,
                    reason=reason,
                    last_response=response,
                )
E               botocore.exceptions.WaiterError: Waiter ObjectExists failed: Max attempts exceeded. Previously accepted state: Matched expected HTTP status code: 404

/Users/wmoorby/.pyenv/versions/3.11.6/lib/python3.11/site-packages/botocore/waiter.py:387: WaiterError
=========================== short test summary info ============================
FAILED tests/test_integration.py::test_s3_resize_integration - botocore.excep...
==================== 1 failed, 1 passed in 96.89s (0:01:36) ====================

I double checked the website I was running + the video in this repo, and it looks like the resizing part actually doesn't work.
I noticed this as there was no resize number of bytes when attempting to resize an image in the UI.
Here is a screenshot of my hosted application:

And here it is from the video in this repo:

I'm not really sure if this is an actual error within the python resizing script or if there is something wrong with my setup (I don't know what would be, I just cloned the repo and ran the included deploy script).

@Mo0rBy, Have you found any error while running the deployment script?

@abidkhan484 I don't know where the error is exactly.
Been a while since I've looked at this now but from what I remember, there were no errors or issues when deploying this, I just saw that 1 of the pytest tests was failing.
Initially I thought that it must be the test that was broken as this is a nice and simple setup that probably was created and then never touched again due to the fact that it's a tutorial repo.
So I looked at the test code and then realised with the screenshots above, the actual webapp page doesn't work in the way that it should.
So like I said, don't know exactly where the issue is occurring, but I believe it's related to the actual deployment of the resources, not the test that needs updating.


[WIP] Support DeiT3

Motivation
DeiT III: Revenge of the ViT
github
Checklist
Before PR:

[ ] Pre-commit or other linting tools are used to fix the potential lint issues.
[ ] Bug fixes are fully covered by unit tests, the case that causes the bug should be added in the unit tests.
[ ] The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
[ ] The documentation has been modified accordingly, like docstring or example tutorials.

After PR:

[ ] If the modification has potential influence on downstream or other related projects, this PR should be tested with those projects, like MMDet or MMSeg.
[ ] CLA has been signed and all committers have signed the CLA in this PR.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: okotaku:x: t_okoshit_okoshi seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@Ezra-Yu Accuracy is a bit lower than the official repo. Do you have any idea?

Accuracy is a bit lower than the official repo. Do you have any idea?

Thanks very much! Deit3 is in our planning for the next month.
What is the specific accuracy gap?

@Ezra-Yu

Backbone
official repo
converted

deit3-b-384
85.0
85.03

deit3-b-384-21k
86.7
86.24

deit3-l-384
85.8
85.94

deit3-l-384-21k
87.7
87.22

@okotaku  Great thanks for your contribution, we would like to build connection with some community developers. If possible, would you like to share your preferred IM software? Maybe we can set a chat group to improve the future collaboration and communication.

Have you checked the test_transforms, such crop_ratio and interpolation?  If it is all right, it may also be related to the torch version

@tonysy Hello, I have joined openmmlab slack workspace.
How about it?

@Ezra-Yu Thanks to your advice I solved!

Well done!

Seems this PR is denied to be modified by developers and I cannot push modification. Any ideas about it? @okotaku

@mzr1996 I added you as collabolator. Please check it.


Unblock existing CI workflow

Description
Unblock existing CI workflows for both cypress test and unit test.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #174 (34962f3) into main (971c5a4) will increase coverage by 2.46%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #174      +/-   ##
==========================================
+ Coverage   85.03%   87.50%   +2.46%
==========================================
  Files           5        6       +1
  Lines         147      176      +29
  Branches       24       24
==========================================
+ Hits          125      154      +29
  Misses         16       16
  Partials        6        6

Impacted Files
Coverage Δ

common/constants/shared.ts

common/util.ts

public/components/show_error_modal.tsx

public/components/vector_upload_options.tsx

public/services.ts

...Dashboards/plugins/dashboards-maps/common/index.ts
100.00% <0.00%> (ø)

...boards-maps/public/components/show_error_modal.tsx
100.00% <0.00%> (ø)

...hboards/plugins/dashboards-maps/public/services.ts
20.00% <0.00%> (ø)

...-Dashboards/plugins/dashboards-maps/common/util.ts
100.00% <0.00%> (ø)

...plugins/dashboards-maps/common/constants/shared.ts
100.00% <0.00%> (ø)

... and 1 more

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

After fixing the cypress test why the ci is still failing? @junqiu-lei

After fixing the cypress test why the ci is still failing? @junqiu-lei

I think it's the similar issue previously also have. it will time out to find element. Just tried to increase wait time.

Yes


fix: update to eye v4.11.5

fix: update to eye v4.11.5

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

npm package (@latest dist-tag)
GitHub release
v6.1.5

Your semantic-release bot :package::rocket:


Re-enable the visual identifiaction of obsolete models again

Reported by dietmarw on 27 Jun 2013 22:25 UTC
In 2bd7f9a94e1ac44c88bd1bba4801100e360eddce the following change was introduced:
Removed all extends from Modelica.Icons.ObsoleteModel, if this was not already present in MSL3.2.
    Explanation:
    Existing user models look odd with the ObsoleteModel icons when opening with MSL 3.2.1.
    A user should not be forced to manually change the obsolete models (that are usually just moved to another place).
    Instead, this should be performed automatically by a script in a future MSL version.

Now there was a good reason why we made all obsolete models also appear visually different. We try to show the users of MSL 3.2.1 to not use obsoleted models and the only way to do this is to actually make it apparent and obvious is to the users that this is a model that should no longer be used. Libraries still using the obsoleted models really should update and not wait for a conversion script to do this job.
Furthermore there libraries that have been using obsoleted models over the period of several releases of the MSL since the users/library developers were simply not (visually) aware that they were using obsoleted models. Often it's also question of the obsolete model not working correctly and the replacement can not be done automatically by conversion script. So here it is even more important to point obsolete models out and the MSL 3.2.1 was supposed  to help here.

Migrated-From: https://trac.modelica.org/Modelica/ticket/1185

Comment by otter on 28 Jun 2013 06:41 UTC
Replying to [ticket:1185 dietmarw]:

In 2bd7f9a94e1ac44c88bd1bba4801100e360eddce the following change was introduced:
Removed all extends from Modelica.Icons.ObsoleteModel, if this was not already present in MSL3.2.
    Explanation:
    Existing user models look odd with the ObsoleteModel icons when opening with MSL 3.2.1.
    A user should not be forced to manually change the obsolete models (that are usually just moved to another place).
    Instead, this should be performed automatically by a script in a future MSL version.

Now there was a good reason why we made all obsolete models also appear visually different. We try to show the users of MSL 3.2.1 to not use obsoleted models and the only way to do this is to actually make it apparent and obvious is to the users that this is a model that should no longer be used. Libraries still using the obsoleted models really should update and not wait for a conversion script to do this job.
Furthermore there libraries that have been using obsoleted models over the period of several releases of the MSL since the users/library developers were simply not (visually) aware that they were using obsoleted models. Often it's also question of the obsolete model not working correctly and the replacement can not be done automatically by conversion script. So here it is even more important to point obsolete models out and the MSL 3.2.1 was supposed  to help here.

All models marked as "obsolete" in MSL trunk are either just moved to another location or had a typo in their class name. It there are really some models where the model has been changed, please point this out.
It is not practical that now all library developers make their own conversion scripts or even manually change their libraries for these tiny, completely unimportant, changes. This is a waste of time, since these changes will be anyway performed fully automatically in the next version of MSL with conversion scripts.
If new users don't recognize that it is suggested to use the same class at another location, so what? The next MSL with conversion scripts will fix this.
It is much more annoying to open an own library where suddenly several instances are marked in red as "obsolete", just for tiny cosmetic changes in MSL.

Comment by dietmarw on 28 Jun 2013 09:42 UTC
Fair enough, still I reverted some occurrences in functions that ONLY appear in the library browser but not in user models in 9eaf22d49ade4ace916ec95afb002f1a204dd134


Updates Schemas to match output from iceberg-schema-tools main branch

Need to update iceberg to reflect recent changes in iceberg schema tools. Specifically:

Replaces $ref: [Vertex_Type] with $ref:[Vertex_Type].yaml
Removes extra edges to non existent vertices like Careplan
Validates with bmeg/jsonschemagraph

LGTM.  I re-ran latest schema-tools and produced the same graph


fix: change Cart Page title and cart total text

Replace "Your Shopping Cart" with "Shopping Cart" would be better if someone could change it in the DB.

Closes #2785

Replace "Your Shopping Cart" with "Shopping Cart" would be better if someone could change it in the DB.
Closes #2785
@Xymmer

Looks like this is a sample data update


Failed to generate single outFile

The option outFile doesn't seem to create the expected single JS-file.
Although if this option is specified, all other JS-files are not created.
Following you can find an example based on the "complicated"-Test:
build.sbt:
import com.arpnetworking.sbt.typescript.Import.TypescriptKeys._

lazy val root = (project in file(".")).enablePlugins(SbtWeb).settings(
  JsEngineKeys.engineType := JsEngineKeys.EngineType.Node,
  outFile := "myfile.js",
  outDir := "path"
)

libraryDependencies += "org.webjars" % "bootstrap" % "3.0.2"

test:
> assets
$ absent target/web/typescript/main/javascripts/animal.js
$ absent target/web/typescript/main/javascripts/mammal.js
$ absent target/web/typescript/main/javascripts/human.js
$ exists target/web/typescript/path/myfile.js

You can use both sbt-concat and this plugin to generate the single js file you want.

@1tchy Are you still wanting this feature? With the work done on 0.1.5 I think it's now possible to do it, but I'd rather not spend time on the feature if nobody will use it.

Thanks for asking. I would have used it for a specific project, however this project is done and so I currently have no more need for this.

This would be a very useful feature. Do you have an idea what needs to be done? I can add a helping hand.

Today's the 1st birthday of this issue! :cake:

Yay!!!! :cake:


Use MSAL authentication in Service Fabric tasks

Task names:

ServiceFabricComposeDeployV0
ServiceFabricDeployV1
ServiceFabricPowerShellV1
ServiceFabricUpdateManifestsV2

Description: Adding MSAL support to Service Fabric based tasks.
Documentation changes required: N
Added unit tests: Added tests to CI pipeline.
Attached related issue: https://dev.azure.com/mseng/AzureDevOps/_workitems/edit/2085991
Checklist:

[x] Task version was bumped - please check instruction how to do it
[ ] Checked that applied changes work as expected

Do not merge, until we introduce CI pipeline for affected tasks.


Added support for Node express APIs

At Smashing Boxes, we want to be able to deploy node apps with tape. So I want to take a minute to discuss what that looks like and what the best approaches are for detecting a node backend app, deploying it, starting/restarting it, ect.
Detecting a Node app
Currently we look if there is a configs.ru or package.json in your projects root to tell if it is a rails of Frontend app. Depending on what tape detect, the playbook that it decides to use for provisioning and deployment are very different. So, I need some way that we can differentiate betweeen a node backend app an Angular/React frontend app.
Default Node Version
I usually default to the LTS version of anything I install on a server. Is it okay if we just always use 4.2 until the latest version come out or do we want to default to the latest version of node that we can install (as we do with ruby).
Monit config
Is this as simple as node index.js? Or is there some kind of better node runner that we should use?
Mongodb
If we are going node then it is only proper that we also get some mongodb.
Docker
Would be very interested in doing some pairing on a possible Docker focused ansible-driven provisioning and deployment setup. I've been wanting to move our system over to docker for a while now. But.... I will need help.
Issues to resolve in this thread

[ ] How will tape detect that it is looking at a node backend app?
[ ] Should we only use node 4.2 LTS or is it okay to use the latest version of node?
[ ] Monit start/stop script
[ ] Mongodb
[ ] Docker

To start the convo:
RE: Detecting a Node app
I'd suggest we use PM2 as a process manager. PM2 gives us the option to build an ecosystem.json file that we can use for detection of an BE node app. It's also got a lot of other bells and whistles that can come in handy. PM2 even does deployment, not like we need that with tape...
RE: Node Version
100% with you on LTS.
RE: Monit
AFAIK PM2 replaces all the functionality of Monit.
RE: Mongo
I'm a big fan of MongoDB too, so +1 on this. I've got boilerplate shell scripts for a vagrant setup I use if you want to use them for reference.
RE: Docker
IMHO, this is a more important feature, and could make a lot of the rest of this issue moot -- I'd say start with Docker, and then build Node apps on top of docker. I'm down to help and I think @joeyjoejoejr is too.

I'm on it!

@joeyjoejoejr here is what I am thinking (lets try to keep this contained to node apps only and we can expand out to rails/fe_static).

Create a templates/node
Put some Docker files that define containers in templates/node/docker
Create a node ombibox.yml playbook inside templates/node
Copy those :top: files into the apps local dir when you run tape installer install (they should go into the taperole dir that get created as apart of that process
Create some roles that utilize the Ansible Docker Module for standing up our docker container(s)
Create some Dockerfile(s) in a docker dir that tape can use when it runs tape ansible everything (should Just Work :tm: )

Challenge may getting the path to the Dockerfile(s) right. I think that they can just be kept inside the tape source and our of the App's source. If not, you could maybe do some trickery kinda like what I have done in the past here?


Remove terraform -refresh-only commands

Ticket
N/A
Changes

What was added, updated, or removed in this PR.

Remove all instances of terraform <plan|apply> -refresh-only

Context for reviewers

Testing instructions, background context, more in-depth details of the implementation, and anything else you'd like to call out or ask reviewers.

Problem
A couple days ago, multiple people working with different git repos that use the template-infra started to notice deploy failures showing this error:
AWS account authentication details
  ╷
  │ Error: Cannot apply non-applyable plan
  │
  │ The given plan is not applyable. If this seems like a bug in Terraform,
  │ then please report it!
  ╵
  Error: Process completed with exit code 1.

This is happening during the Configure AWS Credentials action, which is called a couple different times in the CD process.
Trigger
Github Actions released a new ubuntu runner image version on 2024-04-14. The previous version was ubuntu 20240407.1 and the new version is ubuntu 20240414.1.
The new runner includes some changes, including updating terraform from 1.7.5 to 1.8.0.
Example
Here's an example from the navapbc/platform-test-nextjs repo, which is used for testing the next.js template:

Passing workflow on 2024-04-15 using the ubuntu 20240407.1.0 runner
Failing job on 2024-04-17 using the ubuntu 20240414.1.0 runner

Cause
@coilysiren 🔒 tracked the issue down to this section of the terraform source code and identified that it is related to our usage of -refresh-only. Unfortunately, the terraform source code includes this comment for this error message:
// This situation isn't something we expect, since our own rules
// for what "applyable" means make this scenario impossible. We'll
// reject it on the assumption that something very strange is
// going on. and so better to halt than do something incorrect.
// This error message is generic and useless because we don't
// expect anyone to ever see it in normal use.

After numerous trials, I confirmed that it is definitely tied to our use of terraform apply -refresh-only. Interestingly, running terraform plan -refresh-only without terraform apply 🔒 returns no terraform error.
@coilysiren 🔒 pointed out that we can reproduce this issue on 1.8.0 locally for modules that are missing a terraform.tfstate file.
Resolution
This PR removes -refresh-only and resolves this issue (see 🔒 example).
-refresh-only is intended for:

Refresh-only mode: creates a plan whose goal is only to update the Terraform state and any root module output values to match changes made to remote objects outside of Terraform. This can be useful if you've intentionally changed one or more remote objects outside of the usual workflow (e.g. while responding to an incident) and you now need to reconcile Terraform's records with those changes.

In light of this, I believe it is safe for us to remove all references to -refresh-only because:

We are only calling -refresh-only on terraform modules that define and output locals, which terraform likely considers incorrect usage
We are not calling -refresh-only on terraform modules that have remote resources defined and have any remote changes to pull in
We only added -refresh-only because terraform refresh was deprecated and we followed the terraform guidance on replacing it (see #412). In other words, we were not trying to accomplish anything particular by introducing -refresh-only and we shouldn't hold onto it if it's causing us issues and removing it resolves them.

Testing

Provide evidence that the code works as expected. Explain what was done for testing and the results of the test plan. Include screenshots, GIF demos, shell commands or output to help show the changes working as expected. ProTip: you can drag and drop or paste images into this textbox.

See 🔒 example
See CI test results

Thanks for fixing this! Just adding a thought/note that removing refresh-only is safe here since the modules that are being auto applied are only config modules, which should never create any actual resources.


Add support for forwarding browser console messages

This PR adds support for optionally forwarding browser console message to stdio/stderr. Values are automatically pretty printed as if they're logged from the node process itself. This is a huge advantaged compared to karma or other browser testing solutions. It makes debugging tree-like structures a lot easier (we have lots of those in Preact :stuck_out_tongue: ).
Due to limitations in puppeteer and the devtools protocol we need our own serialization format (essentially JSON) and pass it around as a string.
Supported data types:

Primitives (string, number, boolean, null, undefined)
Arrays + Objects
Error objects
Functions, Arrow Functions and classes
Circular Data
Map + Set

Screenshot:

Marking as a draft again, because I mainly want to see if the solution mentioned in this component simplifies the message passing: https://github.com/puppeteer/puppeteer/issues/2083#issuecomment-380287424

@phihag I've addressed the review feedback and I think the PR is ready for another review round 🎉


Failing tests for handling a single nested list

I have configs with a variable number of sublists, and at least on the surface, one sublist makes as much sense as multiple.
I started looking for a fix and ultimately traced it back to the parser output being different for the two cases.  Maybe a single nested list is ambiguous with a flat list?  I have zero Erlang experience so I didn't get far there.

So I've been doing some digging on this, and I'm not quite sure what the best approach is. The reason why a single nested list presents a problem is because it's ambiguous from the parsers perspective whether that list is intended to be a sublist, or just a list. When there is a "," present with a second list, it's no longer ambiguous, as it's clear that it's a list of lists.
One thought I have is to provide a way to express nested lists more explicitly, i.e. key = [[a = b]], or key = [[a = b], [c = d]]. I haven't tried to see if that is something that can be done easily, but it's an option.
Thoughts?

This is now fixed in master


LayoutObject: SceneSplitter

Something that enables you to drag and resize a scene split vertically or horizontally
to be used for views like this (imagine a split resize handle between the two panels)

Quite keen to work on this! I did some work a while ago on the current component (not sure if it ever got merged though...)

@kaydelaney feel free, I was not going to do it anytime soon :)


useGraphQlJit: Add option to pass in custom cache instance

Description
Hey again! Following up on my previous changes here I would like to do a similar thing with the graphql-jit plugin as well.
Fixes https://github.com/dotansimha/envelop/issues/1317
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] packages/plugins/graphql-jit/test/graphql-jit.spec.ts

Test Environment:

OS: macOS 12.2.1
@envelop/...: latest
NodeJS: v16.14.0

Checklist:

[x] I have followed the CONTRIBUTING doc and the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented on my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@n1ru4l @dotansimha I created another PR with the addition of removing the max and the ttl options, and bumping the major instead. This makes it more consistent with useParserCache and useValidationCache.
https://github.com/dotansimha/envelop/pull/1321/files
Feel free to close one of these.

closed in favor of https://github.com/dotansimha/envelop/pull/1321


Items drop doesn't work with a particular iframe (videochat)

Describe the bug
Items drop doesn't work with a particular iframe. This behaviour happens when the iframe with a video chat library is rendered below the droppable target (target has a greater z-index than the iframe).
Reproduction
You need to enter a random generated chat room to test this behaviour, please don't give audio/video permission to the tab if you're not comfortable with this.
Live Reproduction
Steps to reproduce the behavior:

Open the Codesandbox preview in a new window
Try to drag "glass" to the box with "Drag a box here" label
Drop the item

Expected behavior
An alert should open with this text: You dropped Glass into Dustbin!.
Desktop:

OS: OSX Catalina
Browser: Chrome
Version: 80

Additional context
The dnd seems to work fine with the embedded preview

I'm facing the exact same issue, where I have an iframe just underneath the dropabble target. When the item is dragged I increase the z-index of the dropabble target. The app works if run locally with safari, firefox and chrome. However if I build the app and deploy it to server it works only on Firefox and Safari.
Initially I thought the issue is because of the delay in drop and in mean time the droppable targets gets behind the iframe as soon as I drop the item and hence the issue. However I tried giving a delay to the method that puts droppable target behind the iframe but it still have this same issue on chrome browser in production build.
I'm still investigating what might be the cause. Once I figure out something I'll update

@andtos90 I was able to fix it in my setup using pointer:events: none on Iframe when dragging starts and passing the data to iframe  using window.postMessage() API when the element is dropped on a droppable target. This issue seems to be there on chrome due to two different origins.

Thanks @CodeDem, it's a good workaround. I'll leave the issue opened because it's still not completely solved

Yeah, it's a workaround. Not sure when chrome will do something about it :(


WIP for Issue 266 - automating TC-IDM-2.2

Working on matter-test-scripts/#266 Specifically the first 8 steps (use known mandatory endpoints, clusters and attributes. Suggest Endpoint 0 (root node), descriptor cluster, any mandatory attribute)
Got several combinations of reading attributes, clusters, and endpoints, and capturing the output. This is very much a work in progress so the testing is subject to change!

Many of these changes are addressed in a1c592a but are not showing up here.


create a tarball of existing nessus

https://gist.github.com/jcwx/a0e3199ad42fee393dae

for ref to procedures


Cambios en documentación del proyecto para la entrega final

Codecov Report

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

@@            Coverage Diff            @@
##             master     #111   +/-   ##
=========================================
  Coverage     86.11%   86.11%
  Complexity      168      168
=========================================
  Files            39       39
  Lines           360      360
  Branches         22       22
=========================================
  Hits            310      310
  Misses           39       39
  Partials         11       11

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 63ebf5b...db942a4. Read the comment docs.


Remove "THIS CODE IS GENERATED" comments 6 of 12

same as https://github.com/opensearch-project/opensearch-java/pull/235 but broken down into different commits / branches.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

closing in favor of one PR with all the commits #263


side Navbar on collapse should show loklak logo instead of word text

Will fix this by tonight,

The navbar on top does not show the loklak logo. Its not visible if the topbar is not collapsed and not if it is collapsed.

I am confused about this issue. Simply follow the screenshot. There is no traditional sidebar but a three column layout.


the string which concatenation with "" , is not work?

before
var stmt = " if(window.healthBtnClicked) {\
								var paywin = ZDK.module.window({\
									title: 'title,\
									content: '',\
									cache: false,\
									width: 550,\
									cancel:'error,\
									ok: 'ok',\
									onInited: function(win) {\
										win.resetBody('issuccess?');\
									}\
								});\
								paywin.on('onok',function(){\
									$(window).trigger('payok');\
								});\
								window.open(json.msg);\
							} else {\
								window.location.href = json.msg;\
							}";

after
var stmt = " if(window.healthBtnClicked) {\
var win = XX.module.window({\
                            title: 'title',
                            \
                            content: '',
                            \
                            cache: false,
                            \
                            width: 550,
                            \
                            cancel: 'cancel',
                            \
                            ok: 'ok',
                            \
                            onInited: function(win) {\
                                win.resetBody('is success?');\
                            }\
                        });\
                        paywin.on('onok', function() {\
                            $(window).trigger('payok');\
                        });\
                        window.open(json.msg);\
                    } else {\
								window.location.href = json.msg;\
							}";

is anyone have this question?

To my knowledge, this is not valid in javascript.

My example maybe  have some problem, not friendly !
But i use the example like this:
var test = {
    shareButtonsHtml : '\
    \
        Share\
        0\
    \

 \
         \

 \

 \

 \

'
}

var multiStr1 = "This is the first line \
    This is the second line \
    This is more...";

var multiStr2 = "This is the first line \
    This is the 'second' line \
    This is more...";

used js-beautify it format my string to  this
var test = {
  shareButtonsHtml: '\
  \
      Share \
     0 \ \
 \
    \
 \
 \

 \
'
}

var multiStr1 = "This is the first line \
This is the second line\
This is more...
";

var multiStr2 = "This is the first line \
This is the 'second'
line\
This is more...
";

more link

This throws an error in Chrome... What javascript platforms support this?

thanks for your patience, this images is that my test result

** so I don't know why you said it throws error
I want to say use js-beautify format  it  should make some  error, is it one bug for js-beautify?

Ah, I see it.  Interesting.  Will fix.

Hm... Looks okay now... Can you double check?

I'm going to close this for now.  I'll reopen if needed.

I've encountered similar problem.
In my case, problem occurs when line terminator after "" is "\r\n".
If I change it to "\n", the problem disappears.


Create private Tickets with user email with compatibility for user id and non-registered user's email

Hi Scott, this is my suggestion for Issue 616.
I hope it helps!

Great work on this @GPrimola the tests were very comprehensive and easy to see it works as expected!