[MODEXPW-102] - Improved error handling

Purpose
Improve error handling

Approach

TODOS and Open Questions

Learning

Pre-Merge Checklist:
Before merging this PR, please go through the following list and take appropriate actions.

Does this PR meet or exceed the expected quality standards?

[x] Code coverage on new code is 80% or greater
[x] Duplications on new code is 3% or less
[x] There are no major code smells or security issues

Does this introduce breaking changes?

[ ] Were any API paths or methods changed, added or removed?
[ ] Were there any schema changes?
[ ] Did any of the interface versions change?
[ ] Were permissions changed, added, or removed?
[ ] Are there new interface dependencies?
[x] There are no breaking changes in this PR.

If there are breaking changes, please STOP and consider the following:

What other modules will these changes impact?
Do JIRAs exist to update the impacted modules?

[ ] If not, please create them
[ ] Do they contain the appropriate level of detail?  Which endpoints/schemas changed, etc.
[ ] Do they have all they appropriate links to blocked/related issues?

Are the JIRAs under active development?

[ ] If not, contact the project's PO and make sure they're aware of the urgency.

Do PRs exist for these changes?

[ ] If so, have they been approved?

Ideally all of the PRs involved in breaking changes would be merged in the same day to avoid breaking the folio-testing environment.  Communication is paramount if that is to be achieved, especially as the number of intermodule and inter-team dependencies increase.
While it's helpful for reviewers to help identify potential problems, ensuring that it's safe to merge is ultimately the responsibility of the PR assignee.

INFO: api-lint: Using api-lint version: 1.1.1
INFO: api-lint: https://dev.folio.org/guides/api-lint/
INFO: api-lint: Assessing API description files: OAS
INFO: api-lint: Processing OAS 3.0 file: src/main/resources/swagger.api/bulk-edit.yaml
ERROR: api-lint:
---- Summary:
parsingResult.conforms: false
parsingResult.results.length: 2
Violation: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/user/customFieldCollection.json'
Violation: Unresolved reference '../../../../folio-export-common/schemas/user/customFieldCollection.json#/CustomFieldCollection'
--------
validationResult.conforms: true
validationResult.results.length: 18
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
Warning: should NOT have additional properties
--------

---- parsingResult:
Model: file://./src/main/resources/swagger.api/bulk-edit.yaml
Conforms: false
Number of results: 2

