Add new plugin: real time shader selection

Description
This PR adds a new plugin that enables dynamic shader switching in samples. The plugin can be enabled via the command line switch "--realtimeshaderselection". The sample must define the shaders that can be used by calling "ApiVulkanSample::store_shader" and implement the "change_shader" function, which notifies the sample about shader changes.

General Checklist:
Please ensure the following points are checked:

[ ] My code follows the coding style

[ ] I have reviewed file licenses

[ ] I have commented any added functions (in line with Doxygen)

[ ] I have commented any code that could be hard to understand

[ ] My changes do not add any new compiler warnings

[ ] My changes do not add any new validation layer errors or warnings

[ ] I have used existing framework/helper functions where possible

[ ] My changes do not add any regressions

[ ] I have tested every sample to ensure everything runs correctly

[ ] This PR describes the scope and expected impact of the changes I am making

Note: The Samples CI runs a number of checks including:

[ ] I have updated the header Copyright to reflect the current year (CI build will fail if Copyright is out of date)
[ ] My changes build on Windows, Linux, macOS and Android. Otherwise I have documented any exceptions

Sample Checklist
If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist:

[ ] I have tested the sample on at least one compliant Vulkan implementation
[ ] If the sample is vendor-specific, I have tagged it appropriately
[ ] I have stated on what implementation the sample has been tested so that others can test on different implementations and platforms
[ ] Any dependent assets have been merged and published in downstream modules
[ ] For new samples, I have added a paragraph with a summary to the appropriate chapter in the samples readme
[ ] For new samples, I have added a tutorial README.md file to guide users through what they need to know to implement code using this feature. For example, see conditional_rendering

Interesting approach! Did I get it right, that nothing is done when switching the language?

yes, currently only this sample "dynamic_uniform_buffers" can support this plugin
"args": [
    "sample",
    "dynamic_uniform_buffers"
    ,"--realtimeshaderselection"
]

and changing the shader won't change anything because the function " DynamicUniformBuffers::change_shader is empty (no shader replacement). I wasn't sure if it makes sense to implement this for this sample, because I know that the principle of loading shaders in this PR https://github.com/KhronosGroup/Vulkan-Samples/pull/655  will change a bit, so I also didn't want to generate conflicts. But if you think it's worth implementing this function to show the actions, no problem.

I found 2 more naming convention issues. Besides that, without actual usage of this new plugin, you don't know for sure that it's working. So I would vote for actually changing the shader in at least one sample to demonstrate it. Even though that might be changed by some future shader handling changes.

I added an example to dynamic_uniform_buffers sample  (DynamicUniformBuffers::change_shader)
The shader (base.frag.spv) has changed colors from the original (base.frag) file to make it easier to see the differences in the shaders.

Looks good now, and works.
Would be great, if you could adjust hpp_dynamic_uniform_buffers accordingly.

Hi @asuessenbach , thanks for noticing that there is no HPP example. During the implementation I noticed that we have two classes for the Drawer (ImGUi)
class Drawer and class HPPDrawer
Do we really need two implementations to use ImGui? In my opinion, this version of HPP should be removed.
Because, The Drawer class isn't written in C anyway, it uses std::array and std::vector among others, so it's not C compatible anyway. CMake builds it in CPP also. Additional is more extensive, has several more options.
So my suggestion is to remove HPPDrawer and use only Drawer class. Because currently I don't see any logical example that we need to have two classes that do exactly the same thing and the only difference is in the types. Alternatively, if we don't want to remove HPPDrawer, I think we should make an Interface IDrawer  that describes the functions that can be used in these classes.
Do you think that we should remove the HPPDrawer class and the ability to implement the Drawer class in functions in C and CPP, or creating an interface will be a better solution ?

Totally agree, that Drawer and HPPDrawer are redundant. HPPDrawer was just introduced, when HPPGui was introduced, even though the Drawer is completely vulkan-agnostic.
I think, the best approach would be to move that Drawer into its own files, use that from both Gui and HPPGui, and remove HPPDrawer.

As the last commit added quite a lot of changes, I will describe those that may be the most important

In file Vulkan-Samples\framework\common\hpp_vk_common.h:140 i changed the type for vk::PipelineShaderStageCreateInfo, previous you could only specify array[2] now it takes dynamic array/vector.

vk::ArrayProxyNoTemporaries<const vk::PipelineShaderStageCreateInfo> const &shader_stages

In file Vulkan-Samples\framework\drawer.h:29 i added

using HPPDrawer = Drawer;

because the samples from HPP used such a name and I didn't want to change it in a very large number of files, of course if we want to get rid of the HPPDrawer name, I can remove the "using" and change the class name in each of the files

::create_pipeline
It currently uses VkShaderStageFlagBits and for code written in Vulkan HPP it is not the default format, so for example in the file
Vulkan-Samples\samples\api\hpp_dynamic_uniform_buffers\hpp_dynamic_uniform_buffers.cpp:208
I'm using a cast, possibly we can change it to:

a) Use a template, it will involve quite a lot of changes
b) Create two variables one that stores c-style shaders and the other in cpp, easy to change but not very elegant
c) Create a new internal type for shader types, then add the support in load_shader
d) Or leave it as is

After thinking about your changes yet another time, I would propose the following adjustments:

As the available_shaders need to be in the vkb::Application (because vkb::Platform::get_app, called by plugins::RealTimeShaderSelection::on_update_ui_overlay can get you just that), you should have a non-virtual public function store_shaders and a virtual protected function change_language (or so). change_language would not need to get the vector of shaders, the vkb::ShaderSourceLanguage would suffice. vkb::Application::get_available_shaders should be const.
To make that work with vkb::HPPVulkanSample, it could "hide" store_shaders and get_available_shaders by making them private, and provide corresponding functions using vk::ShaderStageFlagBits, calling the Application's function using the reinterpret_cast-trick.
No need to have a copy of the shaders in plugins::RealTimeShaderSelection. You can always get them via vkb::Platform::get_app().get_available_shaders().

I did as you @asuessenbach suggested with a few changes

virtual void change_shader is public, because RealTimeShaderSelection uses this function from the base class Application
(no-virtual) get_available_shaders  is public, because RealTimeShaderSelection uses this function from the base class Application. And for HPP we use casting HPPVulkanSample::get_available_shaders
(no-virtual) void store_shaders is protected, There is no need to make this function public as it is only used by s sample

Hi @Dawid-Lorenz-Mobica, this looks ready to merge except for some branch conflicts.  Can you resolve those and LMK when ready to merge?  Thanks!

