Invalid default behavior for optional props in components

Detailed description
Several components have optional text attributes props of type string. However, if you do not provide a value for these props, the default value is 'Provide a heading' and 'Provide a label', respectively. If these props are to be truly optional, the default should be an empty string as to not inject these placeholders into components that are not using the optional props.

Is this issue related to a specific component?
The following components all appear to have optional props with a non-empty string default:

Modal
TimePickerSelect
TextArea
DatePickerInput
Checkbox
ToolbarSearch
RadioButton
Search
FormGroup
FileUploader
ProgressIndicator

Interestingly enough, the TextInput component does use an empty string as the default prop value.

What did you expect to happen? What happened instead? What would you like to see changed?
I would expect the default values to be an empty string.

What version of the Carbon Design System are you using?
7.x.x

Steps to reproduce the issue

Import a Modal component
Provide a modalHeading prop, but do not provide a modalLabel prop.

Additional information

<Modal id='loggingModal' open={this.state.isModalOpen} passiveModal modalHeading='Response Details' onRequestClose={this.closeModal} >

This was a legacy a11y addition because we were getting violations for not providing default labelText. Since then, we've realized that these default text strings are cumbersome and can be handled by project teams to avoid a11y issues (labels must contain text, etc..), but haven't had the time to get around to fixing these. They will be addressed in a coming sprint

Going through the components now and removing the default text, noticed some components have iconDescription should this also be changed to an empty string, I could see the argument for leaving this one? thoughts?

I think iconDescription is being used for populating the title attribute in the svg, so we should keep these for a11y reasons


Table of Contents generated incorrectly for headers embedded in lists (part deux)

Below is an example where the Table of Contents is generated incorrectly when there are headers embedded within lists:
# Title

[TOC]

# Section 1

## Subsection 1
Text

### Sub Subsection 1
Text

### Sub Subsection 2
1. Item 1
2. Item 2
    - Description of item 2
    #### Item 2 Subsection
    Some text

### Sub Subsection 3
TODO

Below is the output for the above markdown.  You can see that Item 2 Subsection is actually put under Sub Subsection 3 instead of Sub Subsection 2 in the table of contents.

I'm not seeing this on 2.6.2.
Are you sure another extensions isn't introducing issues?
import markdown

src = '''# Title

[TOC]

# Section 1

## Subsection 1
Text

### Sub Subsection 1
Text

### Sub Subsection 2
1. Item 1
2. Item 2
    - Description of item 2
    #### Item 2 Subsection
    Some text

### Sub Subsection 3
TODO
'''

print(markdown.markdown(src, extensions=['markdown.extensions.toc']))

I can't reproduce this either. Closing this as no problem exists in the current codebase.

It must be something on my end.  I was running it against 2.6.1.  I did upgrade to 2.6.2 and saw the same thing.  I'm using sublime with Markdown Editing and Markdown Preview extensions installed.  If I figure it out I'll post back here.

@facelessuser
Sorry, but in your screenshot the headline "Item 2 Subsection" is included!
@facelessuser @waylan
The problem still exists in version 2.6.10.

Title

Section 1

Subsection 1

Sub Subsection 1

Sub Subsection 2

Item 2 Subsection

Sub Subsection 3

The same for headlines in blockqoutes:

@colewerner, with the latest release (2.6.10), I am still getting proper output:

Title

Section 1

Subsection 1

Sub Subsection 1

Sub Subsection 2

Item 2 Subsection

Sub Subsection 3

Title
Section 1
Subsection 1
Sub Subsection 1
Sub Subsection 2
Item 2 Subsection

Sub Subsection 3

@facelessuser, note that @colewerner's last comment was made 2.5+ years ago. I'm not sure why this discussion suddenly showed up as being updated. Perhaps someone left a new comment, which they then deleted before we had a chance to see it.

Thanks. I got an email with a different message. They must have emailed me directly, or posted and removed the post.
Anyways, disregard my last post.


