[PDI-12080] PostgreSQL Bulk Loader improvements

Seems like @marco44 stopped activity here https://github.com/pentaho/pentaho-kettle/pull/1020
I rebased his branch and added some more improvements to bulk loader. @mbatchelor could you review and merge it please?

Hello, This is an automated comment from our build system. Since this pull request originated from a user  not in the Pentaho organization, we will not proceed  with automatic validation of the pull request.  However, rest assured that it will be reviewed manually as soon  as we get the chance. Thanks for your contribution!

Yes, I sort of gave up… this pull request has been waiting for very long. And I'm not sure my latest rebase is totally correct: I'm not a Java developper, so I may have missed some implications on the changes. So evere10, if you want to take over, no problem with me, on the contrary :)

Build Completed
:x: This pull request has errors. They will need to be addressed before it can be accepted. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/pgbulkloader/PGBulkLoader.java

Newly Broken Tests:
org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMetaTest.testChildLevelMetadataEntries:
:red_circle: java.lang.RuntimeException
java.lang.RuntimeException: Unable to find getter for PsqlPath
	at org.pentaho.test.util.JavaBeanManipulator.populateGetters(JavaBeanManipulator.java:89)
	at org.pentaho.test.util.JavaBeanManipulator.<init>(JavaBeanManipulator.java:50)
	at org.pentaho.di.base.LoadSaveBase.<init>(LoadSaveBase.java:64)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:57)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:66)
	at org.pentaho.di.trans.s

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMetaTest.testInjection:
:red_circle: java.lang.RuntimeException
java.lang.RuntimeException: Unable to find getter for PsqlPath
	at org.pentaho.test.util.JavaBeanManipulator.populateGetters(JavaBeanManipulator.java:89)
	at org.pentaho.test.util.JavaBeanManipulator.<init>(JavaBeanManipulator.java:50)
	at org.pentaho.di.base.LoadSaveBase.<init>(LoadSaveBase.java:64)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:57)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:66)
	at org.pentaho.di.trans.s

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMetaTest.testSerialization:
:red_circle: java.lang.RuntimeException
java.lang.RuntimeException: Unable to find getter for PsqlPath
	at org.pentaho.test.util.JavaBeanManipulator.populateGetters(JavaBeanManipulator.java:89)
	at org.pentaho.test.util.JavaBeanManipulator.<init>(JavaBeanManipulator.java:50)
	at org.pentaho.di.base.LoadSaveBase.<init>(LoadSaveBase.java:64)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:57)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:66)
	at org.pentaho.di.trans.s

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMetaTest.testTopLevelMetadataEntries:
:red_circle: java.lang.RuntimeException
java.lang.RuntimeException: Unable to find getter for PsqlPath
	at org.pentaho.test.util.JavaBeanManipulator.populateGetters(JavaBeanManipulator.java:89)
	at org.pentaho.test.util.JavaBeanManipulator.<init>(JavaBeanManipulator.java:50)
	at org.pentaho.di.base.LoadSaveBase.<init>(LoadSaveBase.java:64)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:57)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:66)
	at org.pentaho.di.trans.s

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.job.entries.checkdbconnection.JobEntryCheckDbConnections

Branch Change: -1.23%:small_red_triangle_down:
Complexity Change: -1.52%:small_red_triangle_down:
Instruction Change: -.21%:small_red_triangle_down:

org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -.39%:small_red_triangle_down:
Complexity Change: -.51%:small_red_triangle_down:
Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.job.entries.getpop.MailConnectionMeta

Branch Change: -1.00%:small_red_triangle_down:
Complexity Change: -1.41%:small_red_triangle_down:
Instruction Change: -.30%:small_red_triangle_down:

org.pentaho.di.job.entries.sftpput.JobEntrySFTPPUT

Branch Change: -.58%:small_red_triangle_down:
Complexity Change: -.66%:small_red_triangle_down:
Instruction Change: -.09%:small_red_triangle_down:

org.pentaho.di.job.entries.waitforsql.JobEntryWaitForSQL

Branch Change: -.66%:small_red_triangle_down:
Complexity Change: -.93%:small_red_triangle_down:
Instruction Change: -.13%:small_red_triangle_down:

org.pentaho.di.trans.steps.checksum.CheckSumMeta

Branch Change: -1.35%:small_red_triangle_down:
Complexity Change: -1.45%:small_red_triangle_down:
Instruction Change: -.32%:small_red_triangle_down:

org.pentaho.di.trans.steps.datagrid.DataGridMeta

Instruction Change:  + .09%

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Branch Change: -.63%:small_red_triangle_down:
Complexity Change: -.40%:small_red_triangle_down:
Instruction Change: -.49%:small_red_triangle_down:
Line Change: -.23%:small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -1.04%:small_red_triangle_down:
Complexity Change: -1.05%:small_red_triangle_down:
Instruction Change: -.14%:small_red_triangle_down:
Line Change: -.37%:small_red_triangle_down:

org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta

Instruction Change: -.05%:small_red_triangle_down:

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoader

Complexity Change: -3.77%:small_red_triangle_down:
Instruction Change: -1.17%:small_red_triangle_down:
Line Change: -1.61%:small_red_triangle_down:
Method Change: -25.00%:small_red_triangle_down:

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderData

Complexity Change: -100.00%:small_red_triangle_down:
Instruction Change: -100.00%:small_red_triangle_down:
Line Change: -100.00%:small_red_triangle_down:
Method Change: -100.00%:small_red_triangle_down:

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMeta

Branch Change: -43.86%:small_red_triangle_down:
Complexity Change: -55.14%:small_red_triangle_down:
Instruction Change: -50.17%:small_red_triangle_down:
Line Change: -50.28%:small_red_triangle_down:
Method Change: -78.00%:small_red_triangle_down:

org.pentaho.di.trans.steps.sort.SortRowsMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.synchronizeaftermerge.SynchronizeAfterMergeMeta

Instruction Change:  + .04%

org.pentaho.di.trans.steps.tableoutput.TableOutputMeta

Branch Change: -.91%:small_red_triangle_down:
Complexity Change: -.82%:small_red_triangle_down:

org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta

Branch Change:  + .53%

org.pentaho.di.trans.steps.webservices.WebServiceMeta

Branch Change:  + 1.79%
Complexity Change:  + 1.19%
Instruction Change:  + .07%

org.pentaho.di.www.TransformationMap

Branch Change:  + 3.41%
Complexity Change:  + 3.08%
Instruction Change:  + .94%
Line Change:  + 1.54%

Checkstyle violations
The code submitted is not complying with one or more of our guidelines. To perform these checks locally, please use this tool.
/home/buildguy/project/engine/src/org/pentaho/di/trans/steps/pgbulkloader/PGBulkLoader.java

:heavy_exclamation_mark: Unused import - java.io.IOException. at Line: 25 Column: 8

:heavy_exclamation_mark: Unused import - org.apache.commons.vfs2.FileObject. at Line: 38 Column: 8

:heavy_exclamation_mark: Unused import - org.pentaho.di.core.exception.KettleFileException. at Line: 44 Column: 8

:heavy_exclamation_mark: Unused import - org.pentaho.di.core.util.StreamLogger. at Line: 47 Column: 8

:heavy_exclamation_mark: Unused import - org.pentaho.di.core.vfs.KettleVFS. at Line: 48 Column: 8

:heavy_exclamation_mark: Unused import - java.sql.Connection. at Line: 57 Column: 8

:heavy_exclamation_mark: Unused import - java.sql.DriverManager. at Line: 58 Column: 8

:heavy_exclamation_mark: Unused import - org.postgresql.core.BaseConnection. at Line: 60 Column: 8

:heavy_exclamation_mark: '(' is preceded with whitespace. at Line: 150 Column: 24

:heavy_exclamation_mark: '(' is not followed by whitespace. at Line: 165 Column: 42

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 165 Column: 89

:heavy_exclamation_mark: Line has trailing spaces at Line: 188

:heavy_exclamation_mark: '(' is preceded with whitespace. at Line: 205 Column: 17

:heavy_exclamation_mark: '(' is not followed by whitespace. at Line: 219 Column: 11

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 219 Column: 28

:heavy_exclamation_mark: '(' is not followed by whitespace. at Line: 222 Column: 18

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 222 Column: 33

:heavy_exclamation_mark: 'if' construct must use '{}'s. at Line: 257

:heavy_exclamation_mark: '(' is not followed by whitespace. at Line: 257 Column: 19

:heavy_exclamation_mark: '(' is not followed by whitespace. at Line: 257 Column: 29

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 257 Column: 38

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 257 Column: 39

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 267 Column: 42

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 271 Column: 52

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 284 Column: 56

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 288 Column: 61

:heavy_exclamation_mark: '(' is preceded with whitespace. at Line: 312 Column: 45

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 323 Column: 56

:heavy_exclamation_mark: ')' is not preceded with whitespace. at Line: 327 Column: 61

:heavy_exclamation_mark: '(' is preceded with whitespace. at Line: 351 Column: 45

:heavy_exclamation_mark: 'case' child have incorrect indentation level 13, expected level should be 12. at Line: 354

:heavy_exclamation_mark: '(' is preceded with whitespace. at Line: 379 Column: 41

Hello, This is an automated comment from our build system. Since this pull request originated from a user  not in the Pentaho organization, we will not proceed  with automatic validation of the pull request.  However, rest assured that it will be reviewed manually as soon  as we get the chance. Thanks for your contribution!

Hello, This is an automated comment from our build system. Since this pull request originated from a user  not in the Pentaho organization, we will not proceed  with automatic validation of the pull request.  However, rest assured that it will be reviewed manually as soon  as we get the chance. Thanks for your contribution!

@evere10 Thanks for your efforts on this.
Since you're in the area on one of these files, could you modify the PGBulkLoaderMetaTest class, by combining the setUpLoadSave and testSerialization methods into a single @Test?  The LoadSaveTester stuff isn't needed for any of the metadata injection tests, and will help limit the test failure to only where it's actually used.  Otherwise, it may be a while before I'm able to go back and cleanup that test.  Thanks!

Build Completed
:x: This pull request has errors. They will need to be addressed before it can be accepted. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/pgbulkloader/PGBulkLoader.java