@tomadamatkinson @asuessenbach @gary-sweet @SaschaWillems @JoseEmilio-ARM @gpx1000: I updated the branch to latest main. Since @Dawid-Lorenz-Mobica is no longer working on this issue and I cannot change the title, because I am not an author of this PR, please consider it as ready for review.
@SaschaWillems : I noticed that there is the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT error reported by the validation layer. We discussed it earlier that it should have already been solved by https://github.com/KhronosGroup/Vulkan-Samples/pull/775 :
[error] [framework\core\hpp_instance.cpp:48] -1303445259 - VUID-vkBeginCommandBuffer-commandBuffer-00050: Validation Error: [ VUID-vkBeginCommandBuffer-commandBuffer-00050 ] Object 0: handle = 0x169b0b7bc70, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0x27d60e0000000019, type = VK_OBJECT_TYPE_COMMAND_POOL; | MessageID = 0xb24f00f5 | Call to vkBeginCommandBuffer() on VkCommandBuffer 0x169b0b7bc70[] attempts to implicitly reset cmdBuffer created from VkCommandPool 0x27d60e0000000019[] that does NOT have the  bit set. The Vulkan spec states: If commandBuffer was allocated from a VkCommandPool which did not have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT flag set, commandBuffer must be in the initial state (https://vulkan.lunarg.com/doc/view/<IP_ADDRESS>/windows/1.3-extensions/vkspec.html#VUID-vkBeginCommandBuffer-commandBuffer-00050)

While merging with main, some error might have happen. In HPPDynamicUniformBuffers::prepare, some code has been duplicated. Instead of
	if (HPPApiVulkanSample::prepare(options))
	{
		prepare_camera();
		generate_cube();
		prepare_uniform_buffers();
		descriptor_set_layout = create_descriptor_set_layout();
		pipeline_layout       = get_device()->get_handle().createPipelineLayout({{}, descriptor_set_layout});
		pipeline              = create_pipeline(supported_shaders.begin()->first, supported_shaders.begin()->second);
		descriptor_pool       = create_descriptor_pool();
		descriptor_set        = vkb::common::allocate_descriptor_set(get_device()->get_handle(), descriptor_pool, descriptor_set_layout);
		update_descriptor_set();
		build_command_buffers();

		prepared = true;
	}

	vk::Device device = get_device()->get_handle();

	prepare_camera();
	generate_cube();
	prepare_uniform_buffers();

	descriptor_set_layout = create_descriptor_set_layout();
	pipeline_layout       = get_device()->get_handle().createPipelineLayout({{}, descriptor_set_layout});
	pipeline              = create_pipeline(supported_shaders.begin()->first, supported_shaders.begin()->second);
	descriptor_pool       = create_descriptor_pool();
	descriptor_set        = vkb::common::allocate_descriptor_set(get_device()->get_handle(), descriptor_pool, descriptor_set_layout);

	update_descriptor_set();
	build_command_buffers();
	prepared = true;
	return true;

it should just be
	if (HPPApiVulkanSample::prepare(options))
	{
		prepare_camera();
		generate_cube();
		prepare_uniform_buffers();
		descriptor_set_layout = create_descriptor_set_layout();
		pipeline_layout       = get_device()->get_handle().createPipelineLayout({{}, descriptor_set_layout});
		pipeline              = create_pipeline(supported_shaders.begin()->first, supported_shaders.begin()->second);
		descriptor_pool       = create_descriptor_pool();
		descriptor_set        = vkb::common::allocate_descriptor_set(get_device()->get_handle(), descriptor_pool, descriptor_set_layout);
		update_descriptor_set();
		build_command_buffers();

		prepared = true;
	}

	return prepared;

@SaschaWillems

I'm not sure if we want to merge this in it's current state. The changes to the framework allowing to toggle between GLSL and SPIR-V are fine, but I don't think we want explicit shader selection in only a few samples (in this case the dynamic descriptor buffer one). Our goal is tho have GLSL and HLSL shaders that match 1:1, while this PR (at least judging by the screenshots) looks different when selecting SPV. And I can't see any HLSL files, so how are the new SPV files generated.
So to be in line with our framework discussions, this should only add SPV loading capabilities to the framework and not do any changes to an existing sample.
Probably need to discuss this in detail on the next call.

Without merging the PR #655 we need to limit this PR to selection between GLSL and SPV. When the appropriate mechanism for offline and/or online compilation of HLSL is added, the plugin added by this PR may be extended with HLSL. In other case it will be still blocked by HLSL compilation and we do not know when it will be possible to merge it.

Oops, needs header update with 2024 copyright..

@SaschaWillems

I'm not sure if we want to merge this in it's current state. The changes to the framework allowing to toggle between GLSL and SPIR-V are fine, but I don't think we want explicit shader selection in only a few samples (in this case the dynamic descriptor buffer one). Our goal is tho have GLSL and HLSL shaders that match 1:1, while this PR (at least judging by the screenshots) looks different when selecting SPV. And I can't see any HLSL files, so how are the new SPV files generated.
So to be in line with our framework discussions, this should only add SPV loading capabilities to the framework and not do any changes to an existing sample.
Probably need to discuss this in detail on the next call.

Hi Sascha, plugin related code from samples was removed, so there are no longer any changes to already existings samples.
About HLSL, this PR only add plugin for dynamic shader switching, so while there is "support" for HLSL shader in plugin itself, there is no support for HLSL shaders compilation in Vulkan Samples framework. Currently if anybody would try to use HLSL shader with plugin, he will get error: "The format is not supported" - link
If I'm thinking correctly, HLSL shaders should work with this plugin without any issues, when support for their compilation will be added for framework in the future.
About mismatch in the shaders from screenshots - GLSL and SPIRV - I checked that with spirv-tools and it was made on purpose. There was a difference green channel in frag shader so you could see change of the shaders with your eyes, I also compiled GLSL into binary and replaced SPIRV shader with it to be sure.
If used properly, there should be no difference in usage of different shaders.
I am open for any discussion about this and I'm waiting for your response.

I have tested every sample to ensure everything runs correctly - used "batch" command on Ubuntu 22.04.3 LTS.
Didn't spot any new compiler warnings, validation errors/warnings or any other regression.

@gary-sweet
About testing this plugin, I think easiest/quickest way would be to use patch that I attached to this comment, It is basically revert of commits that removed plugin support from Dynamic Uniform Buffers sample with resolved conflicts.
realtime_shader_selection_uniform_buffers.patch.tar.gz

@gary-sweet About testing this plugin, I think easiest/quickest way would be to use patch that I attached to this comment, It is basically revert of commits that removed plugin support from Dynamic Uniform Buffers sample with resolved conflicts. realtime_shader_selection_uniform_buffers.patch.tar.gz

@Seweryn-Zielas-Mobica That patch doesn't apply for me (error: git diff header lacks filename information when removing 1 leading pathname component (line 237))
Can you make a separate temporary PR that has that change on top of this one that I can checkout instead perhaps?

@gary-sweet  I created temporary PR like you requested - https://github.com/KhronosGroup/Vulkan-Samples/pull/953
Also there is one fail and canceled checks here that looks like  infrastructure issue, is there a way to make a re-run of CI checks?

@gary-sweet I created temporary PR like you requested - #953 Also there is one fail and canceled checks here that looks like infrastructure issue, is there a way to make a re-run of CI checks?

I don't have that ability. It may be quicker to just push a small change to this PR to re-trigger them.

Looks like we have merge conflicts on this one.  LMK when fixed and I'll merge.  Thx


Can you help me check if there is any issue in the command 'npm install', and correct it if necessary

node-pre-gyp ERR! install request to https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-10/bluetooth_hci_socket-0.5.3-10-node-v83-win32-x64.tar.gz failed, reason: read ECONNRESET
node-pre-gyp WARN Pre-built binaries not installable for<EMAIL_ADDRESS>and<EMAIL_ADDRESS>(node-v83 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error request to https://github.com/abandonware/node-bluetooth-hci-socket/releases/download/0.5.3-10/bluetooth_hci_socket-0.5.3-10-node-v83-win32-x64.tar.gz failed, reason: read ECONNRESET

The problem has been solved by 'npm --vs2015 install --global windows-build-tools'.
Mark.


adding a query dataset does not work

I am running MiGA <IP_ADDRESS> - aquatint - 2019-09-16 when I try to add a query dataset i get an error:
the script(s) try to read from a tmp file that does not exist:
(miga) thomas@NAK-Test-01:/opt/miga/miga$ ./bin/miga add  -P /opt/miga/miga-data/test/ -D Xanthomonas_hortorum_pv_pelargonii_NBC631 -t genome --query --description "Test Query" -i assembly "/6_db_ssd/primer_tool/Xanthomonas/internal/NBC-631_Xanthomonas_hortorum_pv._pelargo
nii.fna.gz" --debug 2
Metadata.save /opt/miga/miga-data/test/metadata/Xanthomonas_hortorum_pv_pelargonii_NBC631.json
     /5_workspace/repos/miga/lib/miga/metadata.rb:58:in `save'
     /5_workspace/repos/miga/lib/miga/metadata.rb:52:in `create'
     /5_workspace/repos/miga/lib/miga/metadata.rb:37:in `initialize'
     /5_workspace/repos/miga/lib/miga/dataset.rb:58:in `new'
     /5_workspace/repos/miga/lib/miga/dataset.rb:58:in `initialize'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:152:in `new'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:152:in `create_dataset'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:65:in `block in perform'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:64:in `each'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:64:in `perform'
     /5_workspace/repos/miga/lib/miga/cli/action.rb:32:in `launch'
     /5_workspace/repos/miga/lib/miga/cli.rb:170:in `launch'
     ./bin/miga:10:in `<main>'
Metadata.save /opt/miga/miga-data/test/metadata/Xanthomonas_hortorum_pv_pelargonii_NBC631.json
     /5_workspace/repos/miga/lib/miga/metadata.rb:58:in `save'
     /5_workspace/repos/miga/lib/miga/dataset.rb:68:in `save'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:69:in `block in perform'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:64:in `each'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:64:in `perform'
     /5_workspace/repos/miga/lib/miga/cli/action.rb:32:in `launch'
     /5_workspace/repos/miga/lib/miga/cli.rb:170:in `launch'
     ./bin/miga:10:in `<main>'
Metadata.save /opt/miga/miga-data/test/miga.project.json
     /5_workspace/repos/miga/lib/miga/metadata.rb:58:in `save'
     /5_workspace/repos/miga/lib/miga/project.rb:69:in `save!'
     /5_workspace/repos/miga/lib/miga/project.rb:63:in `save'
     /5_workspace/repos/miga/lib/miga/project/dataset.rb:57:in `add_dataset'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:70:in `block in perform'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:64:in `each'
     /5_workspace/repos/miga/lib/miga/cli/action/add.rb:64:in `perform'
     /5_workspace/repos/miga/lib/miga/cli/action.rb:32:in `launch'
     /5_workspace/repos/miga/lib/miga/cli.rb:170:in `launch'
     ./bin/miga:10:in `<main>'
Exception: No such file or directory @ rb_sysopen - /tmp/MiGA.gz20191212-40754-w7chia

DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:1392:in `initialize'
DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:1392:in `open'
DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:1392:in `copy_file'
DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:486:in `copy_file'
DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:403:in `block in cp'
DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:1571:in `block in fu_each_src_dest'
DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:1587:in `fu_each_src_dest0'
DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:1569:in `fu_each_src_dest'
DEBUG: /usr/lib/ruby/2.3.0/fileutils.rb:402:in `cp'
DEBUG: /5_workspace/repos/miga/lib/miga/common/format.rb:53:in `clean_fasta_file'
DEBUG: /5_workspace/repos/miga/lib/miga/dataset/result.rb:201:in `add_result_assembly'
DEBUG: /5_workspace/repos/miga/lib/miga/dataset/result.rb:52:in `add_result'
DEBUG: /5_workspace/repos/miga/lib/miga/dataset/result.rb:68:in `block in first_preprocessing'
DEBUG: /5_workspace/repos/miga/lib/miga/dataset/result.rb:67:in `each'
DEBUG: /5_workspace/repos/miga/lib/miga/dataset/result.rb:67:in `find'
DEBUG: /5_workspace/repos/miga/lib/miga/dataset/result.rb:67:in `first_preprocessing'
DEBUG: /5_workspace/repos/miga/lib/miga/cli/action/add.rb:71:in `block in perform'
DEBUG: /5_workspace/repos/miga/lib/miga/cli/action/add.rb:64:in `each'
DEBUG: /5_workspace/repos/miga/lib/miga/cli/action/add.rb:64:in `perform'
DEBUG: /5_workspace/repos/miga/lib/miga/cli/action.rb:32:in `launch'
DEBUG: /5_workspace/repos/miga/lib/miga/cli.rb:170:in `launch'
DEBUG: ./bin/miga:10:in `<main>'

Hello @thomasvangurp
Thanks a lot for this detailed report!
I believe this was caused by a bug introduced around <IP_ADDRESS> that was already corrected. The issue was with cleaning FastA files on the fly when the input was gzipped.
This issue has now been resolved, please try again with the latest version (0.5 - collotype). I'll close this issue now, but please do not hesitate to reopen and/or open a new issue if you continue to experience this problem.
Best,
Miguel.


multiple tenant migration path

it will be very great if we can do something like this
"tenant-migrations-path" => [
database_path('migrations/tenant1'), database_path('migrations/tenant2')
]

instead of just single path
"tenant-migrations-path" => database_path('migrations/tenant'),

try using wildcards, e.g., migrations/tenants/*.. This should work!

thats not only the case, here another example:
"tenant-migrations-path" => [
      database_path('migrations/tenant'),
      module_path('Shop/Database/migrations')
]

my migration files were "scattered" across different modules as well.. like: app/Modules/XXX/Database/Migrations/... and it worked when setting the module name (e.g., XXX) as a wildcard..
However, this only works, if all "paths" have the same structure.. In your case above, this does not work, you are right..


Version 0.1.6 not working on npm

The new version 0.1.6 cannot be installed from npm. It seems to have a version mismatch.
 Forcing revalidation
708 http fetch GET 304 https://registry.npmjs.org/msal 73ms (from cache)
709 silly fetchPackageMetaData error for<EMAIL_ADDRESS>No matching version found for<EMAIL_ADDRESS>710 timing stage:rollbackFailedOptional Completed in 1ms
711 timing stage:runTopLevelLifecycles Completed in 1863ms
712 verbose type version
713 verbose stack msal: No matching version found for<EMAIL_ADDRESS>713 verbose stack     at pickManifest (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\npm-pick-manifest\index.js:65:11)
713 verbose stack     at fetchPackument.then.packument (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\pacote\lib\fetchers\registry\manifest.js:52:18)
713 verbose stack     at tryCatcher (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\util.js:16:23)
713 verbose stack     at Promise._settlePromiseFromHandler (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\promise.js:512:31)
713 verbose stack     at Promise._settlePromise (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\promise.js:569:18)
713 verbose stack     at Promise._settlePromise0 (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\promise.js:614:10)
713 verbose stack     at Promise._settlePromises (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\promise.js:693:18)
713 verbose stack     at Async._drainQueue (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\async.js:133:16)
713 verbose stack     at Async._drainQueues (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\async.js:143:10)
713 verbose stack     at Immediate.Async.drainQueues (C:\Users\AppData\Roaming\npm\node_modules\npm\node_modules\bluebird\js\release\async.js:17:14)
713 verbose stack     at runCallback (timers.js:794:20)
713 verbose stack     at tryOnImmediate (timers.js:752:5)
713 verbose stack     at processImmediate [as _immediateCallback] (timers.js:729:5)

@DavidHenri008  This looks like an issue with npmjs. We are following up with them. We will get back to you once we hear from them.

@DavidHenri008 We just received a response from npm and the issue is resolved now. You should now be able to download the latest version of msal.


show command does not work properly on certain websites

For instance on that website https://research.nccgroup.com/2022/02/18/analyzing-a-pjl-directory-traversal-vulnerability-exploiting-the-lexmark-mc3224i-printer-part-2/ and saying show air near we get:

Most of the links on that site gives the same black window with nothing in it.
I confirmed on other sites that the command is working fine.

For reference, I need to add this second selector to this rule in tippy.css:
.tippy-box,
.tippy-content div {
	position: relative;
	background-color: #333;
	color: #fff;
	border-radius: 4px;
	font-size: 14px;
	line-height: 1.4;
	white-space: normal;
	outline: 0;
	transition-property: transform, visibility, opacity;
	word-break: keep-all;
}


[bug] Deltaboard keeps visiting localhost back-end when deployed on a remote server

Describe the bug
Deltaboard keeps visiting localhost back-end when deployed on a remote server
To Reproduce
Steps to reproduce the behavior:

Deploy Deltaboard on a remote server
Access Deltaboard using the remote IP address

Expected behavior
Deltaboard operates normally
Screenshots

The remote IP address should not be hard coded into the project. Instead use a relative URL which has the same domain as the browser uses to visit the frontend

A workaround:
use ssh local port forwarding
ssh -fNt -L 8090:{your-server-ip}:8090 {your-server-ssh-name}
or just edit your host file to make localhost resolved to your server ip.

fixed in commit https://github.com/delta-mpc/deltaboard/commit/aa13d3867e084ed9d82b03b47e9fff79ea7637d4


Undefined symbol: cudnnCreate

For some reason just started getting this, googling didn't turn up to much. Just wondering if anyone has seen this before, otherwise I'll keep debugging.
...
I tensorflow/core/common_runtime/gpu/gpu_device.cc:972] DMA: 0 1 2 3
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 0:   Y Y Y Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 1:   Y Y Y Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 2:   Y Y Y Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 3:   Y Y Y Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:0) -> (device: 0, name: TITAN X (Pascal), pci bus id: 0000:03:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:1) -> (device: 1, name: TITAN X (Pascal), pci bus id: 0000:04:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:2) -> (device: 2, name: TITAN X (Pascal), pci bus id: 0000:05:00.0)
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:3) -> (device: 3, name: TITAN X (Pascal), pci bus id: 0000:06:00.0)
Trying to restore saved checkpoints from ./logdir/train/2016-11-04T20-42-51 ... No checkpoint found.
F tensorflow/stream_executor/cuda/cuda_dnn.cc:221] Check failed: s.ok() could not find cudnnCreate in cudnn DSO; dlerror: /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so: undefined symbol: cudnnCreate
[1]    3775 abort (core dumped)  python train.py --data_dir=corpus

Have you installed cudnn? I prefer to use nvidia-docker run gcr.io/tensorflow/tensorflow. :)

yea that wound up being it, for some reason it had gotten uninstalled or in some sort of a corrupted state after a restart
thanks!


error: "Could not create client: directory missing new registration URL"

Hello,
I'm using AWS lightsail with instance Bitnami WordPress
I tried this tutorial: https://docs.bitnami.com/aws/how-to/generate-install-lets-encrypt-ssl/
This was code, I inputed
cd /tmp
curl -s https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
tar xf lego_linux_amd64.tar.xz
sudo mv lego /usr/local/bin/lego

sudo /opt/bitnami/ctlscript.sh stop
sudo lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --path="/etc/lego" run

but this was a error
Could not create client: directory missing new registration URL

+1 Having the same issue.

Probably just hitting scheduled maintenance: https://letsencrypt.status.io/
Feel free to re-open if this persists tomorrow!

Probably just hitting scheduled maintenance: https://letsencrypt.status.io/

quick-note: the maintenance window won't start until 18:00 UTC. There's no currently known interruption in service and I suspect the root cause here is something other than maintenance.

Hm, you're right, I did my mental time zone conversion wrong.
What do the full logs show?

How can I help to get you information you need @mholt? Not sure where log files are being written, is there somewhere that you could point me to?

New binaries where this is resolved are now available with the v1.0.1 release.
Thank you for reporting!


Cert renewal process failing due to failed redirection

Has anyone encountered a problem with renewals? My renewal is failing with an error in the log that the attempt to load the .well-known/acme-challenge test file is failing with a 404 error. My full setup follows the norm for SSL redirection.  I have my primary application which is served only by HTTPS, then I have another application (named ssl_redirect) in my WF account that only serves HTTP and has the following .htaccess:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
This all works great, except for the renewal process. If I manually attempt to access one of the files in the .well-known/acme-challenge subdirectory using HTTPS then the browser finds it just fine, but if I switch to the HTTP protocol, the protocol redirection by my ssl_redirect fails. It just keeps returning 404.
I'm trying to figure this out before my cert expires, so any help would be greatly appreciated.

I've been struggling to solve the same issue this afternoon. I have a similar setup, with a single "redirect" application that points from HTTP -> HTTPS sites.
For some reason, the HTTP request to the challenge file is not getting redirected to the HTTPS site, only returning 404 not found.
It seems to be bypassing the .htaccess file, and I'm starting to think that maybe WebFaction is handling the route .well-known/acme-challenge differently.
Hopefully we can figure out a solution - I'll keep exploring to see what can be done.

Aha, I see, it was an issue caused by the "nginx config in place for lets encrypt". That makes sense why it was ignoring the .htaccess. Bit of a pain to do this step for all sites, but I suppose it's only necessary once per site.
Thank you very much for the info.

I had this problem, but did not understand what you meant by "a new symbolic link application". I ended up following the instructions here and the renewal now works. The rewrite section of my .htaccess now looks like this:
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


Simplify project root detection in tutorial test

The project source code detection in the tutorial test was using gix to detect root of the rust project by looking for the .git directory.
As far as I can tell this is unnecessary since rust tests are always executed from the project root. So the working path should already be the correct directory.
Even if the tests were somehow manually executed from a different path I don't think the existing code would have worked since it was joining current working directory with crate::parent_directory!() which would be the relative path of the directory in which our code file is located. That would be incorrect for any other working directory.
This assumption might not work in a cargo workspace but I think that this code would already not work in a workspace and this project isn't using a workspace right now.
Simplifying this code also allows us to remove the dependency on on gix. Since this is a dev dependancy change there should be no need for a version bump

Seems like the tests pass! Just beware that you now have a clippy error in ci
Also I think this code used to be in there to make cargo test executable in subdirectories / crates

@DavidWHelsing please go ahead!! Im happy to accept whatever changes improve code quality while keeping the test passing 😊


🏹Ranged Combat

Idea from playing City of the Damned - ranged attacks have a base accuracy. Accuracy is reduced by 5% for each tile between shooter and target.


[Misc] SpecDecodeWorker supports profiling

SpecDecodeWorker supports profiling by reusing the profiler of the Worker class.

Please fix DCO by signing off all your commits.

Please fix DCO by signing off all your commits.

Thank you for your reply! DCO has been fixed.

Please fix DCO by signing off all your commits.

Thank you for your reply! DCO has been fixed.

Please fix DCO by signing off all your commits.

Thank you for your reply! DCO has been fixed.


howto compile libchromiumcontent 3.0.0 electron

Hi,
I want to modify a part of chromium src and I want to use it in electron.
could you tell me the steps that I have to follow to create a new electron distribution?
Thank you
Angelo

https://github.com/electron/electron/blob/3-0-x/docs/development/build-system-overview.md, though the build system for Electron 4.0.x will be very different (see https://github.com/electron/electron/blob/master/docs/development/build-instructions-gn.md)

My problem is how to modify libchromiumcontent.
I followed the guide in libchromiumcontent repo, but it is no right.
Il giorno gio 20 set 2018 alle ore 19:12 Jeremy Apthorp <
<EMAIL_ADDRESS>ha scritto:

https://github.com/electron/electron/blob/3-0-x/docs/development/build-system-overview.md,
though the build system for Electron 4.0.x will be very different (see
https://github.com/electron/electron/blob/master/docs/development/build-instructions-gn.md
)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/electron/libchromiumcontent/issues/687#issuecomment-423262026,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFpk63peoXQNc1FQa_YpygmxMI4pQwO9ks5uc8yQgaJpZM4Wyi1B
.

If you pass --build_debug_libcc to bootstrap.py, you'll build a local copy of libchromiumcontent under vendor/ that you should be able to modify and rebuild by re-bootstrapping. ./script/bootstrap.py -v --build_debug_libcc

Hi,
when I bootstrap in this way, is it compiled?
thank you very much for your help

yes, that command will fetch and compile libcc on your machine.


GitHub Pages

Originally used to test if build works (with on: pull request)
Builds correctly, now need to check if deploys from main branch (on push to main).
Should close #6  if works correctly

Nice. The demo works on GitHub pages now.


Remove y-axis label from score histogram

Current behavior
Both axes are labeled "Person's Peer Score"

Expected/desired behavior
Histograms don't need y-axis label, although we should say how many/which questions are factored in here (is it most recent 42 questions?) -- add that as a note under the graph.

fixed - closing

(is it most recent 42 questions?) -- add that as a note under the graph.
this was a placeholder number for a while before actually calculating anything, so it has no bearing
I think "Count" should suffice along with the context of it being a "Histogram".
Feel free to request tweaks, but id recommend doing so in another ticket with "simple" and "low priority" labels

@lsabor sounds good to me, although let me make sure I understand -- the histogram does use all the questions a user's forecasted on now, not like a most recent window?


Minor, selecting a function  in symbol tree, not focusing reliably

Set a  function label....
Scroll thru some code.
Select the function label in "symbol tree"
Listing then homes to the function
Scroll tru some more code, select  function label (double click it's highlight)
listing window will not home, it will not home to function
Fix
deselect symbol tree  label,  by selecting another symbol tree label, then re-select  old symbol tree label.
Seems the trigger is tied to the wrong event?  focus not mouseclicked?

This sounds like the same issue as described here https://github.com/NationalSecurityAgency/ghidra/issues/453.

The fix for #453 will address this ticket.


Scaling = two frame instances

Scaled the main bar down to 90% and then went to move it a little and behind it was a second frame. I see two instances of Merc running. Will try to duplicate the issue and get back to you

i think u just open 2 MercuryTrade)

yeh, has not happened again, so must likely one was already in the 'hidden icons' taskbar and I didn't notice. So closing this 👍


Implement proof of concept for using virtual threads (project Loom) in Indexer

We have a few places, where we perform indexing concurrently. At present, we use async http client and regular JVM threads. In this task we could implement POC with Loom-threads. If it decrease indexing time, we can use virtual threads.
definition of done: Indexer uses virtual threads instead of regular threads, and all tests are passed.
This task depends on https://github.com/Hixon10/openjdk-mailing-lists-search/issues/7

This task is blocked by gradle 7.6 release. Current version of gradle doesn't support java 19, which is needed for Loom.
https://github.com/gradle/gradle/issues/20372#issuecomment-1255140438


removed text from toolbar buttons

trello ticket

Airplane icon is really nice.

Coverage remained the same at 86.331% when pulling cf3ec239f5a53ff2be96787e6a604e69dc53bcaf on no-text-hans into 80c9afbc1faf911e4123f8c9fc2d13900a9d503b on master.

David's making an update to the eye icon

Coverage increased (+0.04%) to 86.367% when pulling b48b46b9a9c399f694a19831e6ca805a9b71b198 on no-text-hans into 80c9afbc1faf911e4123f8c9fc2d13900a9d503b on master.

👍


Fix storing storage engine tick for truncate operation (3.7)

Backporting fix for internal issue #742 to 3.7
https://jenkins.arangodb.biz/view/PR/job/arangodb-matrix-pr/11556/

Tests blue


Add ability to specify a folder for session files

Addresses https://github.com/mtxr/vscode-sqltools/issues/497
Adds the ability to specify a folder for session files to be saved in when hitting Ctrl-S vs the root of the repo.

Thank you for your contribution!
Before submitting this PR, please make sure:

[X] Your code builds clean without any errors or warnings
[X] You have made the needed changes to the docs
[X] You have wrote a description of what is the purpose of this pull request above

Hrm, I think the checks are failing because I'm not assigned to the issue maybe?

Great job @Fmstrat !
Thanks!

@mtxr Thanks for the merge! Any idea when v0.22 will hit release?

Still working on it. You can check branch lazy-tree, but basically just
postgres driver is up to date. I'm using with to develop all features
before spread to other drivers.
That branch we have a lot of enhancements to explorer, completions are
working pretty well and there are a lot of other improvements too.
But no release date yet. After this release I hope we can get fast releases
back again because the project will be better prepared for contributions.
Funny thing... there will be no v0.22, we will jump to v1.0.x :D
On Thu, Apr 9, 2020 at 9:51 AM Ben Curtis<EMAIL_ADDRESS>wrote:

@mtxr https://github.com/mtxr Thanks for the merge! Any idea when v0.22
will hit release?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mtxr/vscode-sqltools/pull/498#issuecomment-611510513,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFMX2MLD5AMO74A5URJXZDRLXAG5ANCNFSM4KQMA36Q
.


Disable Vulkan-SPIRV build for macOS

I discovered that the default macOS build, with Vulkan disabled didn't disable Vulkan-SPIRV and thus failed to build.
This PR aligns disabling Vulkan in both places, making the macOS build work again.
PS! What would it take to get a macOS CI node set up? At least a non-blocking build would be nice.

We do have twice daily release builds on macos. Most of the patches I've made to keep Macos running have come from that: https://github.com/google/iree/actions/runs/953246458
We could probably setup a more frequent build of the runtime (the compiler takes a long time to build).

What are the build errors? We should be able to compile for vulkan+spirv on macOS even if we can't use the vulkan runtime there (natively, moltenvk may work).

Thanks Stella!
This build error comes from the samples, which aren't built by the macOS CI:
CMake Error at build_tools/cmake/iree_cc_binary.cmake:67 (add_executable):
  Target "iree_samples_simple_embedding_simple_embedding_vulkan" links to
  target "iree::hal::vulkan::registration" but the target was not found.

I haven't yet tried turning on Vulkan building on Mac, but since it's turned off as default, we should turn if off as default for the samples as well. That's what this PR does.
Once day, I'll get to the Vulkan parts, just want to be able to consistently build the beast first ;)

Thanks Stella!
This build error comes from the samples, which aren't built by the macOS CI:
CMake Error at build_tools/cmake/iree_cc_binary.cmake:67 (add_executable):
  Target "iree_samples_simple_embedding_simple_embedding_vulkan" links to
  target "iree::hal::vulkan::registration" but the target was not found.

Ah, I was wondering if updating our vulkan deps in https://github.com/google/iree/pull/6209 caused a regression on macos.
This check is wrong, regressed in https://github.com/google/iree/pull/6242: https://github.com/google/iree/blob/b9b794ba46065471c0e2b83548e495c7602fc2c4/iree/samples/simple_embedding/CMakeLists.txt#L119
it should be checking for IREE_TARGET_BACKEND_VULKAN-SPIRV and IREE_HAL_DRIVER_VULKAN. Same for the dylib check. So on macOS, the runtime driver won't be built but the compiler target will be. Since one of those will be disabled, the sample here will be skipped correctly.
(I can help with this on Monday if that isn't clear enough)


Give 1 minute grace period for aircraft after takeoff

As the title says.  For 1 minute after giving the takeoff order aircraft aren't checked for proximity separation issues.
@erikquinn, should it be 1 minute from rotation or is 1 minute from the takeoff good enough?

I don't feel like opening up the 65... lol but I'm fairly certain it's within 1 min after takeoff that they have to be established on those 15* diverging headings. So I'd say from beginning of the takeoff roll.
Now would this apparent 60s invincibility period mean that two aircraft departing simultaneously toward the intersection of their two runways (illegal) would NOT trigger a CA? Or is that logic separate from the "proximity separation" you mentioned?

Excellent, it's coded as 1 minute from the beginning of the takeoff roll, I figured for our purposes it probably wasn't going to matter too much anyway.
The 60s period won't give invincibility for intersecting runway issues.  My thinking is that it only applies to airborne aircraft.  The intersecting and same runway separation issues need to apply regardless of the aircraft being airborne, however it remains to be written.
As it is right now, there are no conflict alerts of any kind below 990 feet MSL.  My intention is to drop it down to 200 feet AGL as a rough radar horizon effect and then let this grace period and the diverging heading patch handle airborne stuff.


fix default timestamp format in Adaptive Expressions

default timestamp format  now is 'YYYY-MM-DDTHH:mm:ss.SSS[Z]', which can produce the correct formatted results for the datetime related functions

Pull Request Test Coverage Report for Build 135003

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 80.356%

Totals

Change from base Build 134496:
0.07%

Covered Lines:
12710

Relevant Lines:
15104

💛  - Coveralls


Only accept valid UInt32/64 values in GraphQL

This PR prevents us from accepting any string that does not roundtrip with (to_string (of_string s) = s). This may seem overstrict, but the unsigned parsers do unexpected things (see the code comment) and it's safer to fail explicitly than misinterpret the user.
Checklist:

[ ] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[ ] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[ ] All tests pass (CI will check this if you didn't)
[ ] Serialized types are in stable-versioned modules
[ ] Does this close issues? List them:

Closes #8527

Awesome! Would you mind using failwith with a nice(r) message than the assertion failure? Crashing seems fine

The try ... with _ -> ... already returns the nice-ish error message that we had previously if there's an exception (and we just swallow the exception). Is that good enough?

!approved-for-mainnet


LUCENE-10000: Make MultiCollectorManager consistent with MultiCollector

Description
MultiCollectorManager is now consistent with MultiCollector with respect to early termination, min score setting and score caching.
Solution
MultiCollectorManager delegates to MultiCollector instead of creating its own solution for wrapping/managing multiple Collectors.
Tests
Created unit tests for MultiCollectorManager (none previously existed). Tests cover various scenarios that are similarly covered in MultiCollector.
Checklist
Please review the following and check all that apply:

[x] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[x] I have created a Jira issue and added the issue ID to my pull request title.
[x] I have given Lucene maintainers access to contribute to my PR branch. (optional but recommended)
[x] I have developed this patch against the main branch.
[x] I have run ./gradlew check.
[x] I have added tests for my changes.

Thanks for fixing this!

Sure. Thanks for the feedback!


Fix regression in CompositeByteBuf.discard*ReadBytes()

Motivation:
1f93bd3 introduced a regression that could lead to not have the lastAccessed field correctly null'ed out when the endOffset of the internal Component == CompositeByteBuf.readerIndex()
Modifications:

Correctly null out the lastAccessed field in any case
Add unit tests

Result:
Fixes regression in CompositeByteBuf.discard*ReadBytes()

I think I will cut another release quickly after this is merged.

@njhill dont worry... Shit happens. I did review the change and did not spot it as well

@normanmaurer 4.1.36.Final coming soon?

Yes mid next week


Better browse capabilities

I often want to popular browse images from providers, but can't.
It would be great to be able to browse (and analytics back me up on this – on the old interface, many users submitted empty strings to be able to browse).
This is particularly helpful for huge art collections, like the Met.

Duplicate of #168, closing.


How do I get an SSL with the autoinstaller?

Hey guys,
I love BookStack, but I just couldn't make it work on the SSL mode.
I installed BookStack via the official script for auto-installing it. So it runs on Apache. When I edited 000-default.conf to the bookstack location it still displayed the same Apache2 Ubuntu Default Page.
We're running it on Ubuntu 18.04 and we have the Cloudflare SSL.
Any idea how to edit it in the bookstack.conf, I've tried
`Listen 443 http
Listen 80
NameVirtualHost *:80
NameVirtualHost *:443
ServerName *:80
<VirtualHost *:443>
ServerName docs.mni.me
ServerAdmin webmaster@localhost
DocumentRoot /var/www/bookstack/public/
SSLEngine on
SSLCertificateFile /Users/myusername/certs/server.crt
SSLCertificateKeyFile /Users/myusername/certs/server.key
<VirtualHost *:80>
SSLEngine off
ServerName docs.mni.me
ServerAdmin webmaster@localhost
DocumentRoot /var/www/bookstack/public/
`
But, then I cannot start the apache server. Any tips on how to enable SSL?
Thanks and cheers,
Nedim!

Hi @Nedimko123,
I'd expect your /etc/apache2/sites-available/bookstack.conf file to look something like this with HTTPS enabled:
<VirtualHost *:80>
    ServerName docs.mni.me
    RewriteEngine On
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
	ServerName docs.mni.me
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/bookstack/public/

    SSLEngine on
    SSLCertificateFile      /Users/myusername/certs/server.crt
    SSLCertificateKeyFile   /Users/myusername/certs/server.key

    <Directory /var/www/bookstack/public/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
        <IfModule mod_rewrite.c>
            <IfModule mod_negotiation.c>
                Options -MultiViews -Indexes
            </IfModule>
            RewriteEngine On
            # Handle Authorization Header
            RewriteCond %{HTTP:Authorization} .
            RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
            # Redirect Trailing Slashes If Not A Folder...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_URI} (.+)/$
            RewriteRule ^ %1 [L,R=301]
            # Handle Front Controller...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^ index.php [L]
        </IfModule>
    </Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Note, I haven't tested the above though but i've just taken the original script config and tweaked to the bare minimum I thought would be needed for HTTPS. Not really sure if the cloudflare layer causes complications.
On your server you can use the following command to check the apache config once set:
sudo apachectl configtest

That should report any syntax errors. If you've editing the 000-default.conf file and added a custom ServerName you'll need to revert that otherwise the VirtualHosts will conflict (bookstack.conf should be the only file with ServerName docs.mni.me).
Let me know if that helps.

@ssddanbrown Thanks a lot, mate. That file location was the only thing I couldn't get right.
So if anybody in the future needs help, here is what I did:
-Got an SSL certificate form let's encrypt (sudo add-apt-repository ppa:certbot/certbot, sudo apt install python-certbot-apache ,sudo certbot --apache -d example.com)
-Used the code provided here.
-Restarted Apache (/etc/init.d/apache2 restart, /etc/init.d/apache2 start)
-Working as charm
Thanks again and cheers 👍 ,
Nedim!

@Nedimko123 Awesome, Happy to hear you got SSL working! Thanks for confirming and posting what you did for others. Will therefore close this.

NOTE: after using certbot to install the certs and modify the config, I had to move the 2 rewrite rules into the Directory block, above the last two bookstack RewriteRules.
The resulting section looks like this:
            RewriteEngine On

            # Handle Authorization Header
            RewriteCond %{HTTP:Authorization} .
            RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

            # redirect to https (added by certbot and moved here by me)
            RewriteCond %{SERVER_NAME} =docs.mydomain.com
            RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

            # Redirect Trailing Slashes If Not A Folder...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_URI} (.+)/$
            RewriteRule ^ %1 [L,R=301]

            # Handle Front Controller...
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^ index.php [L]


atac: 0.11.3 -> 0.12.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Julien-cpsn/ATAC/releases.
meta.description for atac is: A simple API client (postman like) in your terminal
meta.homepage for atac is: https://github.com/Julien-cpsn/ATAC
Updates performed

Rust version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.12.0 with grep in /nix/store/whrmcmx6v1fg51palalfv6wmqyvzjxi4-atac-0.12.0
found 0.12.0 in filename of file in /nix/store/whrmcmx6v1fg51palalfv6wmqyvzjxi4-atac-0.12.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
atac

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/whrmcmx6v1fg51palalfv6wmqyvzjxi4-atac-0.12.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A atac https://github.com/r-ryantm/nixpkgs/archive/5430291c3996159bdb1488f78dd5474a90693960.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/5430291c3996159bdb1488f78dd5474a90693960#atac

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/whrmcmx6v1fg51palalfv6wmqyvzjxi4-atac-0.12.0
ls -la /nix/store/whrmcmx6v1fg51palalfv6wmqyvzjxi4-atac-0.12.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

atac

Maintainer pings
cc @vinnymeller for testing.

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

1 package built:

atac

@matthiasbeyer thanks man!
Do you want to be the atac nix packager?

I can be... I don't use the package, but yeah I can maintain the package.

As you wish man, no pressure!
If you don't feel like, no wories it's all ok


[feature request] - VPC Attachment Appliance mode is not supported yet in this module

Please add a Appliance Mode Support of TGW VPC Attachments on this module.
"DnsSupport": "enable"|"disable",
"Ipv6Support": "enable"|"disable",
"ApplianceModeSupport": "enable"|"disable"
Reference: https://docs.aws.amazon.com/cli/latest/reference/ec2/create-transit-gateway-vpc-attachment.html

release v2.2.0 should close this issue :)


Remove webui provider for "consul_installation" resource

It was discussed in https://github.com/johnbellone/consul-cookbook/pull/358.
Starting since Consul 0.6.1 (released on January 6, 2016), there is a built-in WebUI support available.
So, there is no need to deploy a standalone webui binary anymore. Instead, just install a consul agent using "consul_install" with webui config option set to true:
node.default['consul']['config']['ui'] = true

NB! This PR introduces breaking changes. It is recommended to merge it alongside with the major version bump.

Current coverage is 74.85% (diff: 100%)

No coverage report found for master at 3e123c2.

Powered by Codecov. Last update 3e123c2...35cb6ec


documentation missing mandatory id field

Hi, just a small issue -- the readme.md docs are missing the mandatory 'id' field of K8sWatchConfig in the below example.
I wasn't sure if id was user-selectable, or if I had to put something specific in there (maybe a class, or a specific schema for the ID, or the result of a lookup).
import json
from k8swatcher import K8sWatchConfig, K8sWatcher, K8sWatchEvent

watch_config = K8sWatchConfig(**{ \
                    "namespace": "my-namespace", \
                    "kind": "Pod", \
                    "sdk_client_class_name": "CoreV1Api", \
                    "sdk_list_function_name": "list_namespaced_pod", \
                    "field_selector": None, \
                    "label_selector": "mylabel=x,myotherlabel=y",
                    "include_k8s_objects": True
                })

k8s_watcher = K8sWatcher(watch_config).watcher()

for event in k8s_watcher:
    print(json.dumps(event.dict(),default=str,indent=2))

thanks! please submit a PR if you have time, I'm pressed for time to fix things like this ATM.


MacOS Inventory hovering issue when switching screens.

For context I'm running on MacOS M1 on 1.20.1.
When I first used the mod, I was plugged into and mirroring onto an external display, which I believe changes the aspect ratio of my display. When running on the external monitor everything worked perfectly, however when running on the built in display without the monitor, hovering over items does not give the highlight and popup correctly. The highlight spot seems to be offset from the cursor, however the cursor can click as usual. I've attached a screenshot.

Notice the cursor hovering near the search bar in the crafting menu, but the netherrack in the inventory being highlighted.

I have this exact same issue and I'm hoping there's an easy way to solve it because I love using my controller with my laptop.


Update README.adoc

@Shredder121 Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


settings: Improve keyboard navigation.

This series of commits starts by cleaning up some of our internals related to the left-side panel menus in our settings modal.  And then it makes it possible to navigate through the various panels with the arrow keys.

A few thoughts:

The CI failure is a linter issue.
There's one bug I found testing this, which is that if you reload http://localhost:9991/#settings/notifications several times, you'll see at least half the time a very visible delay between when the "Account settings" gets selected initially and the on-hashchange handler moves it to notification settings.  Not sure whether this is new.
Should we rename it to settings_panel_menu.js?  We namespace everything else that's for the settings subsystem that way.
I feel like it's a bit regrettable that we don't have tabindex setup correctly for tabbing around between settings on the right side panel but but it's probably a lot of work to fix so we might not want to do that now.  Worth playing around with whether there's something easy we're missing though, like settings_checkbox.handlebars should have a tabindex setting.  @shubhamdhama maybe you want to play with this?

@timabbott I played a lot with this and this is working great, and yeah I can reproduce the selecting of "Your account" first on page load.
I also took a deep look at our DOM tree that why tabs don't work and it's hard to do it "right html way" without refactoring a lot. And sure I'll add the tabindex for checkbox in a PR.

I confirmed the bug I noticed isn't new, so we should split that out to its own issue; can you open it @shubhamdhama?
Given that, @showell, I think this is good to merge after we fix the linter thing and rename panel_menu.js.

I re-pushed the branch to fix the linter error and rename panel_menu -> settings_panel_menu.

Merged, thanks @showell!


Support "User defined coercion" rules

Is your feature request related to a problem or challenge?
DataFusion automatically "coerces" (see docs here) input argument types to match the types required of operations or functions.
For functions, this is described by a desired TypeSignature
pub enum TypeSignature {
    Variadic(Vec<DataType>),
    VariadicEqual,
    VariadicAny,
    Uniform(usize, Vec<DataType>),
    Exact(Vec<DataType>),
    Any(usize),
    OneOf(Vec<TypeSignature>),
    ArraySignature(ArrayFunctionSignature),
}

However, some functions have special hard coded coercion logic such as sum and count (TODO link) as well as some Array functions like make_array. We started down the path of encoding the special array semantics into TypeSignature (see ArrayFunctionSignature))
However, as we continue to find other examples of different desired rules (most recently in sum and count), TypeSignature will grow and become more and more specialized
Describe the solution you'd like
@jayzhan211  had a great suggestion https://github.com/apache/datafusion/pull/10268#discussion_r1593511241 that in addition to encoding common coercion behaviors in TypeSignature, we can also add a variant of TypeSignature that permits user defined coercion rules
Describe alternatives you've considered
No response
Additional context
No response

I found that to have coerce_types for both scalarUDF and aggregateUDF, I would need to introduce a more general trait for both function
impl UDFImpl for T {
    fn name(&self) -> &str {
       &self.name
    }

    fn coerce_types(&self, data_types: &[DataType]) -> Result<Vec<DataType>> {
        not_impl_err!("Function {} does not implement coerce_types", self.name)
    }
}

impl ScalarUDFImpl: UDFImpl for T
impl AggregateUDFImpl: UDFImpl for T

Then we can have
fn coerce_arguments_for_signature(
    expressions: Vec<Expr>,
    schema: &DFSchema,
    signature: &Signature,
    func: Arc<dyn UDFImpl>,
) -> Result<Vec<Expr>> {}

Another alternative is having a duplicate function for scalar and aggregate for a related function
fn coerce_arguments_for_signature(
    expressions: Vec<Expr>,
    schema: &DFSchema,
    signature: &Signature,
    func: &ScalarUDF,
) -> Result<Vec<Expr>> {}

fn coerce_arguments_for_signature(
    expressions: Vec<Expr>,
    schema: &DFSchema,
    signature: &Signature,
    func: &AggregateUDF,
) -> Result<Vec<Expr>> {}

I think the first option is potentially beneficial in the long run(?)
@alamb what do you think?


fix(source): Fix numberValue and booleanValue for TextReader

Calling next() on a text reader consumes _value_type into _curr and resets _value_type to
ERROR.  Changed numberValue() and booleanValue() to check this._curr instead.

Relevant parser code: https://github.com/amzn/ion-js/blob/4eac4687aec37eb5848cabeac065b38e8a6653b5/src/IonParserTextRaw.ts#L1349


inputRule: Use values returned by yup.validate as resolver arguments

Hi, is there any way to use the values returned from yup.validate.
I need the values transformed by yup (like .lowercase()) as my resolver args.
schema.validate({ name: 'UPPERCASE', age: 24 }).then(function(value) {
  value; // => { name: 'uppercase', age: 24 }
});

I searched the source code and it seems the returned values are ignored.
https://github.com/maticzav/graphql-shield/blob/c3d5f36381148df5971d103adc12112f0816317b/src/rules.ts#L209-L219

[ ✅] I have checked other questions and found none that matches mine.

+1

In case someone has the same issue, my temporary solution.
import * as Yup from 'yup'
import { Rule } from 'graphql-shield/dist/rules'
import { rule, shield, and, or, not, allow, deny } from 'graphql-shield'

class InputRule extends Rule {
  constructor (name, schema) {
    const validationFunction = (parent, args) => schema.validate(args)
      .then(values => {
        Object.assign(args, values)
        return true
      })
      .catch(error => error)
    super(name, validationFunction, { cache: 'strict', fragment: undefined })
  }
}

function inputRule (name, schema) {
  if (typeof name === 'string') {
    return new InputRule(name, schema(Yup))
  } else {
    return new InputRule(Math.random().toString(), name(Yup))
  }
}

// Then you can use the inputRule function

shield({
  Query: {
    users: inputRule(yup => yup.object({
      first: yup.number().integer().min(1).max(100).required(),
      after: yup.number().integer().min(0).max(20000),
    })),
  }
})

We'll address this with the addition of effect rule. Will follow up with more specific information. #547


Fix CheckQuests hang up bug

Oftentimes the manipulator hangs when running CheckQuests. This always occurs at the first page before moving to the second page.

Fixed by d0343e7c67c76cba01b89a2df732451d8ab6676d.
This also removed a future possibility of race condition due to interleaved tasks.


[BEAM-48] Implement BigQueryIO.Read as Soure

@peihe should I assume you want R: @dhalperi for this?

rebased

Looks pretty good to me, though I think that more functionality could be moved into the Services.
I'll be back Monday for further review.
Thanks Pei!

(reword PR and commit to "source" from "soure")

Hi @peihe -- yesterday you asked me to hold off on review, so checking in. Please do comment when tests are passing and it's ready for a second look.
Thanks!

Addressed all comments. PTAL

Addressed all comments. PTAL

Does not compile.

PTAL

LGTM and merged

Next steps:

backport to Dataflow.
write an end-to-end test and get it working here!


Implement the PostMessage Bridge in the IDM Wallet

Description
Implement the PostMessage Bridge in the IDM Wallet. This requires defining the Bridge messages in the spec.
Acceptance Criteria

[x] Ability to call RPC alike methods
[x] Ability to receive generic events/messages and react to them
[ ] Define the necessary messages in the spec

Repo: https://github.com/ipfs-shipyard/js-idm-bridge-postmsg


Sanitize loops

Esp. using jit recognised for (var i; i < a.length; i++) for bounds check elimination.
Replaces #299

Hi @benaadams, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

Thanks!


Added WhiteHat Application Security Platform

WhiteHat Security has updated their offer at the start of the year. According to their run of the OWASP benchmark, they are awesome (https://www.whitehatsec.com/blog/benchmarking-accuracy-automated-appsec-testing/). Therefore I believe they should be added to the awesome list.

That looks like a great addition. Thank you!


Ki map

Purpose/implementation Section
What changes are being implemented in this Pull Request?
Embedding a sampling map
What was your approach?
Using knitr::include_url() to embed
What GitHub issue does your pull request address?
Issue #7

@ehumph @avahoffman new commit uses iframe and the embed this map url from google maps. It also renders on my local copy


Remove unused NoCombinationClause type

New compiler warnings seem to indicate that this wasn't used.
Instead the CombinationClause type holds both right hand side and left side of combinations, and implements Query directly.

Ah that error seems wrong:
User is constructed here: https://github.com/Ten0/diesel/blob/c7ab84fc71fc637cb0cbd1f93e5730bcae6eb189/examples/postgres/all_about_inserts/src/lib.rs#L273

I'm not sure what's going on with the compile tests update for you. It doesn't produce that output locally for me. I just pushed the changes produced locally, hopefully that is also what the CI produces.
I also fixed the new clippy warnings + bumped the toolchain version to 1.80

Thanks a lot!


 An upgrade to Go 1.19 can be done later in conjunction with any gofmt changes introduced by it (there were minor formatting changes introduced in 1.19).
Go runtime version updates are shipped in minor releases per the README.md.

Ready for review now.


Export for type Prim.RowList.Cons conflicts with type class Prim.Row.Cons

From a fresh install of PureScript + Halogen, I can't build the projet with pulp build (I took the code from the /examples/basic repo):
Error found:
in module Type.Row
at bower_components/purescript-typelevel-prelude/src/Type/Row.purs:4:5 - 4:24 (line 4, column 5 - line 4, column 24)

  Export for type Prim.RowList.Cons conflicts with type class Prim.Row.Cons```

I tried with v4 and v5 of Halogen, same error.
bower.json:
{
  "name": "purescript",
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "output"
  ],
  "dependencies": {
    "purescript-prelude": "^4.1.1",
    "purescript-console": "^4.2.0",
    "purescript-effect": "^2.0.1"
  },
  "devDependencies": {
    "purescript-psci-support": "^4.0.0"
  }
}

versions:
bower 1.8.8
pulp 13.0.0
purs 0.13.4

This does happen with v4, but v5 should definitely work.
Did you rm -rf bower_components before changing to it? If not, I imagine you would have been asked to resolve a bunch of stuff by bower, as you've ended up with an old version of purescript-typelevel-prelude for this error to be occurring.

Yes, I tried first with the v5, then v4. I will try again and let you know. Strange thing, when I clone the purescript repo and build the basic, it works :(

I realised that the version set in the README is not up-to-date. I tried with the v5.0.0-rc.7 of halogen and it works :)

Glad to hear it!


mysql_pubkey.asc is moved to files from files/default without updating attribute file

This is done by this commit:
https://github.com/chef-cookbooks/yum-mysql-community/commit/b119dedcb8b487aa5c0fa9fcb760b5e48e7041d0#diff-a8e27ca6e9ac5ee1e9258effd3c1dd90

This causes failure when install mysql from this cookbook.

@sosomagic Can you show me exactly what attribute is failing due to this move. I can't see how this could be causing failures unless you're on Chef 11.

@tas50 In attributes/mysql57-community.rb, you were using
"-default['yum']['mysql57-community']['gpgkey'] = 'https://raw.githubusercontent.com/chef-cookbooks/yum-mysql-community/master/files/default/mysql_pubkey.asc'"
If people are using an older version of your cookbook, they have this gpgkey added in the yum repo file. So when chef install mysql, it will try to get the key from this url, which actually has been moved.
Even if you guys updated the gpgkey now, it still breaks the backward compatibility.


Always encounter 401 Unauthorized error message when validating ingress routing based on JWT claims

Bug Description
I followed the documentation here, and I still encountered the 401 Unauthorized Error even after I set the TOKEN_GROUP based on the doc.
And the outputs, including the error message, are below:
$ TOKEN_GROUP=$(curl https://raw.githubusercontent.com/istio/istio/release-1.17/security/tools/jwt/samples/groups-scope.jwt -s) && echo "$TOKEN_GROUP" | cut -d '.' -f2 - | base64 --decode -
$ {"exp":4685989700,"foo":"bar","iat":1532389700,"iss":"testing<EMAIL_ADDRESS>$ curl -s -I "http://$INGRESS_HOST:$INGRESS_PORT/headers" -H "Authorization: Bearer $TOKEN_GROUP"
HTTP/1.1 401 Unauthorized
www-authenticate: Bearer realm="http://<IP_ADDRESS>:32063/headers", error="invalid_token"
content-length: 50
content-type: text/plain
date: Mon, 24 Apr 2023 10:52:36 GMT
server: istio-envoy

Similar error message when checking end-user authentication based on [doc](End-user authentication). Moreover, I doubt that there may be the same error for request authentication policy that requires end-user JWT for the ingress gateway.
Version
$ istioctl version
client version: 1.17.2
control plane version: 1.17.2
data plane version: 1.17.2 (2 proxies)

$ kubectl version --short
Client Version: v1.24.0
Kustomize Version: v4.5.4
Server Version: v1.24.0

Additional Information
No response
Affected product area

[ ] Ambient
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[X] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Control Plane Revisions

can you share the spec of ReqAuth policies which you applied. And, please check the Istiod logs as well.

Hi @aryan16, I followed the doc and no any extra or custom activity. You may reproduce it easily by following the doc.

I followed the doc and it works well for me.

@zhlsunshine we have e2e tests successfully running for this feature as well. Please double check your configs, there should be something wrong with that.
e2e tests - https://github.com/istio/istio/blob/master/tests/integration/pilot/common/routing.go#L3283

Hi @aryan16, I am still focusing on reproducing this bug, I will close this issue if it's okay. thanks!


⚠ GitLab Server has degraded performance

In cb0b970, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 13466 ms

Resolved: GitLab Server performance has improved in 7a75c6e.


implement vulnerability handling process

As per @jetwhiz 's comment https://github.com/keylime/python-keylime/pull/47#pullrequestreview-201399617 , let's get started forming an approach to vulnerability management.
initially I think we should get something simple in place as we are still a young project, over time we can increase the scope.
I quickly dumped down the following points for discussion. In time I will port this into some markdown and we can have a final review when its put into a PR.
To start I recommend:

Include a 'How to report a security vulnerability in Keylime' section on the README.md
Create a<EMAIL_ADDRESS>email, with just core team members able to see this. This is the contact point for security researchers reporting an issue.
Core team member creates a private discussion in the core team area. They include all of the information provided by the researcher.
The reported issue is triaged (is it invalid, reproducible).
If [4] is confirmed, a core member requests a CVE number.
Patch is proposed and reviewed using .patch diff file in the team area discussion at point [3]
If applicable, installers (ansible, installer.sh) are evaluated for patching to address the issue and patches proposed in the team discussion.
Patch is applied to master, and backported to previous releases. This should happen during the days (Monday to Thursday) to allow users time to make the change.
A new release is cut on github (using semver x.x.<incremented number>).
Notifications are sent to the following (using an email template that we will have)

<EMAIL_ADDRESS><EMAIL_ADDRESS>

I wonder if we should just put some brief details up on the readme for now, until the above is finalised into a nice process flow?.............
Report a Security Vulnerability
Please contact us directly at<EMAIL_ADDRESS>for any bug that might impact the security of this project.

I wonder if we should just put some brief details up on the readme for now, until the above is finalised into a nice process flow?.............
Report a Security Vulnerability
Please contact us directly at<EMAIL_ADDRESS>for any bug that might impact the security of this project. Do not use a github issue to report any potential security bugs.

I think that's a good idea, at least so we have a temporary/simple policy in-place about how to report security bugs found.


Use config.redirect_url in deny_access matcher

The deny_access matched currently uses the hard coded path / for the
singed_in? case, but this does not match the implementation of the
deny_access helper, which uses url_after_denied_access_when_signed_in which
in turn uses the Clearance.configuration.redirect_url.
This change updates the deny_access matcher to also use the redirect_url.

Good catch. I'll cut a release with this shortly.


feat: CEL Validation for NodeClaim Requirement

Fixes #N/A
Description

Adding CEL validation in the effort of moving away from webhook validation.
https://github.com/aws/karpenter-core/issues/103

How was this change tested?

make test

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
31 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-0.2%) to 82.015%

Files with Coverage Reduction
New Missed Lines
%

pkg/controllers/provisioning/scheduling/topologygroup.go
2
96.75%

pkg/scheduling/storageclass.go
2
81.82%

pkg/test/environment.go
5
91.25%

pkg/controllers/disruption/pdblimits.go
6
76.47%

pkg/apis/v1beta1/zz_generated.deepcopy.go
16
52.76%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
9148

Relevant Lines:
11154

💛  - Coveralls


[$2000] Chat considers * before the email as part of email and on right click, it says 'copy url to clipboard'

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the app
Open any report
Write star with email as one word and send (eg<EMAIL_ADDRESS>
Expected Result:
Star at the start should not be considered in the email (as it did on slack in point 3) and if we consider that as URL, it should not display 'mailto:' in the start
Actual Result:
Star is considered as part of email, on right click it does not recognize it as email (it says 'Copy URL to clipboad') but on hover, tooltip recognizes it as email (it adds mailto: in the beginning)
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.2.71-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/218639458-d9082834-a210-4358-8a23-4614bed8e250.mp4
https://user-images.githubusercontent.com/43996225/218639485-b7cf3243-9c17-4b9a-a34d-626e393568a3.mp4
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1676279719450929
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~013933b19a0b54f6f4
Upwork Job ID:<PHONE_NUMBER>537734144
Last Price Increase: 2023-02-21

Triggered auto assignment to @NicMendonca (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

* isn't a RFC-compliant character, so wouldn't be part of an email, so agree we shouldn't "mail-to" that email:

Job added to Upwork: https://www.upwork.com/jobs/~013933b19a0b54f6f4

Current assignee @NicMendonca is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (External)

Triggered auto assignment to @jasperhuangg (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

The star being part of the email is syntactically valid. I think the expected behaviour should be changed to expect "Copy email to clipboard" on right click on<EMAIL_ADDRESS>

Proposal
Please re-state the problem that we are trying to solve in this issue.
Chat considers * before email as part of email but on right click it says 'copy url to clipboard'
What is the root cause of that problem?
In ExpensiMark.js we consider '*' as valid character for email - https://github.com/Expensify/expensify-common/blob/main/lib/ExpensiMark.js#L99
What changes do you think we should make in order to solve the problem?
We can remove the * from the valid list characters for email in the ExpensiMark.js regex - https://github.com/Expensify/expensify-common/blob/main/lib/ExpensiMark.js#L99
What alternative solutions did you explore? (Optional)
If we want to consider * as an valid email character and want to fix the 'Copy url to clipboard' to change to 'Copy email to clipboard', we have to update the regex here to consider * as a valid character - https://github.com/Expensify/App/blob/main/src/components/AnchorForCommentsOnly/BaseAnchorForCommentsOnly.js#L57
Optional: It seems we use different regex to check if the email is valid email during right click(https://github.com/Expensify/App/blob/main/src/components/AnchorForCommentsOnly/BaseAnchorForCommentsOnly.js#L57) when comparing to ExpensiMark.js regex(https://github.com/Expensify/expensify-common/blob/main/lib/ExpensiMark.js#L99) mentioned above. We can make both regex same to have consistent experience.

FYI @jasperhuangg  @NicMendonca  I'm adding the Upwork Automation label to this to beta test the flow that will be prompting contributors to store their Upwork details

@rushatgabhane @NicMendonca Heads-up. We have this issue https://github.com/Expensify/App/issues/14695 where we may actually consider emails starting with _*~ as invalid (if we do, this issue won't be reproducible no more)

📣 @s77rt! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01bf664eb454500566

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

@rushatgabhane I based it off research here

@NicMendonca, @rushatgabhane, @jasperhuangg Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

@s77rt Thanks for the link
It seems like the proposal in that issue will make it so that emails can't start with *. This will invalidate this issue.
Let's HOLD this issue on that one.

Still on hold - https://github.com/Expensify/App/issues/14695#issuecomment-1438885179

Still on HOLD for https://github.com/Expensify/App/issues/14695

Seems like the PR implementing https://github.com/Expensify/App/issues/14695#issuecomment-1438885179 has been deployed and this behavior remains.
So removing the HOLD. Looks like that PR only fixed the regex for when the * character is followed by another one on a separate line.

@jasperhuangg Not reproducible from my side. Can you please double-check?

@s77rt Perhaps I still had a cached version, will do

Ah yup, not reproducible, looks like we're all good here!

@NicMendonca Let's make sure to get @dhanashree-sawant paid out for the reporting bonus, but no further action is required here since it was solved by https://github.com/Expensify/App/pull/15393

@jasperhuangg This issue is not reproducible. But the inconsistency I noted in my proposal regarding different regex resulting in 'copy url to clipboard' being shown for emails, is still present.
https://github.com/Expensify/App/issues/15120#issuecomment-1429730289
For eg. if we send a message as<EMAIL_ADDRESS>it acts as mail on tooltip but on right click it says 'copy to clipboard'.
Do I need to create a separate issue on the expensify-bugs channel for that? Or should we use this issue.

@abdulrahuman5196 I think we can create a new issue for it, feel free to post it in #expensify-bugs.
I think your solution of making the regex consistent between both experiences makes sense.

Adding Awaiting Payment label to ensure @dhanashree-sawant gets paid out the reporting bonus, but this issue is considered solved.

@dhanashree-sawant can you please apply to this job so I can issue payment? Thanks! https://www.upwork.com/jobs/~013933b19a0b54f6f4

Hi @NicMendonca , thanks I have applied to the job.

Paid!


⚠ Bofrost.lu has degraded performance

In 7df5388, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1257 ms

Resolved: Bofrost.lu performance has improved in 63fb6cf.


Block: N1 Serbia HD

Channel ID
N1SerbiaHD.rs
Reference
https://github.com/iptv-org/iptv/issues/6486
Notes (optional)
No response

Already marked as blocked.

This is a seperate channel.


primordials

good
https://www.npmjs.com/package/unzipper

No description provided.

just the right amount of words need no more haha *primordials LOL


fix nil pointer panic when ads request node is nil

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: rshriram
If they are not already assigned, you can assign the PR to them by writing /assign @rshriram in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Hi @songrgg. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

I signed it!

/assign @rshriram

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: rshriram
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS [rshriram]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/ok-to-test

@songrgg: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
df6e7f40fb89823c5f866ede8772ba370ecdf5c3
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Compatibility with PHP7

The last released version does not build with PHP 7 RC3.
Is a new version for the driver planned for the PHP 7 final version ?
PHP7 is planned for november (https://wiki.php.net/todo/php70#timetable)

If you look at the code you'll see it's compatible with Zend Engine >= 5.3.3 and <= 5.6
We do plan to be compatible with PHP7, and hopefully in time for the 7.0.0 release.

Great news, thx.

Zend Engine >= 5.3.3 and <= 5.6

Do you mean Zend Engine 2

You got it. ZE3 is so different that trying to fit both ZE2 and ZE3 compatibility in the same extension is not spaghetti code, it's a pasta factory.

:smile: :+1:

Hi @rbotzer ,
I'm not able to compile 3.4.7 against php7, and you closed the issue.
Am I wrong ? :)
Regards,

ya, why was this closed?  php7 for aerospike client is the only thing standing between us and using aerospike.

This is a duplicate of #68, but I'll reopen this until we release the PHP7 compatible code.

Prefer updvotes and watches on #68 . Notice that's been updated to state we are working on it although we don't have a committed release date.
My personal benchmarks of PHP7 are pretty exciting. I'm looking forward to the release.

Thx !


Consider texture offset when rotating tiles

Fixes #3153

Just a warning, this PR may break the positioning of some tiles like the Platformer 2D's wall_deco (this is the only one I found in demos):

Before

After

These tiles will need to be repositioned.

I'll have a look at the demo.


[BUG] Install-AksHci or Initialize-AksHciNode should check/install RSAT-Clustering-PowerShell

Describe the bug
If you run Install-AksHCI, you it will fail because it tries to use Clustering posh. There is no check nor code, that would install rsat.
To Reproduce
Steps to reproduce the behavior:
Skip installing RSAT-Clustering-PowerShell and run install aks-hci
Expected behavior
There should be check in initialize-akshcinode, that validates readiness of hci nodes (such as RSAT-Clustering-PowerShell).
Screenshots
sorry, I already cleaned the lab. But if you want repro, just skip this step in wslab scenario
https://github.com/microsoft/WSLab/blob/462137922e0974b2c8d99ed9e4034b3362c674b8/Scenarios/AzSHCI and Kubernetes/Scenario.ps1#L96

will be fixed as part of October Release


New package: deSolveDiffEq v0.1.0

Registering package: deSolveDiffEq
Repository: https://github.com/JuliaDiffEq/deSolveDiffEq.jl
Created by: @ChrisRackauckas
Version: v0.1.0
Commit: e2cf28bf31e36ae22558736ef2afeb8bf3c33a1d
Reviewed by: @ChrisRackauckas
Reference: https://github.com/JuliaDiffEq/deSolveDiffEq.jl/issues/1#issuecomment-557929846

Needs an R installation so it won't build here.

Needs a retrigger to fix conflicts.


WSL2 can't open display

Environment
Windows build number: 10.0.19041.0
Your Distribution version: Ubuntu 20.04
Whether the issue is on WSL 2 and/or WSL 1: WSL2

Steps to reproduce

Install VcXSrv
Go to Windows Defender Firewall to enable all network connection for VcXSrv
Start VcXsrv with "Multiple windows", "Start no client", enable every option (including Disable access control)
run ip route to get ip of host os, which is default via <IP_ADDRESS> dev eth0
run DISPLAY=<IP_ADDRESS>:0.0 xeyes to test xserver

https://gist.github.com/peter-jerry-ye/725d6768fde7a5c37294ce9faf70bbb4

WSL logs:
Expected behavior

Xeyes being started
Actual behavior

Error: Can't open display: <IP_ADDRESS>:0.0 after a few seconds

Check which address your VcXSrv is listening, by hover the tray icon of VcXSrv, it could be hostname:x.0 and you should check x is 0

Check which address your VcXSrv is listening, by hover the tray icon of VcXSrv, it could be hostname:x.0 and you should check x is 0

It' s listening at "hostname:0.0", and with the ip adresse shown in ip route, it doesn't work.

Go to Windows Defender Firewall to enable all network connection for VcXSrv

Maybe that's not enough.  After that the first time you launch Vcxsvr make sure you Allow access for Private AND Public networks.

Go to Windows Defender Firewall to enable all network connection for VcXSrv

Maybe that's not enough.  After that the first time you launch Vcxsvr make sure you Allow access for Private AND Public networks.

It works! Thanks a lot.

@peter-jerry-ye works like a charm. thanks.

@peter-jerry-ye works like a charm. thanks.

Go to Windows Defender Firewall to enable all network connection for VcXSrv

Maybe that's not enough.  After that the first time you launch Vcxsvr make sure you Allow access for Private AND Public networks.

It works!

Go to Windows Defender Firewall to enable all network connection for VcXSrv

Maybe that's not enough.  After that the first time you launch Vcxsvr make sure you Allow access for Private AND Public networks.

It works!

Go to Windows Defender Firewall to enable all network connection for VcXSrv

Maybe that's not enough.  After that the first time you launch Vcxsvr make sure you Allow access for Private AND Public networks.

Or double click the VcXsrv rules and change action to "Allow the connection" .

Go to Windows Defender Firewall to enable all network connection for VcXSrv

Maybe that's not enough.  After that the first time you launch Vcxsvr make sure you Allow access for Private AND Public networks.

Or double click the VcXsrv rules and change action to "Allow the connection" .

Thank you, thank you @jha-prateek and @hongbo-zhu-cn. I finally got there with a combination of these answers. Enabling inbound PUBLIC networks was the key.

Open Xlaunch as an 'administrator' in your host (Windows). Right click on the app and select that option.
If you happen to see a '-1' near the bottom of the XLaunch first page, you can smile already.
Choose option that disables 'control'. forgot on what page of the set up GUI it is on (maybe two).
Launch WSL.
Type exactly this as I am not using placeholders: 'export DISPLAY="$(grep nameserver /etc/resolv.conf | sed 's/nameserver //'):0"
Test in Ubuntu by typing: 'xcalc'
Make sure you have browser installed if you go online with a GUI.
Good luck.

Hey guys, I found another solution if you are still not getting results.
If you're using ip route to get the host IP be careful with that command introducing invicible color codes to the output.
You can install colorized-logs package in ubuntu and use the ansi2txt tool to clean the output of ip route like this:
DISPLAY=$(ip route list exact default | awk '{print $3}' | ansi2txt):0
This solved it for me.