Integration with vscode.dev

WebAssembly.sh in vscode integrated terminals will be great experience to WAPM users.
I have concept implementation in the following repository, and the extension is also available in VSCode marketplace.
The extension provides these functionalities:

[x] Open WebAssembly.sh in vscode integrated terminals
[x] Open folder in wasmfs as a workspace

Repository: https://github.com/nokotan/siv3d-studio/tree/main/wasm-playground
MarketPlace: https://marketplace.visualstudio.com/items?itemName=KamenokoSoft.wasm-playground
I know that WebAssembly.sh uses older version of wasmer-js, and want to migrate to new version of it.

this is beautiful
it really works
the next dream project could be:
vscode f8 runSelectedText in vscode.dev


Question about Android Barcode Scanning process

I dont need the issue format because this is only a question.
Can I remove the freeze after successfully scanning a barcode in Android? And how?
Any help will be appreciated, Thanks!
Expected Behaviour
Actual Behaviour
Reproduce Scenario (including but not limited to)
Steps to Reproduce
Platform and Version (eg. Android 5.0 or iOS 9.2.1)
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
Cordova CLI version and cordova platform version
cordova --version
cordova platforms

Plugin version
cordova plugin version | grep phonegap-plugin-barcodescanner

Sample Code that illustrates the problem
Logs taken while reproducing problem

Close as duplicate of https://github.com/phonegap/phonegap-plugin-barcodescanner/issues/730


Navigation bar not displayed when accessing tab app via deep link on mobile app

Hi, We are currently developing a bot and tab app for the Teams.
We have implemented a feature where the bot sends a deep link to the tab, and users can click on the link to navigate to the tab.
This works as expected on the desktop version of Teams, with the navigation bar being displayed correctly in the tab.
However, when we try the same on the Teams mobile app, the navigation bar does not appear in the tab after navigating via the deep link.
We have confirmed that the navigation bar does appear when We navigate to the tab normally (not via the deep link) on the mobile app.
This issue only occurs when I navigate via the deep link.
Is there a specification that the navigation bar is not displayed when navigating from a deep link to a tab in a mobile app?
The deep link is following.
https://teams.microsoft.com/l/entity/{appId}/{entityId}
The navigation bar is the image in following.

Mofile version (Android): 1416/<IP_ADDRESS>3092901/0516
Desktop version: 1.0
Thank you.

Thank you for reporting this issue, we will check this issue and get back to you.

We checked this at our end.
Opening tab directly, bottom navigation bar is visible -
https://github.com/MicrosoftDocs/msteams-docs/assets/81138249/b83391bc-81a3-4754-aba1-6c8eb9ed23ca
Opening deeplink to a configurable tab from bot in Channel -
https://github.com/MicrosoftDocs/msteams-docs/assets/81138249/cce640aa-b1ac-4fe6-96ae-e39f8fda8058
Could you please let us know if you are also seeing the same behavior?

@yuji-naito - We checked this issue internally, This is by design. When we open an app from deep link, we don't show bottom bar or navigation panel, thus users can't see it.
There's no immediate plan to change this behaviour.


Release 4.1-b4

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint . from the recipe directory.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

Hi, thanks for trying this, I am still wondering why this suddenly stopped working! If you need any input, please do not hesitate to contact me!

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

License is not an SPDX identifier (or a custom LicenseRef) nor an SPDX license expression.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

@zerothi the tests are passing now, I excluded TBTrans_rep and TBTrans, because they seem to be no longer included with the new version. In addition I disabled the command part of the tests, maybe you can tell me which commands are included in the two packages above so I can remove only those. Finally I was not able to get the nompi version to work.

Thanks!!! :)
Actually, I never did 4.1-b4 since I didn't want to have the default version being a beta release... :(
If this gets added, would installations not use this as the default?
As for tbtrans*. It has moved to Util/TS/TBtrans. But I think I can manage that, the main problem was the other thing.

I tried to use the same changes to build 4.0 but was not able to https://github.com/conda-forge/siesta-feedstock/pull/15

Actually, I never did 4.1-b4 since I didn't want to have the default version being a beta release... :(
If this gets added, would installations not use this as the default?
Yes you are right, I made the mistake to name it 4.1.4 which is based on the requirement of conda to use numeric version names. We could use 4.1.0 and then just increase the build number once the official version is released. Still it would mean that conda users would switch to the beta version.

closes https://github.com/conda-forge/siesta-feedstock/issues/9

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

I once more tried to build it with nompi but that does not work for some reason. So from my side the pull request is no ready to merge, but it is up to you to decide if you want to push a beta release to conda.

I also added myself as a maintainer, then I can help with future releases.

@conda-forge-admin, please rerender

Thanks, this is very welcome! :)
Let me do some changes. :)


website: Avoid CSS @import

Need to flatten the css imports using the pagespeed nginx module.  This change should go in the ortelius/website repo in the conf/pagespeed.conf file.
https://www.modpagespeed.com/doc/filter-flatten-css-imports
gtmetrix output below showing issue

@knatch test notification

Looks good now!


Error with unicorn/rainbow when adding dictionary items

Using the following versions:
Rainbow version 1.1.0-beta03
Rainbow.Core version 1.1.0-beta03
Rainbow.Storage.Sc version 1.1.0-beta03
Rainbow.Storage.Yaml version 1.1.0-beta03
Unicorn version 3.1.0-beta04
Unicorn.Core version 3.1.0-beta04
When selecting Add New Dictionary Entry in sitecore content tree receive the following error:
[ArgumentNullException: Value cannot be null.
Parameter name: source]
System.Linq.Enumerable.Select(IEnumerable1 source, Func2 selector) +5974671
Rainbow.Model.ProxyItem..ctor(IItemData itemToProxy) +605
Rainbow.Storage.SerializationFileSystemTree.WriteItem(IItemData item, String path) +122
Rainbow.Storage.SerializationFileSystemTree.Save(IItemData item) +72
Unicorn.Data.DataProvider.UnicornDataProvider.SerializeItemIfIncluded(IItemData item, String triggerReason) +101
Unicorn.Data.DataProvider.UnicornSqlServerDataProvider.CreateItem(ID itemId, String itemName, ID templateId, ItemDefinition parent, CallContext context) +212
Sitecore.Data.DataProviders.DataProvider.CreateItem(ID itemID, String itemName, ID templateID, ItemDefinition parent, CallContext context, DataProviderCollection providers) +159
Sitecore.Data.DataSource.CreateItem(ID itemID, String itemName, ID templateID, ID parentID) +104
Sitecore.Nexus.Data.DataCommands.CreateItemCommand.Execute(ID itemId, String itemName, ID templateId, Item destination) +500
Sitecore.Data.Engines.DataCommands.CreateItemCommand.DoExecute() +109
Sitecore.Data.Engines.EngineCommand2.Execute() +96    Sitecore.Data.Managers.ItemProvider.DoCreateAndReturnItem(String itemName, Item destination, ID templateId, ID newId) +69    Sitecore.Data.Managers.ItemProvider.CreateItem(String itemName, Item destination, ID templateId, ID newId, SecurityCheck securityCheck) +362    Sitecore.Data.Managers.<>c__DisplayClass13.<CreateItem>b__12() +58    Sitecore.Data.Managers.PipelineBasedItemProvider.ExecuteAndReturnResult(String pipelineName, String pipelineDomain, Func1 pipelineArgsCreator, Func1 fallbackResult) +96    Sitecore.Data.Managers.ItemManager.CreateItem(String itemName, Item destination, ID templateId, ID newId, SecurityCheck securityCheck) +147    Sitecore.Data.Managers.ItemManager.CreateItem(String itemName, Item destination, ID templateId, ID newId) +127    Sitecore.Nexus.Data.DataCommands.AddFromTemplateCommand.(String , Item , ID , ID ) +11    Sitecore.Data.Engines.DataCommands.AddFromTemplateCommand.DoExecute() +116    Sitecore.Data.Engines.EngineCommand2.Execute() +96
Sitecore.Data.Managers.ItemProvider.AddFromTemplate(String itemName, ID templateId, Item destination, ID newId) +375
Sitecore.Data.Managers.<>c__DisplayClass3.b__2() +51
Sitecore.Data.Managers.PipelineBasedItemProvider.ExecuteAndReturnResult(String pipelineName, String pipelineDomain, Func1 pipelineArgsCreator, Func1 fallbackResult) +96
Sitecore.Data.Managers.ItemManager.AddFromTemplate(String itemName, ID templateId, Item destination, ID newItemId) +136
Sitecore.Data.Managers.ItemManager.AddFromTemplate(String itemName, ID templateId, Item destination) +155
Sitecore.Data.Items.Item.Add(String name, TemplateID templateID) +83
Sitecore.Workflows.WorkflowContext.AddItem(String name, TemplateItem template, Item parent) +79
Sitecore.Shell.Framework.Commands.AddMaster.Add(ClientPipelineArgs args) +906
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +128
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +146
Sitecore.Reflection.ReflectionUtil.InvokeMethod(MethodInfo method, Object[] parameters, Object obj) +89
Sitecore.Nexus.Pipelines.NexusPipelineApi.Resume(PipelineArgs args, Pipeline pipeline) +301
Sitecore.Web.UI.Sheer.ClientPage.ResumePipeline() +224
Sitecore.Web.UI.Sheer.ClientPage.OnPreRender(EventArgs e) +779
Sitecore.Shell.Applications.ContentManager.ContentEditorPage.OnPreRender(EventArgs e) +24
System.Web.UI.Control.PreRenderRecursiveInternal() +107
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4171

This appears to be a bigger issue - having problems creating items in general in the sitecore tree.

Hi @devstack have you tried upgrading to the latest 3.1 beta? I've made a number of fixes since 3.1b4, the latest is now 3.1b7

I was not able to reproduce on 3.1b7 - I'm pretty sure that this was an issue that I found back around 3.1b5 and fixed.

I'm using
C:\src\VCWebsite\src\packages\Unicorn.Core.3.1.0-beta07\lib\net45\Unicorn.dll
and do get the issue.
[image: Inline image 1]
On Mon, Dec 21, 2015 at 5:02 PM, Kam Figy<EMAIL_ADDRESS>wrote:

I was not able to reproduce on 3.1b7 - I'm pretty sure that this was an
issue that I found back around 3.1b5 and fixed.
—
Reply to this email directly or view it on GitHub
https://github.com/kamsar/Unicorn/issues/98#issuecomment-166359999.

--
Tom Miller
Director
Devstack Consultancy Ltd
<EMAIL_ADDRESS>+44 7810 387300

I have the same issue on 3.1b7 - I'll see if I can track it down. @kamsar what was the issue in 3.1b5 that was fixed? Maybe its related?

It is likely one of the collections on the item being proxied, unversioned
fields maybe, being null. Odd that I can't reproduce. Will look later. Am
on vacation at the moment :)
On Tue, Dec 22, 2015 at 9:24 AM Richard Seal<EMAIL_ADDRESS>wrote:

I have the same issue on 3.1b7 - I'll see if I can track it down. @kamsar
https://github.com/kamsar what was the issue in 3.1b5 that was fixed?
Maybe its related?
—
Reply to this email directly or view it on GitHub
https://github.com/kamsar/Unicorn/issues/98#issuecomment-166679701.

The error is occurring on this line in ProxyItem.cs
UnversionedFields = itemToProxy.UnversionedFields.Select(language => new ProxyItemLanguage(language)).ToArray();

For some reason the itemToProxy.UnversionedFields is null. Trying to work out why, if its a bad thing and how to cope with it.

It's probably a bug on the default value. I noticed that it came from
CreateItem() in the stack trace, may well be that the constructor for the
proxy cooked up in there is leaving the collection null when it should be
empty.
Thanks for helping debug!
On Wed, Dec 23, 2015 at 10:25 AM, Richard Seal<EMAIL_ADDRESS>wrote:

The error is occurring on this line in ProxyItem.cs
UnversionedFields = itemToProxy.UnversionedFields.Select(language => new ProxyItemLanguage(language)).ToArray();
For some reason the itemToProxy.UnversionedFields is null. Trying to work
out why, if its a bad thing and how to cope with it.
—
Reply to this email directly or view it on GitHub
https://github.com/kamsar/Unicorn/issues/98#issuecomment-166963589.

Thats the bad boy!  The constructor in ProxyItem.cs that sets the Field enumerables to empty lists is not setting the UnversionedFields property
		public ProxyItem(string name, Guid id, Guid parentId, Guid templateId, string path, string databaseName)
		{
			Assert.ArgumentNotNullOrEmpty(name, "name");
			Assert.ArgumentNotNullOrEmpty(path, "path");
			Assert.ArgumentNotNullOrEmpty(databaseName, "databaseName");

			Name = name;
			Id = id;
			ParentId = parentId;
			TemplateId = templateId;
			Path = path;
			DatabaseName = databaseName;
			SharedFields = Enumerable.Empty<IItemFieldValue>();
			Versions = Enumerable.Empty<IItemVersion>();
		}

Looks like this should be added to that:

I'll submit a pull request for it :)

Technically this is an issue with Rainbow, not Unicorn. Also looking at the tests on Rainbow, I think the constructor in FakeItem is masking the issue by setting the property to an empty list if it is null
public FakeItem(
	Guid id = default(Guid),
	string databaseName = "master",
	Guid parentId = default(Guid),
	string path = "/sitecore/content/test item",
	string name = "test item",
	Guid branchId = default(Guid),
	Guid templateId = default(Guid),
	IEnumerable<IItemFieldValue> sharedFields = null,
	IEnumerable<IItemVersion> versions = null,
	string serializedItemId = "0xDEADBEEF",
	IEnumerable<IItemData> children = null,
	IEnumerable<IItemLanguage> unversionedFields = null) : base(name, id, parentId, templateId, path, databaseName)
{
	BranchId = branchId;
	SharedFields = sharedFields ?? new List<IItemFieldValue>();
	Versions = versions ?? new List<IItemVersion>();
	SerializedItemId = serializedItemId;
	UnversionedFields = unversionedFields ?? new List<IItemLanguage>();

	SetProxyChildren(children?.ToArray() ?? new IItemData[0]);
}

Pull request created, https://github.com/kamsar/Rainbow/pull/9 - not sure what to do about the unit tests because of the above comment. @kamsar when you get back, let me know what you think. Enjoy your vacation

PR accepted, thank you. Rainbow 1.1b5 has been pushed to NuGet with the fix.

Wow - that was fast :+1: Awesome, thanks!

Thanks both for helping out with this!
On Wed, Dec 23, 2015 at 7:59 PM, Richard Seal<EMAIL_ADDRESS>wrote:

Wow - that was fast [image: :+1:] Awesome, thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/kamsar/Unicorn/issues/98#issuecomment-166980428.

--
Tom Miller
Director
Devstack Consultancy Ltd
<EMAIL_ADDRESS>+44 7810 387300

This is fixed in 3.1 final.


Callback on font download

I'm using this wonderful font picker to change the font of a canvas element. Unfortunately, the font change is triggered as soon as I pick a new font, therefore, even if it is not completely downloaded, it will be partially applied to my canvas element. (like, half the letters will have the correct font, the other ones will have a fallback browser font).
Is there a way to make sure the font is completely downloaded before using it for anything else ?

The font picker adds fonts to the document using <style> tags, which – compared to <link> tags – unfortunately can't have an onload attribute.
Instead, you could use document.fonts.onloadingdone to get notified whenever a font finishes loading (see this answer on SO).

I am using FontFaceObserver as mentioned in
https://github.com/samuelmeuli/font-picker-react/issues/38
its working great.
Also,
https://github.com/samuelmeuli/font-picker-react/issues/17

How should I implement the FontFaceObserver as mentioned in #38? Do I need to fork this repository? Or is there an easier way?

Thanks alot! Seems to be working now for the most part. Still throws the error after remounting the component whilst the fonts are already loaded from the previous mount (if that makes sense).


Item sometimes randomly be tagged with csController NBT tag

Sometimes some items randomly got tagged with this NBT tags make them unstackable with other items which is very annoying.
I also found somes code in debug.log and lastest.log that might be related
debug.log :
[15thg 82023 15:18:50.460] [Server thread/DEBUG] [net.minecraftforge.common.ForgeHooks/WP]: Gathering id map for writing to world save csController tag test [15thg 82023 15:18:50.469] [Server thread/DEBUG] [net.minecraftforge.common.ForgeHooks/WP]: ID Map collection complete csController tag test
latest.log :
[15thg 82023 15:18:50.422] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[csController tag test]'/minecraft:overworld [15thg 82023 15:18:50.449] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[csController tag test]'/minecraft:the_nether [15thg 82023 15:18:50.454] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[csController tag test]'/minecraft:the_end
Mods list :
bettercombat-forge-1.7.1+1.19
celestisynth-1.19.2-1.0.1
cloth-config-8.3.103-forge
Cucumber-1.19.2-6.0.7
ferritecore-5.0.3-forge
FpsReducer2-forge-1.19.2-2.1
geckolib-forge-1.19-3.1.40
player-animation-lib-forge-1.0.2
OptiFine_1.19.2_HD_U_I2

did you do anything that could potentially cause this problem?

[For English, please refer below]
[Vietnamese here]
Vâng, tác giả đã fix trong code rồi, và tác giả cũng sẽ fix lại những nhãn dư thừa kia trong những bản update sau. Sau khi update và đăng nhập vào thế giới thì bn sẽ có thể stack lại các item bị lỗi với nhau.
[English]
Yes, the author has fixed it in dev, and he is also fix those redundant items tags in future patch builds. These vanilla items should be stack again after you update the mod and login your world.


Feature/swagger doc select

Add Swagger documentation select menu to View Documentation page.

@mauriciovieira or @elnzv Could either of you review this code? Please comment here if you take the responsibility.

@mauriciovieira @elnzv PR still work in progress, don't review yet.

@brylie, what is the status, is it ready to be reviewed and merged?

Looks good, great job, @brylie!


allow to set https as the default scheme

This PR adds a switch to set 'https' as the default scheme for Swagger UI, so that in TLS enabled env, requests issued from Swagger UI will use https automatically.
Release notes
New configs are added for each Pinot component and followed the existing naming convention. By default, http is used as before.

pinot.broker.swagger.default.protocol
pinot.server.swagger.default.protocol
pinot.minion.swagger.default.protocol
controller.query.console.default.protocol

Codecov Report

Merging #8729 (9c05d74) into master (1b3819e) will decrease coverage by 55.43%.
The diff coverage is 33.33%.

@@              Coverage Diff              @@
##             master    #8729       +/-   ##
=============================================
- Coverage     69.66%   14.22%   -55.44%
+ Complexity     4616      168     -4448
=============================================
  Files          1730     1684       -46
  Lines         90341    88372     -1969
  Branches      13442    13227      -215
=============================================
- Hits          62932    12567    -50365
- Misses        23045    74872    +51827
+ Partials       4364      933     -3431

Flag
Coverage Δ

integration1
?

integration2
?

unittests1
?

unittests2
14.22% <33.33%> (-0.06%)
:arrow_down:

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

Impacted Files
Coverage Δ

...va/org/apache/pinot/controller/ControllerConf.java
55.33% <ø> (-1.98%)
:arrow_down:

...apache/pinot/minion/MinionAdminApiApplication.java
0.00% <0.00%> (-91.90%)
:arrow_down:

...va/org/apache/pinot/spi/utils/CommonConstants.java
0.00% <ø> (-21.32%)
:arrow_down:

...pinot/broker/broker/BrokerAdminApiApplication.java
85.10% <50.00%> (-8.08%)
:arrow_down:

.../controller/api/ControllerAdminApiApplication.java
83.87% <50.00%> (-5.96%)
:arrow_down:

...src/main/java/org/apache/pinot/sql/FilterKind.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...ain/java/org/apache/pinot/core/data/table/Key.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...in/java/org/apache/pinot/spi/utils/StringUtil.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../java/org/apache/pinot/spi/utils/BooleanUtils.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../java/org/apache/pinot/core/data/table/Record.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 1356 more

Continue to review full report at Codecov.

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


angular cli with projects assets : root dir not correctly used

Bug or support request summary
Expecting loading scripts from node_modules folder by adding path to "scripts" in angular.json file. File is not found during storybook build and serve but correctly imported on angular app.
Steps to reproduce