Newly Broken Tests:
org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMetaTest.testChildLevelMetadataEntries:
:red_circle: java.lang.RuntimeException
java.lang.RuntimeException: Unable to find setter for stopOnError
	at org.pentaho.test.util.JavaBeanManipulator.populateSetters(JavaBeanManipulator.java:113)
	at org.pentaho.test.util.JavaBeanManipulator.<init>(JavaBeanManipulator.java:51)
	at org.pentaho.di.base.LoadSaveBase.<init>(LoadSaveBase.java:64)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:57)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:66)
	at org.pentaho.di.tra

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMetaTest.testInjection:
:red_circle: java.lang.RuntimeException
java.lang.RuntimeException: Unable to find setter for stopOnError
	at org.pentaho.test.util.JavaBeanManipulator.populateSetters(JavaBeanManipulator.java:113)
	at org.pentaho.test.util.JavaBeanManipulator.<init>(JavaBeanManipulator.java:51)
	at org.pentaho.di.base.LoadSaveBase.<init>(LoadSaveBase.java:64)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:57)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:66)
	at org.pentaho.di.tra

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMetaTest.testSerialization:
:red_circle: java.lang.RuntimeException
java.lang.RuntimeException: Unable to find setter for stopOnError
	at org.pentaho.test.util.JavaBeanManipulator.populateSetters(JavaBeanManipulator.java:113)
	at org.pentaho.test.util.JavaBeanManipulator.<init>(JavaBeanManipulator.java:51)
	at org.pentaho.di.base.LoadSaveBase.<init>(LoadSaveBase.java:64)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:57)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:66)
	at org.pentaho.di.tra

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMetaTest.testTopLevelMetadataEntries:
:red_circle: java.lang.RuntimeException
java.lang.RuntimeException: Unable to find setter for stopOnError
	at org.pentaho.test.util.JavaBeanManipulator.populateSetters(JavaBeanManipulator.java:113)
	at org.pentaho.test.util.JavaBeanManipulator.<init>(JavaBeanManipulator.java:51)
	at org.pentaho.di.base.LoadSaveBase.<init>(LoadSaveBase.java:64)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:57)
	at org.pentaho.di.trans.steps.loadsave.LoadSaveTester.<init>(LoadSaveTester.java:66)
	at org.pentaho.di.tra

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory

Branch Change: -7.14%:small_red_triangle_down:
Complexity Change: -7.69%:small_red_triangle_down:

org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change:  + .78%
Complexity Change:  + 1.03%
Instruction Change:  + .16%

org.pentaho.di.job.entries.ftpsget.JobEntryFTPSGet

Branch Change: -.53%:small_red_triangle_down:
Complexity Change: -.56%:small_red_triangle_down:
Instruction Change: -.07%:small_red_triangle_down:

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.28%:small_red_triangle_down:
Line Change: -3.87%:small_red_triangle_down:

org.pentaho.di.job.entries.waitforsql.JobEntryWaitForSQL

Branch Change:  + .66%
Complexity Change:  + .93%
Instruction Change:  + .13%

org.pentaho.di.trans.step.StepMeta

Instruction Change: -.19%:small_red_triangle_down:
Line Change: -.27%:small_red_triangle_down:

org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change: -.11%:small_red_triangle_down:

org.pentaho.di.trans.steps.combinationlookup.CombinationLookupMeta

Instruction Change: -.04%:small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Branch Change:  + .63%
Complexity Change:  + .40%
Instruction Change:  + .49%
Line Change:  + .23%

org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta

Instruction Change: -.05%:small_red_triangle_down:

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta

Instruction Change: -.06%:small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -2.35%:small_red_triangle_down:
Complexity Change: -2.70%:small_red_triangle_down:

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoader

Complexity Change: -3.77%:small_red_triangle_down:
Instruction Change: -1.17%:small_red_triangle_down:
Line Change: -1.61%:small_red_triangle_down:
Method Change: -25.00%:small_red_triangle_down:

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderData

Complexity Change: -100.00%:small_red_triangle_down:
Instruction Change: -100.00%:small_red_triangle_down:
Line Change: -100.00%:small_red_triangle_down:
Method Change: -100.00%:small_red_triangle_down:

org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMeta

Branch Change: -43.86%:small_red_triangle_down:
Complexity Change: -55.14%:small_red_triangle_down:
Instruction Change: -50.17%:small_red_triangle_down:
Line Change: -50.28%:small_red_triangle_down:
Method Change: -78.00%:small_red_triangle_down:

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Instruction Change: -.14%:small_red_triangle_down:

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change: -.08%:small_red_triangle_down:

org.pentaho.di.trans.steps.symmetriccrypto.symmetriccryptotrans.SymmetricCryptoTransMeta

Branch Change: -3.33%:small_red_triangle_down:
Complexity Change: -1.85%:small_red_triangle_down:
Instruction Change: -.28%:small_red_triangle_down:

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change:  + .18%

org.pentaho.di.trans.steps.webservices.WebServiceMeta

Branch Change:  + 1.79%
Complexity Change:  + 1.19%
Instruction Change:  + .07%

Checkstyle violations
The code submitted is not complying with one or more of our guidelines. To perform these checks locally, please use this tool.
/home/buildguy/project/engine/src/org/pentaho/di/trans/steps/pgbulkloader/PGBulkLoader.java

:heavy_exclamation_mark: '(' is followed by whitespace. at Line: 156 Column: 44

:heavy_exclamation_mark: ')' is preceded with whitespace. at Line: 156 Column: 57

:heavy_exclamation_mark: '(' is followed by whitespace. at Line: 263 Column: 35

:heavy_exclamation_mark: ')' is preceded with whitespace. at Line: 263 Column: 42

:heavy_exclamation_mark: ')' is preceded with whitespace. at Line: 276 Column: 45

:heavy_exclamation_mark: ')' is preceded with whitespace. at Line: 315 Column: 45

Hello, This is an automated comment from our build system. Since this pull request originated from a user  not in the Pentaho organization, we will not proceed  with automatic validation of the pull request.  However, rest assured that it will be reviewed manually as soon  as we get the chance. Thanks for your contribution!

@matthewtckr I modified PGBulkLoaderMetaTest as you suggested, could you validate my pull request? Or maybe, someone else could do this?

@mbatchelor could you invoke tests and merge it, please? maybe, someone else?

I don't use Pentaho anymore, and I guess, this PR won't get merged soon. So, I close this PR.


Pets?

In the example, Human has a property for Pets, but it's unclear if/how this mapping occurs...

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

ID: a10898c5-abee-1843-cfff-b2707f8a079a
Version Independent ID: d9399618-488e-20b1-f707-35a191b95cc1
Content: Inheritance - EF Core
Content Source: entity-framework/core/modeling/inheritance.md
Product: entity-framework
Technology: entity-framework-core
GitHub Login: @AndriySvyryd
Microsoft Alias: avickers

Human has a collection of Pets, and Pet has a collection of Humans, so this is a many-to-many relationship; this causes an implicit HumanPet join table to be created, which indeed isn't shown in the code sample. I'll simplify this a bit to make it clearer.

@ajcvickers it seems that the TPC sample very intentionally does many-to-many. I'd simplify this to have a simple one-to-many relationship between Human and Pet, so as to not bring extra unrelated complexity (and not have to show the additional join), but let me know what you think.


Implementation of the RTCA command, in response to Add command to check for runs counts till Class average 50 #91

Note that I had to do modifications to discord-instance.ts so that I can run tests without issues

Implementation for #91

Note that I had to do modifications to discord-instance.ts so that I can run tests without issues

You can commit certain files and ignore others.

wanted to make it easier to test ¯_(ツ)_/¯


Question - how to computer header-hash for shelley block

The Shelley CDDL spec doesn't contain header hash in it. In Byron, it is computed separately and I guess it's the same case with Shelley as well.
I need help regarding computing the hash in javascript. A spec for computing the hash will be good enough.

see #1537.


Preview.setTime() can accept string input from element.time property

Updated the setTime method on the Preview class to accept a string input. The intention is to take the time property of each element and use that as the input for setTime.
Currently, I am using this approach and seemed to me like it would be useful as part of the library.
Happy to add tests but couldn't find a testing folder.

Going to do some more testing then will reopen.

Thank you, but if you want to pass a time as a string, I'd recommend setTime(parseFloat(timeAsString)) where timeAsString is a value such as "10.5".


Logging: Add watcher to keep update logging status if pod is down

Keep update status for logging service, if pod not available, should warn user

closed, the app page shows the status now


Add a FocusNode for AndroidView widgets.

Description
The PlatformViewsService listens for viewFocused calls on the
platform_views system channel and fires a callback that focuses the
focus node for the relevant AndroidView widget.
Related Issues
https://github.com/flutter/flutter/issues/19718
Tests
I added the following tests:

Test that when the viewFocused method channel method is invoked the AndroidView's focus node is getting focused.

Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I signed the [CLA].
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (Please read [Handling breaking changes]). Replace this with a link to the e-mail where you asked for input on this proposed change.
[x] No, this is not a breaking change.

Does this PR need a counterpart on flutter/engine? I can't find a call to viewFocused looking there. I've been waiting for this fix for a long time, thanks!

These changes are already in the new update 1.6.2 ?. In the Changelog of flutter does not leave as it is included these changes?


Change message on keydown

Update the action that will happen when someone is hovering over an element and he/she presses a key.

fixed by #22


fix: ambiguous import

$ go mod tidy
go: downloading github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.333
go: downloading github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.333
github.com/traefik/traefik/v2/pkg/provider/acme imports
        github.com/go-acme/lego/v4/providers/dns imports
        github.com/go-acme/lego/v4/providers/dns/tencentcloud imports
        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common: ambiguous import: found package github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common in multiple modules:
        github.com/tencentcloud/tencentcloud-sdk-go v3.0.83+incompatible<EMAIL_ADDRESS>        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.333<EMAIL_ADDRESS>github.com/traefik/traefik/v2/pkg/provider/acme imports
        github.com/go-acme/lego/v4/providers/dns imports
        github.com/go-acme/lego/v4/providers/dns/tencentcloud imports
        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile: ambiguous import: found package github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile in multiple modules:
        github.com/tencentcloud/tencentcloud-sdk-go v3.0.83+incompatible<EMAIL_ADDRESS>        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.333<EMAIL_ADDRESS>github.com/traefik/traefik/v2/pkg/provider/acme imports
        github.com/go-acme/lego/v4/providers/dns imports
        github.com/go-acme/lego/v4/providers/dns/tencentcloud imports
        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod/v20210323 imports
        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors: ambiguous import: found package github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors in multiple modules:
        github.com/tencentcloud/tencentcloud-sdk-go v3.0.83+incompatible<EMAIL_ADDRESS>        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.333<EMAIL_ADDRESS>github.com/traefik/traefik/v2/pkg/provider/acme imports
        github.com/go-acme/lego/v4/providers/dns imports
        github.com/go-acme/lego/v4/providers/dns/tencentcloud imports
        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod/v20210323 imports
        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http: ambiguous import: found package github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http in multiple modules:
        github.com/tencentcloud/tencentcloud-sdk-go v3.0.83+incompatible<EMAIL_ADDRESS>        github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.333<EMAIL_ADDRESS>
The script to update all go modules:
#!/usr/bin/env bash
set -e

for config in $(find . -type f -name '*.mod' | sed -r 's|/[^/]+$||')
do
        cd $config
        go mod tidy
        cd -
done

those files are auto generated, I cannot merge this pr because it will be overwritten by next release
please file an issue instead, we'll try to fix it


Web RDAMT-535: Added JSON Validation to text area.

@stephenmatis, you made a good point regarding jQuery usage. I have looked at the code again and determined that the Bootstrap addition was unnecessary, and have replaced the jQuery elements with Vanilla JS so I was able to remove those requirements.


minor: clarify docstring on DictionaryArray::lookup_key

While working on something else I found another docstring I think could be improved

Codecov Report

