[SPARK-14706][ML][PySpark] Python ML persistence integration test

What changes were proposed in this pull request?
This patch tests Python ML persistence integration.

Add persistency tests of CrossValidator(TrainValidationSplit(LogisticRegression)) and TrainValidationSplit(CrossValidator(LogisticRegression)).

Enhance _compare_pipelines with checking of CrossValidator, CrossValidatorModel, TrainValidationSplit, TrainValidationSplitModel, OneVsRest, OneVsRestModel.

Bugs found and fixed in this PR:

OneVsRest, CrossValidator and TrainValidationSplit should have _transfer_param_map_to_java and _transfer_param_map_from_java, otherwise they can't be used as estimators in tuning.

lr = LogisticRegression()
lr.getThresholds()

produces keyNotFoundError because thresholds neither be set nor in _defaultParamMap, which leads the previous JavaParams parameter equality check error.

trainRatio in TrainValidationSplit should have float type converter.

OneVsRest with classifier in estimatorParamMaps of tuning fail to persistence. I.e.

ovr = OneVsRest()
epms = [{ovr.classifier: xxxx}, {ovr.classifier: xxx}]
cv = CrossValidator(estimator=ovr, estimatorParamMaps=epms, ...)
cv.load()

fails because classifier cannot be serialized via JSON.
The last one is not trivial, so I left it unsolved in this PR.
How was this patch tested?
The patch tests with Python unit tests.

Test build #56670 has started for PR 12604 at commit 622e564.

Test build #56670 has finished for PR 12604 at commit 622e564.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/56670/
Test PASSed.

@jkbradley Here are what I found in the integration test. The UIDs of non-JavaParams classes look good so far with current tests.

@jkbradley There is also a possible enhancement for OneVsRest. Currently OneVsRest requires classifier as its parameter, which is not easy-to-use especially when using in CrossValidator and TrainValidationSplit.
First, it can not be persisted if the classifier param appears in estimatorParamMaps;
Second, if we want to wrap OneVsRest in CrossValidator, we need to construct the estimatorParamMaps like below:
ovr = OneVsRest()
epms = [{ovr.classifier: LogisticRegression(maxIter=5)}, {ovr.classifier: LogisticRegression(maxIter=10)}]
cv = CrossValidator(estimator=ovr, estimatorParamMaps=epms, ...)

So I think, how about to add a estimatorParamMaps param to OneVsRest just like what we do in CrossValidator and TrainValidationSplit, say,
lr = LogisticRegression()
epms = [{lr.maxIter: 5}, {lr.maxIter: 10}]
ovr = OneVsRest(classifier=lr, estimatorParamMaps=epms)

I'll take a look now

OneVsRest with classifier in estimatorParamMaps of tuning fail to persistence

Nice catch. Could you please create a JIRA and note this issue in the Python docstring, with a link to the JIRA?
Your proposal might work, but it munges some ideas in OneVsRest and validation together.  I think we can devise a better long-term solution, but it's not a critical issue since it's a pretty fancy use case for OneVsRest.

I added some comments.  I think the tuning.py changes could be simplified somewhat, but I'll need to return to this later.

JIRA created: https://issues.apache.org/jira/browse/SPARK-14924 for OneVsRest with classifier in estimatorParamMaps of tuning fail to persistence

@jkbradley Find another bug: For LogisticRegression in PySpark, if you write it then reload it, the result is not identical with the previous one. Because some params in ml.LogisticRegression are defined with default value, while those params in pyspark.ml.LogisticRegression have no default value. With JavaParams, we're going to set default values for those params. So it will fail the following test:
def _compare_param(self, m1, m2, param):
        """
        Compare 2 ML params, assert they have the same param.
        """
        # Prevent key not found error in case of some param neither in paramMap and
        # defaultParamMap.
        if m1.isDefined(param):
            self.assertEqual(m1.getOrDefault(param), m2.getOrDefault(param))
            self.assertEqual(param.parent, m2.getParam(param.name).parent)
        else:
            # If m1 is not defined param, then m2 should not, too.
            self.assertEqual(m2.isDefined(m2.getParam(param.name)), False)

How about we setup a new JIRA to check the default values?

Nice catch about logreg.  It would be great to develop a generic way to test the JavaParams wrappers.  Could you please create a JIRA for that?

I'll do it.

For the tuning.py updates, I want to mess with the code locally to test possibilities.  Could you please update + fix merge conflicts? Thanks!

@jkbradley Here we go.

Test build #57034 has started for PR 12604 at commit c14b25e.

Test build #57034 has finished for PR 12604 at commit c14b25e.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57034/
Test FAILed.

Test build #57037 has started for PR 12604 at commit c348bf0.

Test build #57037 has finished for PR 12604 at commit c348bf0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57037/
Test PASSed.

Thanks, the updates look good.  I'll try to comment on the tuning.py part later today or early tomorrow.

Test build #57216 has started for PR 12604 at commit fa8a05c.

Test build #57216 has finished for PR 12604 at commit fa8a05c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57216/
Test PASSed.

@jkbradley Another bug found:
The CrossValidator and TrainValidationSplit miss the seed when saving and loading. I'd prefer to create a JIRA and fix them in this PR since they will block the integration test here.

Test build #57226 has started for PR 12604 at commit ba664f9.

Test build #57228 has started for PR 12604 at commit cdab34a.

Test build #57226 has finished for PR 12604 at commit ba664f9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57226/
Test PASSed.

Test build #57228 has finished for PR 12604 at commit cdab34a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57228/
Test PASSed.

@yinxusen  Thanks very much for working on this patch.  I’ve spent quite a bit of time trying to figure out how to simplify it, but given the very little time left before the code freeze, I think it will be best if we exclude persistence for model tuning in Python for this release.  To keep the current approach, we would need to clearly document its limitations, and the current approach is too ad-hoc for me to be confident in writing that documentation.  I think we can design a cleaner approach for the next release, including some general simplifications to the Python wrapper API.
I’ll work on reverting the current save/load for python tuning and CC you on the PRs.
Could you please close this issue?  Please keep the branch since the integration test will be useful in the future.  Also, could you please send a small patch with the Scala fixes which are in your PR?
Thanks a lot!

I should clarify: The integration test for OneVsRest will still be useful; could you please send it in a new PR?  It's just tuning (with the estimatorParamMaps) which is problematic.

Close this one and prepare the new PR for SPARK-15008

@yinxusen Are you prepping patches for both SPARK-15008 and SPARK-14973?  Let me know if you'd like help with one of them based on this closed PR.

@jkbradley I am preparing the SPARK-15008 now, but I am wondering why we need another persistence test for OneVsRest since we already have the test_save_load() in the OneVsRestTests in ml/tests.py?


convert placementrule CRD apiversion to v1beta1 for supporting <4.5 v…

…ersions of OCP
Signed-off-by: Xiangjing Li<EMAIL_ADDRESS>The apiVersion of the kind:CustomResourceDefinition in all of our CRDs  has to be v1beta1 for backporting <4.5 versions of OCP.  Or the CRD will fail to be applied to OCP <4.5.  OCP 4.4 is still supported by ACM.
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition

Please note our appsub CRDs version are still remained as V1
apiVersion: apps.open-cluster-management.io/v1
kind: Subscription

@xiangjingli
since you are modifying the CRD, can you please add the following to the print column
https://github.com/open-cluster-management/multicloud-operators-subscription/pull/273#issuecomment-678447515

@ianzhang366

since you are modifying the CRD, can you please add the following to the print column
#273 (comment)

Just checked the diff, Some of them have been in the master trunk. Also the CRD can' be generated directly now by controller-gen, as it generates CRDs with V1. We have to convert it to v1beta1 for OCP < 4.5 backport.
So the new diff only merged the new print columns and the markdown comments in types.go


Reland tf distribute fix

Re-revert #19969 & fixing issue #20045

Codecov Report
Attention: Patch coverage is 4.76190% with 20 lines in your changes missing coverage. Please review.

Project coverage is 57.49%. Comparing base (a226835) to head (13896b9).

Files
Patch %
Lines

keras/src/backend/tensorflow/trainer.py
5.26%
18 Missing :warning:

keras/src/backend/tensorflow/optimizer.py
0.00%
2 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (a226835) and HEAD (13896b9). Click for more details.
HEAD has 6 uploads less than BASE

Flag
BASE (a226835)
HEAD (13896b9)

keras
4
1

keras-torch
1
0

keras-tensorflow
1
0

keras-jax
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #20051       +/-   ##
===========================================
- Coverage   79.27%   57.49%   -21.78%
===========================================
  Files         501      501
  Lines       46921    46939       +18
  Branches     8648     8653        +5
===========================================
- Hits        37195    26989    -10206
- Misses       7981    18272    +10291
+ Partials     1745     1678       -67

Flag
Coverage Δ

keras
57.49% <4.76%> (-21.63%)
:arrow_down:

keras-jax
?

keras-numpy
57.49% <4.76%> (-0.03%)
:arrow_down:

keras-tensorflow
?

keras-torch
?

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


extend()

extend()

Hi there, what's the purpose of this pull request? 🙂

ee979503c94554f55670e09e5f0fadd8fb65b742
This is not mine.

I think this is easier to understand


Add support for Discord API v10

Is your feature request related to a problem? Please describe.
It is the new stable API version from discord. New features will only be released at v10+
Describe the ideal solution
Switch from API v9 to  API v10
Additional context
API Release:  https://github.com/discord/discord-api-docs/discussions/4510

I'm speed 😎

Has v10 been release yet as its not showing when install the npm?

discord-api-types@next has it, and a full release will be done on Thursday

Okay


Braava Jet M6

Hello
I have a Braava Jet M6 Robot and want to connect to Homebridge.
Plugin works but it says unavailable?!
Is there any way to connect it?
Maybe MQTT?

Nobody can help?! Somebody maybe tried it with Braava m6?!