Level: Violation

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: Unresolved reference '../../../../folio-export-common/schemas/user/customFieldCollection.json#/CustomFieldCollection'
  Severity: Violation
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/declares/unresolved
  Property:
  Range: [(405,6)-(406,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/user/customFieldCollection.json'
  Severity: Violation
  Target: ../../../../folio-export-common/schemas/user/customFieldCollection.json
  Property:
  Range: [(405,12)-(405,108)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

---- validationResult:
ModelId: file://./src/main/resources/swagger.api/bulk-edit.yaml
Profile: OAS 3.0
Conforms: true
Number of results: 18

Level: Warning

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fitems-content-update%2Fupload/supportedOperation/post/postContentUpdates/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fitems-content-update%2Fupload/supportedOperation/post/postContentUpdates/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Range: [(43,0)-(44,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fitems-content-update%2Fupload/supportedOperation/post/postContentUpdates/returns/resp/404/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fitems-content-update%2Fupload/supportedOperation/post/postContentUpdates/returns/resp/404/payload/application%2Fjson/examples/example/default-example
  Range: [(51,0)-(52,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fitems-content-update%2Fupload/supportedOperation/post/postContentUpdates/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fitems-content-update%2Fupload/supportedOperation/post/postContentUpdates/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Range: [(59,0)-(60,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fupdated-items%2Fdownload/supportedOperation/get/downloadPreviewByJobId/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fupdated-items%2Fdownload/supportedOperation/get/downloadPreviewByJobId/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Range: [(86,0)-(87,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fupdated-items%2Fdownload/supportedOperation/get/downloadPreviewByJobId/returns/resp/404/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fupdated-items%2Fdownload/supportedOperation/get/downloadPreviewByJobId/returns/resp/404/payload/application%2Fjson/examples/example/default-example
  Range: [(94,0)-(95,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fupdated-items%2Fdownload/supportedOperation/get/downloadPreviewByJobId/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fupdated-items%2Fdownload/supportedOperation/get/downloadPreviewByJobId/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Range: [(102,0)-(103,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fusers/supportedOperation/get/getPreviewUsersByJobId/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fusers/supportedOperation/get/getPreviewUsersByJobId/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Range: [(134,0)-(135,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fusers/supportedOperation/get/getPreviewUsersByJobId/returns/resp/404/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fusers/supportedOperation/get/getPreviewUsersByJobId/returns/resp/404/payload/application%2Fjson/examples/example/default-example
  Range: [(142,0)-(143,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fusers/supportedOperation/get/getPreviewUsersByJobId/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fusers/supportedOperation/get/getPreviewUsersByJobId/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Range: [(150,0)-(151,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fitems/supportedOperation/get/getPreviewItemsByJobId/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fitems/supportedOperation/get/getPreviewItemsByJobId/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Range: [(182,0)-(183,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fitems/supportedOperation/get/getPreviewItemsByJobId/returns/resp/404/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fitems/supportedOperation/get/getPreviewItemsByJobId/returns/resp/404/payload/application%2Fjson/examples/example/default-example
  Range: [(190,0)-(191,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fitems/supportedOperation/get/getPreviewItemsByJobId/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fpreview%2Fitems/supportedOperation/get/getPreviewItemsByJobId/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Range: [(198,0)-(199,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Ferrors/supportedOperation/get/getErrorsPreviewByJobId/returns/resp/200/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Ferrors/supportedOperation/get/getErrorsPreviewByJobId/returns/resp/200/payload/application%2Fjson/examples/example/default-example
  Range: [(224,0)-(225,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fupload/supportedOperation/post/uploadCsvFile/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fupload/supportedOperation/post/uploadCsvFile/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Range: [(273,0)-(274,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fupload/supportedOperation/post/uploadCsvFile/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fupload/supportedOperation/post/uploadCsvFile/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Range: [(281,0)-(282,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fstart/supportedOperation/post/startJob/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fstart/supportedOperation/post/startJob/returns/resp/400/payload/application%2Fjson/examples/example/default-example
  Range: [(307,0)-(308,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fstart/supportedOperation/post/startJob/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Fstart/supportedOperation/post/startJob/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Range: [(322,0)-(323,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

- Constraint: http://a.ml/vocabularies/amf/validation#example-validation-error
  Message: should NOT have additional properties
  Severity: Warning
  Target: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Froll-back/supportedOperation/post/rollBackCsvFile/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Property: file://./src/main/resources/swagger.api/bulk-edit.yaml#/web-api/endpoint/%2F%7BjobId%7D%2Froll-back/supportedOperation/post/rollBackCsvFile/returns/resp/500/payload/application%2Fjson/examples/example/default-example
  Range: [(348,0)-(349,0)]
  Location: file://./src/main/resources/swagger.api/bulk-edit.yaml

INFO: api-lint: Processing OAS 3.0 file: src/main/resources/swagger.api/bursar-export.yaml
INFO: api-lint:     did not detect any errors
INFO: api-lint: Processing OAS 3.0 file: src/main/resources/swagger.api/circulation-log.yaml
INFO: api-lint:     did not detect any errors
INFO: api-lint: Processing OAS 3.0 file: src/main/resources/swagger.api/e-holdings.yaml
ERROR: api-lint:
---- Summary:
parsingResult.conforms: false
parsingResult.results.length: 8
Violation: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/eholdings/e-package/package.json'
Violation: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/eholdings/e-resources/resource.json'
Violation: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/eholdings/e-resources/resources.json'
Violation: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/eholdings/accessTypes/accessTypeData.json'
Violation: Unresolved reference '../../../../folio-export-common/schemas/eholdings/e-resources/resources.json#/EResources'
Violation: Unresolved reference '../../../../folio-export-common/schemas/eholdings/e-package/package.json#/EPackage'
Violation: Unresolved reference '../../../../folio-export-common/schemas/eholdings/e-resources/resource.json#/EResource'
Violation: Unresolved reference '../../../../folio-export-common/schemas/eholdings/accessTypes/accessTypeData.json#/AccessTypeData'
--------
validationResult.conforms: true
validationResult.results.length: 0
--------

---- parsingResult:
Model: file://./src/main/resources/swagger.api/e-holdings.yaml
Conforms: false
Number of results: 8

Level: Violation

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: Unresolved reference '../../../../folio-export-common/schemas/eholdings/e-package/package.json#/EPackage'
  Severity: Violation
  Target: file://./src/main/resources/swagger.api/e-holdings.yaml#/declares/unresolved
  Property:
  Range: [(16,6)-(17,0)]
  Location: file://./src/main/resources/swagger.api/e-holdings.yaml

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/eholdings/e-package/package.json'
  Severity: Violation
  Target: ../../../../folio-export-common/schemas/eholdings/e-package/package.json
  Property:
  Range: [(16,12)-(16,96)]
  Location: file://./src/main/resources/swagger.api/e-holdings.yaml

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: Unresolved reference '../../../../folio-export-common/schemas/eholdings/e-resources/resource.json#/EResource'
  Severity: Violation
  Target: file://./src/main/resources/swagger.api/e-holdings.yaml#/declares/unresolved_1
  Property:
  Range: [(18,6)-(19,0)]
  Location: file://./src/main/resources/swagger.api/e-holdings.yaml

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/eholdings/e-resources/resource.json'
  Severity: Violation
  Target: ../../../../folio-export-common/schemas/eholdings/e-resources/resource.json
  Property:
  Range: [(18,12)-(18,100)]
  Location: file://./src/main/resources/swagger.api/e-holdings.yaml

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: Unresolved reference '../../../../folio-export-common/schemas/eholdings/e-resources/resources.json#/EResources'
  Severity: Violation
  Target: file://./src/main/resources/swagger.api/e-holdings.yaml#/declares/unresolved_2
  Property:
  Range: [(20,6)-(21,0)]
  Location: file://./src/main/resources/swagger.api/e-holdings.yaml

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/eholdings/e-resources/resources.json'
  Severity: Violation
  Target: ../../../../folio-export-common/schemas/eholdings/e-resources/resources.json
  Property:
  Range: [(20,12)-(20,102)]
  Location: file://./src/main/resources/swagger.api/e-holdings.yaml

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: Unresolved reference '../../../../folio-export-common/schemas/eholdings/accessTypes/accessTypeData.json#/AccessTypeData'
  Severity: Violation
  Target: file://./src/main/resources/swagger.api/e-holdings.yaml#/declares/unresolved_3
  Property:
  Range: [(22,6)-(23,0)]
  Location: file://./src/main/resources/swagger.api/e-holdings.yaml

- Constraint: http://a.ml/vocabularies/amf/core#unresolved-reference
  Message: File Not Found: ENOENT: no such file or directory, open './folio-export-common/schemas/eholdings/accessTypes/accessTypeData.json'
  Severity: Violation
  Target: ../../../../folio-export-common/schemas/eholdings/accessTypes/accessTypeData.json
  Property:
  Range: [(22,12)-(22,111)]
  Location: file://./src/main/resources/swagger.api/e-holdings.yaml

---- validationResult:
ModelId: file://./src/main/resources/swagger.api/e-holdings.yaml
Profile: OAS 3.0
Conforms: true
Number of results: 0

INFO: api-lint: Processing OAS 3.0 file: src/main/resources/swagger.api/order-export.yaml
INFO: api-lint:     did not detect any errors
ERROR: api-lint: There were processing errors. See list above.

Note: When those ERRORs are fixed, then any INFO and WARNING messages will be gone too. See Jenkins "Artifacts" tab for ApiLintReport.


Install ca-certificates

Installs and updates CA Certificates to fix this error:
Cloning into 'src'...
fatal: unable to access 'https://github.com/abiosoft/webtest.git/': error setting certificate verify locations:

CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
2017/02/14 04:08:48 exit status 128

I don't know how I left this PR hanging for long.
ca-certificates is already installed in the container. I wonder what is different in your setup
Thanks.


Make some Variant internal functions public.

-Make constructors, ops and setget inline functions public
-Should help optimizing the GDScript VM

I've included a GDScript fix here to pass the tests in the CI. Also rebased reduz's commit to fix the conflicts caused by the types that changed name.

I found a fix for this but it seems I can't push anymore (I'm getting "permission denied" error).

diff --git a/modules/gdscript/gdscript_byte_codegen.cpp b/modules/gdscript/gdscript_byte_codegen.cpp
index 6998cc5bb7..5a297cc50a 100644
--- a/modules/gdscript/gdscript_byte_codegen.cpp
+++ b/modules/gdscript/gdscript_byte_codegen.cpp
@@ -554,6 +554,14 @@ void GDScriptByteCodeGenerator::write_unary_operator(const Address &p_target, Va

 void GDScriptByteCodeGenerator::write_binary_operator(const Address &p_target, Variant::Operator p_operator, const Address &p_left_operand, const Address &p_right_operand) {
        if (HAS_BUILTIN_TYPE(p_left_operand) && HAS_BUILTIN_TYPE(p_right_operand)) {
+               if (p_target.mode == Address::TEMPORARY) {
+                       Variant::Type result_type = Variant::get_operator_return_type(p_operator, p_left_operand.type.builtin_type, p_right_operand.type.builtin_type);
+                       Variant::Type temp_type = temporaries[p_target.address].type;
+                       if (result_type != temp_type) {
+                               write_type_adjust(p_target, result_type);
+                       }
+               }
+
                // Gather specific operator.
                Variant::ValidatedOperatorEvaluator op_func = Variant::get_validated_operator_evaluator(p_operator, p_left_operand.type.builtin_type, p_right_operand.type.builtin_type);

--

Thanks!


direct-to-display window improvements

Description
Rather than just taking the first plane of the first display we now gather a list of valid candidates and pick the best fit.
An additional display 'FullscreenStretch' mode has been added. This uses VkDisplayPresentInfoKHR from the VK_KHR_display_swapchain extension, when available, to specify separate src and dst rectangles for the surface and display. This enables you to have a 640x360 surface stretched fullscreen onto the display for example, rather than just appearing in a corner.
In standard or stretch mode, with direct-to-display, specifying --width & --height controls the surface size.
In fullscreen or borderless modes, the surface is the same size as the display regardless of the width and height settings. The width and height are used to select the best display/plane combination however.
General Checklist:
Please ensure the following points are checked:

[x] My code follows the coding style
[x] I have reviewed file licenses
[x] I have updated the header Copyright to reflect the current year (CI build will fail if Copyright is out of date)
[x] I have commented any added functions (in line with Doxygen)
[x] I have commented any code that could be hard to understand
[x] My changes do not add any new compiler warnings
[x] My changes do not add any new validation layer errors or warnings
[x] I have used existing framework/helper functions where possible
[ ] My changes build on Windows, Linux, macOS and Android. Otherwise I have documented any exceptions
[x] My changes do not add any regressions
[x] I have tested every sample to ensure everything runs correctly
[x] This PR describes the scope and expected impact of the changes I am making

Note: Built and tested only on Linux

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Gary Sweet seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Besides the fact, that I have not checked the actual functionality (just checked on Windows where it is not used): LGTM now!

I suspect that no-one else will actually be able to test the direct-to-display changes, so this may be a code-review only change.


SqProject rewrite

Major refactoring of SqProject APIs.
Main benefits:

everything is immutable and async
more compatible with React
will allow us to implement pinning and pinned caches later on
also allows to visualize much better what's going on in the playground (right now the visualization is still quite rudimentary)

This is still a draft and it looks like there're ~5-10 hours of work remaining.
Initially, I started this PR on top of WorkerPool, to experiment with parallelization. So it includes some unrelated code, but that shouldn't be a big problem in review, WorkerPool code is separate.
TODO:

[x] support circular imports (I'll need to refactor actions and state once again to achieve this)
[x] update SqProject tests and write more tests
[x] update Hub code to new APIs; versioned-components will be especially annoying
[x] check a few more corner cases such as loads failing, propagating errors, etc.

Optional goals that can be done later:

test pins more; this PR implements pins but I still haven't tried it, because most tests are for file-based linker which doesn't support pins, so there might be bugs here
enable pins in hub
improve visualization and add debug logs in the playground
improve performance of "parent lookups" (whenever we load a new module through imports, we have to look through all its parents, and for now I'm just doing a full scan of everything in the project; shouldn't be a problem until we get to ~100 files per project)
per-module seeds
benchmark for performance overheads and possibly optimize the hashing function if that's a problem
per-head environments

I think this is mostly done and ready for review.
One remaining issue is the one I mentioned before, that code edits queue up and run sequentially, even if we could drop the middle of the queue. I haven't implemented run job cancellations yet.
After thinking about it, AFAICT this doesn't cause memory leaks, only the delay that become annoying if your code is slow and you're typing a long comment without disabling the autorun.
But in the worst case you can just reload the page and restore from draft.
I still want to implement cancellations, but I can do this in a separate PR.
Btw, I moved "dependency graph" from editor menu to the right side:


Fill in the phase column for CDS feature in GFF output files

Mostly it will be "0", with a few exceptions like SPAC977.01
The phase is one less than the /codon_start

I've fixed the code and tested locally.  So the GFF files should be fixed tomorrow morning.
While re-reading the GFF3 spec I noticed that a value is required in the "phase" column  for CDS features.  I've fixed that at the same time.

Fixed!  The phase column is now correct for all CDS features in the GFF files.

with a few exceptions like SPAC977.01

That gene was the only one that had the problem.  I'm glad I looked at this though because the phase column needed fixing anyway.


Update CSS selector according to PR#123 and case stability improvement.

Add a wait action in copy and paste case to improve stability.

 Update end to end test case to support PR#123

Coverage remained the same at 7.865% when pulling 0e3dc4ec7cbd9713ee772a55a6f69e93c8d31bb7 on henrywang:update_css into 3a901e09323658c1de9f6fcb665c68f147e5c8c1 on weldr:master.

Coverage remained the same at 7.881% when pulling 00864e70b7b2ba6f438ac3120a634149109f3295 on henrywang:update_css into 645adb5d198ec2af34e2e0adb15f1ee27795f90f on weldr:master.


ccmlib: drop cassandra-cli and thrift support

cassandra-cli was removed in Cassandra 2.2.0. and it was replaced by
cqlsh in newer releases. actually, scylla-tools does not build or
package this command line tool at all. so let's drop the related helpers
for accessing this tool.
thrift was deprecated in both ScyllaDB and Cassandra. so there is
no need to pass it around. to be compatible with existing users of
the ccmlib, the thrift related parameters are preserved in public
intefaces, but they are not passed down anymore. in some places,
we enforce that the host on which thrift protocol is served should
be identical to that of binary. and actually, scylla always use
the same host address for both thrift and binary protocols. so we
replace the address like self.network_interfaces['thrift'][0]
with self.network_interfaces['binary'][0].
Refs https://github.com/scylladb/scylladb/issues/3811
Refs https://github.com/scylladb/scylladb/issues/18416

ERROR tests/test_scylla_cmds.py::TestCCMClusterSniProxy::test_cqlsh[ccm_reloc_cluster] - subprocess.TimeoutExpired: Command '['./ccm', 'start', '--sni-proxy', '--sni-port', '8443', '--wait-for-binary-proto']' timed out after 600 seconds
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!

still looking.

@scylladb/qa-maintainers hi maintainers, could you help review this change?

It might have some falloffs on drivers tests, but will address then there

It might have some falloffs on drivers tests, but will address then there

@fruch hi Israel, thank you for your review and approval. do you mean the tests in dtest?

It might have some falloffs on drivers tests, but will address then there

@fruch hi Israel, thank you for your review and approval. do you mean the tests in dtest?

Not dtest, other users of ccm are the java and python drivers, but we probably should skip thrift even if used in those

thanks. i see. since start_rpc option is off by default, see https://github.com/scylladb/scylladb/blob/af0c0ee8af48f1691a8f8a379a442da5eeeb5f8a/db/config.cc#L802-L803. and i searched

python-driver: https://github.com/search?q=repo%3Ascylladb%2Fpython-driver+start_rpc&type=code
https://github.com/search?q=repo%3Ascylladb%2Fjava-driver start_rpc&type=code

neither of them actually enables this option. so i think we are safe.


updates

biggest thing was changing Buffer.from(result.output[0].code) , i left the console.logs in there for you to check out the different output shape..took me a while to find out what had changed from 0.5.4. remember to delete them if you bump it. ty friend

im using like this
gulp.task("app", function () {
    return gulp.src(['./src/**/*{.js,.jsx,.ts,.tsx}'])
        .pipe(tsc())
        .pipe(rollup({
            input: "src/main.js",
            output: {
                format: 'iife',
                globals: {
                    "react": "React",
                    "react-dom": "ReactDOM"
                },
            },
            external: ["electron", "react", "react-dom"],
            plugins:[]
        }))
        .pipe(gulp.dest(paths.output.dist))
        .pipe(browserSync.reload({ stream: true }));
});

to pipe gulp typescript into rollup to avoid a billion headaches


Querier not getting the UICArtPen

https://github.com/agrc/uic-forms/blob/0e40a9b1db1fc6b7fb552f1ff918b69c588ef34a/uic-forms/services/Querier.cs#L168-L221
This appeared to be working on Sept 12, 2018 when I ran the tool for period Oct 1, 2017 to March 31, 2018 and we were writing to the pdf forms.  Does not seem to work now when we are writing to csv file.  Steve can you check your local instance against the current development instance to make sure we have the same UICArtPen wells?

What dates are you using and what is the object id of the artpen that is not being picked up?

Is this still an issue?

I will create some ArtPen Wells in Dev with various parameters set to capture the queries then run uic-forms.exe against DEV.  I'll get back to you.

Steve, I created 2 UICArtPen wells in DEV that should be captured by uic-forms.exe.  I tried to run the most recent version dated 10/22 against 'staging' but it crashes.  I think we have recreated DEV since that time.  here is the latest log.txt file .
7520-20191104.log.txt

looks like it wasn't able to connect... 2019-11-04 13:19:51.439 -07:00 [Verbose] Connecting to UDEQ...

The staging database isn't versioned right now. That would cause this tool to fail as it needs the versioned views. That isn't the issue here probably but it's a good thing to note as a requirement.

@CanDKD i'm going to need more information. The artpens are used in 8 query locations. The query I ran found items so can you provide me the test case data where you are expecting the artpens to be found. Thanks!

I think we may have a problem traversing the M:N relationship between AOR and ArtPen.  I checked the AOR Validation> no artificial penetrations query in the UIC Tool and that isn't working correctly either.  Here is a screenshot of the facility, well, authorization and artpens I created in DEV to check the uic-forms.exe and query.

Can you view the bridging table for this relationship?  I can't see it.  If nothing is in that table I need to build it manually.
Maybe 10 hours isn't enough to sort this out.

Did you RNP these features to default? I only see one artpen connected as uic admin?

So after some digging, it appears that the view can't see the data because it has not been compressed?
@michaelagrc, at your next convenience, would you compress uic dev?

Yes, I ran rnp-delete.bat then ran uic-forms.exe.  I don't recall that compression was an issue in that past because I have successfully run the exe without first compressing.  I have also run the .exe  in Pro and reproduced the results I sent to EPA in Oct.  At that time I did not have any UICArtPen wells to report.  I thought we had this UICAoR / UICArtPen M:N issue resolved in the past.  I still think there is an issue with how we migrated Prod to Pro with the M:N relationship.


tf.nn.max_pool3d crashes(floating point exception) when strides=0

Please make sure that this is a bug. As per our
GitHub Policy,
we only address code/doc bugs, performance issues, feature requests and
build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below):2.1.0
Python version:3.6.9
Bazel version (if compiling from source):N/A
GCC/Compiler version (if compiling from source):N/A
CUDA/cuDNN version:N/A
GPU model and memory:N/A

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with:

TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"

Describe the current behavior
tf.nn.max_pool3d crashes(floating point exception) when input is of type np.float16 AND strides=0 AND padding='SAME'
Describe the expected behavior
expect no crashes
Standalone code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate
the problem. If possible, please share a link to Colab/Jupyter/any notebook.
import tensorflow as tf
import numpy as np
input = tf.ones((1,1,1,1,1), dtype=np.float16)
tf.nn.max_pool3d(input=input, ksize=1, strides=0, padding='SAME')

Other info / logs Include any logs or source code that would be helpful to
diagnose the problem. If including tracebacks, please include the full
traceback. Large logs and files should be attached.
Floating point exception (core dumped)

@DNXie
I tried in colab and i am not seeing any issue if we give give stride >0 in code.Please, find the gist here.
but  tf.nn.max_pool3d crashes(floating point exception) when input is of type np.float16 AND strides=0 AND padding='SAME'.
Thanks!

I am able to reproduce the issue in colab with TF 2.3, nightly versions(2.4.0-dev20200810).Please, find the gist here.Thanks!

@DNXie,
It works fine if you use Keras Mixed Precision Experimental Policy. Please find the Gist with working code. Thanks!

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!

@rmothukuru Thanks for the clarification! Though an exception sounds better than crash (segfault) :)

@rmothukuru Thanks for the clarification! Though an exception sounds better than crash (segfault) :)


How to report conversion problem?

The kuroshiro.js is an excellent project. Thank you for this great work. Sometime, I encountered tiny issues. For example, "五輪(ごりん)"  is converted to "いつわ". I'd like to know how to report this kind of issues, so that eventually we have a more and more perfect kuroshiro.js?

Hello, iapyeh. Thanks for using kuroshiro.js. Considering your issue, I have updated the dict files according to kuromoji.js which this project depends on. And it may solve part of your issue (e.g. the "五輪" case).
In addition, you can compile and use a suitable IPA dictionary instead of the default one. (This would be a tough work though...)
By the way, your issue seems to have certain association with morphological analyzation. However, kuroshiro.js mainly focuses on the processing of the results of morphological analyzation while one of the dependency of kuroshiro.js — kuromoji is in charge of morphological analyzation. Therefore at this stage, I could not give you more suggestions. I'm sorry for that. Hope we can find a workaround.😃

Thank you very much, it works. By the way, I found another kind of issue different from the above one, like this:

(the position "しろ" in the furigana of "面白い言葉")

Hello iapyeh. I have fixed the bug you mentioned above and published a new version of kuroshiro.js (0.1.5). Have a check. I'll close this issue. Feel free to raise a new issue if you have further more questions.


Support mysql server 8.0

Feature Request
Hello,
Currently  Azure Database for MySQL support version 5.7, 5.6 and 8.0. Sadly supports only the first two version.
I ll try to add the 8.0 version it should not take too long.

There is no version 8.0 publish in the swagger definition yet. I will let you know if the service team release new versions about this.


Documentation needed - for Group Invite message

hi, may know have any new code to invite non contact save to groups as i admin ?

how to use this code ? let me know cause the previous groupParticipantsUpdate by add person can't use due the privacy was enable by non save contact.
for this code how to invite and with sending the invite message if fail to add to group. For Group Invite message v4 - any details documentation code use case for that.
thanks

any info for this ? thanks

I want to know too

+1

If you guys still need it, I created sendAcceptInviteV4 on my repo and here's how to implement it


3 tests failed. diff:diff across DST (2336.17) diff:diff across DST (2336.19) relative time:custom rounding (2630.3)

Client info
Date String   : Tue Nov 01 2016 13:58:48 GMT-0600 (CST)
Locale String : 11/1/2016, 1:58:48 PM
Offset        : 360
User Agent    : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
Moment Version: 2.15.2

====
diff:diff across DST (2336.17)
month diff across DST, lower bound
// Expected true
// Actual   false
false === true

====
diff:diff across DST (2336.19)
year diff across DST, lower bound
// Expected true
// Actual   false
false === true

====
relative time:custom rounding (2630.3)
Round down towards the nearest day
// Expected in 30 days
// Actual   in a month
"in a month" === "in 30 days"

See #3021

FYI, the 2630.3 issue was just with the unit test itself, and was fixed with faa85ed0a517bbca3b14d442655aff925e5b8209 to be deployed in the next version (2.15.3 or 2.16.0).


Fix app icon

Needs the have the right color and background to match the app

Not important, closing for now.


UI enhancement of issued book page and removal of hard coded values

The UI is not looking good; adjust height, width, font size and font weight according to the design file and replace the hard coded values of deadline, book name, author, issued and return date with dynamic values.

I will do this!
@ShubhamTiwari55

Okay @shradhaj06 you have been assigned this issue.
deadline - 17 midnight


Bug: For some reason the bot tried to edit a message with the same content in the message

Describe the bug
For some reason the bot tried to edit a message with the same content in the message, the function to check the difference of the message hash did not work.
Log link: https://obervinov312.grafana.net/goto/H7oNhEsIR?orgId=1
Link to archive log: https://drive.proton.me/urls/3930MZ5AHR#xtcLKuTWDJ55
Error message:
Exception in thread Thread-message-updater:
Traceback (most recent call last):
  File "/home/pyinstabot-downloader/app/src/bot.py", line 513, in status_message_updater_thread
    update_status_message(user_id=user_id)
  File "/home/pyinstabot-downloader/app/src/bot.py", line 286, in update_status_message
    editable_message = telegram.send_styled_message(
  File "/home/pyinstabot-downloader/app/.venv/lib/python3.9/site-packages/telegram/telegram.py", line 197, in send_styled_message
    response = self.telegram_bot.edit_message_text(
  File "/home/pyinstabot-downloader/app/.venv/lib/python3.9/site-packages/telebot/__init__.py", line 4618, in edit_message_text
    result = apihelper.edit_message_text(
  File "/home/pyinstabot-downloader/app/.venv/lib/python3.9/site-packages/telebot/apihelper.py", line 1356, in edit_message_text
    return _make_request(token, method_url, params=payload, method='post')
  File "/home/pyinstabot-downloader/app/.venv/lib/python3.9/site-packages/telebot/apihelper.py", line 168, in _make_request
    json_result = _check_result(method_name, result)
  File "/home/pyinstabot-downloader/app/.venv/lib/python3.9/site-packages/telebot/apihelper.py", line 195, in _check_result
    raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message

Additional context
Information about where the bug is happening:
There seems to be a conflict between the thread updating the message and a manual call of the method of updating the message in the thread that handles incoming messages.
Possible correction
If you have a possible solution to the bug, please describe it.

Find solutions to avoid two threads competing for the same method call.
Improve the hash collation method so that it does not allow attempting to edit a message with the same content that is already in it.
Add a message status column to block the update process if it is already in progress. That is, to protect against method competition

Screenshots
If applicable, add screenshots to help explain your problem.
None
Check list after fixing the bug

[x] There is no collision between the two streams anymore.
[x] The message is no longer editable with the same hash.

It is still playing...
Need to add:

[ ] comparison of hashes of existing message and new one when batch adding message list to the queue


[HELP] example of how to create custom storage provider in angular

Is there an example of how to create/add custom storage provider in angular?
If not, do we just add a copy cut of https://github.com/formio/formio.js/blob/ab71aa60905191b6445dfd22ee34da1c28d51277/src/providers/storage/url.js and appears?
How do we remove, disable other providers from the list?
Thanks for insight

The URL provider should work for most use cases so you may not need to fork it. This is where the storage options setting is: https://github.com/formio/formio.js/blob/master/src/components/file/editForm/File.edit.file.js#L5-L23
You could modify that using a custom form builder to remove the other options from the list and only provide the one you want (and call it whatever you want). You can modify it like this http://formio.github.io/formio.js/app/examples/custombuilder.html near the bottom where editform: textfield is it shows how to override specific fields.

@randallknutson thanks for the insight. Have you consider more user/developer friendly approach, where for example init options allows you to turn on/off components, and providers?

Here is a simple way to nuke all storage providers  Formio.providers.storage = [];

Pull requests welcome.

Here is a solution for your reference @Injectable()
export class MyStorageProvider {
constructor()
{
}

static get title() {
    return 'MyStorageProvider';
}

uploadFile(file, name, dir, progressCallback, url, options): NativePromise {

    return new NativePromise((resolve, reject) => {
    });
}

deleteFile(fileInfo) {

    return new NativePromise((resolve, reject) => {
    });
}

downloadFile(file) {

    return new NativePromise((resolve, reject) => {

    });
}

}
if (Formio) {
Formio.providers.storage = { MyStorageProvider };
}

@dolphinsd can you explain a bit how you structure your code?
I have created a class like MyStorageProvider where I'll handle the file uploads/downloads. How do I add it as a storage provider? Where do you modify the Formio object? I have tried setting it in both the component which shows the form and the App Component, and it didn't work.
In both cases, when I select a file to upload from my PC, I get the error "Storage provider not found". How can I register it correctly?
Also, when I import the Formio from angular-formio library, its providers property is undefined, so I have to do
if (Formio) {
	Formio.providers = {
		storage: { CustomFileProviderService }
	}
}

I am loading my schemas from an API, and loading them using an event emitter specified in the refresh property of the formio HTML element. Am I missing something initializing the Formio object?
Thank you.


docker - dot.net core - alpine3.11  - Unable to load shared library 'google-ortools-native' or one of its dependencies

What version of OR-Tools and what language are you using?
Version: 9.0.9048
Language: C#
GLOP
vs 2019 windows c#  - working good on the windows. The problem is while running in Docker for Linux.
What did you do?
Steps to reproduce the behavior:

Add the NuGet package of Google.OrTools 9.0.9048 (Includes Google.OrTools.runtime.linux-x64)
Add code to use it: _solver = new Solver("MyMax", OptimizationProblemType.GLOP_LINEAR_PROGRAMMING);
Add dotnet in docker file:
ARG REPO=mcr.microsoft.com/dotnet/core/runtime
FROM $REPO:3.1-alpine3.11

Install ASP.NET Core
RUN aspnetcore_version=3.1.3 \
&& wget -O aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$aspnetcore_version/aspnetcore-runtime-$aspnetcore_version-linux-musl-x64.tar.gz \
&& aspnetcore_sha512='918bf1f2cd216d4bf337eb0e528d05c56c71e75f5452d8ad08f1ae53c9434a570f7608392872f1a2a55486b00b4d59216a5f7c081f332c707baba0c86e54efd9' \
&& echo "$aspnetcore_sha512  aspnetcore.tar.gz" | sha512sum -c - \
&& tar -ozxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App \
&& rm aspnetcore.tar.gz
4. build image and run it.
What did you expect to see
Solver is creating and solve problems.
What did you see instead?

externalErrorHandler)","The type initializer for 'SWIGExceptionHelper' threw an exception.","   at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.SWIGExceptionHelper..ctor()\n   at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE..cctor()","Unable to load shared library 'google-ortools-native' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: Error loading shared library libgoogle-ortools-native: No such file or directory","   at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_operations_research_linear_solver(ExceptionDelegate applicationDelegate, ExceptionDelegate arithmeticDelegate, ExceptionDelegate divideByZeroDelegate, ExceptionDelegate indexOutOfRangeDelegate, ExceptionDelegate invalidCastDelegate, ExceptionDelegate invalidOperationDelegate, ExceptionDelegate ioDelegate, ExceptionDelegate nullReferenceDelegate, ExceptionDelegate outOfMemoryDelegate, ExceptionDelegate overflowDelegate, ExceptionDelegate systemExceptionDelegate)\n   at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.SWIGExceptionHelper..cctor()"]}","

{"errorType":"System.TypeInitializationException","message":"Unhandled Exception. See logs for details.","details":["The type initializer for 'Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE' threw an exception.","   at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.new_Solver(String jarg1, Int32 jarg2)\n   at Google.OrTools.LinearSolver.Solver..ctor(String name, OptimizationProblemType problem_type)\n
Make sure you include information that can help us debug (full error message, model Proto).

Anything else we should know about your project / environment

could you extract the nupkg then ldd the library google-ortools-native.so so we can figure out which dependency(ies) is(are) missing ?

To view runtimes.7z, sign inhttps://ncr-my.sharepoint.com/personal/ey250015_ncr_com/_layouts/15/acceptinvite.aspx?invitation={EBD8BEA7-E6C5-4761-9572-FD2336E5C47B}&listId=70a6a94f-d6ff-49fc-a3de-1c017dab6527&itemId=7cd2c966-1a7f-477e-a38c-ee1a0c0c9a9d or create an account.

Yarden, Eldar has shared a OneDrive for Business file with you. To view it, click the link below.
https://ncr-my.sharepoint.com/personal/ey250015_ncr_com/Documents/Attachments/runtimes.7z
[https://r1.res.office365.com/owa/prem/images/dc-generic_20.png]https://ncr-my.sharepoint.com/personal/ey250015_ncr_com/Documents/Attachments/runtimes.7z
runtimes.7zhttps://ncr-my.sharepoint.com/personal/ey250015_ncr_com/Documents/Attachments/runtimes.7z
Hi here is the runtimes folder.
Thank you.

From: Mizux @.>
Sent: Tuesday, August 3, 2021 2:51 PM
To: google/or-tools @.>
Cc: Yarden, Eldar @.>; Author @.>
Subject: Re: [google/or-tools] docker - dot.net core - alpine3.11 - Unable to load shared library 'google-ortools-native' or one of its dependencies (#2715)
External Message - Use caution before opening links or attachments
could you extract the nupkg then ldd the library google-ortools-native.so so we can figure out which dependency(ies) is(are) missing ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/google/or-tools/issues/2715*issuecomment-891783024__;Iw!!In4Qlw!-jDSP7HAWPuqu8L1CBeuWtmROgC7m8c4CKIsoMUGvs_Shb48FabtJRNyhfc6BRSRxA$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ASNQP5YTAYPXGJDEPYWS3ELT27J5FANCNFSM5BOQZIRA__;!!In4Qlw!-jDSP7HAWPuqu8L1CBeuWtmROgC7m8c4CKIsoMUGvs_Shb48FabtJRNyhfc_ms3kJg$.
Triage notifications on the go with GitHub Mobile for iOShttps://urldefense.com/v3/__https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675__;!!In4Qlw!-jDSP7HAWPuqu8L1CBeuWtmROgC7m8c4CKIsoMUGvs_Shb48FabtJRNyhffk6S8H4Q$ or Androidhttps://urldefense.com/v3/__https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email__;!!In4Qlw!-jDSP7HAWPuqu8L1CBeuWtmROgC7m8c4CKIsoMUGvs_Shb48FabtJRNyhfcjk_yEiw$.

Here are the runtimes folder from the container
https://ncr-my.sharepoint.com/personal/ey250015_ncr_com/Documents/Attachments/runtimes.7z

I tryed to use this:
apk --no-cache add ca-certificates wget
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.28-r0/glibc-2.28-r0.apk
apk add glibc-2.28-r0.apk
And to copy the runtimes to the root: cp /app/runtimes/linux-x64/native/* .
And I steel have problem.
To figure out the problem I checked: ldd google-ortools-native.so
And got:         /lib/ld-musl-x86_64.so.1 (0x7f8511b7b000)
libortools.so => ./libortools.so (0x7f850fd4c000)
libz.so.1 => ./../lib/libz.so.1 (0x7f850fd32000)
librt.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f8511b7b000)
libpthread.so.0 => /lib/ld-musl-x86_64.so.1 (0x7f8511b7b000)
libdl.so.2 => /lib/ld-musl-x86_64.so.1 (0x7f8511b7b000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7f850fb99000)
libm.so.6 => /lib/ld-musl-x86_64.so.1 (0x7f8511b7b000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7f850fb85000)
libc.so.6 => /lib/ld-musl-x86_64.so.1 (0x7f8511b7b000)
ld-linux-x86-64.so.2 => ./../lib/ld-linux-x86-64.so.2 (0x7f850f95c000)
Error relocating ./libortools.so: __strtok_r: symbol not found
Error relocating ./libortools.so: __finite: symbol not found

libc.so.6 => /lib/ld-musl-x86_64.so.1 (0x7f8511b7b000)

here your env/container (still) rely on libmusl for libc-6
https://github.com/lattera/glibc/blob/master/string/strtok_r.c

To be clear - I still have the problem. These are my steps to try solve it and investigating result:

ldd google-ortools-native.so
/lib/ld-musl-x86_64.so.1: cannot load google-ortools-native.so: No such file or directory

cp /app/runtimes/linux-x64/native/* .
/app # ldd google-ortools-native.so
/lib/ld-musl-x86_64.so.1 (0x7ff24a175000)
libortools.so => ./libortools.so (0x7ff248346000)
libz.so.1 => ./../lib/libz.so.1 (0x7ff24832c000)
librt.so.1 => /lib/ld-musl-x86_64.so.1 (0x7ff24a175000)
libpthread.so.0 => /lib/ld-musl-x86_64.so.1 (0x7ff24a175000)
libdl.so.2 => /lib/ld-musl-x86_64.so.1 (0x7ff24a175000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7ff248193000)
libm.so.6 => /lib/ld-musl-x86_64.so.1 (0x7ff24a175000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7ff24817f000)
libc.so.6 => /lib/ld-musl-x86_64.so.1 (0x7ff24a175000)
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by ./libortools.so)
Error relocating ./libortools.so: __strtok_r: symbol not found
Error relocating ./libortools.so: __finite: symbol not found

apk add gcompat (from https://wiki.alpinelinux.org/wiki/Running_glibc_programs)
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
(1/2) Installing libucontext (0.1.3-r1)
(2/2) Installing gcompat (0.4.0-r0)
OK: 46 MiB in 34 packages
/app # ldd google-ortools-native.so
/lib/ld-musl-x86_64.so.1 (0x7fbe6bf8c000)
libortools.so => ./libortools.so (0x7fbe6a15d000)
libz.so.1 => ./../lib/libz.so.1 (0x7fbe6a143000)
librt.so.1 => /lib/ld-musl-x86_64.so.1 (0x7fbe6bf8c000)
libpthread.so.0 => /lib/ld-musl-x86_64.so.1 (0x7fbe6bf8c000)
libdl.so.2 => /lib/ld-musl-x86_64.so.1 (0x7fbe6bf8c000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7fbe69faa000)
libm.so.6 => /lib/ld-musl-x86_64.so.1 (0x7fbe6bf8c000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7fbe69f96000)
libc.so.6 => /lib/ld-musl-x86_64.so.1 (0x7fbe6bf8c000)
ld-linux-x86-64.so.2 => ./../lib/ld-linux-x86-64.so.2 (0x7fbe69f90000)
Error relocating ./libortools.so: __strtok_r: symbol not found
Error relocating ./libortools.so: __finite: symbol not found

can you create a simple sample in a repo ?
i.e. I need the microsoft Dockerfile + a small application loading ortools to reproduce it
note: Otherwise, I'll try to do it this afternoon (Paris time)

GM Mizux, Here is a rep solution for this problem - https://github.com/ae250219/GoogleOrToolsTester
Thank you very much.

Oh, I didn't mean I found a solution, this is only a little project to show the problem.

Hi, sorry for the delay....
As explained above , you need to use the nupkg in the alpine release archive...
https://github.com/google/or-tools/releases/tag/v9.0 -> or-tools_alpine-edge_v9.0.9048.tar.gz
Here a sample with the commit which fix the exact problem: https://github.com/Mizux/dotnet_alpine_or-tools/commit/ecaba5bd5751e451d55399113651b49f0b6824eb
Basically you need to:

copy the "packages" from or-tools_alpine-edge_v9.0.9048.tar.gz in your docker
Update your .csproj so RestoreSources will first look at it instead of trying to download the published one...

note: thx for your project, but it was a little bit too big...
note: You can join our discord (badge in the readme) if you need support

@Mizux thanks a lot 👍

Hi @Mizux, Thank you very much.
We have another problem with this solution. We can't configure the resources order, so, sometimes we are getting the package from nuget.org instead of from our packages source - could we have the package with another name/version?

If you prepend the local package dir in your project csproj ?, does it still not work ?

<RestoreSources>packages;$(RestoreSources);https://api.nuget.org/v3/index.json</RestoreSources>

note: see packages is the first location...
ref: https://github.com/Mizux/dotnet_alpine_or-tools/blob/ecaba5bd5751e451d55399113651b49f0b6824eb/SimpleRoutingProgram.csproj#L9

According to RID catalog
https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#linux-rids
We should try to provide a Google.OrTools.runtime.linux-musl-x64 version but I can't guaranty any ETA and/or if I will do it soon.

Yes, while ordering it in the proj, or in another way it is working, but we have a more complex solution, so we prefer not to dill with that. Could I re pack the package to change its name/version, or is there any stable version that has no same version in nuget?

Ordering didn't work for us, so we did a workaround -
restore the project/solution using all sources.
remove the packages that needed to be from the specific repository.
remove other repositories.
restore again the project/solution.
our code on docker file:
&& dotnet restore /src/GoogleOrToolsSolverWrapper/GoogleOrToolsSolverWrapper.csproj
&& rm -rf ~/.nuget/packages/google.ortools.runtime.linux-x64
&& rm -rf ~/.nuget/packages/google.ortools
&& dotnet nuget remove source nuget.org
&& dotnet restore /src/GoogleOrToolsSolverWrapper/GoogleOrToolsSolverWrapper.csproj
&& dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
&& dotnet restore /src/AllMySolution.sln \


Fix port picker for remote bazel

Fixes the broken port picker logic where a port number >=65536 can be issued, as observed here:
I0829 03:01:42.407397639      18 cancel_with_status.cc:42]   Running test: test_invoke_simple_request/chttp2/fullstack [1 ops]
I0829 03:01:42.407438922      18 http_proxy_fixture.cc:530]  Proxy address: localhost:65537
E0829 03:01:42.407527663      18 sockaddr_utils.cc:284]      assertion failed: port >= 0 && port < 65536

https://source.cloud.google.com/results/invocations/4d18159a-1875-440d-995a-432f1cd9763f/targets/%2F%2Ftest%2Fcore%2Fend2end:h2_http_proxy_test@cancel_with_status@poller%3Depoll1/log

switch from the modulo computation of  starting_port to  floating point method which has a better random distribution
fix boundaries so that only ports <65536 will be emitted and the jump to min_port works correctly

@yashykt   can you do a quick pass for C++ readability?

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

@yashykt  @adelez  I changed the code so that port picking is thread safe (using atomic increment) PTAL.

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,955,026      Total (=)      1,955,026

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,757      Total (>)     10,843,755

 No significant differences in binary sizes

[microbenchmarks] No significant performance differences

@adelez  given that we are struggling with foundry flakiness that we don't yet understand 100%, I think it makes sense to be on the safe side with things that are related to this topic

I think the original port server is thread safe too (because it spawns request to an external server)
there's a lot of c/c++ tests and I don't know how exactly is each of them using the pick_port_or_die method, so it's easier to just make the port picking thread safe and eliminate a potential source of trouble that could be hard to diagnose.
the port picking code doesn't really get more complex by adding thread safety and there are other improvements in this PR too.

@yashykt  can you review for C/C++.

Known failures:
https://github.com/grpc/grpc/issues/16471
https://github.com/grpc/grpc/issues/16123


brew update no longer shows new formula or updated (but not installed) formula

brew config output
HOMEBREW_VERSION: 3.5.1-29-gee0d487
ORIGIN: https://github.com/Homebrew/brew
HEAD: ee0d487ffd0c4fab6f40279c8938edfa966146f4
Last commit: 3 hours ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: d0063cfaefba3ce42d116d47d37ae26179cb5a88
Core tap last commit: 39 minutes ago
Core tap branch: master
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_CORE_GIT_REMOTE: https://github.com/Homebrew/homebrew-core
HOMEBREW_DISPLAY: /private/tmp/com.apple.launchd.gziRBfXvbe/org.xquartz:0
HOMEBREW_EDITOR: vimr -s --wait
HOMEBREW_MAKE_JOBS: 12
Homebrew Ruby: 2.6.8 => /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
CPU: dodeca-core 64-bit kabylake
Clang: 13.1.6 build 1316
Git: 2.36.1 => /usr/local/bin/git
Curl: 7.79.1 => /usr/bin/curl
macOS: 12.4-x86_64
CLT: <IP_ADDRESS>.1.1651278267
Xcode: 13.4.1

brew doctor output
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Some installed kegs have no formulae!
This means they were either deleted or installed manually.
You should find replacements for the following formulae:
  unrar

Warning: Some installed formulae are deprecated or disabled.
You should find replacements for the following formulae:
  git-utils

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and which additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew-provided
script of the same name. We found the following "config" scripts:
  /Applications/Postgres.app/Contents/Versions/latest/bin/gdal-config
  /Users/mgrubb/.pyenv/shims/python3.5m-config
  /Users/mgrubb/.pyenv/shims/python2-config
  /Users/mgrubb/.pyenv/shims/python3.6m-config
  /Users/mgrubb/.pyenv/shims/python2.7-config
  /Users/mgrubb/.pyenv/shims/python3.10-config
  /Users/mgrubb/.pyenv/shims/python3.5-config
  /Users/mgrubb/.pyenv/shims/python-config
  /Users/mgrubb/.pyenv/shims/python3-config
  /Users/mgrubb/.pyenv/shims/python3.6-config
  /Users/mgrubb/.pyenv/shims/pre-commit-validate-config
  /Users/mgrubb/.pyenv/shims/ansible-config
  /Users/mgrubb/.pyenv/shims/python3.8-config

Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause formulae that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
  numpy
  kubernetes-cli
  gnupg
  wireshark

Verification

[X] I ran brew update and am still able to reproduce my issue.
[X] I have resolved all warnings from brew doctor and that did not fix my problem.

What were you trying to do (and why)?
I usually run brew update daily both to keep my software up-to-date and to discover new software.  Recently (not sure when but since early last week I think) brew update started only showing me outdated formula:
What happened (include all command output)?
$ brew update
Updated 2 taps (homebrew/core and homebrew/cask).
==> Outdated Formulae
imagemagick                                 libraw                                      nss

You have 3 outdated formulae installed.
You can upgrade them with brew upgrade
or list them with brew outdated.

What did you expect to happen?
Previously when brew update was run it would include a list of any new formula that was added since the last run of brew update, a list of all updated formula, and any deleted/renamed formulas.   It would also do the same for casks.
I would like access to this functionality either by way of a command line flag or environment variable.  I couldn't find where this changed in the commit history, though admittedly I couldn't dig very deep.
Step-by-step reproduction instructions (by running brew commands)
brew update

See the release notes (https://brew.sh/2022/06/06/homebrew-3.5.0/) and HOMEBREW_UPDATE_REPORT_ALL_FORMULAE in https://docs.brew.sh/Manpage#environment


using setDraggingStartedBlock setDraggingEndedBlock

I though it would be fun to alter the background color & alpha of view while they moved so I tried out these blocks but the views do not land on the X,Y coords I leave them on. They jump a little.
My Code is:

    __weak typeof(timerView) weakSelf = timerView;
    [timerView setDraggingStartedBlock:^
     {
         weakSelf.backgroundColor=switchColor;
         weakSelf.alpha = 0.9f;
     }];
    [timerView setDraggingEndedBlock:^
     {
         weakSelf.backgroundColor=[UIColor whiteColor];;
         weakSelf.alpha = 1.0f;
     }];

Without these blocks the views stop in the correct place. Is there something I can do to resolve this?
It's the EndedBlock that's the issue. Even an empty block caused the view to just at the end.
Not mission critical, just nice to try out the code.

This is probably related to #12
When a layout cycle kicks in, the view is moved away. I need to implement the dragging in another way once I get the time to work on it :/

Thanks for the feedback. My app is finished so after Christmas I will have time to look at this. I need to implement scroll view scrolling when a draggable view is moved out of the visible screen. I have code which does this in another app so will see if I can make it work here.
You are of course mentioned in the acknowledgements in my app 'Mama's Kitchen Timer' which should be off to Apple by tomorrow so live in 2 to 3 weeks from now I expect.
All the best for the festive season
Ian
Aka sundialSoft
Sent from my iPhone

On 16 Dec 2015, at 14:16, Andrea Mazzini<EMAIL_ADDRESS>wrote:
This is probably related to #12
When a layout cycle kicks in, the view is moved away. I need to implement the dragging in another way once I get the time to work on it :/
—
Reply to this email directly or view it on GitHub.

That's great, happy to hear that. I'll keep you posted :+1:

Hey, I was seeing this problem too, and commenting out this line here seems to fix it:
if (sender.state == UIGestureRecognizerStateEnded && self.draggingEndedBlock) {
//commenting this out fixes it
//        self.layer.anchorPoint = CGPointMake(0.5, 0.5);
        self.draggingEndedBlock(self);
}

Correct, see #23


remove qobj backend run

Summary
Passing a qobj to backend.run is deprecated - removing from these test cases
Details and comments

I have to disagree with this removal. Qobj is how people submit a job pretty much since the beginning, and chances are a lot of people still do it that way, even though it's deprecated. I think it'd be useful to keep some Qobj tests, especially those related to modifying Qobj header, until we're ready to remove Qobj entirely.

@jyu00 does the same go for https://github.com/Qiskit-Partners/qiskit-ibm/issues/23?

@jyu00 Tests are failing due to the Deprecation Warning. Any suggestions on how we can get around this if we don't want to remove the tests? Also qobj was deprecated in 0.12 and it's time to remove it according to our deprecation policy. Should we make an exception here and how much more longer should we supporting this?

does the same go for #23?

@kt474 the rng code should be updated, but it lives in the qiskit_rng repo . It's a bit tricky because it already not use Qobj for jobs submitted to IBMQBackend, but it looks for the IBMQBackend class in ibmq-provider, not qiskit_ibm. Perhaps we can make this change after qiskit_ibm is released.

Any suggestions on how we can get around this if we don't want to remove the tests?

@rathishcholarajan Deprecation warnings are converted to errors in qiskit-terra's QiskitTestCase, which itself also mark some classes as "deprecation allowed". We don't use QiskitTestCase directly as it's intended for qiskit-terra only (per class doc). However, we do use ProviderTestCase, which inherits QiskitTestCase. ProviderTestCase probably shouldn't inherit QiskitTestCase since the former is meant for all providers whereas the latter for just terra. You can open an issue in qiskit-terra about this. In the meantime we can just not use ProviderTestCase. Although we should probably implement something similar that promotes deprecation warnings to errors, with our own white list.

Also qobj was deprecated in 0.12 and it's time to remove it according to our deprecation policy.

Our deprecation policy says 3 months is the minimum. It also says that for significant features, the period should be at least double that. Given the impact of Qobj removal, I'd say 9-12 months, or until QASM3 is fully supported (so we can encourage people to move to using QASM3).

@rathishcholarajan Deprecation warnings are converted to errors in qiskit-terra's QiskitTestCase, which itself also mark some classes as "deprecation allowed". We don't use QiskitTestCase directly as it's intended for qiskit-terra only (per class doc). However, we do use ProviderTestCase, which inherits QiskitTestCase. ProviderTestCase probably shouldn't inherit QiskitTestCase since the former is meant for all providers whereas the latter for just terra. You can open an issue in qiskit-terra about this. In the meantime we can just not use ProviderTestCase. Although we should probably implement something similar that promotes deprecation warnings to errors, with our own white list.

I would say create your own base test class in this package and don't use terra's at all. I want to get rid of this shared test class antipattern as it only causes headaches like this, see https://github.com/Qiskit/qiskit-terra/issues/6862. Test code should be self contained, explicit and as flat as possible because you want it to be easy to debug and figure out what it's doing when something fails. Having to look at a parent test class definition in an upstream dependency to figure out how a test works is just going to continually cause issues.

Our deprecation policy says 3 months is the minimum. It also says that for significant features, the period should be at least double that. Given the impact of Qobj removal, I'd say 9-12 months, or until QASM3 is fully supported (so we can encourage people to move to using QASM3).

While I normally support being conservative with the deprecation policy and opting for longer deprecations than shorter ones I don't think it applies here in this case. The qiskit-ibm package is new and already contains a ton of breaking api changes nobody is just going to be able to update a couple of imports in existing code and just use this package (heck not exporting it globally off of qiskit.IBMQ will probably be a breaking change for 90% of the users)  I would say we should just remove all the deprecated functionality from qiskit-ibmq-provider before the initial release. If a user was calling backend.run(qobj) on qiskit-ibmq-provider that will continue to be supported until we EoL that package since I agree with the general sentiment on the deprecation and think it should probably keep working until we stop supporting qiskit-ibmq-provider. But if they move to qiskit-ibm which is essentially a new provider we should just start with a strict BackendV1 and move forward. from there.

I would say we should just remove all the deprecated functionality from qiskit-ibmq-provider before the initial release.

I was debating about this. On the one hand this is our opportunity to make all kinds of breaking changes. On the other I worry that users would not want to move to qiskit_ibm if they have to make a lot of changes instead of simple find/replace. But maybe the latter isn't really an issue because we'll eventually force their hands by archiving qiskit-ibmq-provider lol

Our deprecation policy says 3 months is the minimum. It also says that for significant features, the period should be at least double that. Given the impact of Qobj removal, I'd say 9-12 months, or until QASM3 is fully supported (so we can encourage people to move to using QASM3).

While I normally support being conservative with the deprecation policy and opting for longer deprecations than shorter ones I don't think it applies here in this case. The qiskit-ibm package is new and already contains a ton of breaking api changes nobody is just going to be able to update a couple of imports in existing code and just use this package (heck not exporting it globally off of qiskit.IBMQ will probably be a breaking change for 90% of the users) I would say we should just remove all the deprecated functionality from qiskit-ibmq-provider before the initial release. If a user was calling backend.run(qobj) on qiskit-ibmq-provider that will continue to be supported until we EoL that package since I agree with the general sentiment on the deprecation and think it should probably keep working until we stop supporting qiskit-ibmq-provider. But if they move to qiskit-ibm which is essentially a new provider we should just start with a strict BackendV1 and move forward. from there.

Thanks @mtreinish and @jyu00! I agree that we should remove deprecated functionality before initial release of qiskit-ibm. So will go ahead and approve this PR.


Adding JMX support to e2e tests

What does this PR do?
It adds support to be able to use the JMX container version of the Agent in e2e tests.
Which scenarios this will impact?
Just AML tests.
Motivation
I'd like to not have to manually test JMXFetch changes.
Additional Notes
Have also updated the JMXFetch sample app with some helper manifests to allow JMXFetch to grab metrics.

/merge


The idea is to write a recursive function isMirror() that takes two t…

…rees as an argument and returns true if trees are the mirror and false if trees are not mirror. The isMirror() function recursively checks two roots and subtrees under the root.
Assigned Issue Number ?
#007
Language Opted ?
C/C++/Python/Java/...
Number of files added or updated ?
1/2/3/4/...
Name of these files ?
main folder => sub_folder => ... => ... => ... file.py
example :
Algorithm => Search_Algorithm => Linear_Search => Linear_Search.py
Checklist

[ ] I've read the contribution guidelines.
[ ] I've referred the correct issue number.
[ ] I've fill up this entire template correctly.

Invalid PR :warning:


Can you add the new nanodegrees?

Can you please add the courses for the new nanodegrees:

AI
Become a VR Developer
Self-driving car nanodegree
Deep Learning nanodegree

Thanks in advance!

Whatever courses added here are open for all by Udacity.
New nano-degrees, especially the ones you have mentioned are only available to people who pay for them.
The content is restricted only to those who attend the nanodegrees.


Remove the confusing description about the joint orientation.

Remove the confusing description about the joint orientation.

@yijiew : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@yijiew : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Add support for feature gates

What would you like to be added:
Add support for feature gates in JobSet, like are used in upstream k8s and Kueue here.
Why is this needed:

Allow customer to quickly disable a feature if a bug is detected
Allow us to have "opt-in" features that are off by default.

/assign  hi @danielvegamyhre  i'll try it

Do we need to discuss which feature gates need to be added?

/assign

I have been thinking, can we include these two items in the feature gate? They can be enabled by default, and if there are more features in the future, they can be added. @danielvegamyhre
Establishment of a headless service
TTL after finished

I don't think we can (or should) put existing features behind feature gates, it would be weird for the feature gate to exist on some versions but not others. I think we should put new features (not released yet) which are somewhat risky behind a feature gate. Not sure off the top of my head if this aligns with upstream k8s standard practices, @kannon92 do you know?

Understood. As far as I understand, the current features of JobSet are all existing ones, and there are no new unstable features yet. In that case, we can provide the feature gate functionality for other developers to use, but without any default configuration. How does that sound?


"Create new note" suggests unexpected values when not followed by whitespace

Key: | = Initial cursor position for text insertion.
Text present ()) before typing @name to create new note
Program (by |) -> Program (by @name) = Create new note suggestion is name).
Ideally: Suggest @name because the only typed characters were name.
Editing the @ before creating new note
Type @name then use left arrow to add some:
@|name -> @somename = Create new note suggestion is somen. Why the extra n?
Ideally: Suggest @somename because that's the full word. If @somename is followed by an already present character, e.g. ) or a, ignore it (this seems tricky to solve because it's not clear what the user may consider the full word to be).
Arrow keys
In all cases, a partial solution to knowing what the user wants the full word to be might be to use the arrow keys to move the cursor, and for whatever is between the @ and the | cursor to be the full word suggestion. For example, pressing right arrow key between @some and name could progressively add each letter to the suggestion until whitespace is encountered: @some|, @somen|, @somena| ... @somename|, @somename | (no suggestion). In theory this sounds alright, but in practice it may have unergonomic or buggy side effects.
Thanks.

I see, this is some advanced usage. Not even GitHub supports existing text before an @ symbol.
Support for using arrow keys to change the name is something I think I can add in the future, but for now it's lower priority. Good find though

@|name -> @somename = Create new note suggestion is somen. Why the extra n?

This should be fixed as part of the same bug that fixed https://github.com/Ebonsignori/obsidian-at-symbol-linking/issues/17
The rest isn't trivial, I need to change how the popup reads the line it's on. Right now it's just looking at the characters from the open cursor to current. In compatibility mode it's just looking at the typed characters and is blind to the entire line.
To add features:

Arrow key navigation of existing popup
Creating @-link from existing text
And https://github.com/Ebonsignori/obsidian-at-symbol-linking/issues/27

I need to change the core implementation of the popup to read from the entire line the current cursor on and determine everything after the @ text closest to the characters the cursor on the line is on. I'm not sure if this will be possible in compatibility mode, but I can make a note that some functionality isn't supported when using it


huhu

love it

Coverage decreased (-0.6%) to 88.312% when pulling 30e8976bf00a69315fe840fd399794cd60ea7bd0 on master into 15a0a935a90cf705fb4040d285a434bf7333c37f on play2.5.


adds module system and data components

This PR enables CommonJS modules using browserify, updating the build and test scripts to support those modules.
Additionally, this adds two modules; an httpClient and a sparqlClient, and refactors lodlive core to use them both.
This depends on #23.

This was extracted from #22


Conflict with scriptaculous effects.js

Using $this.trigger("appear"); conflicts with Effect.Appear from scriptaculous, and makes images flicker

All current releases of Magento 1.x make use of this ancient PrototypeJS library.
I suggest to change the name of the event to make the plugin work even when ProtoypeJS is loaded:
http://stackoverflow.com/a/19054432/1627848


what is the goal of the tool? what will it offer? what are the properties of the output?

What is the goal of the tool?
The goal of the tools is too provide an overestimating reachability analysis of the database given DDL statements and an automaton describing the environment.
What will it offer?
An overestimation of reachable states, given the behavior of the environment.
What are the properties of the output?

Sound
Decidable


Another Uncaught TypeError

PHP Fatal error:  Uncaught TypeError: Argument 4 passed to Zend\Mvc\DispatchListener::marshalBadControllerEvent() must be an instance of Exception, instance of ParseError given

You are most likely using an old version of zendframework/zend-mvc, since the hint was removed, and isn't there in version 3.0.4: https://github.com/zendframework/zend-mvc/blob/3d198677428c0d0839ef30331d35b54dd8a093bb/src/DispatchListener.php#L219


SQLi using set var at PL2

Referring to #1727 this new rule tries to block SQLi payload that uses MySQL set variable syntax at PL1.

Looked a bit into this rule and ran it on some trafic: it doesn't trigger too much but still raise a few false positives on passwords. We're also seeing a few false positives on semi-formatted data from the POST body but overall, it looks fine on our end.
I feel the rule could be more specific (doesn't catch all set bla = 0 syntaxes, ignore the set part) but it tackle the original report and isn't harmful on the way.

still raise a few false positives on passwords

Sorry, I can't understand this statement. Can you attach an example? A password should be a free input text and if a user chooses a password like exec(/bin/bash);'+OR+1=1-- it may trigger the whole rule-set...

We're also seeing a few false positives on semi-formatted data from the POST body

Please, if you can share them it would be really helpful to improve this rule.

doesn't catch all set bla = 0 syntaxes, ignore the set part

Yes, because (IMO) set bla = 0 isn't something we would like to block at PL1. As you can see on #1727 is easy to bypass libinjection and our PL1 by using both "@var:=" and {`label`<sql>} syntaxes. Based on my tests, this is not true by using set variable = <sql> syntax. If you can provide a different example of exploiting 1727 PoC by using this syntax it would be really helpful.

We run it a bit further and it actually started to trigger on scans :D Appear to overlap slightly with 942190, but it may be because it was a complex payload.

Sorry, I can't understand this statement. Can you attach an example?
The actual exemples are redacted, but not too hard to imagine: you just need to following expression somewhere in the password: @[\w\d]+\=\S. For exemple, @4=d which could quite likely appear in a randomly generated password. The password you suggested is deliberately malicious, the exemple we're having here is similar to sh somewhere in a randomly generated string triggering an SHI rule.
I agree that free text is a challenge but we can't completely ignore it: contextualizing the rules enable fewer edge cases and wider usage. For some rules, it's highly complex, for this one it doesn't feel so.

Please, if you can share them it would be really helpful to improve this rule
I'm seeing payloads like this, although not sure where they come from<EMAIL_ADDRESS>

Based on my tests, this is not true by using set variable =  syntax
Thanks a lot for the rationale, that makes a ton of sense! Could you add it in the rule's header to explain where this design came from? Will likely be useful in the future!

The password you suggested is deliberately malicious

Yes but this is not only related to this rule. It is true for all CRS libinjection rules or XSS rules when a random string or base64 encoded string is provided. For example random/onrandom== triggers 941100 and 941120 at PL1. Those two rules should have the same behavior for you.

I agree, but when possible we should try to minimize it.
941120 is a good exemple of a rule that we deemed too sensitive and since disabled by default to our users.
My point isn't to be completely resilient from false positives in free text (I agree it'll be tricky) but to contextualize patterns a bit when there are low hanging fruits.
Is your point that we should keep the patterns as broad as possible, or that what I'm identifying as a low hanging fruit (looking for a set prefix) actually isn't?

I'm a bit late to the show, but here is the summary of the discussion about this PR during the project chat in July 2020.
"We want better documentation, better / more tests and the rule stays in PL2 kindergarden until it is proven to have only very few FPs. It can still be in PL1 for 3.4, but per default it goes to PL2."

@theMiddleBlue : Could you shift this to PL2 please. We'll merge as soon this is done.

Monthly chat meeting September: https://github.com/coreruleset/coreruleset/issues/1869#issuecomment-688474359
We should explain it in the issue and ask @theMiddleBlue to explain why the range is not sufficient.

TODO from meeting:

theMiddleBlue can shift to PL2 and we merge on next meeting.

rule moved to PL2

This was supposed to be merged after the November meeting. Time to do this. Thank you @theMiddleBlue.


Can't whitelist some users to use the Bot

As far as I've seen, if you want to use the bot for personal reasons (for example, domotic projects), you can't have a whitelist of users you want to allow talking to the Bot.
Is there any way to do it? I've seen that here have implemented something similar.
I would like to know how to perform it even if now this functionality is not implemented yet.
Thank you!

You can easily implement this on your own:
def handle(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)

    # Filter away undesirable users
    if chat_id not in whitelist:
        return

    # Do stuff for authorized users

...

bot.notifyOnMessage(handle)

For DelegatorBot, you may:
bot = telepot.DelegatorBot(TOKEN, [
    # only create handler for whitelisted users
    (per_chat_id_in(whitelist), create_open(CustomHandler, timeout=10)),
])

In fact, the examples indoor climate monitor and IP Cam both use the first technique to ensure they are not used by unauthorized human beings.

Thank you! I'm using Delegators, so, how do I refer to that whitelist when you create the DelegatorBot()? I am implementing in the init def function, a self._whitelist, and refering to it in the on_chat_message as self._whitelist also.
PS. I've made some more questions in the Google mailing list of telepot. Sorry for not being an expert in python, nor in telepot! I would be so thankful if anybody could help me.

I am afraid you have to specify your problem more concretely before I, or anyone, could give any assistance.

Ok. Posted in the mailing list! Thank you for your kind help, nickoala!

In case anyone is interested, here is the link.
Sergio, try this:
class EMARTINEZBOT(telepot.helper.ChatHandler):
    whitelist = [12345, 123456, 1234567]

    # the rest of class definition

bot = telepot.DelegatorBot(sys.argv[1], [
    (per_chat_id_in(EMARTINEZBOT.whitelist), create_open(EMARTINEZBOT, timeout=60)),
])

Summary of changes:

whitelist is moved outside the constructor, so it becomes a class variable instead of an instance variable. As for their difference, it is outside the scope of this limited space. I encourage you to read up on Python object-oriented programming.
Use per_chat_id_in() instead of per_chat_id()
Single quotes around sys.argv[1] were removed

Good luck,

By the way, I think you should get more solid on Python fundamentals before proceeding any further.

Thank you for your kind help! I had to modify the app to post it, that's why you may have found the error of the quotes, or other errors that must contain.
Thank for the suggestion on per_chat_id_in(), I didn't read anything about that before.
I am currently finishing the 3rd course out of 4 of the Coursera's course of Charles Severance about Python, so that's why I am mistaking so much on objected-oriented programming. But thank you for your effort having helped me! I appreciate it a lot.

The opposite of per_chat_id_in() is per_chat_id_except() - it starts a handler if chat_id is not on the whitelist. If you want to reply with a notice to those who is not on the whitelist, per_chat_id_except() is your choice.

Hi, Nickoala!
bot = telepot.aio.DelegatorBot(TOKEN, [     pave_event_space()(         per_callback_query_origin(), create_open, SubscribeProcessing, timeout=config.sessionTimeout),     pave_event_space()(         per_chat_id_in(s = config.mastersChatIds), create_open, Master, timeout=config.sessionTimeout),     pave_event_space()(         per_chat_id_except(s = config.mastersChatIds), create_open, ChatStarter, timeout=config.sessionTimeout), ])
If add new values to config.mastersChatIds while the bot is running, it continues to respond to ChatStarter class. How to avoid this?
Thx!


Remove duplicate publishing config

Coverage remained the same at 100.0% when pulling dcdc6dfd67a33153f68beed135c300cd896fa654 on publish into 718dca611d528a230702e12d6320c26748e1839e on main.


Module not found

important note: the program worked the first time,
I want to use it again and it gives me this module-not-found error.
Please help if you can

at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
code: 'MODULE_NOT_FOUND',
This is the error

I’m having the same problem. Please let me know if you find a fix.

Uninstall and reinstall nodejs. Repair the coding app as well.(add all the reps)

Worked for me

Hi i am having the same issue here, I  installed latest version of node but How do you repair the coding app, sorry I’m new to this


ini files should be fully managed (ie. purge => true)

Currently, ini settings are set using ini_settings

At least, this does not allow us reverting from fixed puppet and middleware hosts to SRV records in choria.cfg.
There are many instances with with non - standard settings which can result in a noop config.

Dupe of https://github.com/choria-io/puppet-mcollective/issues/46 and https://github.com/choria-io/puppet-mcollective/issues/45


@jnxplus/nx-boot-maven: update spring boot version

The version of spring boot is hard coded in every app or lib that we create. That make hard the update the spring boot version.

Work in progress here => https://github.com/khalilou88/jnxplus/tree/mvn-single-parent


Edge not proper when sourcePosition is marked as "left" and the other node is on bottom left of the node

[{
id: "3",
data: {
label: (

Node A

),
},
position: { x: 500, y: 300 },
targetPosition: "right" as any,
sourcePosition: "left" as any,
},
{
id: "5",
data: {
label: (
Node B
),
},
position: { x: 250, y: 370 },
},
{
id: "e3-5",
source: "3",
target: "5",
type: "smoothstep",
style: { stroke: "#A1AAB2" },
arrowHeadType: "arrowclosed" as ArrowHeadType,
}]
Expected:

Actual:

Same issue with getSmoothStepPath for left and right positions
GetSmoothStepPath behaves differently depending on (source.x < target.x)
Not nice:

Expected: Behavior does not change depending on source.x and target.x
All other cases (for example top and bottom positions or getBezierPath) have a nice behavior:
Nice:

This is fixed with v11.


E-mail guessing fails silently

Users are able to authenticate to Portus via LDAP creds, but their e-mail is not being set automatically, using the "guess" option with no attribute.
When the attribute is defined (set to "mail" in this case) users receive an "Invalid username" error when they try to login.
This compounds with #514 to make the system unusable for new users until all users have an e-mail address defined.
The workaround (for now) is to force the e-mail naming convention in code, which works because all users in this LDAP setup have the same domain.
The fact that the "guess" fails with no attribute defined seems to point to a failure in the ldap search, or that the ldap search.

Thanks for the heads up. If I understand it correctly, it should be enough if Portus would be more verbose on the given alert message. I guess that it would also be nice to log the error.
Anyways, the guess_email was meant to be used when the LDAP server follows a very specific pattern (being that the CN follows a pattern, or that the LDIF provides an attribute for it). Note that now that #514 has been fixed, maybe you don't run into so many errors from now on.

There's 2 parts to this for me. The first is a bug, where the LDIF attribute feature doesn't seem to work properly, as I supplied a valid attribute, and e-mail generation fails. My guess is that pulling the user record from LDAP fails, so all steps after fail. This would explain why neither the default guessing, nor the specific attribute definition works.
The "null" value helps here, as e-mails aren't strictly required for use anymore.
Second, is the enhancement, which requests an alert or error message when Portus fails to generate an e-mail address.

The first is a bug, where the LDIF attribute feature doesn't seem to work properly, as I supplied a valid attribute, and e-mail generation fails. My guess is that pulling the user record from LDAP fails, so all steps after fail. This would explain why neither the default guessing, nor the specific attribute definition works.

Ok, this is a bit weird... Let me investigate.

Second, is the enhancement, which requests an alert or error message when Portus fails to generate an e-mail address.

On the UI side, if the guessing of the email failed, you'll be redirected anyways to the profile and you'll be asked to fill the email. So the user is already aware that something went wrong.
From an admin site, I agree that we should log more properly what went wrong.

@kidhasmoxy I've investigated on it, and I catched an error (See 3e00cb0ee2d4d7270055c4c6d964d9524543a328). However, I'd need more information for the bug you're mentioning.
Please, make sure that you're using the right values for things like uid, base, authentication, etc. If you're still stuck with this, maybe you could add some debugging statements inside of the guess_email method and we can investigate what's going on if you paste what you get. Interesting stuff would be to investigate:

What does your APP_CONFIG look like at this point (filter out passwords and sensible data).
What does search_options return.
What does @ldap.search(search_options) return.

Thanks!

Closing now, since I believe that this has already been done. Feel free to re-open if you think that it has not been addressed.


Implemented the df64 floating point arithmetic for high precision layers

Please review. @gnavvy @ibgreen
This change requires luma.gl change to function properly.

Just wanted to say thank you! Really appreciate the work you did to fix this. This extra layer of polish will go a long way. 🎉

I've fixed most of the coding-style issues mentioned in comments inline in latest revision. I'll open another PR when I'm done moving fp64 math functions to a standalone library.

I've also merged the performance testing layers implemented in dev to fp64. It turns out the fp64 layers can render 1M points in scatterplot with usable framerate.

I also plan to add shader accuracy tests in next revision. Please review, @ibgreen @gnavvy