Merging #1910 (c46d88e) into master (ded6316) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1910      +/-   ##
==========================================
- Coverage   83.41%   83.41%   -0.01%
==========================================
  Files         214      214
  Lines       56991    56991
==========================================
- Hits        47541    47539       -2
- Misses       9450     9452       +2

Impacted Files
Coverage Δ

arrow/src/array/array_dictionary.rs
91.91% <ø> (ø)

parquet_derive/src/parquet_field.rs
65.53% <0.00%> (-0.46%)
:arrow_down:

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 ded6316...c46d88e. Read the comment docs.


Lab 8 Level 6 back() cannot pass 1 test case

Hi, anyone faced the same issue? Idk which part of my code does the error arise. Thanks alot!

When you go back(), the room you returned to did not contain any troll. Depending on how you implemented, one way you can debug is to have a public getter to get a list of what the room contains. You can run r3.tick(takeSword).back().getListOfThings() to see what r2 contains, if it is empty you need to debug from there.

hi, adding to Yi Fan's comment, maybe your back() method is not working properly, since you only went back to library and not to foyer (after the second back() method call).

Hi @Brianliew77, might be easier to help if  you attached your code. But it might be possible that it's calling the wrong room if you implemented by using a List.

yep it seems that your back is not going to the correct room hence the issue

Yup, I agree with the others. You should probably check your back() method, because it seems like your back() method isn't returning to the previous room, hence your output shows that you are still at the library (which has no troll) and not back at the foyer (where the troll is present).

For me I just had to change my constructor to return the new room. :D
GL!!

I had a similar issue but attempted level 6 using an ImList of Rooms. Then I had to create a couple more constructors to deal with this ImList and I had to make sure to return this.ImList in all the methods that return a new room. Hope that helps!!


How to use the echo web server framework

I think this framework deserves a tutorial. The link for it's github repo is: https://github.com/labstack/echo

@boolow5 I (finally - 3 years later!) published an episode on this at https://gifm.dev/screencast/episode_31_echo_framework/
I hope you enjoy 😄


automagically respond to messages

If a message has a number followed by AM or PM, or if it's in 24 hour fmt, like 24:00, respond with a timestamp if that user has registered their timezone, if not, ignore
For example:
me: I need to leave home at 8 AM tomorrow
Bot: timestamp
me: I return at 22:00
Bot: timestamp

feel free to reopen if this doesn't solve the issue


chore: release 0.2.0

:robot: I have created a release beep boop
0.2.0 (2024-05-17)
⚠ BREAKING CHANGES

always throw under development

Features

always throw under development (7b44d63)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/infodusha/next-rsc-error-handler/releases/tag/next-rsc-error-handler-v0.2.0 :sunflower:


0.4.0

Current dependencies on/for this PR:

main

PR #48   👈

This comment was auto-generated by Graphite.


ANTLR runtime is under BSD-3-Clause

Type: Missing
Summary:
ANTLR runtime is under BSD-3-Clause
Details:
Eclipse Foundation Scans have determined that ANTLR Runtime is under BSD-3-Clause
Resolution:
Adds curated license information.
Affected definitions:

antlr-runtime 3.5.2

@waynebeaton thank you ++ :wave:


[alf language] Checker error?

Hello,
Please verify this.
{Variable definition list}
def n : integer, r : real, l : boolean, s : string ;

I believe there should be l : logic instead of l : boolean.
Thanks,
Emanuel

Looking at it.

fixed

Hello,
Please check this also.
It seems to me that the "statements" node in the .json file (in the "for" node) is incorrect.
    {
      "id": "for",
      "variable": "i",
      "exp": {
        "id": "identifier",
        "title": "list",
        "line": 7
      },
      "statements": "run",
      "line": 9
    }

I believe statements, in this case, should contain
"statements": [
                {
                    "id": "set",
                    "to": {
                        "id": "identifier",
                        "title": "n",
                        "line": 8
                    },
                    "from": {
                        "id": "exp",
                        "op": "+",
                        "left": {
                            "id": "identifier",
                            "title": "n",
                            "line": 8
                        },
                        "right": {
                            "id": "value",
                            "type": "integer",
                            "value": 1,
                            "line": 8
                        },
                        "line": 8
                    },
                    "line": 8
                }
            ],

Thanks!

fixed it

Thanks!
Also, please take a look at definition_statements.alf.json.
It has got:
      "id": "function_call",

but I believe that definition_statements.alf contains a function definition, not call, and thereby should be:
      "id": "fn",

Same for:
definition_value_empty_expression.alf and its corresponding .json
and
definition_value_empty_statements.alf with .json
and
definition_value.alf with .json
Thanks

Thank you. There was a "function_call" instead of "fn" in a rule from my grammar. It's fixed now. Keep letting me now once you find some other bugs

Great!
Will do.
There is one more thing that is not clear to me.
In the homework documentation, Function Definition part, there is this AST:

{
	id:"fn",
	title:"function_name",
	parameters:[ // array of parameters
 		{
 			type:"data type",
 			name: "parameter name"
 		},
 	],
	return_type:"type of the value that the function returns",
	statements:[ // array of statements (even if it is only one)
		...
 	]
}

Mind that that parameters node looks like this:
parameters:[ // array of parameters
 		{
 			type:"data type",
 			name: "parameter name"
 		},
 	],

In the [json files] (https://github.com/UPB-FILS/alf/blob/master/Devoir/alf/verify/alf/4_messages/definition_statements.alf.json) I find this parameters nodes:
"parameters": [
        {
          "type": "integer",
          "id": "n1",
          "line": 4
        }
      ],

The fields in the parameter don't match as the guide has type, name and the json files  have type, id, line.
What structure should I follow?

Please take a look at 6_class.
(This file) and most of the others use boolean instead of logic.
Now is:
{Class definition}
struct school
	property name:string;
	property private:boolean;
	property type:integer;
end;

When I believe there should be:
{Class definition}
struct school
	property name:string;
	property private:logic;
	property type:integer;
end;

Thanks

fixed.

Stick to the structure that's mentioned on the site. I will adapt my code to it also

@JStudent please fix the error, it should be as in the text, logic.
On Thu, Apr 4, 2019 at 2:40 PM JStudent97<EMAIL_ADDRESS>wrote:

Stick to the structure that's mentioned on the site. I will adapt my code
to it also
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/UPB-FILS/alf/issues/34#issuecomment-479862513, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ACtOofBXlgM1FjW2NctK2WV2CeF9taaNks5vdeSggaJpZM4cXLi-
.

--
Alexandru RADOVICI
Universitatea "Politehnica" din Bucuresti
e-mail<EMAIL_ADDRESS>telefon:<PHONE_NUMBER>
www.ipworkshop.ro

done

Hello,
I am looking at this file.
Is the read();; at line 5 ok? Should the extra ;inside the script be considered as an empty statement?
Thanks,

It shouldn't be there. It's mistakenly placed. I'll remove it

Great! Thanks.
Also, regarding the tests verifying errors, I believe it is really difficult to get them to pass.
This implies that my structure should be the same as yours (especially at syntax errors).
For example, at definition_error.alf, there should be this output:
{
  "error": "syntax",
  "line": 2,
  "text": "integer",
  "token": "\"TYPE\"",
  "expected": [
    "\"(\"",
    "\"-\"",
    "\"NOT\"",
    "\"NUMBER\"",
    "\"STRING_VALUE\"",
    "\"SYMBOL\"",
    "\"LOGIC_VALUE\"",
    "\"IDENTIFIER\"",
    "\"NONE\"",
    "\"value\"",
    "\"arrayAccess\"",
    "\"propertyAccess\"",
    "\"functionRun\"",
    "\"function\""
  ]
}

Mind the final elements of the expected list:
    "\"arrayAccess\"",
    "\"propertyAccess\"",
    "\"functionRun\"",
    "\"function\""

This forces me to have the same function names as yours. This could be done but I don't believe it fits the purpose of the homework.
Also, in the case of lexical errors, I believe there could be problems regarding how jison throws the errors. For example, for lexical_error.alf we have this output:
{
  "error": "lexical",
  "line": 2,
  "text": "Lexical error on line 2: Unrecognized text.\n\n  Erroneous area:\n1: {Lexical error} \r\n2: @54906820 \r\n^..^\n3: "
}

My output, however, looks something like this:
{
    "error": "lexical",
    "line": "2",
    "text": "Lexical error on line 2. Unrecognized text.\n\n Erroneous area:\n1: {Lexical error} \r\n2: @54906820 \r\n3: ----------------^ \r"
}

Your jison detects @ as erronous character, mine catches the error at the end of the number.
This is the console.log of the messages (to better see the formatting):
Yours
Lexical error on line 2: Unrecognized text.

  Erroneous area:
1: {Lexical error}
2: @54906820
^..^
3:
undefined

Mine
Lexical error on line 2. Unrecognized text.

 Erroneous area:
1: {Lexical error}
2: @54906820
3: ----------------^
undefined

Please mind that your error throws extra .... as characters when mine throws ----.
The full error_message is:
{ Error: Lexical error on line 2. Unrecognized text.
@54906820error}
----------------^
    at Parser.parseError (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:983:21)
    at Object.parseError (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1402:28)
    at Object.next (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1657:25)
    at Object.lex (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1667:22)
    at Object.lex (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1671:25)
    at Object.lex (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1671:25)
    at lex (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1020:27)
    at Parser.parse (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1033:26)
    at Object.<anonymous> (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\index.js:22:23)
    at Module._compile (internal/modules/cjs/loader.js:689:30) hash: { text: '', token: null, line: 1 } }

If you find my comment to be relevant, it would be great!
Otherwise, please don't mind me, it's just my view over this 😄
Thanks,

We do not verify the exact errors, look at the checker.
On Fri, Apr 5, 2019 at 9:42 AM Grama Ioan-Emanuel<EMAIL_ADDRESS>wrote:

Great! Thanks.
Also, regarding the tests verifying errors, I believe it is really
difficult to get them to pass.
This implies that my structure should be the same as yours (especially at
syntax errors).
For example, at definition_error.alf
https://github.com/UPB-FILS/alf/blob/master/Devoir/alf/verify/alf/2_variable_definition/definition_error.alf,
there should be this
https://github.com/UPB-FILS/alf/blob/master/Devoir/alf/verify/alf/2_variable_definition/definition_error.alf.json
output:
{
"error": "syntax",
"line": 2,
"text": "integer",
"token": ""TYPE"",
"expected": [
"\"(\"",

"\"-\"",

"\"NOT\"",

"\"NUMBER\"",

"\"STRING_VALUE\"",

"\"SYMBOL\"",

"\"LOGIC_VALUE\"",

"\"IDENTIFIER\"",

"\"NONE\"",

"\"value\"",

"\"arrayAccess\"",

"\"propertyAccess\"",

"\"functionRun\"",

"\"function\""

]
}
Mind the final elements of the expected list:
"\"arrayAccess\"",

"\"propertyAccess\"",

"\"functionRun\"",

"\"function\""