I have had this working with the m6 for a while, but like many others, have experienced the "No Response" message in homekit itself. Control does work through the browser consistently, however.

Here is a new homebridge plugin that works with the Braava m6:
https://www.npmjs.com/package/homebridge-braava


Update configure-networking-how-to.md

Added additional details as per

https://learn.microsoft.com/en-us/azure/azure-functions/functions-app-settings#website_contentshare
https://learn.microsoft.com/en-us/azure/azure-functions/functions-app-settings#website_contentazurefileconnectionstring

@ggailey777
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

Trying a close/reopen to clear the validation warnings.


Shaded jar version with hbase client shaded and included

We are currently using the CDH 5.11 for HBase client in our service code, specifically hbase-client-1.2.0-cdh5.11.1. We are also including com.google.cloud.bigtable:bigtable-hbase-1.x-shaded:1.10.0 as a dependency. It appears the bigtable hbase library is using a more recent version of the hbase client 1.4.9. This causes some issues because the newer hbase client has some changes from our 1.2.0-based CDH client version.
Specifically we see on an Admin.listTables() call we get this stack trace
Exception in thread "main" java.io.IOException: Failed to getTableDescriptor() on action_dispatches
	at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.getTableDescriptor(AbstractBigtableAdmin.java:265)
	at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.getTableDescriptors(AbstractBigtableAdmin.java:170)
	at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.listTables(AbstractBigtableAdmin.java:164)
	at com.sift.ScottTest.main(ScottTest.java:44)
Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)Lorg/apache/hadoop/hbase/HTableDescriptor;
	at com.google.cloud.bigtable.hbase.adapters.admin.TableAdapter.adapt(TableAdapter.java:97)
	at org.apache.hadoop.hbase.client.AbstractBigtableAdmin.getTableDescriptor(AbstractBigtableAdmin.java:260)
	... 3 more

This is due to the fact that hbase mainline client added returning the HTableDescriptor to the addFamily() method. https://github.com/apache/hbase/blob/763f27f583cf8fd7ecf79fb6f3ef57f1615dbf9b/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java#L879
Upgrading our service code to use mainline hbase client version 1.4.9 would be a major project for us so it's not really feasible.
Is there way we could a get a version of the bigtable hbase client jar that also shades the hbase client it is using? Current that shaded jar that's produced simply excludes the hbase-client dependency.

Interesting. First, I would suggest using bigtable-hbase-1.x-hadoop instead of bigtable-hbase-1.x-shaded.
In terms of a shaded client, I don't think that us shading in hbase is actually going to help you.  We'd need to rename all of the org.apache.hadoop.hbase.* packages to something else in order for this to potentially be useful to you.
We can add some fixes plus testing that ensures that we'll always be compatible with 1.2.0, which might solve your problem.
@igorbernstein2, FYI.

I don't think 1.2.0 will help with this.
I see that addFamily returned the descriptor as far back as mainline 1.0:
https://github.com/apache/hbase/blob/rel/1.0.0/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java#L786
And CDH still returns void as of today:
https://github.com/cloudera/hbase/blob/trunk/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java#L457
This seems like a fundamental binary incompatibility between CDH's api and apache/hbase's api. We compile our client against apache/hbase, so the binaries that we publish expect a method signature that has a return type

My apologies, I misunderstood CDH's git repo. It seems like master is not up to date. It looks like starting with CDH 6.0.0, addFamily has a return type:
https://github.com/cloudera/hbase/blob/cdh6.0.0-release/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java#L436

I don't quite understand why relocating org.apache.hadoop.hbase.* under com.google.bigtable.repackaged. won't fix this problem. The code inside Admin will use the shaded verison which is 1.4.9. Anything in our service code will use the CDH version.
My current workaround is copying HTableDescriptor.java from CDH5.11 into my service's source tree and put it under the correct package, then manually modify the addFamily method in this copy to return the value. Then this implementation will override the one from the dependencies. Not great.

Hi Scott,
The expected usage of the client (using fully qualified types) is:
org.apache.hadoop.hbase.client.Connection connection = BigtableConfiguration.connect("my-project", "my-instance");
org.apache.hadoop.hbase.client.Table table = connection.getTable(
   org.apache.hadoop.hbase.TableName.valueOf("my-table"));

org.apache.hadoop.hbase.client.Result result = table.get(
  new org.apache.hadoop.hbase.client.Get("my-key".getBytes()));

If we shaded org.apache.hadoop.hbase.* then all of those types would change and the client surface would be incompatible with both mainline HBase and CDH's fork. Shading can only help with internal types, if a type is on the surface it can no longer be shaded without changing the interface. I think the only way to make bigtable-hbase-1.x-* compatible with CDH's fork is to fork the bigtable client and compile it against hbase-shaded-client-1.2.0-cdh5.11.0.
If you don't care about having compatibility with HBase or CDH's fork and are just trying to deal with dependency hell where you are required to have CDH's jars on your classpath. You can create your own intermediate artifact to do the repackaging (similar to how bigtable-hbase-1.x-hadoop works). If go down this road, then I would recommend for you use the bigtable client directly without the hbase compatibility layer:
https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigtable

Thanks for the response, sounds like there's no easy solution here. For now I'll stick with my workaround of adding hacked version of CDH versions of classes as necessary. If that turns into a bigger problem, I'll probably have to fork the bigtable client and get it to compile against the CDH client. We have a ton of existing code that uses the HBase client so rewriting that against the native bigtable client is not feasible.


Add partial read write

This should implement the ReadPartial method discussed in Issue #84. This could be used as a base to implement stream copying, without needing to know sizes up front.
I believe this has the right idea down, though this code is untested. We should really look into how we're going to write unit tests. I suppose one way to test this manually, without proper unit tests, is to write the stream copying code on top of it.
I didn't not write a corresponding WritePartial method. Do we even need one? I'm not sure there is as clear of a case for it.

Oh geeze duh on the change suggestion. I'll fix that.
I also prefer public methods at the top. Though I'm tempted to experiment a bit with this one. It's certainly a valid point that readability should come before micro optimizations. Though the micro optimization was not really the point. If it was, I'd have done that right from the beginning. Rather there's something about the organization that seems somehow right. The protected method was originally meant to be public. It's not public because of a name hiding workaround. However, it is still very much at the heart of the public API, as all the public methods are just short wrappers to add syntax sugar to calling the protected method. It's the protected method you must understand to use this API.
 That's partly why I want to try it this way. It's easy enough to change later if we decide against it.
The documentation for the functions should be improved a bit. In particular, they could use more description about the exception behaviour. I'll try to add more there.
Interesting idea about the noexcept. I like it, except I'm not certain I want that strong of a guarantee. Is it true that all derived classes will never throw exceptions under any circumstance for that method? Or is it merely a promise to return a partial buffer rather than throw an exception if it hits the end of file before filling the buffer. I suppose I need to consider if there are any other valid reasons for such a method to throw.
I'll see what I can do to address the warnings.

I think I like the noexcept idea. If ReadPartial raised exceptions for other reasons, I think that would limit its usefulness.


[Diagnostics] Improve if/ternary condition expression diagnostics

Add a new locator path element "condition" to represent condition expression of if expression and ternary operator.
While generating constraints switch to use if as a anchor for conditional expression conversion to Bool.
Use contextual mismatch diagnostics we already have for while, guard etc. to diagnose if/ternary conditional mismatches.

This and https://github.com/apple/swift/pull/27834 get us almost to the point where we can remove all of Constraint * related logic from CSDiag. There are a couple of ambiguities I need to investigate still.

@swift-ci please smoke test


Deprecation warning and error message when running tests

When I run the example tests I get the following errors on screen:
Got this error in two machines:

Linux Ubuntu 16.04 (from within Windows 10) x64 with NodeJS v8.11.2
Mac OS X High Sierra with NodeJS v8.11.2

[Fri Jul 06 2018 21:42:45 GMT+0000 (UTC)] ERROR cucumber integration has failed code is not defined
(node:1295) UnhandledPromiseRejectionWarning: ReferenceError: code is not defined
    at exitNow (/mnt/c/Users/braza/Code/klassi-cucumber-js/index.js:205:22)
    at /mnt/c/Users/braza/Code/klassi-cucumber-js/index.js:208:9
    at new Promise (<anonymous>)
    at Object.<anonymous> (/mnt/c/Users/braza/Code/klassi-cucumber-js/index.js:200:8)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3
(node:1295) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1295) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:1295) UnhandledPromiseRejectionWarning: ReferenceError: code is not defined
    at exitNow (/mnt/c/Users/braza/Code/klassi-cucumber-js/index.js:205:22)
    at /mnt/c/Users/braza/Code/klassi-cucumber-js/index.js:208:9
    at new Promise (<anonymous>)
    at Object.<anonymous> (/mnt/c/Users/braza/Code/klassi-cucumber-js/index.js:200:8)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3
(node:1295) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)

that was an oversight thanks for the bug report
the fix added
log = require('./runtime/logger')


Adds initial implementation of operator_build role

This patch adds initial implementation of a role to build OpenStack operators.
The role can build multiple operators, when provided their 'name' and 'src' code directory.
When testing from a pull request, in order to properly build the meta-operator, the user needs to provide the PR owner and SHA, to be used on meta-operator go.mod.
This PR has:

[ ] Appropriate testing (molecule, python unit tests)
[ ] Appropriate documentation (README in the role, main README is up-to-date)

should have updated #60 instead.... wtf?


Errors after v1.6.2

