New metadata injection implementation

Is there a master issue covering the annotation based MDI support?  Any reason not to squash the base implementation commits?

Possibly BACKLOG-5565 for the "master issue."  Regardless, all commits need a JIRA case otherwise there will be violations in an engops report.

@mdamour1976 @deinspanjer Fixed and rebased

The new getAsJavaType method looks good, but we need some unit tests to support it.
Once those are included, Mike and I will run the test and coverage report stuff and it should be good to merge.

@deinspanjer I added unit test

Build Commands:
Build:

rm -r ~/.kettle; rm -r ~/.pentaho; echo removed hidden folders
ant -Dpentaho.coding.standards.version=1.0.1 -Djunit.jvmargs=-XX:PermSize=256m -f core/build.xml clean-all resolve jacoco jacoco-integration checkstyle publish-local
ant -Dpentaho.coding.standards.version=1.0.1 -Djunit.jvmargs=-XX:PermSize=256m -f engine/build.xml clean-all resolve jacoco jacoco-integration checkstyle publish-local
ant -Dpentaho.coding.standards.version=1.0.1 -Djunit.jvmargs=-XX:PermSize=256m -f ui/build.xml clean-all resolve jacoco jacoco-integration checkstyle publish-local

Cleanup:
rm -r ~/.ivy2/local || echo no publish local to remove
Changed files:
core/src/org/pentaho/di/core/RowMetaAndData.java
core/test-src/org/pentaho/di/core/RowMetaAndDataTest.java
engine/src/org/pentaho/di/core/injection/Injection.java
engine/src/org/pentaho/di/core/injection/InjectionDeep.java
engine/src/org/pentaho/di/core/injection/InjectionSupported.java
engine/src/org/pentaho/di/core/injection/bean/BeanInjectionInfo.java
engine/src/org/pentaho/di/core/injection/bean/BeanInjector.java
engine/src/org/pentaho/di/core/injection/bean/BeanLevelInfo.java
engine/src/org/pentaho/di/trans/TransPainter.java
engine/src/org/pentaho/di/trans/step/StepMetaInjectionInterface.java
engine/src/org/pentaho/di/trans/step/StepMetaInterface.java
engine/src/org/pentaho/di/trans/steps/fileinput/BaseFileInputField.java
engine/src/org/pentaho/di/trans/steps/fileinput/BaseFileInputStepMeta.java
engine/src/org/pentaho/di/trans/steps/fileinput/text/TextFileFilter.java
engine/src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMeta.java
engine/src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMetaInjection.java
engine/src/org/pentaho/di/trans/steps/fileinput/text/messages/messages_en_US.properties
engine/src/org/pentaho/di/trans/steps/metainject/MetaInject.java
engine/src/org/pentaho/di/trans/steps/metainject/MetaInjectData.java
engine/src/org/pentaho/di/trans/steps/streamlookup/StreamLookupMeta.java
engine/test-src/org/pentaho/di/core/injection/BaseMetadatInjectionTest.java
engine/test-src/org/pentaho/di/core/injection/MetaAnnotationInjectionTest.java
engine/test-src/org/pentaho/di/core/injection/MetaBeanLevel1.java
engine/test-src/org/pentaho/di/core/injection/MetaBeanLevel2.java
engine/test-src/org/pentaho/di/core/injection/MetaBeanLevel2Base.java
engine/test-src/org/pentaho/di/core/injection/MetaBeanLevel3.java
engine/test-src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMetaInjectionTest.java
engine/test-src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMetaNewInjectionTest.java
ui/src/org/pentaho/di/ui/trans/steps/metainject/MetaInjectDialog.java
Checkstyle violations:
See: https://github.com/pentaho/pentaho-coding-standards
File engine/src/org/pentaho/di/trans/TransPainter.java

Message: Unused import - org.pentaho.di.trans.step.StepMetaInjectionInterface. at Line: 52 Column: 8

File engine/src/org/pentaho/di/trans/steps/fileinput/BaseFileInputField.java

Message: '{' at column 5 should be on the previous line. at Line: 570 Column: 5

File engine/src/org/pentaho/di/trans/steps/fileinput/BaseFileInputStepMeta.java

Message: '(' is not followed by whitespace. at Line: 130 Column: 16
Message: ')' is not preceded with whitespace. at Line: 130 Column: 36
Message: '=' is not followed by whitespace. at Line: 130 Column: 21
Message: '=' is not preceded with whitespace. at Line: 130 Column: 20
Message: '(' is not followed by whitespace. at Line: 134 Column: 16
Message: ')' is not preceded with whitespace. at Line: 134 Column: 39
Message: '=' is not followed by whitespace. at Line: 134 Column: 21
Message: '=' is not preceded with whitespace. at Line: 134 Column: 20
Message: '(' is not followed by whitespace. at Line: 138 Column: 16
Message: ')' is not preceded with whitespace. at Line: 138 Column: 47
Message: '=' is not followed by whitespace. at Line: 138 Column: 21
Message: '=' is not preceded with whitespace. at Line: 138 Column: 20
Message: '(' is not followed by whitespace. at Line: 141 Column: 16
Message: ')' is not preceded with whitespace. at Line: 141 Column: 37
Message: '=' is not followed by whitespace. at Line: 141 Column: 21
Message: '=' is not preceded with whitespace. at Line: 141 Column: 20
Message: '(' is not followed by whitespace. at Line: 145 Column: 16
Message: ')' is not preceded with whitespace. at Line: 145 Column: 47
Message: '=' is not followed by whitespace. at Line: 145 Column: 21
Message: '=' is not preceded with whitespace. at Line: 145 Column: 20
Message: '(' is not followed by whitespace. at Line: 149 Column: 16
Message: ')' is not preceded with whitespace. at Line: 149 Column: 46
Message: '=' is not followed by whitespace. at Line: 149 Column: 21
Message: '=' is not preceded with whitespace. at Line: 149 Column: 20
Message: '(' is not followed by whitespace. at Line: 153 Column: 16
Message: ')' is not preceded with whitespace. at Line: 153 Column: 45
Message: '=' is not followed by whitespace. at Line: 153 Column: 21
Message: '=' is not preceded with whitespace. at Line: 153 Column: 20
Message: '(' is not followed by whitespace. at Line: 157 Column: 16
Message: ')' is not preceded with whitespace. at Line: 157 Column: 44
Message: '=' is not followed by whitespace. at Line: 157 Column: 21
Message: '=' is not preceded with whitespace. at Line: 157 Column: 20
Message: '(' is not followed by whitespace. at Line: 161 Column: 16
Message: ')' is not preceded with whitespace. at Line: 161 Column: 47
Message: '=' is not followed by whitespace. at Line: 161 Column: 21
Message: '=' is not preceded with whitespace. at Line: 161 Column: 20
Message: '(' is not followed by whitespace. at Line: 165 Column: 16
Message: ')' is not preceded with whitespace. at Line: 165 Column: 46
Message: '=' is not followed by whitespace. at Line: 165 Column: 21
Message: '=' is not preceded with whitespace. at Line: 165 Column: 20
Message: 'public' modifier out of order with the JLS suggestions. at Line: 312 Column: 12
Message: '=' is not followed by whitespace. at Line: 72 Column: 42
Message: '=' is not preceded with whitespace. at Line: 72 Column: 41
Message: '=' is not followed by whitespace. at Line: 76 Column: 42
Message: '=' is not preceded with whitespace. at Line: 76 Column: 41
Message: '=' is not followed by whitespace. at Line: 80 Column: 50
Message: '=' is not preceded with whitespace. at Line: 80 Column: 49
Message: '=' is not followed by whitespace. at Line: 84 Column: 47
Message: '=' is not preceded with whitespace. at Line: 84 Column: 46
Message: '=' is not followed by whitespace. at Line: 88 Column: 52
Message: '=' is not preceded with whitespace. at Line: 88 Column: 51

File engine/src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMeta.java

Message: '(' is not followed by whitespace. at Line: 203 Column: 14
Message: ')' is not preceded with whitespace. at Line: 203 Column: 38
Message: '=' is not followed by whitespace. at Line: 203 Column: 19
Message: '=' is not preceded with whitespace. at Line: 203 Column: 18
Message: '(' is not followed by whitespace. at Line: 207 Column: 14
Message: ')' is not preceded with whitespace. at Line: 207 Column: 39
Message: '=' is not followed by whitespace. at Line: 207 Column: 19
Message: '=' is not preceded with whitespace. at Line: 207 Column: 18
Message: '(' is not followed by whitespace. at Line: 211 Column: 14
Message: ')' is not preceded with whitespace. at Line: 211 Column: 37
Message: '=' is not followed by whitespace. at Line: 211 Column: 19
Message: '=' is not preceded with whitespace. at Line: 211 Column: 18
Message: '(' is not followed by whitespace. at Line: 215 Column: 14
Message: ')' is not preceded with whitespace. at Line: 215 Column: 40
Message: '=' is not followed by whitespace. at Line: 215 Column: 19
Message: '=' is not preceded with whitespace. at Line: 215 Column: 18
Message: Unused import - org.pentaho.di.trans.step.StepMetaInjectionInterface. at Line: 61 Column: 8

File engine/src/org/pentaho/di/trans/steps/metainject/MetaInject.java

Message: '(' is not followed by whitespace. at Line: 111 Column: 11
Message: ')' is not preceded with whitespace. at Line: 111 Column: 59
Message: '(' is not followed by whitespace. at Line: 112 Column: 20
Message: ')' is not preceded with whitespace. at Line: 112 Column: 30
Message: 'if' child have incorrect indentation level 6, expected level should be 8. at Line: 112 Column: None
Message: 'method call' child have incorrect indentation level 6, expected level should be 8. at Line: 112 Column: None

File engine/test-src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMetaNewInjectionTest.java

Message: Unused import - org.pentaho.di.core.row.value.ValueMetaFactory. at Line: 31 Column: 8

File ui/src/org/pentaho/di/ui/trans/steps/metainject/MetaInjectDialog.java

Message: Line has trailing spaces. at Line: 1227 Column: None
Message: '(' is not followed by whitespace. at Line: 1228 Column: 41
Message: ')' is not preceded with whitespace. at Line: 1228 Column: 115
Message: Line has trailing spaces. at Line: 1280 Column: None
Message: '(' is not followed by whitespace. at Line: 1281 Column: 41
Message: Line has trailing spaces. at Line: 1323 Column: None

Newly Broken Tests:
org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps: junit.framework.AssertionFailedError
junit.framework.AssertionFailedError:
Wanted but not invoked:
metaInject.setEntryValueIfFieldExists(
    refEq({NAME:-(FIRST_NAME)}),
    <any>,
    <any>
);
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:137)

However, there were other interactions with this mock:
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:130)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:130)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:130)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:130)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:130)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:130)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:130)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)
-> at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:131)

	at org.pentaho.di.trans.steps.metainject.MetaInjectTest.injectMetaFromMultipleInputSteps(MetaInjectTest.java:137)

org.pentaho.di.core.injection.BaseMetadatInjectionTest.initializationError: java.lang.Exception
java.lang.Exception: No runnable methods
	at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

Unit test coverage change:
org.pentaho.di.core.row.value.ValueMetaBase:

instructionPercentCoverageChange : +0.04%
branchPercentCoverageChange : +0.16%
linePercentCoverageChange : +0.11%
complexityPercentCoverageChange : +0.20%

org.pentaho.di.core.RowMetaAndData:

instructionPercentCoverageChange : +23.63%
branchPercentCoverageChange : +57.75%
linePercentCoverageChange : +20.58%
complexityPercentCoverageChange : +30.00%
methodPercentCoverageChange : +2.30%

org.pentaho.di.core.row.RowMeta:

instructionPercentCoverageChange : +1.17%
branchPercentCoverageChange : +1.43%
linePercentCoverageChange : +1.49%
complexityPercentCoverageChange : +1.54%
methodPercentCoverageChange : +3.33%

org.pentaho.di.trans.steps.metainject.TargetStepAttribute:

instructionPercentCoverageChange :-47.14%
linePercentCoverageChange :-33.33%
complexityPercentCoverageChange :-30.77%
methodPercentCoverageChange :-44.44%

org.pentaho.di.trans.step.StepInjectionMetaEntry:

branchPercentCoverage :50.00%
instructionPercentCoverageChange : +24.07%
linePercentCoverageChange :-7.14%
complexityPercentCoverageChange :-6.67%
methodPercentCoverageChange :-7.14%

org.pentaho.di.trans.steps.fileinput.text.TextFileFilter:

instructionPercentCoverageChange : +5.56%
linePercentCoverageChange : +8.33%
complexityPercentCoverageChange : +9.09%
methodPercentCoverageChange : +9.09%

org.pentaho.di.trans.steps.metainject.MetaInject:

instructionPercentCoverageChange :-31.78%
branchPercentCoverageChange :-28.77%
linePercentCoverageChange :-35.42%
complexityPercentCoverageChange :-23.53%
methodPercentCoverageChange :-51.05%

org.pentaho.di.core.injection.bean.BeanInjectionInfo.Group:

linePercentCoverage :80.00%
methodPercentCoverage :66.67%
complexityPercentCoverage :66.67%
instructionPercentCoverage :38.71%

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

branchPercentCoverageChange :-0.53%

org.pentaho.di.trans.steps.fileinput.BaseFileInputField:

instructionPercentCoverageChange : +1.26%
linePercentCoverageChange : +1.89%
complexityPercentCoverageChange : +1.37%
methodPercentCoverageChange : +2.50%

org.pentaho.di.core.injection.bean.BeanInjectionInfo.Property:

branchPercentCoverage :100.00%
linePercentCoverage :85.71%
methodPercentCoverage :50.00%
complexityPercentCoverage :66.67%
instructionPercentCoverage :63.33%

org.pentaho.di.core.injection.bean.BeanInjectionInfo:

branchPercentCoverage :60.00%
linePercentCoverage :78.79%
methodPercentCoverage :85.71%
complexityPercentCoverage :58.33%
instructionPercentCoverage :66.00%

org.pentaho.di.trans.steps.metainject.SourceStepField:

instructionPercentCoverageChange :-5.00%
linePercentCoverageChange :-5.88%
complexityPercentCoverageChange :-9.09%
methodPercentCoverageChange :-14.29%

org.pentaho.di.core.injection.bean.BeanLevelInfo:

branchPercentCoverage :72.00%
linePercentCoverage :83.61%
methodPercentCoverage :87.50%
complexityPercentCoverage :63.64%
instructionPercentCoverage :77.81%

org.pentaho.di.trans.steps.fileinput.text.TextFileInputMeta:

instructionPercentCoverageChange :-0.19%
linePercentCoverageChange :-0.52%
complexityPercentCoverageChange :-2.17%
methodPercentCoverageChange :-5.37%

org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory:

branchPercentCoverageChange : +7.14%
complexityPercentCoverageChange : +7.69%

org.pentaho.di.core.injection.bean.BeanInjector:

branchPercentCoverage :55.36%
linePercentCoverage :62.77%
methodPercentCoverage :80.00%
complexityPercentCoverage :51.52%
instructionPercentCoverage :51.65%

Build Commands:
Build:

rm -r ~/.kettle; rm -r ~/.pentaho; echo removed hidden folders
ant -Dpentaho.coding.standards.version=1.0.1 -Djunit.jvmargs=-XX:PermSize=256m -f core/build.xml clean-all resolve jacoco jacoco-integration checkstyle publish-local
ant -Dpentaho.coding.standards.version=1.0.1 -Djunit.jvmargs=-XX:PermSize=256m -f engine/build.xml clean-all resolve jacoco jacoco-integration checkstyle publish-local
ant -Dpentaho.coding.standards.version=1.0.1 -Djunit.jvmargs=-XX:PermSize=256m -f ui/build.xml clean-all resolve jacoco jacoco-integration checkstyle publish-local

Cleanup:
rm -r ~/.ivy2/local || echo no publish local to remove
Changed files:
core/src/org/pentaho/di/core/RowMetaAndData.java
core/test-src/org/pentaho/di/core/RowMetaAndDataTest.java
engine/src/org/pentaho/di/core/injection/Injection.java
engine/src/org/pentaho/di/core/injection/InjectionDeep.java
engine/src/org/pentaho/di/core/injection/InjectionSupported.java
engine/src/org/pentaho/di/core/injection/bean/BeanInjectionInfo.java
engine/src/org/pentaho/di/core/injection/bean/BeanInjector.java
engine/src/org/pentaho/di/core/injection/bean/BeanLevelInfo.java
engine/src/org/pentaho/di/trans/TransPainter.java
engine/src/org/pentaho/di/trans/step/StepMetaInjectionInterface.java
engine/src/org/pentaho/di/trans/step/StepMetaInterface.java
engine/src/org/pentaho/di/trans/steps/fileinput/BaseFileInputField.java
engine/src/org/pentaho/di/trans/steps/fileinput/BaseFileInputStepMeta.java
engine/src/org/pentaho/di/trans/steps/fileinput/text/TextFileFilter.java
engine/src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMeta.java
engine/src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMetaInjection.java
engine/src/org/pentaho/di/trans/steps/fileinput/text/messages/messages_en_US.properties
engine/src/org/pentaho/di/trans/steps/metainject/MetaInject.java
engine/src/org/pentaho/di/trans/steps/metainject/MetaInjectData.java
engine/src/org/pentaho/di/trans/steps/streamlookup/StreamLookupMeta.java
engine/test-src/org/pentaho/di/core/injection/BaseMetadataInjectionTest.java
engine/test-src/org/pentaho/di/core/injection/MetaAnnotationInjectionTest.java
engine/test-src/org/pentaho/di/core/injection/MetaBeanLevel1.java
engine/test-src/org/pentaho/di/core/injection/MetaBeanLevel2.java
engine/test-src/org/pentaho/di/core/injection/MetaBeanLevel2Base.java
engine/test-src/org/pentaho/di/core/injection/MetaBeanLevel3.java
engine/test-src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMetaInjectionTest.java
engine/test-src/org/pentaho/di/trans/steps/fileinput/text/TextFileInputMetaNewInjectionTest.java
ui/src/org/pentaho/di/ui/trans/steps/metainject/MetaInjectDialog.java
Checkstyle violations:
See: https://github.com/pentaho/pentaho-coding-standards
File engine/src/org/pentaho/di/trans/steps/fileinput/BaseFileInputStepMeta.java

Message: 'public' modifier out of order with the JLS suggestions. at Line: 312 Column: 12

File ui/src/org/pentaho/di/ui/trans/steps/metainject/MetaInjectDialog.java

Message: '(' is not followed by whitespace. at Line: 1228 Column: 41
Message: ')' is not preceded with whitespace. at Line: 1228 Column: 115
Message: Line has trailing spaces. at Line: 1323 Column: None

Unit test coverage change:
org.pentaho.di.core.row.value.ValueMetaBase:

instructionPercentCoverageChange : +0.04%
branchPercentCoverageChange : +0.16%
linePercentCoverageChange : +0.11%
complexityPercentCoverageChange : +0.20%

org.pentaho.di.core.RowMetaAndData:

instructionPercentCoverageChange : +23.63%
branchPercentCoverageChange : +57.75%
linePercentCoverageChange : +20.58%
complexityPercentCoverageChange : +30.00%
methodPercentCoverageChange : +2.30%

org.pentaho.di.core.row.RowMeta:

instructionPercentCoverageChange : +1.17%
branchPercentCoverageChange : +1.43%
linePercentCoverageChange : +1.49%
complexityPercentCoverageChange : +1.54%
methodPercentCoverageChange : +3.33%

org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta:

instructionPercentCoverageChange :-0.08%

org.pentaho.di.trans.steps.fileinput.text.TextFileFilter:

instructionPercentCoverageChange : +5.56%
linePercentCoverageChange : +8.33%
complexityPercentCoverageChange : +9.09%
methodPercentCoverageChange : +9.09%

org.pentaho.di.trans.steps.metainject.MetaInject:

instructionPercentCoverageChange :-2.69%
branchPercentCoverageChange :-2.41%
linePercentCoverageChange :-2.39%
complexityPercentCoverageChange :-2.28%
methodPercentCoverageChange :-4.90%

org.pentaho.di.core.injection.bean.BeanInjectionInfo.Group:

linePercentCoverage :80.00%
methodPercentCoverage :66.67%
complexityPercentCoverage :66.67%
instructionPercentCoverage :38.71%

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

instructionPercentCoverageChange :-1.64%
linePercentCoverageChange :-1.97%

org.pentaho.di.trans.steps.fileinput.BaseFileInputField:

instructionPercentCoverageChange : +1.26%
linePercentCoverageChange : +1.89%
complexityPercentCoverageChange : +1.37%
methodPercentCoverageChange : +2.50%

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta:

instructionPercentCoverageChange : +0.07%

org.pentaho.di.core.injection.bean.BeanInjectionInfo.Property:

branchPercentCoverage :100.00%
linePercentCoverage :85.71%
methodPercentCoverage :50.00%
complexityPercentCoverage :66.67%
instructionPercentCoverage :63.33%

org.pentaho.di.core.injection.bean.BeanInjectionInfo:

branchPercentCoverage :60.00%
linePercentCoverage :78.79%
methodPercentCoverage :85.71%
complexityPercentCoverage :58.33%
instructionPercentCoverage :66.00%

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

instructionPercentCoverageChange :-0.17%

org.pentaho.di.core.injection.bean.BeanLevelInfo:

branchPercentCoverage :72.00%
linePercentCoverage :83.61%
methodPercentCoverage :87.50%
complexityPercentCoverage :63.64%
instructionPercentCoverage :77.81%

org.pentaho.di.core.lifecycle.KettleLifecycleSupport:

branchPercentCoverageChange :-8.33%
complexityPercentCoverageChange :-9.09%

org.pentaho.di.trans.steps.fileinput.text.TextFileInputMeta:

instructionPercentCoverageChange :-0.19%
linePercentCoverageChange :-0.52%
complexityPercentCoverageChange :-2.17%
methodPercentCoverageChange :-5.37%

org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory:

branchPercentCoverageChange :-7.14%
complexityPercentCoverageChange :-7.69%

org.pentaho.di.core.injection.bean.BeanInjector:

branchPercentCoverage :55.36%
linePercentCoverage :62.77%
methodPercentCoverage :80.00%
complexityPercentCoverage :51.52%
instructionPercentCoverage :51.65%