This forces me to have the same function names as yours. This could be
done but I don't believe it fits the purpose of the homework.
Also, in the case of lexical errors, I believe there could be problems
regarding how jison throws the errors. For example, for lexical_error.alf
https://github.com/UPB-FILS/alf/blob/master/Devoir/alf/verify/alf/1_value/lexical_error.alf
we have this
https://github.com/UPB-FILS/alf/blob/master/Devoir/alf/verify/alf/1_value/lexical_error.alf.json
output:
{
"error": "lexical",
"line": 2,
"text": "Lexical error on line 2: Unrecognized text.\n\n  Erroneous area:\n1: {Lexical error} \r\n2: @54906820 \r\n^..^\n3: "
}
My output, however, looks something like this:
{
"error": "lexical",

"line": "2",

"text": "Lexical error on line 2. Unrecognized text.\n\n Erroneous area:\n1: {Lexical error} \r\n2: @54906820 \r\n3: ----------------^ \r"

}
Your jison detects @ as erronous character, mine catches the error at the
end of the number.
This is the console.log of the messages (to better see the formatting):
Yours
Lexical error on line 2: Unrecognized text.
Erroneous area:
1: {Lexical error}
2: @54906820
^..^
3:
undefined
Mine
Lexical error on line 2. Unrecognized text.
Erroneous area:
1: {Lexical error}
2: @54906820
3: ----------------^
undefined
Please mind that your error throws extra .... as characters when mine
throws ----.
The full error_message is:
{ Error: Lexical error on line 2. Unrecognized text.
@54906820error}
----------------^
at Parser.parseError (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:983:21)

at Object.parseError (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1402:28)

at Object.next (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1657:25)

at Object.lex (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1667:22)

at Object.lex (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1671:25)

at Object.lex (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1671:25)

at lex (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1020:27)

at Parser.parse (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\grammar.js:1033:26)

at Object.<anonymous> (C:\Users\Emanuel\Desktop\UPB\Anul 2 2018-2019\Sem.ll\ALF\Devoirs\D3\alf_lang\index.js:22:23)

at Module._compile (internal/modules/cjs/loader.js:689:30) hash: { text: '', token: null, line: 1 } }

If you find my comment to be relevant, it would be great!
Otherwise, please don't mind me, it's just my view over this 😄
Thanks,
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/UPB-FILS/alf/issues/34#issuecomment-480166031, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ACtOoT6JDUMpggd34cR4hy-F9Bh39qSJks5vdvBjgaJpZM4cXLi-
.

--
Alexandru RADOVICI
Universitatea "Politehnica" din Bucuresti
e-mail<EMAIL_ADDRESS>telefon:<PHONE_NUMBER>
www.ipworkshop.ro

Right, sorry.

It shouldn't be there. It's mistakenly placed. I'll remove it

Please keep me updated when you modify it!

Sorry :D. I'm in classes right now. I'll do it once I get the chance

It shouldn't be there. It's mistakenly placed. I'll remove it

Please keep me updated when you modify it!

fixed it.

Thanks a lot!


Nothing ripped; Throws disc out some seconds after inserting.

With the original config checked into the repo. Same folders and so on.

Deleting 0 old log files:
DEVLINKS=/dev/cdrom /dev/cdrw /dev/disk/by-id/ata-Slimtype_DVD_A_DS8A5SH_103280075052 /dev/disk/by-label/PAUL_BLART_MALL_COP /dev/disk/by-uuid/2009-06-13-07-20-10-77 /dev/dvd /dev/dvdrw
DEVNAME=/dev/sr0
DEVPATH=/devices/pci0000:00/0000:00:11.0/ata2/host1/target1:0:0/1:0:0:0/block/sr0
DEVTYPE=disk
ID_ATA=1
ID_ATA_SATA=1
ID_ATA_SATA_SIGNAL_RATE_GEN1=1
ID_BUS=ata
ID_CDROM=1
ID_CDROM_CD=1
ID_CDROM_CD_R=1
ID_CDROM_CD_RW=1
ID_CDROM_DVD=1
ID_CDROM_DVD_PLUS_R=1
ID_CDROM_DVD_PLUS_RW=1
ID_CDROM_DVD_PLUS_R_DL=1
ID_CDROM_DVD_R=1
ID_CDROM_DVD_RAM=1
ID_CDROM_DVD_RW=1
ID_CDROM_MEDIA=1
ID_CDROM_MEDIA_DVD=1
ID_CDROM_MEDIA_SESSION_COUNT=1
ID_CDROM_MEDIA_STATE=complete
ID_CDROM_MEDIA_TRACK_COUNT=1
ID_CDROM_MEDIA_TRACK_COUNT_DATA=1
ID_CDROM_MRW=1
ID_CDROM_MRW_W=1
ID_FS_LABEL=PAUL_BLART_MALL_COP
ID_FS_LABEL_ENC=PAUL_BLART_MALL_COP
ID_FS_TYPE=udf
ID_FS_USAGE=filesystem
ID_FS_UUID=2009-06-13-07-20-10-77
ID_FS_UUID_ENC=2009-06-13-07-20-10-77
ID_MODEL=Slimtype_DVD_A_DS8A5SH
ID_MODEL_ENC=Slimtype\x20DVD\x20A\x20\x20DS8A5SH\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
ID_REVISION=XA15
ID_SERIAL=Slimtype_DVD_A_DS8A5SH_103280075052
ID_SERIAL_SHORT=103280075052
ID_TYPE=cd
MAJOR=11
MINOR=0
SUBSYSTEM=block
TAGS=:seat:systemd:uaccess:
UDISKS_PRESENTATION_NOPOLICY=0
USEC_INITIALIZED=63842
identified udf
found PAUL_BLART_MALL_COP on /dev/sr0
identified udf as video
failed to get title Traceback (most recent call last):
  File "/opt/arm/getmovietitle.py", line 69, in <module>
    disc_title = clean_for_filename(getdvdtitle())
  File "/opt/arm/getmovietitle.py", line 31, in getdvdtitle
    dvd_title = doc['METADATA']['MDR-DVD']['dvdTitle']
KeyError: 'dvdTitle'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/arm/getmovietitle.py", line 71, in <module>
    disc_title = clean_for_filename(getbluraytitle())
  File "/opt/arm/getmovietitle.py", line 39, in getbluraytitle
    with open(args.path + '/BDMV/META/DL/bdmt_eng.xml', "rb") as xml_file:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/dev/sr0/BDMV/META/DL/bdmt_eng.xml'
got to here
HAS_NICE_TITLE is false
video title is now PAUL_BLART_MALL_COP
video type is unknown
Video Title is PAUL_BLART_MALL_COP
Ripping video PAUL_BLART_MALL_COP from /dev/sr0
Using mkv method of ripping.
STAT: PAUL_BLART_MALL_COP ripped in 0 hours, 0 minutes and 2 seconds.
/opt/arm/video_transcode.sh "/mnt/media/ARM/raw//PAUL_BLART_MALL_COP_20170204_181206" "PAUL_BLART_MALL_COP" "false" "unknown" 20170204_181206
PAUL_BLART_MALL_COP sent to transcoding queue...
Start video transcoding script
transcoding without a nice title
Transcoding all files.
STAT: PAUL_BLART_MALL_COP transcoded in 0 hours, 0 minutes and 0 seconds.
Pushbullet notifications not enabled
IFTTT notifications not enabled
*** Start config parameters ****
ARM_CHECK_UDF=true
GET_VIDEO_TITLE=true
SKIP_TRANSCODE=false
RAWPATH="/mnt/media/ARM/raw/"
MEDIA_DIR="/mnt/media/ARM/Media/Movies/"
LOGPATH="/opt/arm/logs/"
LOGLIFE=1
SET_MEDIA_PERMISSIONS=false
CHMOD_VALUE=777
MINLENGTH="600"
RIPMETHOD="mkv"
MKV_ARGS=""
HB_PRESET="High Profile"
DEST_EXT=mkv
HANDBRAKE_CLI=HandBrakeCLI
MAINFEATURE=false
HB_ARGS="--subtitle scan -F"
PLEX_SUPPORT=false
EMBY_REFRESH=false
EMBY_SUBFOLDERS=true
EMBY_SERVER=""
EMBY_PORT="8096"
EMBY_CLIENT="ARM"
EMBY_DEVICE="ARM"
EMBY_DEVICEID="ARM"
EMBY_USERNAME=""
EMBY_USERID=""
IFTTT_EVENT="arm_event"
LOG=$LOGPATH$LOGFILE
*** End config parameters ****
Starting Identify Script...
Deleting 0 old log files:
DEVLINKS=/dev/cdrom /dev/cdrw /dev/disk/by-id/ata-Slimtype_DVD_A_DS8A5SH_103280075052 /dev/disk/by-label/PAUL_BLART_MALL_COP /dev/disk/by-uuid/2009-06-13-07-20-10-77 /dev/dvd /dev/dvdrw
DEVNAME=/dev/sr0
DEVPATH=/devices/pci0000:00/0000:00:11.0/ata2/host1/target1:0:0/1:0:0:0/block/sr0
DEVTYPE=disk
ID_ATA=1
ID_ATA_SATA=1
ID_ATA_SATA_SIGNAL_RATE_GEN1=1
ID_BUS=ata
ID_CDROM=1
ID_CDROM_CD=1
ID_CDROM_CD_R=1
ID_CDROM_CD_RW=1
ID_CDROM_DVD=1
ID_CDROM_DVD_PLUS_R=1
ID_CDROM_DVD_PLUS_RW=1
ID_CDROM_DVD_PLUS_R_DL=1
ID_CDROM_DVD_R=1
ID_CDROM_DVD_RAM=1
ID_CDROM_DVD_RW=1
ID_CDROM_MEDIA=1
ID_CDROM_MEDIA_DVD=1
ID_CDROM_MEDIA_SESSION_COUNT=1
ID_CDROM_MEDIA_STATE=complete
ID_CDROM_MEDIA_TRACK_COUNT=1
ID_CDROM_MEDIA_TRACK_COUNT_DATA=1
ID_FS_LABEL=PAUL_BLART_MALL_COP
ID_FS_LABEL_ENC=PAUL_BLART_MALL_COP
ID_FS_TYPE=udf
ID_FS_USAGE=filesystem
ID_FS_UUID=2009-06-13-07-20-10-77
ID_FS_UUID_ENC=2009-06-13-07-20-10-77
ID_MODEL=Slimtype_DVD_A_DS8A5SH
ID_MODEL_ENC=Slimtype\x20DVD\x20A\x20\x20DS8A5SH\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
ID_REVISION=XA15
ID_SERIAL=Slimtype_DVD_A_DS8A5SH_103280075052
ID_SERIAL_SHORT=103280075052
ID_TYPE=cd
MAJOR=11
MINOR=0
SUBSYSTEM=block
TAGS=:seat:systemd:uaccess:
UDISKS_PRESENTATION_NOPOLICY=0
USEC_INITIALIZED=63842
identified udf
found PAUL_BLART_MALL_COP on /dev/sr0
identified udf as video
failed to get title Traceback (most recent call last):
  File "/opt/arm/getmovietitle.py", line 69, in <module>
    disc_title = clean_for_filename(getdvdtitle())
  File "/opt/arm/getmovietitle.py", line 31, in getdvdtitle
    dvd_title = doc['METADATA']['MDR-DVD']['dvdTitle']
