Miss inside Miss does not work

Consider I have two apps, one in /OtherApp, but then main app which takes rest of the urls:
import * as React from "react";
import { render } from "react-dom";
import { HashRouter, Match, Miss, Link } from "react-router";

const OtherAbout = () => (

Other About

)
const OtherNoMatch = ({ location }) => (

Other app 404

Sorry but didn’t match any pages

)
const OtherApp = ({ pathname }) => {
    return

OtherApp

        <Match exactly pattern={`${pathname}/About`} component={OtherAbout} />
        <Miss component={OtherNoMatch} />

;
}

const MainAbout = () => (

Main About

)
const MainNoMatch = ({ location }) => (

Main app 404

Sorry but didn’t match any pages

)
const MainApp = () => (

Main App

        <Match exactly pattern="/About" component={MainAbout} />
        <Miss component={MainNoMatch} />

)

class App extends React.Component<any, any> {
    render() {
        return <HashRouter>

                <Match pattern="/OtherApp" component={OtherApp} />
                <Miss component={MainApp} />

        </HashRouter>;
    }
}
render(<App />, document.querySelector('#root'));
document.body.style.display = "block";

/OtherApp/About -> OK (Other App's about page as expected)
/OtherApp/notfound -> OK (Other app's 404 as expected)
/About -> OK (Main apps about page as expected)
/notfound -> ERROR Does not work as main apps 404. Instead it shows me empty page.
Is this a bug? The MainApp should have it's own Miss IMO to cleanly separate the concerns.

<Miss component={MainApp} /> should be <Match pattern='/' component={MainApp} />. This will create a new <MatchProvider> for the <MainApp>.
Putting a <Match> inside of a <Miss> messes with the miss/match system because they share the same <MatchProvider>. If a <Match> inside of a <Miss> matches, then the <Miss> will no longer render its component. This in turn means that the <Match> will also not render.
For example, while you can navigate directly to the /About page with your provided code, you cannot navigate from the root (/) to /About. This only works when navigating directly because the <MatchProvider> does not get updated after the <Match component={MainAbout} /> component is rendered.
// go to localhost:3000/#/, then click the "About" link
const MainApp = () => (

Main App

    <Link to='/About'>About</Link>

    <Match exactly pattern="/About" component={MainAbout} />
    <Miss component={MainNoMatch} />

)

To directly answer your question about a <Miss> inside of a <Miss>, the reason that that doesn't work is that notifySubscribers is never called after the first <Miss> has rendered, so the nested <Miss>'s subscriber function is never called and it never re-renders.
One case where it should render would be when navigating from one miss to another (/ to /notfound). However, this does not work with the current release because of an optimization where subscribers aren't notified if there were no matches and there still are no matches.
Commit #3980 dropped that optimization, so that type of transition will work with the next release of v4. That said, I just wouldn't recommend using <Miss> as a catch all. I know that the "Ambiguous Matches" example does something like that, but even that would run into issues with nested matches (unless you wrap the <Miss>'s child component in a <MatchProvider>, but since it isn't a default export, I'm guessing that wouldn't be encouraged).

@pshrmn I think I tried this <Match pattern='/' component={MainApp} /> but the problem is then both OtherApp and MainApp matches. We need #3994 to deal with this then.

Ah, yes, I overlooked the double render. I guess that it is mostly a weird situation because it is bending what I think of as a miss (no matches) to being "try these other <Match> components when no other `es matched" (the exclusive issue).

Yeah, I can't even think about what should happen if you put Match inside of a Miss. I'd put MainApp at /, not in Miss, it's not intended to be used as a "default case", its an "exceptional case". The "default case" is <Match pattern="/" exactly/>

@kwelch can you move your comment (https://github.com/ReactTraining/react-router/issues/3994#issuecomment-252946797) over here and delete it from there?

I have this same problem but I took a slightly different approach due to the #4016 issue. For the record, I am not proud of this solution so I would love a better approach. Using the Example above here is how I fixed this problem at at deeper a level.
class OtherApp extends React.Component {
  render() {
    const matchA = matchPattern('a', this.props.location, false, this.context.match.pattern);
    const matchB = matchPattern('b', this.props.location, false, this.context.match.pattern);
    const matchC = matchPattern('c', this.props.location, false, this.context.match.pattern);
    const displayDefault = !matchA && !matchB && !matchC;
   return (

Other App header

      {matchA && <ComponentA />}
      {matchB && <ComponentB />}
      {matchC && <ComponentC />}
      {displayDefault && <DefaultView hasNesting='true' />}

);
  }
}

Can you show me the urls and the components you want to render (along with their nesting)? For whatever reason I can't think of what you're trying to do from a product perspective.

Here is a high-level of what I have now focused mainly on the Events tree, but similar pattern could be used for Users.
/ ->
<Title />

<Match '/events'><EventLayout /></Match>
<Match '/users'><UsersLayout /></Match>
<Miss><NotFoundPage/></Miss>

/events ->
<Match '/:id'><EventDetail /></Match>
<Match exactly '/'><EventList /></Match>

/events/:id ->
!this.props.event -> <NotEventFound />
<Match 'confirmation'><EventConfirmation /></Match>
<Miss? ><DetailView />

DetailsView ->
<Match 'register'>
  <RegistrationForm>
    <DynamicForm />
    <Match 'payment'><PaymentForm/></Match>
  </RegistrationForm>
</Match>

Looks like maybe we need to work on the docs for exactly and how to couple nested UI to nested URLs. Unless I'm mistaken, this is what you're after.
const App = () => (
  <Router>

      <Title />

      <Match pattern="/events" component={EventLayout}/>
      <Match pattern="/users" component={UsersLayout} />
      <Miss component={NotFoundPage}/>

  </Router>
)

const EventLayout = ({ pattern }) => (

    <Match pattern="/:id" component={EventDetail}/>
    <Match exactly pattern={pattern} component={EventList} />

)

const EventDetail = ({ pattern }) => (

    <Match pattern={`${pattern}/confirmation`} component={EventConfirmation} />
    <Match exactly pattern={pattern} component={DetailView} />

)

const DetailsView = ({ pattern }) => (

    <Match pattern={`${pattern}/register`} component={Register}/>

)

const Register = ({ pattern }) => (

    <RegistrationForm>
      <DynamicForm />
      <Match pattern={`${pattern}/payment`} component={PaymentForm}/>
    </RegistrationForm>

)

I will try that again, the DetailView had issues rendering when pathname was /events/:id/register
I will let you know. Thanks!

@ryanflorence The issue with @Ciantic's case was that they don't want an exact match on /. They wanted all routes that weren't matched by the other apps to share some common "main app" UI, which is why they were placed in a separate component.
const OtherApp = ({pathname}) => (
  <OtherUI>
      <Match pattern={`${pathname}/about`} component={OtherAbout} />
      <Miss component={OtherMiss} />
  </OtherUI>
)

const MainApp = ({pathname}) => (
  <MainUI>
    <Match pattern={`${pathname}/about`} component={MainAbout} />
    <Miss component={MainMiss} />
  </MainUI>
)

const App = () => (
  <Router>
    <Match pattern='/other' component={OtherApp} />
    <Miss component={MainApp} />
  </Router>
)

Then, any view for a URL that doesn't begin with /other would have the UI provided by <MainUI>. The solution is probably just that each route that wants the main UI should wrap its component in it. I'm not sure if there is some more complex case that makes this undesirable
const MainMiss = () => (
  <MainUI>
    404
  </MainUI>
)

const MainAbout = () => (
  <MainUI>
    About
  </MainUI>
)

const App = () => (
  <Router>
    <Match pattern='/other' component={OtherApp} />
    <Match pattern='/about' component={MainAbout} />
    <Miss component={MainMiss} />
  </Router>
)

@pshrmn exactly, and you've changed the MainApp to be the preciesly reason I want to do it.
The "apps" can be then plugged in to any URL path, regardless if they are in there or not. Even in the root path.

Can you do a table of URL -> components you want to render, I'm not getting this.

I think there is no simpler code than the one above.
One develops apps like this:
const MainApp = ({pathname}) => (
  <MainUI>
    <Match pattern={`${pathname}/about`} component={MainAbout} />
    <Miss component={MainMiss} />
  </MainUI>
)

and they can live in all subdirs now, except in the root if others share it.

Okay once more, I'll try to explain:
Let's not think about MainApp, it's confusing name cause any of the apps could be main app.
const OtherApp = ({pathname}) => (
  <OtherUI>
      <Match pattern={`${pathname}/about`} component={OtherAbout} />
      <Miss component={OtherMiss} />
  </OtherUI>
)

const FancyApp = ({pathname}) => (
  <FancyUI>
    <Match pattern={`${pathname}/about`} component={FancyAbout} />
    <Miss component={FancyMiss} />
  </FancyUI>
)

const ThirdApp = ({pathname}) => (
  <ThirdUI>
    <Match pattern={`${pathname}/about`} component={ThirdAbout} />
    <Miss component={FancyMiss} />
  </ThirdUI>
)

const App = () => (
  <Router>
    <Match pattern='/other' component={OtherApp} />
    <Match pattern='/fancy' component={FancyApp} />
    <Match pattern='/third' component={ThirdApp} />
  </Router>
)

How can I one day decide I want to plug ThirdApp (maybe even in some other package) to the "/" root? We need exclusive for that

I hope I'm being clear here, I think @pshrmn got it.

okay I think I get it now. I'm working on a <MatchGroup/> that will only match one <Match/> which is the same as "exclusive" for the group.

Oh great! Sounds like just the feature. I don't see a need for exclusive attribute if immediate Matches in MatchGroup match only the first one in order.

@ryanflorence I attempted your suggestion in the comment above, but having the exactly on the EventDetail is not allowing it nested components to be rendered.
Any ideas? I may have to go the MatchGroup route.

@kwelch that is what exactly means, it matches only that url and not nested ones. There is no feature to do this yet, MatchGroup is the way when it's available.


BUG FIX:

BUG FIX:
Files are ignored when the result of filter is true. They should be included as per your readme.
if (options.filter && options.filter(f)) return;
should be
if (options.filter && !options.filter(f)) return;
to not watch the file.

I guess its not really a Bug. The documentation is just unclear. Its TRUE when it shall be filtered (not included) and FALSE if it shall not be filtered (included).

@jacwright mind closing?


GOSW33- Newsletter subscription above footer area

Features to work on:

A responsive component to accept the news letter subscription.

Always note this

Use comments for better explanation of your code.
Create new branch for each issues and make sure to pull the latest code from development branch.
Try to resolve conflicts in the files before submitting the PR.

Assign me .

@nanda-mik Assign me this pls completed issue and in review
And also till then, I will try to fix Conflict
because of that, I was really waste so much time

@sachinsom93 work on this!

@sachinsom93 thank you for the contribution. We have successfully merged the pull request. You have received 10 points for the contribution


feat(project): add support for directives and pipes to playgrounds

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

Issue Number
Issue that is fixed by this PR (if there is one).

Issue Number: #60
Does this PR introduce a breaking change?

[ ] Yes
[x] No

What changes

Added support for directives and pipes
Tooltips for playground properties now support markdown

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

v16.4.0
GitHub release

Your semantic-release bot :package::rocket:


UnboundLocalError: local variable 'ETE3DBTAXAFILE' referenced before assignment

Hello,
I'm running mob_recon v3.1.2 in a clean conda environment, and am running into the following error:

2023-02-08 14:03:07,473 root INFO: Blasting contigs against reference sequence db: /home/gabhan/anaconda3/envs/mob_suite/lib/python3.8/site-packages/mob_suite/databases/ncbi_plasmid_full_seqs.fas [in /home/gabhan/anaconda3/envs/mob_suite/lib/python3.8/site-packages/mob_suite/mob_recon.py:1261]
2023-02-08 14:04:27,720 root INFO: Filtering contig blast results: /home/gabhan/Desktop/09_MOBrecon/NR3CA-JPI-2018-265/__tmp/contig_blast_results.txt [in /home/gabhan/anaconda3/envs/mob_suite/lib/python3.8/site-packages/mob_suite/mob_recon.py:1266]
2023-02-08 14:04:33,214 root INFO: Assigning contigs to plasmid groups [in /home/gabhan/anaconda3/envs/mob_suite/lib/python3.8/site-packages/mob_suite/mob_recon.py:1281]
2023-02-08 14:04:46,385 root INFO: Writting contig results to /home/gabhan/Desktop/09_MOBrecon/NR3CA-JPI-2018-265/contig_report.txt [in /home/gabhan/anaconda3/envs/mob_suite/lib/python3.8/site-packages/mob_suite/mob_recon.py:1383]
Traceback (most recent call last):
File "/home/gabhan/anaconda3/envs/mob_suite/bin/mob_recon", line 10, in
sys.exit(main())
File "/home/gabhan/anaconda3/envs/mob_suite/lib/python3.8/site-packages/mob_suite/mob_recon.py", line 1396, in main
build_mobtyper_report(contig_memberships['plasmid'], out_dir, mobtyper_report,contig_seqs, ncbi, lit,ETE3DBTAXAFILE)
UnboundLocalError: local variable 'ETE3DBTAXAFILE' referenced before assignment

mob_recon stops running at this point, and leaves a "__tmp" folder with several files in it.
I've noticed that there have been other posts about an ETE3 issue, but I'm not sure how to fix it.
thanks in advance for any help you can offer!

Hi @gchalmer,
I was having the same issue as you, however, it appears to be a bug in v3.1.2 of the program. There's thankfully an easy fix: go to line 1031 of mob_recon.py and delete one of the tabs. It should look like what I've done in the screenshot below.

On the bright side, I only got this error when mob_recon found a plasmid in my samples. Happy hunting!
George

Yep, that fixed it. Thank you sir!

This bug was also resolved in the most recent version of the tool (v3.1.4) and was also discussed in issue #127. Thank you for your support and feedback.


Update configure-vmware-hcx.md

Updating HCX EE pricing information.

@jjaygbay1

Can you review this PR?

IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


ci: Modularizing the Github actions workflow for maintainability

Description
This PR refactors the integration-test.yml Github action workflow that is triggered during ok-to-test command. We create centralized workflows for server, client & rts builds. This allows us to create more workflows in the future with ease and without error. It also bring more consistency in the naming convention.
Type of change

Refactoring code

How Has This Been Tested?

Tested on personal repository

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] 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

/ok-to-test sha=4fede75


Status of F8 ABC of Governance

https://cardano.ideascale.com/c/idea/398140

Report for 20th February 2023 - Submitted

#90
Status - extant - In progress
Highlight change of scope to focus on recent governance changes such CIP 1694

ABC of Governance - Decentralisation
https://youtu.be/7w_5BQXYJfI

In what other areas can we use YouTube shorts ?
Innovation is in preparation.

Planning -

Blockchain Improvement Proposals
Reputation Systems

Working on "Agency Theory & "Skin in the game" presentation

Producing more content in PowerPoint to speed delivery up
Start reorganizing the GitBooks to prepare for closing reports
Working on "Blockchain Improvement Proposals", "Agency Theory & "Skin in the game" and "Innovation"


xExchAddressList: New Ressource

Pull Request (PR) description
This PR adds new DSC Ressource for managing address lists.
This Pull Request (PR) fixes the following issues
None
Task list

[x] Added an entry under the Unreleased section of the change log in the CHANGELOG.md.
Entry should say what was changed, and how that affects users (if applicable).
[x] Resource documentation added/updated in README.md.
[x] Resource parameter descriptions added/updated in README.md, schema.mof
and comment-based help.
[x] Comment-based help added/updated.
[ ] Localization strings added/updated in all localization files as appropriate.
[ ] Examples appropriately added/updated.
[x] Unit tests added/updated. See DSC Resource Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Resource Testing Guidelines.
[x] New/changed code adheres to DSC Resource Style Guidelines and Best Practices.

This change is

Codecov Report

Merging #431 into dev will increase coverage by 0.9%.
The diff coverage is 77.87%.

@@            Coverage Diff            @@
##              dev     #431     +/-   ##
=========================================
+ Coverage   44.91%   45.81%   +0.9%
=========================================
  Files          42       43      +1
  Lines        5241     5330     +89
=========================================
+ Hits         2354     2442     +88
- Misses       2887     2888      +1

Impacted Files
Coverage Δ

...SFT_xExchMaintenanceMode/TransportMaintenance.psm1
4.18% <0%> (ø)
:arrow_up:

...s/MSFT_xExchAddressList/MSFT_xExchAddressList.psm1
98.87% <98.87%> (ø)

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 be37f16...7f18ab2. Read the comment docs.


Error is being shown on wrong line

See this screenshot for details. Error is on line 36, and the type error from Clarity also indicates line 36. However, the error always shows up on line 37, as you can see in the screenshot. The error message is correct (type error in +).

Thank you for reporting this issue @hstove!
This issue is being addressed with the latest release (2.11) available on visual studio marketplace.
Changelog available here: https://github.com/lgalabru/clarity-lsp/compare/2020-04-06...2020-04-07


Mismatched Calendar entries

Describe the bug
The calendar on petio does not match that of sonarr. The episode numbers match but not the show title
To Reproduce

Compare sonarr calenadar to petio calandar

Expected behavior
Both of them should match
Screenshots

Desktop (please complete the following information):

OS: Windows
Using binary

Additional context
Add any other context about the problem here.

Having the same issue, running 0.5.2

@architdate @proteus077 Could you guys use the latest dev version as I just made a recent commit to fix this issue, could you guys take a look?

@ADRFranklin seems to have the correct show names now, only thing I've now noticed is that the calendar in Petio is showing TV shows that are set as unmonitored in Sonarr, whereas the Sonarr calendar hides these shows. Not really a big deal and probably unrelated to this issue but worth mentioning. Thanks for fixing this up!

Good to know it works, but showing unmonitored shows is intentional.


Getting started docs recommend adding whatever directory you're in to your PATH

e.g. here
$ wget http://storage.googleapis.com/kubernetes-release/release/v${K8S_VERSION}/bin/darwin/amd64/kubectl
$ chmod 755 kubectl
$ PATH=$PATH:`pwd`

Could we consider suggesting installation via brew, which would place kubectl somewhere by design, or suggest to the user to move the file to somewhere already on the user's PATH, e.g. /usr/local/bin ?

Replaced by Minikube.
http://kubernetes.io/docs/getting-started-guides/minikube/


Add version number to all serialized structs

This will enable us to upgrade consensus-critical structs like Transaction in the future

Call: For starters, add it to epochs and transactions.

Closing due to inactivity


fix: messages content overlap when bottom sheet is shown

Details
A successor of https://github.com/Expensify/App/pull/16356
The first step of react-native-keyboard-controller migration plan

[!Important]
This PR relies on react-native-keyboard-controller (useKeyboardHandler) hook and KeyboardAvoidingView component).

How it works 🤔
This PR is iOS only for now. Other platforms are not affected. Also, in this explanation, we are talking about iOS only since on Android, iOS web and Android Web keyboard handling works differently.

[!Note]
We're talking about default platform behavior. If we start to use react-native-keyboard-controller on Android - it'll disable all default keyboard handling by OS and will delegate the keyboard handling to us - so we will have identical behavior across both iOS/Android platforms.
But it may introduce additional issues (because we need to enter edge-to-edge mode - that would be good to do on entire app level, but it may bring some issues with StatusBar paddings, so everything has to be verified very carefully). That's why I think it would be better to handle in separate PR.

When we long press on a message, we want to be able to see it. It's easy when we have the keyboard closed. But gets tricky when the keyboard is open.
But first of all let's focus on the case when the keyboard is closed. User long press on the message, we render the bottom sheet (action sheet) with some options. If the message is higher than the height of bottom sheet - the message is visible. When the message is the last one (first from the bottom), it can be fully or partially covered by the bottom sheet.

Press to see videos

Message above bottom sheet
Message and bottom sheet overlap

Also everything is tricky when we have keyboard open 😓

Press to see videos with keyboard

emoji picker instead of the keyboard (the messages should not jump)
showing a message which is covered by the keyboard and the bottom sheet

To achieve this goal we had to:

use our own scroll component on iOS for FlatList of ReportListView (it uses reanimated to move the view by the offset)
use KeyboardAvoiding so we're in sync with keyboard-avoiding style updates
implement animated style handling using a state machine
create ActionSheetAwareScrollViewContext to pass the transition function, so we can transition from one state to another by action triggered from different parts of the application

Below you can find more use cases that involves keyboard and other UI elements interactions:

Interactions with other UI elements

Add attachment
Call popover

[!Note]
Call popover, bottom sheet and emoji picker are implemented as Modal windows and on iOS keyboard instantly gets hidden when modal window is shown. But "Attachment" popup is implemented not as modal, so for this type of transition we are using progress-based animations. When we press on plus -> popup is already shown under keyboard and we dismiss the keyboard. Overall the mechanism is similar to what we've used in the past, except the moment where we substitute translationY value - in case when keyboard disappear/appears we interpolate it by progress variable to achieve smooth transitions.

Technical details ⚒
So in order to calculate the offset for the message, we:

Measure the message item in the window using ref.current.measureInWindow, so we can have height and y coordinate of the image
Measure the height of the bottom sheet using onLayout callback
Get the window height from Dimensions
Get safeArea.top since y coordinate doesn't get into account safe area
Calculate offset as elementOffset = (y + safeArea.top + itemHeight) - (windowHeight - popoverHeight)
In order to animate item when they keyboard was open, we need to also know its height which is provided by useAnimatedKeyboard hook from react-native-reanimated, but we should always subtract safeArea.bottom from it since it's not part of the calculation for the offset, but only keyboardHeight.

Overall, the keyboard is the tricky part. On iOS, the keyboard doesn't resize the viewport. So for the content to not be covered by the keyboard, KeyboardAvoidingView is used. In React Native, KeyboardAvoidingView is implemented as a view that changes its height or resizes the children's view by the keyboard height. It's done using RN's Layout Animations. This results in the animation for the keyboard being applied using the native event emitter callback which uses the bridge. So open/close events of the keyboard will always be delayed that resulting in the delayed keyboard avoiding animation and, which is more important, scheduling layout animations.
In order to be consistent 100% of the time with animation and timings, we had to:

use KeyboardAvoidingView from react-native-keyboard-controller for iOS. It reacts on keyboard height/state change on UI thread in the same frame, so we can schedule an update for styles in the next frame
use just useDerivedValue for all the logic, since introducing useAnimatedReaction or having multiple shared values will delay updates for 1 frame, but we want to be 100% in sync with keyboard updates
use paddingTop: translateY (because ScrollView is inverted).

Another important aspect of the implementation is the usage of the state machine for the animation. State machine allows us to specify the chain of events and how to handle them, and more importantly what actions to ignore, for example:

Initial state is idle. it can react to KEYBOARD_OPEN action
we open emoji picker. it sends EMOJI_PICKER_OPEN action
there is no handling for this action in idle state so we do nothing
we close emoji picker and it sends EMOJI_PICKER_CLOSE action which again does nothing
we open keyboard. it sends KEYBOARD_OPEN action. idle can react to this action by transitioning into keyboardOpen state
our state is keyboardOpen. it can react to KEYBOARD_CLOSE, EMOJI_PICKER_OPEN actions
we open emoji picker again. it sends EMOJI_PICKER_OPEN action which transitions our state into emojiPickerOpen state. now we react only to EMOJI_PICKER_CLOSE action
before rendering the emoji picker, the app hides the keyboard. it sends KEYBOARD_CLOSE action. but we ignore it since our emojiPickerOpen state can only handle EMOJI_PICKER_CLOSE action. so we write the logic for handling 9. hiding the keyboard but maintaining the offset based on the keyboard state shared value
we close the picker and send EMOJI_PICKER_CLOSE action which transitions us back into keyboardOpen state.

Fixed Issues
$ https://github.com/Expensify/App/issues/10632
PROPOSAL: N/A
Tests
These steps were performed on all the platforms. The new behavior is iOS only for now.

Open chat
Long press on the first message - message should be pushed up to be displayed above the bottom sheet
Long press on the top message - if the message is not covered by the bottom sheet, it should stay in place
Long press on any attachment (document, message) should result in the same behavior

Before each next we make sure the keyboard is open:

Long press on the message should either animate the message above the bottom sheet or keep it in place
Messages should not "jump" because of keyboard hide/open when showing bottom sheet, emoji picker
Press on emoji picker in the composer, messages should stay in place even though the keyboard was closer - emoji picker is rendered instead of keyboard
Long press on the mesage, click on add reactions - close emoji reactions

[ ] Verify that no errors appear in the JS console

Offline tests
Should not affect the offline state.
QA Steps
Same as Tests

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/22820318/8d85d789-96fa-46fe-8e3c-3b1134557510

Android: mWeb Chrome
https://github.com/Expensify/App/assets/22820318/5ddc8d16-b47a-4be4-a268-d091296eff82

iOS: Native
https://github.com/Expensify/App/assets/22820318/d53576ee-3e8f-4658-9926-06e5451b8ab8

iOS: mWeb Safari
https://github.com/Expensify/App/assets/22820318/0670358f-afb4-4770-8862-87bc1fbfc96f

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/22820318/9c5f5877-7a2f-4e75-8ff8-705f612e172c

MacOS: Desktop
https://github.com/Expensify/App/assets/22820318/5abc36ca-b030-45ba-b315-fa1b8ba8f151

Just a quick update - after enabling new architecture I see very low FPS for animation:
https://github.com/Expensify/App/assets/22820318/c8ba7905-a772-49cf-a933-da250b633d5e
Currently trying to understand why it works so slow and what needs to be changed to speed it up 👀
Also found a crash and fixed it in https://github.com/kirillzyusko/react-native-keyboard-controller/pull/444
Keep working on this PR 💪

I continue to work on this problem. Still investigating why we observe performance drop - the problem is that even if we don't change layout of list/footer etc. and run a simple animation of red square (via translateY property), then it's still laggy 🤯
https://github.com/Expensify/App/assets/22820318/a47fa440-f87e-403c-a0e0-031b31ee74a1
I think this investigation will take more time, than I initially expected.

@kirillzyusko I'm going to mark this as WIP, feel free to remove the prefix when you feel it's ready for further reviews

I just started working on it. After some testing, I found one critical bug (screen recording). In general, the animation feels junky. I will fix the bug first and then start working on improving the animation's performance.
https://github.com/user-attachments/assets/c0d6821e-04c1-4915-8b8c-527b3d003290

I found a bug in the Modal component from React Native. When there is an active text input on the page and the modal is opened, the keyboard hides automatically. After the modal is closed, the keyboard opens twice in a row. With react-native-modal, it opens three times in a row.
Since we often use modals for popups alongside active text inputs, this issue is frequent. In our case, we rely on the keyboard opening event, and this behavior causes jumpy animations.
You can see more details here: https://github.com/react-native-modal/react-native-modal/issues/773
I'm going to fix it upstream in React Native or change the behavior so that we close the keyboard before opening the modal and open it again when needed.

Here's a video of the current state:
https://github.com/user-attachments/assets/80944709-0574-42bd-9eaf-7a8e9d29f948
For me, it still does not feel as smooth as I want. Also, in rare cases, we can see frame dropping. I have some expectations for the Optimize Shadow Tree cloning PR. But as we're using Fabric, we need to update REA to the latest version, and for this we need to have RN 74+. So I'll ask about the ETA of bumping RN to 74. Depending on the answer, I will be able to either release this PR as it works or, with RN 74, apply that Optimize Shadow Tree cloning PR to achieve better results.

@mountiny could you please trigger the build here? I want more people to test iOS here.
It works mostly smoothly for low-end devices, but sometimes it drops frames. I'd like to get more test data on this. Thanks in advance!

@mountiny could you please trigger the build here? I want more people to test iOS.
It works mostly smoothly for low-end devices, but sometimes it drops frames. I'd like to get more test data on this. Thanks in advance!

@mountiny, may I ask you to trigger the build here? I want more people to test iOS.
It works mostly smoothly, but for low-end devices, it sometimes drops the frames. I want to get more test data on this. Thanks in advance!

@Santhosh-Sellavel, could you give it a try and test the iOS part?

Got it, then can you try it?

Sure (I'm not asking for a full code review though) I need to know how it works on other devices, as I have a limited number of iOS devices

@shubham1206agra @rojiphil any luck here?

@perunt The reviewers of this PR will be me and @rojiphil actually

@shubham1206agra and @rojiphil , do you both need to be assigned to the linked issue as C+ to get paid for review work here?

hi, coming from this issue 👋
I was checking the buttons' situation described here and it is really smooth now so the fix is practically ready however the button is moving a little bit after closing/opening the keyboard (showed below) Is it possible to fix it?
https://github.com/user-attachments/assets/4dda69da-b4af-4651-aa74-7aa4a878a3ad

Is it possible to fix it?

@zfurtak definitely. I'm going to start working on this PR again and will check what is causing these jumps 😊

I fixed 3 issues:

https://github.com/Expensify/App/pull/42143#issuecomment-2441105627
https://github.com/Expensify/App/pull/42143#issuecomment-2368206160
https://github.com/Expensify/App/pull/42143#issuecomment-2368203858

3 more are remaining - I hope I can fix them as well in next few days and then we'll be ready for a new round of review @shubham1206agra

@shubham1206agra I fixed all findings except one (https://github.com/Expensify/App/pull/42143#issuecomment-2368197793)
Eventually I'll fix it as well, but I'd like to ask you to make a new round of review to save a little bit time 😊 While you are reviewing you may spot a new issues and in a meantime I'll fix the last issue 🤞

@shubham1206agra did you have a chance to test/review these changes?

Yo! @shubham1206agra cna we please get daily updates on this pr or we will have to reassign to another c+ this is very important change that is blocking another #quality improvement
Thanks and let me know in slack if i should reassign, seems like you more busy these days so its fine no need to keep the issues if they will proceed slow

Well! I was under the impression that @shubham1206agra was reviewing this PR and so didn’t get involved. But I am happy to drive this with daily updates. Just that I can start from Monday onwards as I have some personal weekend commitments.

@rojiphil alright, let  us know if you can drive this with daily testing and updates, thanks!

I am looking into this now and will share the update sometime today. Thanks.

@kirillzyusko Meanwhile, can you please merge with the latest main? Hopefully, the merge will solve the jest unit test failure as it does not look like we caused it.

Meanwhile, can you please merge with the latest main? Hopefully, the merge will solve the jest unit test failure as it does not look like we caused it.

Done 🙌

@kirillzyusko Here are the findings on iOS native platform:

Long Press Scenarios

2	Long press on the first message - message should be pushed up to be displayed above the bottom sheet
3	Long press on the top message - if the message is not covered by the bottom sheet, it should stay in place
4	Long press on any attachment (document, message) should result in the same behavior
Before each next we make sure the keyboard is open:
1	Long press on the message should either animate the message above the bottom sheet or keep it in place

This works well as demonstrated below.

Long Press Scenarios (with and without Keyboard)
https://github.com/user-attachments/assets/66e691a1-0944-4e65-8445-7d80966e5364

Pressing on the reaction icon

5 Pressing on the reaction icon on the message should push the message above it too.

On pressing the reaction icon after long press, the message is only displayed partly i.e. even without the selected reaction as demonstrated below.

Press on single reaction icon
https://github.com/user-attachments/assets/ba737ce6-2aac-401a-9906-1a8eebba9250

Press on Reactions Icon after long press

6 Long press on the message and then pressing on the reactions icon should open the reactions sheet and if the message is covered by the emoji picker it should animate the message so it's above the picker too
4 Long press on the mesage, click on add reactions - close emoji reactions

Long press on the message and then pressing on the reactions icon opens the reactions sheet but the message is not above the picker. It actually resets to the original position as demonstrated below.

Press on reactions icon
https://github.com/user-attachments/assets/45472d7b-d03a-4806-86dc-79ad59d554b0

Emoji Picker in Composer

3 Press on emoji picker in the composer, messages should stay in place even though the keyboard was closer - emoji picker is rendered instead of keyboard

This also works fine as demonstrated below

Composer Emoji Picker Scenario
https://github.com/user-attachments/assets/aa0118fa-77e3-48f7-9a45-8ad4c40b98f8

Message jump

2 Messages should not "jump" because of keyboard hide/open when showing bottom sheet, emoji picker

The above demonstrated videos covers the keyboard scenarios and it seems to be working well for me without jumps.

@kirillzyusko On web/mWeb platforms though, it throws up reanimated warnings as demonstrated below. Can you please check if you too get this or is this a problem with my setup?
https://github.com/user-attachments/assets/881e9aa5-a42c-4abf-a9bb-5ca393cca2be

Will continue testing tomorrow

@kirillzyusko Just tested on Android native to ensure nothing is broken. And it LGTM as demonstrated below.
But I also notice that the message is partly displayed on the selection of a single reaction icon as mentioned in point (2) of iOS native test.
And it seems like this issue is not related to our implementation here. I think we can consider this as a separate issue to avoid clutter.
What do you think?
https://github.com/user-attachments/assets/931f63a9-1bb6-4ae6-a316-b15b0794d106

Making a new build so its easier for @rojiphil to test

On web/mWeb platforms though, it throws up reanimated warnings as demonstrated below. Can you please check if you too get this or is this a problem with my setup?

@kirillzyusko I could reproduce this on the test build on android chrome. And below is the test video for this.
https://github.com/user-attachments/assets/04230709-ea42-4d7e-9afb-92154cae0707

@rojiphil Let me know if you are finished with the review.
I will run through a review then.

@shubham1206agra Do we need to take turns for review? Can we not share our review feedback in parallel? That way, it can move faster.

@kirillzyusko Can you please merge with the latest main?

Done 🙌

Web Crashes

On web/mWeb platforms though, it throws up reanimated warnings as demonstrated below. Can you please check if you too get this or is this a problem with my setup?

and

I could reproduce this on the test build on android chrome. And below is the test video for this.

Were fixed in https://github.com/Expensify/App/pull/42143/commits/f375a4f2b2e6491a4884c769ffa75e418379cdc9
Video press not moving item above the bottom sheet

Long press of a video attachment does not push up the video message. The scroll works for the other cases though.

It has been fixed in https://github.com/Expensify/App/pull/42143/commits/b48a247a6f20a0eec11c4e73bd19af604c9ec867
Extra button padding
Could you please tell me how to get to this screen? I see this screen:

I think I need to pass a registration but I can not find an information how to pass this step? @rojiphil can you help me here?
Open call popover
I think it was the old code, where you could click three vertical points and then popup with a call would be shown. I think this code can be safely removed now?
Emoji picker

I think it is better to keep the message above the bottom sheet when the emoji picker sheet is shown from the context menu. Let me know what you think.

I think @perunt had a discussion with design team and they confirmed, that for now we can add only avoiding for bottom-sheet. Can you confirm it please @perunt ?
New reactions don't move item higher

I think we can consider this as a separate issue to avoid clutter. What do you think?

Yeah, I agree with you - it's better to handle this task separately.

And this:

Long press on the message and then pressing on the reactions icon opens the reactions sheet but the message is not above the picker. It actually resets to the original position as demonstrated below.

and

On pressing the reaction icon after long press, the message is only displayed partly i.e. even without the selected reaction as demonstrated below.

@perunt do you think it should be handled as part of this task? Or do we just need to update testing steps? It seems like testing steps were not updated after last conversation with UI/UX team?

Could you please tell me how to get to this screen? I see this screen:

I think I need to pass a registration but I can not find an information how to pass this step? @rojiphil can you help me here?

That screen is from Expensify cards section in Workspace settings which requires setting up of an expensify card. I think it is better to skip this test.
The button padding issue can also be reproduced in Private Notes test case and in Search Filter for categories as demonstrated in the same test video. I think these are easily reproducible and also have the same root cause. I think fixing these should also fix the button padding issue in expensify cards.

I think @perunt had a discussion with design team and they confirmed, that for now we can add only avoiding for bottom-sheet. Can you confirm it please @perunt ?

Yes, I can confirm it. The design team was surprised that we wanted to add so many new handlers. 😊
So either we granulate it, or this PR will be stuck for a long time.

@perunt do you think it should be handled as part of this task? Or do we just need to update testing steps? It seems like testing steps were not updated after last conversation with UI/UX team?

You're right. it looks like they are outdated.

Btw, do we need to add unit tests to this change?

One thing I can think of is adding unit tests for useWorkletStateMachine, but I don't know if it makes a lot of sense for this hook 🤔
Changes from this PR touches mostly animated transitions and it's unreal to cover such changes via unit tests. Let me know what do you think 😊

So, that leaves us with the button padding issue

I think exactly these changes added in 31ba00b were aimed to fix the problem described in #42143 (comment)
However it's not a problem of this PR (I mean in this PR the problem becomes clearly visible, but for example after merging edge-to-edge PR the same problem happens on Android right now).
Basically the fix in #44761 produced these jumps now. My understanding is that we shouldn't try to fix each problem related to the keyboard in this PR, right? Do you think it would be better to revert the changes that I made and fix this "jump" problem in a separate PR?

Yeah. Reverting makes sense to me as this is not a problem of this PR. Also, this PR is already having a lot of changes. So, it is better to get this to the shore as early as possible and address other issues as follow-up.

The eslint check is failing @shubham1206agra @rojiphil what is left to test and fix on this PR?

The eslint check failure is due to the presence of withOnyx which needs a migration to useOnyx. I think even this can be taken up later to avoid clutter here.

Changes from this PR touches mostly animated transitions and it's unreal to cover such changes via unit tests.

This makes good sense to me. I think we can skip this unless we find good reasons to have it.

what is left to test and fix on this PR?

@mountiny I think we are very close to getting this done. Once the revert for the button padding issue is done, I can complete the checklist.

@rojiphil I reverted changes, feel free to continue with remaining part of review 😊

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

iOS: Native
https://github.com/user-attachments/assets/32e64797-363a-4ac7-ba7f-a203f2fe88ca

iOS: mWeb Safari
https://github.com/user-attachments/assets/ebea784a-0f85-42b2-aa03-55bfd75b20e0

Android: Native
https://github.com/user-attachments/assets/06d05f85-10fc-4567-82f7-2899998c137b

Android: mWeb Chrome
https://github.com/user-attachments/assets/aab426a4-e275-4a20-bb5e-2caf7a9e3846

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/ec24918c-c70d-49ef-931d-f52303279c9d

MacOS: Desktop
https://github.com/user-attachments/assets/e5259332-6576-42eb-8397-d31b0b6094e4

Both the reassure tests and lint failures seem related and should be addressed

Tests started to fail after https://github.com/Expensify/App/pull/42143/commits/6140d8fce13b0546eb6f92e32724d4f858f43fa0
I'll investigate why on Monday - now will focus on fixing all new issues coming from edge-to-edge mode

@luacmartins sure, was planning to return back to this task tomorrow! Hopefully I can fix all failing tests so it should be ready for another round of review tomorrow!

Thank you!

Okay, eslint complains only about useOnyx/withOnyx - I think this PR can be tested/reviewed again.
All other checks are green ✅

@shubham1206agra @rojiphil this PR is ready for testing again 😊

Okay, I resolved all merge conflicts - will check all bugs that @shubham1206agra discovered and will post my results here!

Thanks @kirillzyusko!

BUG: Extra padding gets introduced to edit composer

@shubham1206agra Can not reproduce this on latest branch version:
https://github.com/user-attachments/assets/94ec50f5-1fad-449b-aa76-04a1ad71390b

BUG: Wrong position when try to do edit again.

Also can not reproduce:

BUG: Weird stutter happening on going to search

It happens because each screen has KeyboardAvoidingView, so when you go back with open keyboard you also can see a remaining navigation on a previous screen. It could be fixed like enabled={shouldEnableKeyboardAvoidingView && isFocused}, but it touches basic ScreenWrapper component (which means that all screens will be affected) and I wouldn't like to include that change in this PR if possible.
I think a similar problem can be spotted on Android (several hours ago commit with animated keyboard transitions on Android was merged into main). So if possible let's fix it as a follow up 🙏

Making a new build @shubham1206agra can you please prioritize this testing and review so we can get it merged asap? @kirillzyusko please merge main again. Thanks!

Let's get the latest build tested so we can get this one through the finish line

@shubham1206agra what is your eta for testing this?

@rojiphil too

Testing the iOS native app do not work well when the keyboard is displayed. It seems like some extra space is added after the most recent message which is causing the long-pressed message not to be seen completely. This is strange as it was not observed in my last review video here. The code changes since then were also minor. So, I doubt if our PR has introduced this problem. @kirillzyusko Can you also check if you can reproduce this problem?
This problem is not observed though when the keyboard is not displayed.
Attaching the test video of both the cases for reference below.

iOS: Native - With Keyboard - DOES_NOT_WORK
https://github.com/user-attachments/assets/ad9dd974-8cc8-4b92-aa13-9b9439cda9ac

iOS: Native - Without Keyboard - WORKS
https://github.com/user-attachments/assets/aa0fd943-61f4-4cbc-8f0c-a111849c0448

Okay @rojiphil - I can confirm the issue is reproducible again
Will see how can I fix it and why it was introduced 👀

@rojiphil I fixed this problem. Would you mind to conduct a new round of review? 🙏

I fixed this problem.

Thanks @kirillzyusko for the fix. Can you please merge the PR with the latest main as I am running into build issues due to another offending PR that was reverted?
Meanwhile, I quickly checked, and the fix seems to work well. I will test again after the merge.
https://github.com/user-attachments/assets/1f648eb1-8ce0-41f4-a21c-4079d68260e7

@rojiphil merged! Feel free to re-test when you have a time 🙌

@kirillzyusko We have some conflicts to resolve.
Otherwise, the changes LGTM and works well on iOS native platform too. However, I could not test for regressions on the android native platform as I am getting build issues (looks like something is broken in main). I will test this too once the merge conflicts are resolved. Thanks.

iOS: Native Platform
https://github.com/user-attachments/assets/1f7f1619-7b97-4aff-8929-86fffb2fe320

iOS: mWeb Platform
https://github.com/user-attachments/assets/da39fb28-38ae-4299-a0b6-4b0ee6def9d3

I will test this too once the merge conflicts are resolved. Thanks.

I resolved merge conflicts! Let me know if anything else is required from my side 🙏

Well! Still facing build issues on android native standalone.

This is resolved with the help of @kirillzyusko. Thanks.

Seems like one last thing to focus on @kirillzyusko

https://github.com/user-attachments/assets/0f74a0a6-b410-46d6-b4fd-c8f0290ba608
@shubham1206agra no way, I spent 1 or 2 hours trying all possible variations and I can not reproduce this bug 🤷♂ In my case it shows incorrect UI state, but then performs an animated transition 🤷♂ Can you show a video how it works in your case? Can you check if you can reproduce the same problem in main?..

You need to open emoji picker with keyboard and then select an emoji to get the problem.

@shubham1206agra Can you record a video starting from a moment when you open a chat and till the moment where the issue is reproducible? Maybe I'm missing some important steps, but I can not reproduce the problem:
https://github.com/user-attachments/assets/c48a26e6-11ad-400e-aea5-6e169153853e

@mountiny would it be possible to merge this PR, but if a regression/deploy-blocker discovered then do not revert the PR and try to fix a bug/issue (instead of reverting PR)? I. e. to use a same/similar approach that we used with edge-to-edge PR?

Yea, let's get this merged. We'll keep an eye out for any blockers and try to fix them. All the ESLint failures are unrelated and should be fixed in separate PRs.

See above

Thanks for all the hard work on this one @kirillzyusko @rojiphil @shubham1206agra @mountiny!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


Language

Type: Bug
I did this
Press Ctrl+Shift+P to bring up the Command Palette then start typing "display" to filter and display the Configure Display Language command.
Press Enter and a list of installed languages by locale is displayed, with the current locale highlighted.
I wanted turkish language i tried to install it but it cannot install it said it will be rstarted then it restarted but it's still english and not turkish. I did several times but without results.
VS Code version: Code 1.76.2 (ee2b180d582a7f601fa6ecfdad8d9fd269ab1884, 2023-03-14T17:55:54.936Z)
OS version: Windows_NT x64 10.0.19045
Modes:
Sandboxed: Yes

System Info

Item
Value

CPUs
Intel(R) Celeron(R) N4500 @ 1.10GHz (2 x 1114)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: disabled_offopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
undefined

Memory (System)
3.71GB (0.36GB free)

Process Argv
--crash-reporter-id 1aee7a86-714d-4e33-9ff6-c3fc19d2661d

Screen Reader
no

VM
0%

Extensions (8)

Extension
Author (truncated)
Version

isort
ms-
2022.8.0

python
ms-
2023.4.1

vscode-pylance
ms-
2023.3.20

jupyter
ms-
2023.2.1200692131

jupyter-keymap
ms-
1.1.0

jupyter-renderers
ms-
1.0.15

vscode-jupyter-cell-tags
ms-
0.1.7

vscode-jupyter-slideshow
ms-
0.1.5

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscorecescf:30445987
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593cf:30376535
pythonvs932:30410667
cppdebug:30492333
vsclangdf:30486550
c4g48928:30535728
dsvsc012:30540252
pynewvextcfv2:30681851
azure-dev_surveyone:30548225
pyindex848:30662994
nodejswelcome1cf:30587006
3biah626:30602489
pyind779:30671433
89544117:30613380
pythonsymbol12:30671437
vsctsb:30677850
defaultazurewalk:30687958
pythonms35:30686772

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


Backend: Limitation on Throughput

Performance Tests triggered on backend application on Initial HomePage -
API - /events, /nodes
Inferences-

Started with 1 and scaled till 4 instances of the backend and max Throughput that we could achieve was 600req/s.
Comparison Tests on Apiserver gave the throughput more than 3k req/s
Apiserver can process requests upto 4kreq/s where as same 4 instances of backend can process max of 600req/s
More details can be found here- https://github.tools.sap/engsrvperformance/Kyma-Performance/tree/main/docs/Initial_HomePage_Tests

Limitation
Backend is limited to 600req/s
Expected Behaviour
Backend should give throughput similar to apiserver requests

Thank you for the issue we will investigate this issue but at this moment the volume we are seeing it's not a concern yet.
We will schedule a backend optimisation in the future

We have countermeasures to scale horizontally using Google Cloud Run to contra measures


Fix xref links that were commented out during migration

During migration from MSDN to docs.microsoft.com, some of the content had their xref link commented out and changed with text inside inline code.
We should remove those from the docs:
https://github.com/dotnet/docs/search?utf8=✓&q=!--zz&type=
Search currently shows 88 files with that issue. In some cases though, we won't be able to fix the issue until the API is onboarded to docs. e.g. System.IO.WindowsRuntimeStreamExtensions is a UWP API that is not on docs yet.
For people interested in helping with this task, we'd break it down into smaller tasks (like 5-10 links per PR).

I'll help!


Replace std::env::home_dir with something non-deprecated

dirs-next (or directories-next) both seem to also have XDG-handling included, which means we can maybe get rid of the xdg dependency, too.


Document that copy constructor of ATL::CHandle moves the handle

<atlbase.h> defines the copy constructor of ATL::CHandle as follows:
inline CHandle::CHandle(_Inout_ CHandle& h) throw() :
	m_h( NULL )
{
	Attach( h.Detach() );
}

The h.Detach() call resets h.m_h to NULL, so the copy constructor really does a move. Please make this clear in the documentation.  One could expect the copy constructor to call DuplicateHandle instead, but it doesn't do that.

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

ID: 2e781808-19b3-e8dd-7b18-acccdc7dbbb4
Version Independent ID: bfbec978-c76c-5b45-1e8c-d201abe565be
Content: CHandle Class
Content Source: docs/atl/reference/chandle-class.md
Product: visual-cpp
GitHub Login: @mikeblome
Microsoft Alias: mblome

fixed


[BACKLOG-5864] - REG: PMR: Reducer fails on the client due to job running.

Changed dependecy for swt.* packages to optional (in case these bundles are trying to start on cluster without UI)
Moved ui discoverFields metods into dialog classes.

Should be merged with https://github.com/pentaho/big-data-plugin/pull/589

@brosander @hudak Could you please take a look?

Build Commands:
Build:

rm -r ~/.kettle; rm -r ~/.pentaho; echo removed hidden folders
mvn -fn -DrunITs=true -f pom.xml clean install && mvn -Dpentaho-coding-standards.version=1.0.1 -f pom.xml site

Cleanup:
mvn build-helper:remove-project-artifact
Changed files:
pom.xml
src/main/java/org/pentaho/di/trans/steps/mongodbinput/MongoDbInputData.java
src/main/java/org/pentaho/di/ui/trans/steps/mongodbinput/MongoDbInputDialog.java
src/main/java/org/pentaho/di/ui/trans/steps/mongodbinput/models/MongoDbModel.java
src/test/java/org/pentaho/di/trans/steps/mongodbinput/MongoDbInputDataTest.java
Unit test coverage change:
org.pentaho.di.trans.steps.mongodbinput.MongoDbInputData:

instructionPercentCoverageChange :-1.56%
branchPercentCoverageChange :-2.16%
linePercentCoverageChange :-1.11%
complexityPercentCoverageChange :-2.65%

org.pentaho.di.trans.steps.mongodboutput.MongoDbOutputMeta:

branchPercentCoverageChange : +0.93%
linePercentCoverageChange :-0.34%

org.pentaho.di.ui.trans.steps.mongodbinput.MongoDbInputDialog:

branchPercentCoverage :5.33%
instructionPercentCoverageChange : +2.49%
linePercentCoverageChange : +3.48%
complexityPercentCoverageChange : +6.00%
methodPercentCoverageChange : +7.95%

org.pentaho.di.ui.trans.steps.mongodbinput.MongoDbInputDialog.new DiscoverFieldsCallback() {...}:

branchPercentCoverage :50.00%
linePercentCoverage :83.33%
methodPercentCoverage :100.00%
complexityPercentCoverage :75.00%
instructionPercentCoverage :69.23%


What’s the inference rendering speed? And GPU?

Thanks for your work.
What’s the inference rendering speed? And GPU?

Hi,

We test our method on a single NVIDIA RTX3090 GPU.

The inference speed comparison is as the following table:

Method
3D-GS
4D-GS
Baseline
Ours

FPS
298.5
145.8
113.3
295.4

Baseline is our method without sparse control points and with per-Gaussian motion prediction.
Notice that our method uses cached NN information and does not need KNN queries. The cost of MLP prediction for each sparse control point is very little.

Thanks for your reply. The work is helpful.


Configuring the classloader is a nightmare in dozer 5.5.1

I have a special case where I use dozer in a webapp and several configurations in different projets, each of them having their own classloader. The point is that when configured in Spring with DozerBeanMapper, dozer use by default the class loader of the Dozer classes to load the classes in the configuration. It is said that this can be configured, but the method DozerBeanMapper.init() is private and uses no classloader. The only way is to use a configuration file and define a system property dozer.configuration but first this is for the whole JVM (and I want another beahviour in my webapp), and second, it has no effect unless DozerInitializer.getInstance().init(Classloader) is invoked, which is not the case of DozerBeanMapper.
Last, I don't understand why to provide a custom classloader, where have to define another implementation of DozerClassLoader (this special code in  DozerInitializer.registerClassLoader() that makes the classloader argument useless if the DozerClassLoader has not been specified).
To solve this problem, I have to copy a bunch of code and modify it in place.

Related to https://github.com/DozerMapper/dozer/issues/22

Closing as duplicate of #22


Online REPL error

Trying to open this REPL, it fails:
https://play.sqlc.dev/p/d36db598bfc17a9f79a64513db9295d9e116a694485848713bf90ea0dfd5697b

@frederikhors I just open-sourced the playground code, so I moved your issue to that repository


useStatefulResource with pagination

Hello,
I'm looking into integrating rest-hooks into my app. My first use case is fetch list of resources with pagination.
React version 16.13.1
Concurrent mode no
Describe the bug
I'm using useStatefulResource in order to access loading state.
I'm also using infinite scrolling pagination to load the next page.
On initial load of page, loading is set to true and everything works as expected.
When I reach the end of page, the next page data get's loaded correctly but loading is always false.
Example code
export function useIssues() {
  const defaultParams = {
    sort: 'severity',
    order: 'desc',
    skip: 0,
    limit: 200,
  };

  const { queryParams } = useNavigation();

  const { data, loading, error } = useStatefulResource(IssueResource.listShape(), {
    ...defaultParams,
    ...queryParams,
  });

  const getNextPage = usePaginator(IssueResource.listShape(), {
    ...defaultParams,
    ...queryParams,
  });

  const { data: issues = [], pagination } = data;

  return {
    issues,
    loading,
    error,
    pagination: {
      ...pagination,
      hasNextPage: hasNextPage(pagination),
    },
    defaultParams,
    fetchMore: () => getNextPage(pagination),
  };
}

Expected behavior
I expect the loading will be set to true when calling getNextPage.
Am I missing anything?
Thanks!

I've managed to get the loading state by wrapping the fetchMore function with useLoadingFunction described here:
https://resthooks.io/docs/guides/loading-state
It still feel a bit strange to get the loading state from two different places 🤷🏽♂

The reason for two distinct loading trackers is that it would be undesirable when loading 'more' data on a list to show a loading spinner for the whole list instead of just showing the existing items. Because of that two distinct experiences should be created for each case (loading the initial part, and loading more).


Module not found on import a Generated.Route module

Linux Mint 18.3
64bit
elm-spa 3.0.3
Node 10.7.0
npm 6.13.4
I initialized a new project and ran npm start (I've also tried withnpm run dev)
The project builds but with this errror:
{ [Error: EEXIST: file already exists, mkdir '/home/linuxuser/github/sportrank-espa/elm-stuff/.elm-spa/Generated']   errno: -17,   code: 'EEXIST',   syscall: 'mkdir',   path:    '/home/linuxuser/github/sportrank-espa/elm-stuff/.elm-spa/Generated' }
The first time the error was no such file, but either way the behavior is similar.
I tried deleting the 'Generated' folder with no change to err msg.
When the home page loads at the end of the build/compilation I get the following error:
-- MODULE NOT FOUND --------------- /home/linuxuser/github/sportrank-espa/elm-stuff/.elm-spa/Generated/Pages.elm You are trying to import aGenerated.Paramsmodule: 12| import Generated.Params as Params
I can 'solve' it by copying the Params.elm file from another project if I manually create the .elm-spa dir inside 'Generated'. But this is not ideal of course and will anyway be removed the next time I run npm run dev.
I also tried just deleting the Generated folder and checking it's permissions once restored after npm run dev (although other files such as Pages.elm are added to the directory in the build so I don't think it's a permissions issue)
What do I need to configure in the project for the Params.elm file to be generated in the build process so that the home page displays without error next time I run npm run dev (or npm start)? thx...

I also note that if I 'fix' the missing 'Params.elm' file problem and attempt to go further in the guide eg.
elm-spa add static Docs
then the Params.elm file is removed from the 'Generated' dir and the same Generated.Params errors re-surface.

Hey @dotnetspec –
Can you confirm this fails for the latest version of NodeJS? (v12.14.1)
I suspect it is an issue with mkdir on the version you have installed.
Thanks,
Ryan

Adding a note:
Looks like using the latest version update resolved the issue here:
https://github.com/ryannhg/elm-spa/issues/26

nvm install 12.14.1
in the project directory fixed it. thanks @ryannhg


link to submodule cunxx is broken

git submodule update --init --recursive gives the following error:
Unable to checkout '29bf389a23e9d8cfd78ceda096917bf1fca3eeee' in submodule path 'distro/extra/cunnx'

For me, it complains on a different module, 'distro':
Unable to checkout 'e89d58b14f21f4d4caba9cc5a7a05722115cbc2e' in submodule path 'distro'

I have exactly the same error
Unable to checkout '29bf389a23e9d8cfd78ceda096917bf1fca3eeee' in submodule path 'distro/extra/cunnx'

see if https://github.com/soumith/torch-android/pull/32 fixed it.

Fixed, thanks.
I'm now getting a CMAKE issue with cutorch/THC, I'll open a new issue if I can't figure it out.


Could not load file or assembly 'DocumentDB.Spatial.Sql' or one of its dependencies.

Visual Studio 2015 v14.0.25431.01 update 3
I updated all my nuget packages to the latest versions. Everything works great locally whether in debug or release, but as soon as i published to azure, i get this:
[FileLoadException: Could not load file or assembly 'DocumentDB.Spatial.Sql' or one of its dependencies. Could not find or load a specific file. (Exception from HRESULT: 0x80131621)]
   System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +457
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +110
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +22
   System.Reflection.Assembly.Load(String assemblyString) +34
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +48

[ConfigurationErrorsException: Could not load file or assembly 'DocumentDB.Spatial.Sql' or one of its dependencies. Could not find or load a specific file. (Exception from HRESULT: 0x80131621)]
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +729
   System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +247
   System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +157
   System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +226
   System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +73
   System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +321
   System.Web.Compilation.BuildManager.ExecutePreAppStart() +170
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +878

[HttpException (0x80004005): Could not load file or assembly 'DocumentDB.Spatial.Sql' or one of its dependencies. Could not find or load a specific file. (Exception from HRESULT: 0x80131621)]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +525
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +124
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +700

NuGet packages installed:
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="jQuery" version="3.2.1" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR" version="2.2.2" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR.Core" version="2.2.2" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR.JS" version="2.2.2" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.2" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.Azure.DocumentDB" version="1.18.0" targetFramework="net452" />
  <package id="Microsoft.Azure.DocumentDB.ChangeFeedProcessor" version="1.2.0" targetFramework="net452" />
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.8" targetFramework="net452" />
  <package id="Microsoft.Net.Compilers" version="2.4.0" targetFramework="net452" developmentDependency="true" />
  <package id="Microsoft.Owin" version="4.0.0-alpha1" targetFramework="net452" />
  <package id="Microsoft.Owin.Host.SystemWeb" version="4.0.0-alpha1" targetFramework="net452" />
  <package id="Microsoft.Owin.Security" version="4.0.0-alpha1" targetFramework="net452" />
  <package id="Microsoft.Web.Infrastructure" version="<IP_ADDRESS>" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net452" />
  <package id="Owin" version="1.0" targetFramework="net452" />
</packages>

Publish build log:
1>------ Publish started: Project: redacted, Configuration: Release Any CPU ------
1>Transformed Web.config using C:\Projects\redacted\redacted\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
1>Auto ConnectionString Transformed obj\Release\TransformWebConfig\transformed\Web.config into obj\Release\CSAutoParameterize\transformed\Web.config.
1>Copying all files to temporary location below for package/publish:
1>obj\Release\Package\PackageTmp.
1>Start Web Deploy Publish the Application/package to https://redacted.scm.azurewebsites.net/msdeploy.axd?site=redacted ...
1>Adding ACLs for path (redacted)
1>Adding ACLs for path (redacted)
1>Updating file (redacted\bin\DocumentDB.Spatial.Sql.dll).
1>Updating file (redacted\bin\redacted.dll).
1>Updating file (redacted\bin\Microsoft.Azure.Documents.Client.dll).
1>Updating file (redacted\bin\Microsoft.Azure.Documents.ServiceInterop.dll).
1>Updating file (redacted\packages.config).
1>Updating file (redacted\Web.config).
1>Adding ACLs for path (redacted)
1>Adding ACLs for path (redacted)
1>Publish Succeeded.
1>Web App was published successfully http://redacted.azurewebsites.net/
========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========

You can see the target DLL getting added to the package in the build process.
I can't get it out of this state -- it's on a dev server and now my frontend devs are getting anxious.
I have tried rolling back DocumentDB, that didn't help. This happened after i reluctantly decided to update the nuget packages.
ETA:
It looks like the DocumentDB.Spatial.Sql.dll file isn't even a .net assembly. Why is it trying to load it as such? It's just a native 64bit DLL.

So, i just took a stab in the dark and FTP into the site. Manually deleted all the files in the BIN directory. Then transferred all the files from my local BIN directory to the remote one and everything is fine.
So, this is a bug with the Publish tool.

@sonicmouse The issue is that one of your nuget dependencies or your app start code is trying to load all the assemblies in the bin directory at startup. Since the bin directory contains the 2 native dlls that we ship(which are needed for queries to work), Assembly.Load is failing for these assemblies since these are native assemblies(which is an expected error for a native assembly). You should find the root cause of who is trying to load these assemblies and should fix that to skip loading native assemblies. You will repro this if you restart your site again, so there something to fix in your application here.

I faced the same issue while integrating COSMOSDb in Web API project. I was using AttributeRouting. One of the dependencies added by AttributeRouting is WebActivator. When re-tried the same without using AttributeRouting (working with the default controller , api structure of WebApi project in VS 2017) , things worked fine for me. I found it was due WebActivator which I think need some more dependent DLLS to work with COSMOSDb.

+1 for an obsolete WebActivator package. Just to clarify this possible solution, if you have the "WebActivator" nuget package installed, try this in your Package Manager Console:
Uninstall-Package WebActivator
Install-Package WebActivatorEx


go get -u github.com/gohugoio/hugo failed

$ go get -u github.com/gohugoio/hugo
# github.com/gohugoio/hugo/output
../../gohugoio/hugo/output/docshelper.go:4:2: imported and not used: "fmt"

64cec07293a789e28a68885aede78cad392afbef
imported and not used: "fmt"

Sorry about that. Fixed now.


Change 'Warning as Error' to false and fix vcxproj

This PR changes the VC projects of fuzzer and fullBench to not treat warning as errors. It also removes the old zstd_buffered*.h files from the project which do not exist anymore;
Also, I had to change .gitattributes to treat vcxproj as text files with windows style line ending, in order to be able to see changes in difftools. For some reason, the very first commit after that is a wall of pink, not sure how to work around that... anyone has an idea?

Thanks for notification @KrzysFR .
There are several improvements proposed in your patch.
Regarding the warnings in x64 mode, the better solution is to fix them.
I think they slipped through because our automated Visual tests on AppVeyor are too light, and only run the first configuration, which is debug 32-bits mode. We would probably benefit from a better AppVeyor script to test more than that and catch such warning before release.
.gitattributes changes are good too.
They were treated as binary so far to avoid automatic conversion of eol, but your proposed solution is better.
Cleaning the project files is good too.
Note however that the lib directory just received a major change, with direct impact on project files.

I'll try to extract the gitattributes and cleanup in a separate PR.
For the warning as error, though, when they happen, you are not able to build for release straight after a checkout, and most people might not be able to understand and fix the offending warning.
Are you proposing that by adding a CI build step that build for Release, warnings introduced in commits would be caught and fixed immediately?

Are you proposing that by adding a CI build step that build for Release, warnings introduced in commits would be caught and fixed immediately?

Yes. Maybe we should also consider 2 different configurations.
One for CI, which would be very unforgiving, treat warnings as errors, impose a high warning level (4), testing both 32 and 64 bits paths (which can generate different warnings), so that warnings get caught and fixed early (at each commit),
and another configuration for users, with lighter conditions, such as default warning level (3) and authorized warnings, so they could make modifications if necessary, with less burden,
That will highly depend on what we can do with our Windows CI environment, AppVeyor, which currently is very limited. This is an ongoing topic, led by @inikep .

In the https://github.com/inikep/zstd/commits/dev branch the following patches are already implemented:

Treat vcxproj as text files with Windows style line endings
Remove old zstsd_buffered_*.h from zstd.vcxproj

The above-mentioned branch compiles without a problem with Visual Studio 2012 and 2015 with Win32 and x64 (TreatWarningsAsErrors="true").

We don't need two projects for users and AppVeyor. I can set TreatWarningsAsErrors="false" in the VS project and enable in only for AppVeyor (msbuild /p:TreatWarningsAsErrors="true"), but currently TreatWarningsAsErrors="true" should not cause any problems.

This looks the ideal solution to me, thanks!
Can close this issue for me? (only have access the email right now)

On 09 May 2016, at 21:28, Przemyslaw Skibinski<EMAIL_ADDRESS>wrote:
In the https://github.com/inikep/zstd/commits/dev branch the following patches are already implemented:
Treat vcxproj as text files with Windows style line endings
Remove old zstsd_buffered_*.h from zstd.vcxproj
The above-mentioned branch compiles without a problem with Visual Studio 2012 and 2015 with Win32 and x64 (TreatWarningsAsErrors="true").
We don't need two projects for users and AppVeyor. I can set TreatWarningsAsErrors="false" in the VS project and enable in only for AppVeyor (msbuild /p:TreatWarningsAsErrors="true"), but currently TreatWarningsAsErrors="true" should not cause any problems.
―
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub

Latest merge b3a9938d0c78f213136ba841aef3240f46785bb6 should provide a few improvements on this topic


Missing a lot of details

This page needs more details on specifically what this will support.  For example: accessing web apps?  accessing ntfs file shares?  accessing other resources secured with AD?
How does authentication work?  What sort of credential prompts will the user get?

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

ID: 00ba9775-1242-af4d-a9c0-8979cc5d57dc
Version Independent ID: 5063400b-fe96-79f4-e37f-6c89e26ee9d0
Content: Access on-premises resources from an Azure AD-joined device in Microsoft 365 Business
Content Source: microsoft-365/business/access-resources.md
Service: o365-administration
GitHub Login: @Sirkkuw
Microsoft Alias: sirkkuw

Hello @danmyhre
On the text:
"resources like Line Of Business (LOB) apps, file shares, and printers" those are the resources they can get access to.
How does authentication work? What sort of credential prompts will the user get?
Authentication works on cloud since it's synchronized on-premises and O365 over AD Connect, if a user is on an Azure Domain Joined computer trying to access a shared file on the on-premises server, it will log in to the cloud and the token will be passed by to access the resources, and it's valid for cloud services as well as local services.

So it is only for modern (OAuth) based on-premises applications?  So almost nothing?  File shares, LOB apps, printers, etc all rely on Active Directory for authentication.

Hi @danmyhre @mypil
In my opinion, is a lot, but if you think that is something missing please go ahead and open a UserVoice request to add more features at  https://office365.uservoice.com/

I think this fact should be added to the top as a highlighted note - that this is only for OAuth and NTLM and Kerberos is not supported.  Thanks!

Updated on PR #785

@danmyhre - From our understanding, the issue has been resolved based on this merged commit https://github.com/MicrosoftDocs/microsoft-365-docs/commit/31331fb5001a58f5823c675451457b733cbcb133.
Thank you for your contribution to make the docs better! Much appreciated!


Passing information from the client to Composer bot

I am trying to post a custom event via Direct Line to my Composer-based bot.
I found a page for the Bot Framework SDK v3 showing how to send a custom activity, however this page is not present in the v4 docs.
This is my code, I'm utilising the Web Chat control:
 var dl = window.WebChat.createDirectLine({
        token: '[token]'
    });

    window.WebChat.renderWebChat(
        {
            directLine: dl,
            userID: 'YOUR_USER_ID',
            username: 'Web Chat User',
            locale: 'en-US',
            botAvatarInitials: 'WC',
            userAvatarInitials: 'WW'
        },
        document.getElementById('webchat')
    );

    window.setTimeout(function () {
        dl.postActivity({ type: "event", value: "hello", from: { id: "me" }, name: "PageLoaded" })
            .subscribe(id => console.log("success"));
    }, 5000);

I have a 5 second delay before posting the activity to make sure everything loads.
This works in as much as that when the activity is posted, I get my welcome text back from the bot, however the custom event is never fired on the Composer side.
I created the event in Composer by

Adding a new Trigger
Selected Custom events and provided the name PageLoaded
Added "Send a response" to say "Got page loaded event"

I need to know how to be able to pull the value from the event, in this case the value "hello".

@v-kydela can you investigate this and assist? Thanks!

You should be able to access the value as turn.activity.value

@benbrown, does this need to be coupled with the OnEventActivity handler or is it enough to simply detect by turn.activity.value or turn.activity.name` (or similar)?

Yes, the event should trigger the OnEventActivity handler, and then you can further inspect the event.

Closing per @benbrown answer.

@cleemullins @benbrown the principal issue is that the event does not fire - please read my original post. As I see it, you guys have shown me how to access the variable, but not confirmed I am calling the event correctly, or confirmed that the event is correctly defined in Composer.

@knightmeister Maybe this can help you, we are sending an activity event from Webchat to Composer like this:
const token = 'TuycRUr0E-M.HyVBYkL03Dp4AKn3-ZI9YfFRLcGv5HEo5PnaD6n-eU0';
const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'loginevent',
value: { prename: 'Stefan', surname:'Lauf' }
}
});
}
            return next(action);
        });

window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({ token }),
store
},
document.getElementById('webchat')
);
---> when loading this webchat html page, it directly sends the  "loginevent" in store.
The composer then receives it with an "Activity Event" trigger

This way it works for us. Hope this can help you.

@knightmeister Maybe this can help you, we are sending an activity event from Webchat to Composer like this:
        const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
            if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
                dispatch({
                    type: 'WEB_CHAT/SEND_EVENT',
                    payload: {
                        name: 'loginevent',
                        value: { prename: 'Stefan', surname:'Lauf' }
                    }
                });
            }

            return next(action);
        });

window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({ token }),
store
},
document.getElementById('webchat')
);
---> when loading this webchat html page, it directly sends the "loginevent" in store.
The webchat code is inspired by this sample:
https://github.com/microsoft/BotFramework-WebChat/tree/master/samples/04.api/a.welcome-event
The composer then receives it with an "Activity Event" trigger

This way it works for us. Hope this can help you.

Many thanks @benjaminsommerfeld, this allowed me to determine where I was wrong. My JavaScript works, but the issue was I was using a dialog event, rather than an activity event.

@knightmeister Maybe this can help you, we are sending an activity event from Webchat to Composer like this:
        const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
            if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
                dispatch({
                    type: 'WEB_CHAT/SEND_EVENT',
                    payload: {
                        name: 'loginevent',
                        value: { prename: 'Stefan', surname:'Lauf' }
                    }
                });
            }

            return next(action);
        });

window.WebChat.renderWebChat( { directLine: window.WebChat.createDirectLine({ token }), store }, document.getElementById('webchat') );
---> when loading this webchat html page, it directly sends the "loginevent" in store.
The webchat code is inspired by this sample: https://github.com/microsoft/BotFramework-WebChat/tree/master/samples/04.api/a.welcome-event
The composer then receives it with an "Activity Event" trigger

This way it works for us. Hope this can help you.

Many thanks from this reference i implemented trigger event when click on button in webchat.

@knightmeister Maybe this can help you, we are sending an activity event from Webchat to Composer like this:

Appreciate the comment, but I haven't looked at Bot Framework for at least a few years now, and I don't have an environment set up to test. Hope it helps someone else though!


Implements switch flow control operator in shaders

This PR will allow the user to use the switch flow control operator inside shaders. Cases may fall through itself if not break or return is defined just like standard GLSL. Also added default keyword.
Fix #12876

Thanks!

I have a question, what is the in keyword for in the vec3 test() function?

Just a clarification that the parameter is used for input - by default all parameters internally marked as "in", if its marked "out" or "inout" it can be used to pass the values from function which allows to change multiple parameters in single call.

Just a clarification that the parameter is used for input - by default all parameters internally marked as "in", if its marked "out" or "inout" it can be used to pass the values from function which allows to change multiple parameters in single call.

oooooh that's useful
@Chaosus and thank you so much for the new feature, it really makes life easier! No more crowded if-statements! ^_^

Also one problem though, for some reason switch doesn't work in GLES2

The "switch" keyword is not supported in glsl 120. So "switch" shouldn't have been added to the GLES2 backend.
Maybe we can just document this. If possible there should be a specialized error when it is used in GLES2.

That's strange that its working on desktop for GLES2:

Ah, maybe some video/card drivers actually support it, while others not... that explains it.


Add MSCOCO format converter

This pull request adds a script to convert Manga109's XML annotations to MSCOCO's JSON format.
I have tested the code's output with an MSCOCO annotation viewer.

Update here as well https://github.com/manga109/manga109-demos#contents

Sorry, I forgot to do that. I fixed it and pushed it now.