Inconsistent handling of popup.target when inline: true.

If a Popup is marked as inline with a specific target then it is expected that the .ui.popup selector will find the inline elements as a later sibling of the target (this is fine).  Unfortunately after that it stores the root popup element in settings.popup which disables much of the inline popup specific code.
Additionally to this, when a non-inline popup is inserted into the DOM it is appended to the parent of the activating element instead of the parent of the target.  These interact to take inline popup elements from being a sibling of the target to being a sibling of the trigger.
See popup.js.

There are many edge cases which this particular set of constraints is used for (which have accumulated from having this component around in the lib for the last few years).
If there's a specific issue with placement/layout you can help me out by creating a test case.
I recommend in general specifying an existing popup with settings.popup if possible, the auto-discovery feature was added to make the code simpler in many cases, but its not as granular.

I'll have to wait till Monday to set up a test case for you, but the general suggestion I would make is that I think the pop up should be appended to the target's parent and not the trigger's.  The case I have is a popup triggered by the .link.icon of an .icon.input, targeting the .icon.input.  The problem is the popup is being pulled inside the .icon.input instead of being beside it and this is messing up the formatting of other inputs within the popup.  This problem is really irrespective of the use of inline but there is code to protect against this case if inline is true, but the code is disabled by the fact that the inline popup is stored in settings.popup.

Here's the fiddle.
Observe how if you click the clock icon to bring up the popup when you go to type into the text field in the popup your cursor is offset by the icon size even though the input on the popup sheet is not an .icon.input.  This is because the popup has been dragged into the .icon.input to be a sibling of the .link.icon so all of its inputs become .icon.input as well.
I think the popup should always be a sibling of the target not the trigger.

For my case (not sure if there are side effects) simply removing the assignment to settings.popup for inline popups fixed it.

It's clear to me that popup should be positioned next to settings.target (because the target might have a different coordinate system than activator), so that is indeed a bug.
I'm unsure of how settings.preserve play into what you're describing. I'm also unsure what bug I'm suppose to be observing in the test case. Can you help clarify?

The fiddle was just an example of my use case and how I found the problem.  The popup is pulled inside the .icon.input and this changes the styling of the input in the popup.  It's not the best example but it was what I had to hand.
The change of settings.popup = $popup to settings.preserve = true was just a work-around.  It was the simplest change to make the code work for my case, as it triggered inline popup handling code which does the correct thing re: target but is excluded if settings.popup is set.
I think the intended behaviour of inline popups being stored in settings.popup is correct in general, and then preserve has orthogonal behaviour, so you can ignore those suggestions.  The refresh function really needs refactoring but once that's done I think the rest should be fine.

I'm unable to determine a specific required change for how popup is handled. I'd be happy to work at fixing specific test cases where popup is pulling the wrong element or offset.
Feel free to open another issue if that is the case.

I don't understand your closure message.  I have show there is dead code that needs to be restored for correct behaviour, I provided a specific required change that resolves the issue for me (although I am unaware of possible side effects of this change), and I have provided a test case which shows the popup is being moved (and misplaced) in the DOM which causes CSS problems.
What else do I need to provide?


[FEATURE REQUEST] Better user management

Is your feature request related to a problem? Please describe.
I cannot completely remove a user, I can only "disable them".
Describe the solution you'd like
I would love if I could delete users completely from the admin panel. Also an optional setting for users to allow them to disable their own account would be neat as well. Allowing users only to disable their account would be useful in case of needing to recover their files. For example if one user uploaded malware to the server and "deleted" their account. Of course they can just permanently delete the file themselves but just a food for thought
Additional context
none

Thanks for opening this issue.
For the time being there are no plans on letting users close their own accounts.
When it comes to removing users, we went with the decision of deactivating them instead of deleting for database consistency. If you were to delete a user and not purge them, the association with files, albums, quarantined files, etc would become quite hectic to keep track of.
I'll think about it a bit more but I don't see this being a thing for the time being.


Make std.meta.GenericEraseAll non-recursive

Instantiations of GenericEraseAll when building Phobos decreased from 2113 (1043 unique) to 157 (all unique).

This seems to consistently fail vibe.d with:
utils/vibe/internal/meta/codegen.d(95,2): Error: static assert:  `"(A, const(B))" == "(A, B)"` is false

@n8sh What are your plans for this PR?

@RazvanN7 I'll put this on ice for now. May reopen later, may not.


fixed #553: grammar in message (possible outdated)

Corrected the grammar in the warning about the outdated lombok dependency.

Codecov Report

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

@@            Coverage Diff            @@
##             master     #554   +/-   ##
=========================================
  Coverage     64.72%   64.72%
  Complexity     1494     1494
=========================================
  Files           177      177
  Lines          5276     5276
  Branches       1179     1179
=========================================
  Hits           3415     3415
  Misses         1360     1360
  Partials        501      501

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 3588420...a1cf052. Read the comment docs.

Thank you!


[FEATURE] Publish older major versions of the Python Client SDK as a separate packages

Is your feature request related to a problem?
Users may want to have both the 1.x and 2.x version of the Python Client SDK available in their application.  As an example, I'm currently working on a library for testing upgrades across major versions of the OpenSearch core engine and I want to be able to talk to both the "old" and "new" cluster as part of a snapshot/restore process.
What solution would you like?
Publish the latest minor version of each major version as a separate Python package that can be imported separately with independent namespaces.  Elasticsearch does this for its Python client [1].
[1] https://github.com/elastic/elasticsearch-py/blob/7.10/docs/sphinx/index.rst
What alternatives have you considered?
If y'all can offer me an alternative way to use both the Client SDK 1.x and 2.x in my Python app, I'm open to it; but this seems like a pretty straightforward solution
Do you have any additional context?
N/A

Per convo w/ @wbeckler - our team decided to re-implement the client ourselves rather than use the existing Python client, meaning this is not a blocker for us.  However, I think this is still worth doing as it could be a blocker for others in the community and appears to be a light lift to set up.

@chelma Is there a discussion somewhere? Another client seems like a lot of extra work.

@wbeckler - Per my read of the updated compatibility matrix, the latest version of the client is compatible with all version of OpenSearch, meaning there is no need to publish historical versions for backwards compatibility reasons.  Is that the plan going forward?  If so - we can resolve.
@dblock - Our team discussed it.  @kartg had the idea that relying on a language-specific client API introduces another variable that we need to consider/test as part of the UTF (e.g. different behavior in the python vs. java client).  Combined with indications from our UX research sessions that many users roll their own clients anyways, we decided to test against the REST interface presented by ElasticSearch/OpenSearch rather than go through a language-specific client.  So we're not so much making a full client as just making a light wrapper around the REST interface.  Hope this clarifies things?

@wbeckler - Per my read of the updated compatibility matrix, the latest version of the client is compatible with all version of OpenSearch, meaning there is no need to publish historical versions for backwards compatibility reasons. Is that the plan going forward? If so - we can resolve.

This is not the plan forever. Beyond server-side compatibility we may be introducing breaking changes in the client itself (for example dropping support for an older version of Python). Generally, clients follow semver, therefore any breaking change (server side API, python version) will be a major increment of the client's version. Related to server APIs we will continue ensuring that clients are compatible with 2 major versions (see https://github.com/opensearch-project/opensearch-clients/issues/17).

@dblock - ... Hope this clarifies things?

Yes, thank you. I do think you'll reimplement many constructs that exist in the client, but c'est la vie.

I'm going to close this. You can get older versions of the client from the package manager, and it doesn't seem like the original ask is useful anymore. @chelma LMK if otherwise!


Multi threading the Document Rendering

Hi @ThomasHoevel / @StLange
This is only a question. I am using the following code to render the PDF document and at the same time monitor the progress. I have removed the progress monitoring code for simplicity.
    Dim pdfRenderer = New PdfDocumentRenderer(True) With {.Document = report}
    pdfRenderer.PrepareRenderPages()
    For i As Integer = 1 To pdfRenderer.DocumentRenderer.FormattedDocument.PageCount
        Dim page = pdfRenderer.PdfDocument.AddPage()
        Dim pageInfo As PageInfo = pdfRenderer.DocumentRenderer.FormattedDocument.GetPageInfo(i)
        page.Width = pageInfo.Width
        page.Height = pageInfo.Height
        page.Orientation = pageInfo.Orientation
        Using gfx As PdfSharp.Drawing.XGraphics = PdfSharp.Drawing.XGraphics.FromPdfPage(page)
            gfx.MUH = If(pdfRenderer.Unicode, PdfFontEncoding.Unicode, PdfFontEncoding.WinAnsi)
            pdfRenderer.DocumentRenderer.RenderPage(gfx, i)
        End Using
    Next
    pdfRenderer.PdfDocument.PageLayout = PdfSharp.Pdf.PdfPageLayout.SinglePage

The PDF document is around 3500 pages. It takes about 130 seconds to prepare the pages and another 100 seconds to render. Is there a way i can incorporate multi threading to speed things up? My simplistic attempts to do that for the rendering have failed.
Thanks,
Anthony

Is anyone able to help with this?

Anyone now? The original question is aimed at two persons only.
Not my area of expertise. No definite answer, just some guesses.
Currently a new section starts on a new page. It could be possible to use multi-threading for the layout process using one thread for each section.
It should be possible to render multi-threaded using one thread per page, but it may be necessary to add pages single-threaded (using a semaphore).
I don't know if rendering is thread-safe. This may require changes in MigraDoc or PDFsharp.
There are some locks in the font management of PDFsharp, but multi-threading was not yet tested intensively.
You ask if you can do it. I cannot judge your abilities. I'm sure it can be done in general. I'm not sure if I can do it. I cannot guess how long it would take me.

Thank you for your help. I appreciate it. I will try your suggestions.