Since upgrading to v1.6.2 I seem to be having issues with the integration - primarily noticed by the uploads to PVOutput just stopping. A restart of HA brings things back to life but then it just seems to stop again.
It might be HA itself of course but it's only happened since v1.6.2 was installed.
HA is 2023.2.3
GivEnergy AC3 Inverter with GivBat 5.2 battery
Errors in the logs include:-
1.
Logger: givenergy_modbus
Source: /usr/local/lib/python3.10/site-packages/givenergy_modbus/modbus.py:52
First occurred: 15:44:12 (4 occurrences)
Last logged: 16:50:12
Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
NoneType: None
2.
This error originated from a custom integration.
Logger: givenergy_modbus
Source: custom_components/givenergy_local/coordinator.py:64
Integration: GivEnergy Local (documentation, issues)
First occurred: 14:34:23 (4 occurrences)
Last logged: 15:44:12
Did not receive expected response type: ReadInputRegistersResponse != NoneType
Did not receive expected response type: ReadInputRegistersResponse != ErrorResponse
Did not receive expected response type: ReadHoldingRegistersResponse != ErrorResponse
Did not receive expected response type: ReadHoldingRegistersResponse != ModbusIOException
3.
This error originated from a custom integration.
Logger: givenergy_modbus
Source: custom_components/givenergy_local/coordinator.py:69
Integration: GivEnergy Local (documentation, issues)
First occurred: 15:07:10 (14 occurrences)
Last logged: 18:11:13
Did not receive expected response type: ReadInputRegistersResponse != ErrorResponse
Returned base register (60) does not match that from request (0).
Did not receive expected response type: ReadInputRegistersResponse != ModbusIOException
Returned base register (0) does not match that from request (60).
Returned base register (60) does not match that from request (180).
Thanks,
Ian

The modbus library has not changed in v1.6.2, and I've not had any other reports of problems with that specific version.
Unfortunately, as per the README, those sorts of errors are not usually something that can be fixed with a code change here. It's nearly always something to do with the local environment/network or perhaps some flaky GivEnergy firmware.


Detect M1 Mac and disable ASAN default

ASAN redbean is currently broken on M1. It would be good if the default "asan" instead defaulted to MODE= when run on an M1. However I don't know how to detect whether the host is an M1.

Will this work?
# Use default redbean if on M1 Mac. Else use ASAN
if which arch && [ "$(arch)" != "x86_64" ]; then
    RB_MODE= # default
else
    RB_MODE="asan-" # Memory hardening goodness for bug/exploit prevention
fi

Added to build.sh. If someone can contribute matching condition for the Makefile let me know. https://github.com/ProducerMatt/redbean-template/commit/d81c2e7fd5f6c62f05267c7ab10b2017bc9f3e41


Strange behaviour when reaching memory limit

I'm not sure if this is really a bug or i understand something wrong.
In proddys emsesp-project some users reports freezing which is (maybe) related to the mqtt at low memory when mqtt is disconnected, With old asyncMqttClient we delete old queued messages when getFreeHeap goes below 60k. In espMqttClient there is the EMC_MIN_FREE_MEMORY setting. Discussion about that is here
I've tested with a modifcated https://github.com/bertmelis/espMqttClient/blob/main/examples/notask-esp32/notask-esp32.ino, and added in loop:
if (currentMillis - lastMillis > 10)
    {
        lastMillis = currentMillis;
        static uint32_t messageNo = 0;
        char payload[120];
        sprintf(payload, "MessageNo: %u qwertzuiopüasdfghjklöyxcvbnmqwertzuioasdfghj", ++messageNo);
        uint16_t id = mqttClient->publish("Testmessage", 1, 0, payload);
        Serial.printf("messageNo: %u, publish: %s, heap: %u, maxAlloc: %u\n", messageNo, id > 0 ? "ok" : "fail", ESP.getFreeHeap(), ESP.getMaxAllocHeap());
    }

(BTW: currentMillies should not be static to update it in every loop)
config.h
#define EMC_MIN_FREE_MEMORY 61440
#define EMC_ALLOW_NOT_CONNECTED_PUBLISH 1

helpers.h
#define EMC_GET_FREE_MEMORY() ESP.getFreeHeap()

(BTW: the mem-check for PSRAM is critical, the esp32 default in sdkconfig.h is CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096,
so mqtt publish is mainly allocated in internal ram. Better check both RAM for enough space)
With the above settings on a esp32/4M, nodemcu (no PSRAM) i get an output:
messageNo: 1384, publish: ok, heap: 54860, maxAlloc: 53236
messageNo: 1385, publish: ok, heap: 54796, maxAlloc: 53236
messageNo: 1386, publish: fail, heap: 54796, maxAlloc: 53236
messageNo: 1387, publish: fail, heap: 54796, maxAlloc: 53236