Modify RewriteRule to accept callable rhs

RewriteRule now accepts callable rhs arguments. If the rhs is callable,
it's called with a dict of matches. If the rhs is a task, the
matches are substituted in to the rhs.

Is there a significant performance change?

There's no performance change, the branch is determined on rule creation - during rewriting everything is the same is before.

This is working like a champ at #103 by the way.  There are some things to iron out with my attempt at merging slices but otherwise this is looking good.
It feels satisfying to find pragmatic use cases of theoretically powerful tools.


Update scBasset tutorials to explain motif scoring

Show new functionality from https://github.com/scverse/scvi-tools/pull/2010

@jacobkimmel I know you're probably busy but just let us know if you can do this!

@adamgayoso I'll knock this out over the weekend!

Closed via #125


Pre-stop script job not available

I would like to add pre-stop script job, similar to https://github.com/cloudfoundry/os-conf-release/issues/56
Need to do some housekeeping before the machine stops.
The PR will follow shortly.

https://github.com/cloudfoundry/os-conf-release/pull/64

Decided to use a dedicated bosh release, that includes drain job.


Unresolved icon uses  a border color in comments panel

In the Comments panel - the unresolved comment icon uses the colour editorCommentsWidget.unresolvedBorder which if not defined inherits peekViewBorder
This means for a theme which has a very low constrast set of borders, the icon is very low in in contrast, for example:

I'll submit a PR to the Ayu theme to see if this can be updated there, but I was wondering if perhaps it would be better to change the colour used here to something we was not originally meant to be a border?
Perhaps we could define a colour editorCommentsWidget.unresolvedIcon which inherits from something else, then perhaps we could change unresolvedBorder to perhaps inherit from that if defined, otherwise from peek view?

This is the change I ended up going with (thank you for the input!):

There are new colors commentsView.resolvedIcon and commentsView.unresolvedIcon.
commentsView.resolvedIcon inherits from list.focusOutline (similar color to before) and commentsView.unresolvedIcon inherits from disabledForeground (same as before).
editorCommentsWidget.resolvedBorder inherits from commentsView.resolvedIcon and editorCommentsWidget.unresolvedBorder inherits from commentsView.unresolvedIcon.


Enable overflow_delimited_expr for structs

I've tried looking into the issue I've opened and noticed that it seems
quite trivial to resolve it.
I'm not sure if there are any issues with this, since this almost seems
too trivial to be correct, but I've tried adding some test cases which
seem to be functioning and do not fail.
Please let me know if there's anything that needs to be fixed.
This fixes https://github.com/rust-lang/rustfmt/issues/3482.

Looks good to me, thank you!

Thanks a lot for the exceptional response time on this. Definitely leaving a good impression here.


Enable the experimental apis in the http gateway

It looks like the experimental apis are not usable in http, and it seems they were never included in the gateway handlers.

recheck

I have read the CLA Document and I hereby sign the CLA


drbd: hash changed

Any idea why the hash changed?

@edolstra no idea, I don't have the old archive. If there is a way to get it from hydra or somewhere else I would be very happy to see the diff too.


A.reject loses array subtype

import * as A from "fp-ts-std/Array";
import { pipe } from "fp-ts/function";

type A = { a: number };
type B = A & { b: number };

declare const bs: Array<B>;

declare const fn: (a: A) => boolean;

// No error ✅
const result1: B[] = bs.filter(fn);

/*
Error ❌
Type 'A[]' is not assignable to type 'B[]'.
  Type 'A' is not assignable to type 'B'.
    Property 'b' is missing in type 'A' but required in type '{ b: number; }'.
*/
const result2: B[] = pipe(bs, A.reject(fn));

Fix would be to add an overload similar to the overload for Array.prototype.filter:
-export declare const reject: <A>(f: Predicate<A>) => Endomorphism<A[]>;
+export declare const reject: {
+    <A>(f: Predicate<A>): <B extends A>(bs: Array<B>) => Array<B>;
+    <A>(f: Predicate<A>): Endomorphism<A[]>;
+};

WDYT?

:+1:
This may apply to a few other functions as well with the same signature, albeit probably not those sporting an Eq. The same can be applied to reject in Record, and then these changes will need duplicating for the readonly modules.

Live in 0.14.2! The code snippet is now green. :partying_face:


Clearable Images

Improvement for: https://github.com/tinacms/tinacms/issues/190
Add a delete button to the image-upload.
Also fixed the upload directory in the demo project, and made its parse handle a clearable image.
TODO:

[x] Clearable should be an option
[x] Needs some style love

@spbyrne No rush on this, but could you give this a styling looksee whenever you get a chance?
I just ripped the trash icon styling from the groups field.

I tweaked the styles on the delete button & image hover.

Will this just be an improvement, or will it actually fix #190?

I tweaked the styles on the delete button & image hover.

Thanks! Looks great!

Will this just be an improvement, or will it actually fix #190?

IMO it's an improvement & not a fix since https://github.com/tinacms/tinacms/issues/190 isn't a bug, but yeah it will address that issue.

Hello everyone. Sorry if I'm going crazy, but with 0.32.0 there's no trash button for the image component. I'd consider this a bug because if you upload an image it's stuck there. The only fix is to upload a transparent image in its place.

@patrickconroy We just released 0.33.0 which fixes a bug related to clearing images from the sidebar. Does it solve your issue?


Add proxy support to connections

Can one of the admins verify this patch?

Hey @danboscaro thanks for contributing!
It would be good to have some tests for this, to make sure that the restClient is called with the proxy you provide, if you provide one. Let us know if you need a hand with this.

Nice work. I’ll get this merged now and add another comment once the new version is up on NPM and ready to use.


Added at request of author

You can omit author name and abstract for KerbalStuff netkans. Netkan.exe will insert all that information from the KerbalStuff page. The benefit to not hardcoding them is if the author updates the info it'll be reflected in CKAN.

Thanks, I updated both kal9000 and origameFoldableAssets
JBB
On 8/11/2015 3:45 AM, Matthew wrote:

You can omit |author| |name| and |abstract| for KerbalStuff netkans.
Netkan.exe will insert all that information from the KerbalStuff page.
The benefit to not hardcoding them is if the author updates the info
it'll be reflected in CKAN.
—
Reply to this email directly or view it on GitHub
https://github.com/KSP-CKAN/NetKAN/pull/2074#issuecomment-129743470.

Your commit comment says you removed the names, but that's not the case.

Thanks, i missed that one.
Fixed and committed
On 8/11/15 7:22 AM, Matthew wrote:

Your commit comment says you removed the |name|s, but that's not the case.
—
Reply to this email directly or view it on GitHub
https://github.com/KSP-CKAN/NetKAN/pull/2074#issuecomment-129843530.

Each pass local. Merging with my thanks.


add readOnly and writeOnly

I saw that these two attributes exist here: https://json-schema.org/latest/json-schema-validation.html#rfc.section.10.3

Sorry I just realized we need to check if Typescript is happy with the new changes.
Pls add a readOnly() and writeOnly props here:  https://github.com/fastify/fluent-schema/blob/master/src/types/index.ts


[sca] OTBN uJSON command handler

This PR translates the sw/device/sca/otbn_vertical/ tests from simpleserial to uJSON.

Currently, there is one big issue with the code: uJSON seems not handle messages with 40 or more bytes well. When sending messages from OpenTitan over UART to my computer, I only receive incomplete messages.
Please compile the code in this PR & put it onto OpenTitan:
./bazelisk.sh build //sw/device/tests/crypto/cryptotest/firmware:firmware
Here is a small POC to (hopefully) reproduce my issue:
#!/usr/bin/env python3
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

import json
import time
from typing import Optional

import serial

class OTUART:
    def __init__(self, protocol: str, port: Optional[str] = "None",
                 baudrate: Optional[int] = 115200) -> None:
        self.uart = None
        if protocol == "ujson":
            if not port:
                raise RuntimeError("Error: No uJson port provided!")
            else:
                self.uart = serial.Serial(port)
                self.uart.baudrate = baudrate

# Payload to send later on.
mask = 0
mask = mask.to_bytes(40, "little")
mask_int = [x for x in mask]

# Establish UART for uJSON command interface.
ot_uart = OTUART(protocol="ujson", port="/dev/ttyACM1")
uart = ot_uart.uart

# Init OTBN.
uart.write(json.dumps("OtbnSca").encode("ascii"))
uart.write(json.dumps("Init").encode("ascii"))
time.sleep(0.02)
uart.write(json.dumps("PrngSca").encode("ascii"))
uart.write(json.dumps("SeedPrng").encode("ascii"))
# Text payload.
seed = 6
seed = seed.to_bytes(4, "little")
seed_int = [x for x in seed]
seed_data = {"seed": seed_int, "seed_length": 4}
uart.write(json.dumps(seed_data).encode("ascii"))

# Select OTBN app.
uart.write(json.dumps("OtbnSca").encode("ascii"))
time.sleep(0.02)
uart.write(json.dumps("Ecc256AppSelect").encode("ascii"))
time.sleep(0.02)
app_select = {"app": [0x0]}
uart.write(json.dumps(app_select).encode("ascii"))

# Run handle_otbn_sca_ecc256_ecdsa_secret_keygen function.
uart.write(json.dumps("OtbnSca").encode("ascii"))
time.sleep(0.01)
uart.write(json.dumps("Ecc256EcdsaSecretKeygen").encode("ascii"))
time.sleep(0.01)
mask_data = {"mask": mask_int[0:39]}
uart.write(json.dumps(mask_data).encode("ascii"))

The goal is to send 2x40 bytes of data to my computer. Following format is used:
{d0: [40 8-bit int entries], d1 :[40 8-bit int entries] }
And the code is in handle_otbn_sca_ecc256_ecdsa_secret_keygen Line 573 in this PR.
However, I only get a small part of the message.
So the handle_otbn_sca_ecc256_ecdsa_secret_keygen function currently splits up to 2x40 bytes of data into 4x20 bytes in separate  uJSON message.
This clearly affects the capture rate for OTBN SCA measurements with uJSON (@vogelpi FYI).
As discussed offline, could you maybe please have a look @milesdai?

Thanks for the write-up @nasahlpa . I think the underlying issue here might be the UART pacing needed to not overflow the receive FIFO in OT's UART. Before Christmas, I've been talking to NewAE and they kindly prepared a firmware image for the SAM3X on the CW310 with xon/xoff software flow control enabled. They also fed back that the firmware could be changed to allow disabling xon/xoff flow control over USB on demand. I believe it might be worth to further look into this option.

After doing some more experiments, I do think that we have a problem with receiving & deserializing 40 or more bytes over uJSON.
To reproduce the issue, please build the latest firmware here in this PR:
./bazelisk.sh build //sw/device/tests/crypto/cryptotest/firmware:firmware
And run:
#!/usr/bin/env python3
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

import json
import time
from typing import Optional

import serial

class OTUART:
    def __init__(self, protocol: str, port: Optional[str] = "None",
                 baudrate: Optional[int] = 115200) -> None:
        self.uart = None
        if protocol == "ujson":
            if not port:
                raise RuntimeError("Error: No uJson port provided!")
            else:
                self.uart = serial.Serial(port)
                self.uart.baudrate = baudrate