Things are a bit more complicated than I realised one hour ago.
I guess you have to serialise all calls that lead to new objects in the PDF file.
Pages: You can easily serialise these calls in your code: call AddPage() for all pages before starting the first render thread.
Fonts: There are unverified reports that the locking mechanism for fonts in PDFsharp was not working. Known workaround: Use a single thread to create a dummy PDF that uses all the fonts you will ever need.
If your MigraDoc document uses e.g. Arial, Courier, and Times, then create a page with text in Arial Regular, Arial Bold, Arial Italic, Arial Bold Italic, Courier Regular, Courier Bold and so forth.
It might be worth using the workaround even if it is not needed for fonts as this might simplify dealing with other object types.
Images: I would tackle this by adding a Lock to any DrawImage call in the XGraphics class.
Other objects: There could be more objects I do not currently think of.  Use the same lock you also use for images if there are any other objects.
As always: It could be simpler to get it working for specific MigraDoc documents that use limited features than making a general implementation that works for all MigraDoc features.

Thanks for the follow up comments. When i get to it, i will research what you explained and try to implement it.


[AVM Module Issue]: ACR restricted network access not possible with empty ip ranges

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Bug
Module Name
avm/res/container-registry/registry
(Optional) Module Version
0.3.0
Description
Unwound expect that setting the following options in the module, I would get he ACR with restricted network access, but as I use it with private endpoints, it has public network access disabled
networkRuleSetDefaultAction: 'Deny'
publicNetworkAccess: 'Disabled'
networkRuleSetIpRules: []

The issue is in the line here, as empty also returns true.
I would suggest to change it to e.g.
// set var for public network access
var publicNetworkAccessMode = !empty(publicNetworkAccess)
      ? any(publicNetworkAccess)
      : (!empty(privateEndpoints) && empty(networkRuleSetIpRules) ? 'Disabled' : null)

// in the AVM

publicNetworkAccess: publicNetworkAccessMode
networkRuleSet: !empty(networkRuleSetIpRules) || (networkRuleSetDefaultAction == 'Deny' && publicNetworkAccessMode == 'Enabled')
      ? {
          defaultAction: networkRuleSetDefaultAction
          ipRules: networkRuleSetIpRules
        }
      : null

(Optional) Correlation Id
No response

Hey @JPEasier, please take a moment to triage this issue if you can 💪

@Krenol Thanks for your suggestion. I think that would help!


unable to confirm transaction on pNFT transfer

I'm trying to send pNFTs and am getting the following error:
`
Error: unable to confirm transaction. This can happen in situations such as transaction expiration and insufficient fee-payer funds
Caused by:
unable to confirm transaction. This can happen in situations such as transaction expiration and insufficient fee-payer funds
`
I have the funds and am using a private RPC
advised to submit a PR for priority fees

are you developing rust code? which method are you using?
(I have your same problem trying to confirm a swap on PumpFun)


many_foxes are all black

Bevy version
1914a3f288a812667f735ee9e7806cf1560dacc0
Relevant system information
AdapterInfo { name: "AMD Radeon RX 6600", vendor: 4098, device: 29695, device_type: DiscreteGpu, driver: "AMD proprietary driver", driver_info: "22.9.2", backend: Vulkan }
What you did
cargo run --release --example many_foxes
What went wrong
foxes should be orange with a texture, but render black.

No issues on my end
AdapterInfo { name: "NVIDIA GeForce RTX 2070 SUPER", vendor: 4318, device: 7812, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "520.56.06", backend: Vulkan }

I also have a AMD Radeon RX 6600, I’ll check that tomorrow :)

