Add OpenXR support to the core

This is a port of the OpenXR plugin to core, the main reason for this is the way OpenXR ties into Vulkan, with OpenXR wanting to take ownership of creating the Vulkan instance and managing the creation of swap chains for use in XR.
This requires OpenXR to be started and initialized at startup, for this reason new project settings have been added to ensure OpenXR is loaded. More settings will be added soon to further configure this. There is also a placeholder setting for running OpenXR in the editor, this for future plans to enable XR functionality within the editor.
The main OpenXR logic is implemented in the drivers folder through a new OpenXR device. This handles the OpenXR implementation itself.  Just like our original plugin the driver is implemented with extensions that implement specific parts of the implementation. There is for instance a Vulkan extension that implements the Vulkan bits of the solution. In due time we can create an OpenGL extension if the OpenGL renderer is used.
The Vulkan driver has been modified to use the Vulkan extension, when available, to set things up.
There is also an OpenXRInterface implementation in modules that implements the XRServer components.
I think this PR is ready for review and start doing the cleanup to get this to be merged. There are a few things left to do but I think these can have their own follow up PRs

currently I'm doing a copy into the swapchain buffer instead of rendering directly into this. The main problem I have here is one of timing, OpenXR needs to have its session created and setup before we can create our swapchains. This is something that happens way too late as this will happen in the background, often waiting for the XR runtime to startup and switch over. It may require finishing #51179 and using our current approach to introduce the OpenXR swapchain just for the ARVR viewport. That said, OpenXR requires swapchains to be used for 2D UI viewports when using layers so there is more to do here.
Action map and controller logic is finished but we need to add a UI to edit the actionmap
Still issues with OpenXR wanting us to render in linear color space but linear color space on RGBA8 gives banding.
Should work on Windows and Linux but only tested SteamVR on Windows, but I've disabled Android and we can do this in a follow up PR. Note that currently we are assuming that we can use the Khronos loader on Android instead of using Metas proprietary loader for Quest.
Port over features like hand tracking, pass through, composition layers, etc.

A demo project to test this work with can be found here: https://github.com/BastiaanOlij/godot4_openxr_demo

This is starting to work, it now is based on #51179, while there are some issues still around updating the framebuffers.
Two major problems at the moment:

the timing is WAY off, it has a lot of problems doing proper predicting
keep_linear has disappeared, now this might have to do with Vulkan being able to cater for this better, but OpenXR is expecting our data in linear color space, not converted to sRGB.

I have a number of things to polish up on 51179 first, but we're getting somewhere with this port.

@BastiaanOlij It may be worth splitting the thirdpary/openxr/... additions into a separate PR. I'm guessing it's mostly a dump, so no reviews should be needed for that section?
It'll make reviewing the actual integration easier.

@BastiaanOlij It may be worth splitting the thirdpary/openxr/... additions into a separate PR. I'm guessing it's mostly a dump, so no reviews should be needed for that section? It'll make reviewing the actual integration easier.

It's in a separate commit, so if you just look at the last commit only, those are the real changes.
First commit is a copy of (an older version of) 51179
Second commit is the openxr thirdparty library
Third commit is the real work.

Thanks for the clarification!

I've redone the last bit of this so it no longer used 51179 but does a copy of Godots results into the textures provided by OpenXR. This is slightly slower but it doesn't require us to do really ugly stuff.  Once I improve 51179 we'll revisit that.
I'm still having the timing issues, I may try and move part of process closer to the moment we render to see if that solves it, but its very weird for sure.
Also I think Steam now doesn't like us providing the data in sRGB when its expecting linear color space so things are too bright. Still looking into that.

Noticed that changing vulkan vsync to mailbox mvoes the fps from 60fps to 90fps (HMD). Hope that helps.

Noticed that changing vulkan vsync to mailbox moves the fps from 60fps to 90fps (HMD). Hope that helps.

Yeah we need to find out how to turn vsync off all together. OpenXR will set the pace.

Sent you the branch for tracker velocity including the head.
I think the bug is the engine tick is not the tracker (head) tick from the openxr runtime.

Discussed with @BastiaanOlij. CC @lyuma
To get CICD to pass, it's not as simple as disabling the platforms because the OpenXR driver is tied into the renderer.
The plan is to swap every platform other than Linux and Windows with the dummy OpenXR.
Android needs a lot more work, and we need help there. @m4gr3d
We need to create a dummy implementation for the disabled platforms. There is a dummy implementation, but it doesn't compile because it's far from complete. Currently, the dummy OpenXR implementation re-uses the header files.
The right solution is to create a dummy folder and put header files with just the class definitions and the few methods in the app but without code. Scons can then be instructed to use the dummy folder instead of the main folder.
The platforms without OpenXR support will then compile fine.

Using a separate folder for the dummy driver won't allow us to change the header files afterall because of full path names being used when including, opted for an #ifdef approach.
Still no closer to figuring out why the timing is not working properly

Grmbl, whats wrong with the macro that the compiler on Linux hates it?

@akien-mga the variable definitions are "out of scope" on purpose, because I will be using them later on ;) code isn't finished yet

Why do linux compilers always give me trouble... geez :)

Ok, just a quick status update here now that things are starting to move fast.
Rendering now works and it looks like we're tracking properly. Rendering for now still requires the mobile renderer even on desktop (though there is a PR that makes part of the desktop renderer work) and uses a final blit from Godots rendering buffers to OpenXRs swapchain. This does render OpenXRs foveated rendering inoperable, I am looking into a solution for rendering directly into the swapchain but even then OpenXRs approach to foveated rendering does not agree with Godots render setup and I feel only VRS will solve this properly. That is next on my list once this PR is finished.
The other open issue around rendering is OpenXRs insistence that we supply images in linear color space while most devices use 32bit RBGA8 buffers which means banding. Sucks. Right now all output is in sRGB which means the image is over bright inside the headset.
Also note that lighting on Godot primitives is currently broken but that falls outside of the scope of this PR (I am going to look into this however because it has annoyed the heck out of me for some time now).
My current focus is on porting the controller logic over from the plugin. I just committed the changes for the resource classes that allow us to define our OpenXR action map and the code that generates a default map with default interaction profiles.
Important to note here for those who are not familiar with OpenXR, OpenXR takes ownership over the bindings. Our interaction with OpenXR is over actions. We provide suggestions to OpenXR how we want different controllers to be bound to these actions however whether the XR runtime decides to listen is out of our control. It has big pro's, and big con's, but that fight is long past us and this solution was chosen. The bottom line here is that you have no control, and what you submit to OpenXR at startup can't be altered. Re-binding is handled by the XR runtime (if you are lucky, most currently don't offer this so if your player is left handed, sucks for them).
Next thing I'll be working on is making the action map actually work so we have working controllers, and after that I need to port the UI I was working on.
Lastly, right now Android is the only platform that isn't working yet. The files are there but I'll need help from someone who knows Android more to put it all together. For Meta Quest support it is also important to find out of the official Khronos loader will be supported by the Quest.

Action map code is mostly complete and it registers the action map with OpenXR. There are still issues with incorrect paths so need to find which ones are wrong.
I've got basic tracking logic going and it is now tracking the two controllers.

I've marked this PR ready for review, there is more to do but the core is there and working and I think its better to do the rest in follow up PRs.

Updated to OpenXR 1.0.22 and added the compiler define DISABLE_STD_FILESYSTEM when compiling the OpenXR thirdparty files as this was causing issues for some people.

@akien-mga the static checks are failing on the 3rd party files, I thought those were being excluded? Is there something i need to add here?

@akien-mga the static checks are failing on the 3rd party files, I thought those were being excluded? Is there something i need to add here?

As we discussed privately, this is because of two issues:

The python checks (misc/scripts/black_format.sh) were not properly excluding thirdparty files apparently. As a matter of fact, this was just fixed in #55785 so rebasing should fix it.
Those python files are actually the test suite and tools of the jsoncpp lib, and we don't need them, so they should be removed. But that's not urgent and something I can have a look at myself when I review the thirdparty lib integration (but feel free to do a pass at stripping down the files we don't need and documenting the update workflow).

@akien-mga the static checks are failing on the 3rd party files, I thought those were being excluded? Is there something i need to add here?

As we discussed privately, this is because of two issues:
* The python checks (`misc/scripts/black_format.sh`) were not properly excluding thirdparty files apparently. As a matter of fact, this was just fixed in [Simplify formatting scripts, add a clang-tidy script, and run clang-tidy #55785](https://github.com/godotengine/godot/pull/55785) so rebasing should fix it.

* Those python files are actually the test suite and tools of the jsoncpp lib, and we don't need them, so they should be removed. But that's not urgent and something I can have a look at myself when I review the thirdparty lib integration (but feel free to do a pass at stripping down the files we don't need and documenting the update workflow).

I've removed the test function but it is still falling over a few py files in the root of the jsoncpp lib. I did rebase but its still checking thirdparty files.

I've removed the test function but it is still falling over a few py files in the root of the jsoncpp lib. I did rebase but its still checking thirdparty files.

So it was actually not fixed by #55785 but broken by it. I'll make a PR to fix it.

@BastiaanOlij From the discord (linuxmaster) great progress here lets hope it gets merged into master

I am not sure if I understand why we have drivers/openxr and modules/openxr. Sounds like we should want either one or the other?

main.cpp changed causing a merge conflict.

main.cpp changed causing a merge conflict.

This will happen many times yet until this is merged @fire , I'll rebase when I have a moment.

I am not sure if I understand why we have drivers/openxr and modules/openxr. Sounds like we should want either one or the other?

This was one of the things I wanted to discuss with you @reduz , I'd like the whole thing to be in modules but we can't because part of the solution is interwoven with the Vulkan drivers and has code being executed at startup before the module system is even initialized.
We also can't move what is in modules into drivers, there are classes here that don't belong in drivers and there will be more like classes that will be part of the editor.
So I had to split the solution in two with the driver part having purely the code that interfaces with OpenXR itself, and modules the bits that are facing the end user.

Just did a rebase, nothing more.

@reduz @m4gr3d , after talking this over with Reduz last night I spend today moving everything into modules and changing the way things are mixed in to other parts of the system.
I'm not done yet because I want to look into merging openxr_device into openxr_interface, I'm not sure about this just yet.
It's already worth having a look at how things are structured now even before this merge so feel free to give feedback.
Btw @akien-mga , any idea how to make the CI happy about
./drivers/vulkan/vulkan_hooks.h:40:7: error: 'VulkanHooks' has virtual functions but non-virtual destructor [-Werror,-Wnon-virtual-dtor,2]
This error is given on platforms that do not support OpenXR because the only implementation of this template class is in there.
I guess I could give each function a default implementation?

After trying out a few things I've decided to keep the split between the interface class and the OpenXRAPI (was driver) class which is basically a wrapper over the OpenXR API.
Things got really messy trying to combine it especially around the action map and controller logic. This nicely splits it in logic that faces OpenXR and logic that focuses on the Godot side.

@SaracenOne made a small change making the Vulkan version check a warning for now. Godot checks with the Vulkan driver what version of Vulkan is supported on the host system, we select the highest v1.x.x version of Vulkan that is supported by the host (currently usually 1.2.0 on desktop).
We then have an extra check with the OpenXR runtime as OpenXR will also tell us which version of Vulkan the runtime wishes to use. The weird thing here is that Oculus reports it only supports Vulkan 1.0.0.
We believe we can safely ignore this, 1.2.0 is backwards compatible with 1.0.0 so anything the OpenXR runtime wants to use should work, but we don't want to limit ourselves in using newer Vulkan features (if available) just because the OpenXR runtime doesn't want to use those.
So far this seems to work fine.

Getting this warning when compiling on Linux:
In file included from thirdparty/openxr/src/loader/loader_platform.hpp:17,
                 from thirdparty/openxr/src/loader/api_layer_interface.hpp:18,
                 from thirdparty/openxr/src/loader/api_layer_interface.cpp:10:
thirdparty/openxr/src/common/platform_utils.hpp: In function 'char* detail::ImplGetSecureEnv(const char*)':
thirdparty/openxr/src/common/platform_utils.hpp:60:55: note: '#pragma message: Warning:  Falling back to non-secure getenv for environmentallookups!  Consider updating to a different libc.'
   60 |     "lookups!  Consider updating to a different libc.")
      |                                                       ^

We should either add a common_config.h with the proper definition for all platforms, or ensure we set them all in the SCsub (it's done for Windows but likely something else is needed for other platforms).

Added a commit to remove all the stuff we don't need and don't care about:
 126 files changed, 23 insertions(+), 22185 deletions(-)

Should be squashed with the first commit eventually so that we don't add files to remove them and make the repository history needlessly bigger. But I kept it separate for now for review. (And I'm not done reviewing the rest of the changes.)

Getting this warning when compiling on Linux:
In file included from thirdparty/openxr/src/loader/loader_platform.hpp:17,
                 from thirdparty/openxr/src/loader/api_layer_interface.hpp:18,
                 from thirdparty/openxr/src/loader/api_layer_interface.cpp:10:
thirdparty/openxr/src/common/platform_utils.hpp: In function 'char* detail::ImplGetSecureEnv(const char*)':
thirdparty/openxr/src/common/platform_utils.hpp:60:55: note: '#pragma message: Warning:  Falling back to non-secure getenv for environmentallookups!  Consider updating to a different libc.'
   60 |     "lookups!  Consider updating to a different libc.")
      |                                                       ^

We should either add a common_config.h with the proper definition for all platforms, or ensure we set them all in the SCsub (it's done for Windows but likely something else is needed for other platforms).

Fixed, HAVE_SECURE_GETENV was set for Windows when it's supposed to be set for non Windows (I also excluded UWP to be sure).

Thanks!


Include an image to show lakes/tiles

If we continue on the grouping by tile route (see here for details), we should include a map of some sort to show the lakes and tiles overlayed. Probably don't need the cells, as the image below shows, but some kind of map could be shared.

Sharing this map for now:

code to make it (set up for within lake-temperature-model-prep  - the targets sub-pipeline):
tar_target(nml_list_rds, gd_get('7_config_merge/out/nml_list.rds.ind'), format='file'),
tar_target(nml_site_ids, names(readr::read_rds(nml_list_rds))),
tar_target(glm_lake_centroids_sf, filter(query_lake_centroids_sf, site_id %in% nml_site_ids)),
tar_target(
  tile_lake_map_png,
  map_tiles_lakes(
    out_file = '7_drivers_munge/out/tile_lake_map.png',
    lake_cell_tile_xwalk = lake_cell_tile_xwalk_df,
    query_tiles = query_tiles,
    grid_tiles = grid_tiles_sf,
    glm_lake_centroids = glm_lake_centroids_sf,
    focus_state = c('minnesota')
  )
),
#' @title Map the query tiles and centroids of GLM-modelable lakes
#' @description Map the grid tiles and the centroids of lakes included in the GDP
#' query that are able to be modeled by GLM (determined by crosswalking with the
#' site_ids in `'7_config_merge/out/nml_list.rds'`)
#' @param out_file name of output png file
#' @param lake_cell_tile_xwalk mapping of which lakes are in which cells and tiles
#' @param query_tiles vector of tiles that contain cells that contain lakes
#' @param grid_tiles an`sf` object with polygons representing the
#' groups of grid cells. Must contain a `tile_no` column which has
#' the id of each of the tile polygons.
#' @param glm_lake_centroids an `sf` object with points representing the
#' centroids of lakes included in the GDP query that can be modeled by GLM
#' @param focus_states specify a specific state outline to be shown
#' on the map. Can be one state or a vector of states
#' @return a png of the mapped lake centroids and the grid tiles
map_tiles_lakes <- function(out_file, lake_cell_tile_xwalk, query_tiles, grid_tiles, glm_lake_centroids, focus_states=c()) {
  state_sf <- st_as_sf(maps::map('state', focus_states, plot=FALSE, fill=TRUE)) %>%
    sf::st_transform(crs = sf::st_crs(grid_tiles))

  grid_tiles <- grid_tiles %>%
    filter(tile_no %in% query_tiles)

  tile_labels <- grid_tiles %>%
    mutate(bbox=split(.,tile_no) %>% purrr::map(sf::st_bbox)) %>%
    unnest_wider(bbox)

  lakes_per_tile <- lake_cell_tile_xwalk %>%
    filter(site_id %in% glm_lake_centroids$site_id) %>%
    group_by(tile_no) %>%
    summarize(nlakes = n()) %>%
    left_join(tile_labels, by='tile_no')

  tile_lake_plot <- ggplot() +
    geom_sf(data = glm_lake_centroids, color='dodgerblue4', bg='dodgerblue2', size=1, pch=21, alpha=0.4) +
    geom_sf(data = state_sf, fill = NA, size = 0.5) +
    geom_sf(data = grid_tiles, fill = NA, size = 2) +
    geom_text(data = tile_labels, aes(label=tile_no,x=xmin, y=ymax), size=8, nudge_x = 15000, nudge_y = -30000, hjust = 0) +
    geom_text(data = lakes_per_tile, aes(label=sprintf('%s lakes', nlakes),x=xmin, y=ymax), size=4, nudge_x = 15000, nudge_y = -60000, hjust = 0, fontface = "bold") +
    theme(axis.title.y=element_blank(),
          axis.title.x=element_blank())

  # save file
  ggsave(out_file, tile_lake_plot, width=10, height=8, dpi=300)

  return(out_file)
}


Remove std.json in favor of vibe.data.json (aka #5)

std.json is too slow, bulky, and futzy for our needs. This commit drops it in favor of vibed's vibe.data.json, which seems much more well rounded (and apparently faster).

NICE COMMIT B1NARYTH1EF!

Thanks other b1naryth1ef!


Руссфикация MultiMiner, не намечается ?

Все сложно, но интересно :)

Can you describe the problem you are having or the enhancement you are requesting in English please?

As such there is no problem. Wanted to learn Russian language will be supported in the future ?

@RTlisov there is no plan to translate / localize MultiMiner but I'd be happy to merge any Pull Requests for localizations.


App crashes while processing video

When running the example project on iOS, the app crashes with the following error
2021-03-06 18:20:04.090003+0900 Runner[33367:2019938] flutter: clicked!
2021-03-06 18:20:08.659434+0900 Runner[33367:2019938] flutter: /Users/<USERNAME>/Library/Developer/CoreSimulator/Devices/899678CD-E107-4F59-B876-A3C50CCC93AE/data/Containers/Data/Application/29AF98C2-387B-4090-AC98-FB546CB27593/tmp/trim.F38E201F-547E-4ED9-BCF8-425758833DA2.MOV
2021-03-06 18:20:08.691215+0900 Runner[33367:2019938] flutter: Directory: '/Users/<USERNAME>/Library/Developer/CoreSimulator/Devices/899678CD-E107-4F59-B876-A3C50CCC93AE/data/Containers/Data/Application/29AF98C2-387B-4090-AC98-FB546CB27593/Library/Caches'
eee
tabunn
Optional((304.0, 100.0))
file:///Users/<USERNAME>/Library/Developer/CoreSimulator/Devices/899678CD-E107-4F59-B876-A3C50CCC93AE/data/Containers/Data/Application/29AF98C2-387B-4090-AC98-FB546CB27593/Library/Caches/result.mp4
2021-03-06 18:20:09.033009+0900 Runner[33367:2019694] [] [18:20:09.033] H264VideoDecoder_SetProperty signalled err=-12900 (kVTPropertyNotSupportedErr) (unrecognised property key) at /Library/Caches/com.apple.xbs/Sources/CoreMediaH264SWLib_Bundle_Sim/CoreMediaH264SWLib-574/VCPAVC/H264VideoDecoder.c:1231
2021-03-06 18:20:09.033867+0900 Runner[33367:2019694] [] [18:20:09.034] VTCompressionSessionSetProperty signalled err=-12900 (kVTPropertyNotSupportedErr) (Unsupported property key (it's not in the SupportedPropertyDictionary)) at /Library/Caches/com.apple.xbs/Sources/EmbeddedCoreMedia_Sim/EmbeddedCoreMedia-2765.6/Sources/VideoToolbox/VTCompressionSession.c:2997
2021-03-06 18:20:09.211986+0900 Runner[33367:2020315] Metal API Validation Enabled

The following error was output in the stack trace of XCode
Thread 40 Queue : com.apple.coremedia.basicvideocompositor.output (serial)
Thread 40: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

I found a page like this
https://discussions.apple.com/thread/8321919
Maybe the app is trying to save to iCloud?
I don't have a real machine so I can't try it

Which version of the simulator do you use ?

@tokku5552

the simular problem:
https://stackoverflow.com/questions/61012549/avfoundation-crash-on-exporting-video-with-text-layer

without AVVideoCompositionCoreAnimationTool, I imeplement the process of overlaying texts and images
    guard let watermarkImage: CIImage =  CIImage(image: watermarkUIImage) else {
        print("error")
        return
    }
    let layercomposition = AVVideoComposition(asset: composition) { (filteringRequest) in
       let source = filteringRequest.sourceImage.clampedToExtent()
       watermarkFilter.setValue(source, forKey: "inputBackgroundImage")
        let transform = CGAffineTransform(translationX: filteringRequest.sourceImage.extent.width - watermarkImage.extent.width - 2, y: 0)
       watermarkFilter.setValue(watermarkImage.transformed(by: transform), forKey: "inputImage")
       filteringRequest.finish(with: watermarkFilter.outputImage!, context: nil)
    }

but it does not work.
2021-07-24 19:16:02.837079+0900 Runner[86393:1318627] [] [19:16:02.837] H264VideoDecoder_SetProperty signalled err=-12900 (kVTPropertyNotSupportedErr) (unrecognised property key) at /Library/Caches/com.apple.xbs/Sources/CoreMediaH264SWLib_Bundle_Sim/CoreMediaH264SWLib-574/VCPAVC/H264VideoDecoder.c:1231
2021-07-24 19:16:02.837664+0900 Runner[86393:1318627] [] [19:16:02.838] VTCompressionSessionSetProperty signalled err=-12900 (kVTPropertyNotSupportedErr) (Unsupported property key (it's not in the SupportedPropertyDictionary)) at /Library/Caches/com.apple.xbs/Sources/EmbeddedCoreMedia_Sim/EmbeddedCoreMedia-2765.6/Sources/VideoToolbox/VTCompressionSession.c:2997
Movie complete
2021-07-24 19:16:05.079924+0900 Runner[86393:1318862] flutter: finished
2021-07-24 19:16:05.120937+0900 Runner[86393:1318627] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x600001aac520> F8BB1C28-BAE8-11D6-9C31-00039315CD46
2021-07-24 19:16:05.144893+0900 Runner[86393:1319169] [] [19:16:05.145] MoovParseByteStream signalled err=-12848 (kFigFormatReaderError_ParsingFailure) ('moov' atom could not be parsed) at /Library/Caches/com.apple.xbs/Sources/EmbeddedCoreMedia_Sim/EmbeddedCoreMedia-2765.6/Prototypes/FormatHandlers/Movie/MovieAtomParsing.c:6135
2021-07-24 19:16:05.145211+0900 Runner[86393:1319169] [] [19:16:05.145] FigFormatReaderCreateForStreamReturningResults signalled err=-12848 (instantiation.firstFailedAttempt.error) (Error creating FormatReader) at /Library/Caches/com.apple.xbs/Sources/EmbeddedCoreMedia_Sim/EmbeddedCoreMedia-2765.6/Prototypes/FormatHandlers/FigFormatReader_Common.c:2870
2021-07-24 19:16:05.170235+0900 Runner[86393:1318862] flutter: false


Submit and display timestamp and timestamptz values as local time

A timestamptz value is stored as a single point in time in Postgres. When the value is retrieved, the value is in whatever time zone the database is in.
A timestamp value is stored as a string with the date and time; time zone info will be dropped in Postgres.
When submitting values for timestamp and timestamptz columns, the app should just submit the values as browser's local time. (The app currently converts to UTC before submitting, which is unnecessary.)
When displaying timestamp value, display whatever is in the db (the date and time, no need to convert to local time because there's no time zone info attached anyway)
When displaying timestamptz value, convert that value to browser's local time.

Note to self: Test this in 09-recordedit.types.spec.js

This has been addressed in PRs #934 (implementation) and #942 (tests).


Change Type of input from time to text

To fix the problem of browser settings default changing the input format to 12h (PM/AM), i change it to  type text and  create a function to format it

I believe these changes below are necessary for us to move forward.

Made the necessary changes to encapsulate the formatting of dates on the new commit


Run a crit on the Password input prototype with the working group

What
After prototyping a version of the Password input component and deciding on the guidance scope, we should run a crit with the the Design System working group.
The working group review should happen first and be completed by 19 Jan.
Why
To get useful, fair and unbiased feedback on the component before it's added to the design system.
Who needs to work on this
Driving role: Owen
Supporting role: Imran
Who needs to review this
Steve
Done when

[x] Prepare working group for review in January
[x] Liaise with Steve and Imran whether we want to include anything else for the working group to review
[x] Prep documentation for review
[x] Set review period
[ ] Email working group and begin review

Moving back to backlog as the documentation is done, just need to organise the review. This can move to done once the crit has been completed.


fix floating-labels min-height

Description
fix floating-labels min-height. textareas have other min-height as normal textareas
i have set it for all input, maybe it is better only for textareas?

Motivation & Context

Type of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Refactoring (non-breaking change)
[ ] Breaking change (fix or feature that would change existing functionality)

Checklist

[x] I have read the contributing guidelines
[x] My code follows the code style of the project (using npm run lint)
[ ] My change introduces changes to the documentation
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] All new and existing tests passed

Live previews

https://deploy-preview-{your_pr_number}--twbs-bootstrap.netlify.app/

Related issues

Not sure we need it? Textarea height is covered at http://getbootstrap.com/docs/5.3/forms/floating-labels/#textareas. Does this fix a bug or something we have right now?

is for floating labels textarea min-height not for height
in normal textareas is set, but is to small for floating textareas.

I could reproduce this bug my manually resizing the textarea with the browsers resize icon (bottom right).

yes, but it is only in FF, Edge and Chrome on windows. in Safari on MAC everything is fine.

nice


"Use Cellular Data" turned off is reported incorrectly as reachable

Turning off "Use Cellular Data" specifically for one application, is still reported by the Reachability class as reachable, despite not being able to load data from a remote server.
For example, using a UIWebView and having "Use Cellular Data" off does not load a remote URL and falls into the delegate function didFailLoadWithError, the code being NSURLErrorNotConnectedToInternet. However, the same view controller will report isReachable() as true.
This may yet not be able to be resolved without changes from Apple.

@jwhitehouse It looks like this issue has been resolved. Testing with the sample app with a cellular connection but use cellular data set to off in settings gives a status of Not Reachable.  Can you please check out the latest version (I was working against the develop branch but master should also work) and feedback here?
Cheers
Ash

Closing issue as this appears to have been resolved in iOS 9.x


How to access Messenger User Profile?

What is the best way to retrieve the User Profile info in Messenger using Botkit?
https://developers.facebook.com/docs/messenger-platform/user-profile
I'm trying to greet the user by the FB profile first name.

In the greeting thread, you can refer to the user's ID by using {{user_name}}
controller.api.thread_settings.greeting('Hello {{user_name}}! Please meet our Facebook chatbot!');
You can try {{user_first_name}} or {{user_last_name}} as well, or refer to any feature of the user's public profile. https://developers.facebook.com/docs/facebook-login/permissions

Thanks devhaoy for the quick response!
I tried your suggestion and it worked fine on the welcome/greeting/home page. In fact, I wanted to greet the user with the first name every time the user starts a conversation with the bot by saying hello or hi. Sorry, I wasn't clear earlier. I tried as below, but didn't work.
controller.hears(['hello','hi'], 'message_received', function(bot, message) {
		var msgAttachment = {
			'type':'template',
			'payload':{
				'template_type':'generic',
				'elements':[
					{
						'title':'Hi **{{user_first_name}}**!',
						'subtitle':'What would you like to do?',
						'buttons':[
							{
							  'type':'postback',
							  'title':'Read a Joke',
							  'payload':'joke'
							},
							{
							  'type':'postback',
							  'title':'Listen to Music',
							  'payload':'music'
							},
							{
							  'type':'postback',
							  'title':'Play a Game',
							  'payload':'game'
							}
						]
					}
				]
			}
		};

		bot.reply(message,{
		  attachment: msgAttachment
		});
	});

This may be the built in template parser getting in the way of the Facebook tags, which use the same {{}} syntax. I'll do some testing.

Thanks Ben! Let me know the best way to retrieve the profile info.

I don't think Botkit is the cause of the issue. Seems the {{user_name}} tag is only available within the greeting message.
My understanding is you must call to the Graph API to get the user's public profile in the conversation. Here is a sample code you can use in the convo:
var request = require('request'); // make http call
getUserName = function(response, convo) {
var usersPublicProfile = 'https://graph.facebook.com/v2.6/' + response.user + '?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=' + process.env.page_token;
request({
    url: usersPublicProfile,
    json: true // parse
}, function (error, response, body) {
        if (!error && response.statusCode === 200) {
            convo.say('Hi ' + body.first_name);
        }
    });
};

This call grants access to the user's public profile only, depending on what you request in the url. Would be super nice if we had a native Login flow built in our Botkit :)

Great! That worked very well. Thanks devhaoy! :+1:
Yes, would have been nice if we could retrieve the public profile info without making the http call to Graph API. :)

I wrote this middleware to populate a user_profile field with the facebook profile in inbound the message.

Do I have to make the http call each time I want to use the user information in a chatbot?

@pibicalderon it saves the user profile to the storage to avoid making several API calls


Pass additional WMS parameters

Additional WMS parameters (other than LAYERS, STYLES, VERSION and FORMAT) are cut off, but there may still be other required parameters.
Only the following parameters need to be cut off, as they are handled by OpenLayers:

SERVICE
REQUEST
SRS / CRS
BBOX
WIDTH
HEIGHT

There is no need to cut off parameters as it is handled in OpenLayers.


Unable to chsh

Describe the bug
To Reproduce
Steps to reproduce the behavior:

pacman -S fish
chsh -s /bin/fish

See error

Expected behavior
Screenshots

Logs
Attach log files by opening OrbStack's Help menu and clicking “Show Logs”, or email them for privacy.
PLEASE ATTACH THE ENTIRE LOG FILE WITHOUT REMOVING ANY LINES. There is usually important context earlier in the log.
Info report

<paste here>

Additional context
Add any other context about the problem here.

However sudo chsh -s /usr/bin/fish user works

Can't reproduce.

There is no user password by default (https://docs.orbstack.dev/machines/#user-password). Since chsh asks for a password when not running as root, you will have to set one first.

Sorry, found the issue. The default shell path is wrong.
Fixed for the next version (for newly-created machines).


ZOS stability auto tests

test on Bancadati nodes
only stability test for the ZOS nodes, not performance testing.

Default setup within one zeroos:

We will be having some vms or containers running apps (need to be determined). Those apps will be loaded from different machines in which certain number of users will do certain requests against these apps with certain frequency (locust can be used here to load these apps)

Also I think we can make apps on different containers (or vms) talk to each other and measure how responsive they are.

During running the test for a long time.. we will  monitor the system and collect the data for analysis and check for failures if exist:

Test Measurements:
Application measurements:

Average, min and max response times.
Total request per second.
Number of failed requests.

ZERO-OS measurements:
This can be done using rtinfo .. we can measure memory and cpu usage, average load, disks iops and speed..etc
Questions:

How many zeroos node is needed? how many vm or container that need to be up and running?
and how many 0-db?
What is the kind of applications that need to be running on the vms or containers?
We have components like gateways, 0-db, vms, ..etc .. so what kind of Design is needed (near to what is provided in the figure?)
I'm giving a very general default setup.. so What else need to be tested? Any disk tests (using fio)  other than locust loads?


Fix CI Tests and Artifact Cache Issues

Use CLI script to automatically replace the 1.3 test with a 1.5 test (if necessary), as well as use new cache steps to cache the julia build artifacts

Myabe @omus has an opinion but if tests fail on 1.0.x we should prob bump the Project.toml julia version that we say this package works on?

Myabe @omus has an opinion but if tests fail on 1.0.x we should prob bump the Project.toml julia version that we say this package works on?

The package was working on 1.0. I'll check that out tomorrow

The package was working on 1.0. I'll check that out tomorrow

The 1.0 failure is a flaw in the YAML.jl package. I'm addressing it

The 1.0 failure is a flaw in the YAML.jl package. I'm addressing it

Here's the fix: https://github.com/JuliaData/YAML.jl/pull/109

Here's the fix: https://github.com/JuliaData/YAML.jl/pull/109

YAML 0.4.6 is released so you should be able to run the tests on Julia 1.0 again

YAML 0.4.6 is released so you should be able to run the tests on Julia 1.0 again


Sorting Collection by 'CREATED' returns the query sorted by oldest instead of newest

Here's the method I'm using to fetch:
allProducts = await shopifyStore.getXProductsAfterCursorWithinCollection(
      _collection.id,
      24,
      null,
      sortKey: SortKeyProductCollection.CREATED,
    );

Would be nice to see the query sorted by 'newest' instead.
The same goes for the 'PRICE' sorting - would be nice to have 2 options.
Version: 0.18

I believe that is the default behavior from shopify, is there an optional parameter "reverse"?
If yes please use it, it basically just reverses the whole list.

@ThinkSimple
Thanks! Problem solved.


feat: add "react" variant

@matuzalemsteles: I made this because we are rolling out ESLint in liferay-portal, at which point I realized that you had already made a version of this in #37 and I forgot all about it.
So, I pulled down your commits and cherry-picked them on top (the README updates, and the hooks plugin, which I'd forgotten about). The only real difference between yours and mine is that I have "liferay/react" extending "liferay" by default. Also updating the dependencies while I'm at it.
Closes: https://github.com/liferay/eslint-config-liferay/pull/37

@wincent no problem, thanks for that.


swipe-down-to-dismiss action of ModalExprollable doesn't work on Android

This is because the default scroll physics in Android is ClampScrollPhysics, which does not allow scrolling out of range, so the viewport offset can never exceed the threshold at which the dialog disappears.

A workaround is to explicitly use BouncingScrollPhysics. It is the default scroll physics on iOS , which is the reason why this issue is android specific.


Do not cache dns at the http_proxy actor level

Changelog entry

remove dns queries caching at the http_proxy actor level (dns caching should be done by dns server)

Changelog category

Bugfix

Additional information
It seems that http_actor had a special map Hosts that basically re-implemented caching for dns requests. This PR basically removes the check:
        auto it = Hosts.find(host);
        if (it == Hosts.end() || it->second.DeadlineTime > ctx.Now()) { ...

which leads the code into always calling
TNetworkAddress addr(addressPart, portPart);

which calls getaddrinfo under the hood.

Discussed this implementation with adameat@, my view appears to be wrong, and there was actually no bug in this code.


Significant Figures

Just as with Wrangles XL, create a significant figures wrangle in Wrangles PY.

Here is the sigFigs function. It works with strings and numbers(float, int) in input
 wrangles:
  - format.sigFigs:
       input: col1
       output: out1
       sigFigs: 3 -> default is 3

col1
out1

13.45644 ft
13.5 ft

length: 34453.3323ft
length: 34500.0ft

34.234234
34.2

nothing here
nothing here

13.4565
13.5

1132424
1130000.0


Can't generate apk when add numpy

this is my requirment.txt
flet
numpy
i have use p4a create to add numpy
i follow all steps the results is
(ahmed) ahmedashraf@ahmeds-mbp demoapp % flet build apk
Creating Flutter bootstrap project...OK
Customizing app icons and splash images...OK
Generating app icons...OK
Generating splash screens...OK
Packaging Python app...Running package command
Creating asset directory: /private/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/flet_flutter_build_IRvSqSxNkD/app
Copying Python app from /Users/ahmedashraf/Desktop/demoapp to /var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/serious_python_tempML3GJD
Configured mobile platform with sitecustomize.py at /var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/serious_python_sitecustomizeBp2W9V/sitecustomize.py
Installing dependencies  with pip command to /var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/serious_python_tempML3GJD/pypackages
Extracting Python distributive from /var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/cpython-3.11.6+20231002-aarch64-apple-darwin-install_only.tar.gz to
/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/hostpython3.11_qa99V4
/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/hostpython3.11_qa99V4/python/lib/python3.11/site-packages/_distutils_hack/init.py:33: UserWarning: Setuptools is
replacing distutils.
warnings.warn("Setuptools is replacing distutils.")
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [14 lines of output]
+ /var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/hostpython3.11_qa99V4/python/bin/python3
/private/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/pip-install-itdh_2d_/numpy_9345a9edeb914d39b49668b4e56f5f22/vendored-meson/meson/meson.py setup
/private/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/pip-install-itdh_2d_/numpy_9345a9edeb914d39b49668b4e56f5f22
/private/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/pip-install-itdh_2d_/numpy_9345a9edeb914d39b49668b4e56f5f22/.mesonpy-ytswz4qn -Dbuildtype=release
-Db_ndebug=if-release -Db_vscrt=md
--native-file=/private/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/pip-install-itdh_2d_/numpy_9345a9edeb914d39b49668b4e56f5f22/.mesonpy-ytswz4qn/meson-python-nativ
e-file.ini
The Meson build system
Version: 1.2.99
Source dir: /private/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/pip-install-itdh_2d_/numpy_9345a9edeb914d39b49668b4e56f5f22
Build dir: /private/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/pip-install-itdh_2d_/numpy_9345a9edeb914d39b49668b4e56f5f22/.mesonpy-ytswz4qn
Build type: native build
Project name: NumPy
Project version: 1.26.4
  ../meson.build:1:0: ERROR: Unknown compiler(s): [['Cannot_compile_native_modules']]
  The following exception(s) were encountered:
  Running `Cannot_compile_native_modules --version` gave "[Errno 2] No such file or directory: 'Cannot_compile_native_modules'"

  A full log can be found at

/private/var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/pip-install-itdh_2d_/numpy_9345a9edeb914d39b49668b4e56f5f22/.mesonpy-ytswz4qn/meson-logs/meson-log.txt
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
A new release of pip is available: 23.2.1 -> 24.0
To update, run: /var/folders/bh/m3lvt7gs139_2xqjg2vxt9q80000gn/T/hostpython3.11_qa99V4/python/bin/python3 -m pip install --upgrade pip
Error building Flet app - see the log of failed command above.
(ahmed) ahmedashraf@ahmeds-mbp demoapp %

is the new update coming soon ? @Ambassador-of-programming

I have the same problem but to SQLAlchemy ORM :/

I have the same problem when I use numpy in my requirements.txt.
It only affects apk-builds. windows-builds have no trouble building
VERBOSE: Using cached numpy-1.26.4.tar.gz (15.8 MB)
VERBOSE: Installing build dependencies: started
VERBOSE: Installing build dependencies: finished with status 'done'
VERBOSE: Getting requirements to build wheel: started
VERBOSE: Getting requirements to build wheel: finished with status 'done'
VERBOSE: Installing backend dependencies: started
VERBOSE: Installing backend dependencies: finished with status 'error'

The same problem building apk on Ubuntu 22.04.4 LTS.
Without adding numpy to requirements.txt and without setting the variable SERIOUS_PYTHON_P4A_DIST, the built app shows an error after opening, as expected.
After setting the variable, in my case:
export SERIOUS_PYTHON_P4A_DIST=~/.local/share/python-for-android/dists/mydist

and without adding numpy to requirements.txt, the app opens on Android but shows only an empty screen (no errors, no content).
After setting the variable and adding numpy to requirements.txt, the error described above occurs during the build process:
The Meson build system
      Version: 1.2.99
      Source dir: /tmp/pip-install-n8ere989/numpy_c7624fe3d7e946868f35ded5a5580988
      Build dir: /tmp/pip-install-n8ere989/numpy_c7624fe3d7e946868f35ded5a5580988/.mesonpy-51jb9jq0
      Build type: native build
      Project name: NumPy
      Project version: 1.26.4

      ../meson.build:1:0: ERROR: Unknown compiler(s): [['Cannot_compile_native_modules']]
      The following exception(s) were encountered:
      Running `Cannot_compile_native_modules --version` gave "[Errno 2] No such file or directory: 'Cannot_compile_native_modules'"

Closing this issue in favour of https://github.com/flet-dev/flet/issues/3839


Address some translation comments in PR #4359

Addressed some translation comments in PR #4359
@tengqm and @chenopis, PTAL, thanks

This change is

/assign @chenopis

@markthink Can you take a look and approve this? Thx


chore(main): release 1.0.1

:robot: I have created a release beep boop
1.0.1 (2024-02-22)
Bug Fixes

added a local variable that goes through all of the resources and removes duplicates with values() and zipmap() functions, ensuring each resource being associated with the catalog only once. (8b0c610)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/amestofortytwo/terraform-azuread-entitlement-management/releases/tag/v1.0.1 :sunflower:


Use Case: Arbitrary table read

Read all of the columns from an arbitrary table. ORM chooses the return type.

@mikependon @lukevp @mattjcowan @Arnab-Developer
Here is another one of those 'database discovery' kind of use cases. Again, if you think this is one that applies to your ORM go ahead and implement it.

@Grauenwolf I have implemented this with EF Core and send a PR (#274).


Multiple session Flag on a per user basis viewtopic

Sometimes happens the user to get double or more Flag beside their username, multiple sessions from different devices for example.

still to do some

With the above commits we got false flags, committing the fix...


category_map or tag_map for hugo (nickname for tags)

My native language isn't English, and I am not a professional programmer. So sorry for my expression...

Recently I found out that if I use CJK character as a tag, the URL would be like ".../tags/XXX(the CJK character tag name)/..." Sometimes the server doesn't recognize it, and may cause some code change problem. And also I just don't want CJK character in URLs.
When I search the internet, I found that HEXO got "category_map" for these situation. It's like define a nickname for the tags and the URL goes like ".../tags/nickname/..."
Please help me if there is a way for Hugo to set tag nicknames. And that would be thankful.

I was a Hexo user too, so try this:

Add the following lines into your config.toml:[permalinks]
    categories = "/categories/:slug/"
    tags = "/tags/:slug/"

Create a new file for this category/tag, for instance, you have a tag named 中文, then create a content/tags/中文/_index.md file, then add:slug = "chinese"

Additionally, you may need to add titile = "中文" to correct the title.

I was a Hexo user too, so try this:

Add the following lines into your config.toml:[permalinks]
    categories = "/categories/:slug/"
    tags = "/tags/:slug/"

Create a new file for this category/tag, for instance, you have a tag named 中文, then create a content/tags/中文/_index.md file, then add:slug = "chinese"

Additionally, you may need to add titile = "中文" to correct the title.

Thanks for help.
I've found this solution you mentioned in someone's blog. And I tried that yesterday. But I didn't add "title = 中文". And it didn't work out.
So, ...
Where should I add this? Should I add it in the same "_index.md" file?
I will try this evening.

I was a Hexo user too, so try this:

Add the following lines into your config.toml:[permalinks]
    categories = "/categories/:slug/"
    tags = "/tags/:slug/"

Create a new file for this category/tag, for instance, you have a tag named 中文, then create a content/tags/中文/_index.md file, then add:slug = "chinese"

Additionally, you may need to add titile = "中文" to correct the title.

OMG, actually I found the solution in YOUR blog!
Thanks again.
...
And why are we talking in English...
Hope Hugo could do something for the suggestion

I tried and it didn't work out.
Maybe it is different because I'm using different theme. I don't know.


Add Server header to PROTOCOL-HTTP2 spec

I took a slightly lazy approach to the documentation, in that "user-agent" is used loosely. But I don't think it should cause too much trouble, especially since this is a standard header.
CC @ctiller @iamqizhao

@a11r, could you review this? Should be easy.

Useful, yes. Do I care enough, no. Closing.


Update grafana to 2023-09-01

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.Grafana

Fixed the API signature, ready to merge. Thanks!

Fixed the API signature, ready to merge. Thanks!

@yjsong11 merged~


Follow project convention for build qualifier

Description
Follow project convention for build qualifier
Issues Resolved

Resolves https://github.com/opensearch-project/security/issues/1676

Testing
CI checks validate the output naming scheme of the artifacts
Check List

[X] New functionality includes testing
[ ] ~New functionality has been documented~
[X] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

I see that other changes are going in, please delete the gradle.properties if we aren't going to use it for version number management anymore

FYI @cliu123

In my branches CI Plugin install works https://github.com/peternied/security/runs/5822255492?check_suite_focus=true


Feat/serializer script

your test is also failing

your test is also failing

I updated and now its test is getting success.

test case too big

ok i will add only one annotation case.


Add tutorial for MSWC task

A tutorial is needed showing users how to run the MSWC task.

Tutorial means a jupyter notebook to run the example step by step?
I can also help with that if needed @jasonlyik

Currently in progress in #158

This one can be closed I think, per #150


backgroundSprite

What is your question?
In the assets/images files, there's a json file called gfDanceTitle, and within it says "backgroundSprite":"". Does this have a function, a specific image selection or can it be modified with Lua?

if you type an image path in there, the image will show up in the bg of the title screen

if you type an image path in there, the image will show up in the bg of the title screen

so something like images/{name of the bg}

so something like images/{name of the bg}

no just {name of the bg}


bump sops to 3.8.0

TODO

[ ] rebase after https://github.com/helmfile/vals/pull/168 merge
[ ] generate new go.sum

Duplicate of #168


Update the Instructions to use these designs

The current instructions given in the ReadMe no longer work. I couldn't find a Way in Mapbox studio to import a whole folder.

I see that this has been mentioned as https://github.com/osm-in/openstreetmap.in/issues/10


[feat]: add group member info to the entry tooltips for LFGToolList

inserts a frame into the tooltip for the LFGList results that shows the group composition.

available on latest beta build https://legacy.curseforge.com/wow/addons/lfg-group-finder-bulletin-board/files/6041534


[Modules] Update the PostgreSQL - Configurations child module deployment to be sequential

Description
When redeploying modules/db-for-postgres/flexible-server/main.bicep that has 3 configurations will produce a failed deployment most of the time. Each run has a possibility of at least one configuration failure with the following message: Setting batchSize(1) gave me 100% successful redeployments out of 10 deployments.
I imagine the MySql database is similar.
{
  "code": "DeploymentFailed",
  "target": "/subscriptions/<redacted>/resourceGroups/<redacted>/providers/Microsoft.Resources/deployments/<redacted>",
  "message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.",
  "details": [
    {
      "code": "ResourceDeploymentFailure",
      "target": "/subscriptions/<redacted>/resourceGroups/<redacted>/providers/Microsoft.Resources/deployments/hqknsv5x2gvjy-PostgreSQL-Configurations-1",
      "message": "The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'.",
      "details": [
        {
          "code": "DeploymentFailed",
          "target": "/subscriptions/<redacted>/resourceGroups/<redacted>/providers/Microsoft.Resources/deployments/hqknsv5x2gvjy-PostgreSQL-Configurations-1",
          "message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.",
          "details": [
            {
              "code": "ResourceDeploymentFailure",
              "target": "/subscriptions/<redacted>/resourceGroups/<redacted>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<redacted>/configurations/pgms_wait_sampling.query_capture_mode",
              "message": "The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'.",
              "details": [
                {
                  "code": "ServerBusy",
                  "message": "Server '<redacted>' is busy with another operation. Please try again later."
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "code": "ResourceDeploymentFailure",
      "target": "/subscriptions/<redacted>/resourceGroups/<redacted>/providers/Microsoft.Resources/deployments/hqknsv5x2gvjy-PostgreSQL-Configurations-0",
      "message": "The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'.",
      "details": [
        {
          "code": "DeploymentFailed",
          "target": "/subscriptions/<redacted>/resourceGroups/<redacted>/providers/Microsoft.Resources/deployments/hqknsv5x2gvjy-PostgreSQL-Configurations-0",
          "message": "At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.",
          "details": [
            {
              "code": "ResourceDeploymentFailure",
              "target": "/subscriptions/<redacted>/resourceGroups/<redacted>/providers/Microsoft.DBforPostgreSQL/flexibleServers/<redacted>/configurations/pg_qs.query_capture_mode",
              "message": "The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'.",
              "details": [
                {
                  "code": "ServerBusy",
                  "message": "Server '<redacted>' is busy with another operation. Please try again later."
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

Example Configurations:
    configurations: [
      // Enable Intelligent Performance: Query Performance Insights
      {
        name: 'pg_qs.query_capture_mode'
        value: 'TOP'
        source: 'user-override'
      }
      {
        name: 'pgms_wait_sampling.query_capture_mode'
        value: 'ALL'
        source: 'user-override'
      }
      {
        name: 'track_io_timing'
        value: 'ON'
        source: 'user-override'
      }
    ]

Pipeline references

Pipeline

Type of Change

[X] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Update to documentation

Checklist

[X] I'm sure there are no other open Pull Requests for the same update/change
[ ] My corresponding pipelines / checks run clean and green without any errors or warnings
[ ] My code follows the style guidelines of this project
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation (readme)
[ ] I did format my code

Thank you @coolhome for the PR. I've tested your changes in an isolated branch:

Let me know if you'd like us to merge this PR as its still in draft mode.

@ahmadabdalla it's good to go! I was going to look in setting up my own environment for the test.. still need to look at that.


Empty files

Hi!
While running the plugin on Fiji, some images give empty files with NAN-NAN counts.
Can you advise on how to fix it? I know for a fact the images have positive cells, but I'd like to have them be counted with the rest of the images.
Thanks!
-Alex

Hey Alex,
You could try to play with the threshold and the size filter. However If the images are very different I think is very difficult to find a global setting.
The manual optimization is somthing I would use to test different setting until you are happy with the counts.
I hope it helps.
Carlo


Open Seeds pages

Here some ideas for the Open Seeds pages

Index

Add counts of cohorts and some stats
Add the library

About

Program structure overview
Impact

Inspiration:

Poster: http://bebatut.fr/posters/23/06_elixir_ahm_ols/poster.png
BOSC slides: https://docs.google.com/presentation/d/1GJFhdlBLgC_OIJOXyXv5rc4l5BgCEjQJfXTsAm7OMQo/edit?usp=sharing

I think we fixed this with #688. Can we close this, @bebatut? 🙏🏻


upgrade auth

Closes https://github.com/GoogleCloudPlatform/google-cloud-php/issues/255

Once google/gax is tagged with v0.4 we will re-trigger travis. it's going to fail on this run.

gax v0.4 is out. Restarting the build.


Opensuse Kata-containers repo not available

Hi team,
Centos7Minimal+Docker. I try to install kata with your docs:
https://github.com/kata-containers/documentation/blob/master/install/centos-installation-guide.md
When i want to add a new opensuse repo, i get an error:
# sudo -E VERSION_ID=$VERSION_ID yum-config-manager --add-repo "http://download.opensuse.org/repositories/home:/katacontainers:/release/CentOS_${VERSION_ID}/home:katacontainers:release.repo" Loaded plugins: fastestmirror adding repo from: http://download.opensuse.org/repositories/home:/katacontainers:/release/CentOS_/home:katacontainers:release.repo grabbing file http://download.opensuse.org/repositories/home:/katacontainers:/release/CentOS_/home:katacontainers:release.repo to /etc/yum.repos.d/home:katacontainers:release.repo Could not fetch/save url http://download.opensuse.org/repositories/home:/katacontainers:/release/CentOS_/home:katacontainers:release.repo to file /etc/yum.repos.d/home:katacontainers:release.repo: [Errno 14] HTTP Error 404 - Not Found
And really, repo answer is: Resource is no longer available!
Wait your comments, thx

Hi @vizdrag561 - thanks for reporting.
I've just double-checked the centos install instructions and they work fine [*]. I think you may have missed out the important line before (which sets VERSION_ID):
$ source /etc/os-release

Could source that file and confirm it works for you?

[*] - If you installing on a non-critical development or test system, you could do what I did and "execute" the installation document to ensure you're running exactly what is specified in the install doc:
$ go get -d github.com/kata-containers/documentation
$ go get -d github.com/kata-containers/tests
$ cd $GOPATH/src/github.com/kata-containers/documentation
$ ../tests/.ci/kata-doc-to-script.sh install/centos-installation-guide.md ./centos.sh
$ script -fec 'bash ./centos.sh'

WARNING: This is not a recommended approach and we would strongly encourage you to review the script before running it as it runs commands as root, may make your machine explode, may eat your cat, you get to keep the pieces, etc, etc... :smile:

Hi @vizdrag561 - great! Have fun :smile:
Closing as resolved.


allow persist data volume when delete the VM

Description:
allow the user to persist data volumes while deleting the VM so it can be reused later.

will add an action handler of the VM that the user can select which DV needs to be removed. cc @aiwantaozi

UI is not ready, moving this out

when deleting the VM, the root-disk should be selected by default
need to fix the modal UI button
when deleting a list of VMs, change the Select All to Delete All and default to select.

cc @DaiYuzeng  @WuJun2016

Validated


feat: handler

Current coverage is 100% (diff: 100%)

Merging #6 into master will not change coverage

@@           master    #6   diff @@
===================================
  Files           4     5     +1
  Lines          40    50    +10
  Methods         8    11     +3
  Messages        0     0
  Branches        0     0
===================================
+ Hits           40    50    +10
  Misses          0     0
  Partials        0     0

Powered by Codecov. Last update f1c5e11...1e0dc74


dotnet publish/build --output to plugin directory doesn't seems to be working

I have just dotnet publish .\CS2SharpPlugin --output "D:\SteamLibrary\steamapps\common\Counter-Strike Global Offensive\game\csgo\addons\counterstrikesharp\plugins\HelloWorldPlugin" and then the hot reloader crashed. Not that I can't reload it myself but it is a little bit annoying. Maybe the file wasn't completely built so add a small wait window (like 3 seconds) to reload the plugin?

Oh I just realized I have --self-contained on to debug another issue. Closing this as a non-issue.


Non working code

Hi,
I have a a lot of QR codes the Code is working with. But I have found one, the Script is not working for. The not working code is:
HC1:6BF+70790T9WJWG.FKY4GO0RKPNHILCJ$VBFBBRW170HS8FN0WLCD/OWY01BCEKID97TK0F90KECTHGWJC0FDC:5AIA%G7X+AQB9746HS80:5AIBZ47VF6$A8VL6+0AP7BN46/46R46 463ZACN9+Y9 +AVK4WJCT3EHS8XJC$+DXJCCWENF6OF63W5NW6UF6%JC QE/IAYJC5LEW34U3ET7DXC9 QE-ED8%E.JCBECB1A-:8$966469L6OF6VX6Q$D.UDRYA 96NF6L/5SW6Y57KQEPD09WEQDD+Q6TW6FA7C466KCN9E%961A6DL6FA7D46JPCT3E5JDNA7$Q68465W51S6..DX%DZJC5/DL+8 VD 8D%$EWKEI3D:-C-3EWED1ECW.CBWEY82T92694ZAVIAI3D8WE Y9G+95N9$PC5$CUZCY$5Y$527B789C%HQWK8E5%H4ZL2S/RSUX51KUV:Q07WOK1DHBQZVQLTR4:1LPUR%CT M$MAW.85BNXQNF:JN408DJRP0HX48878CJD9K8BD4:F
Are you able to help me find the issue with this?
Thanks a lot
Lars

Maybe a qr-decode failure, or a copy/paste failure? I cannot decode it with any decoder:
Cyberchef recipe
CBOR decoder

Base45 decoder:
https://dencode.com/string/base45

Hi and thank you.
If you make a QR code from the String for example here:
https://www.qrcode-generator.de
and scan with Compass Check App it will show that it is valid.
This is strange isn't it?

Sorry again:
If I decode on the page you give me:
https://dencode.com/string/base45
it seams to work...

There was an copy paste error, you are right. Here is the right Text from QR, that is working on the decode page but not in this script:
HC1:6BF+70790T9WJWG.FKY4GO0RKPNHILCJ$VBFBBRW170HS8FN0WLCD/OWY01BCEKID97TK0F90KECTHGWJC0FDC:5AIA%G7X+AQB9746HS80:5AIBZ47VF6$A8VL6+0AP7BN46/46R46 463ZACN9+Y9 +AVK4WJCT3EHS8XJC$+DXJCCWENF6OF63W5NW6UF6%JC QE/IAYJC5LEW34U3ET7DXC9 QE-ED8%E.JCBECB1A-:8$966469L6OF6VX6Q$D.UDRYA 96NF6L/5SW6Y57KQEPD09WEQDD+Q6TW6FA7C466KCN9E%961A6DL6FA7D46JPCT3E5JDNA7$Q68465W51S6..DX%DZJC5/DL+8 VD 8D%$EWKEI3D:-C-3EWED1ECW.CBWEY82T92694ZAVIAI3D8WE Y9G+95N9$PC5$CUZCY$5Y$527B789C%HQWK8E5%H4ZL2S/RSUX51KUV:Q07WOK1DHBQZVQLTR4:1LPUR%CT M$MAW.85BNXQNF:JN408DJRP0HX48878CJD9K8BD4:F

There was an additionally copy paste error.
This code is working on decode.com
But not here.
HC1:6BF+70790T9WJWG.FKY4GO0RKPNHILCJ$VBFBBRW170HS8FN0WLCD/OWY01BCEKID97TK0F90KECTHGWJC0FDC:5AIA%G7X+AQB9746HS80:5AIBZ47VF6$A8VL6+0AP7BN46/46R46 463ZACN9+Y9 +AVK4WJCT3EHS8XJC$+DXJCCWENF6OF63W5NW6UF6%JC QE/IAYJC5LEW34U3ET7DXC9 QE-ED8%E.JCBECB1A-:8$966469L6OF6VX6Q$D.UDRYA 96NF6L/5SW6Y57KQEPD09WEQDD+Q6TW6FA7C466KCN9E%961A6DL6FA7D46JPCT3E5JDNA7$Q68465W51S6..DX%DZJC5/DL+8 VD 8D%$EWKEI3D:-C-3EWED1ECW.CBWEY82T92694ZAVIAI3D8WE Y9G+95N9$PC5$CUZCY$5Y$527B789C%HQWK8E5%H4ZL2S/RSUX51KUV:Q07WOK1DHBQZVQLTR4:1LPUR%CT M$MAW.85BNXQNF:JN408DJRP0HX48878CJD9K8BD4:F

Hi,
here is a copy paste error, because in this testbed the sign "star" like * will be changed. So it is not possible to enter the code here. So I have added a text file. The right code is working on https://dencode.com/string/base45 but not here.
Thanks a lot
QR.txt
.

HC1:6BF+70790T9WJWG.FKY*4GO0RKPNHILCJ$VBFBBRW1*70HS8FN0WLCD/OWY01BCEKID97TK0F90KECTHGWJC0FDC:5AIA%G7X+AQB9746HS80:5AIBZ47VF6$A8VL6+0AP7BN46/46R46 463ZACN9+Y9 +AVK4WJCT3EHS8XJC$+DXJCCWENF6OF63W5NW6UF6%JC QE/IAYJC5LEW34U3ET7DXC9 QE-ED8%E.JCBECB1A-:8$966469L6OF6VX6Q$D.UDRYA 96NF6L/5SW6Y57KQEPD09WEQDD+Q6TW6FA7C466KCN9E%961A6DL6FA7D46JPCT3E5JDNA7$Q68465W51S6..DX%DZJC5/DL+8 VD 8D%$EWKEI3D:-C-3EWED1ECW.CBWEY*82T92694ZAVIAI3D8WE Y9G+95N9$PC5$CUZCY$5Y$527B789C%HQWK8E5%H4ZL2S/RS*UX51KUV:Q07WOK1DHBQZVQLTR4:1LPUR%CT M$MAW.85BNXQNF:JN408DJRP0HX48878CJD9K8BD4:F

HC1:6BF+70790T9WJWG.FKY4GO0RKPNHILCJ$VBFBBRW170HS8FN0WLCD/OWY01BCEKID97TK0F90KECTHGWJC0FDC:5AIA%G7X+AQB9746HS80:5AIBZ47VF6$A8VL6+0AP7BN46/46R46 463ZACN9+Y9 +AVK4WJCT3EHS8XJC$+DXJCCWENF6OF63W5NW6UF6%JC QE/IAYJC5LEW34U3ET7DXC9 QE-ED8%E.JCBECB1A-:8$966469L6OF6VX6Q$D.UDRYA 96NF6L/5SW6Y57KQEPD09WEQDD+Q6TW6FA7C466KCN9E%961A6DL6FA7D46JPCT3E5JDNA7$Q68465W51S6..DX%DZJC5/DL+8 VD 8D%$EWKEI3D:-C-3EWED1ECW.CBWEY82T92694ZAVIAI3D8WE Y9G+95N9$PC5$CUZCY$5Y$527B789C%HQWK8E5%H4ZL2S/RSUX51KUV:Q07WOK1DHBQZVQLTR4:1LPUR%CT M$MAW.85BNXQNF:JN408DJRP0HX48878CJD9K8BD4:F

If I insert it as it is you see the * will be changed.
But the code you inserted is the right one.
Do you know, why it did not work in this Programm?

Now it's fixed.


⚠ ClamAV has degraded performance

In e6bf40c, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: ClamAV performance has improved in e1b9c46.


If you can make rtl

If you can make rtl and give me js in github or make branch whatever even if it has problem cause i really need rtl it's really important
If you can?

Feel free to fork the project and try to implement this.

i'm just bad at js

i'm aspnetcore developer C#

just tell me the method or the line that responsible for resizing and i will edit it in my self


Update rosa installation to use AWS sts authentication

Added new parameter to json file, aws_authentication_method.
Authenticating using sts when aws_authentication_method: sts
Cleanup process needs aditional steps when using sts

Codecov Report

Merging #158 (475889b) into master (70617b3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #158   +/-   ##
=======================================
  Coverage   93.45%   93.45%
=======================================
  Files          24       24
  Lines         993      993
=======================================
  Hits          928      928
  Misses         65       65

Flag
Coverage Δ

gha
93.45% <ø> (ø)

python-3.9
93.45% <ø> (ø)

unit
93.45% <ø> (ø)

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

Continue to review full report at Codecov.

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

LGTM. Any reason we shouldn't just move to STS straight away that you can think of @smalleni ?

No reason to not move to STS by default. LGTM


Fix crafting dupe bug with stone buttons

Note: Low priority dupe due to buttons being able to be created with iec command anyway
Reported by melncat#8124 on Discord
the dupe glitch increases the amount of stone buttons in the crafting tables slots by n - 2 where n is the amount of items in the slot
buttons
This bug occurs since itemexchange allows any number of rules above or equal to 2 to be merged into a bulk rule in the crafitng table
however, it only registers the recipe for 2 stone button -> 1 stone button. For some inexplicable reason, when the result is set in a prepare item craft event while there is no matched recipe, instead of decreasing each item in the matrix by 1 when the item is crafted, it actually increases it by n-2. If there are only 1 item in each slot, the recipe behaves as normal, removing each of the stone buttons
since 1-2 is -1, subtracting each button by 1 but 2 buttons will result in the button simply staying in the recipe grid, since 2-2 is 0, and the buttons are increased by 0. 3 will increase it by 1, 4 by 2, etc.
I don't know why this happens, it even happened in older Minecraft versions like 1.12.2
back in an old server i used to play in, one of the plugins registered a recipe for 1 yellow wool = 1 yellow wool
however, it never actually
https://user-images.githubusercontent.com/51345939/214151252-cb28548f-75bf-43e5-9866-3a4bcf3c9403.mp4
registered the recipe to Bukkit, and it simply set the result without a recipe leading to the yellow wool being able to be dupe
The solution for this is to just register the recipes for buttons 3 and above

Related https://github.com/PaperMC/Paper/issues/1822


Import-Excel mix of formats with dates.

Hello I have following excel DATE1 has GENERAL in excel format. DATE2 has DATE excel format :

Now upon execution of
Import-Excel -Path $FileNameFull | Out-GridView
I am getting inconsistent type in second column on rows where values match:

ImportExcelFormatsInconsistentDataRem.xlsx

I did copy and paste values in excel and I can see, that this is excel issue. Still cannot get what is happening in excel :-(

hmm, don't know either

Resolved using this parm: -AsText *


PowerToys Settings won't open

Microsoft PowerToys version
v0.43.0
Running as admin

[X] Yes

Area(s) with issue?
General
Steps to reproduce
Tried to access the Settings.
✔ Expected Behavior
Settings to open
❌ Actual Behavior
PowerToys ran into an issue.
2021-08-24.txt
Other Software
No response

Expection
System.UnauthorizedAccessException: Access to the path 'C:\Users\colin\AppData\Local\Microsoft\PowerToys\PowerToys Run\Cache\Image_version.txt' is denied.
   Source: System.Private.CoreLib
   TargetAssembly: System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
   TargetModule: System.Private.CoreLib.dll
   TargetSite: Microsoft.Win32.SafeHandles.SafeFileHandle ValidateFileHandle(Microsoft.Win32.SafeHandles.SafeFileHandle)
   at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
   at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamWriter.ValidateArgsAndOpenPath(String path, Boolean append, Encoding encoding, Int32 bufferSize)
   at System.IO.StreamWriter..ctor(String path)
   at System.IO.File.WriteAllText(String path, String contents)
   at System.IO.Abstractions.FileWrapper.WriteAllText(String path, String contents)
   at Wox.Infrastructure.Storage.StoragePowerToysVersionInfo.Close()
   at Wox.Infrastructure.Storage.BinaryStorage`1.Save(T data)
   at Wox.Infrastructure.Storage.BinaryStorage`1.TryLoad(T defaultData)
   at Wox.Infrastructure.Image.ImageLoader.Initialize(Theme theme)
   at PowerLauncher.App.<>c__DisplayClass13_0.<OnStartup>b__0()
   at Wox.Infrastructure.Stopwatch.Normal(String message, Action action)
   at PowerLauncher.App.OnStartup(Object sender, StartupEventArgs e)
   at System.Windows.Application.OnStartup(StartupEventArgs e)
   at System.Windows.Application.<.ctor>b__1_0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Hi @Colin-Boyle ,
Could you please check the properties and permissions for the file mentioned in the error?
C:\Users\colin\AppData\Local\Microsoft\PowerToys\PowerToys Run\Cache\Image_version.txt

Ok, have done,


Transformer: whitespace normalizer (except new lines)

Normalize separators (whitespace between arguments etc) and indents.
Related #2.
Indent could be auto detectable for those who have custom indents ie:
Test
[Template]  I am test template
                ${first_arg}
                ${second_arg}
                ${misaligned_arg}

(that's also how robocop detect if line is under/over indented -> it checks lines around statement for comparison)
For first version we should use fixed value (4 spaces, configurable).

Note: SplitTooLongLines from #14 does this too.

Related w/ robotframework/robotframework#3891

Quite a lot of transformers does normalize the whitespace - but only within their scope of work (because we don't want to end up with misaligned code ;)). That's why we need separate transformer only for separators.
Default separator length is 4 spaces, all tabs should be removed, indentation level honoured.


[vendor] Verilator DPI memutil

This change vendors in the Verilator DPI fix that was merged into OpenTitan in this PR: https://github.com/lowRISC/opentitan/pull/19112
It is one step in improving the following PR: https://github.com/lowRISC/ibex-demo-system/pull/51
It also pulls in the rest of the updated lowRISC IP, which required an updated patch and DV file list.

Needs rebasing on master?

I have check all current 4 commits and they LGTM.

Thanks @nbdd0121, I've made the changes to common_project_cfg.hjson. This was due to OpenTitan commit 0bda971


Strange Ref keyword error

Hi all,
as of this morning I am getting the strange error on this part of generated code
global::MemoryPack.Formatters.ListFormatter.SerializePackable(ref tempWriter, ref System.Runtime.CompilerServices.Unsafe.AsRef(value.@KolabCit)); offsets[16] = tempWriter.WrittenCount;
Error in file MemoryPackFormatter.g.cs is
Error	CS1620	Argument 1 must be passed with the 'ref' keyword
I am serializing a simple class
`[DataContract, MemoryPackable(GenerateType.VersionTolerant, SerializeLayout.Sequential)]
public partial class ObavezeDTO
{
public string KolabId { get; set; }
public string? KolabNaziv { get; set; }

public List<KolabCitanjeDTO> KolabCit { get; set; } = new List<KolabCitanjeDTO>();

public List<KolabKomentariDTO> Komentari { get; set; } = new List<KolabKomentariDTO>();

}`
What might be the problem ?
I did not change any code but i did install a new .Net. I was using .Net 8 preview 7 without any problems and yesterday I installed new .Net 8 RC1

Reverting back to .Net 8 Preview 7 fixes the problem
Any info about the next release that supports .Net RC1 ?

Thanks for the interesting report.
I will check it out with RC1.

sorry, I can't reproduce it(using Visual Studio 2022 17.8.0 preview 2.0).

I can confirm that after upgrading VS from 17.8.0 preview 1.0 to 17.8.0 preview 2.0 and installing .Net 8 RC1 the error is gone.


configurable crictl endpoint

When DEPLOY_CRIO_CONFIG is true, both image-endpoint and runtime-endpoint are generated as hard coded values here. This PR is to make them optionally configurable. To configure it, daemonset.crioEndpoint can now be set in values.yaml, which translates to the CRIO_ENDPOINT environment variable in the daemonset.
Found this useful on setups that have dockershim. The default is still set to unix:///run/containerd/containerd.sock, so this should be backwards compatible.

Really appreciate the contribution.
With k8s withdrawing docker support and the tested cloud providers using the crio defaults I wasn't sure that an alternative location would be needed so I left it open but unimplemented.
As you seem to have a need I'm happy to merge once the rustfmt nit is fixed.
Thanks again for the contribution.

Thanks @No9 for accepting this PR!
I have pushed https://github.com/IBM/core-dump-handler/pull/97/commits/3c21b084de5d07f69deccfb5cd8454f2ef56bf5a which will hopefully address rustfmt requirement


Add tfstate s3 remote storage

+1

@xueshanf @libertyy Check out https://github.com/xuwang/kube-aws-terraform which builds a kubernetes cluster with Terraform remote state.  CoreOS is phasing out fleet cluster, so probably we will keep this repo as it is, not put more work here.


Update pyproject.toml

When trying to import the packages, it fails du to the presence of the following properties under tool.setuptools:

keyword
licence
repository

After removing the properties:

Looks good to me. It is now also updated with the right package.

The importation is only looking at what's inside the __init__.py of datastore, meaning that I only have access to what is code inside that file. Plus, it has an import problem since it does not recognize datastore. db, nor datastore..queries`, and others, will try to add them to the package.


parallel vagrant executions

Hi,
have you tried to run it though parallel executions?
How is it performing?
Thanks!

Hi. Nope, I never tried to do that. But VirtualBox should handle it as usual. There are no difference for box itself, if VM works fine.


Pickle support

Our graphite server sags under the weight of all the metrics we publish unless we use the pickle receiver. This change adds support for pickle. It extends the existing GraphiteReport and pulls in jython to handling the pickling of the datapoints (and the unpickling from within the test).
thanks
sam

Sorry, this is way too big a dependency for something as simple as Graphite.

@samperman I'd use this too - if you want to pull it out to another project, I'd consume (and possibly have patches).

+1
@samperman Thanks for doing this, Sam!


Performance platform integration

Add Google Analytics and Google Tag Manager to the staff app to enable generation of GDS performance Platform metrics.
Use Tags, Triggers and events to generate completed events upon form submission.
Initially, I have added the google JS code snippets and I will try configuring the recording of events between Google Tags and Google Analytics events.

👍  code-wise it's ok apart from the little comment above. But I don't know much about Google Tag manager. Is it necessary for this scenario?

I wrote a long description explaining why I used it, but refreshed the page and somehow lost it! 😞
Short-ish reason is:-
Google analytics, when calling "ga('send', 'event',  ...)", fires a GET event.  If that is called from a form.onSubmit action it will sometimes work.  But by no means always.  ONe report was a 50-60% success rate, as the form's POST swamps the GA GET.
Using tag manager, allegedly, allows us to monitor a form submission from a certain page and Tag Manager then fires the GA send event.  After validation has passed.
Pro : Can be updated and managed outside the code-base
Con: It could be a bit obscure for maintaining

Cool, I was particularly worried about the ongoing maintenance. So as long as we document it on Confluence or somewhere, it should be fine. I'll ask you later to give me a quick overview of Google Tag Manager.


feat: integrate starknet-devnet as part of the project to make it easy to play around

As a user, someone might want to use it with devnet for fast prototyping, but they would have to deploy the contracts again, and again.
TL;DR:
This PR adds starknet-devnet as a dependency and allows running it via a simple make devnet, where the running devnet already has contracts deployed so that a user can directly start playing around.
So, for an end-user, using this in dev mode, all they have to do is:
Run devnet:
make devnet

Run RPC:
make run

Here is a description of the changes introduced via this PR:
Virtual Environment with Poetry
Poetry has been used to manage a virtual environment to have starknet-devnet installed, without messing around with the existing system configuration of the user!
Makefile
A Unified makefile for doing all things inside the RPC:

tests
build release
run devnet
run RPC in dev mode
install dependencies, etc.

This gives a very easy-to-consume experience for the final user, whatever they do want to around the project, they can simply use make!
Deployments directory
This directory is handy, as it contains information related various deployments of Kakarot, which could be useful for someone using the RPC. { borrowed from  rpc-sandbox }
.env.example
The formatting of .env.example was wrong as mentioned in #133 , this PR also fixes that + it populates this with default values, which when copied into a .env will work out of the box when in dev mode with starknet-devnet { given user is running it via make devnet }
README
The readme has been updated as per these new changes.
Why are we not automatically running devnet in background as described in the original issue?

too much magic: Automatically running it in the background can be too much magic, if a user is using custom Kakarot contracts, and forgets to run their devnet, the RPC will automatically spinup one, and the user might be confused for some time that why their changes are not reflecting.
require more code added to RPC: This also requires more code to be added to the RPC! Which means more tests and more maintenance around it.

The approach in this PR achieves the goal of making it easy for user to play around the system { i.e not deploy contracts again and again }, without making any change to the source code.

Time spent on this PR: 4-5 hours

Closes #133
Closes #132
Pull Request type

Please check the type of change your PR introduces:

[X] Bugfix
[X] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Testing
[ ] Other (please describe)

Will merge after those two comments.
PS: Created #138 so you can leave kakarotup as is, it'll be replaced in a subsequent PR imho.

lgtm 🔥


Buttons in sample accordion don't have type="button"

https://getbootstrap.com/docs/4.0/components/collapse/#accordion-example

It'd be helpful if you checked before closing. The issue still exists.

@franktopel The docs in the repo already contain the fix. The live docs aren't synced to the repo.

Ah, thanks for the information. I was expecting the docs to always reflect the current master branch.

Actually, that's wrong too. npm install bootstrap installs the code for v4.0.0 not the current "master"

the npm package, and what you get on getbootstrap.com, relate to stable releases. after a stable release, work continues on the repo (with changes, fixes, etc) until the next release...

(of course, if that wasn't clear, it could have been discussed over on https://github.com/twbs/bootstrap/pull/25859 instead of opening a new issue...but anyway)


[Enchancement] Set custom Images as the background.

Enhancement Request Template
Is your enhancement request related to a problem? Please describe.
The current background Image section doesn't have any feature to upload custom images or select any photo from the web other than the given custom images
Describe the enhancement you'd like
In the Background Image section, it would be great to have a custom Image selection for the background image

Possible Implementation Details
We can add new condition where the image is not only of the form "HTTP" but also "data:Image/"

Additional context
Here is a working solution for this:
https://github.com/user-attachments/assets/38191e85-6e09-4189-bb4c-b22cb71eda80

Optional Sections (if relevant):

Are you willing to submit a PR for this enhancement?  Yes
Does this enhancement require changes in documentation? Yes
Note @suryanshsingh2001  : Update FAQs for this

Hey @ suryanshsingh2001, it's @ kirito05 again, as I said in the previous issue, this is one of the features that would be great to add, as it gives more freedom to the user.

Hey @ suryanshsingh2001, it's @ kirito05 again, as I said in the previous issue, this is one of the features that would be great to add, as it gives more freedom to the user.

Hey @kirito05, this feature looks good and aligns with what we needed. You can go ahead and create a PR for this.
One suggestion: could you refine the UI for the custom background button to make it look more polished?

Ok will do that.

https://github.com/user-attachments/assets/41c7208b-ebf0-47a3-b9c2-2be281b2b15d
Is the UI of the Custom button ok or is there anything else that needs to be done?

Hey @kirito05 ,
Try to follow the same design language with all the control buttons

[ ] Remove dotted background for custom background modal
[ ] Remove dotted background for  Upload From Computer
[ ] Rename Upload From Computer button to browse files.
[ ] For Browse files button  use ghost variant of (Button)[https://ui.shadcn.com/docs/components/button] component.
[ ] Make sure paste Image Link here works

In review at preview branch


Can we avoid inconsistencies on non-batched dispatches?

Prompted by https://github.com/reactjs/redux/issues/1415, please read the discussion there. We currently subscribe in componentDidMount but it runs from children first. This has a potential of introducing inconsistencies when a child receives some update state earlier than its parent that passes a state-dependent prop to it.
Would subscribing the parents first fix the inconsistencies? Can we do that somehow (e.g. by passing subscribers up via context)?
Alternatively, can/should we wrap dispatch into ReactDOM.unstable_batchedUpdates() by default like Relay does?
cc @epeli @chandlerprall @tappleby @acdlite

Alternatively, can/should we wrap dispatch into ReactDOM.unstable_batchedUpdates() by default like Relay does?

Obvs this wouldn’t work for React Native. :grin:

If I understand correctly https://github.com/reactjs/redux/issues/1415 is basically dup of #99?

Alternatively, can/should we wrap dispatch into ReactDOM.unstable_batchedUpdates() by default like Relay does?

I think so. I've been using redux-batched-updates in all of my projects and there have been zero issues. More often my apps tend to break if I'm not using it... It will also boost performance in some cases.
But the biggest argument for enabling it by default in my option is that it makes dispatch() consistent. Currently by default dispatch() can surprise you because it works differently depending on when you happen to call it. Ex. onClick vs. setTimeout.
Is there actually any downsides if it's made default?

Obvs this wouldn’t work for React Native.

Any ideas why it is in ReactDOM and not in React itself?
I haven't confirmed that the issue is actually present in React Native but I'm now working on a React Native app so I can easily test if it's not confirmed yet?

Is there actually any downsides if it's made default?

Hah. I just realized I might have answered it myself:

Any ideas why it is in ReactDOM and not in React itself?

Redux nor react-redux  does not depend on react-dom and for a good reason because it's not wanted in React Native or any other non-dom React projects...
Any other reasons?

Would subscribing the parents first fix the inconsistencies? Can we do that somehow (e.g. by passing subscribers up via context)?

This is an interesting idea!
I think I actually proposed at some point that the render should be triggered only from the most top-level connect()ed components but I quickly realized that it would not work because some of the nested connect()ed components would not update in that case. But if we can intercept all the updates during a tick and manually run those updates from the top to the leaves at the end of that tick using some context trick it might just work!
But on the other hand it would be a huge hack and there has been some talking about making the update batching default on all cases  so I don't think it's worth it.

I’m just thinking about something like
getChildContext() {
  return {
    subscribeParentConnectedComponents: this.trySubscribe
  }
}

componentDidMount() {
  this.trySubscribe()
}

trySubscribe() {
  if (!this.unsubscribe) {
    if (this.context.subscribeParentConnectedComponents) {
      this.context.subscribeParentConnectedComponents()
    }
    this.unsubscribe = this.context.store.subscribe(...)
  }
}

OK, so I tried reversing the order. It doesn’t really help.
If the parent calls setState() first, then the child will be re-rendered synchronously, and the child will have stale data as store props. If the child calls setState() first, then we have the same problem, but in reverse way (child store props are up to date but props received from parent are not).
So it’s not really about the order. No matter what order subscribers are called, one of them is going to come after another, and it will cause staleness unless you explicitly tell React to batch updates.
It seems like we can’t really do anything here. At least not by ensuring the subscription order.
I’ll ask about unstable_batchedUpdates() and what’s the RN situation there, but for now I’m closing because most likely this isn’t actionable, and the workaround with calling unstable_batchedUpdates()  yourself works well enough when you really need it.

@gaearon We encountered this same issue early on in development of Relay and are using unstable_batchedUpdates to prevent such discrepancies at the framework level. We have a relayUnstableBatchedUpdates module that is forked to use the appropriate version depending on web/native - see the two versions at https://github.com/facebook/relay/tree/master/src/tools.

Thanks everyone for taking a look and weighing in! I'm very interested if you find out more details about incorporating unstable_batchedUdpates @gaearon

May the present issue be related to that react issue: https://github.com/facebook/react/issues/2410 ?

Is adding .native.js to the module name enough to make React Native prefer it?

@gaearon yup!

Cc @skevy who worked to get the web/native compatibility implemented in Relay.

This would force us to assume ReactDOM outside of RN though. Which might be fine because I don't think people use ReactRedux with any other renderers.

I ran into issues with wrapping dispatch w/ unstable_batchedUdpates. The return values from dispatch is inconsistent: https://github.com/acdlite/redux-batched-updates/issues/1, this was the main reason I ended up writing redux-batched-subscribe.
My only idea is having each connected component being responsible for notifying its own children instead of subscribing directly to the store, this would end up with only the root connected component being subscribed to redux.

This would force us to assume ReactDOM outside of RN though. Which might be fine because I don't think people use ReactRedux with any other renderers.

I've actually considered using react-blessed. Could we wrap the require in try-catch?

See https://github.com/reactjs/react-redux/pull/293.

Oh, it's now using ES2015 imports. Try-catch will not work with. Would it be feasible to opt-in to the old school require and try-catch for that case only?

Using try/catch would break the RN packager, as well as any other packager that tries to statically analyze requires.
try/catch around requires should really be avoided unless you're only targeting a Node environment.

Yeah. For example Webpack allows it but will print annoying warnings.

@gaearon

If the parent calls setState() first, then the child will be re-rendered synchronously, and the child will have stale data as store props. If the child calls setState() first, then we have the same problem, but in reverse way (child store props are up to date but props received from parent are not).

I haven't figure out the root cause of the problem. But if you want to resolve the state store props problem, it is not hard. You can let each subscribed handler return it's own object or null to redux.
The component does NOT do setState() in handleChange(), but let redux do this. So there won't be a state props out-of-sync problem. Is this viable?

@gaearon
If

only root component subscribe to redux store.
all component passing store={this.state.store} to all children.
all container components do this.setState({ store: nextprops.store, ... }) in componentWillReceiveProps()

Do you think the problem will be solved?
This is basically the React way. I think react-redux should NOT setState() outside the React work flow. Store state should only be passed by props in top-down manner, and setState() should only be called in componentWillReceiveProps(). The root cause of the problem should be considered that redux using a single JavaScript object.
Besides, the reference equality check, the gem of redux, could be done in shouldComponentUpdate(). Here, both store state and props is synchronized, and unnecessary render() can be prevented.
If this works, it looks much cleaner than current implementation in react-redux.

Please neglect the post above. It's not correct. Passing store explicitly via props from root to leave essentially trigger a full re-render.

Another Day, Another Proposal, :LOL:

If the parent calls setState() first, then the child will be re-rendered synchronously, and the child will have stale data as store props. If the child calls setState() first, then we have the same problem, but in reverse way (child store props are up to date but props received from parent are not).

So it’s not really about the order. No matter what order subscribers are called, one of them is going to come after another, and it will cause staleness unless you explicitly tell React to batch updates.

It seems like we can’t really do anything here. At least not by ensuring the subscription order.

This time. I propose the redux dispatch call all component's handleChange() twice, and the Component knows if its the first round, or the second one. In first round, redux just tells all Components that a state change occurred, but no Component should call setState() method, we postpone this operation to the second round, and in second round, not all Component's handleChange() are called, depending what value they return in first round.
In the first round, each Component do a reference equality check here. If it is confident that the change is totally irrelevant to itself, it can set this.state to latest store state directly and tells redux that don't call me in second round. This violates React's convention, but if we do not have only one object as whole app's state, this is reasonable.
If it is not confident about that, it saves the new store state to a local variable. This indicates that the Component need to be reconciled but the action is postponed to the second round. It tells this to redux by return value.
(There may be a possible pitfall here, the assumption should be: even if later, in the second round, the ancestor or parent's setState() fires, a new props is passed down, it is irrelevent to the states anymore. If not sure, choose the second choice.)
In second round, redux only calls handleChange() to Components that returns true in the first round. redux should make sure parent is always called before children.
In this way, the stale props problem won't happen. And if the child has a stale store state, now it already has a copy of new store state. Since props is secured to be update, it can process the logic easily.
That is to say, for the parent coupled children, there are two possibilities to update its own state. One is when parent setState() fires, and a props is passed down. The children do setState() in its own componentWillReceiveProps() method. The other, the children do this in second round handleChange().
In either case, props is up-to-date and newest state is available. After the processing, the local variable storing newest state should be cleaned.
In batched setState(), it is possible setState() is called twice. But in the second time, the Component knows that it already has the newest state and the reconciliation has been done. It can simple neglect it.
If this works, most node can use shouldComponentUpdate() to prevent unnecessary re-rendering, it's better than memoization in most case.
Hope to hear your comments, if it will work, this time.

@tappleby

My only idea is having each connected component being responsible for notifying its own children instead of subscribing directly to the store, this would end up with only the root connected component being subscribed to redux.

I agree with that.
It looks to me an antipattern to have Parent > Child, both using connect, and parent passing down props to child. If Child has to receive props from Parent, the parent could pass as props everything the child needs. I don't really see any advantage of the child receiving state from both props and connect at the same time and it's probably better to choose one or the other but not both at the same time.
@epeli

But the biggest argument for enabling it by default in my opinion is that it makes dispatch() consistent. Currently by default dispatch() can surprise you because it works differently depending on when you happen to call it. Ex. onClick vs. setTimeout.

Do you mean that dispatches from event handlers are batched automatically? If that's the case yes it's probably worth batching automatically on dispatches to have a consistent behavior, even if I still think the issue described here can be avoided in the first place.

AFAIK the plan in React is to always batch eventually so this might become a non-issue later.

I have an idea that might solve this. It would require tweaking the way subscribe() works. subscribe(listener) would become subscribe(listener, [priority]). Then when the store state changes, listeners would fire by priority in ascending order. (subscribe should probably store them in that order).
Now, once subscribe() has that, connect can make use of another context field...let's call it connectedComponentDepth. It would use that depth as its priority when subscribing, and also redefine it as a childContext with value +1. Given this, parent components would always have a better priority than their children and so would have its listener invoked first.

@slorber

Do you mean that dispatches from event handlers are batched automatically?

Yes.

Is it fixed in any of 4.x.y versions?
Is it fixed in any of 5.x.y versions?
(I find it difficult to tell what is the semantic of "Closed")

@qbolec : Yes, React-Redux v5 introduces top-down subscriptions, which resolves the issues described here.