# Payload to send later on.
mask = 0
mask = mask.to_bytes(40, "little")
mask_int = [x for x in mask]

# Establish UART for uJSON command interface.
ot_uart = OTUART(protocol="ujson", port="/dev/ttyACM1")
uart = ot_uart.uart

# Init OTBN.
uart.write(json.dumps("OtbnSca").encode("ascii"))
uart.write(json.dumps("Init").encode("ascii"))
time.sleep(0.02)
# Init PRNG.
uart.write(json.dumps("PrngSca").encode("ascii"))
uart.write(json.dumps("SeedPrng").encode("ascii"))
seed = 6
seed = seed.to_bytes(4, "little")
seed_int = [x for x in seed]
seed_data = {"seed": seed_int, "seed_length": 4}
uart.write(json.dumps(seed_data).encode("ascii"))

# Select OTBN app.
uart.write(json.dumps("OtbnSca").encode("ascii"))
time.sleep(0.02)
uart.write(json.dumps("Ecc256AppSelect").encode("ascii"))
time.sleep(0.02)
app_select = {"app": [0x0]}
uart.write(json.dumps(app_select).encode("ascii"))

# Transmit seed to OTBN app.
uart.write(json.dumps("OtbnSca").encode("ascii"))
time.sleep(0.01)
uart.write(json.dumps("Ecc256SetSeed").encode("ascii"))
time.sleep(0.01)
####################
# Comment next two lines.
mask_data = {"seed": mask_int[0:39]}
print(len(mask_int[0:39]))
####################
# Uncomment next two lines to reproduce error.
#mask_data = {"seed": mask_int[0:40]}
#print(len(mask_int[0:40]))
uart.write(json.dumps(mask_data).encode("ascii"))
time.sleep(0.01)

while True:
    print(str(uart.readline()))

When sending 39 bytes, you'll see:
FIN handle_otbn_sca_ecc256_set_seed\r\n
However, when you change the 39 to 40 bytes (please uncomment the lines in the Python script), you will not receive any message.
Deserializing should happen in the handle_otbn_sca_ecc256_set_seed function in ecc256_keygen_sca.c.
If the 39 bytes limit is a known issue, I can adapt the code accordingly. If not, I think it might be worth to investigate what exactly the issue is as this could be a problem also for other applications using uJSON to transmit 40 or more bytes.
@milesdai


Daily PR to sync master with published

Proposed changes
Daily sync for November 5, 2019

Deploy preview for docsdocker ready!
Built with commit 1ca4016171dbb9c00dae9d27f541b91f5fca94a7
https://deploy-preview-9807--docsdocker.netlify.com


Static IP for libvirt_domain network_interface

System Information
Linux distribution
RHEL
Description of Issue/Question
libvirt_domain network_interface has an optional addresses field. When using this field it has created a dynamic ip address with the value I provided, and created a dhcp entry for this ip address. Is it possible to create a static IP address, with no dhcp entry, for the network_interface?
Thanks in advance.

There is no way the KVM host could force a VM with unknown OS and unknown config to use a certain network configuration. Most likely you'll need to create an appropriate cloud-init config to manage IP address of VM, if your OS is cloud-init enabled.

Thank you.

Another option is to hardcode the MAC of the VM, and set a reservation in the network config.
No static, but it is fixed.
<network>
  <name>default</name>
  <uuid>e346291e-f86b-4f2f-a16e-654136441805</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:12:fe:35'/>
  <ip address='<IP_ADDRESS>' netmask='<IP_ADDRESS>'>
    <dhcp>
      <range start='<IP_ADDRESS>' end='<IP_ADDRESS>'/>
      <host mac='52:54:00:a0:cc:19' name='centos7' ip='<IP_ADDRESS>'/>
      <host mac='52:54:00:f7:a1:c8' name='puffy' ip='<IP_ADDRESS>'/>
      <host mac='52:54:00:4c:40:1c' name='xenial' ip='<IP_ADDRESS>'/>
    </dhcp>
  </ip>
</network>

Thanks! I was specifically looking to use this on a network with no dhcp server.
I implemented a solution that created the ip address using nmcli commands after the server is running.

The DHCP I was referring to is internal to libvirt, and can be used when you set the interface mode to NAT.
But that is not the case if you bridge your interface to a local nic. But I had to resolve to the same method as you, with nmcli commands to achieve the same result.

OK. Thanks anyway :)

Hi @awolffredhat,
it looks like the issue is addressed. Could you close this issue?


[FLINK-36772][mysql][cdc-base] Fix error placeholder for errorMessageTemplate of Preconditions

FLINK-36772

@leonardBang PTAL

LGTM, could you also check all Preconditions.checkState method call?

@leonardBang I checked all Preconditions.checkState method call.


[Bug]: puppeteer.DEFAULT_INTERCEPT_RESOLUTION_PRIORITY is undefined

Bug description
Steps to reproduce the problem:

Try to enable cooperative request interception by using DEFAULT_INTERCEPT_RESOLUTION_PRIORITY as doc says: https://pptr.dev/guides/request-interception/
Cooperative request interception is not enabled, because it turns out that DEFAULT_INTERCEPT_RESOLUTION_PRIORITY is undefined!

the following code outputs undefined
import puppeteer from "puppeteer";
console.log(puppeteer.DEFAULT_INTERCEPT_RESOLUTION_PRIORITY);

test project is attached
test-puppeteer.zip
Puppeteer version
19.2.2
Node.js version
16.16.0
npm version
8.11.0
What operating system are you seeing the problem on?
Windows
Configuration file
No response
Relevant log output
No response

@OrKoN PTAL

de momento usen
npm i github:pedroslopez/whatsapp-web.js#fix-buttons-list


feat: Build Gatsby nodes

Use gatsby-graphql-source-toolkit to build Gatsby nodes for types from a remote GraphCMS project schema.

Self merge 🚀


Error: @react-native-community/react-native-device-info: NativeModule.RNDeviceInfo is null. To fix this issue try these steps:   • For react-native <= 0.59: Run react-native link react-native-device-info in the project root.   • Rebuild and re-run the app.   • If you are using CocoaPods on iOS, run pod install in the ios directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods.anyway,not work

Bug

Environment info

react-native info output:
 // paste it here

Library version: x.x.x
Steps To Reproduce

...
Describe what you expected to happen:

Reproducible sample code

The error message is clear, the template is not followed, there is an example -> please give the example a try and after seeing it works, examine your project integration

The error message is clear, the template is not followed, there is an example -> please give the example a try and after seeing it works, examine your project integration

Thank your reply

it's weird, but just simple install of react-native-device-info and on android got the same error.

@kostiantyn-solianyk clone the repo, run the example - works. Or if not, that's a problem, open a ticket

@mikehardy i am still getting the error:::
ExceptionsManager.js:82 Unhandled JS Exception: @react-native-community/react-native-device-info: NativeModule.RNDeviceInfo is null.

@Dagger05 then you are still not integrating the module successfully. If you have not successfully installed it, it can't work. Clone the repo and run the example, it will prove it works and also demonstrates how to integrate, as does the example construction script: https://github.com/react-native-community/react-native-device-info/blob/master/refresh-example.sh
Note that you have provided zero information about your project so it's impossible to really help. As a guess if you are using Expo managed workflow it will never work, as Expo is incompatible with native modules when in managed workflow


HSEARCH-2175 Enabling more tests which pass now

Running some more tests, but it seems reliable now. My guess is I was still affected by the other stability issues which are fixed now.

merged!


Dependency kevinmarrec/nuxt-pwa is deprecated (and cause security issue)

🐛 The bug
As mentioned on their github: https://github.com/kevinmarrec/nuxt-pwa-module

Nuxt 3 is powered by Vite which has today a amazing PWA plugin on his own, with Nuxt support.

Also it add a high security vulnerabilities according to npm audit fix:
# npm audit report

sharp  <0.32.6
Severity: high
sharp vulnerability in libwebp dependency CVE-2023-4863 - https://github.com/advisories/GHSA-54xq-cgqr-rpm3
No fix available
node_modules/sharp
  @kevinmarrec/nuxt-pwa  >=0.1.0
  Depends on vulnerable versions of sharp
  node_modules/@kevinmarrec/nuxt-pwa
    @nuxtjs/ionic  *
    Depends on vulnerable versions of @kevinmarrec/nuxt-pwa
    node_modules/@nuxtjs/ionic

🛠 To reproduce
https://github.com/kevinmarrec/nuxt-pwa-module
🌈 Expected behaviour
Remove this dependency
ℹ Additional context
No response

A potential solution is to replace this dependency with the official Vite PWA module that supports Nuxt 3

A potential solution is to replace this dependency with the official Vite PWA module that supports Nuxt 3
Additionally, since the vulnerability is located in the sharp package (to generate asset files) - the alternative for the same functionality is to use @vite-pwa/assets-generator

@yllaw Agreed, I recently worked with the @vite-pwa/nuxt module in my Nuxt 3 Ionic app, and it worked like a charm.

resolved in 309bc0244546bf73b60c8d3d491ec831892e6e0c.


Add SHOW PRINCIPALS and SHOW ROLE GRANTS FOR principal

Apologies for the inundation with changes...
This adds the ability to list all principals for given role, as well as the ability to list the roles granted to a principal.
This WIP, mostly get a look at the potential syntax.
Some discussion on: #3167

@martint Please review the syntax, I can take of the rest.

Finished SHOW ROLE GRANTS (FOR | TO) principal with security, etc. Tests still missing.

@martint , any thoughts on the syntax?

I have cycles to go on with this - but only if it's the right direction. @kokosing @martint

Any interest?
I'd rather not create an internal fork for this, but we need functionality like this.
I'm not attached to the syntax, but to the functionality, the ability to query the access metadata, and to do so without needing to go back to Hive. Could do via the information_schema if that's better.

With #3099 merged, this is the last one on this set of related changes. With all these in place we have fairly comprehensive support for SQL authorization directly in Presto (without the need to defer these tasks to Hive).
@kokosing , @martint Could I get you to have a look at the direction and syntax.
Much of this is not implemented, yet. I just want to discuss the syntax, etc.

I would prefer to have dedicated tables in information_schema that are much useful (you can join, or filter). Then SHOW ... could be a syntactic sugar on top of it (if it is still needed).

Agreed. I'll figure out how to do that.

How about new role_grants table in the information_schema?
The table's schema would simple be principal, role and is only accessible by an admin.
So through this table one can thus find roles by principal or principals by role (i.e. what SHOW PRINCIPALS group or SHOW ROLE GRANTS FOR principal would do).
Unfortunately there is no standard to follow here - that I know off.

Notice that information_schema provides tables like applicable_roles and enabled_roles. The content of these tables is dependant on session (current user). Former represents SHOW ROLES and latter SHOW CURRENT ROLES. Please see: io.prestosql.sql.rewrite.ShowQueriesRewrite.Visitor#visitShowRoles

I guess my previous comment was not much helpful here.

exceedingly expensive.

We could implement predicate pushdown so we could only request information that is needed.

We could implement predicate pushdown so we could only request information that is needed.

Lemme look into that, that'd be cool.
Do any of the information_schema tables do that already so that I can look at an example?
If no predicate is provided do we let it through anyway and accept the load on the metastore?