KeyError: 'dvdTitle'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/arm/getmovietitle.py", line 71, in <module>
    disc_title = clean_for_filename(getbluraytitle())
  File "/opt/arm/getmovietitle.py", line 39, in getbluraytitle
    with open(args.path + '/BDMV/META/DL/bdmt_eng.xml', "rb") as xml_file:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/dev/sr0/BDMV/META/DL/bdmt_eng.xml'
got to here
HAS_NICE_TITLE is false
video title is now PAUL_BLART_MALL_COP
video type is unknown
Video Title is PAUL_BLART_MALL_COP
Ripping video PAUL_BLART_MALL_COP from /dev/sr0
Using mkv method of ripping.
STAT: PAUL_BLART_MALL_COP ripped in 0 hours, 0 minutes and 2 seconds.
/opt/arm/video_transcode.sh "/mnt/media/ARM/raw//PAUL_BLART_MALL_COP_20170204_181228" "PAUL_BLART_MALL_COP" "false" "unknown" 20170204_181228
PAUL_BLART_MALL_COP sent to transcoding queue...
Start video transcoding script
transcoding without a nice title
Transcoding all files.
STAT: PAUL_BLART_MALL_COP transcoded in 0 hours, 0 minutes and 0 seconds.
Pushbullet notifications not enabled
IFTTT notifications not enabled

Failure mails from mbox:
From root@somewhere Sat Feb 04 18:12:31 2017
Envelope-to: root@somewhere
Delivery-date: Sat, 04 Feb 2017 18:12:31 +0100
Subject: Output from your job        7
To: root@somewhere
From: root <root@somewhere>
Date: Sat, 04 Feb 2017 18:12:31 +0100

/opt/arm/config
/opt/arm/identify.sh: line 109: ((: > 0 : syntax error: operand expected (error token is "> 0 ")

&
Message 7:
From root@somewhere Sat Feb 04 18:13:08 2017
Envelope-to: root@somewhere
Delivery-date: Sat, 04 Feb 2017 18:13:08 +0100
Subject: Output from your job        6
To: root@somewhere
From: root <root@somewhere>
Date: Sat, 04 Feb 2017 18:13:08 +0100

rmdir: failed to remove '/mnt/media/ARM/raw//PAUL_BLART_MALL_COP_20170204_181228': No such file or directory
warning: commands will be executed using /bin/sh
job 8 at Sat Feb  4 18:13:00 2017

Try setting "skip_transpose" to "true". This will bypass using handbrake and use makemkv to rip the disc. If that works then it's a problem with handbrake somewhere. I don't transpose, so I won't be of much helpower. But running a test this way will let you see if at least makemkv us functioning normally.


Add support for disabling app-config validation at build time

We're deploying Backstage to several k8s environments and we're using kustomize to define per-environment entrypoints that each include their own app-config.<environment>.yaml config files. In an effort to reduce duplicate configuration, we're consolidating all common configuration into app-config.yaml - this common config includes references to environment variables. Now when we yarn build, it validates app-config.yaml and throws an error if any of the environment variables are missing (which they often are at build time). This means we have to move any common configuration that relies on environment variables back into the environment-specific configs so that app-config.yaml has no environment variables, and then only specify app-config.yaml at build time.
This poses a few questions:

Is this build time validation necessary?
We currently don't specify our app-config.<environment>.yaml configs during build time and things seem to work - that means much of our config already isn't being validated at build time. Should we be specifying them at build time?

Feature Suggestion
Add some kind of --disable-validation flag at build time.
Context

The build docs don't indicate this is possible.
We might be able to handle this by defining a custom schema, but that feels like the wrong approach.

Until we have some way of loading the config from the backend for the frontend, then this needs to be built into the bundle so it needs to be at build time. Think we need to revisit how we're going to do that rather than adding this option. Will come back with an update on a possible way forward! :pray:


Pluralize Words Endings With Numbers

pluralizer.Pluralize("Foo1") gives me "Foo1S" with capital 'S' at the end. I think it is better to pluralize it with lowercase 's'. I expect this: "Foo1s".

I wouldn't consider this a defect as Foo1 is not a real word. However, I'll take a look at this, in the interest of keeping behavior the same as the original library which gives Foo1s as the plural for Foo1.

Seems to be working as expected for me. Please update to the latest version 1.0.2.
Also please make sure you are using the correct library from nuget. (Ref: https://github.com/sarathkcm/Pluralize.NET/issues/16#issuecomment-719708405).
Please close the issue once it works for you.


update @import to @use

The usage of @import has been deprecated.
Global built in functions are also deprecated.
This PR imports sass:string and uses string.to-lower-case instead and changes all @import rules to @use instead.
Angular 19 will throw warnings during compilation - this fixes this issue.
Closes #44

@marella Could you take a look at this PR? It should (in theory) be a quick one.


Requiring lua modules

is there a way to require other lua files and files from lua rocks

you can add the default lua package paths:
package.path = package.path .. ';/usr/share/lua/5.4/?.lua;/usr/share/lua/5.4/?/init.lua;/usr/lib64/lua/5.4/?.lua;/usr/lib64/lua/5.4/?/init.lua;'
and then require luarocks.loader, and now you can require luarocks modules.
maybe i can add the lua package.path for the next release.

yeah i think that should be added by default thanks


now() not working on bind_params

Hi, I am trying to implement bind params on my DataFrameClient query.
The following code returns an error:
params = {"start": "1h",
    "stop": "now()"}
query = """
    SELECT *  FROM alerts
    WHERE
    time >= $start - $end
    GROUP BY
    time(1m)
   """
data = client.query(query, bind_params=params)

Error is as follows:
influxdb.exceptions.InfluxDBClientError: invalid operation: time and *influxql.BinaryExpr are not compatible

If I replace "1hr" and "now()" in params with timestamps then the code compiles fine, like so:
params = {"start": "2020-02-21",
    "stop": "2020-02-22"}
query = """
    SELECT *  FROM alerts
    WHERE
    time >= $start - $end
    GROUP BY
    time(1m)
   """
data = client.query(query, bind_params=params)

If I replace bind_params with just params the following code also works fine:
params = {"start": "1h",
    "stop": "now()"}

query = """
    SELECT *  FROM alerts
    WHERE
    time >= $start - $end
    GROUP BY
    time(1m) """

data = client.query(query, params={"params":json.dumps(params)})


Bug: quick open shows recently-opened files that should be excluded

VSCode Version: 1.4.0
OS Version: Windows 10 (Anniversary Update)

Steps to Reproduce:

Open a file in a subfolder and make some edits, then save and close
Add the folder to the "search.exclude" settings
Quick open and start typing the filename

I want to see files in my "archive" folder in the sidebar so that I can navigate to them if I need to, but I don't want them coming up in searches or to show up via the "quick open" bar. Note that the exclusion settings pictured above were put in place after the file was originally opened.
The fact that a file was recently opened should not cause "search.exclude" settings to be disregarded.

https://github.com/Microsoft/vscode/issues/6502


Make Weaver variable naming consistent

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


feat(option): [select] Option text display with extra long dots and dots，Added icon attribute, supporting custom icons

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

[x] The commit message follows our Commit Message Guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

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

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information


Workflow for creating custom environments

Hi,
I'm an engineer and I'm trying to use MuJoCo for scene-interaction tasks in various environments.
I would like to create rich environments in some 3D editor, and export them as an XMLs for MuJoCo. What's the recommended approach for achieving that? Currently, the only way to create environments is by changing the XML directly, or programmatically.

Currently, the only way to create environments is by changing the XML directly, or programmatically.

That is correct. We are actively working on procedural access to the model compiler (this has been requested multiple times, e.g. in #364) which is slated for H1 2024.
Closing as duplicate.

cc @quagla for visibility


The question about the time of diffusion model training

Hi, I read your work Physics-Driven Diffusion Models for Impact Sound Synthesis from Videos recently, and am really interested in it.
I have questions about the training time of the diffusion model. How long does the diffusion model training take, and approximately how many epochs does it run for?
Appreciate your help.

Hi! Thanks for your interest. The training time of the diffusion model depends on your computational resources. Since the dataset was small, I remembered it might take 10 min to train one epoch using one A6000. In terms of convergence, probably takes around 60 to 100 epochs. Hope this helps, thank you.


Quantization error for vai_q_tensorflow2 : ValueError: Cannot assign value to variable: Shape mismatch.

I had previously trained a retinanet model locally. I am trying to quantize this model using vai_q_tensorflow2 with Vitis AI 2.5. A code block for quantization is as follows:
float_model = tf.keras.models.load_model('snapshots/inference.h5', compile=False, custom_objects=custom_objects) quantizer = vitis_quantize.VitisQuantizer(float_model)
quantized_model = quantizer.quantize_model(calib_dataset=calib_dataset, add_shape_info=True) # gives error here
The error I get is shown below.
Traceback (most recent call last):   File "quantize.py", line 177, in <module>     main()   File "quantize.py", line 173, in main     quant_model(args.float_model, args.quant_model, args.batchsize, args.predict, args.pred_dir)   File "quantize.py", line 116, in quant_model     quantized_model = quantizer.quantize_model(calib_dataset=calib_dataset, add_shape_info=True)   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/vitis_quantize.py", line 841, in quantize_model     self.optimize_model()   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/vitis_quantize.py", line 648, in optimize_model     self._create_optimized_model()   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/vitis_quantize.py", line 362, in _create_optimized_model     quantize_strategy=self._quantize_strategy)   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/vitis_quantize.py", line 1004, in create_optimize_model     model, candidate_layers, layer_metadata)   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/quantize_strategy/pof2s/vitis_pof2s_transforms_pipeline.py", line 82, in apply     model, configs, available_transforms, candidate_layers, layer_metadata)   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/quantize_strategy/pof2s/vitis_pof2s_transforms_pipeline.py", line 54, in _apply_availables     layer_metadata).recursive_transform()   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/graph_transformations/model_transformer.py", line 740, in recursive_transform     self.layer_metadata).transform()   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/graph_transformations/model_transformer.py", line 706, in transform     self._set_layer_weights(layer, weights_map)   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow_model_optimization/python/core/quantization/keras/vitis/graph_transformations/model_transformer.py", line 595, in _set_layer_weights     K.batch_set_value(weight_value_tuples)   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/tensorflow/python/util/traceback_utils.py", line 153, in error_handler     raise e.with_traceback(filtered_tb) from None   File "/opt/vitis_ai/conda/envs/vitis-ai-tensorflow2/lib/python3.7/site-packages/keras/backend.py", line 4019, in batch_set_value     x.assign(np.asarray(value, dtype=dtype_numpy(x))) ValueError: Cannot assign value to variable ' pyramid_regression_0/kernel:0': Shape mismatch.The variable shape (3, 3, 256, 256), and the assigned value shape (3, 3, 256, 36) are incompatible.
I don't know what to do about solving this error. I am sharing my model with the name 'inference.h5' in the link:
https://drive.google.com/file/d/1q_5uZUeR_7J8K6UVnK-dV68qG0fBxV0J/view?usp=share_link

Hi, could you solve the above issue?

Hi @amirversal. Unfortunately i couldn't solve it. For the details, please check #951.

Hi @alpereenkaratas. The retinanet model contains two reused sub-models that vai_q_tensorflow2 does not support currently. For a workaround, we can flatten the sub-models and make several copies depending on reused times.
I will explain the modifications in detail referring to this repo ：

Modify the __build_model_pyramid function as below

def __build_model_pyramid(name, model, features):
    """ Applies a single submodel to each FPN level.

    Args
        name     : Name of the submodel.
        model    : The submodel to evaluate.
        features : The FPN features.

    Returns
        A tensor containing the response from the submodel on the FPN features.
    """
    def _clone_layer_fn():
        def __clone_fn(layer):
            cloned_layer = layer.__class__.from_config(layer.get_config())
            cloned_layer._name += "_"  # this avoids layer name duplication
            return cloned_layer
        return __clone_fn

    model0 = model
    model1 = keras.models.clone_model(model0, clone_function=_clone_layer_fn())
    model2 = keras.models.clone_model(model1, clone_function=_clone_layer_fn())
    model3 = keras.models.clone_model(model2, clone_function=_clone_layer_fn())
    model4 = keras.models.clone_model(model3, clone_function=_clone_layer_fn())
    P3 = model0.call(features[0])
    P4 = model1.call(features[1])
    P5 = model2.call(features[2])
    P6 = model3.call(features[3])
    P7 = model4.call(features[4])
    return keras.layers.Concatenate(axis=1, name=name)([P3, P4, P5, P6, P7])

Create a new model with original weights before quantization

with custom_object_scope(custom_objects):
    float_model = tf.keras.models.load_model('snapshots/inference.h5', compile=False, custom_objects=custom_objects)

    from keras_retinanet.models.resnet import resnet50_retinanet
    resnet_retinanet = resnet50_retinanet(num_classes=4)
    from keras_retinanet.models.retinanet import retinanet_bbox
    model = retinanet_bbox(resnet_retinanet)

    for layer in float_model.layers:
        if isinstance(layer, keras.Model):
            for sublayer in layer.layers:
                if sublayer.__class__.__name__ == "InputLayer":
                    continue  # skip submodel's input

                extracted_weights = sublayer.get_weights()
                layer_basename = sublayer.name
                for i in range(5):
                    model.get_layer(layer_basename).set_weights(extracted_weights)
                    layer_basename += '_'  # this discriminates the 5 copies of submodels
        else:
            model.get_layer(layer.name).set_weights(layer.get_weights())

    model.save('./snapshots/inference_flattened.h5')

Now the new saved inference_flattened.h5 can be loaded again and fed into the quantizer.
Notes
When quantizing the new inference_flattened.h5, you may encounter a new error related to BatchNormalization. This is because the BatchNormalization layer in the model comes from customized keras_resnet.layers._batch_normalization.BatchNormalization instead of standard tf.keras.layers. BatchNormalization.
So we can switch them back:
float_model = tf.keras.models.load_model('./snapshots/inference_flattened.h5', compile=False, custom_objects=custom_objects)
clone_fn = lambda layer : keras.layers.BatchNormalization(name = layer.name, weights = layer.get_weights()) \
                              if layer.__class__.__name__ == "BatchNormalization" else layer
cloned_model = keras.models.clone_model(float_model, clone_function=clone_fn)
cloned_model.save('./snapshots/inference_flattened_replaced.h5')

This issue has been inactive for 4 months, so we will close it for now. If you have any further concerns or need assistance, please feel free to reopen it at any time.


adding crawlera_apikey support

fixes #7
The idea is to only add:
settings:
CRAWLERA_APIKEY = 'someapikey'

spider:
crawlera_apikey = 'someapikey'

no password needed, and this takes precedence over CRAWLERA_USER

Can we merge this ? @eLRuLL can we also remove CRAWLERA_USER and CRAWLERA_PASS from README ?
So new users will use just CRAWLERA_KEY.

@krotkiewicz readme updated.

Please also squash commits @eLRuLL

updated

who is going to merge this? @amleczko ?


Issues

Fixes #57
Fixes #81

Any ideas why they are failed?

Why webpack canary is default?

Latest is default

Canary run once in Travis on Node8

You merged a few PR's, but some don't conform to the Angular Commit Convention, standard-version (webpack-defaults) requires this convention for  CHANGELOG autogeneration. Please rebase the history, I normally at least check if the PR commit message conforms bit you were faster :D I will mark the conflicting commits here

[2d7e1a0]https://github.com/webpack-contrib/worker-loader/tree/02d7e1a098b4fb961f9d95d371eb97251c4886b5 => 'chore(release): 0.8.1'
#80 => 'test: improve named workers via options'
#79 => 'docs(README): add typescript example'
#78 => 'feat: add options validation (schema-utils)
#66 => 'docs(README): add worker message example'

Any news on this PR? This is blocking our update to Webpack 3.

Is there anything we can do to help this PR along?  We're unable to upgrade to webpack v3 until this is merged 🙁

@TrySound @d3viant0ne - Any updates with this PR? I can pick up where the PR left off to get the tests passing on Travis but wanted to check in first so i don't duplicate anything that has already been done.

@dbslone No updates yet. You may finish it.

The tests are passing locally for me. At first I thought it was because I was on node 8 but after installing node 6.11 the tests are still passing.
Is anything else left for this PR to be approved?

@dbslone - Taking a look at this now

@TrySound Any hint what's wrong with the failing tests ? :)

Seems like an api change. children or chunks in tests was renamed I guess.

Got it stats.toJson('minimal') => stats.toJson()  🎉  😛


app: Fix adding extra paths to PATH env var on Mac

The command we were using to get the env vars was not yielding any different results than what we had for the PATH already, so this patch adds the /usr/local/bin path directly when it's missing, as fix-path does too: https://github.com/sindresorhus/fix-path/blob/main/index.js
Related: #1716

Here is the Mac build for this PR: https://github.com/headlamp-k8s/headlamp/actions/runs/10427218797
(You have to be logged in to Github to be able to download the DMGs at the bottom of that action run)

Closing in favor of #2248 .


Problem with installing rpi backlight on Volumio.org

Hello
I have installed the latest Volumio and am having trouble installing a button script that can control the official display backlight for Raspberry Pi.
The full tutorial I use is on this forum:
https://community.volumio.org/t/guide-for-setting-up-touchscreen-backlight-control/9666
First I install "Python GPIO", then "Python backlight library" and when installing "sudo pip install rpi_backlight" it encounters an error that I cannot solve. I would like to add that the old version of Volumio from 2 years ago installed without any problems and everything worked as it should.
Sorry for my english but this is google translation.
Below is a photo with this error.

I would like to ask for your help because I care about this function. Thank you. Thomas :)

This happens when you use a version of Python < 3.5, which is not supported by this project (even 3.5 itself has reached end of life).
The tutorial seems to use Python 2, just use 3. :)