Move runtime/ztests/op/sort/*.yaml to runtime/ztests/op

All other tests under runtime/ztests/op live directly in that directory and have names that begin with the operator under test.

IMHO when an op has a lot of tests as sort does I like having it in a directory so I don't have a huge list of tests to look through


C\task\Palindrome.c

Complete the given task and attach a screenshot of the code and output

@Taanvee  can you assign it to me?

Please assign this issue!

@Taanvee Can you please check my PR?

Please assign this issue to me !!


indexers - added The Graph

Added a section for The Graph in the page for Indexers.
Contains a concise description of The Graph and a link to a quick-start guide.

We are migrating to this view:
https://docs.avax.network/integrations#Indexers
I see the graph is already there:
https://github.com/ava-labs/avalanche-docs/blob/master/content/integrations/the-graph.mdx
Please propose any changes there if you want to add additional information


Update: Mozilla.Firefox.DeveloperEdition.tg version 132.0 (132.0b7)

Created by 🥟 Dumplings in workflow run #8801.

Log
Updated: 132.0b6 → 132.0b7
Submitting WinGet manifests
Found existing pull requests:
Update: Mozilla.Firefox.DeveloperEdition.sr version 132.0 (132.0b7) - https://github.com/microsoft/winget-pkgs/pull/182909
Update: Mozilla.Firefox.DeveloperEdition.szl version 132.0 (132.0b6) - https://github.com/microsoft/winget-pkgs/pull/181546
Update: Mozilla.Firefox.DeveloperEdition.sv-SE version 132.0 (132.0b6) - https://github.com/microsoft/winget-pkgs/pull/181545
The existing pull requests are ignored as the version is updated while the real version isn't
Creating manifests
Uploading manifests and making commits
Creating a pull request

Microsoft Reviewers: Open in CodeFlow

@wingetbot run


Dark Mode - Dark Reader Visibility Issue

Using Chrome on Dark Mode and Dark Reader addon highlighted text is very difficult to see. I am not able to overwrite the css styling via Dark Reader for CodeMirror.
I use the following CSS and it works on all other sites other than CodeMirror sites.

CSS
::selection {
color: black;
background: yellow;
}

This is because CodeMirror doesn't use the native selection provided by the browser and renders its own selection. According to the docs your selector should include .CodeMirror-selected.

@bruchmann  I changed it to
.CodeMirror-selected {
color: black;
background: yellow;
}

::selection {
color: black;
background: yellow;
}

When I use the search for a word like CTRL + F it does highlight it correctly now. When I highlight it with my cursor though it does something weird. If I just highlighted it inside the window it is still transparent. If I then click outside the window to the main CMS it will then change my transparent selection to my style. Is there anyway to get it so I don't have to click outside?


Manage special Repos

Give the possibility to book special Repos in Tradista.
The solution should be very similar to what has been done for GC Repos (ticket #91)

The name "Specific Repos" will be used instead of "Special Repos".
Indeed, Special Repos are only particular cases of Specific Repos.


Implement server endpoint for handling SSR Requests

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

Recent SSR support seems to be causing bugs for certain use cases so maybe a solution here would be to create a new endpoint that useAlgoliaSearch will send a request to and there, this case will be handled without any polyfill needed.
Describe the solution you'd like

Describe alternatives you've considered

Additional context

This wont work as well because server endpoint cannot handle algoliasearch client library depenendencies :(


Could not find a required file.

Am using react redux. Our public folder inside of the client folder. how to fix.
Could not find a required file.
Name: index.html
Searched in: /var/www/html/OurService/public
npm ERR! Linux 4.4.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
npm ERR! node v7.9.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build: react-scripts build
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build script 'react-scripts build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ourapp-service package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     react-scripts build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ourapp-service
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ourapp-service
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/james/.npm/_logs/2017-09-14T11_55_46_039Z-debug.log

See:
Name: index.html
Searched in: /var/www/html/OurService/public

Please ensure the index.html file exists within the public/ folder.


Node taints enabled by default on a cluster that consists of multiple masters and zero nodes

Context
I have a cluster that consist of master nodes only:
hosts.ini
[master]
server1.mydomain.com
server2.mydomain.com
server3.mydomain.com

[node]

[k3s_cluster:children]
master
node

Expected Behavior
Node taints shouldn't be enabled if there are master nodes only. All the master nodes should be able to accept workload.
Current Behavior
Taints are added to all master nodes, and since there are no regular nodes, it's not possible to run any workload on the cluster.
$ kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints --no-headers
server1.mydomain.com   [map[effect:NoExecute key:CriticalAddonsOnly value:true]]
server2.mydomain.com   [map[effect:NoExecute key:CriticalAddonsOnly value:true]]
server3.mydomain.com   [map[effect:NoExecute key:CriticalAddonsOnly value:true]]

The reason lies in one of the recent commits (4acbe91b6c3a25a8f693df7c11789e1947842425) that added this variable:
k3s_single_node: "{{ 'true' if groups['k3s_cluster'] | length == 1 else 'false' }}"

I suppose that will be fixed with #95 - do you agree?

You're right, this issue can be closed. Thank you!


Lab2

@sfzhu
uploaded my lab2 html file

When using step function, it's better to subtract x with one half of the step length so that your point of interest is in the middle of that stair.


Added support in FCS for the external events

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

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


fix(wallet): Refactor setupFeeForOnChainTransaction

Description

Moves setupFeeForOnChainTransaction usage to an earlier part of the tx creation flow.
Updates setupFeeForOnChainTransaction to attempt 1 satsPerByte if selectedFeeId fails.

Linked Issues/Tasks

Attempts to address #1574

Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Tests

[x] No test

Screenshot / Video
https://github.com/synonymdev/bitkit/assets/8532651/10cc7ae0-23de-4cdb-bb4d-5b8b338b586a
https://github.com/synonymdev/bitkit/assets/8532651/f1582410-e3b8-4062-abd2-cdca9c3aea0e
QA Notes

Set a low spending amount such as 547 with multiple inputs/utxos and attempt to continue the tx creation flow. You should now get prompted with an alert suggesting that you increase the send amount. Or in the event you're on the coin selection screen, remove some of your UTXO's.

@coreyphillips  please don't forget to add to each ticket:

Project
Status
Sprint
Milestone
Thanks


pgroonga: Run upgrade SQL when pgroonga package is updated.

Updating the pgroonga package is not sufficient to upgrade the extension in PostgreSQL -- an ALTER EXTENSION pgroonga UPDATE must explicitly be run^1.  Failure to do so can lead to unexpected behavior, including crashes of PostgreSQL.
Expand on the existing pgroonga_setup.sql.applied file, to track which version of the PostgreSQL extension has been configured.  If the file exists but is empty, we run ALTER EXTENSION pgroonga UPDATE regardless -- if it is a no-op, it still succeeds with a NOTICE:
zulip=# ALTER EXTENSION pgroonga UPDATE;
NOTICE:  version "3.0.8" of extension "pgroonga" is already installed
ALTER EXTENSION

The simple ALTER EXTENSION is sufficient for the backwards-compatible case^1 -- which, for our usage, is every upgrade since 0.9 -> 1.0.  Since version 1.0 was released in 2015, before pgroonga support was added to Zulip in 2016, we can assume for the moment that all pgroonga upgrades are backwards-compatible, and not bother regenerating indexes.
Fixes: #25989.

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

This is great, merged and marked as as backport candidate, thanks @alexmv and @kou!

Backported as 92c538c862d9961d1cb8a5370fc64ca4da5545ef and 2dfc0463bdee117059d0fd0bc9df862870a084e1.


manage alias expressions for asa-scoring

なおした！！！:ahokusa-top-right::ahokusa-bottom-left::heavy_exclamation_mark: とかに対応したはず！！！

Codecov Report

Merging #152 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #152      +/-   ##
==========================================
+ Coverage   44.41%   44.43%   +0.01%
==========================================
  Files          40       40
  Lines        3913     3914       +1
  Branches      809      809
==========================================
+ Hits         1738     1739       +1
  Misses       1708     1708
  Partials      467      467

Impacted Files
Coverage Δ

sushi-bot/index.js
58.08% <100%> (+0.31%)
:arrow_up:

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 4891dbb...e6931cb. Read the comment docs.


Use Image.toString instead of rolling our own each time

I meant to check this in as part of https://github.com/flutter/flutter/pull/1852
but forgot to commit the local change, d'oh.

@abarth

assumes https://github.com/flutter/engine/pull/2399

LGTM


refactor E2E oauth usage - #333

We are killing the auth0 development tenant.

This change is

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 70.26%. Comparing base (b310851) to head (8a7cc4e).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #334   +/-   ##
=======================================
  Coverage   70.26%   70.26%
=======================================
  Files         151      151
  Lines        7049     7049
  Branches     1120     1120
=======================================
  Hits         4953     4953
  Misses       1642     1642
  Partials      454      454

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

I was unaware of OneTimeSetup.  That is better.

tests/Serval.E2ETests/ServalClientHelper.cs line 64 at r1 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
Why did you create this SetupAsync method?

Reverted - OneTimeSetup (as per conversation above) it a better strategy.

tests/Serval.E2ETests/ServalApiTests.cs line 10 at r2 (raw file):
Previously, ddaspit (Damien Daspit) wrote…
We still want to clean up the engines between each test.

yes- my mistake.


Jitter raster occlusion camera to reduce false positives.

Due to the low resolution of the occlusion buffer, small gaps between occluders can be closed and incorrectly occlude instances which should show through the gaps. To ameliorate this problem, this PR jitters the occlusion buffer over time, making it more likely an instance will be seen through a gap. This is used in conjunction with an occlusion timer per instance, to prevent instances flickering on and off rapidly.
Helps address #53288
Actually this PR is very effective at combating what is a difficult problem, with the only cost being a slight increase in margins for instances falsely shown when they should be occluded.
https://github.com/godotengine/godot/assets/21999379/b724686f-921d-4c63-ad1c-03c0b1688650
This can be switched on and off with project setting, which defaults to true:
rendering/occlusion_culling/jitter_projection
When off, the jittering and temporal "stickiness" will be turned off to give the same as legacy behaviour.
Discussion
While I was working on software rasterizer for 3.x, I was pondering whether this could be used for raster occlusion, which reminded me of #53288 which is the Achilles heel of raster occlusion at low resolution.
I hadn't thought of this originally when filing the bug, but it occurred to me that one way of dealing with the problem is to simply jitter the occlusion camera. Providing the jitter is approximately on the scale of pixels of the buffer, then it increases the likelihood that instances will be seen through narrow gaps, which is exactly what we want. There is almost no cost to the technique (jittering is almost free, and the timers are cheap).
On the downside, this will make instances visible slightly further around occluded objects (as this is essentially how it works), however in most cases objects are expected to be occluded behind walls etc, so the cost may not be much in reality. Additionally, some cost is justifiable in order to prevent the artifacts in #53288, which may currently make raster occlusion unusable in some situations.
Jitter scale
Jitter scale is currently such that the jitter is over approximately a pixel in the occlusion buffer. This approximately effectively increases the resolution of the occlusion buffer. The smaller the intervals within, the higher the resolution, but we would need to jitter over a larger number of frames.
Another alternative is to randomize the jitter, but this makes it difficult to calculate a deterministic instance timeout that prevents the possibility of flashing with a non-moving camera, so this option has been rejected for now.
Notes

It will not deal with all the associated problems. Especially new objects appearing for the first time in gaps may still be hidden for a couple of frames. This is partly why the "cycle" length is kept low (9 frames) to ensure that if something is going to appear, it will appear soon.
Cosmetic - when you view the occlusion buffer in the editor, you can see the jittering.
Another alternative is identifying gaps, and increasing the occlusion buffer resolution in gaps. This is likely considerably more complex to implement though.
Another alternative is to jitter per ray, which could make it more effective, at the cost of complexity.

Jitter off:
https://github.com/godotengine/godot/assets/60579014/3239595d-5ab4-4f76-b0a0-e5a29458a839
Jitter on:
https://github.com/godotengine/godot/assets/60579014/e8be6b5b-193c-44e6-a525-774d89e49e8b
Tried different multipliers for the jitter (0.5f, 1.0f), not much difference there
Also tried using 12 frames instead of 8 but not much luck with that either. Not sure how to make this work

Tried different multipliers for the jitter (0.5f, 1.0f), not much difference there

If you have example scene I can try this out and figure why not working.

If you have example scene I can try this out and figure why not working

Here you go MRP.zip

Ah I think it could just a small problem with my timer logic (wrongly assuming is_occluded() is called once per occlusion buffer render), will fix.

Jitter 0.25f:
https://github.com/godotengine/godot/assets/60579014/da93997f-1fa6-47c7-b11e-972ae27b89b5
Jitter 5.0f:
https://github.com/godotengine/godot/assets/60579014/26933394-9d1a-4a62-8f2f-a115101d1c9e
Still possible to spot culling even at 5.0f but it can probably be worked around with level design. And it's much better than what is currently in godot
It's probably best to expose the jitter value to the editor settings and get rid of the checkbox (let 0 mean "disabled")

Jitter 0.25f:

I can't seem to get it to behave like that in mine, which makes me wonder if there is a screen size dependency that isn't working correctly (the 0.25f jitter should work the same whatever the size of the occlusion buffer if it works correctly). :thinking:
Are you taking the videos by moving the viewer position in the editor?
I managed to get some flickering by looking at one of the mountains through the corridor, which was how I fixed the above bug. It's much better for me now than before, but note that jittering won't solve all possible cases, notably:

Instances coming into view you may still get a flicker until the jittered render "finds" them.
The jitters are not random, and can in some situations just miss the small gap required to see an object. This is something that could possibly be refined later.

which makes me wonder if there is a screen size dependency that isn't working correctly

I think that's the case. At 0.25f, here's the biggest gap I can catch at native resolution:

And when I switch the viewport to half resolution this is the biggest gap (about twice as small):

What screen resolution are you using for the window?

I'm on a laptop with a 3456x2234 screen

Are you taking the videos by moving the viewer position in the editor?

Yeah I hold RMB, scroll all the way down to 0.2m/s and look for artifacts. Both position and camera angle contribute to them

The jitters are not random, and can in some situations just miss the small gap required to see an object. This is something that could possibly be refined later.

Yeah I figured that much that's why I was experimenting with increasing the amount of frames with different offsets, but in the end of the day the value of 5.0f seems to be working fine even with 8 frames, and the only problem that's noticable with 5.0f in my case is the first one that you described (it just needs a couple of frames)

Also, for most users, they will prefer something that just works (TM)

Yeah that's what I would prefer as well. Would be best if it culled in the safest way possible (only things that we're sure aren't visible), after all even when I set jitter very high and look at the overdraw it still looks near pixel perfect, so it just doesn't seems like culling too conservatively is ever gonna become a problem with godot's current culling approach

Yeah it seems likely the calculation of how much to jitter by resolution could be improved, and that's why you are needing to vary the parameter. I'll take a look. :+1:

Works really well with the latest changes. Biggest (persistent) gap that I could catch now is 4px wide on my screen (would be 2px in fullhd)
I believe if we combine this with an option to shrink occluders by normals at baking it will eliminate the remaining flashes and be good enough for 99.99% of the games

I've done some further tests to verify the settings, changing the occlusion buffer size by changing occlusion_rays_per_thread in project settings, and the jitter calculations do seem to be working correctly now, amazingly my 0.05 multiplier first guess seems approximately good (eyeballed) for around (or just over) a pixel whatever the occlusion buffer resolution, and it scales as expected with occlusion buffer size.
I've realized that your runtime occlusion buffer size is determined by how many cores your CPU has (as well as the resolution of the viewport), quite a complex calculation, so it's quite difficult to examine "like for like" without debugging or debug printing your occlusion buffer size or forcing it to a particular size.
(If you place a breakpoint in RaycastOcclusionCull::_jitter_projection() you can examine p_viewport_size to find occlusion buffer size.)
As far as I can see, the multiplier can be adjusted to prevent glancing false occlusion from one side of an occluder, but it probably can't guarantee to always hit tiny gaps between occluders (but should usually work).

I'm probably talking out of ignorance here but...
I wonder, why is the occlusion buffer rendered on the CPU?
We have compute shaders! Why not use that?
I'm sure we could run this raycasting thing on full res buffers and have zero mistakes. Or maybe downsample a full-sized occlusion buffer with a custom MIP filter that'd always round "down" so that any possible gaps between occluders are magnified, rather than hidden?

I wonder, why is the occlusion buffer rendered on the CPU?
We have compute shaders! Why not use that?

GPU-based solutions have a frame delay, which means you need to cater for it when camera cuts occur (e.g. in cutscenes). Many games introduce a 1-frame stutter on camera cuts because of this.

. In contrast, the current CPU-based approach works on any rendering method, and could even work on a headless server with no GPU in theory (e.g. for server-side wallhack prevention).
Oh, that makes a lot of sense. Can we query the occlusion system to get stuff like this? It could also help not updating peers about stuff that's behind a mountain or in the room next door :D

Oh, that makes a lot of sense. Can we query the occlusion system to get stuff like this?

Not currently, and I don't know if it'll be feasible without a frame delay. We try to minimize the amount of exposed RenderingServer methods because RenderingServer is designed to be able to run on multiple threads, so calling a getter method would require a slow synchronization process.

Tested using the occlusion_culling_mesh_lod example, works like a charm ^^

From my point of view - I'm not aware of any obvious perfect solution here, with the occlusion buffer smaller than the window (as others have pointed out in #53288). Afaik we basically need some hacks to reduce the occlusion enough to prevent the problem in some way, to make up for taking the "small occlusion buffer" short cut.

I worry a little bit about under-occlusion though. 9 frames is a long time to leave something visible when it is fully occluded.

It isn't ideal, but realistically the occlusion efficiency should still likely be >95% in most cases. In a lot of cases this might be e.g. a character still being rendered for 1/6 second after going through doorway. For users, the alternative at the moment is very broken occlusion (which may be unusable for some game releases).

My gut tells me we could get the same impact without the delay by shrinking occluder meshes. But, at the same time, shrinking occluder meshes is not as foolproof with respect to different buffer sizes and screen-space projected sizes. So maybe both are needed anyway

Shrinking occluder meshes was mentioned in the issue, but I do suspect it could turn out to be a whole barrel of worms, given that it depends on the angle of view, distance from camera etc as you say:
https://github.com/godotengine/godot/issues/53288#issuecomment-1202718938
It would be possible to pre-process and fix one scenario, but many others will remain broken. So shrinking might have to be done at runtime (equivalent of vertex shader, but in software), and there are a lot of potential bugs. Particularly you have to deal with shrinking adjacent walls potentially creating gaps and drastically reducing any occlusion, which probably requires pre-processing and marking edges.
Post-processing the occlusion buffer on the other hand could well be a simpler and better solution than shrinking (less bug inducing hopefully), and is well worth investigating, even if it adds some runtime cost. :thinking: This could later remove the need for jittering. I didn't have time to investigate this, but maybe another contributor will in the future.
Either way, I suspect jittering can likely do the job as a stop-gap until someone comes up with something better (bear in mind this problem has existed for > 3 years :fearful: ). It is a small change and relatively simple to add (and remove if we eventually come up with a better approach).

Thanks!

I'm probably talking out of ignorance here but... I wonder, why is the occlusion buffer rendered on the CPU? We have compute shaders! Why not use that?

A bit late to this, but I imagine the true answer is that it could be optionally supported if someone were to actually implement it.

I'm probably talking out of ignorance here but... I wonder, why is the occlusion buffer rendered on the CPU? We have compute shaders! Why not use that?

A bit late to this, but I imagine the true answer is that it could be optionally supported on F+/mobile if someone were to actually implement it :)

See Calinou's response above.
 The main one being, it requires a 2 frame delay. The CPU version is super fast and works really well, so there is no point in having a GPU version that doesn't work as well.
Eventually we will add a GPU-driven renderer (where almost all rendering takes place on the GPU). For that renderer, occlusion will be done purely on the GPU.

I wonder however how the jittering will affect latency of the culling. Can't that also fail to immediately detect something is no longer occluded, resulting in random pop-in delay?

I wonder however how the jittering will affect latency of the culling. Can't that also fail to immediately detect something is no longer occluded, resulting in random pop-in delay?

You could theoretically get e.g. a frame of delay if an AABB was a tiny fraction in view and it happened to be jittered in the other direction, but I've not seen this showing up in practice.
This is why the jitter pattern goes to opposite corners BTW, to prevent this occurring on more than a single frame (if it occurs at all).


Cloud account connected notification never goes away

To replicate, connect a cloud account in ui/cloud-accounts, notification should never vanish

@bfosberry Can you try this one again with the sessions fix? I suspect that the sessions issue simply broke the app...

Looks good! thanks!


navigator: Don't clean already existing snapshots when running navigate_and_compare()

Codecov Report
Base: 92.53% // Head: 92.37% // Decreases project coverage by -0.16% :warning:

Coverage data is based on head (0707680) compared to base (b2868ac).
Patch coverage: 80.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop      #93      +/-   ##
===========================================
- Coverage    92.53%   92.37%   -0.16%
===========================================
  Files           27       27
  Lines          964      971       +7
===========================================
+ Hits           892      897       +5
- Misses          72       74       +2

Impacted Files
Coverage Δ

src/ragger/navigator/navigator.py
94.92% <80.00%> (-0.87%)
:arrow_down:

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

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


Avoid online requirement for git client tests

Current test that checks for failures is relying on cloning a repo from github.
We can zip a bare version of the repo (git clone --bare) and include that in our test data.  Unzip the repo, and then clone from that folder.
Will need to create a repo/template from a linux machine (to use the problematic | char in folder name), don't embed someone else's repo in our test data.

We're closing old issues with no recent activity. If this is still important, please open a new issue.


IPlacemarkProperties & IPlacemarkOptions are wrong

🐞 Bug Report
✍ Description
Remove [key: string]: any from IPlacemarkProperties.
IPlacemarkOptions should extend IHintOptionsWithHintPrefix.
🔬 Reproduction

🌎 Environment
"angular8-yandex-maps": "^12.2.0",

IPlacemarkProperties & IPlacemarkOptions are complicated interfaces, IPlacemarkOptions interface has more than 50 properties, unfortunately, it's not safe to remove [key: string]: any


Miscellaneous lake fixes

This fix addresses several minor bugs.  Several lake processes (aerodynamic resistance, albedo, latent/sensible heat fluxes, net radiation, etc) were reported incorrectly or not at all in output files.  The fixes for those were all minor (1-liners).  Lake temperatures were initialized to unrealistic temperatures in the absence of an initial state file.  The fix for that was a little more involved: replaced the use of first step's air temperature with use of annual average soil temperature.
closes #405
closes #406
closes #419
closes #420

No problems with the code changes.  We need to add a comment in the Release Notes describing the bugs fixed here.

Should that be included in this PR?

Yes, doc and code changes go together.

@tbohn : you're out of date on this one - please merge develop into this branch one more time, resolve conflicts and then I'll go ahead and merge the PRs


Permission error, after migration, for one class only which was working fine before

I have multiple apps on Parse.com, dev, test and prod. For migration, I migrated test environment to mLab "m-test" DB because our Parse dev DB has a lot of bad data. We've done a lot of testing using that DB, and we're about to finalize it all. Things are working fine.
I created another mLab DB using the same Parse Test DB (m-dev) to be used as DEV DB in mLab from now on. So both m-test and m-dev DBs are created from the same Parse Test DB.
The issue is with a certain "Inbox" class. I can see all inbox messages in my iPhone app when I use the m-test DB we created earlier. But we get permission errors on m-dev DB which I created recently. I dropped all collections, and have tried multiple times in the last couple of days to  migrate Parse Test DB to m-dev DB. But I keep getting read permission error when trying to get list of items from Inbox. No permissions have been changed. I have compared _SCHEMA for Inbox in both m-test, and m-dev DBs and it's the same. Even tried replacing the one in m-dev DB, but it doesn't work.
Can you please assist me in debugging this issue? What else should I be looking at more. Also, this is the issue with only Inbox. Everything else is working as expected. I am clueless now.
Regards,
-Mariam

Is your app using your own Parse Server for the application logic, or are you still using the hosted service on Parse.com? This repo is for issues with Parse Server

Yes, we are using Parse Server. We have set up the Parse Server on AWS, and the behavior is the same on both AWS and my local machine. If we connect to m-test DB, we  can list() the Inbox messages. If we use m-dev DB, we get permission exception. Both m-test and m-dev were migrated from the same Parse.com DB. m-test around 1.5 months ago, and m-dev 3 days ago.

I am trying to read inbox messages on my iPhone app.

In that case can you provide some more detailed reproduction steps? Server logs containing the complete request and response for each request (use VERBOSE=1 env var) and the exact commands you use to create the database are best, that way if you have found a bug we can use use the commands you provide in our test cases.

To create the DB, I simply created a blank on in mLab, and migrated Parse DB using the migration tool by pointing to this new DB.
There are no major reproduction steps. It's just one class that's behaving in odd way. From the app, I'm simply doing query.list() for a certain user. I am getting permission error in one case, and success case in the other. Where should I look other than _Schemas in my mLab DB? The user does have read and update permission to his own messages.
Here's the requestion with VERBOSE =1
verbose: GET /parse/classes/Inbox { host: 'xxxxx.ngrok.io',
'x-parse-app-display-version': '3.1',
'x-parse-application-id': 'MY-APP-ID',
accept: '/',
'x-parse-os-version': '9.3.2 (13F69)',
'accept-language': 'en-us',
'x-parse-client-key': 'CLIENT-KEY',
'user-agent': 'Doofl/3.1.1 CFNetwork/758.4.3 Darwin/15.5.0',
'x-parse-app-build-version': '3.1.1',
'content-type': 'application/json; charset=utf-8',
'x-parse-session-token': 'r:ae761f78264701ff240c21031e973b28',
'x-parse-client-version': 'i1.12.0',
'x-parse-installation-id': 'PARSE-INSTALLATION-ID',
'content-length': '169',
'accept-encoding': 'gzip, deflate',
'x-forwarded-proto': 'https',
'x-forwarded-for': '<IP_ADDRESS>' } {
"include": "bulkMessage,sender",
"order": "-createdAt",
"where": {
"recipient": {
"objectId": "USER_ID",
"className": "_User",
"__type": "Pointer"
}ti
},
"limit": "15"
}
In one case, I am getting this:
verbose: error: code=119, message=Permission denied for this action.
In the  other case, I am getting data.
What else can I do to debug this?

ACLs and Class level permissions all seem to be correct.

Data for the record that I can read..
{
"_id": "dht22gx4LA",
"_rperm": [
"ap6mgSK9AI"
],
"_wperm": [
"ap6mgSK9AI"
],
"_acl": {
"ap6mgSK9AI": {
"r": true,
"w": true
}
},
"_p_recipient": "_User$ap6mgSK9AI",
"subject": "",
"message": "",
"isRead": false,
"_p_sender": "_User$qXkcqPWIi8",
"isBulkMessage": false,
"updateStats": false,
"_updated_at": {
"$date": "2016-06-12T16:04:17.069Z"
},
"_created_at": {
"$date": "2016-06-12T16:04:17.069Z"
}
}
Data for the record not being viewed for another user:
{
"_id": "DFJzocK9Nf",
"_rperm": [
"HSG8qCtSDn"
],
"_wperm": [
"HSG8qCtSDn"
],
"_acl": {
"HSG8qCtSDn": {
"r": true,
"w": true
}
},
"_p_recipient": "_User$HSG8qCtSDn",
"subject": "",
"message": "",
"isRead": false,
"_p_sender": "_User$qXkcqPWIi8",
"isBulkMessage": false,
"updateStats": false,
"_updated_at": {
"$date": "2016-06-12T16:02:01.234Z"
},
"_created_at": {
"$date": "2016-06-12T16:02:01.234Z"
}
}
Both users have the same role "User". Class level permissions in _SCHEMA in DB for both DBs:
{
"_id": "Inbox",
"_metadata": {
"class_permissions": {
"get": {
"role:Administrator": true,
"role:User": true
},
"find": {
"role:Administrator": true,
"role:User": true
},
"update": {
"role:Administrator": true,
"role:User": true
},
"create": {
"role:Administrator": true
},
"delete": {},
"addField": {},
"readUserFields": [],
"writeUserFields": []
}
},
"recipient": "*_User",
"bulkMessage": "InboxBulkMessage",
"subject": "string",
"message": "string",
"isRead": "boolean",
"sender": "_User",
"isBulkMessage": "boolean",
"updateStats": "boolean"
}

Found the issue. I was including BulkMessage when getting the whole inbox list. InboxBulkMessage did not have the FIND rights for users.
This is not how things were on Parse.com. This means that I need to check all "includes" now.

How do I turn verbose logging off? I tried setting VERBOSE=0, but it didn't work.


Issue: missing banner when user access: https://kyber.network//

Issue: missing banner when user access  https://kyber.network//  instead of https://kyber.network
Step:
Access  https://kyber.network//  > Observe

Expected:
https://kyber.network// should redirect to https://kyber.network

Fixed


[SPARK-18631][SQL] Changed ExchangeCoordinator re-partitioning to avoid additional data …

What changes were proposed in this pull request?
Re-partitioning logic in ExchangeCoordinator changed so that adding another pre-shuffle partition to the post-shuffle partition will not be done if doing so would cause the size of the post-shuffle partition to exceed the target partition size.
How was this patch tested?
Existing tests updated to reflect new expectations.

Test build #69347 has started for PR 16065 at commit 561fcf6.

Wrong JIRA ticket?

@rxin fixed it

cc @yhuai

lgtm

Test build #69347 has finished for PR 16065 at commit 561fcf6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/69347/
Test PASSed.

Thanks @markhamstra Merging to master.


Fingerprint names including / don't render in UI

GraphQL doesn't allow slashes in names, so we need to get Slashes out of names


Update to 1.1.7

Alternative for #14

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Ok, that looks better...

Something was amiss with the webservices b/c this is virtually the same thing we had in #15
I'll investigate this later.


Cache mypy dependencies

This PR adds caching for mypy dependencies which should speed up this workflow.

Neat!


Did not getting user invites

Hi @maxb-hystax  @sd-hystax @nexusriot @tguisep ,
I have configured Postfix SMTP on Ubuntu Linux OS  and added SMTP configuration details in user-template.yaml.  But It is not working. Anyone here can help me to solve this issue ASAP.

Kindly help in this issue. @nexusriot @maxb-hystax @sd-hystax @tguisep

@nexusriot @maxb-hystax @sd-hystax @tguisep
Soft Reminder!
Kindly help in this issue.

Hi @hamzamaan!
Did you check the logs of Herald service (this is the service which actually sends the emails). You can filter them in Kibana with query like container_name:*herald*


How to use console logging with TelemetryClient?

I have written my own Logger class using "TelemetryClient" to sink data in ApplicationInsight.. which is working fine but my logs are not getting display in Azure function console log window.
this is my custom logger Code
I can understand "TelemetryClient" responsibility only sent data in ApplicationInsight regardless type of application. Is there any solution or workaround to display same logs in Azure Function console log section??

Closing old issue. There doesn't seem to be any action item for this repo.


chore: multiple-environments feature flag criteria 'DATASOURCE_ENVIRONMENTS' to limit access to specific email addresses

Description
As part of ongoing efforts to improve our feature flagging process, this Pull Request updates the "multiple-environments" feature flag criteria to limit access to a specific list of email addresses, rather than the entire Appsmith domain. This will help to reduce the impact of the latest merges and ensure that only authorised users have access to the feature.
Specifically, this Pull Request modifies the existing criteria for the "multiple-environments" feature flag and changes the access control from email domains to individual email addresses. This ensures that only users with approved email addresses can access the feature, and reduces the risk of unauthorised access or unintended consequences resulting from recent code merges.
description generated by chatGPT
The email addresses are as follows:

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

changed the feature flag strategy from emailDomain to email and assigned five emails

Fixes #22626
How Has This Been Tested?

Manual

Checklist:
Dev activity

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] PR is being merged under a feature flag

/ok-to-test sha=2230d49


Find first byte fast

Improved FindFirstByte by 300%
tested wirh Coreclr 64 release

@Anderman ping

Please rebase this so only your commits show up in the diff.
Can you also provide the code you used to test the perf improvements and the numbers you got, so I can compare?

Thanks!


WIP: Page Specific JS Route Creation

WIP
@anselmbradford
@rosskarchner
Example Json file created on page save/edit
{
  "page_3": {
    "elements": [
      "well",
      "text_introduction"
    ],
    "slug": "demo-purposes"
  },
  "page_4": {
    "elements": [
      "text_introduction",
      "well"
    ],
    "slug": "landing-page"
  }
}

@kave https://github.com/cfpb/cfgov-refresh/commit/8bca7aa4580d0eafd4107569c2b6621ccfb5359d Adds a buildScriptsRoutes task to gulp that is run when gulp scripts is run, this task:

Reads wagtail generated JSON.
Parses pages in JSON and looks for elements that are in a lookup table as having associated JS.
Write a JS page in the routes directory that searches the page dom for instances of a particular element and instantiates and initializes a new element of that type.
Webpack scoops up generated routes like it usually does and works out require statements and bundling.

To Test:

Create a page in Wagtail, add a Well or whatever, and click save to generate pages.json.
Manually edit pages.json and add expandable or expandable_group to the list of elements on the page.
Run gulp scripts
Click preview on the page in the Wagtail and look at the console output. It should say Instantiated new Expandable (or Group).

Todo:

Instead of JSON, ideally Wagtail should spit out the JS files in the routes that gulp is currently creating.
Wagtail > write JSON > gulp buildScriptsRoutes > read JSON > write JavaScript file > gulp scripts
vs
Wagtail > write JavaScript file > gulp scripts.

Currently there's a lookup table that shows whether an element is an molecule or organism and whether it has associated JavaScript. Instead this information should be inferred from the filesystem makeup. Whether an element is in the molecule or organism directory should determine its type and whether their is an associated JS file should determine if it needs inclusion in the page script.

Page scripts will be created for the pages that don't have elements that have scripts themselves. This page will have the webpack loader and `'use strict;', but functionally nothing else. Pages that don't require any atomic element JS should not generate a  page script.

Not currently deleting paths that have been deleted on the Wagtail side. The unprocessed/js/routes/ directory will need to be cleared, except for the hardcoded paths that are used by the static routes (those from the existing site that aren't dynamically created by Wagtail).

Caveats:

This expects elements with an associated JS script to be able to be instantiated through new and to have an init method that takes no arguments. If an element needs initialization parameters these'll need to be set through attributes on the HTML or some other logic in the build process will need to be added.

It's going to take me some time to grok all of this-- and I'm almost certainly not yet understating the benefits of the javascript routes.
But my first thought is, would it solve the same problem if we reflect all of the fields on a page, and reflect that as CSS classes on the body?  So, a page that contains a "thingamabob", could automatically have something like:
<body class="has-thingamabob">

Of course, at that point, we could probably just as easily add a

@anselmbradford could better explain the next benefits of js routes

closed, we decided to go with another approach https://github.com/cfpb/cfgov-refresh/pull/1253


v0.1.4 :droplet:

Codecov Report

Merging #8 (0c57870) into main (8ec225b) will decrease coverage by 0.30%.
The diff coverage is 94.73%.

@@             Coverage Diff             @@
##              main       #8      +/-   ##
===========================================
- Coverage   100.00%   99.69%   -0.31%
===========================================
  Files            3        3
  Lines          631      664      +33
===========================================
+ Hits           631      662      +31
- Misses           0        2       +2

Impacted Files
Coverage Δ

openapidocs/common.py
98.05% <94.59%> (-1.95%)
:arrow_down:

openapidocs/v3.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


[Internal] Query: Adds new TryExecuteQueryPipelineStage for PassThrough queries

Pull Request Template
Description
Adds PipelineStage and Continuation token classes for new Pipeline for PassThrough queries.
Type of change
Please delete options that are not relevant.

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

Closing issues
To automatically close an issue: closes #IssueNumber

    public bool SimulateThrottles { get; }

You can add:
public bool EnableTryExecute {get; }

Refers to: Microsoft.Azure.Cosmos/src/Query/Core/TestInjections.cs:23 in fa9ff9e. [](commit_id = fa9ff9e1694d1597231be037f4199a074195954b, deletion_comment = False)

@akotalwar your recent commits removed the approvals, once @adityasa approves again, the PR should automatically merge


allow overriding web config, fix #44

Config settings can be overridden by providing a file config.local.php that can manipulate $config.

Thanks @kba , merged now.


Add mapGeoLocation (location-by-ip-address, location-by-geoLocation-API)

https://github.com/osmandapp/OsmAnd-Issues/issues/2113


Missing link

"Windows Sockets version 2 API error code documentation in MSDN" should point to the information. Now I'll have to google it.

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

ID: 84ff3356-3553-0460-3866-9a23dbea8d74
Version Independent ID: 4369f846-6ba0-ed79-2696-9e8420b1d6b2
Content: SocketException.ErrorCode Property (System.Net.Sockets)
Content Source: xml/System.Net.Sockets/SocketException.xml
Product: dotnet-api
GitHub Login: @dotnet-bot
Microsoft Alias: dotnetcontent

Here it is, the text is wrong. It's not in MSDN.
https://docs.microsoft.com/en-us/windows/desktop/winsock/windows-sockets-error-codes-2

A note for whoever fixes this: the same phrase is used in 4/5 different API doc files. That's more than I can fix in the browser, I'm afraid! 😄

Thanks @ChrisMaddock. I'll take care of this.


Investigate non-atomic update to graal-sdk dependency in dependencies.properties file

With java-shared-config:1.6.0, the dependency management of graal-sdk in maven was shifted from sdk-platform-java to java-shared-config.  However, for bazel, we still need to make an additional update to the graal-sdk version in sdk-platform-java.
TODO: Investigate if it is feasible to consolidate the updates to the graal-sdk.

@mpeddada1 I forget - is this still an open question?

@alicejli thanks for the note. Apologies for missing this earlier. Yes, this still remains to be an issue. While the dependency is atomically updated in Maven, a manual update in bazel is still needed. That being said, modifying the label to feature request since it is a proposed enhancement to how the update is done as opposed to a regression.


On a cache miss, can we provide a function to be called that loads the cache from a source and then return the value?

See comment on #82


fix redefinition of SIZE_MAX on aarch64

Description
Fixes re-declaration/warming for SIZE_MAX on aarch64 and other 64-bit targets.  I thought about adding SIZE_MAX to the "__WORDSIZE is 32 bits" else section but I was concerned about support for < 32 bit targets.
In file included from /home/jkent/Projects/fe/neoboot/deps/libc/printf/printf.c:34:
/home/jkent/Projects/fe/neoboot/deps/libc/include/stdint.h:279: warning: "SIZE_MAX" redefined
 #define SIZE_MAX UINT32_MAX

/home/jkent/Projects/fe/neoboot/deps/libc/include/stdint.h:249: note: this is the location of the previous definition
 #define SIZE_MAX UINT64_MAX

Type of change

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Compilation.

I'll merge the change, but I'm curious: do you know how this is getting defined in your setup?

Hi @phillipjohnston .. Currently I'm pulling in libc via cmake like so:
https://github.com/ARMWorks/neoboot/blob/wip/deps/CMakeLists.txt

I don't have a working project yet (lots of upbringing on my target boards, no JTAG :( ) but the code base is really small at this point

Got it. I took a brief look, you might need to set -nostdinc and -nostdlib flags to get rid of the compiler's versions.


Ceph master public buckets backport

ceph-master backport of #302

@theanalyst still passing against master? if so, please merge!

Yes the last tests were done against ceph-master with these commits against master


[FR] InsertLink with live grep

Please confirm

[x] I am running the latest version of this plugin

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
I use telekasten.nvim with new_note_filename = uuid.
People who use telekasten.nvim with filename uuid like me must watch file contents one by one when using the current InsertLink function.
I guess Anyone sometimes wants to search a linking file with live grep.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Add live grep to InsertLink function and enable it with with_live_grep option
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
I created PR on my forked repository. Please refer to it when you want to see the implementation.
https://github.com/hayaokimura/telekasten.nvim/pull/1

This is a good point indeed and a much needed feature.
I just had a look at your fork, it seems reasonable.
Wouldn't it make sense to add a similar fix for FindNote ? (not sure as it would be redundant with searchNotes then point.
You can propose the PR here when you are ready and I will test it and merge tonight or tomorrow.

Do not forget to document the new option in the README and doc/telekasten.txt as well before making the PR.

Thank you for replying!
I created PR.
https://github.com/renerocksai/telekasten.nvim/pull/189
I worry about the option field value. Please read and reply to it.
https://github.com/renerocksai/telekasten.nvim/pull/189#discussion_r1032852374


Update docs to note schedule action delay (#3059)

Why:
These start time delays on scheduled actions are significant and I think warrant a mention so that people aren't scratching their head for too long questioning what they did wrong
See the related issue

What's being changed:

The change can be found on this staging ENV page and can be seen on the following screenshot

Check off the following:

[x] I have reviewed my changes in staging. (look for the deploy-to-heroku link in your pull request, then click View deployment)
[x] For content changes, I have reviewed the localization checklist
[x] For content changes, I have reviewed the Content style guide for GitHub Docs.

The change in staging ENV looks good to me:

The change in staging ENV looks good to me:

@BrentonWheeler Thanks so much for opening a PR! I'll get this triaged for review ⚡

@BrentonWheeler Thanks so much for opening a PR! I'll get this triaged for review ⚡

I just want to confirm with engineering about the expected behavior (see https://github.com/github/docs/issues/3059) before merging this.

I just want to confirm with engineering about the expected behavior (see https://github.com/github/docs/issues/3059) before merging this.

It looks like our new action inadvertently closed this 🙃 Sorry about that! Reopening and triaging this for review 💛

"github-actions closes a PR to improve its own docs, it's becoming sentient 😱."
haha all good 👍, also any update on the related Issue's comment here?

😆 Thanks for understanding @BrentonWheeler! I'll check in with the writer (my guess is that they're still waiting on engineering) and ask them to update the other issue with any new info 💖

Yes, I am checking with engineering again. Thank you for your patience!


App Crashes or self is not defined | Pixi, Canvas, Polyfill

Hi!
Hope you're well.
I am trying to integrate pixijs on nativescript so I can utilize, but I'm facing an issue which unfortunately does crash the app at any case when I integrate the @nativescript/canvas, @nativescript/canvas-polyfill, @nativescript/canvas-pixi.
Platform: Android
NS version: 8.0.2
Npm version: 6.14.13
Node version: v14.17.0
Packages versions:

"@nativescript/canvas": "^1.0.0-alpha.2",
"@nativescript/canvas-pixi": "^1.0.0-alpha6",
"@nativescript/canvas-polyfill": "1.0.0-alpha24",
"pixi.js": "^6.1.2",
"three": "^0.132.2"

What have I tried so far?

I've tried through new app
Tried different demos, but ideally to make it work for nativescript-vue
Switching imports to require
Switching imports order, for example polyfill to be at the earliest stage on app.ts, while requiring the @nativescript/canvas/vue to register the Canvas and afterwards on a page component requreing @nativescript/canvas-pixi
Did i install pixi? Yes
Did I try different versions of plugin, other then alpha? Yes
Did I try externalsPresets -> node: false on webpack? Yes
Read endless of other issues to see if may I am writing something wrong, or perhaps this issue was known already. None found that is diff from the demo
Checked for sdk min requirements and such

I've added an example of this
testCanvasApp.zip
Few issues I've faced so far

self.is not defined which is coming from polyfill. In fact I did try to add global.self = null to initialize but didn't work either
App crashes without logging, even when using adb logcat

Looking forward to hearing from you, and hopefully I can be assisted and fixed if there is any issue.
Best regards,
Cheers

Can you use the beta versions of  pixi + polyfill
"@nativescript/canvas-pixi": "beta",
"@nativescript/canvas-polyfill": "beta"

Hi @triniwiz !
Thank you for your quick response. As suggested I've checked out the versions asked, but still the same issue unfortunately, regards to ReferenceError: self is not defined
Preview and the packages being used (Same as the example sent on previous comment)

I've updated the demo package, which you can access below, with the respective versions mentioned.
testCanvasApp.zip
Looking forward to hearing from you.
Best regards,
Cheers

Ah I see you are using v6 I haven't test that version , the demo in this project uses ^5.3.3

A couple things from your demo

Pixi import .so pixi.js seems to be trying to test the canvas support this seems to be breaking the app for android since no activity has been created , you can solve this by moving around the imports to when you are about to use them
You should turn on logging for now to make things a bit easier Vue.config.silent = false;
@ready event you are not using your created event
You do not need xmlns:canvas="@nativescript/canvas" since the app is not using the core flavour

Hi @triniwiz
Hope you're well! My apologies for the late reply, but couldn't reply anytime sooner.
- Pixi import .so pixi.js seems to be trying to test the canvas support this seems to be breaking the app for android since no activity has been created , you can solve this by moving around the imports to when you are about to use them
I've tried, and possible would say. In fact now the window issue doesn't show any longer after swapping pixi.js and TNSPIXIApplication, but now all it does is crashing without any sort of logging. Through the demo you will see how I did change these, as well removed the @loaded events and just added isLoaded after the TNSPIXIApplication initialization.

You should turn on logging for now to make things a bit easier Vue.config.silent = false;
Agreed, wanted to keep it on, but with all the spamming of logs sometimes is harder. I was mainly trying to get the errors either from vue handlers and/or adb logcat

@ready event you are not using your created event
You're right, must have changed while was testing around and commenting around. I believe this issue earlier then the event being triggered.

You do not need xmlns:canvas="@nativescript/canvas" since the app is not using the core flavour
Agreed, in fact I tried with and without, tried with in case maybe for whatever reason may require it. In fact, I've read plenty of threads around, and some did include, and some didn't include.

Latest Demo:
testCanvasApp.zip
Suggestion: Would it be possible for us to have a small docs of how to use it a small step by step example?
Looking forward to hearing from you.
Best regards,
Cheers

I do plan on writing up some docs on using the canvas for now I updated your sample
testCanvasApp.zip

Hi @triniwiz !
Thank you for updating the sample, it is very helpful to get aligned, especially for new developers who will try this plugin!
Unfortunately, still keeps crashing for me without any error message, as well through adb logcat. I am not sure if it has been tested, I assume it was, which I was checking where the issue is coming from, which seems TNSPIXIApplication is the main issue.
I believe, I will wait the docs and perhaps see further where is the issue coming from in TNSPIXIApplication, but for the time being have got to postponed as I've got few priorities to be done by end of the month. Should there be any information, logging or such from my end, I'll let you know.
Thank you for this amazing effort, work put for these plugins!
Looking forward to hearing from you.
Best regards,
Cheers

Interesting as well, as seems something wrong when TNSPIXIApplication is being called. What I can do ism reviewing it further then and see in case I've something wrong on my end. In case I've some logging will let you know,  as well what logging would be useful for you? Will try to see further from there
Looking forward to hearing from you.
Best regards,
Cheers

Hi @triniwiz
Hope you're well! I'd like to let you know a small update about this through out the testing with your latest update.
I've given a try the changes you made on a real device and seems to be all working fine, although on the Emulator it doesn't work at all.
Below you can find the specsi I am using for this
Name: Pixel_3_API_29
CPU/ABI: Google Play Intel Atom (x86)
Path: C:\Users\<username>\.android\avd\Pixel_3_API_29_-_Work.avd
Target: google_apis_playstore [Google Play] (API level 29)
Skin: pixel_3
SD Card: 512M
fastboot.chosenSnapshotFile:
runtime.network.speed: full
hw.accelerometer: yes
hw.device.name: pixel_3
hw.lcd.width: 1080
hw.initialOrientation: Portrait
image.androidVersion.api: 29
tag.id: google_apis_playstore
hw.mainKeys: no
hw.camera.front: emulated
avd.ini.displayname: Pixel 3 API 29 - Work
hw.gpu.mode: auto
hw.ramSize: 1536
PlayStore.enabled: true
fastboot.forceColdBoot: no
hw.cpu.ncore: 4
hw.keyboard: yes
hw.sensors.proximity: yes
hw.dPad: no
hw.lcd.height: 2160
vm.heapSize: 256
skin.dynamic: yes
hw.device.manufacturer: Google
hw.gps: yes
hw.audioInput: yes
image.sysdir.1: system-images\android-29\google_apis_playstore\x86\
showDeviceFrame: yes
hw.camera.back: virtualscene
AvdId: Pixel_3_API_29
hw.lcd.density: 440
hw.arc: false
hw.device.hash2: MD5:8a60718609e0741c7c0cc225f49c5590
fastboot.forceChosenSnapshotBoot: no
fastboot.forceFastBoot: yes
hw.trackBall: no
hw.battery: yes
hw.sdCard: yes
tag.display: Google Play
runtime.network.latency: none
disk.dataPartition.size:<PHONE_NUMBER>
hw.sensors.orientation: yes
avd.ini.encoding: UTF-8
hw.gpu.enabled: yes

Regards to the device that it is working is Samsung S8 Plus.
I hope this could be helpful information to you and looking forward to hearing from you
Best regards,
Cheers

Thanks for trying, is there any error you can share ?

 I believe this is highly related with the issue https://github.com/NativeScript/canvas/issues/41
Steps to reproduce

Go in app
Suspended the app
Go back in
Canvas is gone

I've tried upon Application resume to rebuild by using onReady method to reinitialize it as the below example
    Application.android.on("resume", () => {
      this.onReady();
    })

Looking forward to hearing from you
Best regards,
Cheers

Using {N} 8.1 should help with the resume issue

Using {N} 8.1 should help with the resume issue

Indeed it did help to upgrade to 8.1 version for resume issue! Thanks for your suggested fix :)
Regards to the other issue of emulator, hopefully it can be fixed as well soon. I'll let you know in case I will encounter any other issue related on this thread, if not related will be on separate thread! 💯
Looking forward to hearing from you
Best regards,
Cheers

As for the emulator I will need to run some tests since I use both emulators and real devices to test

Can you try with the latest , please reopen if the issue still persists


Show Unet parameter count at beginning

This is a feature from the upsampler training branch that is useful enough to add here. If clip is included the parameter count of the decoder is higher than the parameter count of the unets. With this it now shows both.

Nice


Add the ability to set  fs-exclude and fs-include flags configuration in the kahoy app configuration file as an alternative

Closes #103
This PR adds the ability to set up fs exclude and include options in Kahoy's configuration file.

Codecov Report

Merging #104 into master will increase coverage by 0.09%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #104      +/-   ##
==========================================
+ Coverage   77.59%   77.68%   +0.09%
==========================================
  Files          21       21
  Lines         964      968       +4
==========================================
+ Hits          748      752       +4
  Misses        164      164
  Partials       52       52

Impacted Files
Coverage Δ

internal/model/app.go
0.00% <ø> (ø)

internal/configuration/v1.go
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Add kyuubi hive beeline module to support user-friendly beeline

Why are the changes needed?

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #1407 (f9cc405) into master (09c8a40) will decrease coverage by 1.85%.
The diff coverage is 0.00%.

:exclamation: Current head f9cc405 differs from pull request most recent head 34d7141. Consider uploading reports for the commit 34d7141 to get more accurate results

@@             Coverage Diff              @@
##             master    #1407      +/-   ##
============================================
- Coverage     59.45%   57.59%   -1.86%
  Complexity      154      154
============================================
  Files           209      225      +16
  Lines         10610    11395     +785
  Branches       1285     1407     +122
============================================
+ Hits           6308     6563     +255
- Misses         3781     4288     +507
- Partials        521      544      +23

Impacted Files
Coverage Δ

.../org/apache/kyuubi/jdbc/hive/KyuubiConnection.java
4.52% <0.00%> (-0.28%)
:arrow_down:

.../apache/kyuubi/server/api/v1/ApiRootResource.scala
37.50% <0.00%> (-22.50%)
:arrow_down:

.../main/scala/org/apache/kyuubi/server/api/api.scala
100.00% <0.00%> (ø)

...apache/kyuubi/server/api/v1/SessionsResource.scala
75.00% <0.00%> (ø)

...ver/mysql/authentication/MySQLAuthentication.scala
3.33% <0.00%> (ø)

...pache/kyuubi/server/mysql/MySQLDateTimeUtils.scala
0.00% <0.00%> (ø)

...server/mysql/authentication/MySQLAuthPackets.scala
78.31% <0.00%> (ø)

...ache/kyuubi/server/mysql/MySQLCommandPackets.scala
63.33% <0.00%> (ø)

...ubi/server/mysql/constant/MySQLServerDefines.scala
100.00% <0.00%> (ø)

...server/mysql/constant/MySQLCommandPacketType.scala
7.35% <0.00%> (ø)

... and 10 more

Continue to review full report at Codecov.

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


Author and publish the article /cigaradvisor/top-rated-rocky-patel-cigars

https://www.famous-smoke.com/cigaradvisor/top-rated-rocky-patel-cigars has not yet been imported in AEM.
Author the article in AEM and publish it.

Done by customer


Investigate scoring results and giving extensions (and core) scenarios in easy way to rank results

Right now, PT Run has the concept of results that can be ranked and scored so that when a user goes back to a specific result or item, it will show up more prominently in the search.
We should work on offering the same value here.

I mean, the extension totally controls the order of results, right? Isn't the "scoring" just "the order the extension hands IListItem's back in?

Yes that's true -- but it's largely abstracted away in Wox land. Here is an example from the Windows Settings PowerToys plugin:
   /// <summary>
   /// Set the score (known as order number or ranking number)
   /// for all <see cref="Results"/> in the given list, based on the given query.
   /// </summary>
   /// <param name="resultList">A list with <see cref="Result"/>s that need scores.</param>
   /// <param name="query">The query to calculated the score for the <see cref="Result"/>s.</param>
   private static void SetScores(IEnumerable<Result> resultList, string query)
   {
       var lowScore = 1_000;
       var mediumScore = 5_000;
       var highScore = 10_000;
       var firstResultScore = 10_500;

       foreach (var result in resultList)
       {
           if (!(result.ContextData is WindowsSetting windowsSetting))
           {
               continue;
           }

           if (!string.IsNullOrWhiteSpace(query))
           {
               if (windowsSetting.Name.StartsWith(query, StringComparison.CurrentCultureIgnoreCase))
               {
                   result.Score = !windowsSetting.ShowAsFirstResult ? highScore-- : firstResultScore--;
                   continue;
               }

               // If query starts with second or next word of name, set score.
               if (windowsSetting.Name.Contains($" {query}", StringComparison.CurrentCultureIgnoreCase))
               {
                   result.Score = !windowsSetting.ShowAsFirstResult ? mediumScore-- : firstResultScore--;
                   continue;
               }

               if (windowsSetting.Areas is null)
               {
                   result.Score = !windowsSetting.ShowAsFirstResult ? lowScore-- : firstResultScore--;
                   continue;
               }

               if (windowsSetting.Areas.Any(x => x.StartsWith(query, StringComparison.CurrentCultureIgnoreCase)))
               {
                   result.Score = !windowsSetting.ShowAsFirstResult ? lowScore-- : firstResultScore--;
                   continue;
               }

               if (windowsSetting.AltNames is null)
               {
                   result.Score = !windowsSetting.ShowAsFirstResult ? lowScore-- : firstResultScore--;
                   continue;
               }

               if (windowsSetting.AltNames.Any(x => x.StartsWith(query, StringComparison.CurrentCultureIgnoreCase)))
               {
                   result.Score = !windowsSetting.ShowAsFirstResult ? mediumScore-- : firstResultScore--;
                   continue;
               }
           }

           // On empty queries
           result.Score = !windowsSetting.ShowAsFirstResult ? lowScore-- : firstResultScore--;
       }
   }

The more I think about it, the less certain I am about what extent we should make scoring as easy as possible. It's something worth investigating based on feedback though because it's doable today and all you have to do is set a score? I still need to better understand exactly how this works under the hood.

I'm gonna reject this as "already possible". The Wox plugins might be setting a score to let Wox then order things by score, but IMO that's also something that apps can just do themselves.
If you've got existing Wox plugins that return a list of results, then just do a results.OrderByDescending(r => r.Score).ToArray() when returning the list out of GetItems

I wanna double check whether or not the changes are persistent after reboots for scoring for the existing plugins. I believe they are which is interesting.
I'm gonna keep closed but assign to me so I can filter for it later.

@zadjii-msft -- I know we closed this issue, but was just thinking about how we should certainly have some logic to automatically score the root page commands.
The most common use-case is for launching applications. We should have some "frecently" used way to make the most logical things pop to the top. Pretty sure this is how PT Run / Wox work today.
Example -- I type "ter" all the time for terminal and launch that app. We should have it be the case that in the future when I start typing "ter" that the match for terminal is higher than other matches.
A good example for me that is bugging me with my current local build is PowerToys. I often quickly launch PT, but right now I have a bunch of stuff that gets in the way when I type "Power" even though I never launch the other things:


Groovy kernel user install

Hi, I'm struggling to get Groovy kernel installed correctly.
I've installed the beakerx and beakerx_kernel_groovy with pip install but no kernel besides IPython is available.
Then I stumbled upon the beakerx_kernel_groovy install option and it needs sudo (as beaker install actually, too. But it has other way  of installation). I did install both packages to user space.
Why it wants system-wide install?
$ beakerx_kernel_groovy install
[Errno 13] Permission denied: '/usr/share/jupyter'
Perhaps you want to install with `sudo` or `--user`?
Traceback (most recent call last):
  File "/home/pk/.local/bin/beakerx_kernel_groovy", line 8, in <module>
    sys.exit(run())
  File "/home/pk/.local/lib/python3.10/site-packages/beakerx_groovy/__init__.py", line 22, in run
    parse_kernel_groovy()
  File "/home/pk/.local/lib/python3.10/site-packages/beakerx_groovy/commands.py", line 65, in parse_kernel_groovy
    args.func(args)
  File "/home/pk/.local/lib/python3.10/site-packages/beakerx_groovy/install.py", line 78, in install
    _install_kernels()
  File "/home/pk/.local/lib/python3.10/site-packages/beakerx_groovy/install.py", line 64, in _install_kernels
    subprocess.check_call(install_cmd)
  File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['jupyter', 'kernelspec', 'install', '--sys-prefix', '--replace', '--name', 'groovy', '/tmp/tmpue7fmnqw/groovy']' returned non-zero exit status 1.

$ beakerx_kernel_groovy --user install
usage: beakerx_kernel_groovy [-h] [--version] {install,uninstall} ...
beakerx_kernel_groovy: error: unrecognized arguments: --user

Now, it seems the beakerx broke my jupyter-lab install.
Upon launch, it now gives message below and start process stops.
Plugin 'beakerx:requirejs' is already registered.


Completeness of a section

What is the context of this PR?
This PR alters the way routing is handled in the survey. Specifically routing paths are now only built a single section at a time instead of for all sections, and completed sections are tracked as an attribute of a Completed object.
Changing the scope of a routing path to be constrained to a section means that additional checks are required to understand when a user is completing the last question in a section (and therefore the section should be complete), as well as when a new routing path based on the next section is required.
There are still a small number of cases where the changes in this PR will fail - these are captured by integration tests. The issue appears when a routing rule routes out of a section when there are still incomplete blocks in that section.
How to review
Run the full test suite. Run the application and observe moving back and fore between sections, as well as the section objects being tracked in the Completed object correctly (including when a user goes back to a section therefore marking it incomplete).
https://trello.com/c/3g29VCp7/2943-completeness-of-a-section-l

@iwootten I'll revert the get_ name changes - my personal preference is for the less verbose form here, but consistency across the project is better.

Erk, we shouldn't be force pushing during review as we can't follow changes introduced in new commits.

there are a lot of calls to add_or_update added in this PR. i would double check that the state isn’t written to the db on each of those calls as they will kill the performance.

I've been trying to break this, and not having much luck.
Did just find that the test_multiple_answers schema goes straight to the summary upon launch though

@MebinAbraham Good spot. That's broken as there are skip conditions on both groups in the second section. This can generate an empty routing path, redirecting you to the summary. As the second section is not in completed sections, the summary redirects you back to the second section. And so on.
For now I'm going to remove the skip conditions as I think we need to introduce skip conditions at a section level to solve this properly.


fix: version cannot be displayed in docker image

fix: #2981
I think this interface should determine which method to use to obtain the version based on the runmode in conf/app.conf. If it is dev, then obtain the version through Git History; If it is prod, then obtain the version through version_info.txt.
If users run Casdoor through compilation and in Production Mode, they should be required to generate version_info.txt after go build. I also create a PR in the Git repository of the Casdoor Document.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I think this interface should determine which method to use to obtain the version based on the runmode in conf/app.conf. If it is dev, then obtain the version through Git History; If it is prod, then obtain the version through version_info.txt.

"runmode" is mostly useless, we don't use it in such scenario.

@seeleclover as an advice, discuss with the community first before making a PR, to save your time


Clarify the use of empty forms for no arguments commands

Summary
Clarify the use of empty forms for no arguments commands
Ticket Link
https://mattermost.atlassian.net/browse/MM-35095

What do you mean by fix? If you talk about the problem with "having to provide an empty list of fields" that is already solved on master. Sending an empty form works just fine at least on the test app.
If you mean a more long-term solution (different calls for each action, etc...) we would still need a design or decision on how to tackle that.

If a call to a /form returns a 404, the proxy can put an empty form in (HACK ALERT)
The root fix goes to untying the 3 URL, so that a binding can just have a submit and not a form, cc @mickmister.

Closing as we will change the Calls in several ways to avoid this problem.


Filters as an array

Set drop down for filters to multiple.
remappedKeys() needs updating to support items in the Form Data with the same key.

Test multiple vs the API end point cluster.
api.saddlebag.exchange

Set drop down for filters to multiple.
remappedKeys() needs updating to support items in the Form Data with the same key.

This is now released into production.
👏


Summarize lightning-talks-may-19-evening-session

Add summary field listing each lightning talk, time of start in the video, and description.   All in a single line as required by the JSON specification.

Thank you..  Will fix.

Resubmited as #290


Fixed RuntimeJob deserialization

Summary
When calling service.jobs()[0].inputs the inputs were return in serialized format. Added deserialization inside this method.
Details and comments
Fixes #829.

I didn't add a test, mainly because I couldn't decide where such a test would fit in best. I am not sure if a test is really needed. Let me know what you think in the review.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 5 (20.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 67.003%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

qiskit_ibm_runtime/runtime_job.py
1
5
20.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
3389

Relevant Lines:
5058

💛  - Coveralls


Franz not starting up after latest Windows updates

Describe the bug
When I start Franz (latest 5.1.0), it does not start. Also, no process is started showing up in the task manager.
I tried reinstall, same thing.
To Reproduce

Make sure no instance of Franz is running, in no other Display that you just don't see.
Start Franz
Search for The window of the app... -> there is none.

Expected behavior
Showing the app Window after start.
Desktop (please complete the following information):

OS: Windows 10, latest

Interesting, using "start as administrator" works

Same here. Latest Insider Build (1903 / 18898.1000).
"Franz" process is running, shows up in Task manager, but no window. Doesn't work in elevated mode either on my machine. Even tried to uninstall and reinstall.

Describe the bug
When I start Franz (latest 5.1.0), it does not start. Also, no process is started showing up in the task manager.
I tried reinstall, same thing.
To Reproduce

Make sure no instance of Franz is running, in no other Display that you just don't see.
Start Franz
Search for The window of the app... -> there is none.

Expected behavior
Showing the app Window after start.
Desktop (please complete the following information):

OS: Windows 10, latest

Found a solution:
Delete the "Franz folders" from "$USERPROFILE$\AppData\Local" and "$USERPROFILE$\AppData\Roaming" and eventually reinstall "Franz". Worked for me.

@weberro It works for me, thank you so much for your help!


use nodata in autocorr accessor

We fixed the lagcorr functions a while back, but when using the hdc.algo.autocorr() accessor, the nodata value isn't picked up and passed on, so we're still calculating the wrong correlation values.
This PR gets the nodata value from the data array and passes it to the relevant function.

dunno what's up with pylint which such a minor change

hm, dispatch function here:
https://github.com/WFP-VAM/seasmon_xr/blob/45d8419b374fa89c4026f44666926feec08cfada/seasmon_xr/ops/autocorr.py#L176-L183
should probably warn when input is int but nodata is not set, this is almost always an error rather than a valid optimization

hm, dispatch function here:
https://github.com/WFP-VAM/seasmon_xr/blob/45d8419b374fa89c4026f44666926feec08cfada/seasmon_xr/ops/autocorr.py#L176-L183
should probably warn when input is int but nodata is not set, this is almost always an error rather than a valid optimization

wouldn't it be better if we do that at accessor level?

@Kirill888 can we merge this? Or somehow address the pylint issue? IMO the changes make sense

just merge, I'll sort out pylint later, probably version mismatch or some such

just merge, I'll sort out pylint later, probably version mismatch or some such

cheerio!


[$500] IOU - Replacing Receipt with an Invalid File Format Does Not Display an Error Message

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

Action Performed:

Login to any account
Send a Money Request to another account, using the Scan Receipt option
Click on the Receipt image to open the preview popup
Click on the “Three dots” icon >> select the “Replace” option
Replace the current image with another image in an unsupported format, such as "webp"
Observe that: there is no error, but when reloading the page, the old image still appears (which indicates that new image is not uploaded)

Expected Result:
In this case, the user has uploaded an invalid image format, so there should be an error message. The file should remain optimistically in Onyx until the user decides to clear the error.
Actual Result:
No error displays.
Workaround:
Unknown
Platforms:

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

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

Version Number: 1.3.74-2
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/78819774/166e4fc0-399f-46db-a228-ddb051b597fb
https://github.com/Expensify/App/assets/78819774/f6ced923-c723-4a5b-ad67-41c893991a9a

https://github.com/Expensify/App/assets/78819774/a7664b82-b7b2-435d-9135-354db35680cc
Expensify/Expensify Issue URL:
Issue reported by: @tranvantoan-qn
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1695720594688229
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01bb8307379994bc8e
Upwork Job ID:<PHONE_NUMBER>385632256
Last Price Increase: 2023-10-18
Automatic offers:

hoangzinh | Reviewer | 27267319
tienifr | Contributor | 27267321
tranvantoan-qn | Reporter | 27267322

Proposal
Please re-state the problem that we are trying to solve in this issue
The app allows the user to upload an invalid file format but then shows the old image.
What is the root cause of that problem?
The problem stems from the validateReceipt function located in the ReceiptSelector/index.js component:
function validateReceipt(file) {
    const {fileExtension} = FileUtils.splitExtensionFromFileName(lodashGet(file, 'name', ''));
    if (_.contains(CONST.API_ATTACHMENT_VALIDATIONS.UNALLOWED_EXTENSIONS, fileExtension.toLowerCase())) {
        setUploadReceiptError(true, 'attachmentPicker.wrongFileType', 'attachmentPicker.notAllowedExtension');
        return false;
    }
    ...

In this case UNALLOWED_EXTENSION does not exist within CONST.API_ATTACHMENT_VALIDATIONS, therefore no file format is excluded from upload as receipt.
What changes do you think we should make in order to solve the problem?
Would add UNALLOWED_EXTENSION constant as an array of comma separated strings with the not-allowed formats (TBD).
What alternative solutions did you explore? (Optional)
N/A
Example with UNALLOWED_EXTENSION: ['pdf'];
Videos
https://github.com/Expensify/App/assets/56457735/34739481-0e0c-4040-b63e-ce9752d1148a

@JmillsExpensify @youssef-lr, how does this one jive with this issue for allowing all file extensions? Seems like we're silently failing in this case.
CC: @AndrewGable @Gonals as well from the receipt upload implementation

Currently, if we fail to upload a receipt, although BE already returns an error, the App won't revert changes of optimisticData and show the previous receipt until we reload the page.

Hm, that sounds correct to me. We should show an error message immediately, but we shouldn't revert the receipt until they take action on the error message to dismiss it. For example..

I'm offline on a plane, and decide to do my expenses on the ride home
I upload a receipt for $100 to get paid back from my company, and I throw the receipt away
We optimistically create the request with the receipt
I go back online and the receipt upload fails for some reason
I don't have the receipt anymore, so I download it, and try again

If we just reverted the receipt that failed to upload, a user could very well be out of pocket, so I think we need to be careful with that.
CC: @mountiny @iwiznia

Yeah I think I agree with that. We need to provide a way for you to get the thing you uploaded

Yeah, so I think that should apply with a failed receipt upload when replacing a receipt here? We display the error message, and when you dismiss it, it reverts back to the original.

So, does that mean we will now check the file format locally and show an error if it is not a supported file type, instead of sending it to the backend immediately?

I think we should fix it properly, yeah. Otherwise people will lose receipts that failed to be replaced.
@Gonals might have some insight on the approach for this from the Scan Receipt implementation, as we should be doing the same to give them the option to download it on a failed receipt upload.

So it sounds like the given proposal that was approved by C+ doesn't entirely fit our requirements. We don't want to lose the optimistic file in Onyx that was uploaded, in case the user wants to redownload the file and try again.
This is still open for proposals!

@hoangzinh done

Proposal updated after latest Expected result changes.

In this case, the user has uploaded an invalid image format, so there should be an error message. The file should remain optimistically in Onyx until the user decides to clear the error.

@jasperhuangg we should make this clear that they should maintain an option to download it as well, right? Otherwise it's still lost when they clear the error.
As for the in-line error message, I would think it follows this structure:

The new receipt didn’t upload, save the file to not lose it, or dismiss this error to revert back to the original receipt.
[insert API error message returned here]

Clicking "save the file" in the error message downloads a copy of the failed file upload.

@jasperhuangg we should make this clear that they should maintain an option to download it as well, right? Otherwise it's still lost when they clear the error.

hmmm yeah there's a big risk if we clear the file with clearing the error, if the customer does not save it first, but also we probably can't keep it forever there, right? What if we made the button to dismiss the error ALSO trigger a download? That way we ensure the user saved it (or had the possibility of saving it). We can make it clear in the error that they should save the file when closing the x, if it's possible that the file was not saved (not sure if it is).

What if we made the button to dismiss the error ALSO trigger a download?

That seems like a good way to make sure it's not overlooked if we can.

We can make it clear in the error that they should save the file when closing the x, if it's possible that the file was not saved (not sure if it is).

I'm not sure it is either, wouldn't it just go to downloads?
New error message proposal then being something like..

The new receipt didn’t upload. Dismissing this error will download a copy of the file and revert back to the original receipt.
[insert API error message returned here]

Hm, on iOS I'd expect it to save to Files, not sure on Android though.

There are some concerns in my mind about the "Dismissing this error will download a copy of the file". I think this function only has advantages if user uploads a receipt via Taking a photo. Other methods like uploading a receipt => they already had it stored in their device => If we auto download, we might save another duplicated receipt in their device.

Saving a dupe is better than losing it if it's a trade-off, but I get the point. They might have a copy so don't need to download an additional one, so by making it auto-download when dismissing the error message we eliminate the choice presuming they don't have a copy. In which case perhaps the hyperlinked [save the file] button is better so they have that choice.

Moreover, in order to do it, on some platforms users need to grant permission to save a file.

Sure, but that's the case either way we allow or make them take the action to save the file?

I have an idea, instead of downloading, is it better if we have a button/icon/text to re-upload/retry?

I don't think so. Retrying over and over doesn't help you get a copy of the receipt back.

Last but not least, I feel like either downloading or re-uploading are kind of feature request rather than fixing a bug. Just wanna confirm again if we would like to do either of them in this issue. Thanks

I guess you could argue that it's a feature request, but we're looking to solve the bug the right way here. Happy to make this issue a new feature if that's the consensus, but let's fix it properly.

I personally like the idea of giving the user the choice of whether to redownload the file or not. To me, dismissing the error to download the file doesn't seem very clear to me, and it could also be confusing to the user especially if they're given a duplicated file.
Why would we need to redownload the file if we dismiss the error though? Wouldn't the user always have the file if they uploaded it?

That could work. Though do you think it's a bit hidden? Like are you going to be scared to hit the X not knowing that you'll then have an option to download it? Or are you thinking it's..
In-line:

The new receipt didn’t upload, download the file to not lose it, or dismiss this error to revert back to the original receipt.
[insert API error message returned here]

If they tap the X to dismiss the error then they get an additional modal to confirm:

Are you sure?
Download the receipt first if you don't have another copy of it.
[Delete]
[Cancel]

I like that second option more, I feel like in-line links would be difficult to tap on mobile. But I think we should probably bring this to a wider audience since this is really feeling like a new feature at this point.

Ah, it wouldn't be either one or two, but both. To illustrate where we're at with it:

Happy to take this to open-source, though probably tomorrow at this point!

Ohh I see what you mean @trjExpensify sorry for the confusion. With the mockups it looks better to me. Let's taken it to #expensify-open-source to get some more eyes on it. Did you get these mockups from design (are these mockups design approved)?

Thread: https://expensify.slack.com/archives/C01GTK53T8Q/p1696502156555529

Did you get these mockups from design (are these mockups design approved)?

Nah, I created them myself to illustrate the proposal!

Okay, so wrapping up after that convo. We're aligned, and looking to proceed with this:

The copy has been edited ever so slightly!

@jasperhuangg can you please do a secondary review of the proposal please? Thanks!

@jasperhuangg still waiting on your secondary view of the proposal.

Bumped @jasperhuangg

I found out that, after uploading the pdf file, BE server still returns success data, is it correct?

PDFs are allowed for receipt uploads. Interestingly, there's a bug with them displaying though that we're talking about here.

I also want to confirm that which extensions that are not allowed.

Same with this one in the thread. We have a list of allowed extensions in the BE, but the FE check needs adding that Alberto is looking into. Jump into the thread :)

Ah also, I just realised that @Gonals is still working on the OG implementation of this in the request creation flow in this PR. Let's make sure we're all aligned here for complimentary work. :)

Yeah cool, makes sense to me.

The linked PR we're holding on is still in review.

Still in review, conflicts for @Gonals to address!

comments have been addressed on the linked PR we're holding on. Awaiting a re-review from @0xmiroslav! :)

This is still on HOLD cc @0xmiroslav

No change, linked PR is still in review.

Linked PR still in review. C+ approved, awaiting the secondary review(s) now from @marcochavezf & @nkuoch.

Let's get moving!

Have you gone through the replace receipt flow? Here's the expected for reference: https://github.com/Expensify/App/issues/28343#issuecomment-1749823256

@Gonals your PR was (partially?) reverted a couple of weeks ago and I can't see where it was addressed to reimplement. Can you jump back on this one please?

@Gonals has put a PR in review to unblock you here: https://github.com/Expensify/App/pull/32562

@0xmiroslav can you review https://github.com/Expensify/App/pull/32562 please?

Still held. Commented in the PR.

Still held on the PR, looks like good progress is being made in the review.

Same

@hoangzinh we should be unblocked here now! :)

@jasperhuangg over to you for the secondary review!

@tienifr let's move forward with your proposal!

👋 checklist time here!

Nice, thanks! Applause have a regression test for the failed upload side, so I've created an issue for the replace receipt side.

Summarising payouts as follows:

$500 to @hoangzinh for C+ review
$500 to @tienifr for the fix
$50 to @tranvantoan-qn for the bug report (prior to the Oct 24th cut off).

Settled up, thanks!


add support for voice media

Threads containing voice messages returns this kind of messages with type placeholder and a message to update the app when it should be of type voice_media.
Response example:

This behaviour is related to the APP_VERSION (<IP_ADDRESS>.96) the requests are being sent with.
In order to support voice messages I have increased the APP_VERSION to the minimum required which supports voice_media so this is the new and desired response:

could we as well raise the vesion and the SIG_KEY to the one here https://github.com/dilame/instagram-private-api/blob/master/src/core/constants.ts#L1

Sure! I just raised both.

thank you!


Expose async client stream info to consumers

Commit Message: Expose async client stream info to consumers.
Additional Description: This will allow ext_proc to extract info such as the endpoint used, bytes sent/received, etc.
Risk Level: Low
Testing: N/A
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

cc @htuch @tyxia

/assign @htuch

LGTM with some test added. @wbpcode for non-Google.

added tests

/retest