Yes. There is generic predicate pushdown support for catalog, schema and table name columns that works for every connector. See InformationSchemaPageSource. You would need add support for other columns too. It shouldn’t be very hard.
Yes. We are ok with the fact that full scan is expensive. It is quite typical with information_schema tables.

Going to close this one in favour of #3535


Use allreduce_coalesced for factor allreduce

https://github.com/pytorch/pytorch/pull/62140
"grouped comm on a set of unflattened tensors can be more performant than flattening+a single flat nccl call."

Can also use allgather_coalesced instead of gradient/inverse broadcast.


Error if directory we're trying to create the database in doesn't exist

Original issue 167 created by kkooporation on 2013-05-11T09:57:47.000Z:
What steps will reproduce the problem?

open a database
bazinga!

(we should ditch the standard questions here..)
/What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
Please provide any additional information below./
When a database is being opened in a folder which itself does not exist, LevelDB errors with a dubious error message:
OpenError: IO error: ./db/root.db/LOCK: No such file or directory
at [..]/levelup.js:113:25
As this came up quite some times, we discussed the process here; either the path will recursively be created or instead an error being thrown indicating the specific issue.
We've been talking about this issue on GitHub regarding LevelDOWN / UP [the NodeJS bindings for LDB] (https://github.com/rvagg/node-levelup/issues/135) and came to the conclusion this would have to be implemented in LevelDB itself.
Of course, I'd welcome a discussion here — thanks!

you shall use absolute path, because the shell+leveldb may can't figure out  "./" and "~/" relative path correctly.

:+1:

Agree with commentors - using relative paths (which are platform specific) is not a good idea.


Refactor mediafiles

closes #2332

Given the change of priorities this PR should be closed and the issue should be solved to a later time


Revert "Revert "SslHandler avoid calling wrap/unwrap when unnecessary""

Motivation:
PR https://github.com/netty/netty/pull/6803 corrected an error in the return status of the OpenSslEngine. We should now be able to restore the SslHandler optimization.
Modifications:

This reverts commit 7f3b75a5091dcd6d882102fdb92daa6931e02c30.

Result:
SslHandler optimization is restored.

@fsareshwala @nhnFreespirit - Please evaluate as requested in https://github.com/netty/netty/issues/6578#issuecomment-305841065

@nhnFreespirit ping...

Hey.
Sorry for leaving you hanging like this but I had to go do something completely different for a while. I should still have a local (if still somewhat complex) test case for this lying around somewhere, so let me see if I can get around to setting that up and running it today.

Getting my test case back up and running was a bit more involved than anticipated as our codebase have moved on quite a bit since last time. I did not see any issues when running the code from the pr/6806 branch.
That said, I also failed at reproducing the actual problem (by reverting 24f801c7d1d1e66193d6ff0da3b93ce427b2b329 as well) so it is possible that other factors make the original problem no longer appear...
I'm fine with merging this. I know what symptoms to look out for if the issue should re-appear and what to test if it does.

Thanks @nhnFreespirit ... I plan to merge this after 4.1.13 is released. It would be great if you could try a snapshot which includes this PR at that time.

4.1 (81fb2eede) 4.0 (623cb8d95)

@nhnFreespirit - Please report back if you see issues in the next release.


Ruby on Rails keybindings documentation

add better documentation to ruby on rails key bindings.

Just learn it from projectile-rails


Update The Guild's tools and services

Pre-submission checklist:
Please check each of these after submitting your pull request:

[x] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[x] Is your project closed source or, if it is open source, does your project have at least 250 GitHub stars?
[x] Have you picked the single best (existing) category for your project?
[x] Does it follow the other guidelines from the new entries section?
[x] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[x] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[x] Does your project/product name match the text on the logo?
[x] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~10 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

TODO

[x] Envelop SVG logo

Build failed because of:
No cached entry, and Envelop has issues with logo: envelop.svg, ENOENT: no such file or directory, open '/opt/build/repo/hosted_logos/envelop.svg'
Empty twitter for Tartiflette: https://twitter.com/dailymotionUSA
Item Envelop has no image_data

LGTM


[Request] Handlebars support

Can you add support for Handlebars.js file extension (".hbs" and ".handlebars") ?

Sure, I just need the logo in a decent quality (min. 1024x1024) as I can't seems to find anything better than the one on the website.


[iOS]improve (RCTJSErrorFromCodeMessageAndNSError)

First of all,please forgive my poor english. LOL
When I use Promises  as callBack,
I followed the guide to make a (RCTPromiseRejectBlock),in this RCTPromiseRejectBlock,
from the guide I should add a (NSString)code a (NSString)message and an (NSError) to a  RCTPromiseRejectBlock.
As what did guide said I just make a NSError with
 NSError *error=[NSError errorWithDomain:@"native stroage error" code:402 userInfo:@{@"data":key}];

As you can see, I want to transfer some data in this callback.But I just found the (userInfo) of NSError didn't composed to a  RCTPromiseRejectBlock.
So I check out the source code of RCTUtil ,I found this

// TODO: Can we just replace RCTMakeError with this function instead?
NSDictionary<NSString *, id> *RCTJSErrorFromCodeMessageAndNSError(NSString *code,
                                                                  NSString *message,
                                                                  NSError *__nullable error)
{
  NSString *errorMessage;
  NSArray<NSString *> *stackTrace = [NSThread callStackSymbols];
  NSMutableDictionary<NSString *, id> *errorInfo =
  [NSMutableDictionary dictionaryWithObject:stackTrace forKey:@"nativeStackIOS"];

  if (error) {
    errorMessage = error.localizedDescription ?: @"Unknown error from a native module";
    errorInfo[@"domain"] = error.domain ?: RCTErrorDomain;
  } else {
    errorMessage = @"Unknown error from a native module";
    errorInfo[@"domain"] = RCTErrorDomain;
  }
  errorInfo[@"code"] = code ?: RCTErrorUnspecified;
  // Allow for explicit overriding of the error message
  errorMessage = message ?: errorMessage;
  return RCTMakeError(errorMessage, nil , errorInfo);
}

I have noticed that this function compose some part of a error callback but except of userInfo,which I want to transfer. So I think it is necessary to add this part of NSError, in case of somebody want to transfer data in RCTPromiseRejectBlock.
With my poor code skill,I just make a approve of this function to achieve this demand.If it can give you some inspiration and help,it would be a honor for me.

NSString *const RCTErrorWithNoData = @"NULL";

NSDictionary<NSString *, id> *RCTJSErrorFromCodeMessageAndNSError(NSString *code,
                                                                  NSString *message,
                                                                  NSError *__nullable error)
{
  NSString *errorMessage;
  NSArray<NSString *> *stackTrace = [NSThread callStackSymbols];
  NSMutableDictionary<NSString *, id> *errorInfo =
  [NSMutableDictionary dictionaryWithObject:stackTrace forKey:@"nativeStackIOS"];

  if (error) {
    errorMessage = error.localizedDescription ?: @"Unknown error from a native module";
    errorInfo[@"domain"] = error.domain ?: RCTErrorDomain;
  } else {
    errorMessage = @"Unknown error from a native module";
    errorInfo[@"domain"] = RCTErrorDomain;
  }
  errorInfo[@"code"] = code ?: RCTErrorUnspecified;
 // add this to achieve transfer data in RCTPromiseRejectBlock
  errorInfo[@"userInfo"] = error.userInfo?:RCTErrorWithNoData;

  // Allow for explicit overriding of the error message
  errorMessage = message ?: errorMessage;
  return RCTMakeError(errorMessage, nil , errorInfo);
}

By analyzing the blame information on this pull request, we identified @nicklockwood and @grabbou to be potential reviewers.

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

@BaihaoTian updated the pull request - view changes

@BaihaoTian updated the pull request - view changes

@BaihaoTian updated the pull request - view changes

@BaihaoTian updated the pull request - view changes

@BaihaoTian updated the pull request - view changes

One issue here is that if you have a description key in your userInfo and no message argument to this function, the message will be repeated both in the error name as in the additional info. I advise you to use RCTMakeError instead for generating errors instead.

@facebook-github-bot shipit

Thanks for importing. If you are an FB employee go to Phabricator to review internal test results.


Clean the repository to have separate Data, Analysis and Plot files

closing--irrelevant at the moment.


Supported multi options

When we have two or more units in our CSS files, they need to be all converted to vw.
And it has no performance impact on the original function.
using example:
module.exports = {
  plugins: {
    // ...
    'postcss-px-to-viewport': [{
      // options 1
    },{
      // options 2
    }]
  }
}

Thank you for your pr! I really need this feature!

I am going to close this pr, because postcss itself supports multiple calls to the same plugin.
see code:
const autoprefixer = require('autoprefixer')
const px2viewport = require('postcss-px-to-viewport')

module.exports = {
  plugins: [
    autoprefixer({}),
    px2viewport({
      unitToConvert: 'px',
      viewportWidth: 375,
      unitPrecision: 3,
      viewportUnit: "vw"
    }),
    px2viewport({
      unitToConvert: 'rem',
      viewportWidth: 750,
      unitPrecision: 3,
      viewportUnit: "vw",
      include: 'src'
    })
  ]
}


FirewallD-Rules not being updated due to ampfirewall failing to start

Bug Report
System Information

Operating System: CentOS Linux release 8.2.2004 (Core)
AMP version and build date: AMP Release "Europa" v2.0.4, built 04/08/2020 15:39
Which AMP release stream you're using: Mainline

I confirm:

[x] that I have searched for an existing bug report for this issue.
[x] that I am using the latest available version of AMP.
[x] that my operating system is up-to-date.

Symptoms

When creating a new instance (ie. Factorio) no FirewallD-Rules are added automaticly. (regardless when value the option "Exclude from Firewall" has)
After digging a little further I noticed that the ampfirewall service is constantly failing.
When trying to run the command by hand it fails with the following exception:
[root@xxx log]# ampinstmgr updatefirewall amp
[Info] AMP Instance Manager v2.0.4 built 04/08/2020 15:40
[Info] Release spec: Release - built by CUBECODERS/buildbot on CCL-DEV
[Error] IM was unable to execute the requested command.
[Error] TargetInvocationException
[Error] [0] (TargetInvocationException) : Exception has been thrown by the target of an invocation.
[Error]   at InstanceManagerCLI.Core.ExecuteCommand (Collections.Generic.List1[T] Params, Collections.Generic.Dictionary2[TKey,TValue] Args)
[Error] NullReferenceException
[Error] [1] (NullReferenceException) : Object reference not set to an instance of an object
[Error]   at InstanceManagerCLI.Core+<>c.b__90_1 (FirewallManagerPlugin.FirewallRule r)
at Linq.Utilities+<>c__DisplayClass1_01[TSource].<CombinePredicates>b__0 (TSource x)   at Linq.Enumerable+WhereListIterator1[TSource].ToList ()
at Linq.Enumerable.ToList[TSource] (Collections.Generic.IEnumerable`1[T] source)
at InstanceManagerCLI.Core.UpdateFirewall (String SourceUser, Boolean DryRun)
Reproduction

Create instance of application "Factorio". (or even without any instance created)
Check status of ampfirewall service using "systemctl status ampfirewall.service".
Try simulating the services command by hand executing "ampinstmgr updatefirewall amp".

@gbruckner Hi! Can you update to the latest version (which should be 2.0.6) and see if the issue still happens?

@miguemely Updated to 2.0.6 - but still fails. Tried also to delete and create the game instance from scratch.
[root@gameserver ~]# ampinstmgr updatefirewall amp
[Info] AMP Instance Manager v2.0.4 built 04/08/2020 15:40
[Info] Release spec: Release - built by CUBECODERS/buildbot on CCL-DEV
[Error] IM was unable to execute the requested command.
[Error] TargetInvocationException
[Error] [0] (TargetInvocationException) : Exception has been thrown by the target of an invocation.
[Error]   at InstanceManagerCLI.Core.ExecuteCommand (Collections.Generic.List1[T] Params, Collections.Generic.Dictionary2[TKey,TValue] Args)
[Error] NullReferenceException
[Error] [1] (NullReferenceException) : Object reference not set to an instance of an object
[Error]   at InstanceManagerCLI.Core+<>c.b__90_1 (FirewallManagerPlugin.FirewallRule r)
at Linq.Utilities+<>c__DisplayClass1_01[TSource].<CombinePredicates>b__0 (TSource x)   at Linq.Enumerable+WhereListIterator1[TSource].ToList ()
at Linq.Enumerable.ToList[TSource] (Collections.Generic.IEnumerable`1[T] source)
at InstanceManagerCLI.Core.UpdateFirewall (String SourceUser, Boolean DryRun)