Could you run with RUST_LOG=info cargo run --release --example many_foxes to see which texture format is in use in the terminal output, like this of mine:
2022-11-10T03:12:43.047254Z  INFO wgpu_core::device: Created render pipeline Valid((10, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("shadow_pipeline"), layout: Some((8, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (10, 1, Vulkan), entry_point: "vertex" }, buffers: [VertexBufferLayout { array_stride: 56, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x3, offset: 0, shader_location: 0 }, VertexAttribute { format: Uint16x4, offset: 48, shader_location: 4 }, VertexAttribute { format: Float32x4, offset: 32, shader_location: 5 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: Some(DepthStencilState { format: Depth32Float, depth_write_enabled: true, depth_compare: GreaterEqual, stencil: StencilState { front: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, back: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, read_mask: 0, write_mask: 0 }, bias: DepthBiasState { constant: 0, slope_scale: 0.0, clamp: 0.0 } }), multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: None, multiview: None }
2022-11-10T03:12:43.058678Z  INFO wgpu_core::device: Created buffer Valid((6, 2, Vulkan)) with BufferDescriptor { label: None, size: 4, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T03:12:43.058860Z  INFO wgpu_core::device: configuring surface with SurfaceConfiguration { usage: RENDER_ATTACHMENT, format: Bgra8Unorm, width: 2544, height: 1460, present_mode: AutoNoVsync, alpha_mode: Auto }

Could you run with RUST_LOG=info cargo run --release --example many_foxes to see which texture format is in use in the terminal output, like this of mine:
_mode: Auto }

2022-11-10T06:55:16.025937Z  INFO wgpu_core::device: Created buffer Valid((12, 1, Vulkan)) with BufferDescriptor { label: None, size: 64, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T06:55:16.035772Z  INFO wgpu_core::device: configuring surface with SurfaceConfiguration { usage: RENDER_ATTACHMENT, format: Bgra8UnormSrgb, width: 1600, height: 900, present_mode: AutoNoVsync, alpha_mode: Auto }
2022-11-10T06:55:16.046037Z  INFO wgpu_core::device: Automatically choosing presentation mode by rule AutoNoVsync. Chose Immediate
2022-11-10T06:55:16.046332Z  INFO wgpu_core::device: Automatically choosing alpha mode by rule Auto. Chose Opaque
2022-11-10T06:55:16.057988Z  INFO wgpu_core::device: Created texture Valid((9, 1, Vulkan)) with TextureDescriptor { label: Some("main_texture_a"), size: Extent3d { width: 1600, height: 900, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: TEXTURE_BINDING | RENDER_ATTACHMENT }
2022-11-10T06:55:16.063618Z  INFO wgpu_core::device: Created render pipeline Valid((0, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("bloom_downsampling_prefilter_pipeline"), layout: Some((0, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Vulkan), entry_point: "fullscreen_vertex_shader" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 1, Vulkan), entry_point: "downsample_prefilter" }, targets: [Some(ColorTargetState { format: Rgba16Float, blend: None, write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }

Same result for me but at the back there are some color stripes. that looks more like an issue from lightning to me.
log:
2022-11-10T16:17:14.632808Z  INFO winit::platform_impl::platform::x11::window: Guessed window scale factor: 1
2022-11-10T16:17:14.650161Z  INFO wgpu_hal::vulkan::instance: Unable to find extension: VK_EXT_swapchain_colorspace
2022-11-10T16:17:14.654692Z  INFO wgpu_hal::vulkan::instance: Instance version: 0x4030e2
2022-11-10T16:17:14.654716Z  INFO wgpu_hal::vulkan::instance: Enabling device properties2
2022-11-10T16:17:14.661379Z  INFO wgpu_core::instance: Adapter Vulkan AdapterInfo { name: "AMD Radeon RX 6600 (RADV NAVI23)", vendor: 4098, device: 29695, device_type: DiscreteGpu, driver: "radv", driver_info: "Mesa 22.2.2", backend: Vulkan }
2022-11-10T16:17:14.661423Z  INFO bevy_render::renderer: AdapterInfo { name: "AMD Radeon RX 6600 (RADV NAVI23)", vendor: 4098, device: 29695, device_type: DiscreteGpu, driver: "radv", driver_info: "Mesa 22.2.2", backend: Vulkan }
2022-11-10T16:17:14.682231Z  INFO wgpu_core::device: Created texture Valid((0, 1, Vulkan)) with TextureDescriptor { label: None, size: Extent3d { width: 1, height: 1, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: COPY_DST | TEXTURE_BINDING }
2022-11-10T16:17:14.683534Z  INFO wgpu_core::device: Created texture Valid((1, 1, Vulkan)) with TextureDescriptor { label: None, size: Extent3d { width: 1, height: 1, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: COPY_DST | TEXTURE_BINDING }
2022-11-10T16:17:14.683726Z  INFO wgpu_core::device: Created texture Valid((2, 1, Vulkan)) with TextureDescriptor { label: None, size: Extent3d { width: 1, height: 1, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: COPY_DST | TEXTURE_BINDING }
2022-11-10T16:17:14.685644Z  INFO wgpu_core::device: Created texture Valid((3, 1, Vulkan)) with TextureDescriptor { label: None, size: Extent3d { width: 1, height: 1, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: COPY_DST | TEXTURE_BINDING }
2022-11-10T16:17:14.779615Z  WARN many_foxes: This is a stress test used to push Bevy to its limit and debug performance issues. It is not representative of an actual game. It must be run in release mode using --release or it will be very slow.
2022-11-10T16:17:14.779644Z  INFO many_foxes: Spawning 1000 foxes...
Animation controls:
  - spacebar: play / pause
  - arrow up / down: speed up / slow down animation playback
  - arrow left / right: seek backward / forward
  - return: change animation
2022-11-10T16:17:14.783928Z  INFO wgpu_core::device: Created buffer Valid((0, 1, Vulkan)) with BufferDescriptor { label: None, size: 64, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.784041Z  INFO wgpu_core::device: Created texture Valid((4, 1, Vulkan)) with TextureDescriptor { label: Some("point_light_shadow_map_texture"), size: Extent3d { width: 1024, height: 1024, depth_or_array_layers: 6 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Depth32Float, usage: TEXTURE_BINDING | RENDER_ATTACHMENT }
2022-11-10T16:17:14.784109Z  INFO wgpu_core::device: Created texture Valid((5, 1, Vulkan)) with TextureDescriptor { label: Some("directional_light_shadow_map_texture"), size: Extent3d { width: 4096, height: 4096, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Depth32Float, usage: TEXTURE_BINDING | RENDER_ATTACHMENT }
2022-11-10T16:17:14.784139Z  INFO wgpu_core::device: Created buffer Valid((1, 1, Vulkan)) with BufferDescriptor { label: None, size: 1184, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.784238Z  INFO wgpu_core::device: Created texture Valid((6, 1, Vulkan)) with TextureDescriptor { label: None, size: Extent3d { width: 1, height: 1, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: COPY_DST | TEXTURE_BINDING }
2022-11-10T16:17:14.784249Z  INFO wgpu_core::device: Created buffer Valid((2, 1, Vulkan)) with BufferDescriptor { label: None, size: 12, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.784447Z  INFO wgpu_core::device: configuring surface with SurfaceConfiguration { usage: RENDER_ATTACHMENT, format: Bgra8UnormSrgb, width: 940, height: 1040, present_mode: AutoNoVsync, alpha_mode: Auto }
2022-11-10T16:17:14.784326Z  INFO wgpu_core::device: Created buffer Valid((3, 1, Vulkan)) with BufferDescriptor { label: None, size: 4, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.784293Z  INFO wgpu_core::device: Created texture Valid((7, 1, Vulkan)) with TextureDescriptor { label: Some("view_depth_texture"), size: Extent3d { width: 940, height: 1040, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 4, dimension: D2, format: Depth32Float, usage: RENDER_ATTACHMENT }
2022-11-10T16:17:14.784569Z  INFO wgpu_core::device: Created buffer Valid((4, 1, Vulkan)) with BufferDescriptor { label: None, size: 144, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.784689Z  INFO wgpu_core::device: Automatically choosing presentation mode by rule AutoNoVsync. Chose Immediate
2022-11-10T16:17:14.784700Z  INFO wgpu_core::device: Automatically choosing alpha mode by rule Auto. Chose Opaque
2022-11-10T16:17:14.786062Z  INFO wgpu_core::device: Created buffer Valid((5, 1, Vulkan)) with BufferDescriptor { label: None, size: 16384, usage: COPY_DST | UNIFORM, mapped_at_creation: false }
2022-11-10T16:17:14.786093Z  INFO wgpu_core::device: Created buffer Valid((7, 1, Vulkan)) with BufferDescriptor { label: None, size: 59904, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.786132Z  INFO wgpu_core::device: Created buffer Valid((8, 1, Vulkan)) with BufferDescriptor { label: None, size: 64, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.786138Z  INFO wgpu_core::device: Created buffer Valid((6, 1, Vulkan)) with BufferDescriptor { label: None, size: 1440, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.786222Z  INFO wgpu_core::device: Created buffer Valid((9, 1, Vulkan)) with BufferDescriptor { label: Some("Mesh Vertex Buffer"), size: 128, usage: VERTEX, mapped_at_creation: true }
2022-11-10T16:17:14.786596Z  INFO wgpu_core::device: Created texture Valid((9, 1, Vulkan)) with TextureDescriptor { label: Some("main_texture_a"), size: Extent3d { width: 940, height: 1040, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: TEXTURE_BINDING | RENDER_ATTACHMENT }
2022-11-10T16:17:14.786607Z  INFO wgpu_core::device: Created buffer Valid((11, 1, Vulkan)) with BufferDescriptor { label: None, size: 64, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.786646Z  INFO wgpu_core::device: Created buffer Valid((10, 1, Vulkan)) with BufferDescriptor { label: None, size: 32, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.786680Z  INFO wgpu_core::device: Created texture Valid((10, 1, Vulkan)) with TextureDescriptor { label: Some("main_texture_b"), size: Extent3d { width: 940, height: 1040, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: TEXTURE_BINDING | RENDER_ATTACHMENT }
2022-11-10T16:17:14.786684Z  INFO wgpu_core::device: Created buffer Valid((12, 1, Vulkan)) with BufferDescriptor { label: Some("Mesh Index Buffer"), size: 24, usage: INDEX, mapped_at_creation: true }
2022-11-10T16:17:14.787020Z  INFO wgpu_core::device: Created texture Valid((11, 1, Vulkan)) with TextureDescriptor { label: Some("main_texture_sampled"), size: Extent3d { width: 940, height: 1040, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 4, dimension: D2, format: Rgba8UnormSrgb, usage: RENDER_ATTACHMENT }
2022-11-10T16:17:14.791762Z  INFO wgpu_core::device: Created render pipeline Valid((0, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("bloom_upsampling_final_pipeline"), layout: Some((0, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Vulkan), entry_point: "fullscreen_vertex_shader" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 1, Vulkan), entry_point: "upsample_final" }, targets: [Some(ColorTargetState { format: Rgba16Float, blend: Some(BlendState { color: BlendComponent { src_factor: One, dst_factor: One, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: Zero, operation: Add } }), write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.792138Z  INFO wgpu_core::device: Created render pipeline Valid((1, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("upscaling pipeline"), layout: Some((1, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Vulkan), entry_point: "fullscreen_vertex_shader" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (2, 1, Vulkan), entry_point: "fs_main" }, targets: [Some(ColorTargetState { format: Bgra8UnormSrgb, blend: None, write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.792429Z  INFO wgpu_core::device: Created render pipeline Valid((2, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("bloom_downsampling_prefilter_pipeline"), layout: Some((0, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Vulkan), entry_point: "fullscreen_vertex_shader" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 1, Vulkan), entry_point: "downsample_prefilter" }, targets: [Some(ColorTargetState { format: Rgba16Float, blend: None, write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.792701Z  INFO wgpu_core::device: Created render pipeline Valid((3, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("bloom_upsampling_pipeline"), layout: Some((2, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Vulkan), entry_point: "fullscreen_vertex_shader" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 1, Vulkan), entry_point: "upsample" }, targets: [Some(ColorTargetState { format: Rgba16Float, blend: None, write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.793243Z  INFO wgpu_core::device: Created render pipeline Valid((4, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("ui_pipeline"), layout: Some((3, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (3, 1, Vulkan), entry_point: "vertex" }, buffers: [VertexBufferLayout { array_stride: 36, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x3, offset: 0, shader_location: 0 }, VertexAttribute { format: Float32x2, offset: 12, shader_location: 1 }, VertexAttribute { format: Float32x4, offset: 20, shader_location: 2 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (3, 1, Vulkan), entry_point: "fragment" }, targets: [Some(ColorTargetState { format: Rgba8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: SrcAlpha, dst_factor: OneMinusSrcAlpha, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: OneMinusSrcAlpha, operation: Add } }), write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.794362Z  INFO wgpu_core::device: Created render pipeline Valid((5, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("shadow_pipeline"), layout: Some((4, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (4, 1, Vulkan), entry_point: "vertex" }, buffers: [VertexBufferLayout { array_stride: 32, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x3, offset: 0, shader_location: 0 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: Some(DepthStencilState { format: Depth32Float, depth_write_enabled: true, depth_compare: GreaterEqual, stencil: StencilState { front: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, back: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, read_mask: 0, write_mask: 0 }, bias: DepthBiasState { constant: 0, slope_scale: 0.0, clamp: 0.0 } }), multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: None, multiview: None }
2022-11-10T16:17:14.794677Z  INFO wgpu_core::device: Created render pipeline Valid((6, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("bloom_downsampling_pipeline"), layout: Some((0, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Vulkan), entry_point: "fullscreen_vertex_shader" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (1, 1, Vulkan), entry_point: "downsample" }, targets: [Some(ColorTargetState { format: Rgba16Float, blend: None, write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.795262Z  INFO wgpu_core::device: Created render pipeline Valid((7, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("tonemapping pipeline"), layout: Some((5, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (0, 1, Vulkan), entry_point: "fullscreen_vertex_shader" }, buffers: [] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: None, multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (5, 1, Vulkan), entry_point: "fragment" }, targets: [Some(ColorTargetState { format: Rgba16Float, blend: None, write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.802376Z  INFO wgpu_core::device: Created render pipeline Valid((8, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("pbr_opaque_mesh_pipeline"), layout: Some((6, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (6, 1, Vulkan), entry_point: "vertex" }, buffers: [VertexBufferLayout { array_stride: 32, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x3, offset: 0, shader_location: 0 }, VertexAttribute { format: Float32x3, offset: 12, shader_location: 1 }, VertexAttribute { format: Float32x2, offset: 24, shader_location: 2 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: Some(Back), unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: Some(DepthStencilState { format: Depth32Float, depth_write_enabled: true, depth_compare: Greater, stencil: StencilState { front: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, back: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, read_mask: 0, write_mask: 0 }, bias: DepthBiasState { constant: 0, slope_scale: 0.0, clamp: 0.0 } }), multisample: MultisampleState { count: 4, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (7, 1, Vulkan), entry_point: "fragment" }, targets: [Some(ColorTargetState { format: Rgba8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: One, dst_factor: Zero, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: Zero, operation: Add } }), write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.922067Z  INFO wgpu_core::device: Created texture Valid((12, 1, Vulkan)) with TextureDescriptor { label: None, size: Extent3d { width: 1024, height: 1024, depth_or_array_layers: 1 }, mip_level_count: 1, sample_count: 1, dimension: D2, format: Rgba8UnormSrgb, usage: COPY_DST | TEXTURE_BINDING }
2022-11-10T16:17:14.923332Z  INFO wgpu_core::device: Created buffer Valid((14, 1, Vulkan)) with BufferDescriptor { label: None, size: 4, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.923325Z  INFO wgpu_core::device: Created buffer Valid((13, 1, Vulkan)) with BufferDescriptor { label: None, size: 1550848, usage: COPY_DST | UNIFORM, mapped_at_creation: false }
2022-11-10T16:17:14.923382Z  INFO wgpu_core::device: Created buffer Valid((15, 1, Vulkan)) with BufferDescriptor { label: None, size: 256144, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.923546Z  INFO wgpu_core::device: Created buffer Valid((16, 1, Vulkan)) with BufferDescriptor { label: None, size: 59904, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.923906Z  INFO wgpu_core::device: Created buffer Valid((17, 1, Vulkan)) with BufferDescriptor { label: None, size: 64, usage: COPY_DST | UNIFORM, mapped_at_creation: true }
2022-11-10T16:17:14.924031Z  INFO wgpu_core::device: Created buffer Valid((18, 1, Vulkan)) with BufferDescriptor { label: Some("Mesh Vertex Buffer"), size: 96768, usage: VERTEX, mapped_at_creation: true }
2022-11-10T16:17:14.927234Z  INFO naga::back::spv::writer: Skip function Some("mesh_normal_local_to_world")
2022-11-10T16:17:14.927253Z  INFO naga::back::spv::writer: Skip function Some("sign_determinant_model_3x3")
2022-11-10T16:17:14.927259Z  INFO naga::back::spv::writer: Skip function Some("mesh_tangent_local_to_world")
2022-11-10T16:17:14.927399Z  INFO wgpu_core::device: Created render pipeline Valid((9, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("shadow_pipeline"), layout: Some((7, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (8, 1, Vulkan), entry_point: "vertex" }, buffers: [VertexBufferLayout { array_stride: 56, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x3, offset: 0, shader_location: 0 }, VertexAttribute { format: Uint16x4, offset: 48, shader_location: 4 }, VertexAttribute { format: Float32x4, offset: 32, shader_location: 5 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: None, unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: Some(DepthStencilState { format: Depth32Float, depth_write_enabled: true, depth_compare: GreaterEqual, stencil: StencilState { front: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, back: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, read_mask: 0, write_mask: 0 }, bias: DepthBiasState { constant: 0, slope_scale: 0.0, clamp: 0.0 } }), multisample: MultisampleState { count: 1, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: None, multiview: None }
2022-11-10T16:17:14.933240Z  INFO naga::back::spv::writer: Skip function Some("mesh_normal_local_to_world")
2022-11-10T16:17:14.933265Z  INFO naga::back::spv::writer: Skip function Some("sign_determinant_model_3x3")
2022-11-10T16:17:14.933273Z  INFO naga::back::spv::writer: Skip function Some("mesh_tangent_local_to_world")
2022-11-10T16:17:14.933402Z  INFO naga::back::spv::writer: Skip function Some("skin_model")
2022-11-10T16:17:14.934162Z  INFO wgpu_core::device: Created render pipeline Valid((10, 1, Vulkan)) with RenderPipelineDescriptor { label: Some("pbr_opaque_mesh_pipeline"), layout: Some((8, 1, Vulkan)), vertex: VertexState { stage: ProgrammableStageDescriptor { module: (9, 1, Vulkan), entry_point: "vertex" }, buffers: [VertexBufferLayout { array_stride: 56, step_mode: Vertex, attributes: [VertexAttribute { format: Float32x3, offset: 0, shader_location: 0 }, VertexAttribute { format: Float32x3, offset: 12, shader_location: 1 }, VertexAttribute { format: Float32x2, offset: 24, shader_location: 2 }, VertexAttribute { format: Uint16x4, offset: 48, shader_location: 5 }, VertexAttribute { format: Float32x4, offset: 32, shader_location: 6 }] }] }, primitive: PrimitiveState { topology: TriangleList, strip_index_format: None, front_face: Ccw, cull_mode: Some(Back), unclipped_depth: false, polygon_mode: Fill, conservative: false }, depth_stencil: Some(DepthStencilState { format: Depth32Float, depth_write_enabled: true, depth_compare: Greater, stencil: StencilState { front: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, back: StencilFaceState { compare: Always, fail_op: Keep, depth_fail_op: Keep, pass_op: Keep }, read_mask: 0, write_mask: 0 }, bias: DepthBiasState { constant: 0, slope_scale: 0.0, clamp: 0.0 } }), multisample: MultisampleState { count: 4, mask:<PHONE_NUMBER>3709551615, alpha_to_coverage_enabled: false }, fragment: Some(FragmentState { stage: ProgrammableStageDescriptor { module: (10, 1, Vulkan), entry_point: "fragment" }, targets: [Some(ColorTargetState { format: Rgba8UnormSrgb, blend: Some(BlendState { color: BlendComponent { src_factor: One, dst_factor: Zero, operation: Add }, alpha: BlendComponent { src_factor: One, dst_factor: Zero, operation: Add } }), write_mask: RED | GREEN | BLUE | ALPHA | COLOR | ALL })] }), multiview: None }
2022-11-10T16:17:14.952922Z  INFO wgpu_core::device: Created buffer Valid((4, 2, Vulkan)) with BufferDescriptor { label: None, size: 4, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.953076Z  INFO wgpu_core::device: Created buffer Valid((5, 2, Vulkan)) with BufferDescriptor { label: None, size: 59904, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.972234Z  INFO wgpu_core::device: Created buffer Valid((16, 2, Vulkan)) with BufferDescriptor { label: None, size: 4, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.972417Z  INFO wgpu_core::device: Created buffer Valid((14, 2, Vulkan)) with BufferDescriptor { label: None, size: 59904, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.992110Z  INFO wgpu_core::device: Created buffer Valid((5, 3, Vulkan)) with BufferDescriptor { label: None, size: 4, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.992227Z  INFO wgpu_core::device: Created buffer Valid((4, 3, Vulkan)) with BufferDescriptor { label: None, size: 59904, usage: COPY_DST | STORAGE, mapped_at_creation: true }
2022-11-10T16:17:14.998674Z  INFO wgpu_core::hub: Dropping Global
2022-11-10T16:17:15.000027Z  INFO wgpu_core::device: Destroying 2 command encoders

Yes, the issue is caused by the directional light (as @DasLixou suspected). Here is how the scene looks for me with the light removed

oh. so its a problem with directional light that only gets caused on some graphic drivers?

So this is really just a thought but it my be a problem since this commit: https://github.com/bevyengine/bevy/commit/1bd3d8576941d09fc43fef901e1bbbf45b24c544
Would anybody who has these problems try it with the parent commit of the above mentioned?

That's not what broke it for me. I ran a git bisect on it and the breaking commit is 681c9c6dc859be52565609e56ce9dc7f6f1c1f12.

I'll open a PR for it, but as the comment states, there is a reason the algorithm does not want this vector to be normalized. So I don't know what the proper way to fix this is.

Could you test this: https://github.com/bevyengine/bevy/pull/6543?

Could you test this: #6543?

Looks good on my end.


[MWPW-136321] Small Visual Fixes on Template-X

Fixed Width on Default Template-X
Fixed hover effect on horizontal variant

Resolves: MWPW-136321
Test URLs:

Before: https://stage--express--adobecom.hlx.page/docs/authoring/template-x
After: https://mwpw-136321--express--adobecom.hlx.page/docs/authoring/template-x?lighthouse=on

Codecov Report

Merging #353 (c279be4) into stage (d31393a) will decrease coverage by 0.03%.
Report is 5 commits behind head on stage.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##            stage     #353      +/-   ##
==========================================
- Coverage   31.26%   31.23%   -0.03%
==========================================
  Files         122      122
  Lines       25051    25057       +6
==========================================
- Hits         7831     7826       -5
- Misses      17220    17231      +11

Files
Coverage Δ

express/blocks/gen-ai-cards/gen-ai-cards.js
95.57% <100.00%> (-0.34%)
:arrow_down:

express/scripts/embed-videos.js
35.63% <0.00%> (ø)

... and 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Update version for the next release (v0.11.1)

Update to v0.11.1

@curquiza I wasn't sure if/how I can get meili bot itself to make this PR so I tried to replicate it as well as I could. I am assuming after this I just on GitHub?

@curquiza I wasn't sure if/how I can get meili bot itself to make this PR so I tried to replicate it as well as I could. I am assuming after this I just on GitHub?

You cannot, it requires to have some Meili team access
The PR you made is good, and what is expected. Someone from Meili team will review it 😊

bors merge


Update init.py

Removed print statement about API

Thanks for the PR!
Could you also remove the unused import of API_NAME?


CockroachDB: Role-based access control code generation

System information:

Operating system (distribution) and version: os/x 10.15.6 (client)
DBeaver version: 7.2.0
Additional extensions: n/a

Connection specification:

Database name and version: CockroachDB v20.1.5 on Ubuntu 18.04.5 LTS
Driver name: CockroachDB
Do you use tunnels or proxies (SSH, SOCKS, etc)? no

Describe the problem you're observing:
Creating or modifying users, roles and grants on privileges fail when using the CockroachDB adapater. For example, when creating a role, DBeaver passes the role attributes NOINHERIT and NOSUPERUSER that are not valid options in CockroachDB.
Example of generated SQL:
CREATE ROLE db_admin NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN PASSWORD 'password';

In addition, attempting to delete an existing role (occationally) fail with:

CockroachDB does not support pg_total_relation_size().
Steps to reproduce, if exist:

Connect to a CockroachDB database using the adapter
Enable the advanced view
Create a new role, press save.

and

Connect to the CLI console of CockroachDB
Execute: CREATE ROLE test;
Attempt to delete role 'test in DBeaver

Include any warning/errors/backtraces from the logs
n/a

Fixed.

NOINHERIT and NOSUPERUSER is removed from the generated SQL


Sort assignment csv grades breakdown

Motivation and Context

Sort the grades breakdown csv file by student user_names.
Your Changes

Description:
Edited the function in app/models/assignment.rb #summary_csv to sort the student alphabetically by user_names before generative the csv object
Type of change (select all that apply):

[x] Refactoring (internal change to codebase, without changing functionality)

Testing

Tested through web interface
Questions and Comments (if applicable)

Checklist

[x] I have performed a self-review of my own code.
[x] I have verified that the pre-commit.ci checks have passed.
[ ] I have verified that the CI tests have passed.
[ ] I have reviewed the test coverage changes reported on Coveralls.

Pull request to make documentation changes (if applicable)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

10 of 11 (90.91%)  changed or added relevant lines in 1 file are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.0002%) to 91.423%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

app/models/assignment.rb
10
11
90.91%

Files with Coverage Reduction
New Missed Lines
%

spec/models/course_spec.rb
3
99.21%

Totals

Change from base Build<PHONE_NUMBER>:
0.0002%

Covered Lines:
36171

Relevant Lines:
39024

💛  - Coveralls


Typo

https://graph.microsot.com/directory.read should be https://graph.microsoft.com/directory.read.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3d2b34fa-cda9-b2cb-e162-fc3264f120b7
Version Independent ID: 309b767d-7d50-166d-da8e-7b7796100e73
Content: Migrate apps to MSAL.ObjectiveC - Microsoft identity platform
Content Source: articles/active-directory/develop/migrate-objc-adal-msal.md
Service: active-directory
Sub-service: develop
GitHub Login: @TylerMSFT
Microsoft Alias: twhitney

Thanks for catching that. Fixed and will go live by Monday.
#please-close

@TylerMSFT Thanks for the quick response. :+1:


Flag/arg discoverability

Should be easier to figure out what args may be passed to tilt up (either user-defined args, or just the available service names that may be passed). Tab complete would be especially good UX here.

I think tab completion would be the ideal for us. An option to output a greppable list at the command line would give a nice fallback for searching if someone doesn't know the prefix.


[Issue77] Config files modification

Description
Functions allowing for changing the configs in the new project flow.
Blocked by #106 (I would have to make the same changes)
Linked issues
Closes #77
Correct PR Checklist

[x] I have linked an issue (use e.g. closes #1)
[x] I have assigned Reviewers
[x] I have assigned an Description label
[ ] I have assigned a Milestone (if applicable)

@karczewskiPiotr I haven't implemented changing of gatsby-config.js, as in the templates it exports the typescript file, should the code from typescript config be changed and somehow written to the javascript file?


[Issue-2885] Error when fetching balance with Enjin Relay Chain

Related issue(s)

#2885

Is your feature request related to a problem(s)? Please describe.

Fix error when fetching balance with Enjin relay chain

Describe the solution you'd like

Fix error when fetching balance with Enjin relay chain

Describe alternatives you've considered

No

Additional context

No

🚀 Deployed on https://pr-2886--sw-web-runner.netlify.app


Documentation - Invalid links on GitHub wiki

On https://github.com/mozilla/pdf.js/wiki/ are links that compose into .../wiki/wiki/... for example https://github.com/mozilla/pdf.js/wiki/wiki/Frequently-Asked-Questions , but that link is invalid so you can't access the wiki content. Correct link is https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions .

I'll handle it

I have fixed the links now; thank you for reporting this!


Pull the Issue fixing and DevOps change from master to edinburgh

We fixed issue #13, #14, and the Jenkinsfile for DevOps

thanks! @dweomer


Allow singe dots in page path

https://github.com/ChaoticByte/plaintext-encyclopedia/blob/main/main.go#L33
-> change . to ..

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


MinGW Bug

Hi. In MinGW i have errors. Don't know how it fix. Maybe you have some ideas?
Thank you!
In file included from C:\Code\nvwa/debug_new.h:42,
                 from C:\Code\DllMain.cpp:4:
C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/ext/new_allocator.h: In member function '_Tp* __gnu_cxx::new_allocator<_Tp>::allocate(__gnu_cxx::new_allocator<_Tp>::size_type, const void*)':
C:\Code\nvwa/_nvwa.h:57:14: error: expected operator before 'nvwa'
 #define NVWA nvwa
              ^~~~
In file included from C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/i686-w64-mingw32/bits/c++allocator.h:33,
                 from C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/bits/allocator.h:46,
                 from C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/string:41,
                 from C:\Code\MMM.h:3,
                 from C:\Code\DllMain.cpp:6:
C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/ext/new_allocator.h:111:37: error: expected ')' before 'nvwa'
  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
                                     ^
                                     )
C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/ext/new_allocator.h:111:37: error: expected ';' before 'nvwa'
  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
                                     ^
                                     ;
C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/ext/new_allocator.h:111:60: error: expected type-specifier before ')' token
  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
                                                            ^
In file included from C:\Code\nvwa/debug_new.h:42,
                 from C:\Code\DllMain.cpp:4:
C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/bits/stl_tempbuf.h: In function 'std::pair<_Tp*, int> std::get_temporary_buffer(std::ptrdiff_t)':
C:\Code\nvwa/_nvwa.h:57:14: error: expected operator before 'nvwa'
 #define NVWA nvwa
              ^~~~
In file included from C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/memory:66,
                 from C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/thread:39,
                 from C:\Code\MMM.h:4,
                 from C:\Code\DllMain.cpp:6:
C:/mingw/mingw32/lib/gcc/i686-w64-mingw32/8.1.0/include/c++/bits/stl_tempbuf.h:94:45: error: expected ')' before 'nvwa'
    _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
                                             ^
                                             )

#ifdef _DEBUG
   #include "nvwa/debug_new.h"
#endif

// On Init
#ifdef _DEBUG
	fopen_s(&nvwa::new_output_fp, "c:\\tools\\leak.txt" , "w");
	nvwa::new_autocheck_flag = false;
	nvwa::new_verbose_flag = true;
#endif

// On destroy
#ifdef _DEBUG
	nvwa::check_leaks();
#endif

You did include a complete test case, so I have to guess a bit. Did you put the inclusion of "nvwa/debug_new.h" after all other includes, esp. the system include files?

mvwa.zip
Attached simple cmake project. Bug was in this toolchain https://sourceforge.net/projects/mingw-w64/

Just as I guessed, the code includes string.h and other stuff after including debug_new.h. Errors would occur any time the included file invokes operator new (as versus a simple new operator). Include debug_new.h last.

Yep. QuikLua.h load string.h thread.h mutex, I can not remove them. Maybe have it any decision?
Leak found, works in MSVC. Mingw throw error.
#include <Windows.h>
#include "Lua.h"
#ifdef _DEBUG
	#include "nvwa/debug_new.h"
#endif
#include "QuikLua.h"
#include "Helper.h"

Work in both compilators, but leak have not found.
#include <Windows.h>
#include "Lua.h"
#include "QuikLua.h"
#include "Helper.h"
#ifdef _DEBUG
	#include "nvwa/debug_new.h"
#endif

Leaks should always be found, regardless of whether debug_new.h is included or not. The difference is whether the file/line information can be reported or not.


Explain better for speed at runtime

I read both:

https://doc.rust-lang.org/cargo/reference/profiles.html#opt-level
https://github.com/johnthagen/min-sized-rust#optimize-for-size

What I don't understand is which speed gain I'm changing if I use:
[profile.release]
opt-level = "z"

instead of:
[profile.release]
opt-level = 3

Is it right that today opt-level = 3 is the best setting (for opt-level section) for runtime speed?

If I instead use opt-level = "z" I'm decreasing runtime performance, right?

I'm not interested in building/compiling speed.

My experience with these options as a Seed maintainer - some algorithms with s/z can be almost 2x slower, but the app can be also 2x smaller.
So it really depends on the specific use-case - you should write at least some benchmarks and try multiple options.

@frederikhors This repo is concerned with helping Rust developers generate the smallest possible binary size at the expense of all else. Many of the recommendations in this repo would not make sense unless you were trying to optimize soley for size.
For what the opt-level's specifically do, I do agree that the cargo docs could be improved but I suggest that an issue be opened in that repo to request. That question is mostly for rustc / LLVM.

@johnthagen https://github.com/rust-lang/cargo/issues/8031


Follower sorting

I think putting followers at the top and bottom in certain situations leads to easier to use UI. I was initially going to do separate PRs but realized that I needed the sorting function. I applied it to some places where I think it makes sense. There may be more

Note: For examples I follow luna

Starter packs get followed people sorted to the bottom

When mention a user, followed people are at the top

Mobile searches sort followed people to the top

Desktop searches sort followed people to the top

are you sure 2-3 is actually necessary? in all my responses, the AppView is always returning profiles sorted by followers

I can move 2-4 to another pr but I would like to see them fixed

the AppView always returns who you follow first, and it's been this way since the end of invite-only period

I'm unsure where the data is coming from but in the app none of these lists are sorted like that.

in lists where pagination is involved

I don't think I touched any paginated list?

if this was indeed a problem, this should've been made at the AppView-level, not the app, or at the very least the sorting should not be done after flattening the paginated list.

Can you point me towards where is should make the change?

Ah, sorry for that, I thought the starter packs had paginated queries but I forgot that's not the case.


Using a Shard of Laputa near a claim causes an fireworks show

Shard of Laputa is a item added by Botania, that creates islands by breaking the blocks of the ground and moving them higher. The problem is, if the item is used near a claim where you don't have permission, the item will "be activated" and will try to move blocks, but you don't have permission to. The result is an fireworks show:

Even after a disconnect/reconnect, and even after a server restart, it will still trying to move the blocks infinitely. The only solution is give yourself permission to build in the claim, then the blocks will finally be moved.

Seems that using this outside a claim allows it to go into the claim on current latest spongeforge / gp


added hindi quotes

Added new Hindi quotes

@Gupta-Anubhav12 Just the first quote needs to be removed. The rest looks great!

Btw, could you please fix the chapter translation issue for the table of contents screen in this PR as well?

Sure i'll try

Sure, here are some hints:
Need to add name to the gql query: https://github.com/gita/Bhagavad-Gita-App/blob/264cd678df3ea4c9683baf0b6b0342d307175c8a/bhagavad_gita/lib/screens/chapter_detail/chapter_tableview.dart
And then check the locale and update this line based on the locale: https://github.com/gita/Bhagavad-Gita-App/blob/efd85bec324912d809d4778f88b77d02c4564d29/bhagavad_gita/lib/widgets/tableof_content_Chapter_widget.dart#L50
Something like this:
 (Localizations.localeOf(context).languageCode == 'hi') ? (chapterDetailData
                                    .gitaChapterById!.name ?? "") : chapterDetailData
                                    .gitaChapterById!.nameTranslated ?? ""

Sure, here are some hints:
Need to add name to the gql query: https://github.com/gita/Bhagavad-Gita-App/blob/264cd678df3ea4c9683baf0b6b0342d307175c8a/bhagavad_gita/lib/screens/chapter_detail/chapter_tableview.dart
And then check the locale and update this line based on the locale:
https://github.com/gita/Bhagavad-Gita-App/blob/efd85bec324912d809d4778f88b77d02c4564d29/bhagavad_gita/lib/widgets/tableof_content_Chapter_widget.dart#L50
Something like this:
 (Localizations.localeOf(context).languageCode == 'hi') ? (chapter.name ?? "") : chapter.nameTranslated ?? ""

Yaay, my first flutter PR and I started flutter like a few hours ago

Sure, here are some hints:
Need to add name to the gql query: https://github.com/gita/Bhagavad-Gita-App/blob/264cd678df3ea4c9683baf0b6b0342d307175c8a/bhagavad_gita/lib/screens/chapter_detail/chapter_tableview.dart
And then check the locale and update this line based on the locale:
https://github.com/gita/Bhagavad-Gita-App/blob/efd85bec324912d809d4778f88b77d02c4564d29/bhagavad_gita/lib/widgets/tableof_content_Chapter_widget.dart#L50
Something like this:
 (Localizations.localeOf(context).languageCode == 'hi') ? (chapter.name ?? "") : chapter.nameTranslated ?? ""

Yaay, my first flutter PR and I started flutter like a few hours ago

Awesome, just to double-check, we have fixed it for the "table of contents" screen, right?

yes, sent the wrong ss in last reply
apologies

yes, sent the wrong ss in last reply apologies

Awesome, great job with this!


resurrect OSIM

TODO

This at the end served rather as an example than a regular contribution. The functionality is now already implemented as part of a different pull request so I closing this one.


[Feature] Admin-toggleable link directly to GH source at bottom of each docs page

Problem description
It can be difficult to figure out what page in the GH repo maps to each page in the documentation website.
Why would it be useful?
When you find an issue with a docs page, helps you to go directly to the source. Would make it painless for volunteer contributors to fix a simple typo, for example. Currently I'm working off guessing/memory/referencing docs.yml and none of these are fun.
Describe the solution (optional)
Feature request: Toggleable admin setting to automatically add a link to each documentation page that takes you directly to the corresponding GH source.
Example: Scroll to the bottom of  https://docs.pingcap.com/tidbcloud/connect-via-standard-connection-serverless and click the link just above the "Was this page helpful?" text. It will take you directly to the source of that page in GH.
It also shows the last update timestamp and a link to the previous commit, but in my view, that unnecessarily clutters the UI. I would be happy to see a simple GH logo at the bottom that takes you to the source.

@abvthecity was just talking about this today! Will add to the roadmap.

we're planning to make it easier to edit pages without leaving your browser. I don't think this will be the exact implementation but we're incorporating the problem shared here!


Add sentence explaining user guide

Putting this up for early discussion. Admittedly I struggled on what else to add, both in terms of context, and additional content. Will continue thinking through this through the week in prep for our Friday discussion

What would you think about adding more organization/context to the table of contents, similar to the notes or advanced tutorials sections?

i think its a great idea, a good dimension of organization to add, and I appreciate the nudge. Will update PR

I am happy to merge this. Let me collapse into one commit and mark as ready for review. Thanks Jake

Collapsed to single commit with no code changes. Marked ready for review


B-21685 INT - TOO can create shipment even when no shipments exist on move

Agility ticket
Summary
This BL is to let the TOO add a shipment even when no shipments are on the move (such as the shipments being deleted). The SC could already do that, and I made the TOO match the SC as much as I could while also tidying things up for both.

Gave TOO capability to add a new shipment even when no requested or approved shipments exist on the move
Pulled the SC's "Flag move for financial review" button out of the shipment components and up higher on the page (to match the TOO's view), since it's at the move level and not shipment level

The SC and TOO have slightly different components, as the TOO has a section for Requested and another section for Accepted shipments. The SC only has one section.
In the case of a TOO deleting all the shipments on a move, there would be no way to add new shipments since the Add a new shipment button is tied into both the Accepted and Requested shipment components.
I thought about taking the add a new shipment button out of both of those components and just having it up at the top, but instead went with keeping the existing functionality but then having a separate section just labeled the basic "Shipment" with an Add a new shipment button in the case of neither Accepted or Requested shipments. In the case of no shipments on a move, the SC and TOO will see the same section and button now, and should be able to add a new shipment:

I did make the SC and TOO match as best I could, and pulled the SC's "Flag move for financial review" button out of the shipment components, since it's at the move level and not shipment level.
How to test

Access the app as a customer
Create a move with multiple shipments
View as both SC and TOO and make sure it looks normal
Delete both shipments by clicking on each shipment and clicking "Delete Shipment" towards the top of the page
Verify you can add a shipment as the TOO now

Adding UB Shipments

Have the unaccompanied_baggage FF set to on
Access the app as a customer
Create a move with one or both duty locations being OCONUS
You should be able to create a UB shipment as a customer. Up to you on whether you add one now as a customer (we will be testing adding as an office user)
Complete the move
As the SC, verify that you can see UB as a shipment type to add after clicking on the Add a new shipment button

As the TOO, verify that you can also see UB as a shipment type to add after clicking on the Add a new shipment button

Delete the shipments from the move
As the SC, verify that you can still see UB as a shipment type to add after clicking on the Add a new shipment button

As the TOO, verify that you can still see UB as a shipment type to add after clicking on the Add a new shipment button

Set the unaccompanied_baggage FF to off, rerun direnv allow and rerun the server, refresh the page
Verify that you do not see UB in the drop down list for the SC to add a shipment

Verify that you do not see UB in the drop down list for the TOO to add a shipment

[x] This change meets the standards for Section 508 compliance.

Screenshots
SC (left) vs TOO (right) view for multiple shipments submitted:

only new thing here is the move of Flag Move for financial review up to the move details on the left, SC view:

SC (left) vs TOO (right) view for all shipments deleted from a move:

New on the left: the move of Flag Move for financial review up to the move details on the left, SC view
New on the right for the TOO: the Add a new shipment button in the shipments section, which matches the SC view

Weird thing in your Happo that miiiight be related. Lemme know.

@traskowskycaci  Think i ran into an issue where I cancelled an HHG and a UB as the TOO. Then Added an HHG and UB but was not able to Approve and send as TOO. Verifying again now.

Member

@traskowskycaci So when canceling both HHG and UB shipments then adding 2 new HHG and UB Shipments as the TOO I cannot approve and send the move.

Looks like status conflicts

Member

@traskowskycaci So when canceling both HHG and UB shipments then adding 2 new HHG and UB Shipments as the TOO I cannot approve and send the move.
Looks like status conflicts

You need to approve the move as a services counselor first.

Member

@traskowskycaci So when canceling both HHG and UB shipments then adding 2 new HHG and UB Shipments as the TOO I cannot approve and send the move.
Looks like status conflicts

Order should go:

create a customer
add shipments & submit move details as a SC
TOO manipulates moves

Member

@traskowskycaci So when canceling both HHG and UB shipments then adding 2 new HHG and UB Shipments as the TOO I cannot approve and send the move.
Looks like status conflicts

Talked with Tevin via slack, problem was cancelling the move rather than deleting the shipment as my test instructions didn't specify how to do that exactly - updated instructions


sql_database.with_resources(*) reflects unnecessary table schemas

dlt version
1.4.0
Describe the problem
Context in this slack thread.
Summary
This code does schema reflection for every table and column in the database.schema, even if only one table is passed in.
source = sql_database(
    credentials=self.connection_string,
    schema=schema,
    reflection_level="full",
).with_resources(*table_names)

However, this code does exactly what a user would expect, it only does schema reflection for the necessary columns:
source = sql_database(
    table_names=table_names,
    credentials=self.connection_string,
    schema=schema,
    reflection_level="full",
)

bug or feature?
There is a debate in the slack thread that this is not a bug.  But I would ask these questions:

Would a user ever want dlt to do schema reflections for tables & columns they are not using?
Can a user leverage the extra column schema reflections?  And even if they can, what would they do with it?
Is there value to reflecting the schema for unused columns?  If yes, what value?

If the answers are negative on these questions, I feel like we have to categorize this as a bug.
Personally, I can't imagine a single user would want dlt to reflect the schema for random columns they are not using.
impact to my code
using table_names= kwarg limits me with certain features, since now I am not defining specific resources, it is just table names.  Therefore I have to do hints after the source is created instead of using config up front with the hints.  (Maybe I'm doing something wrong, but that has been my experience as a non-expert here...)
Expected behavior
I would expect that only tables and columns requested by the user undergo schema reflection.
Steps to reproduce
Run this:
source = sql_database(
    credentials=self.connection_string,
    schema=schema,
    reflection_level="full",
).with_resources(*table_names)

I think this is the same behavior for all sql_database types, but I am using DB2 if that matters at all.
Operating system
Windows
Runtime environment
Local
Python version
3.11
dlt data source
sql_database
dlt destination
DuckDB, Snowflake
Other deployment details
No response
Additional information
Work around is to pass a list of tables then do something like this:
            if tbl.get("incremental_column"):
                initial_value = (
                    datetime.strptime(tbl["initial_value"], "%Y-%m-%d")
                    if tbl.get("initial_value")
                    else None
                )

                logger.info(
                    f"Applying hints for table: {tbl['name']}, cursor column: {tbl['incremental_column']}, initial value: {initial_value}, write disposition: {tbl['write_disposition']}, primary key: {tbl['primary_key']}"
                )
                table_resource.apply_hints(
                    incremental=dlt.sources.incremental(
                        cursor_path=tbl["incremental_column"],
                        initial_value=initial_value,
                        lag=172800,  # 2 days to account for late arriving data
                    ),
                    write_disposition="merge",
                    primary_key=tbl["primary_key"],
                )

@jeff-skoldberg-gmds I do not understand the kind of problem you have with passing a list of tables upfront. I assume you know them? The problem you describe comes from the way Python executes code: it will first create sql_database instance and then call with_resources on it. That's why the code in sql_database is not aware of what happens later.
How we can make your code simpler? If you know all your table names in advance, you can pass them to the sql_database with the defer_table_reflect set to True. In that case reflection happens only when particular table is selected so you will be able to use with_resources several times on the same instance to get copies and tables that you do not finally extract won't be reflected at all.
the other options is passing your own metadata with all tables already defined. You mention that you do not want to reflect the columns that you do not use so if you know your schema in advance you could just create the metadata yourself.
Another option coming to my mind is that we add an option that fully skips reflection and in that case we just infer everything from the data and you must provide a custom SELECT statement to extract

Hi @rudolfix , thanks for your questions here.  Let me see if I can organize my thoughts.
why do I not want to pass a list of tables
I like the idea of defining resources up front in config, including what column is the cursor column, etc, write disposition, etc.  I haven't tried, but I guessed you can't pass a list of dlt resources to the tables argument.  Is that wrong?
If I go with a list of tables, I think I have to apply these hints AFTER the source is created, and all of these hints are now applies as code instead of config.
Maybe I'm thinking about this all wrong.  I will admit, I'm not really sure on the best approach here.
Passing a list of tables is working for me, but I would like the flexibility to pass resources.
defer_table_reflection combined with_resources
Sounds very promising.  I will have to test to see if this solves it.  I trust it does...
This sounds like it is the fix.
skipping reflection, passing a SQL query
This honestly sounds like a dreamy bonus feature.  I have posted a lot of challenges in Slack about schema reflection.  Pyarrow seems to very much hate my source data.
Passing a SQL query could also provide other hacks for filtering the data (start date, custom look backs, etc.)
Also I could eliminate some views in the upstream database where they did not provide a good cursor column.
Do you want me to create a feature request for this?
closing thoughts
While I see that I have some good work-arounds to solve the unnecessary reflection (defer reflection), and I understand logically why the code does what it does, this unnecessary reflection is behavior that no one would ever use.  I guess if it is simple to turn off with "defer reflection", then it is not worth fixing.  But man, it just seems like something you don't want in your product.

just a quick question to:

why do I not want to pass a list of tables
did you try to use sql_table directly? it is a function that creates dlt resources corresponding to tables. you are free to pass the to pipeline directly or return them from your custom dlt.source function. this is common pattern when you control which tables to extract via some custom config file


ability to set available timegrains in dashboard

Similar to #1679, this enables users to specify available timegrains. Requirements:

enable setting available timegrains in the YAML config
enable editing the timegrains in the metrics config (requires design work)
consume this metadata in the dashboard

Closing this and tagging as wontfix. We're taking a different direction.


fix allowing inclusion of functions.php multiple time

The current usage of function_exists does not allow for multiple inclusion of functions.php, see
http://php.net/manual/de/function.function-exists.php#110163
The diff is a bit messy, i simply negated the if-call, put all functions into the if block and corrected the indentation.

@tgloeggl please resubmit this to the 2.0 branch of assetic-php/assetic. @jaxwilko if @tgloeggl doesn't want to, could you implement this?

@tgloeggl please resubmit this to the 2.0 branch of assetic-php/assetic. @JaxWilko if @tgloeggl doesn't want to, could you implement this?

I would gladly but that does not seem to be necessary in that mentioned branch as all functions are separately gated (instead of my lazy variant of that) and multiple inclusions of functions.php should not result in an error anymore.


repeating on single source

only give one of each result, don't repeat!
The below should only be two results, not 6

Hi @MizouziE, I want to know where it's happened 🤔

@TAKANOME-DEV I think it only happens once in a while because the news sources are constantly changing. I have only ever noticed it a few times, but that screenshot above is from one of the worst times 😂
I think we just need some sort of quality control to make sure all is unique. Something similar was mentioned in #7 in a comment that was about ensuring url:  was unique.

Interesting, I'm curious about this performance issue though. I hope @nulad will break it down

I would like to create a PR for this one

Is anyone working on this issue? If not, I'd like to work on it.

Is anyone working on this issue? If not, I'd like to work on it.

@ANaphade At the moment we've figured that a separate issue that is being worked on will fix this, so for the moment it's being investigated/handled. In the case of it not going how we expect, I will assign it to you, but I think it will be solved so I don't want u holding your breath 😄


System Agent instructions improperly handles PowerShell environment variables.

Rancher Server Setup

Rancher version: 2.6-head
Installation option (Docker install/Helm Chart): Helm

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): K3s

Proxy/Cert Details:

Information about the Cluster

Kubernetes version: 1.22.7-rke2r2
Cluster Type (Local/Downstream): Downstream

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider):

Describe the bug
Setting agent envvars in the UI when creating a new RKE2 custom cluster in cluster management get passed into the system agent plans as instructions. When formatting those instructions, Windows PowerShell isn't accounted for being used, which produces improperly formatted environment variables.
To Reproduce

Create a custom rke2 cluster for 1.22.7 rke2r2
Configure agent envvars
Register 1 linux controlplane, 1 linux etcd, 1 linux worker, and 1 windows worker
Check the logs for Wins to see the following error.

Result
S C:\> gc .\var\lib\rancher\agent\applied\20220324-153909-applied.plan
{"Plan":{"files":[{"content":"eyJjb25maWdzIjp7fSwibWlycm9ycyI6bnVsbH0=","path":"/etc/rancher/agent/registries.yaml"},{"content":"eyJj
b25maWdzIjp7fSwibWlycm9ycyI6bnVsbH0=","path":"/etc/rancher/rke2/registries.yaml"},{"content":"
/etc/rancher/rke2/config.yaml.d/50-rancher.yaml"}],"instructions":[{"name":"install","image":"rancher/system-agent-installer-rke2:v1.
22.7-rke2r2","env":["$env:RESTART_STAMP=f80f465cfbe80ad3f6f6c82c3ab16fe2dff7e3aa69b14184368b451ea26f7ac3","HTTP_PROXY=ec2-3-239-92-48
.compute-1.amazonaws.com:3128","HTTPS_PROXY=ec2-3-239-92-48.compute-1.amazonaws.com:3128","NO_PROXY=localhost,<IP_ADDRESS>,<IP_ADDRESS>,10.0.
0.0/8,cattle-system.svc","$env:INSTALL_RKE2_EXEC=agent"],"args":["-File","run.ps1"]

Expected Result
Expected result is that environment variables are formatted correctly meaning wrapped in qoutes and prefixed with $env:.

Root cause
Setting agent envvars in the UI when creating a new RKE2 custom cluster in cluster management get passed into the system agent plans as instructions. When formatting those instructions, Windows PowerShell isn't accounted for being used, which produces improperly formatted environment variables.
What was fixed, or what changes have occurred
The code that generates the instructions for the system agent was modified to account for the OS being Windows. If it is windows it formats the environment variables correctly for PowerShell.
### Areas or cases that should be tested
Deployment of a custom RKE2 cluster should be tested as this is the only code path that would be impacted by these changes.
What areas could experience regressions?
Registration of the different nodes would be impacted for RKE2 custom clusters.
### Are the repro steps accurate/minimal?

Create a custom rke2 cluster for 1.22.7 rke2r2
Configure agent envvars
Register 1 linux controlplane, 1 linux etcd, 1 linux worker, and 1 windows worker
Check the logs for Wins to see the following error.

Will be tested through standard custom cluster process.

on v2.6.5-rc1, tested as part of this ticket (proxy). Blocking this ticket based on the findings here: https://github.com/rancher/rancher/issues/36574

on 2.6-head (5f04f3a) I am able to see that an environment variable is added to windows when running the registration command through powershell
steps:

on a custom cluster, add environment variables
register all linux nodes
in the windows registration command, ensure that there is a line with $env... with your environment variable(s)
run the windows reg. command on a windows node

after the command completes, run dir env: to list all environment vars. Here, you can see the var added through rancher


Remove X-Forwarded-Uri and X-Forwarded-Method from untrusted IP

What does this PR do?
Remove X-Forwarded-Uri and X-Forwarded-Method headers if a request
comes from an untrusted IP.
Motivation
Failing to do so would result in an inconsistent and insecure behaviour
for the forward authentication. If TrustForwardHeader is active in the
forward auth, the auth endpoint receives these two headers if they
have been sent from an untrusted IP. Whereas other X-Forward headers
have been removed in the request and are safe to use in the auth
endpoint.
More

[x] Added/updated tests
[ ] Added/updated documentation

Additional Notes

I've fixed the bug by just removing the additional headers before letting oxy/forward remove the other ones. I wanted to have a small changeset for 1.7, for the master the fix could easily be added in forwarded_header.go, which should make it more elegant as all forwarded headers are removed at the same place.


Fix moving from PC to MTP (phone) storage

Resolved / Related Issues
Items resolved / related issues by this PR.

Fixes an issue preventing move operation to succeed on MTP (phone) devices

Validation
How did you test these changes?

[x] Built and ran the app

/azp run


MAINT: streamlined kwargs for minimizer in dual_annealing

This fixes so that all global optimization strategies uses
minimizer_kwargs as the arguments for the minimizer.
This makes it compatible with shgo and bassin_hopping.
The dual_annealing previously only had local_search_options
as the kwarg, which is not compatible with the other ones.
The old name is kept for backward compatibility but is marked as deprecated.

@andyfaff @mdhaber thoughts on this one?

@tylerjereddy, I think this PR needs a bit of work, I'd bump it to 1.9.

@tylerjereddy having just said that, I don't think that my requested changes are that much. It might be doable by Monday if someone was able to work on it.

Rebased to remove merge conflicts.

@tylerjereddy @mdhaber , I made the changes I think this PR required. It passes on my local computer. If you find it in a fit state it could make 1.8 by MOnday.

Thanks for the extra work. :)
Hope it may be useful!

Sorry I didn't get to this in time @andyfaff. Glad it got merged!


Add FilterOnObservable

New operator that I based on AutoRefresh that allows for filtering on an object's observable property.
This is unlike the existing Filter which only works for normal properties or INPC properties.
I am not completely happy with the implementation, it generates N refresh changes for N object, if anyone has an idea for how to prevent this it would be great :)

Updated to fix merge conflicts.

The reason for there being so many updates is the way that the observable values are received.  Inherent to the nature of observables you cannot predict when you are going to received a value. Subsequently when each item is subscribed to a value is produced and the filter is applied.  Particularly for the initial load, it is performance intensive as the number of change set notifications is multiplied by the number items in the cache which clearly is not scaleable.
The problem goes away when you apply the buffer. If you change the test class to something like this:
private class FilterPropertyStub : IDisposable
{
    public ISourceList<PersonObs > Source { get; } = new SourceList<PersonObs >();
    public ChangeSetAggregator<PersonObs > Results { get; }

    public TestScheduler Scheduler { get; } = new TestScheduler();

    public FilterPropertyStub()
    {
        Results = new ChangeSetAggregator<PersonObs >(Source.Connect().FilterOnObservable(p => p.Age, (o, p) => p > 18,TimeSpan.FromMilliseconds(250),Scheduler));
    }

    public void Dispose()
    {
        Source.Dispose();
        Results.Dispose();
    }
}

then this test passes.
[Fact]
public void InitialValues()
{
    var people = Enumerable.Range(1, 100).Select(i => new PersonObs ("Name" + i, i)).ToArray();
    using (var stub = new FilterPropertyStub())
    {
        stub.Source.AddRange(people);
        stub.Scheduler.AdvanceBy(TimeSpan.FromMilliseconds(250).Ticks);

        1.Should().Be(stub.Results.Messages.Count);
        82.Should().Be(stub.Results.Data.Count);
        stub.Results.Data.Items.ShouldAllBeEquivalentTo(people.Skip(18));
    }
}

So the question is for this operator should we enforce a buffer? From a pure design approach I would rather not impose restrictions on consumers. However without doing so in this case I am sure there would be many support issues raise.

Yeah I don't know if we should enforce a buffer or not, I feel like if we do there should be overloads for all the Buffer versions, not just the time-based one.
I think it might be possible to optimize the implementation a bit. It seems to me that many of the refresh messages are redundant, e.g. when the property observable/filter always returns true there should not be any refresh at all (since the default for the filter operator is of course to only refresh/remove filtered items).

One solution to avoid enforcing a buffer would be to pass a flag in to indicate that the observable always returns and initial value (or not). That way, logic can be applied accordingly. I suggest this flag is mandatory to enforce consumers to think about the implications. This would need to be coupled with good comments on the extension.
As for optimisations of the operator let's leave that until we decide on the API

I would argue that if the observable does not return a value, the operator should not filter it.

I pushed a commit that both simplifies the API.
The operator now takes just Func<TObject, IObservable<bool>> instead of two arguments (property selector and filter) and I was also able to change the implementation to prevent generating refresh messages for no-op filter updates.


OS X 10.11.4 rdesktop v1.8.3 WARNING: Not compiled with smartcard support

I install rdesktop v 1.8.3 as it stated support for smart card and windows 2012 r2. I could have missed some thing. I just ran sudo port install rdesktop no error on install and no broken files.
rdesktop -x m -r scard IPHERE
WARNING: Not compiled with smartcard support
Autoselected keyboard map en-us
Failed to connect, CredSSP required by server.

@mindisfree you are in the wrong issue tracker this is the FreeRDP project and not rdesktop


new trait implementation

Chinese Version: https://thoughts.teambition.com/share/6124b6fdf1962900423f2e5e

[x] New Trait Implementation
[x] Refactor Validation Trait
[x] Refactor Event Trait
[x] Refactor State Trait
[x] Refactor Hidden Trait
[x] Global Event Handler
[ ] Adaptor between Component & Trait

Why we need new implementation

Trait is now implemented based on executing hooks in a loop, which is not the correct usage of hooks.
Dynamic creating component in Trait hook will cause unnecessary mount & unmount.  see demo on branch validation-bug

New implementation

Components will received props from Traits. Components should implement some defined capabilities of components (such as how to deal with style, data, etc.)

Trait is an ordinary function, not a Hook.

Trait accepts the parameters from the Schema, and then returns an object. This object is implemented in accordance with defined capabilities of component.

Merge all the objects returned by Trait and pass them to the component.

# Trait restrictions

Each component must implement some interface to interact with traits

Hook cannot be used in Trait (or the number of Trait cannot be changed dynamically?)

Cannot use HOC in Trait

How to implement the existing Trait?

Hidden

Return style, use display: none

State

Return data, and the component calls mergeState to bind it to the store

event

Return the callback function. The timing of unsubscribe is controlled by the component.

@tanbowensg So in the new design, a trait should only interact with components by using plain JS objects.
If some general function needs to add a UI/React element to the component, then it should be a component instead of a trait?

It can be a trait. For example, in form validation, we need a text to show error message. But the validation trait does not add a text element to input. It just merge error message to store. We need to add a text component explicitly in schema to show error message.
I'm not sure this is the best pratise so far because it will cause many template code.

@tanbowensg agree


WIP: install-powershell.sh filter prereleases (when available), params documentation

PR Summary
Fixed #6815 by adding -allowprereleases parameter
Fixed #6405 by adding -allowprereleases parameter
Added parameters to documentation
Ready for prerelease repositories if Microsoft starts providing them
Added -skip-sudo-check for all distros
Fixed -interactivetesting should do nothing if -includeide was not used
PR Checklist

[X] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[X] Summarized changes
[X ] Change is not breaking
[X] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[ ] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

User-facing changes

[ ] Not Applicable
OR
[X] User-facing Documentation needed

[X] Issue filed - Issue link: #6815

Testing - New and feature

[X] Not Applicable or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] if the change is significant or affects feature tests

@TravisEz13 - If you create pre-release repos as per #6496 this switch can be used to add those repo links in the relevant distro install scripts.  Currently it just issues a warning that whatever is on the repo dictates whether pre-releases will be installed.

@TravisEz13 - I can't recall what to do about spelling errors in MD files - can you please remind me what we did last time?

You need to add the missing words in this section https://github.com/PowerShell/PowerShell/blob/master/.spelling#L215

@TravisEz13 - Looks like this is failing at the OSX sudo password prompt?  How to handle this?  Thanks! https://travis-ci.org/PowerShell/PowerShell/jobs/380487406

@DarwinJS  SUDO -v almost never works in CI.  You'll have to update the code to skip this check.

Is there a way to detect CI?  Is checking for POWERSHELL_TELEMETRY_OPTOUT=1 good enough or is there a better way?
There have not been any complaints that I know of beyond CI.
FYI - I updated the sudo check to be non-interactive.

most CI systems, except VSTS define a variable called CI.  You can just doc that you expect that variable to be defined.

@TravisEz13 - I put in place the skipping of the sudo check, but also skipped sudo assuming I had admin.
So is the magic that I DO need to use SUDO - but I can't check for it?
How has this not been failing for months - it used to work without any special SUDO handling, but didn't break until I touched it.
Can you look at the build log?

My statement about sudo -v never working was too broad.  It never worked in macOS, but other CI systems it doesn't work in debian.  When in CI, we need to use sudo but not run sudo -v as it may fail.  The equivalent of skip-sudo-check, these other systems is what I added this switch for.  Just detecting CI and automatically skipping should be enough.
Also, you should look at the package renaming during preview.3 and see if this affects your change.

@TravisEz13 - builds are passing - should I remove "WIP" ?


Default metadata should be combined with user-provided value

Suppose a user partially specify some properties of a default kind. E.g. their metadata block contains something like:
statement-filter:
  kinds:
    lemma:
       counter: lemma

The most natural interpretation is that they want to override that property of the defaults, but keep the defaults as is otherwise. So we should still fill in the lemma kind with its style etc.
Solution: when the filter provides defaults it should do so by adding to existing properties. So:

If the properties are stored in a local filter variable rather than the pandoc document metadata, read the properties in the doc's metadatablock first.
Add the default properties, by checking each time that they're not set: if kinds.property = nil then ....

Unless of course the user as set to true the switch that blocks the filter from setting any default.

Implemented.


Please add documentation on how to use MemoryImage

Hi there,
I'm trying to write a widget that displays an animated GIF.
I am decoding the GIF using https://pub.dartlang.org/packages/image and trying to write the bytes to a MemoryImage.
I find, however, that MemoryImage never redraws, even when setting a new state.
Is there something I'm doing wrong?
    String url =
        "https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif";
    var httpClient = createHttpClient();
    var response = await httpClient.readBytes(url);

// DartImage is an alias for package:image/image.dart
    DartImage.Animation decodedGif = DartImage.decodeGifAnimation(response);
    DartImage.Image firstImage = decodedGif.toList().first;

    setState(() {
      print("Should draw image");
      _imageData = firstImage.getBytes();
    });

My code is here: https://github.com/pcomans/flutter_gif_test/blob/master/lib/main.dart
Any help is appreciated!

We could also probably do some engine work to help you with https://github.com/flutter/flutter/issues/204 :)

@eseidelGoogle That would be fantastic!
Whats the best way to reach out? We'd love to share what we are building with Flutter.

@pcomans we'd love to see what you're building :) you can email me at<EMAIL_ADDRESS>thanks!

@pcomans @sethladd above is the right person to start with. :) Thanks!

To answer the original question, MemoryImage doesn't expect you to change the bytes after it's created. I'll add a paragraph (see https://github.com/flutter/flutter/pull/10815) that talks about how you would generate an ImageStream whose image changes over time.

I added to the documentation (see the PR).


Marantz SR5015

Logger: denonavr.soundmode
Source: components/denonavr/media_player.py:353
First occurred: 6:59:50 PM (2 occurrences)
Last logged: 7:10:25 PM
Not able to match sound mode: 'DOLBY AUDIO-DD+', assuming 'DOLBY DIGITAL'.
Not able to match sound mode: 'DOLBY AUDIO-DD+ +NEURAL:X', assuming 'DOLBY DIGITAL'.

I can confirm this behavior. I get these messages on my Marantz (Cinema 70S):
Not able to match sound mode: 'DOLBY AUDIO-DD', assuming 'DOLBY DIGITAL'.
Not able to match sound mode: 'DOLBY AUDIO-DD+', assuming 'DOLBY DIGITAL'.

I opened a issue for the missing Sound Mode as described in the Home Assistant Integration
Not able to match sound mode: 'DOLBY AUDIO-DD+', assuming 'DOLBY DIGITAL'.


feat: Indentify metal as Metal Shading Language

Metal Programming guide: Metal Tools

File Extension for Metal Shading Language Source Files
For Metal shading language source code file names, you must use the
.metal file name extension to ensure that the development tools
(Xcode and the GPU frame debugger) recognize the source files when
debugging or profiling.

I can't fix your PR because you made it from a organization -- can you fix it for me?

I changed the file, should I rewrite the commit message too?

right now you have two commits with identical messages


Panic when file / folder is missing

After running the executable it seems pretty worried about smth...
Maybe a missing err != nil check? We will never find out!  For a linux system, e.g. debian based, on needs to $ apt-get install wbritish or $ apt-get install wamerican to install the dictionary required. I'll update the README, thanks for the hint!

Should be fixed through f4cd45a3a99992043c1828b1a59b2a7303e8f9af
Could you git pull and verify plz?


Update ar-SA.json

Re arrange the Arabic words for the better Arabic syntax ...

After TESTING the amazing vue plugin