Thank you for your response. Unfortunately, I still have a problem with that. I install as below but there are still bugs. Unless I saw it wrong?
Python GPIO:
wget https://sourceforge.net/projects/raspberry-gpio-python/files/raspbian-wheezy/python3-rpi.gpio_0.6.2~wheezy-1_armhf.deb
Install:
sudo dpkg -i python3-rpi.gpio_0.6.2~wheezy-1_armhf.deb
Please help. Thank you.

rpi-backlight has no 3rd-party dependencies, therefore this is completely unrelated. If it's from that tutorial you mentioned, please ask its author instead. Generally speaking though, no one will be able to help you if you're not giving them more detailed descriptions - you mention problems/"bugs" but don't specify what happens.

Sorry for the lack of specificity. After entering the above command, the error like below pops up.


Rtmp live streaming from 2 different source

Hello guys,
I'm trying to send video and audio from 2 different source to rtmp.
Video : i have hdmi input (for now i'm able to getting the bytes and to send it with ffmpeg with parcelFileDescriptor.createPipe, and is working)
Audio : i have mic, and i can record as standard microphone
but now i have to mux audio and video, the pb is ffmpeg support only one pipe,
so i checked for some other way than calling the binary of ffmpeg
so as i checked in your lib by default is not possible to use like how i want, but check a bit the code and 2 way seems to be good choice
1/ stream Surface + audio from MediaRecorder(or someting like this)
2/ Direclty send the bytes of video to srsFlvMuxer.sendVideo  + audio from MediaRecorder(or someting like this)
could you please tell me if one solution is possible (or both), for now i'm trying to do the 1st solution but ( the rtmp connection is done, but nothing is send, cause i think i didn't know exactly how to send the video from VideoEncoder to srsFlvMuxer)
Best

Both is possible but in the first you can't get audio from MediaRecorder you need do it from AudioRecorder like in my library.
I recommend you try this way replacing cameraManager to a custom class but with your hdmi source. You can do it with nv21 byte array or with surface as you want:
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/master/encoder/src/main/java/com/pedro/encoder/input/video/Camera1ApiManager.java
In the second case you need create H264 video buffer and AAC audio buffer (this last from AudioRecord for example) and send it to SrsFlvMuxer.
For tis implementation you need know that "MediaCodec.BufferInfo info" is only a class that could be set with a empty instance of it with modify timestamp with the current timestamp of your buffer like here:
https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/master/encoder/src/main/java/com/pedro/encoder/video/VideoEncoder.java#L464

Thanks you very much for your anwser,
I understood some important thing with your message,  and first of all i will need to know exactly which color are sent from the hdmi input, the main problem is realtek didn't provide any datasheet :S, so btw i record the hdmi input and i check the media info  then i got this result
Color space :
YUV
Chroma subsampling :
4:2:0
Chroma subsampling :
4:2:0
Bit depth :
8
Bit depth :
8 bits
which seems good according to wikipedia : https://en.wikipedia.org/wiki/YUV#Y′UV420sp_(NV21)to_RGB_conversion(Android)
but i'm not sure at 100% but i will continue to dive into this to know that important information.


Simpler float test

As long as we are only testing float values within the range of precision
of the underlying datatype we should not require approximation. Any
deviation of the value from the bytes should be an error.

Good catch. Thanks!


Test is causing valgrind errors + possible segfaults: <ouch><!-----></ouch>

See various errors around this test when running under perl6-valgrind-m
All the way from libxml2  2.8.0 to 2.9.9+ blead.
Suspect there may be a issue within the library. Withdrawing the test pending further investigation.

Ah that's related to the bug-fix I submitted earlier to libxml2: https://github.com/GNOME/libxml2/commit/3c0d62b4193c5c1fe15a143a138f76ffa1278779
Is actually running clean on the blead. I'll keep this open while I wait for the next libxml2 point release.

libxml2 2.9.10 has been released, which includes this bug-fix.


Need data model documentation

by that I mean fully document the data that flows in and out the middle tier (topics, etc) that are totally abstracted from any underlying store (e.g. plug in azure table storage, reddis, cosmos, etc)

i think this just boils down to naling the Swagger definition?

I think this is resolved by the Swagger stuff? Agree?


v1.3 scan: Facilities API Med 2