Create a new project with angular cli
Add another application to workspace : ng generate application my-other-app
Install a third party library like jquery npm install jquery
Add jquery script to project scripts

{
  "$schema"<EMAIL_ADDRESS>  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "my-other-app": {
      "root": "projects/my-other-app/",
      "sourceRoot": "projects/my-other-app/src",
      "projectType": "application",
      ...
      },
      "architect": {
        "build": {
          ...
          "options": {
            ...
            "scripts": ["node_modules/jquery/dist/jquery.min.js"]
          },
         ...
  },
  "defaultProject": "my-other-app"
}

When running, storybook expects file to exist under projects/my-other-app/node_modules/jquery/dist/jquery.min.js instead of node_modules/jquery/dist/jquery.min.js. This behavior doesn't happen when running angular app.
Please specify which version of Storybook and optionally any affected addons that you're running

@storybook/angular: "4.0.0-alpha.12"

This happens with "styles" as well.
My angular.json
{
  "$schema"<EMAIL_ADDRESS>  "version": 1,
  "newProjectRoot": "",
  "defaultProject": "dashboard-app",
  "projects": {
    "dashboard-app": {
      "root": "apps/dashboard-app/",
      "sourceRoot": "apps/dashboard-app/src",
      "projectType": "application",
      "prefix": "dashboard-app",
      "schematics": {
        "@schematics/angular:component": {
          "styleext": "scss"
        }
      },
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            ...
            "styles": [
              "apps/dashboard-app/src/styles.scss"
            ],
            "scripts": []
          }
	...
}

This config builds with ng build just fine, but when running storybook, with yarn run storybook
ERROR in multi ./apps/dashboard-app/apps/dashboard-app/src/styles.scss
Module not found: Error: Can't resolve 'X:\work\angular\dashboard-app-workspace\apps\dashboard-app\apps\dashboard-app\src\styles.scss' in 'X:\work\angular\dashboard-app-workspace'
 @ multi ./apps/dashboard-app/apps/dashboard-app/src/styles.scss

The storybook webpack settings do not look like they take angular-cli's root path into consideration.

I tossed some crude logging into the @angular/devkit code and see what is likely the culprit
Running an ng-build, the config object passed into getStylesConfig() looks like this
ng build
 { root: 'C:\\work\\angular\\dashboard-app-workspace',
 projectRoot: 'C:\\work\\angular\\dashboard-app-workspace\\apps\\dashboard-app',
 buildOptions:
  { outputPath: 'dist/apps/dashboard-app',
    index: 'apps/dashboard-app/src/index.html',
    main: 'apps/dashboard-app/src/main.ts',
    polyfills: 'apps/dashboard-app/src/polyfills.ts',
    tsConfig: 'apps/dashboard-app/tsconfig.app.json',
    assets: [ [Object], [Object] ],
    styles: [ 'apps/dashboard-app/src/styles.scss' ],
}

but when running a storybook build, the root and projectRoot are different, and I am assuming this is causing @angular/devkit to spit out an inaccurate path for styles (and likely scripts as well)
storybook
{ root: 'apps/dashboard-app/',
  projectRoot: 'C:\\work\\angular\\dashboard-app-workspace',
  supportES2015: false,
  tsConfig: { options: {}, fileNames: [], errors: [] },
  tsConfigPath: 'C:\\work\\angular\\dashboard-app-workspace\\src\\tsconfig.app.json',
  buildOptions:
   { outputPath: 'dist/apps/dashboard-app',
     index: 'apps/dashboard-app/src/index.html',
     main: 'apps/dashboard-app/src/main.ts',
     polyfills: 'apps/dashboard-app/src/polyfills.ts',
     tsConfig: 'apps/dashboard-app/tsconfig.app.json',
     assets: [ [Object], [Object] ],
     styles: [ 'apps/dashboard-app/src/styles.scss' ],
     scripts: [] } }

Would you lile to PR this ?

@igor-dv Perhaps with a little direction. I am a bit concerned about backwards compatibility with a change such as this, and the potential for breaking Angular 5 or previous versions. Does storybook 4.0 desire to remain backward compatible or is its goal to support Angular 6 and greater in the future?

Storybook v4 is a breaking release, it also supports webpack v4, which means it integrates with other tools that also should support webpack v4. That's why we adopted angular-cli v6... So, I assume it can't be backward compatible easily 🤷♂

_< @marshallmick007 Tried replacing that line and i get hun on this unnamed compact pluginTypeError : missing Deps.sume is not a function

matth@DESKTOP-PUQ7U15 MINGW64 ~/WebstormProjects/morningharwood (feature/storybooks)
$ npm run storybook

><EMAIL_ADDRESS>storybook C:\Users\matth\WebstormProjects\morningharwood
> start-storybook -p 9001 -c .storybook

info => Loading angular-cli config.
info @storybook/angular v4.0.0-alpha.15
info
info => Get angular-cli webpack config.
info => Using default webpack setup based on "angular-cli".
 10% building modules 3/3 modules 0 activeℹ ｢wdm｣: wait until bundle finished:
(node:20264) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead              95% emitting unnamed compat pluginTypeError: missingDeps.some is not a function
    at compiler.plugin (C:\Users\matth\WebstormProjects\morningharwood\node_modules\react-dev-utils\WatchMissingNodeModulesPlugin.js:25:23)
    at _err2 (eval at create (C:\Users\matth\WebstormProjects\morningharwood\node_modules\tapable\lib\HookCodeFactory.js:24:12), <anonymous>:33:1)
    at Promise.resolve.then.then.then.then.then.then.then.then.catch.then.then.then (C:\Users\matth\WebstormProjects\morningharwood\node_modules\html-webpack-plugin\index.js:224:11)
    at <anonymous>

I'm on windows >_< any ideas?

Released as 4.0.0-alpha.20


Custom SMTP and Templates

What does this PR do?
RFC for

custom SMTP per project
Custom Email templates
Custom SMS templates

Test Plan
(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)
Related PRs and Issues
(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

[x] I have read the Contributing Guidelines on issues?

It would be awesome to have this merged, moreover would be even better to have it available in AW Cloud in order to send the emails from the project's domain instead of the global<EMAIL_ADDRESS>

@eldadfux can you merge this now or is there something else left to do?


GitHub actions for tests with modified configuration

When running locally, is it only testing with one version of Python and, if so, is this okay (does GitHub Actions still test multiple versions )?

yes, when running locally it only tests with the default python version. When running in github actions, there are three separate builds created with python 3.7, 3.8 and 3.9 and on each builds tox is run against default python version.

Not sure there's any benefit of using tox at the moment if we're only testing with a single python version, but I'm happy with this for now and we can revisit when we've added more tests.
Thank you @faysal-ishtiaq
Closes #23


Cannot get pixi-heven to work with pixi-spine and webpack

Hi everyone!
I'm having a really hard time getting pixi-heaven to work with my app. I followed instructions for pixi-spine and added the following to my webpack config:
{
  actions.setWebpackConfig({
    plugins: [
      new webpack.ProvidePlugin({
        PIXI: 'pixi.js',
      }),
    ],
  })
}

And these are my imports on the file which uses pixi-heaven and pixi-spine:
import * as PIXI from 'pixi.js'
window.PIXI = PIXI
import 'pixi-spine'
import 'pixi-heaven'

When I do the following:
const sprite = new PIXI.Sprite(PIXI.Texture.WHITE)
sprite.convertToHeaven()
sprite.scale = { x: 15, y: 15 }

I get the following error:
Uncaught TypeError: Cannot read property '0' of null
    at BatchPlugin.packInterleavedGeometry (pixi-heaven.js:916)
    at<EMAIL_ADDRESS>(core.es.js:10524)
    at<EMAIL_ADDRESS>(core.es.js:10486)
    at<EMAIL_ADDRESS>(core.es.js:10600)
    at<EMAIL_ADDRESS>(core.es.js:10623)
    at<EMAIL_ADDRESS>(core.es.js:4814)
    at<EMAIL_ADDRESS>(sprite.es.js:347)
    at<EMAIL_ADDRESS>(display.es.js:1534)
    at<EMAIL_ADDRESS>(display.es.js:1537)
    at<EMAIL_ADDRESS>(display.es.js:1537)
    at<EMAIL_ADDRESS>(display.es.js:1537)
    at<EMAIL_ADDRESS>(display.es.js:1537)
    at<EMAIL_ADDRESS>(display.es.js:1537)
    at<EMAIL_ADDRESS>(core.es.js:9863)
    at<EMAIL_ADDRESS>(app.es.js:95)
    at<EMAIL_ADDRESS>(ticker.es.js:129)
    at<EMAIL_ADDRESS>(ticker.es.js:584)
    at Ticker._tick (ticker.es.js:334)

If I try the following instead, sprite doesn't render the Sprite and I get no errors.
var sprite = new PIXI.heaven.Sprite(PIXI.Texture.WHITE)
sprite.scale = { x: 15, y: 15 }

To discard the option I'm doing something else incorrectly, I'm trying the same without pixi-heaven and it works fine.
I'm using the latest versions of all the mentioned modules. Any help would be greatly appreciated!
Thanks!
Santiago

Which version of pixi is it?
It works fine with latest dev, with 5.3.3, you can test different versions here: https://pixijs.io/examples/?v=dev#/plugin-heaven/invert.js

Oh wait, it made that:
const bunny = new PIXI.Sprite(PIXI.Texture.from('examples/assets/bunny.png'));
bunny.convertToHeaven();

and it doesnt work. Somethign is broken in convertion method. I'll look at it now

@ivanpopelyshev Thanks a lot! let me know if I can help out with anything!

https://github.com/gameofbombs/pixi-heaven/commit/07d91797ef0cfefee511b85bc09bd802c372f3b4
That's what i had to change.

call _onTextureUpdate after conversion because _uvs are updated in it and not in calculateVertices in heaven sprite.
Corner-case with texture that is updated after conversion,

0.2.1 at npm , or dist/pixi-heaven.js here, take it.

It's all working now! Thank you very much!

Thanks for the report!


Cursor() does not support multiple sqlsvr models in iterator callback

Laravel Version: 6.7.0
PHP Version: 7.3.12
Database Driver & Version:

...
'connections' => [
     'sybase' => [
          'driver' => 'sqlsrv'
          ...
     ],
],
...

Description:
When using the lazy collection cursor() method with a model using a sqlsrv connection (sybase in my case), the each() iterator will exit after a model using the same connection is called. This does not happen with a mysql based driver.
Steps To Reproduce:
Connection Setup
database.php
'connections' => [
     'sybase' => [
          'driver' => 'sqlsrv'
          ...
     ],
     'mysql' => [
          'driver' => 'mysql'
          ...
     ],
],

Working Example With mysql Driver
MysqlUser.php
<?php

namespace App\User;

use Illuminate\Database\Eloquent\Model;

class MysqlUser extends Model
{
    protected $connection = 'mysql';

    protected $table = 'users';
}

MysqlCar.php
<?php

namespace App\Car;

use Illuminate\Database\Eloquent\Model;

class MysqlCar extends Model
{
    protected $connection = 'mysql';

    protected $table = 'cars';
}

Runtime
// Prints 0, 1, 2, 3, 4
MysqlUser::take(5)->cursor()
->each(function ($user, $key) {
    MysqlCar::first();
    dump($key);
});

Failing Example With sqlsrv Driver
SybaseUser.php
<?php

namespace App\User;

use Illuminate\Database\Eloquent\Model;

class SybaseUser extends Model
{
    protected $connection = 'sybase';

    protected $table = 'users';
}

SybaseCar.php
<?php

namespace App\Car;

use Illuminate\Database\Eloquent\Model;

class SybaseCar extends Model
{
    protected $connection = 'sybase';

    protected $table = 'cars';
}

Runtime
// Only prints 0
SybaseUser::take(5)->cursor()
->each(function ($user, $key) {
    SybaseCar::first();
    dump($key);
});

Please fill out your DB driver and version.

I've just run into this exact issue today.


Helm does not handle template errors

Steps to reproduce
helm create bar
echo '{{ .Values.bad.doh }}' > bar/templates/foo.yaml
helm template ./bar/

Expected result
Helm should return error and exist with non-zero exit code, as in previous versions:
1 ✗ (43.5ms) 09:45:19 invidian@dellxps15mateusz /tmp $ ./foo/linux-amd64/helm version
version.BuildInfo{Version:"v3.0.3", GitCommit:"ac925eb7279f4a6955df663a0128044a8a6b7593", GitTreeState:"clean", GoVersion:"go1.13.6"}
0 ✓ (52.6ms) 09:47:39 invidian@dellxps15mateusz /tmp $ ./foo/linux-amd64/helm template ./bar/
Error: template: bar/templates/foo.yaml:1:10: executing "bar/templates/foo.yaml" at <.Values.bad.doh>: nil pointer evaluating interface {}.doh
1 ✗ (52.0ms) 09:47:41 invidian@dellxps15mateusz /tmp $

Actual output
Helm does not print any warning and exits gracefully:
1 ✗ (52.0ms) 09:47:41 invidian@dellxps15mateusz /tmp $ helm version
version.BuildInfo{Version:"v3.1.0", GitCommit:"b29d20baf09943e134c2fa5e1e1cab3bf93315fa", GitTreeState:"clean", GoVersion:"go1.13.7"}
0 ✓ (49.1ms) 09:47:53 invidian@dellxps15mateusz /tmp $ helm template ./bar/

0 ✓ (49.6ms) 09:47:55 invidian@dellxps15mateusz /tmp $

Output of helm version:
version.BuildInfo{Version:"v3.1.0", GitCommit:"b29d20baf09943e134c2fa5e1e1cab3bf93315fa", GitTreeState:"clean", GoVersion:"go1.13.7"}

From bisecting, it seems to be caused by https://github.com/helm/helm/commit/8e088fc4a2a616354872b21d9ceb84e9d55a40de.

@invidian Looking at this I am not fully understanding why foo chart is created but you are creating a template in bar. Maybe you could explain this to better understand the issue.
FYI, I tested as follows with the latest in master:
$ helm2 create chrt-7593
Creating chrt-7593

$ echo '{{ .Values.bad.doh }}' > chrt-7593/templates/foo.yaml

$ cat chrt-7593/templates/foo.yaml
{{ .Values.bad.doh }}

$ helm template chrt-7593 -s ./templates/foo.yaml
Error: template: chrt-7593/templates/foo.yaml:1:10: executing "chrt-7593/templates/foo.yaml" at <.Values.bad.doh>: nil pointer evaluating interface {}.doh

$ helm template chrt-7593 chrt-7593/
Error: template: chrt-7593/templates/foo.yaml:1:10: executing "chrt-7593/templates/foo.yaml" at <.Values.bad.doh>: nil pointer evaluating interface {}.doh

@invidian Looking at this I am not fully understanding why foo chart is created but you are creating a template in bar. Maybe you could explain this to better understand the issue.

Oops, it's a typo. My intention was of course to create chart bar. Fixed now.

@hickeyma I can't reproduce the commands you posted either. Why do you use helm and helm2 binaries? Can you post output of version subcommand for both binaries?

@invidian Cab you see any differences between our test (bar the output)?

Good catch.  I am running different versions of Helm on a system.
I can reproduce this now when I run the latest Helm version from master (was running old version in previous comment):
$ helm version
version.BuildInfo{Version:"v3.0.2", GitCommit:"19e47ee3283ae98139d98460de796c1be1e3975f", GitTreeState:"clean", GoVersion:"go1.13.5"}

$ helm template chrt-7593 chrt-7593/
Error: template: chrt-7593/templates/foo.yaml:1:10: executing "chrt-7593/templates/foo.yaml" at <.Values.bad.doh>: nil pointer evaluating interface {}.doh

$ helm3 version
version.BuildInfo{Version:"v3.1+unreleased", GitCommit:"722042e85256dfded5d80c5fa29ed252c433cd5b", GitTreeState:"clean", GoVersion:"go1.13.4"}

$ helm3 template chrt-7593 chrt-7593/

Setting this as a bug.

Working on a fix. Will push when ready.

@invidian PR #7596 ready for review

Closed as PR #7596. Try it out @invidian and see if it works for you. Thanks for finding this bug.

It works well now, thanks @hickeyma for fixing it quickly! When do you plan next release, which will include this fix?

@invidian Not sure but will discuss it this week with other maintainers.


Using another android device as client

Thanks for this amazing project.
Is it possible to mirror one android screen to another android device using scrcpy-adb connect method? I found adb clients compiled for arm devices and also java implementation of adb client on github.  What are your thoughts?

As is, the client would require SDL and FFmpeg ARM versions, and wrap SDL stuff into an Android application.
But IMO it would be better to write a specific Android client, which would use the Android APIs instead of SDL and FFmpeg.

Hi @rom1v !
I am working on this. Is it okay to use the name scrcpy for the app?

@tailcode The name should not be confusing about what application it is, so the very same name is not a good idea.
Maybe scrcpy-something, or another "wordplay".

@rom1v Thank you. Considering basic functionality of scrcpy, I think my app is ready but not perfect. This is my first app. I want you to take a look at my app and provide me with suggestions. So if you are okay with it please provide me with an email or any other medium to send the apk. And if possible  kindly suggest some "wordplay" for the app name.

Considering basic functionality of scrcpy, I think my app is ready but not perfect. This is my first app. I want you to take a look at my app and provide me with suggestions. So if you are okay

Sure. Publish the code somewhere and I'll take a look when I have some time :+1:

@rom1v Here is the code. Thanks in advance.
https://gitlab.com/las2mile/scrcpy-android

@tailcode Thank you very much. Seems great. :+1: I will definitely check when I have some more time.
For now, just one little remark: you could use adblib as a dependency instead of a copy-paste of their source code:
compile 'com.tananaev:adblib:1.2'

@tailcode Hey, I just tested, that works great :+1: Good job!
Is it possible to quit from the client? (I only see the remote fullscreen, so I can't control the client device)
Also, if the devices have a different aspect ratio (typically if I force the navbar to be displayed), the video aspect-ratio is not preserved.

When I click on an image or video thumbnail, instead of opening, they are being selected.

I think there is a similar problem with VLC: if I click quickly while a video is playing, it should display the control bar, but it does not.

@rom1v  Thank you very much for the feedback.

Is it possible to quit from the client?

Yes, when you exit from the app, socket pipe breaks and server terminates. Cleaning of remote device is handled in server code.

I only see the remote fullscreen, so I can't control the client device

You mean input events are not working ? I have tested on few devices and they worked for me. Please let me know what device you are using and I will try to test on it if I can find it in my circle.
One hurdle I have encountered on a Samsung device is, it doesn't have curl or wget binaries in it and the server cannot be downloaded to it by the current implementation. I don't know if all samsung devices are so. I have worked on a new method to push server to remote device which I am testing. I will push them to git once I think it is ready.

when you exit from the app

How do you do that? The whole client screen displays the remote screen.

You mean input events are not working ?

Yes, input events are workings: they are forwarded to the remote device.

srccpy-android works really well for me, especially after changing my phone's aspect ratio to match my tablet's with adb shell wm size 1080x1440.
Maybe a link could be added in scrcpy's README?

@tailcode thanks for android client, having problem with landscape device, more info:https://gitlab.com/las2mile/scrcpy-android/issues/3

It works only wiressly, no USB OTG support ?
Thanks.

Any APK for scrcpy-android? Would love to try it out.

@parkerlreed
https://gitlab.com/las2mile/scrcpy-android/raw/master/release/scrcpy-release.apk
It works pretty well for me over wifi, but would have lower latency I think if USB connections were supported.

Cheers! Working quite well with Pixel 3 XL host and Fire HD 8 as client

Tried with Xiaomi Mi 9 and Nvidia Shield TV.   No dice.  It seems to connect but it's just a blank screen.

Is it possible to choose custom resolution or lunch mirror screen from shell (probably for tasker use).
I have broken s8+ which is main device for nexus 7 2013 which is build in in my car dashboard. Both has 1000x1920 resolution and I can choose 1080x1920 inside scrcpy-android-client and my tap to screen doesn't recognize proper.
Besides that, there is no lag, quality is avesome. Good work and thank you a lot for your work

@dudinr1
you can try add/change resolution before build apk in:
app/src/main/res/values/strings.xml

Nice solution for Android Client app, can I clone this one and modify it by my application?

Can I fork this repository to maintain this one, I am very interest on it.

Is there still development on this?

Is there still development on this?

This is not the proper place for this.
Better check out here: gitlab.com/las2mile/scrcpy-android

the application freezes while connecting, cannot display, tried on Galaxy S8

Working, tested on Galaxy S8 :)

Dear All
Sorry for the delayed response. I am aware this is not proper place for this but scrcpy-android started here.
I am glad that my tiny project is being usable to someone.
I am not sure if I will continue on the project. Interested people can fork and work on it. I believe the code is simple and straight forward. I am not sure which license applies for it.
Also there seems adb wireless implementation changes coming in Android 11 Dev previews. I will keep an eye on it.
Again I would like to thank @rom1v for scrcpy project.

Very respectable response and code can almost always be better.     Java is my coffee but I'll have a deep dive and use my external thought process to help if possible.

Dear All
Sorry for the delayed response. I am aware this is not proper place for this but scrcpy-android started here.
I am glad that my tiny project is being usable to someone.
I am not sure if I will continue on the project. Interested people can fork and work on it. I believe the code is simple and straight forward. I am not sure which license applies for it.
Also there seems adb wireless implementation changes coming in Android 11 Dev previews. I will keep an eye on it.
Again I would like to thank @rom1v for scrcpy project.

Thanks for your work, I'm very interested in it. Maybe you could decide on a license, otherwise it's kind of problematic to use and work on your code. You could just copy license template from https://opensource.org/licenses (for exmaple GPL or MIT).

An Android build with the new multi-touch support would be fantastic.

@rom1v Here is the code. Thanks in advance.
https://gitlab.com/las2mile/scrcpy-android

Don't working on my devices, when i hit start the app hangs and don't connect.
I tried on android 7, 8 and 10

@rom1v Here is the code. Thanks in advance.
https://gitlab.com/las2mile/scrcpy-android

Don't working on my devices, when i hit start the app hangs and don't connect.
I tried on android 7, 8 and 10

Same thing here too

Works for me when connecting to some devices but not others. I hope someone finds the problem and we can update this as I find this app incredibly useful

@rom1v Can we count on an official version of the scrcpy client for android? This version would complete this amazing project in its entirety.

I have pushed an update to scrcpy-android. Most of the issues I believe are worked out. Mirrors devices upto android 10. Android 11 wireless debugging needs to be worked out.

thx! finaly forking with phone as remote to car-7"-landscape-radio :) coordinate ok, only i add 1024x600 resolution do strings.xml
but is little problem with tap, sometime is tap registered as "tap and hold" and is need close/reopen app, also when phone is sleeped, app keep black and is need to reopen.... anyway thx again :)

Dear All
I have pushed an update to scrcpy-android. Most of the issues I believe are worked out. Mirrors devices upto android 10. Android 11 wireless debugging needs to be worked out.

It now works flawlessly for me. Thank you so much for this @tailcode.

Latest version is 2.0 ?

Hrm, v2 is not working for me. I get an error in the app "Network OR ADB connection failed", and then it crashes the remote adb/tcp server so i can't even connect via desktop anymore ?

Using v2.0 but it does not seem to be working with some devices (eg, my galaxy note 4 edge on android 6.0.1), where desktop app works fine. Error/toast in the app shows "Network OR ADB connection failed"

@tailcode Any updates for android 11? Seems like the port changes every time and the app listens the ip address connection using 5555 port and in android 11 that is not the case. Anyone knows how to fix this? I know I can add stuff in build.prop to make the port always 5555 but my phone has no screen so I can't root it with magisk.... How hard is it to add a field to specifiy the port I've seen old apps that send sensor data to control driving games and they had ip and port fileds.

Amazing project! I will try it out.
A few people asked but it was never answered: why doesn't it support connection via USB? Or does it (I only read about wireless so far)? Maybe USB is not faster?
Off Topic: scrcpy allows you to control your Android device from Win/OSX/Linux. scrcpy-android allows you to control your Android device from a second Android device.
Wouldn't it make sense to allow controlling a Win/OSX/Linux PC from an Android device? This is still missing and I have tons of use cases. VNC & Co. has just worse performance compared to scrcpy.
Btw, does somebody have a few links detailing how scrcpy works internally? What protocols are used to do the connection and data transfer both via USB and Wifi? What tricks are used to make it faster then VNC?
Thanks!

Btw, does somebody have a few links detailing how scrcpy works internally? What protocols are used to do the connection and data transfer both via USB and Wifi?

https://github.com/Genymobile/scrcpy/blob/master/DEVELOP.md
https://blog.rom1v.com/2018/03/introducing-scrcpy/

Wouldn't it make sense to allow controlling a Win/OSX/Linux PC from an Android device? This is still missing and I have tons of use cases. VNC & Co. has just worse performance compared to scrcpy.

Not for scrcpy, IMO

Wouldn't it make sense to allow controlling a Win/OSX/Linux PC from an Android device? This is still missing and I have tons of use cases. VNC & Co. has just worse performance compared to scrcpy.

Not for scrcpy, IMO Also, you can already do that with some programs such as TeamViewer or Anydesk

Can you quickly explain why it wouldn't make sense? Technically?
Proprietary alternatives exist in every niche of software...doesn't mean we should want open source alternatives.

Controlling windows remotely is a huge "can of worms". Lots of COM to connect to and hoops to jump through.
A Linux stack is not as complex but would require supporting multiple means to achieve it
(don't quote me on this because this is 2nd hand information) A MacOS cannot be controlled by software that isn't signed and, in some way, "approved" by Apple (same kind of signing windows already enforces for some things).
On Android, the means are straightforward-enough and there's almost one way that works in nearly all phones.
It's a difference between bloated software filled with bugs and no time to fix them and small software which solves 1 "small" problem in its essence.
If you still think it's easy to make the opposite while it hasn't been solved yet in open-source such as placing a VNC server on the OS and having a VNC client on your android phone, then feel free to bring a counter-argument.

Can you quickly explain why it wouldn't make sense? Technically?

Technically, that would be a totally different program, with almost nothing in common with scrcpy. So it could be a separate software.

Controlling windows remotely is a huge "can of worms". Lots of COM to connect to and hoops to jump through. A Linux stack is not as complex but would require supporting multiple means to achieve it (don't quote me on this because this is 2nd hand information) A MacOS cannot be controlled by software that isn't signed and, in some way, "approved" by Apple (same kind of signing windows already enforces for some things).
On Android, the means are straightforward-enough and there's almost one way that works in nearly all phones.
It's a difference between bloated software filled with bugs and no time to fix them and small software which solves 1 "small" problem in its essence.
If you still think it's easy to make the opposite while it hasn't been solved yet in open-source such as placing a VNC server on the OS and having a VNC client on your android phone, then feel free to bring a counter-argument.

Thanks for the explanation - I really was just curious as I have no clue. What is the best existing solution (performance both via Wifi and direct USB tethering) using Linux on an Android client? What is the best open source solution?

@eGit Which display server you use? If you don't know, which distro?

I use both X11 and Wayland on different machines. In the short run X11 is more relevant but soon Wayland will probably be the default.

For X11, I use x11vnc (available both in apt and pacman package managers).
For Wayland, we probably have to wait for pipewire to be more mature because without it, it's very complicated to have the images of the desktop so it can be remotely controlled.

Thanks. I will check it out. Happy for more suggestions.

Controlling windows remotely is a huge "can of worms". Lots of COM to connect to and hoops to jump through. A Linux stack is not as complex but would require supporting multiple means to achieve it (don't quote me on this because this is 2nd hand information) A MacOS cannot be controlled by software that isn't signed and, in some way, "approved" by Apple (same kind of signing windows already enforces for some things).
On Android, the means are straightforward-enough and there's almost one way that works in nearly all phones.
It's a difference between bloated software filled with bugs and no time to fix them and small software which solves 1 "small" problem in its essence.
If you still think it's easy to make the opposite while it hasn't been solved yet in open-source such as placing a VNC server on the OS and having a VNC client on your android phone, then feel free to bring a counter-argument.

Thanks for the explanation - I really was just curious as I have no clue. What is the best existing solution (performance both via Wifi and direct USB tethering) using Linux on an Android client? What is the best open source solution?

https://github.com/kokoko3k/ssh-rdp or https://github.com/loki-47-6F-64/sunshine , both support kmsgrab+vaapi, which significant improve experience.

Thank you @rom1v! Hi @tailcode, you've made a wonderful project, and I managed to mirror my android 10 screen cast to android 11!
"Mirrors devices upto android 10. Android 11 wireless debugging needs to be worked out."
Since you've mentioned to work it out on android 11 screen cast, I wonder have it sone yet? I observed the project and found there's server along side with app, and I wonder if it's possible to using the cast from android 11 above and forward them to port 5555? Is it possible?

This issue has been open for almost 2 years. I hope we approach towards a resolution soon.

There are no plan to develop and maintain an Android client of scrcpy. On #100, a user developed a prototype based on an old version that you can test.

Wouldn't it make sense to allow controlling a Win/OSX/Linux PC from an Android device?

Chrome Remote Desktop app works perfectly for this

Maybe also rustdesk works also but I'm not sure about the server part of the process...

@rom1v Thank you. Considering basic functionality of scrcpy, I think my app is ready but not perfect. This is my first app. I want you to take a look at my app and provide me with suggestions. So if you are okay with it please provide me with an email or any other medium to send the apk. And if possible kindly suggest some "wordplay" for the app name.

Hi, i have tryed your app and work perfectly !!
Can i ask you to add a change for cropyng the screen, ? I am using it to stream VR headset to a tablet but i see the image (eye) so i need that scrcpy start but with a command argument -c 1000:1000:110:220 to have only one screen not 2 binocular image.

Can't believe this hasn't been mentioned. WebADB includes a port of scrcpy that you can use straight from a web browser.
https://yume-chan.github.io/ya-webadb/

Example using Quest 2 and termux on the client device

And cropping

@parkerlreed: thanks for pointing to the webdemo of ya-webadb!
Just to highlight again what is not directly apparent from those screenshots: ya-webadb allows using scrcpy (and more) over the USB cable to another Android device! That's what I was desperately looking for (i.e., not needing any network connection whatsoever, apart from initially loading the demo). It's extremely responsive (low latency) with high quality—it seems the copied screen is from the same device. Best mirroring solution so far.
Kudos to @yume-chan.

Can you share how you manage to connect two phones via USB cable? Are you using ya-webadb via browser? Is there a way to run it locally not from browser.

@bladyle: Yes, exactly: I used the mobile browser and surfed to yume-chan.github.io/ya-webadb/scrcpy. Not sure how it should run without a browser. 🤷♂
Connect both devices by USB (USB Debugging has to be enabled & set up on the other phone), and connect them via ya-webadb's interface.

Tip: For the connection to work, make sure that your mobile browser supports WebUSB. For instance, on an older phone, I had to first update Android WebView to a fairly recent version before it worked.

@mherrmann3 Thanks, manage to connect two phone, but still as you wrote you need newer phone with supported browser.

Would it be possible to create an official fundraiser for @rom1v to add an Android client?
Looking at the fact that there is a lot of interest, only 10 USD from 100 people would be enough to collect an interesting amount. It's $1,000, but it's possible more people would have cashed out or more.
I myself would very much like to donate $10 to support the development of this wonderful project.
A huge request from me is that the creator of the collection is @rom1v as the trusted owner of this product. I saw that there are ready projects that enable such fundraising that are integrated with github.

Genymobile's current Linux version (at this date, v2.1.1) is ported to Android in termux-x11. After initially "authorizing -- always Allow" the Android server on the Android client device (with USB cable), you can use either USB or TCPIP (TCP enables remote connections).  I find that a cellular IPv6 connection is most reliable for remote handling, because it disregards potential issues with router forwarding (accordingly, an important Developer option in Android 13|14 on the client is "Mobile data always active", alongside "Disable adb authorization timeout", etc.).
With tigervnc installed and initialized as "vncserver -localhost", xfce4 as my x11 Desktop, and the RealVNC Viewer app connected to "<IP_ADDRESS>:5901", in xfce's Terminal Emulator issue:
termux-adb connect [$client_IP_address]:$port (port usually 5555)   (brackets [ ] for IPv6 only!)
scrcpy --stay-awake --time-limit=0 --serial [$client_IP]:$port >/dev/null &
It works: audio, everything ...
For a remote connection, the "trick" (and the rub) is to learn or know the client's IP address! In practice, assuming both Android devices are truly mobile (acquiring short-term IP addresses), the client must report (using http, curl, wget, ssh, etc) its current address(es) periodically to a third party device with a known or static IP, mutually accessible by both server and client. For example, the third party might employ a simple PHP routine (using, e.g., $_SERVER["REMOTE_ADDR"]) to detect the address of an incoming connection, store it in array, and report it if queried. If server wants to use the client's cellular address, an unrooted,client must disable WiFi; if rooted, the client can detect it's IPv6 cellular address from rmnet in "ifconfig -S" and post that to the third party, while WiFi remains "up".

Hello,
Any news on this ?
Thanks

@rom1v Here is the code. Thanks in advance. https://gitlab.com/las2mile/scrcpy-android

@tailcode I've been using your app and it works flawlessly, can't thank you enough for building this. I use it to remotely connect to my another android device within the same network.
I have noticed an issue though - sometimes while I'm away from home (the other android is a stay-at-home android device), I want to remotely connect and control it from my phone while on LTE/4G/5G - using Tailscale I was able to connect both devices in same network but entering the tailscale IPv4 address in your app opens up a blank black screen and nothing more. Can you please help with this? Thanks in advance!

@rom1v Here is the code. Thanks in advance. https://gitlab.com/las2mile/scrcpy-android

Thank you! Is there a way to specify the display id?

@rom1v Here is the code. Thanks in advance. https://gitlab.com/las2mile/scrcpy-android

@tailcode I've been using your app and it works flawlessly, can't thank you enough for building this. I use it to remotely connect to my another android device within the same network.
I have noticed an issue though - sometimes while I'm away from home (the other android is a stay-at-home android device), I want to remotely connect and control it from my phone while on LTE/4G/5G - using Tailscale I was able to connect both devices in same network but entering the tailscale IPv4 address in your app opens up a blank black screen and nothing more. Can you please help with this? Thanks in advance!

I have a similar issue. Connecting from the same WiFi network works fine, but if I connect my phone to Zerotier while on cellular data and try to connect via a Raspberry Pi also connected to Zerotier and on the same network as the device I want to connect to I only get a black screen. Pinging the device from my phone works though, and with the same setup I can successfully connect from my PC using the desktop scrcpy,so it must be some problem with the scrcpy-android app.

@tailcode I was unable to connect to my Pixel 7 using your app. Got the authorization prompt on the host and on the client a black screen with an oscillating º symbol. I went to ensure I could connect over WiFi from my desktop and found that I needed to update scrcpy to support Android 14. I wonder if the same is true for your Android app? Are you able to update please? Thank you.

https://github.com/zwc456baby/ScrcpyForAndroid

截图看起来不错，但没有源代码？考虑到应用程序的性质，我需要一些保证才能试用，而一条只包含链接而没有介绍或作者信息的评论并不能提供这些保证😅
…
-------- 原始消息 --------
2024 年 10 月 21 日 22:51，zwc 写道： https://github.com/zwc456baby/ScrcpyForAndroid — 直接回复此电子邮件、[在 GitHub 上查看]( #100 (评论) ) 或 退订。您收到此邮件是因为您发表了评论。消息<EMAIL_ADDRESS>
I am a developer. I have a lot of old devices at home. I hope to be able to control them remotely at any time, but I couldn't find a suitable Android client, so I developed this software myself. In addition, I may not be able to provide other guarantees. . .
https://github.com/zwc456baby/ScrcpyForAndroid

Screenshot looks nice, but no source code ? Given the nature of the app I'd need some assurances before trying it out, which a comment containing just a link with no introduction or author information does't provide 😅
…
-------- Original Message --------
On 21/10/2024 22:51, zwc wrote: https://github.com/zwc456baby/ScrcpyForAndroid — Reply to this email directly, [view it on GitHub](#100 (comment)), or unsubscribe. You are receiving this because you commented.Message ID: @.***>

I deleted my reply before because I didn't know whether to put my software here

Screenshot looks nice, but no source code ? Given the nature of the app I'd need some assurances before trying it out, which a comment containing just a link with no introduction or author information does't provide 😅
…
-------- Original Message --------
On 21/10/2024 22:51, zwc wrote: https://github.com/zwc456baby/ScrcpyForAndroid — Reply to this email directly, [view it on GitHub](#100 (comment)), or unsubscribe. You are receiving this because you commented.Message ID: @.***>

Sure it's entirely up to you whether to use it or not

i dont think its a pixel exclusive feature but i exclusively use a pixel so i cant say 100.  ur prolly aware  the native android system , and to a larger extent the lens app can spekka da engrish, but if you actually install the full google transtlate app from the play store and just give it all the "requested" permissions (mainly draw over), it has the ability to translate all of that as a self correcting overlay, in an attempt to make the app functionally as close as possible to a native language app.  it can allowing you to enjoy boosting on up to 50 percent more efficiencies with c;lose to 90 percent less gobbly gook leaking precious photons.  it like the korean saying the  koreans over there in korea say, its as easy as a itchy-knee, ill tell you hwat.

Why not just use the one posted on github? It works fine from what I've seen and doesn't have any crazy permissions or the like. https://github.com/Genymobile/scrcpy/issues/100#issuecomment-2428162809

截图看起来不错，但没有源代码？考虑到应用程序的性质，我需要一些保证才能试用，而一条只包含链接而没有介绍或作者信息的评论并不能提供这些保证😅
…
-------- 原始消息 --------
2024 年 10 月 21 日 22:51，zwc 写道： https://github.com/zwc456baby/ScrcpyForAndroid — 直接回复此电子邮件、[在 GitHub 上查看]( #100 (评论) ) 或 退订。您收到此邮件是因为您发表了评论。消息<EMAIL_ADDRESS>
I am a developer. I have a lot of old devices at home. I hope to be able to control them remotely at any time, but I couldn't find a suitable Android client, so I developed this software myself. In addition, I may not be able to provide other guarantees. . .
https://github.com/zwc456baby/ScrcpyForAndroid

Thank you this is working well! Only thing missing seems to be multi touch but either way great to have another option available.

Why not just use the one posted on github? It works fine from what I've seen and doesn't have any crazy permissions or the like. https://github.com/Genymobile/scrcpy/issues/100#issuecomment-2428162809

The one posted on github does not provide the source code. Not requiring crazy permissions on the host is not a sign of security, as the app gains adb access to the target.
So, while it may seem safe for the device that you use to remote-from, it may not be safe for the device that you remote-to.


Issue/Pull dependencies do not work

look like gitea >= 1.13.0; gitea < 1.14.0 is affected
-> if you type text into search field no issues/pulls are displayed to select
-> JS does not hit the API to get issues :/

If it affected v1.13.0, I think we should move milestone to v1.13.3

From gitea chat what I came to:
Gitea Version: 1.12.6  This one shows me only #20 and up.
[20:35]
@6543 search by name does not work either. Like it was limited to some number of entries to check. No idea. For example load last 10 to memory, then filter from these 10 matching elements.
[20:37]
@6543 Pattern seems to be, it only shows searches from these, that are visible on 1st page of issues.
On repo1 where I have on 1st page issues #18 and up (#19 is closed) and it shows #18 and up. without #19
On repo2 where on first page i have #20 and up visible, only these are searchable
So it seems to be bound only to 1st page of issues somehow

sqlite + 1.14.0+dev-765-g42118c6bc works ...

OK I just tested on 1.13.0+30-g205be63bc
On the issues page this works. On pulls page this works.
(Chromium linux)

There is a minimum number of letters required to make it do a search - perhaps this was the issue?

As I cannot reproduce I'm gonna unmilestone and mark it as needs-feedback.

@zeripath  https://try.gitea.io/seigieu/test/issues/23
On this one, I currently cannot even search for issues
https://youtu.be/c_msyXXHD2I

https://youtu.be/iJhSqSpA0X4
Here is movie of my instance. 1.12.6 currently. Cant select any from second page

@seigieu witch browser & OS do you use?

Could you add<EMAIL_ADDRESS>to that repository as a writing collaborator so I can test.
That the number of issues is >20 makes me suspicious it's a paging issue but I'm not certain.

Ok your second video looks exactly like a paging issue, does typing the issue in to the search box reveal the issues?
In your first video try.gitea.io looks like it's running very slow indeed and I suspect that the API call to list the issues hasn't returned by the time you're expecting it to have and our UI doesn't have any marker to show that it's doing a search.

@6543
Linux Firefox (newest) also Chromium. Same effect.
@zeripath i get  "User does not exist" on try.gitea.com.
If you mean my repository I cannot route it to world. It's only available in LAN.
(after some testing...)
But when I tested it more to look for issue. Search seems to work. But it searches ONLY for whole words.
If i type propa it will not look for popragation etc. Have to type propagation literally for it to search just fine.
Typing #33 have found 33 string in 2020-10-21 13:02:33 text line, but not issue #33.
I'm not sure if I didn't get confused, since I was 100% sure I can search issues by #33 and partial words etc.
And for pagination part. Pagination issue seems to be present only when I click and scroll down (not sure if its feature or issue now. May be feature to limit to latest entries).
try.gitea.com - yes, its running very slow. checked in network tab and its a long loading issue.

I meant on the try.gitea.io repository you'd uploaded.
In regards to exact searching #14694 should help there.
I'll look at the rest of your comments tomorrow. Sorry I didn't get to this today.

I think in part some of this issue is related to #12827

Looking at try.gitea.io it appears that the improvement from 15179 could actually be sufficient to close this issue! Although I would still argue that the API is still too non-performant.

let it open

close in favour of #12827


What is the internal method to play audio in hfp_hf? (IDFGH-13872)

Is your feature request related to a problem?
No response
Describe the solution you'd like.
Hello,
I am trying to create something similar to a Bluetooth answering machine using hfp_hf. The main function would be to automatically answer calls from my Android phone and play a greeting message stored in a WAV file on the SD card connected to the ESP32. The message will be played to the caller as if someone is speaking into the microphone, and immediately after playing the message, the call will be terminated.
I have already managed to automatically answer the call and initialize the SD card in the ESP32 code, but I have not found a method to play the 'greeting.wav' file for the caller.
Since the project is only about automatically answering, playing the greeting, and hanging up the call, I am trying to keep it as simple as possible by only using the ESP32 and an SD card module.
Is there a method I can use to play 'greeting.wav' within the ESP32 with hfp_hf so that the caller can hear it right after the code answers the call, without using any external peripherals?
Describe alternatives you've considered.
No response
Additional context.
No response

@Stewart-Anubis
/**
* @brief           HFP client outgoing data callback function, the callback is useful in case of
*                  Voice Over HCI. Once audio connection is set up and the application layer has
*                  prepared data to send, the lower layer will call this function to read data
*                  and then send. This callback is supposed to be implemented as non-blocking,
*                  and if data is not enough, return value 0 is supposed.
*
* @param[in]       buf : pointer to incoming data(payload of HCI synchronous data packet), the
*                  buffer is allocated inside bluetooth protocol stack and will be released after
*                  invoke of the callback is finished.
*
* @param[in]       len : size(in bytes) in buf
*
* @return          length of data successfully read
*
*/
typedef uint32_t (* esp_hf_client_outgoing_data_cb_t)(uint8_t *buf, uint32_t len);

To play 'greeting.wav' within the ESP32，you can save the .wav into SD card and load len bytes in every callback for outgoing data.
It should be noted that the operations in the callback should be as fast as possible. So, reading data from the SD card in callback is not a good choice. One possible approach is to use an backgroud task to transfer data from the SD card to the ringbuffer, and directly retrieve the data from the ringbuffer in the callback.

Thanks for reporting, will close due to short of feedback, feel free to reopen with more updates, thanks.


Add hoist property to datetime components to fix stacking context issues

Adds the hoist property to fix stacking context issues with datetime components.

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


Baseline Assumptions issues

Almost all issues completed now, few things to check over but what has been done so far should be merged into develop so that people can pick up latest changes.
@bgsandan added a few minor changes this morning to #1030 which I will resolve this afternoon.

Still to fix:

[  ] Duplicate remove buttons, mn is not actually removed
[  ] Reset to default button sets percentage values back to decimal
[  ] MN inputs don't change to 'user input' after updating
[  ] Fixed widths and paddings for MN

To test:

[ ] Can add & delete micronutrients into/from premix table
[ ] Micronutrient inputs change to 'User input' when values are changed

Should I be able to see the micronutrient in the list for example, Fe?

Should I be able to see the micronutrient in the list for example, Fe?

Good spot


add config file support; switch to yargs

Ideally I'd like to get this into v6.0.0, since it's something people might get mildly excited about.
Prompted by too many issues to mention, I've been wanting to replace commander with yargs for a very long time.
But yargs makes it pretty easy to grab "arguments" out of configuration files, so it wasn't too difficult to make it part of the change.
What's done:

[x] Replace commander with yargs
[x] Add support for specifying arguments/options in .mocharc.js, .mocharc.json, .mocharc.yaml, and a mocha property of package.json.  We also get config file extension for free.
[x] Add support for user-defined path to config file
[x] Retain support for mocha.opts (mocha.opts is loaded first, then options are merged with any config files)
[x] Update --help output
[x] Refactor much CLI-specific code and options into lib/cli/
[x] Existing tests pass (or they did last time I checked, anyway... surprise me, Travis)
[x] For any boolean flag, e.g., --foo, --no-foo is also supported.  This means --no-exit is now valid (and is in fact the default behavior)
[x] Consume .mocharc.yml instead of test/mocha.opts in Mocha's own test suites! (this necessitated moving a mocha.opts-specific test into its own suite)

TODO LIST:

[x] Docs and examples for config files
[x] Ensure coverage doesn't dip
[x] Pass-through(s) for Node.js/V8 options - derive from process.allowedNodeEnvrionmentFlags or as-of-yet-nonexistent shim thereof (will publish such a package asap)
[x] Ensure .eslintrc.yml isn't stale

Given the impact of these changes, I fully expect to see a patch soon after v6.0.0... it's bound to touch some edge cases.  These should not be breaking changes, but they probably are.
UPDATE: a thing that I need to figure out is this:  bin/mocha loads mocha.opts, and it allows node flags.  people are going to want node flags in config files too.  that means we need to parse config files in bin/mocha.  ...but we also don't want to parse the config files twice, just like we don't parse mocha.opts twice.
UPDATE:

[x] Ensure defaults stored in lib/mocharc.json work in a browser

Applicable issues
Closes #3037
semver-minor (should be semver-major due to amount of change)

here's the output of mocha --help

Coverage decreased (-1.2%) to 89.113% when pulling 4604a96931e76b42ba68ed2008b2e23da2040c41 on yargs into 9d27bac168f0ee2c4be3b8e21396efa0c00cdbed on master.

Is the go-forward recommendation:

to configure via ".mocharc.yaml"
use "mocha.opts" for Node flags and such?

Think it would be too much to have a reporter config file as well?

Tried inline a dozen times, but it wouldn't take comment:
"lib/cli/run.js#L379-L414"
Why is this reimplementing the ctor externally?

I'll just use the constructor.

yeah I was thinking about doing a prerelease.
I have significant changes yet to be pushed to this branch... there's more here than I originally thought, given that mocha.opts supports node flags, and it only makes sense that config files should as well.
Currently running into an issue with how yargs-parser treats repeated options (e.g., --require foo --require bar); a --require on the command line will overwrite a require in a config file, which isn't what we want--we want to merge all requires into a single array.  Will probably need to send a PR to yargs-parser to address it.
I could yank out the config file support, but I really don't want to.

Closes #2578

I'll make the unpopular comment here. This PR is simply "too beaucoup" -- it's really like 10 different PRs all rolled into one. It changes 88 files thus far, and we will have no way of knowing how many fixes were actually incorporated since everything in the PR queue will possibly no longer match to anything. Change history will basically be rendered useless afterwards. It should be broken back out into digestable pieces. No reviewer can possibly do due diligence against this many files...

@plroebuck

I'll make the unpopular comment here. This PR is simply "too beaucoup" -- it's really like 10 different PRs all rolled into one. It changes 88 files thus far, and we will have no way of knowing how many fixes were actually incorporated since everything in the PR queue will possibly no longer match to anything. Change history will basically be rendered useless afterwards. It should be broken back out into digestable pieces. No reviewer can possibly do due diligence against this many (unrelated) changes in that many files...

I don't disagree.  I'm happy to break it up into multiple logical commits after I've knocked out what's left to do.
I should be able to pull some of it out, as well.  Let's hold off on further review until I'm ready

Barring any needed fixes for CI failures, this is now ready to review...
I pulled several PRs out of this, but there's still many more changed files than I would have liked.  Many of these changes are test fixes related to version upgrades (Karma) or needed due to removing our test/mocha.opts and thus eliminating some assumptions the tests were making.  In a couple places I've sped up integration tests by invoking bin/_mocha directly instead of bin/mocha.
Even small modifications to files require a complete reformat, which is unfortunate, but would happen eventually.
The commit message has a better summary of changes, which I'll paste:

use yargs for option parsing and support config files
BREAKING CHANGES

-d is no longer an alias for --debug
--grep and --fgrep are now mutually exclusive
The option formerly known as --compilers is now removed from Mocha
lib/template.html moved to lib/browser/template.html
An error is thrown if a path to mocha.opts is specified by the user and the

Soft Deprecations
CLI

-gc users should use --gc-global

Programmatic API

Public API method getOptions() in bin/options.js is deprecated and currently has no alternative
Users of the enableTimeouts option of the Mocha constructor should use timeout instead.  Specify false for no timeout
Users of the useColors option of the Mocha constructor should use color instead

Enhancements

Mocha now supports JS, JSON, YAML, or package.json-based config.
Any/all configuration, including mocha.opts can be used in addition to command-line arguments, and everything will be merged as applicable
Node/V8 flag support:

Support of all available node flags on a per-version basis
Support of any V8 flag by prepending --v8- to the option
These are supported within mocha.opts or config files

More flexible command-line parsing including negation of any boolean flag by prepending --no- to the name
Better --help
Descriptions of interfaces in --help text
A useful Mocha constructor
Debug-related flags (e.g., --inspect) now imply --no-timeouts

Fixes

Many bug fixes around CLI option handling, e.g., closes #3475
Fixes #3363, #2576
--no-timeouts works

Documentation

Added new, updated, or rewrote documentation for all non-self-explanatory options
Updated usage text, TOC
Added section on configuration
Added example configuration files in example/config/

Etc.

Updated many dev deps, mostly within existing semver ranges
Removed commander
Added production deps:

ansi-colors - color terminal output
findup-sync - find package.json and other config files
js-yaml - parse YAML
log-symbols - visual symbols for success/fail etc.
node-environment-flags - per-version allowed Node.js env flags
object.assign - for IE11
strip-json-comments - allow comments in JSON config files
wide-align - terminal formatting
yargs - option parser
yargs-parser - for compatible, lightweight parsing of config files
yargs-unparser - for passing config to bin/_mocha from bin/mocha

I decided not to remove MOCHA_FORCE_COLOR since we don't seem to have a workaround atm.

I'm going to merge this very soon if there are no further reviews. cc @mochajs/core

You merged this with a single approved review?

I get this error after updating to mocha@next:
# npm i --save-dev mocha@next
+<EMAIL_ADDRESS>updated 1 package and audited 1283 packages in 5.509s
found 0 vulnerabilities

# npx mocha --debug
Cannot find module './mocharc.json'

# npx mocha --help
Cannot find module './mocharc.json'

# npx mocha --version
Cannot find module './mocharc.json'

@dogancelik,
Looks like you didn't create a settings file. Copy ".mocharc.yml" into your project root directory and edit accordingly.
See the docs.
@boneskull, this seems wrong though -- a settings file shouldn't be required. Mocha shouldn't even be checking for one if one'n'dones given from cmdline.

@plroebuck I don't think any other Node tool I use forces me to create a RC file, do I need a RC file to do --version?

.mocharc.json is likely lib/mocharc.json which may not have been published properly.  I'll need to check.

After updating to mocha 6, our tests consisting of a file test.js has stopped working. I guess this is since the default value for spec is test/ and not test. This is not described in the breaking changes for v6.
I'm wondering if this should be considered a bug or if this is the new expected behaviour.

@johansteffner likely a regression

@johansteffner please provide error output

@boneskull thanks for the response, here is an example of the issue https://github.com/johansteffner/mocha-spec-issue
The expected outcome is for the tests to run be i receive the error Error: No test files found: "test/".

@johansteffner Please open it as new issue. It is better to let people help your problem than leaving the comment. Anyway it is fixed in v6.0.1, see #3754 .


Update to Apache 2.0 License

cc @caniszczyk

#shipit

Coverage remained the same at 100.0% when pulling 8e9d784a3d158fc8e668b17bfb3fd9b22a44d92f on apache-license into 4fbabcc17fccb08772a9527555293c81d795c365 on master.

Coverage remained the same at 100.0% when pulling 4373d348c0cbda7964c3612cfe26500c767947a7 on apache-license into f0193c63aefb9be980b639ea59d612ad47b78ba7 on master.


getting the actual size after resize operation

I am using sharp's raw input and output to do some color manipulation on images in addition to resize and crop.
var input = sharp().raw().resize(600).max().withoutEnlargement();
var process = new ColorSaturationStream();
var output = sharp(null, {raw: {
    width: newWidth,
    height: newHeight,
    channels: newChannels
}}).toFormat('jpg');

someImageStream.pipe(input).pipe(process).pipe(output).pipe(response);

the challenge is that output must have the correct newWidth and newHeight or it will throw an error like:
libc++abi.dylib: terminating with uncaught exception of type vips::VError
while knowing the original image size I can calculate what newWidth and newHeight can be, but since there is a possibility of using different rounding methods than sharp I might get the wrong values.
I currently use Math.round as sharp does but is it always going to be the case ?
One way that might help with this is to add a utility function that exposes sharp internal calculations so we can have the same values.

Hello, we could add a feature where an instance of sharp will emit an info event with the same details as the info parameter provided to the toBuffer callback. Do you think this might provide what you need?
Given the async nature of this, you would probably need to cork the output Stream of your example until this event was emitted by the input Stream.
As an aside, we also need to check why you're seeing "terminating with uncaught exception of type vips::VError" as that should have been caught and emitted as an error event.

this error message is on mac os, in linux I got more details which point to this line which is becuase of the difference in size

an info event is useful, preferably if emitted early or even before pushing to the stream.

Commit 86815bc on the needle branch adds the info event for Stream-based output.

v0.14.0 now available via npm, thanks for the original suggestion!


feat: support driver.DriverContext interface

sql.Open internally makes use of the DriverContext interface, and if a Driver does not implement it, it creates a light wrapper1.
This DriverContext provides better context support as well as providing some useful error checking upfront. For instance, the mysql driver can check the DSN value before opening a connection to see if it's well formed. That way you get an error instantly instead of an error when making your first sql query
1: https://github.com/golang/go/blob/d0dd26a88c019d54f22463daae81e785f5867565/src/database/sql/sql.go#L832 https://github.com/golang/go/blob/d0dd26a88c019d54f22463daae81e785f5867565/src/database/sql/sql.go#L755-L766

Hey @conradludgate thanks for doing this, it looks like a great contribution!
Is there any way to test this?

Hey @conradludgate thanks for doing this, it looks like a great contribution! Is there any way to test this?

Sure! I'll look into it later


npm run dev does not work, after generating theme app extension

Please confirm that you have:

[X] Searched existing issues to see if your issue is a duplicate. (If you’ve found a duplicate issue, feel free to add additional information in a comment on it.)
[x] Reproduced the issue in the latest CLI version.

In which of these areas are you experiencing a problem?
Extension, Theme
Expected behavior
Run dev server through ngrok
Actual behavior
Hi!
I've seen other issue addressing this problem,but was stated that other issues should to be opened.
Here I get the following error :
Installing racc 1.6.2 with native extensions
Installing byebug 11.1.3 with native extensions
──────────────────────────────────────────────────────────────────────────────────────────────────────────
Error: Failed to kill process 7660: Error: Command failed: taskkill /pid 7660 /T /F
'taskkill' is not recognized as an internal or external command,
operable program or batch file.
Also, I tried to see how the dependencies are installed & no errors are being thrown with npm install.
What can I do to solve this issue ?
Thanks!
Stack trace
at ./shop-theme-app/test-v1/node_modules/@shopify/cli-kit/dist/public/node/system.js:49:27
    at ChildProcess.exithandler (node:child_process:427:5)
    at ChildProcess.emit (node:events:513:28)
    at ChildProcess.emit (node:domain:489:12)
    at maybeClose (node:internal/child_process:1098:16)
    at Socket.<anonymous> (node:internal/child_process:456:11)
    at Socket.emit (node:events:513:28)
    at Socket.emit (node:domain:489:12)
    at Pipe.<anonymous> (node:net:317:12)

Reproduction steps

npm init @shopify/app@latest
cd whatever-app
npm run shopify app generate extension
(installed ruby latest version)
npm run dev (npm run dev  --skip-dependencies-installation)

Operating System
Windows 10
Shopify CLI version (check your project's package.json if you're not sure)
"@shopify/app": "3.44.1", "@shopify/cli": "3.44.1"
Shell
powershell
Node version (run node -v if you're not sure)
v19.4.0
What language and version are you using in your application?
Node

hi @vpaul18, can you try again? we've released 3.45.0 which includes many fixes for Ruby on Windows.

@Arkham  Hi there! Sorry for the late reply, seems to have been fixed! Thanks!


Video display of results

Hi,
After I ran dist_test.py, I found that the visualization of the test results was a few frames of discontinuous images. What should I do if I want the detection result to be displayed like a video with adjacent frames? thanks.

How do you visualize it ? Do you write some custom code ? In that case, you may need some sorting to make it continuous. Additionally, assuming you are using nuScenes, their frame rate is 2 FPS so it won't look that continuous

@tianweiy Do you think #172 could solve this ?

I am waiting for the original poster to explain the details

Thanks for your reply. Inspired by you, I have solved this problem.


Release description

Hi,
We are using your action to check if one of our dependencies has a new release, and if it does we open a PR that updates our dependency. One thing that we are missing that we would love to have is the release description so that we can add it to our PR, would you be ok if I created a PR to add the description of the release in the outputs?
Thanks

Yeah for sure!
I try and maintain backwards compatibility and stay focused on "doing one thing right" and I think this suggestion fits within those bounds.


Support mapping time series collections

Q
A

Type
feature

BC Break
no

Fixed issues

Summary
Supersedes #2597. I was unhappy with the way we were mapping time series collections, so instead of adding more options to the Document attribute I decided to introduce a new attribute and XML mapping element to handle time series data. To make data handling easier, the ClassMetadataInstance will store the attribute instance entirely, as it serves as a value object for time series options. As a result, the XML driver is able to create the attribute instance from the data in the XML, needing no additional validation.
The only other change needed was to add support for time series options in the schema manager. Since time series collections need to be created as such, no handling is needed to update time series collections at all. Dropping time series collections works the same as dropping other collections, again requiring no other changes.
The tests in this PR cover the basic mapping and schema manager changes. No functional testing for time series collections was added, but I can add those tests if necessary.

@jmikola good point about the docs. I added TimeSeries to the attribute reference and wrote a short cookbook article based on the MongoDB documentation. I'd appreciate a thorough review of the cookbook entry to ensure it works for users 🙇♂

@alcaeus This had been a pain point in some of our automated testing for the past 18 months as creating timeseries collections required custom scripts. Thank you for this contribution!

@alcaeus This had been a pain point in some of our automated testing for the past 18 months as creating timeseries collections required custom scripts. Thank you for this contribution!

Thank you for taking the time to write this comment, I really appreciate it!
If you have a chance to try out the feature please do give us feedback if anything does not work as expected. I understand this only affects schema creation, but any real-world scenarios you can test help us greatly!