One other person reported this issue in #beginnertechsupport on Discord. @[340690520869175302]

This has been fixed for the next update. This also fixes some issues where new rules were being continually removed/re-applied for ports that required both protocols for a given game.


php7.0-common is not available

Hello,
I selected PHP 5.6 in my config.yml and i get the following on a fresh vagrant up
TASK [geerlingguy.php : Ensure PHP packages are installed.] ******************** failed: [drupalvm] (item=[u'php7.0-common', u'php7.0-cli', u'php7.0-dev', u'php7.0-fpm', u'libpcre3-dev', u'php7.0-gd', u'php7.0-curl', u'php7.0-imap', u'php7.0-json', u'php7.0-opcache', u'php7.0-xml', u'php7.0-mbstring', u'php-sqlite3', u'php-apcu']) => {"failed": true, "item": ["php7.0-common", "php7.0-cli", "php7.0-dev", "php7.0-fpm", "libpcre3-dev", "php7.0-gd", "php7.0-curl", "php7.0-imap", "php7.0-json", "php7.0-opcache", "php7.0-xml", "php7.0-mbstring", "php-sqlite3", "php-apcu"], "msg": "No package matching 'php7.0-common' is available"}

Closed after viewing this page, sorry:

Same issue here. Thanks for helping me find the solution by posting this!


I am trying to use LangSam for SAM2 model.

@luca-medeiros
These are the changes that I have had done
I am trying to use LangSam for SAM2 model. I have had changed the code and made it compatible for SAM2 but now I am encountering issue .
The changes that I have had done in lang_sam.py file are
import os
import numpy as np
import torch
from groundingdino.models import build_model
from groundingdino.util import box_ops
from groundingdino.util.inference import predict
from groundingdino.util.slconfig import SLConfig
from groundingdino.util.utils import clean_state_dict
from huggingface_hub import hf_hub_download
from sam2.build_sam import build_sam2
from sam2.sam2_image_predictor import SAM2ImagePredictor
import groundingdino.datasets.transforms as T

SAM_MODELS = {
    "sam2-hiera-tiny": ("sam2_hiera_t.yaml", "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt"),
    "sam2-hiera-small": ("sam2_hiera_s.yaml", "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt"),
    "sam2-hiera-base-plus": ("sam2_hiera_b+.yaml", "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt"),
    "sam2-hiera-large": ("sam2_hiera_l.yaml", "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt"),
}

CACHE_PATH = os.environ.get("TORCH_HOME", os.path.expanduser("~/.cache/torch/hub/checkpoints"))

def load_model_hf(repo_id, filename, ckpt_config_filename, device='cpu'):
    cache_config_file = hf_hub_download(repo_id=repo_id, filename=ckpt_config_filename)
    args = SLConfig.fromfile(cache_config_file)
    model = build_model(args)
    args.device = device
    cache_file = hf_hub_download(repo_id=repo_id, filename=filename)
    checkpoint = torch.load(cache_file, map_location='cpu')
    log = model.load_state_dict(clean_state_dict(checkpoint['model']), strict=False)
    print(f"Model loaded from {cache_file} \n => {log}")
    model.eval()
    return model

def transform_image(image) -> torch.Tensor:
    transform = T.Compose([
        T.RandomResize([800], max_size=1333),
        T.ToTensor(),
        T.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]),
    ])
    image_transformed, _ = transform(image, None)
    return image_transformed

class LangSAM:
    def __init__(self, sam_type="sam2-hiera-large", ckpt_path=None, return_prompts: bool = False):
        self.sam_type = sam_type
        self.return_prompts = return_prompts
        self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
        self.build_groundingdino()
        self.build_sam(ckpt_path)

    def build_sam(self, ckpt_path):
        if self.sam_type is None or ckpt_path is None:
            if self.sam_type is None:
                print("No sam type indicated. Using sam2-hiera-large by default.")
                self.sam_type = "sam2-hiera-large"
            config_file, checkpoint_url = SAM_MODELS[self.sam_type]
            config_path = os.path.join(CACHE_PATH, config_file)
            checkpoint_path = os.path.join(CACHE_PATH, os.path.basename(checkpoint_url))
            if not os.path.exists(checkpoint_path):
                print(f"Downloading {self.sam_type} checkpoint...")
                torch.hub.download_url_to_file(checkpoint_url, checkpoint_path)
        else:
            config_path = self.sam_type
            checkpoint_path = ckpt_path

        try:
            sam2 = build_sam2(config_path, checkpoint_path, device=self.device)
            self.sam = SAM2ImagePredictor(sam2)
        except Exception as e:
            raise ValueError(f"Problem loading SAM: {str(e)}")

    def build_groundingdino(self):
        ckpt_repo_id = "ShilongLiu/GroundingDINO"
        ckpt_filename = "groundingdino_swinb_cogcoor.pth"
        ckpt_config_filename = "GroundingDINO_SwinB.cfg.py"
        self.groundingdino = load_model_hf(ckpt_repo_id, ckpt_filename, ckpt_config_filename)

    def predict_dino(self, image_pil, text_prompt, box_threshold, text_threshold):
        image_trans = transform_image(image_pil)
        boxes, logits, phrases = predict(
            model=self.groundingdino,
            image=image_trans,
            caption=text_prompt,
            box_threshold=box_threshold,
            text_threshold=text_threshold,
            device=self.device
        )
        W, H = image_pil.size
        boxes = box_ops.box_cxcywh_to_xyxy(boxes) * torch.Tensor([W, H, W, H])
        return boxes, logits, phrases

    def predict_sam(self, image_pil, boxes):
        image_array = np.asarray(image_pil)
        self.sam.set_image(image_array)
        transformed_boxes = self.sam._transforms.transform_boxes(boxes, image_array.shape[:2])
        masks, _, _ = self.sam.predict_torch(
            point_coords=None,
            point_labels=None,
            boxes=transformed_boxes,
            multimask_output=False,
        )
        return masks

    def predict(self, image_pil, text_prompt, box_threshold=0.3, text_threshold=0.25):
        boxes, logits, phrases = self.predict_dino(image_pil, text_prompt, box_threshold, text_threshold)
        masks = torch.tensor([])
        if len(boxes) > 0:
            masks = self.predict_sam(image_pil, boxes)
        return masks, boxes, phrases, logits

And this is my LangSam Implementation:
from PIL import Image
from lang_sam import LangSAM
from lang_sam.utils import draw_image

# Specify the path to your configuration and checkpoint files
config_path = "/segment-anything-2/sam2_configs/sam2_hiera_l.yaml"
checkpoint_path = "/segment-anything-2/checkpoints/sam2_hiera_large.pt"

# Initialize LangSAM with explicit paths
model = LangSAM(sam_type=config_path, ckpt_path=checkpoint_path)

image_pil = Image.open('weld_img1.jpg').convert("RGB")
text_prompt = 'welds'
masks, boxes, labels, logits = model.predict(image_pil, text_prompt)
print(f"Masks: {masks.shape}\nBoxes: {boxes.shape}\nLabels: {labels}\nLogits: {logits.shape}")

# Visualize the results
draw_image(image_pil, masks, boxes, labels)