CampDAPI_Med&Lows.xlsx
DNS Rebinding allows a malicious host to spoof or redirect a request to an alternate IP address,
potentially allowing an attacker to bypass security authentication or authorization.  DNS resolution
on its own does not properly constitute a valid authentication mechanism.  Servers should validate that
the Host header of the request matches the expected hostname of the server.  In cases where the hostname
is missing or does not match the expected value, the server should return a 400.  The X-Forwarded-Host
header is sometimes used instead of the Host header in cases where the request is being forwarded.  In
these cases, the X-Forwarded-Host header should also be validated if it is being used to determine the
Host of the original request.
DNS Rebinding on 'https://api.epa.gov/easey/staging/facilities-mgmt/facilities?page=100&perPage=100&stateCode=AL&epaRegion=string-without-format'

I did able to recreate the scan issue.
Add HOST in header key and gives the different value instead of ‘api.epa.gov’ then it’s returning the 404 error.
it’s not hitting in the application routes and not shows any logs.
Nginx throws 404 error instead of 400 error.

False Positive. Approved reclassification on 3/4/2040


Enable error prone for immutables

Related to: #4188
This PR enables ImmutableEnumChecker, ImmutableAnnotationChecker, Immutable, ImmutableModification

Thanks for the review, I guessed it didn't bring much benefits, that we need to have additional dependencies error_prone_annotations and guava, and we also need to have @SuppressWarning to Suppress false positives.
What do you think?

Because there is some limitation from error prone Immutable checks, I guessed it's not a good idea to enable it for now.

Thank you @chhsiao90 for taking the time to analyze that and come up with potential options.
I think I agree with you, but I would like to hear @electrum 's thoughts as well.

@chhsiao90 thanks for doing the work to explore adding this check. It's very useful to see what it looks like in practice, so that we can judge the tradeoffs involved.
The checker seems to be fairly limited in scope. It verifies that any class annotated with @Immutable is actually immutable, by relying on its knowledge of specific JDK and Guava classes. Anything it doesn't know about must itself be declared as @Immutable. Basically, instead of doing the analysis itself across the dependency tree, it does it one step at a time and requires encoding the result into the source code via the @Immutable annotation.
In terms of code changes, there seems to be two major things needed:

Tag all immutable classes. We can start small and expand the "bubble" as needed.
Use immutable classes like ImmutableList in field declarations. Using such concrete types goes against our current coding standard (we also wouldn't declare fields as ArrayList), but seems reasonable for fields, as that's an internal detail of classes. Having methods return ImmutableList and such would be a bigger change.

There are a couple of annoyances:

Does not support other annotations like javax.annotation.concurrent.Immutable.
No way to annotate external classes from libraries, such as Duration and DataSize. Either the external library must be updated, or every usage site must be suppressed. Ideally, you could configure the checker with a list of immutable classes.

Are the checks useful and worthwhile?


Web part is not showing up in sharepoint site

Category

[ ] Question
[x] Bug
[x] Enhancement

Authors
@wobba
https://github.com/SharePoint/sp-dev-fx-webparts/tree/dev/samples/react-script-editor
Expected or Desired Behavior
I am trying to test the sample with your code
https://github.com/SharePoint/sp-dev-fx-webparts/tree/dev/samples/react-script-editor
it is working fine in local host but not showing up in web part share point site
Steps to Reproduce
I have follwed the steps given in the link (https://github.com/SharePoint/sp-dev-fx-webparts/tree/dev/samples/react-script-editor)
It might throw different error and warnings.
Let me know the dependencies.
kindly help me resolve this issue.
Thanks for your contribution! Sharing is caring.

Is it a modern site? If so you must either enable it to allow custom scripting, or build the part to work on all sites by changing the manifest.

To add to @wobba's point, you can find the documentation on that here.

@wobba ,Yes it is a Modern site.
build the part to work on all sites by changing the manifest.:what changes should i do for it in manifest?.
Kindly explain in detail.
@itsknob ,thanks for the documentation.

@wobba and @itsknob custom script option is enabled.
Kindly help me solve this issue.
Thanks.

@Azhakeswari as long as you know what you are doing, and implications of allowing this web part all over, do the following.
Edit ScriptEditorWebPart.manifest.json and change requiresCustomScript to false. Then rebuild. This allows you to install the part on any site, regardless of the allowing custom script or not - even though the web part clearly allows custom script. It's a reason why the default parameters are set this way :)

Hi,
Hello world web part is working fine in Modern Team site,Communication site as well as in classic team site.
But the script which i tested from this link(https://github.com/SharePoint/sp-dev-fx-webparts/tree/master/samples/react-script-editor) is not showing up in Modern Teamsite and CommunicationSite.
@wobba Kindly help me solve this issue.
Thanks.

Thanks @wobba it is working fine...:)

And for anyone reading this thread. You should really think things thru before going this route. If it's custom functionality you might be better off creating a custom SPFx part with that logic instead of using this poor-mans migration route.

Hi,
It worked fine previously.But now getting the below error,
[SPLoaderError.loadComponentError]:
***Failed to load component "3a328f0a-99c4-4b28-95ab-fe0847f657a3" (ScriptEditorWebPart).
Original error: ***Failed to load URL 'https://localhost:4321/dist/script-editor-bundle.js' for resource 'script-editor-bundle' in component '3a328f0a-99c4-4b28-95ab-fe0847f657a3' (ScriptEditorWebPart). There was a network problem.
Make sure that you are running 'gulp serve' and you have run 'gulp trust-dev-cert'.
***INNERERROR:
***Failed to load URL 'https://localhost:4321/dist/script-editor-bundle.js' for resource 'script-editor-bundle' in component '3a328f0a-99c4-4b28-95ab-fe0847f657a3' (ScriptEditorWebPart). There was a network problem.
Make sure that you are running 'gulp serve' and you have run 'gulp trust-dev-cert'.
***CALLSTACK:
Error
at t [as constructor] (https://spoprod-a.akamaihd.net/files/sp-client-prod_2018-08-27.013/sp-pages-assembly_en_95dc97007fd8cd2ab06559627831a437.js:729:15996)
at new t (https://spoprod-a.akamaihd.net/files/sp-client-prod_2018-08-27.013/sp-pages-assembly_en_95dc97007fd8cd2ab06559627831a437.js:1589:21639)
at Function.e.buildErrorWithVerboseLog (https://spoprod-a.akamaihd.net/files/sp-client-prod_2018-08-27.013/sp-pages-assembly_en_95dc97007fd8cd2ab06559627831a437.js:1589:15594)
at Function.e.buildLoadComponentError (https://spoprod-a.akamaihd.net/files/sp-client-prod_2018-08-27.013/sp-pages-assembly_en_95dc97007fd8cd2ab06559627831a437.js:1589:11625)
at https://spoprod-a.akamaihd.net/files/sp-client-prod_2018-08-27.013/sp-pages-assembly_en_95dc97007fd8cd2ab06559627831a437.js:1589:69925
It is behaving weird.Sometimes working sometimes not working.
I have removed the app and added again,but no luck.
Kindly help.


Revise universal cloud regions and machine types

Cloud vendors are famous for deprecating old offerings and creating new ones at breakneck speed, and users will have a better experience if they adhere to the most recent vendor-specific regions and machines. For those users that don't care about the details, we can provide some reference values for each vendor as part of our own documentation, but hardcoding them as we're doing now might not be a good idea.

Are we speaking about types and regions?

Yes

The mapping looks like a handy feature. In some cases, I don't care where the job is running and cross-cloud "interoperability" helps me.
At the same time, we should fully support all the real regions and not "being smart" about the mapping and provide full control. I don't see how this "smart logic" contradicts with full control. If a user specifies an actual region us-west-2 then we should support it properly, if user uses us-west - CML can do the smart mapping and ensure cross-cloud interoperability.

Useful ideas from this Slack thread:
Common format
To my mind, universal, human–readable quantities provide the best user experience, allowing users to specify the task requirements. Our code would be in charge of finding the cheapest/smallest instance that fulfills those requirements.
Still, this approach has a really important downside: there is no way to specify an exact instance type.
resources:
  cores: 8
  memory: 16
  accelerators:
    nvidia-tesla-k80: 4
  storage: 512

Memory and starge requirements could be gigabytes or, perhaps, arbitrary units from docker/go-units→size.go

Current equivalences

Type
Minimum
aws
az
gcp
k8s

m
8 CPU cores16 GB of RAM
m5.2xlarge
Standard_F8s_v2
e2-custom-8-32768
cpu: 8memory: 32G

l
32 CPU cores64 GB of RAM
m5.8xlarge
Standard_F32s_v2
e2-custom-32-131072
cpu: 32memory: 128G

xl
64 CPU cores128 GB of RAM
m5.16xlarge
Standard_F64s_v2
n2-custom-64-262144
cpu: 64memory: 256G

m+k80
4 CPU cores53 GB of RAM1 × NVIDIA Tesla K80
p2.xlarge
Standard_NC6
custom-8-532481 × nvidia-tesla-k80
cpu: 4memory: 64G1 × nvidia-tesla-k80

l+k80
12 CPU cores112 GB of RAM2 × NVIDIA Tesla K80
p2.8xlarge
Standard_NC12
custom-32-1310724 × nvidia-tesla-k80
cpu: 32memory: 512G8 × nvidia-tesla-k80

xl+k80
24 CPU cores212 GB of RAM4 × NVIDIA Tesla K80
p2.16xlarge
Standard_NC24
custom-64-212992-ext8 × nvidia-tesla-k80
cpu: 64memory: 768G16 × nvidia-tesla-k80

m+v100
4 CPU cores61 GB of RAM1 × NVIDIA Tesla V100
p3.xlarge
Standard_NC6s_v3
custom-8-65536-ext1 × nvidia-tesla-v100
cpu: 8memory: 64G1 × nvidia-tesla-v100

l+v100
12 CPU cores224 GB of RAM2 × NVIDIA Tesla V100
p3.8xlarge
Standard_NC12s_v3
custom-32-262144-ext4 × nvidia-tesla-v100
cpu: 32memory: 256G4 × nvidia-tesla-v100

xl+v100
24 CPU cores448 GB of RAM4 × NVIDIA Tesla V100
p3.16xlarge
Standard_NC24s_v3
custom-64-524288-ext8 × nvidia-tesla-v100
cpu: 64memory: 512G8 × nvidia-tesla-v100

https://github.com/iterative/terraform-provider-iterative/pull/525#issuecomment-1106217871

https://github.com/infracost/cloud-pricing-api
https://github.com/scalyr/cloud-costs
https://github.com/catalyst-cloud/catalystcloud-price-comparison
https://github.com/sourabh-kumar-ML/Cloud-Instance-Price-Prediction 🤖


lug: bump mirror-clone to 2.21

https://github.com/sjtug/mirror-clone/pull/97
fix https://github.com/sjtug/mirror-requests/issues/213

deprecated in favor of #278


[release-2.4] Validate query inputs

Signed-off-by: Jorge Padilla<EMAIL_ADDRESS>Related Issue: https://github.com/stolostron/backlog/issues/23796
Description of changes

Merge #203 to release-2.4 branch
Adds input validation.

PR for release-2.5 #205  should be merged first.

/lgtm
/hold

@atifshafi  QE Required for this.

/hold

/unhold


fix(api): restrict the labware that can be moved to the plate reader.

Overview
This pull request restricts labware that can be loaded or moved onto a plate reader slot

Contains 96 wells exactly
Is below a certain height restriction (16 mm)

This also restricts the wavelengths that can be used
Closes: PLAT-541
Test Plan and Hands on Testing

[x] Load and move labware on a plate reader with a height 15mm or less
[x] Make sure we raise LabwareMovementNotAllowedError if the labware is not 96 wells or the height is > 15mm
[x] Make sure we only accept wavelengths in the range of 350 - 1000 nm or throw analysis error otherwise
[x] Make sure we only accept 1 wavelength in single mode and 1-6 wavelengths in multi-mode or throw analysis error otherwise.

Changelog

add raise_if_labware_incompatible_with_plate_reader that checks labware compatibility with the plate reader
use raise_if_labware_incompatible_with_plate_reader in LoadModule and MoveLabware commands.
Add checks to absorbance reader PAPI commands so we fail during analysis if we have invalid wavelengths

Review requests

is the labware.py module the correct location for raise_if_labware_incompatible_with_plate_reader

Risk assessment
low

I'm getting simulation/analysis errors just trying to load a plate reader on this branch. Is this something wrong with my setup?
Protocol (truncated, but it fails on line 23, the one that starts pr =)

requirements = {"robotType": "Flex", "apiLevel": "2.21"}

def run(protocol: protocol_api.ProtocolContext):
    # load tip rack
    tiprack = protocol.load_labware(
        load_name="opentrons_flex_96_tiprack_1000ul", location="C3"
    )
    # attach pipette to left mount
    pipette = protocol.load_instrument(
        instrument_name="flex_1channel_1000",
        mount="left",
        tip_racks=[tiprack]
    )
    # load well plate in deck slot D2
    plate = protocol.load_labware(
        load_name="corning_96_wellplate_360ul_flat", location="D2"
    )
    # load trash bin
    trash = protocol.load_trash_bin("A3")

    pr = protocol.load_module(
        module_name="absorbanceReaderV1",
        location="D3"
    )

Result
ProtocolCommandFailedError [line 23]: Error 4000 GENERAL_ERROR (ProtocolCommandFailedError): LabwareNotLoadedError: Labware 87f8d4f8-4a13-4351-aab3-87d991554d43 not found.
Caught exception: {'message': 'Task was destroyed but it is pending!', 'task': <Task pending name='Task-17' coro=<Poller._poll_forever() done, defined at /Users/edwardcormany/opentrons/api/src/opentrons/hardware_control/poller.py:76> wait_for=<Future pending cb=[Task.task_wakeup()]>>}

Yeah there was a bug, should be fixed now.

It loads and the restrictions on wavelengths are working now too! Fantastic.
One question: do we care to distinguish between loading and moving oversize labware to the reader? Currently they both raise the same error:
    reservoir = pr.load_labware(
        name="usascientific_12_reservoir_22ml",
    )

ProtocolCommandFailedError [line 29]: Error 4000 GENERAL_ERROR (ProtocolCommandFailedError): LabwareMovementNotAllowedError: Cannot move 'usascientific_12_reservoir_22ml' into plate reader because the labware contains 12 wells where 96 wells is expected.


multi-user use case, trying to avoid "token sharing"

I'm trying to use dremio_client in an existing django app, where dremio_client must act with the connected user's privilege level.
It mean that if an admin and a non admin user are using the app at the same time, dremio_client must use the admin privilege on dremio with the admin user and the non-admin privilege with the non-admin user.
The authentication in dremio is passed either throught a yaml file (seems inapropriate in this use case) or throught environment variables (which seems more appropriate).
Howerver if I use environment variables I'm not quite sure I understand how dremio_client will manage the "session" (will it store and reuse of the token in a file with the use of the _existing_token method, or if not reauth for each and every request?)
it seems either there's a risk the token will be shared amongst user, or that it will suffer performance problem by reauthenticating at every request. Since this webapp is there to launch batch processing on thousands of VDS, I'm concerned.
Maybe we could add a possibility to init the client with a preexisting token ? I'm willing to work on it but I don't understand the codebase enough to be sure that's the best way to solve my issue.
Let me add that I'm a django total beginner.
Could you share your thoughts on this please ?
Thanks.

Hey @insatomcat
I have done the following in the case of multiple Dremio environments for the same user:
The dremio client takes a config path as an argument so I set up a directory for each environment and put the relevant yaml config there. Depending on which environment I want to work with I pass the relevant directory into the client at construction.
The client also writes an auth.json file into the config directory saving the current token. On construction the client checks if the token is still valid and uses it rather than re-authenticating.  If the token has expired we will have to re-auth.
Note the init method also takes a config_dict argument in which you can add parameters without setting env variables (eg {'auth.password': 'foobar'}).
I would probably use the config dir model for everything but your passwords and let the client store the auth tokens in that directory as well. The passwords I would likely store in a more secure way and pass in via the dict method. Make sense?
If you are inclined to pass the token directly the conf and auth modules are the places to look. I am not 100% convinced that exposing the token is the way to go. Part of the original design was to hide as much as possible of the internal workings of Dremio's REST api from the user.

Thank you for your answer. I understand your willingness to hide the internals, but it's a tradeoff which then requires to write the token on disk and so makes the config dir model inevitable.
As I would prefer to stay in memory, couldn't the token be stored somewhere in the client object, instead of on disk ?


Remove trailing empty line in copyright comment (part 17)

The last part of https://github.com/helidon-io/helidon/pull/5324 .
P.S. There is some misunderstanding in my head.
There are no warnings in the log, but I can see empty lines in the code.

Does the command mvn validate  -Pcheckstyle check all files? I run from the root folder.

Checkstyle does not validate the copyright. How about mvn validate -Pcopyright ?

/trigger

Yes, I ment copyright. It's only typo in my message.

@romain-grecourt  Thank you, but I have the same result. It doesn't see other files.

It's a bug in the enforcer plugin, I'll file an issue for it.
The plugin discovers all files and then filters them using .gitignore ; the top-level .gitignore contains a line with profile and that excludes lines that contain the word profile.
E.g.
 mvn -f examples/pom.xml validate -Pcopyright -N -X | grep 'Excluding' | grep 'examples/microprofile' | grep 'SimpleAPIFilter'
[DEBUG] Excluding examples/microprofile/openapi-basic/src/main/java/io/helidon/microprofile/examples/openapi/basic/internal/SimpleAPIFilter.java

See https://github.com/helidon-io/helidon-build-tools/issues/839 CC @tomas-langer


Added method name to method missing error

Added method name to NoMethod error for issue #8

Trying to force new travis build.

Triggering a new build after pushing some stuff to master.


[FALSE-POSITIVE]

https://online1.snapsurveys.com
Please list any domains and links listed here which you believe are a false positive.
More Information
How did you discover your web site or domain was listed here?
We did have some trial accounts that were abusing the site, these accounts have now been removed. Currently we've stopped any further trial accounts while we investigate options for avoiding re-occurrence in the future.
Have you requested removal from other sources?
We're using VirusTotal to monitor our listings and get them removed.
Additional context
Add any other context about the problem here.
:exclamation:
We understand being listed on a Phishing Database like this can be frustrating and embarrassing for many web site owners. The first step is to remain calm. The second step is to rest assured one of our maintainers will address your issue as soon as possible. Please make sure you have provided as much information as possible to help speed up the process.
Send a Pull Request for faster removal
Users who understand github and creating Pull Requests can assist us with faster removals by sending a PR to mitchellkrogza/phishing repository, on the falsepositive.list file

https://github.com/mitchellkrogza/phishing/blob/main/falsepositive.list
Please include the same above information to help speed up the whitelisting process.

Hi,
I wonder if you have any update on when you'll be reviewing our listing. The following is a few more details we've been able to gather:
Please list any domains and links listed here which you believe are a false positive.
online1.snapsurveys.com
More Information
How did you discover your web site or domain was listed here?
Via VirusTotal.com
Have you requested removal from other sources?
We've been removed from Virgin Websafe, Sky Shield, Vipre & Abusix. This is the only platform that is yet to de-list us.
Many thanks.


[Minor] Fix Android Demo LLVM version

Should fix #3958
@tqchen

BTW, as TVM might be sub-moduled by other frontend libraries, their compilation flags USE_XXX may conflict. What is the best practice here? Should we prefix those flags as TVM_USE_XXX? Thanks!

Thanks @junrushao1994


[D3D12] E_ACCESSDENIED on CreateSwapChainForHwnd

Short info header:

GFX version: 38c6a9cf3fec8fe78193b27792145245c086ca6e (somewhat recent master)
OS: Windows 10
GPU: Intel® UHD Graphics 620

When resizing the window the swapchain fails to be recreated with an E_ACCESSDENIED on CreateSwapChainForHwnd
error on swapchain creation 0x80070005
This seems to only happen on Intel GPUs.

I'm the one experiencing this bug, so let me know if I can do anything to help!

Thanks for filing the issue! Does it happen for you with the quad example?
If not:

are you initializing from winit or something else?
based on a similar thread it could be that the HWND handle dies. We don't retain it after a surface is created with it.
could you provide a test case (figuring out the differences with the example would help)?

I didn't try fully investigating this yet, but this seems to be related to Game Capture (maybe also other forms of capture) of OBS. Then it also happens on NVidia GPUs and probably every other GPU too, so this isn't specifically an Intel problem.

Could you clarify what "Game Capture" and "OBS" mean here? @CryZe

OBS is Open Broadcast Software, which is used for doing livestreams. https://obsproject.com/
So if you use it for capturing the game using gfx-hal (and the D3D12 backend) (it probably needs to be specifically the "Game Capture" option), then resizing the window crashes it with the error in the opening post.

@CryZe could you try a simple workaround like this - https://github.com/gfx-rs/wgpu/commit/ecaacfa20e0a4f4de6802303ec6b529d822a30bd#diff-85d17e36ebfabf7f5c8cd58cae20a156R1528

I could try this, but probably not till Thursday or Friday.

On Mar 5, 2019, at 9:26 PM, Dzmitry Malyshau<EMAIL_ADDRESS>wrote:
@CryZe could you try a simple workaround like this - gfx-rs/wgpu@ecaacfa#diff-85d17e36ebfabf7f5c8cd58cae20a156R1528
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

I already have a wait_idle() there, so that doesn't seem to help.

Skimming a bit through OBS source, I would say this is rather an issue on their side than ours. Nothing stops us from recreating swapchains on the fly but OBS doesn't seem to handle that case. Recreation is currently what's happening in the resize code. Friction between gfx's dx12 backend and OBS will be reduced once we implement support for a ResizeBuffers variant, which is the preferred but more limited way of resizing. In 95% of the cases ResizeBuffers would be fine but doesn't provide full functionality of Vulkans swapchain handling.

Crudly hacked in support for ResizeBuffers and the crash disappeared