[No QA] [TS migration] Review and clean up Styles files

Details
This PR:

Adds react-native-web style and component props to the core react-native components. Please note that the solution is not perfect as this is actually a current issue in the community (https://github.com/necolas/react-native-web/issues/832, https://github.com/necolas/react-native-web/issues/1684).
Convert styles.js to TypeScript
Refactor and clean up other style files to remove CSSProperties as it's not needed anymore.
Create some styles to isolate and handle cases where we need to use web values in some style props that couldn't be augmented / changed.

Fixed Issues
$
PROPOSAL: N/A
Tests
Main flows test.
Offline tests
Main flows test.
QA Steps
Main flows test.
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 / Chrome
[x] iOS / native
[x] iOS / 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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 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] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[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(themeColors.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 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 author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/20051562/dfb815e4-a9fa-4d83-b579-256c5af4f05f
https://github.com/Expensify/App/assets/20051562/974f425f-5659-4b54-89fc-ff7fda6e5c18

Desktop
https://github.com/Expensify/App/assets/20051562/d9ab8da2-0f5b-4b63-b91e-f3c237cc35e4

Mobile Web - Chrome
https://github.com/Expensify/App/assets/20051562/942b71a1-8388-4b46-9a93-5b0573826c70

Android
https://github.com/Expensify/App/assets/20051562/2e5941a3-efc3-4b5c-8a70-a72b645f5750

Mobile Web - Safari
https://github.com/Expensify/App/assets/20051562/e81b1276-d008-4bff-9626-db897a2a0f32

iOS
https://github.com/Expensify/App/assets/20051562/32ab1d7d-1f63-40d0-823f-dd95eab46bcd

Ale you need to resolve conflicts @fabioh8010

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 / Chrome
[x] iOS / native
[x] iOS / 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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(themeColors.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 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

Web
https://github.com/Expensify/App/assets/46095609/c91c09f7-53e4-424f-9cb8-cb038a22d45b

Mobile Web - Chrome
https://github.com/Expensify/App/assets/46095609/4f93092b-ce41-421e-8163-39c642bd03d4

Mobile Web - Safari
https://github.com/Expensify/App/assets/46095609/3af3577e-fa86-4485-ba63-02f500847bd3

Desktop
https://github.com/Expensify/App/assets/46095609/1d9aa894-8665-44ea-87da-c341d66a5af4

iOS
https://github.com/Expensify/App/assets/46095609/978fb9c1-b380-45fa-a131-4153c1cf86cb

Android
https://github.com/Expensify/App/assets/46095609/9fe91a3a-1ced-4495-884d-7d4cdc191403

Never ending conflicts @fabioh8010 🤣

@hayata-suenaga Could you take a look on this PR?

@hayata-suenaga Could you take a look on this PR?

is this related to this? What input do you need from me? 😄

@hayata-suenaga Is related to this discussion. It's about the lack of typings in react-native-web and the solution we provided in this PR. We will be augmenting react-native props/styles in order to provide best support possible for react-native-web in the project.
Since you were involved in the discussion I tagged you here to have a look on the solution in case you are interested 🙂

@fabioh8010 could you please resolve the merge conflicts :) There where some changes in the old styles.js

Will do it now!

@chrispader @blazejkustra Merged again with main

so is src/types/modules/react-native.d.ts the file that adds style types for react-native-web to types/react-native?
did you create the file by running this script?

I'm concerned that we have to maintain the typing for react-native-web in your codebase

@blazejkustra @fabioh8010 for your other clients, how are your teams solving the issue?

@hayata-suenaga

so is src/types/modules/react-native.d.ts the file that adds style types for react-native-web to types/react-native?
did you create the file by running https://github.com/necolas/react-native-web/issues/832?

No, I created mostly by myself, by looking through the docs and codebase and adding all props possible for the core RN components. For the styles, I made ViewStyle, TextStyle and ImageStyle extends CSSProperties in order for them to have access to all web related styles, which should help in most of the cases. In this way we won't have conflicts when using this styles in the core components and StyleProp<>.

I'm concerned that we have to maintain the typing for react-native-web in your codebase

@blazejkustra @fabioh8010 for your other clients, how are your teams solving the issue?

Yes, unfortunately we would have to maintain these types from our side. It's a current issue in the community and there are no clear solutions yet, so what I have seen is what we are also doing here, module augmentation to provide support for those missing types. I also asked internally and the suggestion is the same as what we did here.
From all the types created by the community I believe ours is the best out there, as we are adding extensive support for several props from RNW and the possibility of using Web CSS styles on the core components.

Once we got this merged, i'll continue working on #24178 👍

Update: I merged against main to solve conflicts and I noticed that the findUnusedKeys GH script was still trying to find for the old styles JS file, so I changed it to look for the TS one. Now we are having some issues with the scripts because it is not being able to detect when I have ({ in a different line from function declaration.

@gedu will help me out with this one 🙏

Yes, I will take a look at the script

Everything fixed now! @NikkiWines @hayata-suenaga please take a look.

Merged against main again. cc @hayata-suenaga

sadly, I don't have time right now. I gonna review this over the weekend

FYI I will be on vacations starting tomorrow for the next two weeks and will return on Oct 23, so @kubabutkiewicz will replace me on this PR! cc @hayata-suenaga

@kubabutkiewicz, thank you for taking over this issue from Fabio. Please resolve the merge conflicts when you have time 🙇

@hayata-suenaga will you be able to look again? 😄

Thank you for answering all questions I have 🙇

: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.

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.3.84-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

This PR caused regression - https://github.com/Expensify/App/issues/29602, https://github.com/Expensify/App/issues/29611
Anyone can raise follow-up PR?
cc: @kubabutkiewicz @rezkiy37 @blazejkustra

Yes, I will try to do PR asap @situchan

@situchan
PR is ready can you review?

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.84-10 🚀

platform
result

🤖 android 🤖
skipped 🚫

🖥 desktop 🖥
skipped 🚫

🍎 iOS 🍎
skipped 🚫

🕸 web 🕸
skipped 🚫

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.84-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/hayata-suenaga in version: 1.3.85-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/francoisl in version: 1.3.85-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Move CI over to AppVeyor

First mentioned in this conversation: https://github.com/garethdown44/nbuilder/pull/35
I'm happy to take the reigns on this. I've done a number of OSS projects using AV to publish to myget (for dev) then nuget (for live).
If the collabs are happy with this, I can talk about my suggetsions (high level / how I automate the version numbers / why 2 feeds, etc).
else close this issue :+1:

I'd like to see this happen as the OSS teamcity server is really slow and apparently no longer has all of the dependencies we need.
I have an appveyor build setup for my Odin project which publishes a beta version to nuget.org if the commit is on a release branch and a release version when the commit is on master. I think a safer approach would be to stall the release version until there's a release tag on master.
Success Criteria

Build and Test NBuilder against the 4.0 framework
Bulid and Test NBuilder against the 3.5 framework
Build and Test NBuilder against the SL4 framework
Build the nuget package
Publish a beta version to nuget.org (or maybe just appveyor's internal feed) when the branch begins with release/*
Publish a release version to nuget.org when the branch is master and the commit is tagged release-*

What are you thoughts? Let's get agreement on acceptance criteria before we do any real work :)

Let's get agreement on acceptance criteria before we do any real work :)

totally :)

I'd like to see this happen as the OSS teamcity server is really slow and apparently no longer has all of the dependencies we need.

sweet! lets chat then...

publishes a beta version to nuget.org if the commit is on a release branch and a release version when the commit is on master.

Ok - this is very similar to what I do ... with a minor change. I don't publish my pre-releases to nuget.org because i don't like polluting that feed with lots of branches before a release. Sure, if there's only one or two PR's a year. np. But I just don't like that habit.
I'll explain what I do and why.
master
master branch is ONLY for releases to nuget.org. The version is controlled via the AppVeyor-master.yml file. generally, the minor version is incremented only. Major version number's are a serious thing, so I would update the AV-master.yml file with that number. Besides that, it uses the AV {build} number.
dev
dev is the official branch for any PR's to be accepted but any branch name can be used if we're trying stuff out, etc. CI looks for !master branches and kicks off. in deploys to MyGet.org (which is free/public) and is a pre-release .. so the version number prepended with -dev to keep semver happy. I personally use the patch number (in a version) so it closely syncs with the next public nuget (master) release. This is again handled magically in the AppVeyor.yml (notice this is a different yml file).
So why bother? This is the testing ground. For each successful commit that is pushed up to upstream, a nuget file is created and pushed to this testing / proving ground. You would be surprised how many times file get pushed to this place. A lot of the time, people don't use most of these packages from myget. Fine. i get that. The point is that the OPTION is there if we need to test just one of these pre-releases out and there is a system now in place to throw that stuff up there auto-magically.
and the main nuget feed isn't polluted.
Finally, i would drop support for SL4 and 3.5.  meh! Keep things simple.
that's my 2c. :smile:
:money_with_wings:

I wouldn't want to drop the older framework support without @garethdown44 's explicit consent. The last time he & I worked together on NBuilder he was pretty solid on keeping support for the other frameworks.
I imagine before too long we'll want to support the "Core" framework in addition to 4.0+. That's something to consider. I haven't seen this done with AppVeyor yet.
Question: Why use myget for beta's instead of appveyor's built-in feed? I'm not against it necessarily, I'm just wondering why?
Otherwise I think we're on the same page with respect to how this should work, though I daresay you are probably more advanced with Appveyor than I am. I look forward to catching up with you. :)

I wouldn't want to drop the older framework support without @garethdown44 's explicit consent.

NP.

I imagine before too long we'll want to support the "Core" framework

I'm biting at the chomp for vnext. So i'll be all over updating OSS stuff to re-sync with .NET Core.

Why use myget for beta's instead of appveyor's built-in feed?

I've never seen any obvious info about how to access the packages on there.
Is there a GUI for easy discoverability? (myget has this)
Not phased either way. Just would like some website landing page to be able to see the feed content without having to use Nuget package manager to see the feed info. (discoverability)

Schaweet!

It just creates an endpoint which you can use with the nuget exe. There's no integrated UI other than what you get in Visual Studio that I can see.
What do you need from me to get started on this?

There's no integrated UI other than what you get in Visual Studio that I can see.

so ... want to use myget then? your call. (remember, needs to be easy for developers to find/discover the -pre packages...

I can't say I feel strongly about it either way. Honestly, Semantic Versioning is much more important to me. Using MyGet is fine with me.

Where do we stand on this? Anything I can do to help?

Yo! Hi!
i'll try and give this a crack in the next few days -> i'll PR up an AV file or something... watch this space :)

Hi team.
whoa. EPIC :/
So i've probably invested about 10 hours into this issue. (yes, i said 10). I've levelled up from a AppVeyor-Veteran to AppVeyor-Ninja-God-Asshat.
Basically, the fact that there's multiple frameworks was the problem.
But i've done it.
But first!! there's some admin stuff I need to sort out. I'll explain what been set up and what the repo owners need to do to take ownership of the parts i've setup.
I've setup the following:

A free account with AppVeyor.
A free account with myget.
Created a fork with the appveyor.yml settings

With AV, there's two projects in there.

master
!master

So the flow is this:

All work is done in custom forks and then PR'd up to upstream/dev and ONLY dev branch. (upstream is this repo .. while origin's are your forks). I'm assuming you guys know the what i mean by upstream and origin.
When a PR is submitted to dev branch, AV kicks off and does it stuff.
When the PR is accepted/merged, AV kicks off again and this time publishes a nuget package to myget. Following semver the build number is postpended with -dev so it's then viewed as a pre-release package.
Once the nuget package has been tested (assuming the PR is not a tiny thing and warrants testing), you then PR from dev -> master.
AV kicks off again against master but does not deploy.
Master is accepted/merged, and AV kicks off for the last time and if all good, finally deploys the nuget package to nuget.org. As a proper release.

Now, lets talk about the nuget package...
this contains THREE dll's.
\_ NET40
\_ NET35
\_SL4

I couldn't get SL3 to compile or work. Care factor zero, from me with regards to SL3.
I also couldn't get the SL4 unit tests to work either. Again, this is SL ... so care factor == zero.
And finally, I upgraded the project and solution to work with VS2015 because .. well.. we should all be on that by now (especially when there's a working free version, now).
Work required by Admins

I need to give you the usernames/password to both AV and MG. (same password) and you guys need to take ownership of them, IMO.

I'm not sure if i should paste them here and you guys quickly change em OR i can email them or use twitter DM's, etc. I'm kewl with whatever.
If that sounds sounds all peachy to you gentle folk, then i'll submit my PR. for review.
now, some cat tax:

oh - another thing i forgot to mention.
with this being on AV, i've dropped all this nant  and travis :shit:. No need to the 80's to :phone: us up. Powershell is your father.

@PureKrome, let me say "Thank You" for the work you've done on this. I won't be able to look deeply at this for a few days, but it's my highest priority on this project. Talk to you soon!

@crmckenzie great! also - how would you like the secret info handed over?

I've been working on this too, though I think you have gotten much farther than I have.

I've setup the following:

A free account with AppVeyor.
A free account with myget.
Created a fork with the appveyor.yml settings

I have an AppVeyor account already. I'll be reaching out to AppVeyor to see if we can create an nbuilder organization account so that it's not directly associated with my username. I'd like to do the same thing with MyGet. If I do it correctly, it should not be necessary for you to transfer your accounts to us. I think accepting your AppVeyor.yml files and associated build scripts into the project should be sufficient as far as that goes.

With AV, there's two projects in there.
master
!master

Just FYI, I plan to enhance this somewhat. I would like to use Git Flow as the branching strategy. I would like all commits on all branches to trigger a CI build. I would like "release/*" branches to trigger  a beta-package publish. I would like merges to master to trigger the release package publish. As you wrote, PR's would be accepted into the upstream "develop" branch.
I am not asking you to do this additional work.

I couldn't get SL3 to compile or work. Care factor zero, from me with regards to SL3.

@garethdown44 and I have previously agreed to no longer support SL3. We will continue to support SL4. I will take on the task of getting the SL4 tests to work. I think I know what issue you encountered and I've resolved it before. Later I will migrate from SL4 to SL5. After the world has moved on to the Core Framework, my guess is that SL5 will atrophy as well.

I need to give you the usernames/password to both AV and MG. (same password) and you guys need to take ownership of them, IMO.

I don't think you do. I already have an AV account and myget account. I'll reach out to both providers to see about creating an organization account for nbuilder so that the projects are not stuck under my username. If you still feel like you should you can send the credentials to me at crmckenzie(at)gmail
All I need from you is your PR. I'll merge it into "develop" and get the account process started with the AV and MyGet.
Let me say "Thank You" again for figuring this out. The work you've done is foundational to the continued growth of NBuilder.
I look forward to your PR. Let me know if you need anything else from me, or anything I said did not make sense.

Hey @PureKrome, where do we stand on the PR? I'm looking forward to marking this issue closed.

I need an email address or a twitter handle i can DM some of the private info to (eg. u/p for the services). then i can start to post stuff up/pr.

Did you see my earlier comments? I don't think that will be necessary, but if you're convinced it is you can email me using my github handle (at)gmail.com.
Thanks!

yep - i read them but i was hoping to get the info to you in the mean time and then you can migrate etc in your time.
baby steps, etc.
on it now!

sweet!

For those reading this thread - email sent to @crmckenzie :+1:

@crmckenzie ready to PR now.
Can you please make a dev branch in this repo, please. so i can PR to that... starting my flow and it tests my AV yml file(s).

done. I look forward to your PR.

@crmckenzie Take note with this PR:

Your commit 82011b3afe7d68fa15416c4b2c2d5d49c932873b which added a CI AV badge for your AV has been removed / undone.
New badges have been made.
The icons for some of the badges will not work/display UNTIL the AV project has actually completed. (eg. AV-master project has no build yet made, so it will display a broken badge until we PR + merge to master).
I've not removed any of the old ps1 files used for building stuff. I was going to leave this for you, as i'm not toooo sure where these are still being used outside of AV. eg. do people use that to manually build on their own localhost? I see that these ps1 files (eg.`Invoke-NuGetpack.ps1) i think should be removed because AV handles all of this, now.

@crmckenzie Yo :) i've just checked the dev branch and noticed that the readme.md is saying that AV is failing. clicking the 'av badge' in the readme, it bounces over to AV and lists an error.
The error looks like that, that CI project is not picking up the AV project and is auto-trying to locate the sln's to build.
Do you need some help with this?
Try checking the settings for your AV project ...  should look like this...

for NBuilder (release/*): value should be AppVeyor/appveyor.yml.
for NBuilder (master) : value should be AppVeyor/appveyor-master.yml

Thanks for noticing, but I'll tend to it when it gets closer to release time (which is close!). I think the readme may just be pointing to the wrong build or something.
Appveyor says it's currently building


Fixed bug in log probability calculation for Diagonal Gaussian distribution

Description

The calculation of log probability in https://github.com/hill-a/stable-baselines/blob/master/stable_baselines/common/base_class.py#L880-L884
is incorrect since the logstd is mistook as logvariance and std is mistook as variance. Three changes are suggested, the first being the rollout of action_prob returns the standard deviation and from that term the log of the standard deviation is calculated. Additionally, since the logstd actually represents the log of the standard deviation, the 0.5 is removed such that it is exactly the calculation in https://github.com/hill-a/stable-baselines/blob/master/stable_baselines/common/distributions.py#L403-L405 which is mathematically correct. The third change is that the square of the standard deviation is taken to get the variance in the calculation of log probability.
Motivation and Context

This change is required because the calculation of log probability is inaccurate since the standard deviation is mistaken to be the variance. Therefore, the log probability of a Gaussian is inaccurately calculated and hence the model returns a false value.

Closes #1059
Closes #1058

[x] I have raised an issue to propose this change (required for new features and bug fixes)

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation (update in the documentation)

Checklist:

[x] I've read the CONTRIBUTION guide (required)
[x] I have updated the changelog accordingly (required).
[ ] My change requires a change to the documentation.
[x] I have updated the tests accordingly (required for a bug fix or a new feature).
[ ] I have updated the documentation accordingly.
[ ] I have ensured pytest and pytype both pass (by running  make pytest and make type).

Great job @SVJayanthi! Could @araffin help review? Thanks!

Hello,
thanks for the PR =)
I hope to have more time end of this week or next week to do the review ;)


Scalable video broadcast and Screen Sharing in same page.

how do i render both video broadcast and screen sharing in same page? I'm using angularjs controller to define RTCMulticonnection instead of <script> tag. Video Broadcast working fine. but Screen Sharing not working. Please help me.

Hello Nasr


Fix #2056 create viewModel for speakerDetails activity

Fixes #2056
Changes:Created ViewModel for the SpeakerDetailsActivity
Screenshots for the change:

@nikit19 While you're at it, I think you can also delete the redundant onSavedInstanceState method here which does nothing except calling its super.


fix: Auto-generated header Refactor

API content type refactor flow. More information can be found here
Fixes #18473

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)

Test Plan

Add Testsmith test cases links that relate to this PR

Issues raised during DP testing

Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)

Checklist:
Dev activity

[ ] 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
[ ] PR is being merged under a feature flag

QA activity:

[ ] Test plan has been approved by relevant developers
[ ] Test plan has been peer reviewed by QA
[ ] Cypress test cases have been added and approved by either SDET or manual QA
[ ] Organized project review call with relevant stakeholders after Round 1/2 of QA
[ ] Added Test Plan Approved label after reveiwing all Cypress test

/ok-to-test sha=8c47f17

/ok-to-test sha=712a8c9

/ok-to-test sha=6753015

/ok-to-test sha=f8e48f2

/ok-to-test sha=169db22

/ok-to-test sha=fb33efa

/ok-to-test sha=e33dba0

/ok-to-test sha=a193890

/ok-to-test sha=c3e82da

/ok-to-test sha=de7296e

/ok-to-test

/ok-to-test sha=b962f88

/ok-to-test sha=3bd5cf5

/ok-to-test sha=61509f8

/ok-to-test sha=eb52f32

/ok-to-test sha=a15aacb

/ok-to-test sha=b71227e

Backend changes LGTM.

/ok-to-test sha=05b729f

/ok-to-test sha=842b696

/ok-to-test sha=8e06d00

/ok-to-test sha=3e2bbbe

/ok-to-test sha=e6b9eab

/ok-to-test sha=2ac21fb

Server side changes LGTM.


Ability to export the terminal scrollback buffer to a file

Feature description

Hi Arnaud,
The ability to export the entire session would be excellent!
Similar to saving log / entire sessions in putty on windows.
When I run a command on a switch or router with a lot of output it makes it tough to copy the session information as the output is large and fills text inside the terminal quickly.
This would be a great feature to have if it’s possible.

By Manraj through email

[x] Replace font family by "monospace" on html output
[x] Translate "export as"
[x] Move "Theme" to top menu by-side "Notes"
[ ] Ping Christian when done
[ ] Ping Manraj

Now available inside the latest beta release : https://testflight.apple.com/join/QSrBK59z


Vulnerability roundup 77: qtbase-5.12.3: 1 advisory

search, files

[ ] CVE-2019-18281 (nixos-19.09)

Scanned versions: nixos-19.09: 5f506b95f9f. May contain false positives.

Vulnerable.

Merged - Closing


research folder added

submitting the contributions of the paper

This is a great work @akhikolla!!!!
Nice use of Markdown, exercising multiple markings.


[Calling][Feature] Merging beta 1.1.0-beta.1

Purpose

Merge back release/calling-v1.1.0-beta.1 to develop

Does this introduce a breaking change?

[x] Yes
[ ] No

Pull Request Type
What kind of change does this Pull Request introduce?

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

Pull Request Checklist

[ ] Public API changes
[ ] Verified for cross-platform
[ ] Synced with iOS, Web team
[ ] Internal review completed
[ ] UI Changes

[ ] Screen captures included
[ ] Tested for Light/Dark mode
[ ] Tested for screen rotation
[ ] Tested on Tablet and small screen device (5")
[ ] Include localization changes

[ ] Tests

[ ] Memory leak analysis performed
[ ] Tested on API 21, 26 and latest
[ ] Tested for background mode
[ ] Unit Tests Included
[ ] UI Automated Tests Included

How to Test

Open...
Click on...

What to Check
Verify that the following are valid

...

Other Information

Closing the PR as it will be a redundent back merge


kie-server-tests: Case Id generator test

@sutaakar do we need to copy all the car insurance case stuff into the new module? Maybe we could just use simplest possible case definition instead as we don't really need anything advanced there to verify case id generators. Wdyt?

Right, it could be better, will change it.

Updated

thanks @sutaakar


Shadow blocks are not used when converting from JS

If you add a block that uses shadow blocks (e.g. the logic_compare block) you cannot remove the operands. However, if you enter equivalent JS (e.g. 0 == 0) and convert to blocks it will produce a block that doesn't use shadow values, and you can therefore remove the operands.

This issue isn't limited to code in JS, it can also happen if you write some code in the blocks and then do a round trip. A picture of what that looks like:

The upper string literal is a shadow block that has not gone through the roundtrip, the second block has gone through the roundtrip and the string literal transformed into a real block. Especially weird because we don't currently allow the user to create string literal blocks!


training code release

Hi, thank you for the enlightening work. I found currently the mam model was based on SAM-b, and the extracted image feature is not compatible with the SAM-h, I am wondering is there any chances the training code or the mam SAM-h based checkpoint will be released ?

Thanks for your interests in this work. We're still preparing the code release of the rest part and for now we only trained MAM on SAM-B, and this checkpoint is released here. We don't have plans for training MAM on SAM-H yet. Thanks!

Trank you for your reply, looking forward to it


Visio Add-in for Microsoft Dynamics 365 Layout Setup

error：This Add-In is only avaliable in English

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

ID: 7e10fe3d-8467-8be1-4632-3fca2bc4d331
Version Independent ID: 0008c819-7b7c-5c0e-2577-4124ebe1b78b
Content: Use Dynamics 365 Import Tool (Preview) to prepare 3D models to work with Dynamics 365 Layout - Dynamics 365 Mixed Reality
Content Source: mr-docs/import-tool/layout.md
Service: crm-online
GitHub Login: @BryceHo
Microsoft Alias: BryceHo

Yes, the whole Layout app is only available in English at this time. English-only availability is noted in the FAQ.

So does it mean that the Windows needs to run in English too or just Visio

Is it a way to place teh 3D components in 2D in Visio and get them automatically in Layout?
and in the other way, when a Layoiut is done with 3D objects placed in 3D, is it possible to update the Visio drawing?


Upgrade py-spy

Description
Includes a not yet merged fix from https://github.com/benfred/py-spy/pull/407
Motivation and Context
Fixes a "bug" in py-spy and prevented us from profiling certain Python builds.
See explanation in the mentioned PR.
How Has This Been Tested?
CI
Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have updated the relevant documentation.
[ ] I have added tests for new logic.

Tested gProfiler built from this branch on Python 2.7.6 (python package of the ubuntu:14.04 image), profiling works, and it didn't work before (failed with the error as described in https://github.com/benfred/py-spy/pull/407)

Wait for CI to pass before merging

Random failure, not something I wish to debug in this PR. I'll merge it in the morning, not the best idea to release a new version at 2AM


Add support for CPU Inference

Refer: https://github.com/PanQiWei/AutoGPTQ/pull/385
Signed-Off By: Vivek Khandelwal<EMAIL_ADDRESS>

@fxmarty @SunMarc can you please review this PR?

Can you change the requirements to put AutoGPTQ>=0.5.0?

Can you change the requirements to put AutoGPTQ>=0.5.0?

The transformer's requirements?

Nevermind. There's actually no auto-gptq in setup.py. You can change AUTOGPTQ_MINIMUM_VERSION in utils/import_utils.py

@fxmarty I have updated the PR with the required changes.


Remove optional use of statsmodels within EMOS

Addresses part of #1537
Description
This PR removes the optional use of statsmodels, meaning that it is now a required module. This aids the further development in #1537 for using a static additional predictor.
Further information in https://github.com/metoppv/mo-blue-team/issues/73#issuecomment-925092996.
Testing:

[x] Ran tests and they passed OK
[x] Added new tests for the new feature(s)

I've created a PR-to-PR which changes this to make statsmodels required only for estimate EMOS functionality. That change avoids a hard dependency on statsmodels for all of IMPROVER but still allows for a lot of the simplification in this PR.
I've had a read through the this PR. All looks OK to me and avoiding two code paths is a nice simplification.


Implement Player#getPing() and resolves #210

Description
Implemented Player#getPing() and added a comment explaining why it will always be zero.
Resolves #210
Checklist
The following items should be checked before the pull request can be merged.

[x] Version number updated in settings.gradle.
[ ] Unit tests added.
[x] Code follows existing code format.

Also, we should preferabbly merge this before #208.


Way of displaying supported formats

Etcher version: 1.0.0-beta.16 portable
Operating system and architecture: win 10 64bit

Why do you hide the most common image format iso behind "many more"?
Every bios or fw update, and all os images for linux and win I run into use it...

Shouldn't it be the other way around?
Show common ones that people know and use most likely, and append more specific and advanced ones?
Maybe there should even be some ordering. Show some important ones, others go to the tool tip in alphabetical order for example. Right now you get a bit lost in the tooltip. :)

@tooomm Thanks for the feedback. This is a great point. Currently we just take the first 3 formats defined by etcher-image-stream and put the rest in the tooltip.
Determining which ones should be presented outside the tooltip might be tricky, since for one side, we want highlight and make more obvious the more exotic formats we support, while still make clear that we support the "obvious" ones, like .iso.
I'd love to have input from more people on this one.

What about "img, iso, zip, etch and many more" ?
img and iso are the image formats that people are most used to, zip shows that it also transparently supports compressed files, and etch shows that it also supports exotic formats ;-)
(AFAICT Etcher was originally developed for writing .img files to SD cards, and that's why IMHO img should be listed before iso)
Although that might then make the text under the button wider than the button itself (?) and I dunno what @taahirisaacs thinks about that...

Although that might then make the text under the button wider than the button itself (?)

It could just say "and more" or "and others" instead. Maybe even just some "..." dots or the (?) help icon are enough.

I agree with Andrew's proposal, except that i don't see the reason to
promote .etch yet. For the moment it's a stub of a format we may make more
real in the future.
--
Alexandros Marinos
Founder & CEO, Resin.io
+1<PHONE_NUMBER>
@alexandrosm
On Mon, Oct 31, 2016 at 6:03 AM, tooomm<EMAIL_ADDRESS>wrote:

Although that might then make the text under the button wider than the
button itself (?)
It could just say "and more" or "and others" instead. Maybe even just some
"..." dots or the (?) help icon are enough.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/resin-io/etcher/issues/787#issuecomment-257288051,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLUCEQxRTAnINojENPV-Q_76iUqoQSLks5q5ecJgaJpZM4KkHfJ
.

Sounds good to me. What do you think about @tooomm 's suggestion about changing the text afterwards? I kinda like "and many more", since it sounds like a more "excited" way of promoting if, but maybe that's just me.

"and much more" sounds better in some unspecified way?
--
Alexandros Marinos
Founder & CEO, Resin.io
+1<PHONE_NUMBER>
@alexandrosm
On Mon, Oct 31, 2016 at 11:30 AM, Juan Cruz Viotti<EMAIL_ADDRESS>
wrote:

Sounds good to me. What do you think about @tooomm
https://github.com/tooomm 's suggestion about changing the text
afterwards? I kinda like "and many more", since it sounds like a more
"excited" way of promoting if, but maybe that's just me.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/resin-io/etcher/issues/787#issuecomment-257379401,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABLUCK00vxJ4Sd9PYvy7J6ya-Wiz7uYMks5q5jPZgaJpZM4KkHfJ
.

Yeah, I like it. Lets go for it!


[BUG] Reindexing fails with indexing backpressure

What is the bug?
When shard indexing back-pressure is enabled and cluster load exceeds the threshold, 429's generated during reindexing crashes the reindexing operation. For some reason, 429's (as opposed to other intermittent errors) do not lead to a retry but crash the reindex process instead.
How can one reproduce the bug?

Enable shard indexing back-pressure.
Max. out server load.
Perform reindexing.

What is the expected behavior?
Retries, ideally with exponential back-off.
What is your host/environment?
OpenSearch 2.6.0, Ubuntu 20.04.3 LTS, deployment from Debian repo, 75-node cluster.
Do you have any additional context?
Example output from reindexing operation:
{
	"completed": true,
	"task": {
		"node": "D8yBWHY2SkqsB0RO4EGOdA",
		"id": 828447209,
		"type": "transport",
		"action": "indices:data/write/reindex",
		"status": {
			"total": 11450121,
			"updated": 7170428,
			"created": 3535836,
			"deleted": 0,
			"batches": 107064,
			"version_conflicts": 0,
			"noops": 0,
			"retries": {
				"bulk": 0,
				"search": 0
			},
			"throttled_millis": 0,
			"requests_per_second": -1.0,
			"throttled_until_millis": 0,
			"slices": [
				{
					"slice_id": 0,
					"total": 1430025,
					"updated": 1274600,
					"created": 0,
					"deleted": 0,
					"batches": 12746,
					"version_conflicts": 0,
					"noops": 0,
					"retries": {
						"bulk": 0,
						"search": 0
					},
					"throttled_millis": 0,
					"requests_per_second": -1.0,
					"throttled_until_millis": 0
				},
				{
					"slice_id": 1,
					"total": 1430133,
					"updated": 764654,
					"created": 520046,
					"deleted": 0,
					"batches": 12847,
					"version_conflicts": 0,
					"noops": 0,
					"retries": {
						"bulk": 0,
						"search": 0
					},
					"throttled_millis": 0,
					"requests_per_second": -1.0,
					"throttled_until_millis": 0
				},
				{
					"slice_id": 2,
					"total": 1432099,
					"updated": 774538,
					"created": 657561,
					"deleted": 0,
					"batches": 14321,
					"version_conflicts": 0,
					"noops": 0,
					"retries": {
						"bulk": 0,
						"search": 0
					},
					"throttled_millis": 0,
					"requests_per_second": -1.0,
					"throttled_until_millis": 0
				},
				{
					"slice_id": 3,
					"total": 1432157,
					"updated": 764625,
					"created": 667532,
					"deleted": 0,
					"batches": 14322,
					"version_conflicts": 0,
					"noops": 0,
					"retries": {
						"bulk": 0,
						"search": 0
					},
					"throttled_millis": 0,
					"requests_per_second": -1.0,
					"throttled_until_millis": 0
				},
				{
					"slice_id": 4,
					"total": 1431793,
					"updated": 1280800,
					"created": 0,
					"deleted": 0,
					"batches": 12808,
					"version_conflicts": 0,
					"noops": 0,
					"retries": {
						"bulk": 0,
						"search": 0
					},
					"throttled_millis": 0,
					"requests_per_second": -1.0,
					"throttled_until_millis": 0
				},
				{
					"slice_id": 5,
					"total": 1431473,
					"updated": 764947,
					"created": 516753,
					"deleted": 0,
					"batches": 12817,
					"version_conflicts": 0,
					"noops": 0,
					"retries": {
						"bulk": 0,
						"search": 0
					},
					"throttled_millis": 0,
					"requests_per_second": -1.0,
					"throttled_until_millis": 0
				},
				{
					"slice_id": 6,
					"total": 1430508,
					"updated": 764718,
					"created": 665790,
					"deleted": 0,
					"batches": 14306,
					"version_conflicts": 0,
					"noops": 0,
					"retries": {
						"bulk": 0,
						"search": 0
					},
					"throttled_millis": 0,
					"requests_per_second": -1.0,
					"throttled_until_millis": 0
				},
				{
					"slice_id": 7,
					"total": 1431933,
					"updated": 781546,
					"created": 508154,
					"deleted": 0,
					"batches": 12897,
					"version_conflicts": 0,
					"noops": 0,
					"retries": {
						"bulk": 0,
						"search": 0
					},
					"throttled_millis": 0,
					"requests_per_second": -1.0,
					"throttled_until_millis": 0
				}
			]
		},
		"description": "reindex from [ipfs_files_v9] to [ipfs_other_v1]",
		"start_time_in_millis":<PHONE_NUMBER>365,
		"running_time_in_nanos":<PHONE_NUMBER>9662,
		"cancellable": true,
		"cancelled": false,
		"headers": {}
	},
	"response": {
		"took": 53075191,
		"timed_out": false,
		"total": 11450121,
		"updated": 7170428,
		"created": 3535836,
		"deleted": 0,
		"batches": 107064,
		"version_conflicts": 0,
		"noops": 0,
		"retries": {
			"bulk": 0,
			"search": 0
		},
		"throttled": "0s",
		"throttled_millis": 0,
		"requests_per_second": -1.0,
		"throttled_until": "0s",
		"throttled_until_millis": 0,
		"slices": [
			{
				"slice_id": 0,
				"total": 1430025,
				"updated": 1274600,
				"created": 0,
				"deleted": 0,
				"batches": 12746,
				"version_conflicts": 0,
				"noops": 0,
				"retries": {
					"bulk": 0,
					"search": 0
				},
				"throttled": "0s",
				"throttled_millis": 0,
				"requests_per_second": -1.0,
				"throttled_until": "0s",
				"throttled_until_millis": 0
			},
			{
				"slice_id": 1,
				"total": 1430133,
				"updated": 764654,
				"created": 520046,
				"deleted": 0,
				"batches": 12847,
				"version_conflicts": 0,
				"noops": 0,
				"retries": {
					"bulk": 0,
					"search": 0
				},
				"throttled": "0s",
				"throttled_millis": 0,
				"requests_per_second": -1.0,
				"throttled_until": "0s",
				"throttled_until_millis": 0
			},
			{
				"slice_id": 2,
				"total": 1432099,
				"updated": 774538,
				"created": 657561,
				"deleted": 0,
				"batches": 14321,
				"version_conflicts": 0,
				"noops": 0,
				"retries": {
					"bulk": 0,
					"search": 0
				},
				"throttled": "0s",
				"throttled_millis": 0,
				"requests_per_second": -1.0,
				"throttled_until": "0s",
				"throttled_until_millis": 0
			},
			{
				"slice_id": 3,
				"total": 1432157,
				"updated": 764625,
				"created": 667532,
				"deleted": 0,
				"batches": 14322,
				"version_conflicts": 0,
				"noops": 0,
				"retries": {
					"bulk": 0,
					"search": 0
				},
				"throttled": "0s",
				"throttled_millis": 0,
				"requests_per_second": -1.0,
				"throttled_until": "0s",
				"throttled_until_millis": 0
			},
			{
				"slice_id": 4,
				"total": 1431793,
				"updated": 1280800,
				"created": 0,
				"deleted": 0,
				"batches": 12808,
				"version_conflicts": 0,
				"noops": 0,
				"retries": {
					"bulk": 0,
					"search": 0
				},
				"throttled": "0s",
				"throttled_millis": 0,
				"requests_per_second": -1.0,
				"throttled_until": "0s",
				"throttled_until_millis": 0
			},
			{
				"slice_id": 5,
				"total": 1431473,
				"updated": 764947,
				"created": 516753,
				"deleted": 0,
				"batches": 12817,
				"version_conflicts": 0,
				"noops": 0,
				"retries": {
					"bulk": 0,
					"search": 0
				},
				"throttled": "0s",
				"throttled_millis": 0,
				"requests_per_second": -1.0,
				"throttled_until": "0s",
				"throttled_until_millis": 0
			},
			{
				"slice_id": 6,
				"total": 1430508,
				"updated": 764718,
				"created": 665790,
				"deleted": 0,
				"batches": 14306,
				"version_conflicts": 0,
				"noops": 0,
				"retries": {
					"bulk": 0,
					"search": 0
				},
				"throttled": "0s",
				"throttled_millis": 0,
				"requests_per_second": -1.0,
				"throttled_until": "0s",
				"throttled_until_millis": 0
			},
			{
				"slice_id": 7,
				"total": 1431933,
				"updated": 781546,
				"created": 508154,
				"deleted": 0,
				"batches": 12897,
				"version_conflicts": 0,
				"noops": 0,
				"retries": {
					"bulk": 0,
					"search": 0
				},
				"throttled": "0s",
				"throttled_millis": 0,
				"requests_per_second": -1.0,
				"throttled_until": "0s",
				"throttled_until_millis": 0
			}
		],
		"failures": [
			{
				"index": "ipfs_files_v9",
				"shard": 624,
				"node": "lPxMyNf_TgCoN96mczN8RQ",
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@e99343b on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 6.4ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1662, completed tasks = 272789524]]"
				}
			},
			{
				"index": "ipfs_files_v9",
				"shard": 905,
				"node": "lPxMyNf_TgCoN96mczN8RQ",
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@5e6cb1df on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 15.3ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1675, completed tasks = 272789511]]"
				}
			},
			{
				"index": "ipfs_files_v9",
				"shard": 524,
				"node": "lPxMyNf_TgCoN96mczN8RQ",
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@1c969a1c on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 7.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1649, completed tasks = 272789537]]"
				}
			},
			{
				"index": "ipfs_files_v9",
				"shard": 276,
				"node": "lPxMyNf_TgCoN96mczN8RQ",
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@e4bfb6f on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 7.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1649, completed tasks = 272789537]]"
				}
			},
			{
				"index": "ipfs_files_v9",
				"shard": 821,
				"node": "lPxMyNf_TgCoN96mczN8RQ",
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@33098fce on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 5.7ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1615, completed tasks = 272789631]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@2cb9f42b on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 5.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1647, completed tasks = 272789539]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@27e1566b on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1645, completed tasks = 272789541]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@46fcfeb9 on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1645, completed tasks = 272789541]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@4e55205c on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1645, completed tasks = 272789541]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@7a935d1c on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1645, completed tasks = 272789541]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@3e88e732 on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.2ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1644, completed tasks = 272789542]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@792e7c53 on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.2ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1644, completed tasks = 272789542]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@5aca9948 on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1645, completed tasks = 272789541]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@232a2758 on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 2.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1643, completed tasks = 272789543]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@68f906ba on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.2ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1644, completed tasks = 272789542]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@4b448d4f on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 2.8ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1643, completed tasks = 272789543]]"
				}
			},
			{
				"shard": -1,
				"status": 429,
				"reason": {
					"type": "rejected_execution_exception",
					"reason": "rejected execution of org.opensearch.common.util.concurrent.TimedRunnable@433c74a1 on QueueResizingOpenSearchThreadPoolExecutor[name = furber/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 3.2ms, adjustment amount = 50, org.opensearch.common.util.concurrent.QueueResizingOpenSearchThreadPoolExecutor@786a3ad5[Running, pool size = 19, active threads = 19, queued tasks = 1644, completed tasks = 272789542]]"
				}
			}
		]
	}
}

Want to try to implement a unit test for the response above similar to the one here?


ACM-2690 Keep previous cached secret in case of syntax OR validation error

https://issues.redhat.com/browse/ACM-2690
Signed-off-by: Kevin Cormier<EMAIL_ADDRESS>

/cherry-pick release-2.6

/test lint-check-unittests-sonarcloud


Upgrade to pm2 0.14.x

There are several really nice improvements in the new pm2 0.14.x such as the --lines parameter among others. I'm not sure if the breaking changes between 0.12.x and 0.14.x is a problem or if pod could just upgrade without any modifications?

+100


Using Scroll-Watch with ng-if

Hi,
I have a big list of items to show on page in a table.
I would like to watch the scroll value of the element so I'd know which items to show/hide using ng-if.
How can evaluate the scrollable value of the table?
My code is:
<tr ng-repeat="item in displayList track by $index"
                    scroll-watch="{from: 0, to: -1}"
                    ng-if="........">

Thanks.

Hi @bgadiel ,
Basically you can't use ng-if with scroll-watch on the same <div>, which will also destroy scroll-watch watchers when the expression is false.
I would suggest that you write your own directive and use pure DOM/jQuery to fulfill what you need, since your "big list" might cause performance issues when there are too many ng-* directives and scroll-watch watchers on them.
Or you can describe more about your requirements, maybe there's other way to do it.

ok, thank. My problem is that I try to make visible only part of the items from the big list (due to performance issues).
I have tried to add 'Start' and 'End' points on the ng-repeat:
ng-repeat="item in items | limitTo : Start : End"
So I am trying to update the 'Start' and 'End' value when the user is scrolling down.
Is it possible to fire a custom event when the user scrolls down?

angular-scroll-watch currently doesn't support any viewport-related feature, which means that it can't tell if an element is in-view or not. Maybe you'll wanna check out other modules like

https://github.com/thenikso/angular-inview
https://github.com/zumba/angular-waypoints

Personally I think trying to solve the issue with AngularJS itself is not a good idea.
AngularJS doesn't handle the filter performance and DOM operations very well.
I would suggest simply wrap this kind of library with your custom directive and bind required events yourself.
https://clusterize.js.org/

Thanks, that info helped!


Support multiple regions/availabilty zones if an instance type cannot be started

We are using instances types that require lots of reasources. Because of, from time to time it is impossible to start an instance of some type in a certain region and a certain AZ.
It'll be great if this plugin will be able to run over list of regions/AZs (subnets and security groups) and start the instance where its type is available.

Turns out one can only omit subnet ID from run parameters, if you are using the default VPC.

[EC2-VPC] If you don't specify a subnet ID, we choose a default subnet from your default VPC for you. If you don't have a default VPC, you must specify a subnet ID in the request.

See AWS docs

If I do use the default vpc, will it try in one AZ or will keep on trying
in all AZs?
Anyhow I would like that to be across regions as well.
I did solve it using a very ugly workaround but seems like working. In the
start job, I have added a step that if it fails, it triggers the workflow
again with different subnet ID. The subnet is of the start step uses an env
variable that uses an input parameter.
On Mon, Aug 30, 2021, 21:39 Jukka Palomäki @.***> wrote:

Turns out one can only omit subnet ID from run parameters, if you are
using the default VPC.
[EC2-VPC] If you don't specify a subnet ID, we choose a default subnet
from your default VPC for you. If you don't have a default VPC, you must
specify a subnet ID in the request.
See AWS docs
https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/machulav/ec2-github-runner/issues/60#issuecomment-908589830,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAULLE2MPVD3PKELGNZXOITT7PF6RANCNFSM5BZWQ76A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

If I do use the default vpc, will it try in one AZ or will keep on trying
in all AZs?

I don't know, but I suspect it would just pick one.
What I'd like to know is if the automatic selection algorithm is AZ capacity-aware.

I doubt that and I'll explain why.
Capacity of what? Vcpu? Mem? GPU? You can have enough vcpus in a certain AZ
but no GPUs.
I think it just picks up a subnet randomly and hope for the best. For us it
is even worst because we are using mostly GPUs and not all AZs in a certain
region has that type that we are looking for.
On Mon, Aug 30, 2021, 22:18 Jukka Palomäki @.***> wrote:

If I do use the default vpc, will it try in one AZ or will keep on trying
in all AZs?
I don't know, but I suspect it would just pick one.
What I'd like to know is if the automatic selection algorithm is AZ
capacity-aware.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/machulav/ec2-github-runner/issues/60#issuecomment-908619150,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAULLE3G443Y42KOWGTW5D3T7PKR3ANCNFSM5BZWQ76A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

All needed capacity. AWS must be checking them anyhow, at instance launch time, to be able to distribute/optimize load.
Looking at https://aws.amazon.com/premiumsupport/knowledge-center/ec2-insufficient-capacity-errors/ and then https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshooting-launch.html#troubleshooting-launch-capacity, the latter link does mention "not specifying AZ" as one solution. :man_shrugging:
That said, one option could be to abstract the runner start job in a composite action that tries ec2-github-runner start with different region/AZ settings (in consecutive, conditional steps) until it succeeds, returning the start mode outputs from the successful step?

Can be a solution but I think it'll be best if the code can go over list of
regions and AZs and try in each and every one of them.
I did something similar in Jenkins pipeline
On Mon, Aug 30, 2021, 23:31 Jukka Palomäki @.***> wrote:

All needed capacity. AWS must be checking them anyhow, at instance launch
time, to be able to distribute/optimize load.
Looking at
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-insufficient-capacity-errors/
and then
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshooting-launch.html#troubleshooting-launch-capacity,
the latter link does mention "not specifying AZ" as one solution. 🤷♂
That said, one option could be to abstract the runner start job in a composite
action
https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
that tries ec2-github-runner start with different region/AZ settings (in
consecutive, conditional steps) until it succeeds, returning the start mode
outputs from the successful step?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/machulav/ec2-github-runner/issues/60#issuecomment-908671949,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAULLE4QPMTAGC4AXAZP56DT7PTADANCNFSM5BZWQ76A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

And while we are at it, when it fails to start because of the region not having an instance I get a while bunch of errors on stopping:

And while we are at it, when it fails to start because of the region not having an instance I get a while bunch of errors on stopping

That can probably be fixed by amending the if condition on the stop job (to also check the result of the start job)

@stas00 would something like this work? (NOTE: untested and some details omitted for brevity):
jobs:
  start-runner:
    runs-on: ubuntu-20.04
    outputs:
      label: ${{ steps.result.outputs.label }}
      ec2-instance-id: ${{ steps.result.outputs.ec2-instance-id }}
    steps:
      ...
      - id: try-us-east-2a
        uses: machulav/ec2-github-runner@v2
        continue-on-error: true
        with:
          mode: start
          subnet-id: subnet-on-2a
          ...
      - id: try-us-east-2b
        if: steps.try-us-east-2a.outcome == 'failure'
        uses: machulav/ec2-github-runner@v2
        continue-on-error: true
        with:
          mode: start
          subnet-id: subnet-on-2b
          ...
      - id: try-us-east-2c
        if: steps.try-us-east-2b.outcome == 'failure'
        uses: machulav/ec2-github-runner@v2
        with:
          mode: start
          subnet-id: subnet-on-2c
          ...
      - id: result
        run: |
          if [ "${{ steps.try-us-east-2a.outcome }}" = "success" ]; then
            echo "::set-output name=label::${{ steps.try-us-east-2a.outputs.label }}"
            echo "::set-output name=ec2-instance-id::${{ steps.try-us-east-2a.outputs.ec2-instance-id }}"
          fi
          if [ "${{ steps.try-us-east-2b.outcome }}" = "success" ]; then
            echo "::set-output name=label::${{ steps.try-us-east-2b.outputs.label }}"
            echo "::set-output name=ec2-instance-id::${{ steps.try-us-east-2b.outputs.ec2-instance-id }}"
          fi
          if [ "${{ steps.try-us-east-2c.outcome }}" = "success" ]; then
            echo "::set-output name=label::${{ steps.try-us-east-2c.outputs.label }}"
            echo "::set-output name=ec2-instance-id::${{ steps.try-us-east-2c.outputs.ec2-instance-id }}"
          fi

Also, if we supported launch templates (see #65), then multi-region would be less awkward as we could have a template per region (also less inputs per ec2-github-runner step)?

Thank you for writing out a concrete example, @jpalomaki! I will try and report back.
So it's the same sub-region we are using the same AMI /security group, but only rotating though the subnet-ids. Got it.

Thank you for writing out a concrete example, @jpalomaki! I will try and report back.
So it's the same sub-region we are using the same AMI /security group, but only rotating though the subnet-ids. Got it.

Np.
NOTE: I now fixed the if condition on the try-us-east-2c step so that it only runs if both previous steps failed. Also be sure to monitor how many instances/runners are actually spawned, to avoid excess costs.

So I have done quite a few experiments and your example works perfectly well, @jpalomaki - thank you so much.
I switched to us-east-1 since us-east-2 didn't even have 3 subnets that supported the instance type I needed. On us-east-1 I think there are only 3.
It'd be nice to be able to remove the repetition of aws-resource-tags and other sections if at all possible. If not, that's OK too.
The final config is here:
https://github.com/bigscience-workshop/Megatron-DeepSpeed/blob/9e14c02a1dd22e4d36e2ee9a33e44d33774b8de7/.github/workflows/main.yml#L17

So is it going to support only different AZs but not different regions?
Thanks
On Wed, Sep 1, 2021, 07:41 Stas Bekman @.***> wrote:

So I have done quite a few experiments and your example works perfectly
well, @jpalomaki https://github.com/jpalomaki - thank you so much.
I switched to us-east-1 since us-east-2 didn't even have 3 subnets that
supported the instance type I needed. On us-east-1 I think there are only 3.
It'd be nice to be able to remove the repetition of aws-resource-tags and
other sections if at all possible. If not, that's OK too.
The final config is here:
https://github.com/bigscience-workshop/Megatron-DeepSpeed/blob/9e14c02a1dd22e4d36e2ee9a33e44d33774b8de7/.github/workflows/main.yml#L17
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/machulav/ec2-github-runner/issues/60#issuecomment-909878536,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAULLE6U5J7YFN65XDN6USTT7WVHNANCNFSM5BZWQ76A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

this particular setup is just sub-regions.
I'm concerned this might not be enough still at times. So different regions would be even more fault tolerant, but this is already a great start.

I agree that this is a good start but with the types we're using,
unfortunately, it won't be enough :-(
On Wed, Sep 1, 2021, 08:24 Stas Bekman @.***> wrote:

this particular setup is just sub-regions.
I'm concerned this might not be enough still at times. So different
regions would be even more fault tolerant, but this is already a great
start.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/machulav/ec2-github-runner/issues/60#issuecomment-909901528,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAULLE53MJIJFANPPGKODVTT7W2KBANCNFSM5BZWQ76A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

@stas00, great that you've made it to work!
@jpalomaki, thank you a lot for your help and examples! I really appreciate your help here!
I hope that the launch templates from #65 will make selecting the AZ from the region less painful in the future. Maybe it will be helpful also for the region selection when you have one launch template in each region and then try to create instances in each region one by one using the example from @jpalomaki.
But for now, I close the issue as we have a solution. Let's monitor the situation and re-open it if required.

Hey, I've implemented the idea of @philschmid

We could make config.input.subnetId a list and try to iterate randomly over it

Check this
https://github.com/Shiphero/ec2-github-runner/commit/69a9f36c03902c200ca9a02a19e92487a149fecf


Support for Safari

Maybe this could be useful
https://github.com/kritollm/chrome-extension-api-for-safari-and-firefox/blob/master/chromeAPISafari/chromeAPIForSafari.js
https://github.com/disconnectme/port/blob/master/port.js

These links are really helpful. Thanks for sharing!

@bharani91 is there already some progress on the Safari support?

Looking for Safari support as well. 👍

Is this currently under development?

Any updated?


NSPOSIXErrorDomain Code=9 "The operation couldn’t be completed. Bad file descriptor"

In my app I sometimes (very rarely) see this error in operation failure block:
Error Domain=NSPOSIXErrorDomain Code=9 "The operation couldn’t be completed. Bad file descriptor"

At https://devforums.apple.com/message/278770#278770 there's an answer to a similar question:

It means that someone has been deallocating file descriptors out from underneath NSURLConnection.

What could be the cause of this problem?
Has someone encountered this error in their AFNetworking operations?

Hi,
I'm getting the same issue while i swipe for remote notification while device is locked and application is opened for some long time. On swipe I handled my notification and does database operation & web-service call as well.


How Preview the Attachments(File in

How Display the Bytearray format file in Browser instead of download
Further technical details

ASP.NET Core 3.0
Blazor`
(VS2019)

Thanks for contacting us @novfal .
It looks like this is a question about how to use Blazor. While we do our best to look through all the issues filed here, to get a faster response we suggest posting your questions to StackOverflow using the asp.net-core-blazor tag.


Az cli 2.24.0 break 'what-if' command

Once az cli is updated to 2.24.0, then running 'az deployment sub what-if ..' command will get an error
'str' object has no attribute 'value'
Bug:
Image version
All microsoft hosted agents with az cli 2.24.0 installed
Expected behavior
If you choose a earlier version of az cli, for example 2.23.0, then the 'what-if' command runs successfully and gives you the expected results.
Actual behavior
Got an error when running 'what-if' command - ERROR:'str' object has no attribute 'value'
note: running the command with 'create' is working fine, no issue. Such as 'az deployment sub create -f .. -p .. -l ..'
Repro steps
Run az cli command such as 'az deployment sub what-if -f .. -p .. -l ..' with version 2.24.0 (latest as of writing)
Then you will get an error: 'str' object has no attribute 'value'

route to service team

This seems to be a duplicate of #18235.

This is causing PROD issues for customers who are doing what-if as part of their CI/CD with ADO hosted agents..

This is fixed in release 2.24.1, which was published a few hours ago:
https://github.com/Azure/azure-cli/pull/18307


Instrument/drum configuration

Probably surface this when trying to modify a SetTrackVoice command

Make sure to use @Wrymouth's updated bank/patch list in a combobox


add luos hal link in documentation

I just fixed the compilation errors with links and images, but I still have to make the full review. Maybe Monday, maybe next year...


generate pki with terraform

I think this is an improvement. It reduces moving parts and moves kubeconfig generation out of phase2. This also improves the security of the GCE setup by requiring ComputeReadScope to see the apiserver private key (instead of StorateReadScope) and completely removing the ability to see the root CA private key (instead of requiring StorageReadScope (i know, it's bad)). Please review commits individually.

@errordeveloper @colemickens this is working, please review.

In the spirit of moving quickly I'm going to merge and build on this.

+1
On Mon, 27 Jun 2016, 21:50 Mike Danese<EMAIL_ADDRESS>wrote:

Merged #146 https://github.com/kubernetes/kubernetes-anywhere/pull/146.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes-anywhere/pull/146#event-705511783,
or mute the thread
https://github.com/notifications/unsubscribe/AAPWSyrl1Z6Df8Hkm-jjjPXsk4MfXNTCks5qQDeZgaJpZM4I8XeU
.


error[E0628]: generators cannot have explicit arguments

Hi, I am trying to write a function that takes a stream and splits it into a few sinks.
It's my first code with futures-await so I might be doing something strange here.
This is what my function looks like:
#[async]
fn stream_split<S,T,E>(stream: S, sinks: Vec<mpsc::Sender<T>>) -> Result<(),()>
where
    S: Stream<Item=T, Error=E>,
    T: Clone,
{
    let mut sinks = sinks;

    #[async]
    for item in stream {
        sinks = sinks.into_iter().filter_map(|sink| {
            match await!(sink.send(item.clone())) {
                Ok(sink) => Some(sink),
                Err(_) => None,
            }
        });
    }
}

When trying to compile, I get this error message:
error[E0628]: generators cannot have explicit arguments
   --> src/frag_msg_receiver.rs:111:50
    |
111 |             sinks = sinks.into_iter().filter_map(|sink| {
    |                                                  ^^^^^^

error: aborting due to previous error

What is the meaning of this error message? What can I do to make my code compile?
The version of my compiler:
$ rustc --version
rustc 1.25.0-nightly (8ccab7eed 2018-01-31)

I have futures-await = "0.1.0" in my Cargo.toml.
Thank you for your extraordinary work on futures-await!

Ah it looks like this is a bad error message! The problem here is that await! is in a closure when it only works inside an #[async] function or an async! block

I see. @alexcrichton: What is the reasonable way to make the code from above work?
Can I put #[async] somehow above the closure, or do I have to turn it into a separate function?
Thank you for your help!

Inside the closure you may want to do --
.filter_map(|sink| {
    async_block! {
        // code using `await!`
    }
})

perhaps?


FilePath not including iis AppName

for example,I have an iis website named "ABC".
the URL goes to http://localhost/Scripts/pdf.js/web/viewer.html?file=../../../Temp\something.pdf
then Browser F12 show me Failed to load resource (404) not found,
but if I change URL to http://localhost/ABC/Scripts/pdf.js/web/viewer.html?file=../../../Temp\something.pdf
it did work~~

Hi!
I configured up the WebFormsDocumentViewer.UI project's url to http://localhost/ABC. I also tried to override the application root url to http://localhost, but all the viewers still work, with both renderers. Can you show me how you built up your tag? What browser are you using? If you are able to reproduce this issue with the WebFormsDocumentViewer.UI project, please let me know. Also, feel free to submit a pull request if you can fix this!

I build up tag same as UI project,but something different,my Filepath property assigned by code-behind and used absolute path(ex. C:\xxx\aaa.docx),not relative path,because of my docx not in web app path.I using Chrome browser

So I suppose your control looks something like this:
<cc:DocumentViewer runat="server"FilePath="C:\xxx\sample.docx" PdfRenderer="PdfJs" />

This is not going to work like this, same as it does not work for ASP.NET image control for example. I suppose the docx file is on the server. You have to create a virtual directory on your IIS hosting machine that points to C:\xxx and use that url. You can check more about this topic here https://stackoverflow.com/questions/2224722/setting-absolute-imageurl?rq=1

oh,thanks,I will try that again about your suggestion~


Not identifying imported components in template

I cannot get my template to recognize imported components and props. Is this a known issue? I've tried different setups and IDE's but I run into the same problem. The project compiles fine, but it's frustrating when the IDE doesn't recognize any custom components.

Did you install the Vetur extension?
Try to write < before name component:
And check if this emmet configuration exists:

 "emmet.includeLanguages": {
    "edge": "html",
    "vue-html": "html",
    "vue": "html"
  },

@LissetteIbnz Thanks, I confirm that the issue persists. I'm using the 0.13.0 Vetur extension with no manual configuration.


New package: SecureIO v0.1.0

Registering package: SecureIO
Repository: https://github.com/PeaceFounder/SecureIO.jl
Created by: @akels
Version: v0.1.0
Commit: 43ed629fff53336e594980e079ab86611ef990ab
Reviewed by: @akels
Reference: https://github.com/PeaceFounder/SecureIO.jl/commit/43ed629fff53336e594980e079ab86611ef990ab#commitcomment-36101542

I would be happy for new name suggestions.

Seems like a fine name to me, you don't think its good?

I wanted to use SecureIO for the definition of the type which is <:IO (now it is SecureTunnel). But if therer are no issues with the name for the registry I would be happy to keep the name.

I wanted to use SecureIO for the definition of the type which is <:IO

Ah, in that case the standard name would be SecureIOs (cf. e.g. StaticArrays which define the type StaticArray). But IMO SecureIO is a better-looking name. It is up to you really.

I think SecureIO is better than SecureIOs.
Anyway, can you retrigger Registrator to fix the merge conflict?
[noblock]

I am still thinking about the change of name for the package and the main struct name. Just some ideas popping up:

SecureIO and SecureTunnel (current)
SecureIO and SecureStream
SecureIO and SecureSerializer
SecureSerializers and SecureSerializer
CryptoSerializers and CryptoSerializer
CryptoStreams and CryptoStream
SecureStreams and SecureStream

I will try to decide on  this in the weekend.

SecureStreams and SecureStream

I kinda like that. I also don't have a problem with the current names.

So I decided to keep the name SecureIO, but I will rename type SecureTunnel to SecureSerializer to reflect that it can also be used with a buffer in case one wants to exchange secure messages in old fashion way.

Whats the status here?

Can be merged.

From my point of view, the package could be merged.

So I decided to keep the name SecureIO, but I will rename type SecureTunnel to SecureSerializer to reflect that it can also be used with a buffer in case one wants to exchange secure messages in old fashion way.

Don't you wanna retrigger to include these changes?

Yes, indeed I can do that. I will retrigger stuff by the the evening.


Add keystoreOrigin as a parameter for the keystore-client

Add the keystoreOrigin as a paramter

It is generally considered best practice to always specify the target origin, if it is known. See this excerpt from MDN:

Always provide a specific targetOrigin, not *, if you know where the other window's document should be located. Failing to provide a specific target discloses the data you send to any interested malicious site. (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)

And because we know, that the keyguard-client will ONLY EVER communicate with the keyguard page, we should really specifiy the targetOrigin, as to not leak ANY user info to a third party. Because changing the location of an iframe or popup is not bound to the same-origin policy, only reading the location. Thus any browser-extension or otherwise third-party could change the href of the iframe without the user noticing, thus the user sending requests, e.g. for transactions to be signed, or their PIN, into the third-party iframe.
I vote for the targetOrigin parameter to stay.

It certainly doesn't hurt to lock the RPC requests to a specific target origin (it does help in some corner cases, e.g. the user actively navigating the popup window). I would however derive the origin from the src parameter instead of having a separate parameter for it. I don't see any realistic use cases where these two origins would be different.


Spelling Mistake

I was just testing this out, and noticed a spelling mistake when it shows what someone was last streaming. "where" should be "were".

Not sure why no one has mentioned or fixed that one earlier. Thank you for your report. :)
It won't be visible in the overlay yet as the change needs to be pushed to the website first, have to wait for the site admin to handle that part.

Then it has been updated on the website and should be visible in the overlay.


banner moves "ive saved it" button out of view

banner moves "ive saved it" button out of view, user has to scroll down to see it some may not realize they can scroll in an extension pop up.
BEFORE SCROLL

AFTER SCROLL

I'm also having trouble scrolling how is this user experience for anyone else?

I've pushed a change in #961 to improve this. Unfortunately it seems like the max height of that popup is 600px (enforced by the browser), so I made some tweaks to fit better in that viewport.

I've pushed a change in #961 to improve this. Unfortunately it seems like the max height of that popup is 600px (enforced by the browser), so I made some tweaks to fit better in that viewport.


Update project and add shouldFail()

Add test and passed. :rose:
Fixes #2

Yey

@unional Can you please allow some time for people to review? You've merged and released a bug 👎

Oops!

It's ok, easy mistake. I only just got around to reviewing, but now you know why I add es6-promise as a dependency regularly 😄

Yes Sir! :stuck_out_tongue:

Use the Thenable?
import Promise = require('es6-promise');
import tape = require('tape');

declare module 'tape' {
  interface Test {
    shouldFail(p: Promise.Thenable<any>, c?: new() => Error): PromiseLike<any>;
  }
}

export = tape;

Or
import {Promise} from 'es6-promise';
import tape = require('tape');

declare module 'tape' {
  interface Test {
    shouldFail(p: Promise<any>, c?: new() => Error): Promise<any>;
  }
}

export = tape;

The Thenable should be plenty here 👍 That's all that's required structurally.

Done https://github.com/typed-typings/npm-blue-tape/pull/5

@blakeembrey does other types exposed by TS has the same issue? Should I set tsconfig.json/compilerOptions/noLib to false for all typings?

does other types exposed by TS has the same issue?

I don't think noLib is a great fix. Basically, use the environment you expect the type definition to be used in. If we're building node.d.ts, yes, we should use noLib and use lib.core.d.ts instead of remove the browser added types. If we're building anything else, probably set the target to be ES5, which would catch the Promise issue (because it's defined in lib.es6.d.ts).


fix(v2): improve accessibility of code blocks

Motivation
Fixes #3119
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Open Google Translate and try to translate page with code blocks on preview site  -- its contents should remain untouched.
Markup errors were not detected (checked by Validator W3C Markup).
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/docusaurus, and link to your PR here.)

thanks 👍 looks exactly the same as before