But still I am encountering an error:
NameError                                 Traceback (most recent call last)
[/content/drive/MyDrive/lang-segment-anything/lang_sam/lang_sam.py](https://localhost:8080/#) in build_sam(self, ckpt_path)
     95         self.sam.set_image(image_array)
---> 96         transformed_boxes = self.sam._transforms.transform_boxes(boxes, image_array.shape[:2])
     97         masks, _, _ = self.sam.predict_torch(

NameError: name 'sam_model_registry' is not defined

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
2 frames
[/content/drive/MyDrive/lang-segment-anything/lang_sam/lang_sam.py](https://localhost:8080/#) in build_sam(self, ckpt_path)
     96         transformed_boxes = self.sam._transforms.transform_boxes(boxes, image_array.shape[:2])
     97         masks, _, _ = self.sam.predict_torch(
---> 98             point_coords=None,
     99             point_labels=None,
    100             boxes=transformed_boxes,

ValueError: Problem loading SAM. Your model type: /segment-anything-2/sam2_configs/sam2_hiera_l.yaml                 should match your checkpoint path: /segment-anything-2/checkpoints/sam2_hiera_large.pt. Recommend calling LangSAM                 using matching model type AND checkpoint path

Please can anyone help me to resolve this error!!

Planning to release a new version sam2 compatible next week. Also clear all the conflict issues.
Hard to assist you since you have changed the original code and haven't shared your changes.

@luca-medeiros I have had edited the question now you can take a look at the changed code. Thanks!!

Hi @luca-medeiros, any updates on the release for Langsam with SAM2?

Took a while but released!


Sync the actions from the staging and prod

some artifacts in staging only

add them to prod

some artifacts in prod only (less cases)

add them to staging

combine some artifacts, e.g. labMirror.yml to mirror.yml
some artifacts in both branches but not in sync

sync them

https://github.com/OpenLiberty/cloud-hosted-guides/pull/2351 and https://github.com/OpenLiberty/cloud-hosted-guides/pull/2350

PRs merged - closing issue


adding a single card :trolleybus:

This looks great, i'll merge this once i figure out how post s8 cards will work

merged, will edit a bit so it works with the system i have in mind


Confirmations not opening anymore

I just updated to the latest version of the library and set my project for Angular 5.2, now I can't see any confirmation. The code I'm using to show the confirmation is this:
    remove(id: number) {

        this.confirmation.create('Confirmação', 'Confirma exclusão do registro?') // This line is executed as checked via Chrome DevTools
            .subscribe((ans: ResolveEmit) => {
                if (ans.resolved) { // But this one doesn't
                    this.tasklistsService.delete(id)
                        .subscribe((res: Boolean) => {
                            if (res) {
                                this.notification.success('Sucesso!', 'Registro excluído.');
                                this.getTasklists('', this.page);
                            } else {
                                this.notification.error('Erro!', 'Registro não excluído.');
                            }
                        },
                        (err) => console.log(err));
                }
            });
    }

Here's my shared.module.ts:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AccordionModule } from 'ngx-bootstrap/accordion';
import { NgSelectModule } from '@ng-select/ng-select';
import { FormsModule } from '@angular/forms';
import { ModalModule } from 'ngx-bootstrap/modal';
import { ConfirmationService, JasperoConfirmationsModule } from '@jaspero/ng-confirmations';

@NgModule({
  imports: [
    CommonModule,
    NgSelectModule,
    FormsModule,
    ModalModule,
    AccordionModule,
    JasperoConfirmationsModule.forRoot()
  ],
  exports: [
    ModalModule,
    AccordionModule,
    JasperoConfirmationsModule],
})
export class SharedModule { }

Is there anything wrong with my code?

Problem solved by moving the imports to the AppModule, but does anyone know how to make it work from the Shared Module?

Sadly the .forRoot() method needs to be called from app module in order to ensure the service is a singleton. If you remove .forRoot() the module should work, however, you might run into some weird behavior, depending on what component you place the element and where you use the service.


feat(cve): cli cve diff

What type of PR is this?

Which issue does this PR fix:
What does this PR do / Why do we need it:
If an issue # is not available please add repro steps and logs showing the issue:
Testing done on this change:

Automation added to e2e:

Will this break upgrades or downgrades?
Does this PR introduce any user-facing change?:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Example:
zli-linux-amd64 cve diff --url http://<IP_ADDRESS>:5000/ -u laur:password python:3.8.16-alpine3.17 python:3.8.16-alpine3.16
Should print CVE's in python:3.8.16-alpine3.17 and not in python:3.8.16-alpine3.16


Move a fall through comment

When compiling with --strict-warnings using gcc 7.4.0 the compiler
complains that a case falls through, even though there is an explicit
comment stating this. Moving the comment outside of the conditional
compilation section resolves this.

Pushed. Thanks.


Add a telegram bot similar to xmpp and irc ones

It requires to register a bot using Telegram's BotFather first, then put the token into configuration.

this is awesome!


Fixed clicking on spectrogram and not playing

Test:

Click on spectrogram
Observe playback pauses correctly and spectrogram jumps to click
playback should start at that point
Also double check region creation

spectrogram jumps, but doesnt play unless i press the play button, idk if this is intentional?

thats, a good question. Let me see what other video streaming platforms do and we can work from there

spectrogram jumps, but doesnt play unless i press the play button, idk if this is intentional?

thats, a good question. Let me see what other video streaming platforms do and we can work from there

Okay intended behavior is to not change playback mode, just jump to a new part of the playback


upgrade incompatible

When I upgrade html-webpack-plugin from v2.1.0 to v2.6.0. I get an error:
ERROR in ./~/html-webpack-plugin/lib/loader.js!./app/index.html
    Module not found: Error: Cannot resolve module 'lodash' in /Users/creeper/work/projects/react-base/app
     @ ./~/html-webpack-plugin/lib/loader.js!./app/index.html 1:8-25

I checked the source code, and found the reason:
// lib/loader.js line26
return 'var _ = require("lodash"); module.exports = ' + template;

So it makes the lodash the unneeded dependency. And this change is from v2.5.0.

Release 2.6.2


Support otel 0.22

Support Open Telemetry 0.22
It's a draft, waiting for the tracing-opentelemetry 0.23 to be available.

this is unblocked now :)


Allow #[serde(borrow)] for non-std Cow

I've written a custom Cow implementation that's meant to be (mostly) a drop-in replacement for std::borrow::Cow.
The #[derive(Deserialize)] macro currently does specialization for Cow by ident name when using #[serde(borrow)], which is smart, but it also means we get the false positives, as it is in this case:
use beef::Cow;

#[derive(Deserialize)]
struct Foo<'a> {
    #[serde(borrow)]
    foo: Cow<'a, str>,
}

Will produce following compile error:
#[derive(Deserialize)]
         ^^^^^^^^^^^
         |
         expected struct `beef::generic::Cow`, found enum `std::borrow::Cow`
         in this macro invocation

This PR modifies serde::private::de::borrow_cow_* functions to return a generic type R with a bound R: From<std::borrow::Cow>. It would allow any custom type named Cow that also implements From<std::borrow::Cow<T>> (which it probably should) to be consistent with std::borrow::Cow in deserializing behavior. This should obviously just add a no-op for std Cow.
Breakage?
All the usage of the function within the derive macros should continue working since types will be always easily inferred. Given this function is not part of public documentation I reckon this should be fine even though it's technically a breaking change. Thoughts?

Published in 1.0.105.

Works like a charm :)


Cant upload bootloader after secure boot and flash encrypt (IDFGH-10160)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
ESP-IDF v5.2-dev-24-gf404fe96b1-dirty
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
CMD
What is the expected behavior?
Hello.
I encrypted the flash on the esp32 and enabled secure boot, in development mode
everything works fine except the spiffs partition
The esp32 can't find the spiffs partition, I try to change the flag on the partition table to encrypt and without the encrypt flag, but nothing changes.
so i modify the spiffs spec in the bootloader and flash the new bootloader. but in this case the esp32 cannot read anything.
esptool.py --chip esp32 write_flash --encrypt 0x00000 ./build/bootloader/bootloader.bin --force

I think the bootloader is not encrypted while flashing, or some other problem, I don't know what's going on.
I get this message in the terminal
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57

I search for this error and its means, the bootloader its not encrypt, but I use this command --encrypt  to encrypt then its write in flash
With the esp32-s3, after enabling secure boot mode, and encrypting the flash, I can flash many bootloaders without any problem.
What is the actual behavior?
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun  8 2016 00:22:57
Steps to reproduce.
...
Build or installation Logs.
No response
More Information.
No response

The default offset for the bootloader in case of esp32 is 0x1000.
esptool.py --chip esp32 write_flash --encrypt 0x1000 ./build/bootloader/bootloader.bin --force

@AdityaHPatwardhan

v1 is 0x000

?

Hello
after read a lot of issues and documentation, the conclusion its to enable the Reflashable and save the sign key to reflash the bootloader, and if you dont rebuild the progect or the bootloader, so you can reflash the bootloader without any problem.
I make this changes with a new ESP32:
idf.py menuconfig
1. security features -> Enable flash encryption boot -> Checked
2. security features -> Enable flash encryption boot -> Enable usage mode -> developer
3. security features -> Potentially insecure options -> Require flash encryption to be already enabled -> unChecked
4. security features -> Enable hardware Secure Boot in bootloader -> Checked
5. security features -> Secure bootloader mode -> Reflashable
6. partition table -> partition table -> Custom partition table CSV
7. partition table -> offset -> 0xE000

# cerate a sign key
espsecure.py generate_signing_key secure_boot_signing_key.pem

# recompile progect
idf.py fullclean
idf.py bootloader
idf.py build

espsecure generate_flash_encryption_key my_flash_encryption_key.bin
espefuse --port PORT burn_key flash_encryption my_flash_encryption_key.bin

idf.py bootloader-flash
idf.py flash

idf.py monitor

to this point everithink its ok
then I try to flash the same bootloader without make any change, and without rebuild, just reflash the bootloader with this command
esptool.py --chip esp32 write_flash --encrypt 0x01000 ./build/bootloader/bootloader.bin --force
esptool.py --chip esp32 write_flash --encrypt 0x00000 ./build/bootloader/bootloader-reflash-digest.bin --force

and no one of this 2 command get good rerults
its olny show this error
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff00b8,len:11648
load:0x40078000,len:25440
load:0x40080400,len:4
load:0x40080404,len:3876
secure boot check fail
ets_main.c 371
ets Jun  8 2016 00:22:57

note that I have the "build" folder added in the git so that nothing changes, and I can recover the bootloader if something happens
I think it's much easier for you (as developers) and for us (as consumers) to publish the docs, in a step-by-step list. and any step that has some risk, put a question mark next to it and when I hover over it, it explains the consequences of applying that line and a link to the full document in case anyone wants to consume it
like this first block I put in this post

the best way is to create manualy the "secure-bootloader-digest.bin" by 32 random bytes and then burn in efuse block2, and use this key to digest bootloader before flash it

@hdpklm Have you taken a look at the following link reflashable bootloader
It gives the refreshing steps in details along with explanations.
Please let me know what problem did you face in these steps, I can update the document if it seems unclear in any way.

@hdpklm Have you taken a look at the following link reflashable bootloader
It gives the refreshing steps in details along with explanations.
Please let me know what problem did you face in these steps, I can update the document if it seems unclear in any way.

the esp-documents its so complicated, and the information its dispersed in different locations of the page.
I think its easy for everyone to understand the documents, but for me, I preferred obtaining all information about one thing in the same section, with the warranty, the errors, efuse related, and some examples, I lose about 20 pcs of esp32 this month, because I try to do wath I find in the document.
normally I read the section that I need, for example: I need to encrypt the flash, so I need to find everything related to flash encryption in this section, with notes of common error.
thank you so much
have a nice day

ok thank you, but I think its better for reduce issues, because I find a lot of issues ask for this problem, so I think is beter to mentioned this emulate in document
thank you

I don't know if you like how I explain it in this document, but it's easier for me to see all the consecutive commands, and apply the one I want.
Many comments are missing from this document, and notices of irreversible steps.
But when I want to learn how to encrypt the code in the esp32. First everything has to work very well. and then I start to investigate each instruction how it works and what it is for
but if the code doesn't work, I have to find out why it doesn't work, and how to make it work, and then start researching
https://github.com/hdpklm/Frameworks-Setup/blob/master/ESP32/ESP32-Encrypt.md


ModuleNotFoundError when install through pip

Then following error pops when follow the basic evaluation page (https://ragrank.readthedocs.io/latest/get_started/basic_evaluation.html)

Solved it. I will take action from version 0.0.7 onwards.


Add an example test case for using PSO

Hello @khezen ,
I was looking to use evoli and needed a quick little example for using PSO. I'd love to have your input on the example I created.
I think an example might be useful to others who look to use evoli.
Thanks!
Jason

I will just merge in the current state.


RSS memory spike using batchDelete

As found in https://github.com/ChainSafe/lodestar/issues/5591#issuecomment-1575754902, using batch delete may cause RSS spike in lodestar
The version we use is:

<EMAIL_ADDRESS><EMAIL_ADDRESS>
Will try to create a MVP to reproduce the issue

Closing because the original issue is closed too. If you have new information, or an MVP, we'll reopen.


Add an assumed role option

Sometimes the Kinesis stream you want to publish to is in a different AWS account. You therefore need to assume a role in order to access it. This app should provide an option to be able to assume a role in order to support this use case.

Cool beans, looks like AWS SDK for Go has an AssumedRoleProvider that will likely take care of the heavy lifting.


[Edge case] When NIC deletion fails machine stays CrashLoopBackoff until CreationTimeout without trying re-create

What happened:
The creation of VM, Disk and NIC is done by mcm-provider-azure in createVMNicDisk. This method is called in CreateMachine method which is called by the MachineController's triggerCreationFlow. If there is any error in the creation of VM, NIC or disk, then all the three are removed and will be recreated in the subsequent reconciliation.
However, we have an edge case when NIC deletion fails. In that case, the MC changes the machine phase to CrashLoopBackOff. In the next reconcile cycle: the triggerCreationFlow invokes Driver.GetMachineStatus to get the VM status. Unfortunately, the azure driver impl of this method populates the node name in the response GetMachineStatusResponse if there is a NIC still existing for the VM even if the VM doesn't exist.  This cases the triggerCreationFlow to think that the  VM associated with the Machine is already created and populate the node label on the machine object with the value in the driver response and skip the machine creation. The machine is then permanently stuck in CrashLoopBackoff
What you expected to happen:

The Driver.GetMachineStatus should not return the node name for a non-existent VM in the  GetMachineStatusResponse.
The current driver.GetMachineStatusResponse only has a ProviderID (VM id at cloud provider) and a NodeName
This should be enhanced to also contain a DiskNamesand NicNames slice. In other words, the new driver.GetMachineStatusResponse should look like the below

type GetMachineStatusResponse struct {
  ProviderID  string
  NodeName    string
  DiskNames   []string
  NicNames    []string
}

If there are utterly no resources found (no vm, disks or nics), then Driver.GetMachineStatus() should return a nil response and a status.Error with codes.NotFound.
If there is even a single resource found, then Driver.GetMachineStatus should return a populated GetMachineStatusResponse struct with a nil error. If the VM is present then ProviderID is populated, else it is empty.
We will need to check this in other provider implementations too and create relevant issues.

The triggerCreationFlow currently just checks whether there is an error returned by Driver.GetMachineStatus() in order to determine whether to invoke a call to Driver.CreateMachine. It should should additionally check if the  check whether GetMachineStatusResponse.ProviderID is empty.
The controller.getVMStatus helper method invoked in the triggerDeletionFlow currently makes a call to Driver.GetMachineStatus and ignores the response and only checks the error code. It must now capture and check the response.

If there is a populated ProviderID it should change the operation stage to InitiateDrain.
if ProviderID is empty, but some other resource is found in the response, it should change the operation stage to InitiateVMDeletion

How to reproduce it (as minimally and precisely as possible):
Anything else we need to know:
Environment:

Created https://github.com/gardener/machine-controller-manager-provider-azure/issues/88

Post grooming discussion
Because of dealing with NIC separately , when we face problem in deleting them then issue like this can happen
This has happened because of two reasons:

problem in our driver response design

our driver response not sending separate resources (nic, disks, vm) , so presence of even one is considered presence of all and we don't retry creation for CrashLoopbackoff machines

Azure API sending unexpected responses

ideally Azure API should allow deletion of NIC , but in this case its not
this can be solved by updating azure-go-sdk , because then we don't have deal with NICs separately and only azure deals with them(cascade delete) and this way presence of 1 resource can be safely considered presence of all.

We can leverage resource-graph API to get this cheaply.
resources
| extend tagKeys = bag_keys(tags)
| where tagKeys hasprefix "kubernetes.io-cluster-" and tagKeys hasprefix "kubernetes.io-role-"
| where name startswith "<vm-name>"
| project name, type

In a single query you can get all resources created and associated to a VM.
The above query leverages the existing convention that we have for all resources created:

NIC has a name: "-nic"
OSDisk has a name: "-os-disk"
DataDisk has a name: "-data-disk"

The above issue doesn't occur anymore. It has solved by the following :

GetMachineStatus() has been updated to be in sync with the contract and return NotFound error only if VM is not found. Means if the nics, disks are there , and VM not there, then also it'll return NotFound. This allows for re-create operation being tried in every reconcile

Further CreateMachine() has been impoved to not delete NIC if VM creation fails, so that in the next reconcile VM creation is retried directly. This allows to avoid errors due to NIC deletion
But there still is a scope of orphan resources being left even after machine deletion. This is due to the updated behavior of GetMachineStatus() and how its used in deletion flow.
Will open another issue to deal with that corner case.
/close


[5.2] password validation override in ResetsPasswords

Thanks, but the tests are failing.

From the build log:
$ phpenv global 7.0
rbenv: version `7.0' not installed
The command "phpenv global 7.0" failed and exited with 1 during .

Seems as though it's not the tests but something in the build process that failed.

What are you wanting to customize about the validation?

The validation sets the minimum password length to 6 characters. I would like to be able to override this to 8 chars. The alternative solution is:
class PasswordController extends Controller
{
    use ResetsPasswords {
        reset as parentReset;
    }

    public function reset(Request $request)
    {
        $this->validate($request, [
            'token' => 'required',
            'email' => 'required|email',
            'password' => 'required|confirmed|min:8',
        ]);
        return $this->parentReset($request);
    }

}

With this change I can do:
class PasswordController extends Controller
{
    use ResetsPasswords;

    $this->passwordValidation = [
        'password' => 'required|confirmed|min:8',
    ];
}


Feature dts demo

added mongodb and postgres configuration from the dts demo namespace

I will let @WadeBarnes chime in here, but what I had initially setup for the other namespace used specific templates for each deployment, rather than profiles (e.g.: backup-mariadb, backup-mongodb, etc.).
The idea behind it is that (and this is something I personally do not like too much about the backup-container repo) the template ends up having too many environment variables that are unrelated to the deployment depending on the technology, and I would personally rather have a template that is specific to the technology and with limited set of environment variables and settings rather than a very generic, confusing setup.
Additionally, the templates will have different sets of username/password combinations in the form of FIRST_DB_USER/FIRST_DB_PASSWORD referencing different secrets so I really think we should split the configurations in two separate components following the pattern in the existing example.

@esune in that case wouldn't all the backups have the same configuration file and the same settings file? I'm fine with this it's just that a user would have to edit the backup.conf and settings files every time they want to deploy

@esune in that case wouldn't all the backups have the same configuration file and the same settings file? I'm fine with this it's just that a user would have to edit the backup.conf and settings files every time they want to deploy

backup.conf: settings are going to be different between mongodb and postgresql, so they need to be different.
build/deployment templates: the build template could have different values for the same parameters, the deployment will however need to be different since different databases to be backed up will require different environment variables for their username/password. The current mongodb template doesn't even seem correct right now since it doesn't have username and password in the environment variables, and will run in the old legacy mode, making it impossible to back up more than one database (and making the backup.,conf useless).
Having to edit backup.conf AND the relevant deployment template when adding/removing database instances from teh configuration is expected.

@wadeking98 please also ensure the actual volume claims used by the backup container in OpenShift are using the appropriate volume type (netapp-file-backup). If they are not, they will need to be moved to new volumes using the pvc-migrator.


Running TensorFlow on SHArC processors?

Are there any information on the possibility to compile TensorFlow (Lite C) targeting SHArC processor from Analog Devices?

Hi @DanijelDomazet !
Not Sure whether the Cmake  documentation on lite will suit for Sharc processors with Hexagon DSP support.
Normally we use Cmake the compile certain example from tflite/micro repo .
Could you post in TFlite-Micro repo / TF Forum for better visibility.
Thank you!

Not Sure whether the Cmake  documentation on lite will suit for Sharc processors with Hexagon DSP support.

I think this requires lots of changes to CMake makefiles. Also, SHArC C++ compiler seems limited.

Normally we use CMake to compile certain examples from tflite/micro repo . Implementation is highly feasible when the manufacturer provides an IDE to import the .cc files procured from lite models using XXD converter.

Not sure I understand.

Could you post in TFlite-Micro repo / TF Forum for further assistance.

https://github.com/tensorflow/tflite-micro/issues/1593
https://discuss.tensorflow.org/c/general-discussion

Normally we use CMake to compile certain examples from tflite/micro repo . Implementation is highly feasible when the manufacturer provides an IDE to import the .cc files procured from lite models using XXD converter.

On this Part, I was suggesting to go through 15 steps process from here. Previous section covers model to .cc conversion using xxd converter.

Normally we use CMake to compile certain examples from tflite/micro repo . Implementation is highly feasible when the manufacturer provides an IDE to import the .cc files procured from lite models using XXD converter.

On this Part, I was suggesting to go through 15 steps process from here. Previous section covers model to .cc conversion using xxd converter.

Thanks.
I don't think I can move any forward before I am able to compile the TF Lite C for SHArC processor architecture. Current cmakefiles don't support SHArC, only Arm, x86, etc.

Hi @DanijelDomazet Did you find way to compile tf lite c for SHArC processor ? Any suggestion would be of great help. Thank you


New feedback form prompting modal after project deploy

What does this PR do and why?

Displays a new modal that prompts user to give feedback after they deployed a project.

Code changes:

Adds ?new_deploy=true when redirecting to the project's page after it is deployed, which displays the modal. This search query is removed from the URL when the modal is closed.
Changes the component name of the feedback form link (stoned Banny in bottom right).
Adds function in utils to generate feedback form URL

Screenshots or screen recordings
After deploy, user redirected to /#/p/<handle>?new_deploy=true which opens modal:

Deploying projects is bugging on Rinkeby right now so I can't attach a good video of the entire process. But I've tested that after deployment user is redirected to the correct URL, and when adding the ?new_deploy=true to URLs of already existing Rinkeby projects, the modal behaves as expected. So I'm sure it will work.
Acceptance checklist

[x] I have evaluated the Approval Guidelines for this PR.
[x] I have tested this PR in all supported browsers.

love that modal @johnnyd-eth! link to the discord is awesome.
do you think we could also use the newDeploy=true to avoid that "project not found" that occasionally shows up when the redirect happens before the newly deployed project can be read?

love that modal @johnnyd-eth! link to the discord is awesome.
do you think we could also use the newDeploy=true to avoid that "project not found" that occasionally shows up when the redirect happens before the newly deployed project can be read?

Yep the modal does show up in that case. I've also added a new state for when the user closes the modal (so they still don't see the 'not found' message). Note: when you click that reload button it redirects to the project without the newDeploy in the URL, so that the modal won't show up again for them. Here's how it would look (and hopefully the project would've actually loaded by the time they click refresh and they'll see it lol):
https://user-images.githubusercontent.com/96150256/153405801-e1b0ce35-3834-4229-8bf1-231be74797f8.mp4

@aeolianeth @peripheralist thanks heaps for your feedback! I've made a few further changes

@johnnyd-eth i like that strategy! still feels a little hacky, but much better than before.
maybe that "refresh" button can refresh the page without removing the new_deploy=true param?

The only reason I was removing it is that in the case we keep it in the URL, when the user refreshes they'll have to close the modal that they already just closed (possibly doing this multiple times), which may seem quite sketchy. I decided to add another search param feedbackModalOpen which is removed on the 'refresh', so that in the case the user clicks refresh and their project is still not available, they will still see the 'not available' rather than the 'not found' message, while also not having the modal popup again. Here's how it looks:
https://user-images.githubusercontent.com/96150256/153685450-4c99ca2d-ce17-47e6-b69e-a287c9c4da8d.mp4

The only reason I was removing it is that in the case we keep it in the URL, when the user refreshes they'll have to close the modal that they already just closed

Ah makes sense @johnnyd-eth, good thinking. I like this! Not sure if this is just something with your localhost build, but seems like there's no Loading spinner when Refresh is clicked, which feels a little odd. I'm wondering if the "refresh" action isn't resetting the value of ProjectID?

loving it @johnnyd-eth , let's ship. @aeolianeth it says you've got some open comments still. looks like they're all addressed, but i'll leave for you to merge just in case 👌