which looks as expected, except the allocation fail is at 53k,not at 60k.
with debug messages i see that allocation fails at 60k, but publish gives back a valid message-id and free heap is still going down.
messageNo: 1248, publish: ok, heap: 61576, maxAlloc: 53236
[ 15277][I][Packet.cpp:319] _allocate(): Alloc (l:79)
messageNo: 1249, publish: ok, heap: 61416, maxAlloc: 53236
[ 15289][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
messageNo: 1250, publish: ok, heap: 61352, maxAlloc: 53236
[ 15302][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
messageNo: 1251, publish: ok, heap: 61288, maxAlloc: 53236
[ 15315][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory

Some messages later strange things happens:
[ 15562][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
messageNo: 1271, publish: ok, heap: 59944, maxAlloc: 53236
[ 15600][E][WiFiClient.cpp:268] connect(): socket error on fd 48, errno: 104, "Connection reset by peer"
messageNo: 1272, publish: fail, heap: 59904, maxAlloc: 53236
messageNo: 1273, publish: fail, heap: 59904, maxAlloc: 53236
[ 15615][I][MqttClient.cpp:717] _clearQueue(): clearing queue (clear session: 0)
Disconnected from MQTT: 7.
[ 15629][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
messageNo: 1274, publish: ok, heap: 61312, maxAlloc: 53236
[ 15642][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
messageNo: 1275, publish: ok, heap: 61248, maxAlloc: 53236
[ 15655][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
messageNo: 1276, publish: ok, heap: 61184, maxAlloc: 53236```

and at last, when heap is down at 53k the message-Id is returned as zero and no log messages from the client
messageNo: 1375, publish: ok, heap: 54888, maxAlloc: 53236
[ 16955][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
messageNo: 1376, publish: ok, heap: 54824, maxAlloc: 53236
messageNo: 1377, publish: ok, heap: 54760, maxAlloc: 53236
messageNo: 1378, publish: ok, heap: 54696, maxAlloc: 53236
messageNo: 1379, publish: fail, heap: 54696, maxAlloc: 53236
messageNo: 1380, publish: fail, heap: 54696, maxAlloc: 53236

Testing the same with a own task is similar, but some with some other events:
log_with_own_task.txt
Workaround is not to use EMC_ALLOW_NOT_CONNECTED_PUBLISH, or stop feeding publishes on an own memory limit higher than the setting in the library.
Your solution not to allocate mem for the new messages is not ideal, better is to delete the oldest message in the queue and queue the new message. Is there a way to delete the oldest message in queue by a function call?
I've added a getQueueSize to check the queued messages, but in case of disconnected mqtt memory is allocated but the outbox does not grow. Is there a better way to read the number of messages in the queue?
uint16_t MqttClient::getQueue() const {
    EMC_SEMAPHORE_TAKE();
    espMqttClientInternals::Outbox<OutgoingPacket>::Iterator it    = _outbox.front();
    uint16_t  count = 0;
    while (it) {
        ++count;
        ++it;
    }
    EMC_SEMAPHORE_GIVE();
    return count;
}

Regarding queue management. It's undesired to just delete the oldest item. We have to at least check for QoS. I'm happy to delete qos0 messages. Higher QoS means giving up compliancy.
It can be configurable of course:
delete oldest regardless
delete oldest, taking qos into account
don't delete = don't allow new
In any case, it will probably add a lot of complexity.

Of course, there is a slight difference between the memory check and the actual memory afterwards but I definitely not expect it to be 3k.

The memory check works, the "low memory" message from allocate comes at right level. But the publish still returns ID (qos>0) or 1 (qos0) and heap is decreasing. 7k below limit the "low memory"  messages is missing and publish return zero and heap stays constant.
I have not checked if the queue is send out after reconnect, my tests was always with broker down all the time.
Because the outbox seems to stay emty, i'll check if the queued messages are sent on reconnect.

Regarding queue management...

Agree, qos is critical when deleting messages.  My suggestion: don't accept the new messages, make sure message-id returns zero, so we know the message is not queued.  But add a function to delete front/back of queue the the caller can retry after deleting one.

The reference to error isn't properly updated when allocation fails.
The devil is in the details. Major bug found!
https://github.com/bertmelis/espMqttClient/pull/109/commits/24b6b49a3afa522775cc9869eba808ca4ac54d0b

Some log output:
[ 12326][I][Packet.cpp:316] _allocate(): Alloc (l:78)
messageNo: 599, publish: ok, heap: 158412, maxAlloc: 98292
[ 12342][W][Packet.cpp:306] _allocate(): Packet buffer not allocated: low memory
[ 12349][E][MqttClient.cpp:157] publish(): Could not create PUBLISH packet
messageNo: 600, publish: fail, heap: 158412, maxAlloc: 98292
[ 12367][W][Packet.cpp:306] _allocate(): Packet buffer not allocated: low memory
[ 12373][E][MqttClient.cpp:157] publish(): Could not create PUBLISH packet
messageNo: 601, publish: fail, heap: 158412, maxAlloc: 98292

It now correctly detects the failed allocation. (I didn't change anything on the psram quirks.)

Wow this was fast. Looks much better, but there is still something wrong. The outbox queue is now correctly filled and i added to show it:
Serial.printf("messageNo: %u, publish: %s, queue: %d, heap: %u, maxAlloc: %u\n", messageNo, id > 0 ? "ok" : "fail", mqttClient->getQueue(), ESP.getFreeHeap(), ESP.getMaxAllocHeap());
This gives when  reaching the limit correctly the fail (message-id == 0):
[ 14852][I][Packet.cpp:319] _allocate(): Alloc (l:79)
messageNo: 1248, publish: ok, queue: 1242, heap: 61580, maxAlloc: 53236
[ 14863][I][Packet.cpp:319] _allocate(): Alloc (l:79)
messageNo: 1249, publish: ok, queue: 1243, heap: 61420, maxAlloc: 53236
[ 14874][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 14874][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 1250, publish: fail, queue: 1244, heap: 61356, maxAlloc: 53236
[ 14890][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 14890][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet

But still the heap goes down and messages are put to queue.
Heap usage of a valid message is 160 bytes, heap usage when allocate fail is 64 bytes.
And after some time still strange things happens:
messageNo: 1351, publish: fail, queue: 1346, heap: 54828, maxAlloc: 53236
[ 16942][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 16942][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 1352, publish: fail, queue: 1347, heap: 54764, maxAlloc: 53236
Connecting to MQTT...
Connecting failed.
[ 24617][V][WiFiGeneric.cpp:362] _arduino_event_cb(): STA Disconnected: SSID: HZTD67Fr45d, BSSID: 44:4e:6d:af:6f:8f, Reason: 200
[ 24617][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 5 - STA_DISCONNECTED
[ 24625][W][WiFiGeneric.cpp:1057] _eventCallback(): Reason: 200 - BEACON_TIMEOUT
[ 24632][D][WiFiGeneric.cpp:1081] _eventCallback(): WiFi AutoReconnect Running
[ 24640][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24646][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
[ 24642][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: <IP_ADDRESS>, MASK: <IP_ADDRESS>, GW: <IP_ADDRESS>
messageNo: 2049, publish: fail, queue: 1350, heap: 55200, maxAlloc: 53236
WiFi disconnected
[ 24678][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24679][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2050, publish: fail, queue: 1351, heap: 55320, maxAlloc: 53236
[ 24699][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24699][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2051, publish: fail, queue: 1352, heap: 55256, maxAlloc: 53236
[ 24719][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24719][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2052, publish: fail, queue: 1353, heap: 55192, maxAlloc: 53236
[ 24739][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24739][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2053, publish: fail, queue: 1354, heap: 55128, maxAlloc: 53236
[ 24759][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24759][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2054, publish: fail, queue: 1355, heap: 55064, maxAlloc: 53236
[ 24779][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24779][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2055, publish: fail, queue: 1356, heap: 55000, maxAlloc: 53236
[ 24799][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24800][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2056, publish: fail, queue: 1357, heap: 54936, maxAlloc: 53236
[ 24819][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24820][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2057, publish: fail, queue: 1358, heap: 54872, maxAlloc: 53236
[ 24840][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24840][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2058, publish: fail, queue: 1359, heap: 54808, maxAlloc: 53236
[ 24860][W][Packet.cpp:305] _allocate(): Packet buffer not allocated: low memory
[ 24860][E][MqttClient.cpp:161] publish(): Could not create PUBLISH packet
messageNo: 2059, publish: fail, queue: 1360, heap: 54744, maxAlloc: 53236
Connecting to MQTT...
Connecting failed.
Connecting to MQTT...
Connecting failed.
Connecting to MQTT...
Connecting failed.
Connecting to MQTT...
Connecting failed.

It's not reproducing here. Which version are you using?
I've changed two things:

the pass-by-value to pass-by-reference
delete queue node when node's data construction failed

Both changes are in the PR.

Sorry, i've merged your first commit, but missed the the others. It's working now. Thank you very much.

I've changed one more bit: the CONNECT message will not check for low memory. Otherwise, as there is no means to delete from the queue, you will never be able to reconnect when low on memory.

Closed with pr #109
Feel free to reopen if the problem persists.
The feature discussion can be done in a separate issue/discussion.


System tray icon is not removed wen application exits

When I exit Authenticator (and process is really terminated), it doesn't remove the system tray icon and it doesn't disappear until I hover the cursor over it.
Version: 4.1.4

Does this happen every time? Is it on Windows 7?

yes, every time, on windows 7 (here)

Reproduced on Windows 10 as well.

Reproduced again in Win10, but this doesn't look to me like a bug in the yubioath-desktop app. Since the process exits immediately when you click Quit, and the icon then disappears as soon as you point at it again, I'm more inclined to call this a bug in Windows.

@emlun I really don't know how it's supposed to work in Windows but I can imagine that this behavior is happening when you don't explicitly remove the icon before exiting the app.

Ah yes, you are right. My thanks and apologies, this will be fixed in the next release.

Fixed in 77fbaab


Dashboard history pagination

Add a pagination to dashboard, so user can easily see recent work done, not just the latest
Related to discussion at http://forum.gogs.io/topic/26/recent-activity/2

+1 pagination, or user configurable how much items are displayed on the dashboard is highly desired

Patch has pushed to fix this issue, please test on develop branch or https://try.gogs.io.


How to use wildcard alt names with --domain flag?

Hi,
I've been using dehydrated's --domain CLI flag instead of domains.txt, and now want to also use wildcard certificates.
What is the --domain CLI flag equivalent of doing
service.example.com *.service.example.com

as explained on https://github.com/lukas2511/dehydrated/blob/10d4b98e7f1e2c5e0e5b16b0896aa7180e5a88f5/docs/domains_txt.md#wildcards ?

I've tried the following:
When I give --domain '*.service.example.com', I get
ERROR: Please define a valid alias for your *.service.example.com wildcard-certificate.

which makes sense.
When I give --domain 'service.example.com *.service.example.com', I get
 + Requesting authorization for *.service.example.com...
  + ERROR: An error occurred while sending post-request to https://acme-staging.api.letsencrypt.org/acme/new-authz (Status 400)

Details:
HTTP/1.1 100 Continue
Expires: Sun, 27 May 2018 14:15:52 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache

HTTP/1.1 400 Bad Request
Server: nginx
Content-Type: application/problem+json
Content-Length: 129
Boulder-Requester: 3059337
Replay-Nonce: Naad93U-smxcpae2dpp8mx4WxnfDTymk_3IgLrny3lY
Expires: Sun, 27 May 2018 14:15:52 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Sun, 27 May 2018 14:15:52 GMT
Connection: close

{
  "type": "urn:acme:error:malformed",
  "detail": "Error creating new authz :: Wildcard names not supported",
  "status": 400
}

Thanks!

Uh now I'm confused. Looks like I get Error creating new authz :: Wildcard names not supported even when using domains.txt instead of --domain flags, with this domains.txt:
service.example.com *.service.example.com

and invocation dehydrated --config config --cron --challenge dns-01 --hook route53.py. What am I missing?

Ah, never mind, I had a stray
CA="https://acme-staging.api.letsencrypt.org/directory"

in my config when it should have been the following to use ACMEv2 for wildcard cert support:
CA="https://acme-staging-v02.api.letsencrypt.org/directory"

So --domain 'service.example.com *.service.example.com' seems to work now.

Should I be able to put in /opt/local/etc/dehydrated/domains.txt
domain.tld *.domain.tld

To have a cert for all subdomains?


time setting after 'zomertijd' or day time saving

Hi Jos,
I have been tinkering with your script for a clock for my mom. (I also want to include a two week google calendar view btw).
I noticed just now that my rpi is showing 'ochtend' while already 12:24u. I haven't looked into the issue, just wanted you to know. My raspberry is running since saturday, so from before the switch to zomertijd.
I just rebooted and still see the wrong 'dagdeel'. Can't do more now. keep you posted.
--pascal

I found it. You had <=12 in stead of <12:
if ( myDate.getHours() < 6 )
{
document.getElementById('deeldag').innerHTML='Nacht';
}
else
if ( myDate.getHours() >= 6 && myDate.getHours() < 12 )   <=========== is in your code '<=12'
{
document.getElementById('deeldag').innerHTML='Ochtend';
}
else
if ( myDate.getHours() >= 12 && myDate.getHours() < 18 )
{
document.getElementById('deeldag').innerHTML='Middag';
}
else
if ( myDate.getHours() >= 18 && myDate.getHours() <= 24 )
{
document.getElementById('deeldag').innerHTML='Avond';
}


[Feature Request] Remember Placement when opened

IDK if its possible within the framework, but i'd love if I could have it remember my usual placement for the tracker when i open it, as opposed to always opening in the center of the screen. That'd be a great QOL option!
Thanks for your work on this mod, its very useful!

Added in Challenge Tracker 2.3.


The reference assemblies for .NETFramework,Version=v4.7.1 were not found. (Unity Issue)

System Info:
OS: Arch Linux
Editor: NeoVim
Hi, I have been trying for hours to solve this issue but I have not been able to.
When I open a .cs file the editor says it loaded the .sln file. However it doesn't appear to show any suggestions for unity.
Upon typing :OmniSharpOpenLog I get the following output.

 NVIM v0.4.4

OmniSharp server started.
    Path: /home/david/.cache/omnisharp-vim/omnisharp-roslyn/run
    Target: /home/david/unityProjects/SurvivalGame/SurvivalGame/SurvivalGame.sln
    PID: 2065197

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on arch 0.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 1 MSBuild instance(s)
            1: StandAlone 16.8.0 - "/home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to '/home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/MSBuild.exe'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 16.8.0 - "/home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin"
            CscToolExe = csc.exe
            MSBuildToolsPath = /home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin
            CscToolPath = /home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/Roslyn
            BypassFrameworkInstallChecks = true
            MSBuildExtensionsPath = /home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.Completion.CompletionOptionsProvider, Order: 0
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in '/home/david/unityProjects/SurvivalGame/SurvivalGame'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.MSBuild.ProjectSystem
        Detecting projects in '/home/david/unityProjects/SurvivalGame/SurvivalGame/SurvivalGame.sln'.
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in '/home/david/unityProjects/SurvivalGame/SurvivalGame'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location '/home/david/unityProjects/SurvivalGame/SurvivalGame' on host -1.
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj
[info]: OmniSharp.OmniSharpWorkspace
        Miscellaneous file: /home/david/unityProjects/SurvivalGame/SurvivalGame/Assets/cube.cs added to workspace
Replaying requests for buffer 1
[fail]: OmniSharp.MSBuild.ProjectLoader
        The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
[warn]: OmniSharp.MSBuild.ProjectManager
        Failed to load project file '/home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj'.
All projects loaded
/home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj
/home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(1180,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: /home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj
Workspace complete: 1 project(s)
Replaying on-load requests

Thank you for your time.

The standalone msbuild shipped with OmniSharp-roslyn does not have full .Net Framework support by itself. You'll need to install mono and run through that.

There are a couple of suggestions for telling OmniSharp-roslyn to use the mono libraries in the wiki article about Unity setup, see if that works.

Hi, thanks for your reply. I have tired running nvim with the FrameworkPathOverrride set up. FrameworkPathOverride=/lib/mono/4.8-api nvim Assets/cube.cs It still however does not work.
Now I am getting this log.

OmniSharp server started.
    Path: /home/david/.cache/omnisharp-vim/omnisharp-roslyn/run
    Target: /home/david/unityProjects/SurvivalGame/SurvivalGame/SurvivalGame.sln
    PID: 2155935

[info]: OmniSharp.Stdio.Host
        Starting OmniSharp on arch 0.0 (x64)
[info]: OmniSharp.Services.DotNetCliService
        DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Located 1 MSBuild instance(s)
            1: StandAlone 16.8.0 - "/home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        MSBUILD_EXE_PATH environment variable set to '/home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/MSBuild.exe'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
        Registered MSBuild instance: StandAlone 16.8.0 - "/home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin"
            CscToolExe = csc.exe
            MSBuildToolsPath = /home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin
            CscToolPath = /home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/Roslyn
            BypassFrameworkInstallChecks = true
            MSBuildExtensionsPath = /home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.Completion.CompletionOptionsProvider, Order: 0
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110
[info]: OmniSharp.WorkspaceInitializer
        Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140
[info]: OmniSharp.Cake.CakeProjectSystem
        Detecting Cake files in '/home/david/unityProjects/SurvivalGame/SurvivalGame'.
[info]: OmniSharp.Cake.CakeProjectSystem
        Could not find any Cake files
[info]: OmniSharp.MSBuild.ProjectSystem
        Detecting projects in '/home/david/unityProjects/SurvivalGame/SurvivalGame/SurvivalGame.sln'.
[info]: OmniSharp.MSBuild.ProjectManager
        Queue project update for '/home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
        Detecting CSX files in '/home/david/unityProjects/SurvivalGame/SurvivalGame'.
[info]: OmniSharp.Script.ScriptProjectSystem
        Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
        Configuration finished.
[info]: OmniSharp.Stdio.Host
        Omnisharp server running using Stdio at location '/home/david/unityProjects/SurvivalGame/SurvivalGame' on host -1.
[info]: OmniSharp.MSBuild.ProjectManager
        Loading project: /home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj
[info]: OmniSharp.OmniSharpWorkspace
        Miscellaneous file: /home/david/unityProjects/SurvivalGame/SurvivalGame/Assets/cube.cs added to workspace
Replaying requests for buffer 1
Can't find custom attr constructor image: /home/david/unityProjects/SurvivalGame/SurvivalGame/Library/ScriptAssemblies/Unity.Rider.Editor.dll mtoken: 0x0a000007 due to: Could not find method '.ctor' due to a type load error: Could not set up parent class, due to: Could not set up parent class, due to:  assembly:/home/david/Unity/Hub/Editor/2020.2.2f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll type:Object member:(null) assembly:/home/david/Unity/Hub/Editor/2020.2.2f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll type:Attribute member:(null) assembly:/home/david/unityProjects/SurvivalGame/SurvivalGame/Library/ScriptAssemblies/UnityEngine.TestRunner.dll type:TestRunCallbackAttribute member:(null) assembly:/home/david/unityProjects/SurvivalGame/SurvivalGame/Library/ScriptAssemblies/UnityEngine.TestRunner.dll type:TestRunCallbackAttribute member:(null)
JSON error: Vim(let):E474: Unidentified byte: Can't find custom attr constructor image: /home/david/unityProjects/SurvivalGame/SurvivalGame/Library/ScriptAssemblies/Unity.Rider.Editor.dll mtoken: 0x0a000007 due to: Could not find method '.ctor' due to a type load error: Could not set up parent class, due to: Could not set up parent class, due to:  assembly:/home/david/Unity/Hub/Editor/2020.2.2f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll type:Object member:(null) assembly:/home/david/Unity/Hub/Editor/2020.2.2f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll type:Attribute member:(null) assembly:/home/david/unityProjects/SurvivalGame/SurvivalGame/Library/ScriptAssemblies/UnityEngine.TestRunner.dll type:TestRunCallbackAttribute member:(null) assembly:/home/david/unityProjects/SurvivalGame/SurvivalGame/Library/ScriptAssemblies/UnityEngine.TestRunner.dll type:TestRunCallbackAttribute member:(null)
[fail]: OmniSharp.MSBuild.ProjectLoader
The "ResolveAssemblyReference" task failed unexpectedly.
System.TypeLoadException: Could not find method '.ctor' due to a type load error: Could not set up parent class, due to: Could not set up parent class, due to:  assembly:/home/david/Unity/Hub/Editor/2020.2.2f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll type:Object member:(null) assembly:/home/david/Unity/Hub/Editor/2020.2.2f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll type:Attribute member:(null) assembly:/home/david/unityProjects/SurvivalGame/SurvivalGame/Library/ScriptAssemblies/UnityEngine.TestRunner.dll type:TestRunCallbackAttribute member:(null)
  at (wrapper managed-to-native) System.MonoCustomAttrs.GetCustomAttributesDataInternal(System.Reflection.ICustomAttributeProvider)
  at System.MonoCustomAttrs.GetCustomAttributesDataBase (System.Reflection.ICustomAttributeProvider obj, System.Type attributeType, System.Boolean inheritedOnly) [0x00010] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0
  at System.MonoCustomAttrs.GetCustomAttributesData (System.Reflection.ICustomAttributeProvider obj, System.Boolean inherit) [0x00011] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0
  at System.Reflection.CustomAttributeData.GetCustomAttributes (System.Reflection.Assembly target) [0x00000] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0
  at System.Reflection.RuntimeAssembly.GetCustomAttributesData () [0x00000] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0
  at Microsoft.Build.Tasks.AssemblyInformation.GetFrameworkName () [0x00025] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.AssemblyInformation.get_FrameworkNameAttribute () [0x00028] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.AssemblyDependency.AssemblyMetadata..ctor (System.String path) [0x00019] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.AssemblyInformation+<>c.<GetAssemblyMetadata>b__21_0 (System.String p) [0x00000] in <284d11f275764cafba668d0e682555f7>:0
  at System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) [0x00034] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0
  at Microsoft.Build.Tasks.AssemblyInformation.GetAssemblyMetadata (System.String path, System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue] assemblyMetadataCache, Microsoft.Build.Shared.AssemblyNameExtension[]& dependencies, System.String[]& scatterFiles, System.Runtime.Versioning.FrameworkName& frameworkName) [0x00006] in <284d11f275764cafba668d0e682555f7>:0
  at (wrapper delegate-invoke) <Module>.invoke_void_string_ConcurrentDictionary`2<string, AssemblyMetadata>_AssemblyNameExtension[]&_string[]&_FrameworkName&(string,System.Collections.Concurrent.ConcurrentDictionary`2<string, Microsoft.Build.Tasks.AssemblyDependency.AssemblyMetadata>,Microsoft.Build.Shared.AssemblyNameExtension[]&,string[]&,System.Runtime.Versioning.FrameworkName&)
  at Microsoft.Build.Tasks.SystemState.GetAssemblyMetadata (System.String path, System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue] assemblyMetadataCache, Microsoft.Build.Shared.AssemblyNameExtension[]& dependencies, System.String[]& scatterFiles, System.Runtime.Versioning.FrameworkName& frameworkName) [0x00010] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.ReferenceTable.GetUnifiedAssemblyMetadata (Microsoft.Build.Tasks.Reference reference, System.Collections.Generic.IEnumerable`1[Microsoft.Build.Tasks.UnifiedAssemblyName]& unifiedDependencies, System.String[]& scatterFiles) [0x00023] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.ReferenceTable.FindDependenciesAndScatterFiles (Microsoft.Build.Tasks.Reference reference, System.Collections.Generic.List`1[T] newEntries) [0x0003a] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.ReferenceTable.FindAssociatedFiles () [0x000ea] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.ReferenceTable.ComputeClosure () [0x0000a] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.ReferenceTable.ComputeClosure (System.Collections.Generic.IEnumerable`1[T] remappedAssembliesValue, Microsoft.Build.Framework.ITaskItem[] referenceAssemblyFiles, Microsoft.Build.Framework.ITaskItem[] referenceAssemblyNames, System.Collections.Generic.List`1[T] exceptions) [0x00038] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.ResolveAssemblyReference.Execute (Microsoft.Build.Shared.FileExists fileExists, Microsoft.Build.Shared.DirectoryExists directoryExists, Microsoft.Build.Tasks.GetDirectories getDirectories, Microsoft.Build.Tasks.GetAssemblyName getAssemblyName, Microsoft.Build.Tasks.GetAssemblyMetadata getAssemblyMetadata, Microsoft.Build.Shared.GetRegistrySubKeyNames getRegistrySubKeyNames, Microsoft.Build.Shared.GetRegistrySubKeyDefaultValue getRegistrySubKeyDefaultValue, Microsoft.Build.Tasks.GetLastWriteTime getLastWriteTime, Microsoft.Build.Tasks.GetAssemblyRuntimeVersion getRuntimeVersion, Microsoft.Build.Shared.OpenBaseKey openBaseKey, Microsoft.Build.Tasks.GetAssemblyPathInGac getAssemblyPathInGac, Microsoft.Build.Tasks.IsWinMDFile isWinMDFile, Microsoft.Build.Tasks.ReadMachineTypeFromPEHeader readMachineTypeFromPEHeader) [0x00515] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.Tasks.ResolveAssemblyReference.Execute () [0x00000] in <284d11f275764cafba668d0e682555f7>:0
  at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <f7274894ce154696afba1f0ffcd06434>:0
  at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) [0x002fc] in <f7274894ce154696afba1f0ffcd06434>:0
[warn]: OmniSharp.MSBuild.ProjectManager
        Failed to load project file '/home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj'.
All projects loaded
/home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj
/home/david/.cache/omnisharp-vim/omnisharp-roslyn/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(2123,5): Error: The "ResolveAssemblyReference" task failed<EMAIL_ADDRESS>Could not find method '.ctor' due to a type load error: Could not set up parent class, due to: Could not set up parent class, due to:  assembly:/home/david/Unity/Hub/Editor/2020.2.2f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll type:Object member:(null) assembly:/home/david/Unity/Hub/Editor/2020.2.2f1/Editor/Data/NetStandard/ref/2.0.0/netstandard.dll type:Attribute member:(null) assembly:/home/david/unityProjects/SurvivalGame/SurvivalGame/Library/ScriptAssemblies/UnityEngine.TestRunner.dll type:TestRunCallbackAttribute member:(null)^@  at (wrapper managed-to-native) System.MonoCustomAttrs.GetCustomAttributesDataInternal(System.Reflection.ICustomAttributeProvider)^@  at System.MonoCustomAttrs.GetCustomAttributesDataBase (System.Reflection.ICustomAttributeProvider obj, System.Type attributeType, System.Boolean inheritedOnly) [0x00010] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 ^@  at System.MonoCustomAttrs.GetCustomAttributesData (System.Reflection.ICustomAttributeProvider obj, System.Boolean inherit) [0x00011] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 ^@  at System.Reflection.CustomAttributeData.GetCustomAttributes (System.Reflection.Assembly target) [0x00000] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 ^@  at System.Reflection.RuntimeAssembly.GetCustomAttributesData () [0x00000] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 ^@  at Microsoft.Build.Tasks.AssemblyInformation.GetFrameworkName () [0x00025] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.AssemblyInformation.get_FrameworkNameAttribute () [0x00028] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.AssemblyDependency.AssemblyMetadata..ctor (System.String path) [0x00019] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.AssemblyInformation+<>c.<GetAssemblyMetadata>b__21_0 (System.String p) [0x00000] in <284d11f275764cafba668d0e682555f7>:0 ^@  at System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) [0x00034] in <9f0df102fe6e4cfea29d2e46f585d8a5>:0 ^@  at Microsoft.Build.Tasks.AssemblyInformation.GetAssemblyMetadata (System.String path, System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue] assemblyMetadataCache, Microsoft.Build.Shared.AssemblyNameExtension[]& dependencies, System.String[]& scatterFiles, System.Runtime.Versioning.FrameworkName& frameworkName) [0x00006] in <284d11f275764cafba668d0e682555f7>:0 ^@  at (wrapper delegate-invoke) <Module>.invoke_void_string_ConcurrentDictionary`2<string, AssemblyMetadata>_AssemblyNameExtension[]&_string[]&_FrameworkName&(string,System.Collections.Concurrent.ConcurrentDictionary`2<string, Microsoft.Build.Tasks.AssemblyDependency.AssemblyMetadata>,Microsoft.Build.Shared.AssemblyNameExtension[]&,string[]&,System.Runtime.Versioning.FrameworkName&)^@  at Microsoft.Build.Tasks.SystemState.GetAssemblyMetadata (System.String path, System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue] assemblyMetadataCache, Microsoft.Build.Shared.AssemblyNameExtension[]& dependencies, System.String[]& scatterFiles, System.Runtime.Versioning.FrameworkName& frameworkName) [0x00010] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.ReferenceTable.GetUnifiedAssemblyMetadata (Microsoft.Build.Tasks.Reference reference, System.Collections.Generic.IEnumerable`1[Microsoft.Build.Tasks.UnifiedAssemblyName]& unifiedDependencies, System.String[]& scatterFiles) [0x00023] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.ReferenceTable.FindDependenciesAndScatterFiles (Microsoft.Build.Tasks.Reference reference, System.Collections.Generic.List`1[T] newEntries) [0x0003a] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.ReferenceTable.FindAssociatedFiles () [0x000ea] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.ReferenceTable.ComputeClosure () [0x0000a] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.ReferenceTable.ComputeClosure (System.Collections.Generic.IEnumerable`1[T] remappedAssembliesValue, Microsoft.Build.Framework.ITaskItem[] referenceAssemblyFiles, Microsoft.Build.Framework.ITaskItem[] referenceAssemblyNames, System.Collections.Generic.List`1[T] exceptions) [0x00038] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.ResolveAssemblyReference.Execute (Microsoft.Build.Shared.FileExists fileExists, Microsoft.Build.Shared.DirectoryExists directoryExists, Microsoft.Build.Tasks.GetDirectories getDirectories, Microsoft.Build.Tasks.GetAssemblyName getAssemblyName, Microsoft.Build.Tasks.GetAssemblyMetadata getAssemblyMetadata, Microsoft.Build.Shared.GetRegistrySubKeyNames getRegistrySubKeyNames, Microsoft.Build.Shared.GetRegistrySubKeyDefaultValue getRegistrySubKeyDefaultValue, Microsoft.Build.Tasks.GetLastWriteTime getLastWriteTime, Microsoft.Build.Tasks.GetAssemblyRuntimeVersion getRuntimeVersion, Microsoft.Build.Shared.OpenBaseKey openBaseKey, Microsoft.Build.Tasks.GetAssemblyPathInGac getAssemblyPathInGac, Microsoft.Build.Tasks.IsWinMDFile isWinMDFile, Microsoft.Build.Tasks.ReadMachineTypeFromPEHeader readMachineTypeFromPEHeader) [0x00515] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.Tasks.ResolveAssemblyReference.Execute () [0x00000] in <284d11f275764cafba668d0e682555f7>:0 ^@  at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute () [0x00029] in <f7274894ce154696afba1f0ffcd06434>:0 ^@  at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (Microsoft.Build.BackEnd.ITaskExecutionHost taskExecutionHost, Microsoft.Build.BackEnd.Logging.TaskLoggingContext taskLoggingContext, Microsoft.Build.BackEnd.TaskHost taskHost, Microsoft.Build.BackEnd.ItemBucket bucket, Microsoft.Build.BackEnd.TaskExecutionMode howToExecuteTask) [0x002fc] in <f7274894ce154696afba1f0ffcd06434>:0
[fail]: OmniSharp.MSBuild.ProjectManager
        Attempted to update project that is not loaded: /home/david/unityProjects/SurvivalGame/SurvivalGame/Assembly-CSharp.csproj
Workspace complete: 1 project(s)
Replaying on-load requests```

Hmm. Have you tried using the mono build of OmniSharp-roslyn, and setting OmniSharp-vim to start it in mono mode?
" init.vim
let g:OmniSharp_server_use_mono = 1

This will require you to reinstall the server, with :OmniSharpInstall.
See if that works, and if not, try overriding the MSBuild location in either a project-local omnisharp.json file, or a global ~/.omnisharp/omnisharp.json file (described here) like this:
{
   "MSBuild": {
      "MSBuildOverride": {
         "MSBuildPath": "/usr/lib/mono/msbuild/Current/bin/"
      }
   }
}

Beyond that, I'm not sure sorry. There have been various discussions on OmniSharp-roslyn issues indicating that Unity isn't exactly supported. I don't use it myself so can't offer any more than that.

Thank you for trying to help. I was unable to resolve the issue. But nonetheless I appreciate you trying to help.

Please do come back with results if you get things working, for the sake of future Unity users who might run up against the same things.
Did you try those 2 options in my previous comment?

I tried the two options you provided but I still got errors. For configuring the vimrc file I got the same error I opened the issue with. And I couldn't get the second option to work. If I set it to /lib/mono/msbuild/Current/bin/ I get a file not found error. And after looking around I found the file it was looking for was in a folder called xbuild. Then I got the following error.

Do you have community/mono-msbuild installed?

This OmniSharp-roslyn
thread
may be relevant too

I haven't tried mono-msbuild yet. I'll give it a shot when I have the time.

I have installed mono-msbuild. And have updated the omnisharp.json file. Now I am not getting the dll not found error. However when I run OmniSharpOpenLog I get the following errors.

which looks like the error I got initially.


tf.numpy_function throws error when encounter np.transpose

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): kinda
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): 16.04LTS Ubuntu
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): conda forge
TensorFlow version (use command below): 1.14.0
Python version: 2.6
Bazel version (if compiling from source): n/a
GCC/Compiler version (if compiling from source): n/a
CUDA/cuDNN version: 9
GPU model and memory: Quadrao 16GB

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
I am trying to move some of Keras's image transformation functions into my dataset constructor function, e.g.
# inside my function that makes a dataset
filenames = [...]

preprocess_fn = lambda p: preprocess_image(p, some, default, arguments)

# workaround as shown by @mrry in https://github.com/tensorflow/tensorflow/issues/12396
tf_preproc_fn = lambda p: tf.numpy_function(preprocess_fn, [p], tf.float32)

path_ds = tf.data.Dataset.from_tensor_slices(fullpaths)
imgs_ds = path_ds.map(tf_preproc_fn, num_parallel_calls=AUTOTUNE)

where  at somepoint in preprocess_fn np.rollaxis is called, which in turns calls np.transpose. this throws:

  File "/home/user/anaconda3/envs/tf/lib/python3.6/site-packages/numpy/core/numeric.py", line 1554, in rollaxis
    return a.transpose(axes)

AttributeError: 'tensorflow.python.framework.ops.EagerTensor' object has no attribute 'transpose'

	 [[{{node PyFunc}}]] [Op:IteratorGetNextSync]

Describe the expected behavior
That tf.numpy_function just "works". Already had to use tf.cast(tensor.shape[0], tf.float32) to prevent some errors.
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
# from keras
def apply_channel_shift(x:list, intensity:float, channel_axis:int=0)->list:
    '''
    Performs a channel shift.

    Arguments
        x (np.ndarray): Input tensor. Must be 3D.
        intensity (float): Transformation intensity.
        channel_axis (int): Index of axis for channels in the input tensor.

    Returns
        Numpy image tensor.
    '''
    x = np.rollaxis(x, channel_axis, 0)
    min_x, max_x = np.min(x), np.max(x)
    channel_images = [
        np.clip(x_channel + intensity,
                min_x,
                max_x)
        for x_channel in x]
    x = np.stack(channel_images, axis=0)
    x = np.rollaxis(x, 0, channel_axis + 1)
    return x

_fn = lambda img_tnsr : apply_channel_shift(img_tnsr, 1, 3)
tf_fn = tf.numpy_function(lambda i: _fn(i), [i], [tf.float32])

path_ds.map(tf_fn)

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.

@SumNeuron
In order to expedite the trouble-shooting process, please provide full code snippet to reproduce it on our environment.Thanks

@ravikyram ask and you shall receive, link to colab where you can recreate the error:
https://colab.research.google.com/drive/1TDYeqKE16jcAdnAAeFT4KYyESisizibq

I have tried on colab with TF version 1.14 ,TF-nightly and 2.0.0.dev20190731 was able to reproduce the issue. Please, find the gist here.Thanks!

Is there any update/solution on this?

@SumNeuron Sorry for missing this issue. I ran it with TF1.15.3 and I cannot reproduce the issue. I think it was resolved in recently updated TF1.15.3. PTAL at this gist. Thanks!
Please verify once and close the issue if this was resolved for you. Thanks!


Yatin: Watch philmickelsoncbdoilbuy.tumblr.com

Yatin requests the watch of the watch_keyword philmickelsoncbdoilbuy\.tumblr\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

philmickelsoncbdoilbuy\.tumblr\.com has been seen in 2 true positives, 0 false positives, and 0 NAAs.

Approved by Spevacus in Charcoal HQ


Doesn't seem to find an icon for /.

Great extension, really loving the experience so far. Unfortunately, it's not finding an icon for slashdot, which was surprising.
Edit Add http://getvideostream.com/ to the list.

Thanks for reporting this. The problem was that NNTP was only looking for icons referred to in link elements in the head of the document. Slashdot had theirs in the body, and GetVideoStream didn't have one at all and relied on favicon.ico. I made NNTP handle both of these cases correctly with commit bb6148f.
😄

By the way, thank you for the kind words. I'm glad that people are enjoying my work 😄


build for other ABIs

Hi, I cannot get to build the PCL for android for an ABI different than armeabi-v7a.
I have tried to change the first line in the pcl-build-for-android.sh script to needed ABI, but no luck.. Any help?

Hi @vprodanovic I have updated the cross-compilation scripts to support arm64-v8a, using ndk-r20. Please keep in mind that the cross-compilation even on 16GB RAM and 8 Cores needs around 20 min. Thanks to pcl ;)

close issue because of inactivity


Removes enthusiastic request id clearing.

On receipt of Faulted or Timeout request events it will no longer clear the request id from the state instance so that a subsequent Completed request event is still accepted after failure or timeout.
As discussed on Discord: https://discord.com/channels/682238261753675864/682238261753675868/802175993912492082

Thanks, will be merged when my branch is merged.

Thanks, will be merged when my branch is merged.


[GHSA-mjmj-j48q-9wg2] SnakeYaml Constructor Deserialization Remote Code Execution

Updates

Affected products
Description
References
Source code location

Comments
I have been doing extensive research on this particular vulnerability over the past 3 days and have attempted to condense some of that knowledge into this form here.

Hi there @rcorrea35! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository.
This change will be reviewed by our highly-trained Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory


[Decorator] Static

If we want to add some static resources we have to:
this.getExpressApp()
            .use(Express.static('./app'))
            .get('*', (req, res) => {
                res.sendFile(__dirname + '/app/index.html')
            })

It would be nice to add static resources from decorators. This decorator could be added to server.
Example:
@Static({
  '/': './app',
  '/css', './css-files'
})
export Server extends ServerLoader {
......
}

The module serve-static can do that. No ?
class ServerLoader {
     $onMountingMiddlewares(){
           const serveStatic =   require('serve-static');
           this.getExpressApp()
                 .use(serveStatic('app'))
                 .use('css', serveStatic('css-files'));
     }
}

Yes it can do it and it will do it. The proposal is only syntactic sugar. If one have to implement this he have to be careful with __directory because the path should be absolute, to use Path.resolve and so on. This would be very intuitive; you only have to add the route and the directory. May be even extended to nested static routes:
@Static({
  '/css': {
    'old': './old-css-files',
    'new': './new-css-files'
  },
  'public': './public'
})

Usually syntactic sugar shrinks the room for errors. ;)

Ok Alex :) you can propose your implementation of this decorator !

Sure you can assign it to me! I will do it at the end of the week. I always wanted to extract express utils in a library like this but somehow managed not to do it. Your project is exactly the right thing I needed for migrating an older project in the brave new world of typescript.

You are assigned to this task :D

Cool thanks. You can assign #13 to me too.

Implemented with the new decorator
@ServerSettings({
   serveStatic: {
      "\": "webapp"
   }
})
class Server extends ServerLoader {}


Smyths

Please add Smyths
also their in stock button is usually Pre-Order and not Add to Basket

Thank you for your request but please post this in Discussion. Issues is for bug reports.


⚠ Bofrost.be has degraded performance

In 3c74dcc, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1138 ms

Resolved: Bofrost.be performance has improved in 69ee9a4 after 6 minutes.


How on earth do I use this???

Downloaded all the files, but not sure what to do???
Is there a .exe file?

MercuryTrade
Download and Install Java: https://java.com/download
Download MercuryTrade.jar: Latest release
ALTERNATIVE LAUNCHER: MercuryTrade.RAR: Latest release. Unpack and run the attached .exe as administrator! Try this launcher when something is not working.
I have a problem: Troubleshooting
Feedback and suggestions: Github Discord

when you installed java just double click on MercuryTrade.jar

Ty


Add robdom to the list of people from PR Practice

First-Time Open Source Contributor Workshop [Ruby-Focused]


Compilation error in the eclipse with Java 11 (package exists in another module: java.base)

If a project depends on domino-jackson-super and try to use any class from java.util package the eclipse shows the error - Class cannot be resolved to a type
It is happening because the project has the same package java.util as JVM java.base module

I will test this with both GWT and j2cl as soon as possible. thank you for the fix.

Do you have any estimates of the release date?

I will try to finish it this weekend.


Create dinosaur-game

Fixes #156
Created a chrome dinosaur game using HTML, CSS, JS.
Hope this solves the problem.
Looking forward for mering this PR.
This are the images used in the below code.

#156 Dinosaur Game
Title :Dinosaur Game
Issue No. :#156
Code Stack : HTML, CSS, JS
Close #<156>
Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md
[X] I have updated the Index.html file for my contribution

@DevanshKyada27 please read the contributing.md and refer to other challenges


gas savings by not initializing staking pal in staking

can save about 20k gas at pool initialization if operator is staking pal by:

not storing staking pal address
returning operator if staking pal uninitialized

However, this increases the complexity of the code and must check if worth it.

Be careful when returning struct, as must overwrite stakingPal with pool operator if null


GapChart paper

Title:
Using Gap Charts to Visualize the Temporal Evolution of Ranks and Scores
Thumbnail:

PDF:
http://charles.perin.free.fr/data/pub/gapchart.pdf
Abstract:
We present Gap Charts, a novel class of line charts designed for visualizing the evolution of rankings over time, with a particular focus on sports data. Gap Charts show entries, e. g., teams participating in a competition, that are ranked over time according to a performance metric like a growing number of points or a score. The main advantages of Gap Charts are that 1) tied entries never overlap—only changes in rank generate limited overlap between time-steps; and 2) gaps between entries show the magnitude of their score difference. We evaluate the effectiveness of Gap Charts for performing different types of tasks, and find that they outperform standard time-dependent ranking visualizations for tasks that involve identifying and understanding evolutions in both ranks and scores. Finally, we show that Gap Charts are a generic and scalable class of line charts by applying them to a variety of different datasets.

Is that the same as "GapChart: a Gap Strategy to Visualize the Temporal Evolution of both Ranks and Scores"?

Oh, interesting... Thanks for checking that, actually there is a mistake in the program. The paper should be called "Using Gap Charts to Visualize the Temporal Evolution of Ranks and Scores". That is also the title in the CG&A special issue, and the title on ieeexplore. I will contact them to fix that.

Made an issue, so I can track it - https://github.com/ieee-vgtc/ieeevis.org/issues/245
Is "Using..." the title you want to use?

Now consistent with IEEE


Proposals for global installation

Hello, @dohliam !
Appreciate your great work! :rose: I want to submit this program in Arch User Repository so that Arch Linux users could install it easily with package manager. I've already written the install script, and have some proposals for global installation. The install script can be found in https://build.opensuse.org/package/show/home:firef0x/gdcl .
First, would you please shorten the name of the executable? It is lookup.rb and group.rb now, slightly long. sdcv just names its executable 4 letter long and so does ydcv. I suggest to change the name of lookup.rb to gdcl, and group.rb to gdcg.
Second, there are a number of configuration options at the beginning of the scripts now. If the scripts are installed into /usr/bin, the options would be overwritten after an upgrade by package manager. I think it's better to separate the options from the scripts and group them into a conf file in /etc or ~. The file in /etc or ~ wouldn't be overwritten after an upgrade by package manager. Since most of the program in Linux works in that way, I think it worth a shot.
Do you agree with me? :sweat_smile: Hope for your reply!
Yours sincerely! :bow:

Hi Firef0x, thanks for your interest in gdcl and adding it to Arch User Repository! :smile: I think it's a great idea and agree that the executable name would be better shortened.
(I had originally thought about calling it gdcv, but then decided that it would be better to leave that name in case the Goldendict folks decide to make an official version. :smiley: ) But gdcl is fine.
I totally agree that the config options should be separated out into their own file. I had been thinking about using a yaml file for this (in the same directory as the executable), but if it's going to be installable/upgradable of course we want to avoid it being overwritten every time there is an upgrade, so either something in home or /etc makes sense.
To avoid cluttering up the user's home directory, something like ~/.config/gdcl might work (that seems to be the standard place for new programs these days). What do you think?

Keeping this issue open until proper config files are set up

Hello, @dohliam !
Glad to see that the executables is renamed, I've updated the install script accordingly. However, I decided to install gdcl.rb as gdcl and gdcg.rb as gdcg like what ydcv does, for users don't need to know which language the executable is written in. (But the developers do need)
It's a good practice to obey the XDG Base Directory Specification, putting the YAML file in a subdirectory of  $XDG_CONFIG_HOME. (i.e ~/.config/ in most case) So I totally agree with you! (〃ω〃)
Yours sincerely!

Fixed as of 79a9853

Hello, @dohliam !
Many thanks! However, it's not appropriate to install something in user's home directory by package manager. Since package manager serves as a global manager, not just for a specific user. It's a better way to install the config file into /etc or just do nothing.
I propose that gdcl should support reading config.yml from $XDG_CONFIG_DIRS (i.e. /etc/xdg) or somewhere in the /etc, so that package manager could install the default config.yml into /etc for all users and no error message shows in their first use. Note that most package manager could handle the changes of config files in an upgrade.
Do you agree with me? Hope for your reply!
Yours sincerely! :bow:

Hi Firef0x, thanks for the feedback. If I'm understanding you correctly, we could have the script read the config.yml file first from ~/.config/gdcl if it exists, and if it doesn't exist, it can then look in /etc/xdg/gdcl for a default config file. If that file doesn't exist either, it can then check in the same directory as the executable (for those who are not installing through a package manager, but just downloading the source files directly).
So the priority for config.yml would be:

~/.config/gdcl/
/etc/xdg/gdcl/
./

Would that work for you? Let me know and I'll make the changes ASAP.

Hello, @dohliam !
Yes, exactly! The priority is correct and this is the way most of the programs in Linux work in.
However, I have a question. Do I have to include all options in config.yml to keep the program working? For example, if I have installed /etc/xdg/gdcl/config.yml through the package manager, and a user just want to change the value of :default_group: "" to his preference. Does he need to copy the whole file config.yml to directory ~/.config/gdcl/ and make the change? Or he just need to create an empty file config.yml in ~/.config/gdcl/ and add the following line:
:default_group: "en"

Hope for your reply!
Yours sincerely!

8f77596 should resolve this issue. When run for the first time, the script looks for config.yml in the user home, $XDG_CONFIG_DIRS, and the script executable folder itself (in that order). If it can't find the file in ~/.config/gdcl, then it creates that directory and a copy of the default config.yml file so that the user can edit it themselves. This should answer your last question -- just run the script once and then edit the file in user home. This way, users can see examples of configuration options as well as explanations of what they are for.

If you have a copy of config.yml in your xdg config directory or somewhere else (e.g., if you installed gdcl through a package manager), you should avoid editing that file as it will be overwritten when upgrading the package.

I think you misunderstand me. Package manager would not overwrite /etc/xdg/gdcl/config.yml in an upgrade, if user has changed something in /etc/xdg/gdcl/config.yml, it would ask user to merge their change into the new config file (in the upgrade package). It's very safe.

Sorry about that! I've corrected this now -- let me know if it's ok.

I think it's OK. :ok_hand: I'll tell you if I have further question. :smiley:
BTW, I have updated the Arch Linux package accordingly. Would you mind me adding a section like Installation from Distro Packages in README.md ?

Great, thanks! :+1: Sure, go ahead -- you're welcome to make any changes you see fit :smile: Your contribution is much appreciated!

@Firef0x It seems the AUR package no longer exists or has been removed. The Arch package is also not available in this repo. Could you take a look and update the link if possible?


Obsidian version Macos - locked image undo visual glitch

I Made a little video to illustrate the glitch. Briefly : when I press CMD+Z and the cursor is hovering onto a locked image, a replica of the image shows temporarily on overlay.
Macos, latest version.
https://youtu.be/tszv7XZNXx0

Thanks for raising. The replica image showing is the hover preview which is triggered by the CMD button. As such this is by design.
I've added a feature request to the Obsidian plugin's github for disabling hover preview for locked elements: https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/1060
I am going to close this issue. Let's continue the conversation on the other issue I just created.


ImGui: Added support DRAW_COMMAND_CAP_FLAG_BASE_VERTEX

Merged in https://github.com/DiligentGraphics/DiligentTools/commit/846ffbe83ac5ae0c96135f5a772d0077d0d086a8


Teams Channel 'RequestEntityTooLarge'

At the Moment i'm creating a Bot with adaptive Card response.
With Bot Emulator and Text Chat the Card is working fine. But when testing on MS Teams, the following error occurs:
Exception: Microsoft.Bot.Schema.ErrorResponseException: Operation returned an invalid status code 'RequestEntityTooLarge' at Microsoft.Bot.Connector.Conversations.d__9.MoveNext() --- End of stack

@igusDroth can you provide JSON payload that you are using ?

@igusDroth can you provide JSON payload that you are using ?

Hello Mr. Singh,
here is our DEV json File.
Orderbot.zip

@igusDroth The JSON size exceeds the maximum limit on the message size . You can use a smaller card to solve this problem

@igusDroth The JSON size exceeds the maximum limit on the message size . You can use a smaller card to solve this problem

@rednivrug15 How large is the maximum message limit? Is it possible to increase the limits?


Update Web dependencies

[ ] The version of react-relay (^0.0.0-experimental-a1a40b68) is deprecated and causing errors to run the Web package.

[ ] There are 2 versions of relay-runtime installed, one as dev dependecy at 5.0.0 an one as a normal dependency at 7.1.0

To successfully run the package I had to remove relay-runtime from the dev dependencies and update:

relay-runtime

relay compiler

babel-plugin-relay

graphql

relay-compiler-language-typescript

react

react-dom

react-relay

After all the updates I had to use unstable_createRoot at ReactDOM.createRoot(root).render(<App />);
Another problem that I faced is that after all the updates there were 2 versions of React being used on the package, one from the App and one from the Web. To solve that I add a alias to react in webpack.config.js:
resolve: {     alias: {       react: resolve('./node_modules/react')     }   },
I'll be happy to make a PR on this issue, let me know if there are a better solution for some of my approaches or if I should proceed with the PR.

I'm up to simplify this a bit
Let's update based on https://github.com/sibelius/relay-workshop
You can update all dependencies
let's remove app and app-expo, let's focus on web it is simpler
we can also remove restria, no need for REST right now

I've deleted app, app-expo and restria, and updated all dependencies.
If anyone ever needs it, the repo is here entria-web.
Don't know if this should be a PR, and if yes how it would be merged (as I deleted some packages).
Anyway, the web and the server are working now, thanks for your help and for the Playground.

You can send a Pr and we can review and merge it

The focus on web is valid for anyone doing the challenge?

We can also update the challenge to focus on web
Web or react native won't change
The more important parts are the concepts


Protocol messages are limited to 64MB in python

The classify_image.py example isn't working because inception v3 is larger than 64MB
[libprotobuf ERROR google/protobuf/src/google/protobuf/io/coded_stream.cc:207] A protocol message was rejected because it was too big (more than 67108864 bytes).  To increase the limit (or to disable these warnings), see CodedInputStream::SetTotalBytesLimit() in google/protobuf/io/coded_stream.h.

Duplicate of https://github.com/tensorflow/tensorflow/issues/582


Known limitations when reading a .mat files

Here the types that matio does not seem to support when reading a mat file:

timeseries
arrays of strings
strings in a struct

Moved this list to the README.


[CORE]The shuffle dependency specifies aggregation ,and dependency.mapSideCombine=false,it seems that serialized sorting can be used

What changes were proposed in this pull request?
The shuffle dependency specifies aggregation ,and dependency.mapSideCombine=false,it seems that serialized sorting can be used.
How was this patch tested?
Existing unit test

Test build #87308 has started for PR 20576 at commit ef6d3f1.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/792/
Test PASSed.

Test build #87308 has finished for PR 20576 at commit ef6d3f1.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87308/
Test PASSed.

Merged build finished. Test PASSed.

@cloud-fan  @JoshRosen Could you help review it ? thanks

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1172/
Test PASSed.

Test build #87808 has started for PR 20576 at commit e409c4f.

Test build #87808 has finished for PR 20576 at commit e409c4f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/87808/
Test PASSed.

thanks, merging to master!


Create existing-eks.md

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description
Adding a page to guide users through setting up cluster orchestrator to an existing EKS cluster.

Please describe your changes: __________________________________
Jira/GitHub Issue numbers (if any): ______________________________
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66c63ec6561c4764d9b2c504--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66ccaf2264f43f37059fbff4--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66ccc9690ba1ab5c00d454e9--harness-developer.netlify.app


fix: skip all migrations on pg14

What kind of change does this PR introduce?
Bug fix #919
What is the current behavior?
Please link any relevant issues here.
What is the new behavior?
Feel free to include screenshots if it includes visual changes.
Additional context
Add any other context or screenshots.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

9 of 9 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 62.718%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
3807

Relevant Lines:
6070

💛  - Coveralls