Notify content changes

Add variables to existing templates:

crn for all templates
startDate/endDate for Booking Made template

Add redundant CAS1-only checks around sending emails because copy is AP specific.
Most of these are at call-sites that can only currently be hit for AP Applications but this will add another layer of protection against future changes to allow CAS2/3 to use these inadvertedly sending AP-specific emails to CAS2/3 users.
Enable Notify in dev
Using the TEST_AND_GUEST_LIST will send real emails to people on the Notify Guest List (and in the notify_guest_list_users table our side) otherwise it will not send.

@pezholio added some changes to the Booking Made event so requested another look


Migrate to Zcash crate revision with PCZT format change

Holding off merging this until we are able to coordinate the PCZT format change across both mobile SDKs and the Keystone firmware.


ssd-10 model returns tensors with -1 elements

Description
After calling run_main_graph() on the ssd-10 model, the expected number of tensors (3) are returned in the output TensorList. However iterating over the returned tensors and calling omTensorGetNumElems() returns -1 for each instead of the expected values (800, 200, and 200 respectively).
Notes:

I don't see this behavior when I try on the mnist-8 model
We build onnx-mlir as a Release build with NNPA accelerator enabled

@cjvolzka Can you provide us with a link to the code needed to reproduce the issue, thanks

I lost track of this over time. I don't have a C++ client I can easily share that shows the omTensorGetNumElems() returning -1. I whipped up a quick Python client that fails for what I'm assuming is the same root cause based on the error.
import json
import os
import numpy
import sys
from PyRuntime import ExecutionSession

model_lib = sys.argv[1]
if not os.path.exists(model_lib):
    raise FileNotFoundError('model lib "' + model_lib + '" was not found.')
session = ExecutionSession(model_lib)
print("input signature: " + session.input_signature())

input_dims = json.loads(session.input_signature())[0]["dims"]
numpy.random.seed(2)
input_data = numpy.random.rand(*input_dims).astype('float32')
outputs = session.run(input_data)
print(outputs)

It can be run with python 3.8 using
input signature: [    { "type" : "f32" , "dims" : [1 , 3 , 1200 , 1200] , "name" : "image" }

]
Traceback (most recent call last):
  File "sig_client.py", line 16, in <module>
    outputs = session.run(input_data)
ValueError: negative dimensions are not allowed

You are missing a step. Look at our example https://github.com/onnx/onnx-mlir/blob/main/docs/mnist_example/mnist.py explained here https://github.com/onnx/onnx-mlir/blob/main/docs/mnist_example/README.md#write-a-python-driver-code
Maybe we could add a warning code if we are not passed a list of tensor. Same for the output, its a list of tensors.
you need this outputs = session.run([input])

I am thinking that we could add in the executionSession in C++ and in Python a "verify input" entry point.
The function would give the input tensor list, and the code would validate it with the json signature. The good part of this is that the user could call this the first time, or when it aborts on an exception (note that python does not support exceptions yet, though the C++ does. I should add exceptions from the compiler and the execution session of onnx-mlir into the python module).
That approach is lacking support for the bare metal C interface. Though we could also compile the check into the entry point itself, it would have the drawback to add overhead each time an inference is invoked... which I don't like too much.
What do you think @tungld

@cjvolzka Please try to add the one liner fix in #1482 to see if you get a more meaningful error message in your "wrong" code. We could keep it if we correctly assume that no model has zero inputs... I can make a better assert by checking that when zero inputs are given, that the signature indeed indicate that there are none if you feel that this is needed.

you need this outputs = session.run([input])

I'll update my client, but it currently doesn't seem to matter when the input takes a single tensor. It's not uncommon in python, if a method expects a list and you give it only an element, for the method itself to just wrap it in a list for you. I don't know if that's whats happening here, but I can use the original client to run the mnist-8.onnx and it didn't blow up.
Regardless I updated the client to do outputs = session.run([input]) and I get the same error:
    output_tensors = session.run([input_data])
ValueError: negative dimensions are not allowed

I verified with our Mnist example that either the `[input]' or 'input' works, as python automatically transforms the scalar into a vector of one element. I think we should encourage our users to use the brakes so that when there are multiple inputs, it is already there.
And with the new code, [] result in an error, but that should be a rare case. Nevertheless, I believe we should consider a input shape verifier, looking for @tungld 's input (or any other folks that are interested in this) on this one.

Could you printf also session.input_signature())[0]["dims"]

I'll probably continuously tweak this client for reporting issues. I actually used a newer version of it in a different issue just a little while ago. The current iteration now already prints that as input_dims.
input signature:  [{'type': 'f32', 'dims': [1, 3, 1200, 1200], 'name': 'image'}]
output signature: [{'type': 'f32', 'dims': [1, -1, 4], 'name': 'bboxes'}, {'type': 'i64', 'dims': [1, -1], 'name': 'labels'}, {'type': 'f32', 'dims': [1, -1], 'name': 'scores'}]
using input_dims: [1, 3, 1200, 1200]
Traceback (most recent call last):
  File "/code/build/cjv-models/simple_client.py", line 25, in <module>
    output_tensors = session.run([input_data])
ValueError: negative dimensions are not allowed

That approach is lacking support for the bare metal C interface. Though we could also compile the check into the entry point itself, it would have the drawback to add overhead each time an inference is invoked... which I don't like too much.
What do you think @tungld

I have a PR #1472 to verify the input tensors wherein a bare metal C function is introduced. So we can have two options:

Provide C++ and Java wrapper for the C function so that users will call them whenever they want.
Call the C function directly inside the entry point and the verification will be called everytime the entry point is called.

I am using Option 2 in #1472, but it seems its not Alex's preference :). I could disable this verification call if we choose Option 1.

I would suggest a 1+2 => 3rd option, have the verification function in case the user wants to call it him/herself for whatever purpose, and our entry points should always call the verification function to make sure the inputs are correctly shaped.

About this issue ValueError: negative dimensions are not allowed, it did not seem to be related to inputs passing to the model. It seemed the model ran for a while and failed. ValueError is like that a MLIR value for some operation was invalid.
Traceback (most recent call last):
  File "sig_client.py", line 16, in <module>
    outputs = session.run(input_data)
ValueError: negative dimensions are not allowed

I narrowed down this issue. This model ran successfully until we extract shape information from the returned OMTensors. The returned OMTensors had wrong shape, so omTensorGetShape returned negative values and pybind11 failed to construct a python array. omTensorGetNumElems() would return a negative value too. I seemed there was an error in transmitting dimension sizes from MemRef to OMTensor.
The output signature of this model is:
output signature: [{'type': 'f32', 'dims': [1, -1, 4], 'name': 'bboxes'}, {'type': 'i64', 'dims': [1, -1], 'name': 'labels'}, {'type': 'f32', 'dims': [1, -1], 'name': 'scores'}]

Let's take the first returned tensor as an example, that is [1, -1, 4]. Though its second dimension is unknown at compile time, the dimension must be known at runtime. But, for this model, somehow, the shape of the first returned OMTensor is still [1, -1, 4].
It's still a mystery to me why this happened. I tested a simple addition whose output shape is unknown at compile time, but we could still get correct shape at runtime.
module attributes {llvm.data_layout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-a:8:16-n32:64", llvm.target_triple = "s390x-ibm-linux"} {
  func @main_graph(%arg0: tensor<?x4x5xf32>, %arg1: tensor<?x4x5xf32>) -> tensor<?x4x5xf32> attributes {input_names = ["x", "y"], output_names = ["sum"]} {    %0 = "onnx.Add"(%arg0, %arg1) : (tensor<?x4x5xf32>, tensor<?x4x5xf32>) -> tensor<?x4x5xf32>
    return %0 : tensor<?x4x5xf32>
  }
  "onnx.EntryPoint"() {func = @main_graph} : () -> ()
}

This is a simple C program to test this model.
#include "OnnxMlirRuntime.h"
#include <iostream>

extern "C" OMTensorList *run_main_graph(OMTensorList *);
extern "C" OMTensor *omTensorCreateWithOwnership(
    void *, int64_t *, int64_t, OM_DATA_TYPE, int64_t);
extern "C" OMTensorList *omTensorListCreateWithOwnership(
    OMTensor **, int64_t, int64_t);
extern "C" void omTensorListDestroy(OMTensorList *list);
extern "C" OMTensor *omTensorListGetOmtByIndex(OMTensorList *, int64_t);

int main(int argc, char **argv) {
  // Init inputs.
  int64_t shape[4] = {1, 3, 1200, 1200};
  int64_t rank = 4;
  int64_t size = 1;
  for (int64_t i = 0; i < rank; ++i)
    size *= shape[i];
  float *data = (float *)malloc(size * sizeof(float));
  for (int64_t i = 0; i < size; ++i)
    data[i] = 1.0;
  OMTensor *tensor =
      omTensorCreateWithOwnership(data, shape, rank, ONNX_TYPE_FLOAT, true);

  int64_t inputNum = 1;
  OMTensor **inputTensors = (OMTensor **)malloc(inputNum * sizeof(OMTensor *));
  inputTensors[0] = tensor;
  OMTensorList *tensorListIn =
      omTensorListCreateWithOwnership(inputTensors, inputNum, true);

  // Call the compiled onnx model function.
  std::cout << "Start computing " << std::endl;
  OMTensorList *tensorListOut = nullptr;
  tensorListOut = run_main_graph(tensorListIn);
  std::cout << "Finish computing " << std::endl;

  OMTensor *out = omTensorListGetOmtByIndex(tensorListOut, 0);
  int64_t outRank = omTensorGetRank(out);
  int64_t *outShape = omTensorGetShape(out);
  std::cout << "First tensor's shape: " << std::endl;
  for (int64_t i = 0; i < outRank; ++i)
    std::cout << "Dim " << i << ": " << outShape[i] << std::endl;

  // Cleanup.
  omTensorListDestroy(tensorListOut);
  omTensorListDestroy(tensorListIn);
  return 0;
}

It finished without error but the returned OMTensor's shape was wrong:
$ g++ test-ssd.cpp ssd-10.so -I/home/tungld/dl/onnx-mlir/include -lcruntime -L/home/tungld/dl/onnx-mlir/build/Debug
/lib
$ ./a.out
Start computing
Finish computing
First tensor's shape:
Dim 0: 1
Dim 1: -1
Dim 2: 4

I found the root cause for this issue. It happened with ReduceMin. ReduceMin needs an identity value that is positive infinity, however our MathBuilder::posititiveInf returns a wrong value for i32. std::numeric_limits<uint32_t>::max() was used which was beyond the range of i32, then MLIR Value became -1.
PR #1486 has fixed this issue and I can run ssd-10:
$ ONNX_MLIR_HOME=/home/tungld/dl/onnx-mlir/build/Debug python ../utils/RunONNXModel.py ssd-10.onnx --compile-args="-O3 -mcpu=z14" --data-folder=/home/tungld/dl/models/test_data_set_0 --verify=ref
Temporary directory has been created at /tmp/tmpuj204oyc
Reading inputs from /home/tungld/dl/models/test_data_set_0 ...
  - 1st input: [1x3x1200x1200xfloat32]
  done.

Compiling the model ...
  took  40.12681828532368  seconds.

Loading the compiled model ...
  took  0.0003934027627110481  seconds.

Running inference ...
  took<PHONE_NUMBER>888712  seconds.

Reading reference outputs from /home/tungld/dl/models/test_data_set_0 ...
  - 1st output: [1x200x4xfloat32]
  - 2nd output: [1x200xint64]
  - 3rd output: [1x200xfloat32]
  done.

Verifying value of bboxes:[1, 200, 4] using atol=0.01, rtol=0.05 ...
  correct.

Verifying value of labels:[1, 200] using atol=0.01, rtol=0.05 ...
  correct.

Verifying value of scores:[1, 200] using atol=0.01, rtol=0.05 ...
  correct.


notifyError is really slow

This is the code I'm using:
	let isMainThead = Thread.isMainThread
	let error = NSError(domain: "co.recharge", code: 1)
	Bugsnag.notifyError(error, block: { report in
		report.errorMessage = message
		report.depth += 2 // Don't group by LogNonFatal always being at the top of the stack.
		report.addAttribute("isMainThread", withValue: isMainThead, toTabWithName: "extra")
	})

On average, 494ms on an iPhone SE.  I'd stick it in an Async block but then the stacktrace wouldn't be correct :/

Thanks for the report @edenman. It looks as though the KSCrash library which we use within the SDK is taking a while to record all the thread traces. I'll see if we can find an iPhone SE in the office to reproduce the issue more closely.

Any update on this, @fractalwrench?  I'm happy to drop by the Bugsnag offices if you need to borrow my SE to test :)

@edenman I've profiled sending a non-fatal exception on an iPad Mini 2 running iOS 10.3.2 (Instruments trace attached).
The bottleneck is definitely in KSCrash - it takes around 600ms to write a report, of which around 1/3 was spent in writing thread information (kscrw_i_writeAllThreads), and the rest of which was spent serializing binary images (kscrw_i_writeBinaryImages). We're also currently using kscrashreport_writeStandardReport to record non-fatal crashes, when kscrashreport_writeMinimalReport and kscrashreport_logCrash exist, which presumably are faster at the expense of recording less information.
I'll investigate how we can speed up these two methods, or whether we can avoid them entirely. This could potentially result in a trade-off of having less information for non-fatal crashes, which we'll have to weigh up.
I'm in Bugsnag's UK office, so it may take you a while to drop by with your iPhone :)
non_fatal_exception_trace_ipad.trace.zip

😂

I'd be totally happy with non-fatal exceptions only grabbing the current thread's stacktrace.  Not sure this is true of everyone, but it's true for my app at least.
This library is on a pretty old version of KSCrash. I saw in some other tickets that upgrading was blocked at some point...is that still the case?  Newer versions may be faster at capturing other threads.

Unfortunately we've seen some pretty big reliability issues with the newer versions of KSCrash. We are looking into how to mitigate or fix those, but some of them are relatively complex. We reverted to an older known stable version while we do that process.

@snmaynard makes sense, I saw tons of reliability issues with KSCrash when I was using Sentry (links here).
I'd vote for a flag or a separate method that only captures the current stacktrace (if possible).

Any movement on this?  Is such a "only capture this thread's stack" flag/method possible, or are we stuck waiting for newer versions of KSCrash to stabilize?

I think the winning solution in the shorter term is probably to experiment with using kscrashreport_writeMinimalReport as @fractalwrench mentioned. Beyond that, I think we need to retool how we are capturing crash data altogether, which has been a bit more daunting.

👍 I don't actually see any calls to kscrashreport_writeStandardReport or I'd just submit a PR myself...wanna point me in the right direction?  Or would you guys prefer to make the change yourselves?

Using kscrashreport_writeMinimalReport brought the execution time down to ~128ms on an iPad Mini 2 (10.3.2). However, there are some obstacles to this approach.
Firstly, I can't see any obvious API in KSCrash to write only minimal reports, without altering its source code directly. Secondly, the minimal report doesn't appear to be written to disk by default, meaning it isn't returned in the completion block by KSCrash and is therefore not sent to the Bugsnag API. And finally, it would be nice to reduce that execution time further, preferably below 15ms.
@edenman

sgtm, thanks for moving this forward!

After debugging this further, the bottleneck appears to be within KSCrash in kscrw_i_addJSONData, which always calls ksfu_writeBytesToFD. It looks as though every time a JSON field/element is added to the crash report payload, KSCrash makes a write syscall.
I think the approach we'll here is to allocate a buffer of a few Kb as soon as Bugsnag initialises, as this will allow us to reduce the number of syscalls. This will hopefully get the performance for non-fatal errors to an acceptable level.
notify_err_trace.trace.zip

I benchmarked this again on an iPhone 7, using a development build that forked KSCrash, allowing us to buffer IO using fwrite. Notification of non-fatal errors took 44ms, compared to 200ms on the currently deployed version.
We might be able to squeeze a bit more performance out of kscrw_i_writeAllThreads, as that's now taking up around half the CPU time Another option would be to allow users to configure whether only the current thread's trace should be captured, as that would effectively halve 44ms to around 22ms.


[BUG] Compile fails f @SuperBuilder(toBuilder = true) with @Singular on a Map

Describe the bug
Compile fails when using a combination of @SuperBuilder(toBuilder = true) with @Singular on a Map field with error message 'no instance(s) of type variable(s) T exist so that java.util.List conforms to java.util.Map'
To Reproduce
Java source code:
import java.util.Map;

import lombok.Getter;
import lombok.Singular;
import lombok.experimental.SuperBuilder;

@SuperBuilder(toBuilder = true)
@Getter
public class SuperToBuilder {

    @Singular("addToMap")
    private final Map<String, String> itemMap;
}

Compile output:
$ javac -cp lombok-1.18.6.jar src/SuperToBuilder.java
src\SuperToBuilder.java:7: error: incompatible types: bad type in conditional expression
@SuperBuilder(toBuilder = true)
^
    no instance(s) of type variable(s) T exist so that List<T> conforms to Map<? extends String,? extends String>
  where T is a type-variable:
    T extends Object declared in method <T>emptyList()
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error

--

Delombok shows the bug may be a simple
SuperToBuilderDelombok.java.gz
mismatch of logic for handling empty collections.  A zip of the full delombok code has been attached to this issue.
        private static void $fillValuesFromInstanceIntoBuilder(final SuperToBuilderDelombok instance, final SuperToBuilderBuilder<?, ?> b) {
            b.itemMap(instance.itemMap == null ? java.util.Collections.emptyList() : instance.itemMap);
        }

Appearantly, java.util.Collections.emptyMap() should be selected in the case of a null Map.
This issue only occurs with the Combination of @SuperBuilder(toBuilder = true) and @Singular on a Map field.  The following changes to the example all compiled sucessfully:

@Builder(toBuilder = true) instead of @SuperBuilder(toBuilder = true)
@SuperBuilder() instead of @SuperBuilder(toBuilder = true)
Remove @Singular from the Map
Change the Map to a List or Set.

SuperToBuilderDelombok.java.gz
Expected behavior
The class should compile successfully and generate a builder with singular set methods for the Map.
Version info (please complete the following information):
Lombok Version: 1.18.6
Java Platform: OpenJDK 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)                                                                                OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
Additional context
Attempted to use the latest edge-SNAPSHOT from https://projectlombok.org/edge-releases as of April 20, 2018, but the results were the same.

Thanks for the detailed report. The issue is probably caused by the hard-coded List in HandleSuperBuilder:728.

I missed that this made it into 1.18.8 because I had worked around this issue.  I've upgraded and verified that this problem issue fixed in my project.  Thanks!


How To Get All Threads In The Inbox

Please is there any way I can get all threads in the inbox. When I tried, using this code new Client.Feed.Inbox(session).get().then(function (t) {console.log(t.length) })
It is only returning the first 20 threads in the inbox. Is this a limit impose on the feature by Instagram or there is a workaround. Thanks

Hello @ckm100, you need to use something else.
First you retry the Threads and find the Thread id you are intersted in. Then you can look for it  with :
let threadFeed = new Client.Feed.ThreadItems(session, selectedThreadId, limit)
Calling the .get() on this threadFeed will iterate the tread.
Example:
function findNewMedia (thread) {
  thread.get()
    .then(messages => {
      if (mediaArray.length < 1 || mediaArray[mediaArray.length - 1].id !== messages[messages.length - 1]._params.id) {
        // do what you want with the messages
        findNewMedia(thread)
      } else {
        console.log(mediaArray)
        console.log(mediaArray[mediaArray.length - 1])
      }
    }, error => {
      console.error(error)
    })
    .catch(reason => {
      console.error(' An error occured: ', reason)
    })
}
let threadFeed = new Client.Feed.ThreadItems(session, selectedThreadId, limit)
findNewMedia(threadFeed)

Nonetheless, I've got two question @huttarichard :

Extending the limit to more than 20, does not change anything, looks like the max is 20
As you can see I'm comparing ID to see if the last message is the same when I keep querying the feed. Is there any key that we should looking for to see if there are older messages or not ?

Thanks for this great tool anyways.

@gabrielstuff limit is not for single request results, take a look on source. Most of feeds implements .all method to get all results.ThreadItems is no exception https://github.com/huttarichard/instagram-private-api/blob/master/client/v1/feeds/feed-base.js#L14
About Feed#get will always return new results as you call it, that is because every time when you call .get you will set new cursor for next call. Take a look on Feed#getCursor. Also In readme Feeds section

Hi @gabrielstuff thanks for your response but I already found a solution to the problem long ago. What I did is used all method  instead of the get method which gave me all Threads in the inbox.

function getInbox(session) {
	const feed = new Client.Feed.Inbox(session);
	feed.map = item => item.params.title; // do item.params to see whats in the object scope and consol.log(results) in .then func
	return feed.all();
}

getInbox(session).then(function (results) {
			inboxUsernames = results;


Feature request: add channel.createWebhook() function

Is your feature request related to a problem? Please describe.
Not really, this would allow us to create webhooks the same was as discord.js.
Describe the solution you'd like
In discord.js, there is a channel.createWebhook() function that allows for us to create webhooks in a channel but there isn't an equivalent in guilded.js.
Describe alternatives you've considered
Currently, I use the client.rest.router.createWebhook() function to do this, but it's a bit more complex than channel.createWebhook() in discord.js.
Additional context
// This is what needs to be done currently
let a = await client.rest.router.createWebhook(channelId, {
	channelId,
	name: "bridge",
});
// This is what I want to be able to do
let a = await channel.createWebhook({
	name: "bridge",
})

Hmmm, I've held off on making channel methods because the Guilded API at most gives a channel ID in payloads, meaning you'd have a channel object with just an ID.
I recommend using client.webhooks.create if the rest router is giving too complex payloads back to you.

@zaida04 I guess that makes sense, though I didn't know there was the client.webhooks.create function


Add toggle to disable Socrates tab creation on Obsidian start

Is your feature request related to a problem? Please describe.
I do not want to use Socrates, but if I close the tab and reopen Obsidian, it will load again. and obscure my file hierarchy until I close it again.
Describe the solution you'd like
I would like a toggle in the plugin settings to either disable Socrates entirely and/or a toggle to prevent it from automatically adding the Socrates tab and navigating away from whatever view (such as file hierarchy) I had open previously.
Describe alternatives you've considered
N/A
Additional context
None

Not fixed. The update just deselects the "Agent" socrates, but the tab still appears on startup

I'm asking for the brain icon to not spawn each new session

Understood. This will take longer and I don't think it is on the immediate list of priorities. As far as I can see, being able to disable the view is not common among plugins.
If this gets more push we can reprioritise :).

aditionally:
Add a togleable option to disable any of the plugin "characters" and all their commands/related windows/hotkeys will not appear, that will provide more user customization of what they find or not useful for the plugin, and make slower startup loads even. not just Socrates


Add ArrayAlignment to list of recommended Layout cops for LineLength

Both ArgumentAlignment and HashAlignment are listed so it looks like
ArrayAlignment should also be included.

Can you update https://github.com/rubocop/rubocop/blob/v1.33.0/lib/rubocop/cop/layout/line_length.rb#L8-L61 instead of updating docs/modules/ROOT/pages/cops_layout.adoc directly. docs/modules/ROOT/pages/cops_layout.adoc is auto-generated, so don't change it.

@jdufresne ping.

Can you update https://github.com/rubocop/rubocop/blob/v1.33.0/lib/rubocop/cop/layout/line_length.rb#L8-L61 instead of updating docs/modules/ROOT/pages/cops_layout.adoc directly. docs/modules/ROOT/pages/cops_layout.adoc is auto-generated, so don't change it.

Thanks for the review. I've made this change in the latest revision.

Thanks!


Language

Could you please make it possible to change language ie. support
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "da-DK");

#387 This is available from the new build v2.0.2


Add horizontal margins to the editor help based on width

This decreases the number of characters per line, and therefore helps make the editor help more readable.
PS: Does the way I implemented this leak memory? I can notice RAM usage increasing when I resize the editor window, but this also happens in the master branch.
Preview
Window maximized on a 1920×1080 monitor

Window maximized on a 2560×1440 monitor

Thanks!


[4.1] [DeclChecker] Don't try to derive conformances for invalid enums

• Explanation: If one of the cases is invalid, let's mark parent enum as invalid
as well, and avoid trying to derive any conformances related to it.
• Scope of Issue: Affects derivation of the equatable/hashable and other conformances for enums with invalid cases.
• Origination: Before attempting to derive conformances synthesizer needs to check if the enum is valid.
• Risk: Low risk; Fixes a bug in declaration checker.
• Reviewed By: @DougGregor
• Testing: Compiler regression tests
• Radar / SR: rdar://problem/36989792

@swift-ci please test

@swift-ci please test source compatibility

@swift please test maOS platform

@swift-ci please test macOS platform

It looks like ObjectMapper UPASS’ed which is unrelated to my changes.

@swift-ci please nominate

@swift-ci please nominate

@swift-ci please nominate


SchemaDisagreementOnStargate test is flaky

What happened?
--- FAIL: TestK8ssandraCluster (291.64s)
--- FAIL: TestK8ssandraCluster/AddDcToExistingCluster (56.57s)
--- FAIL: TestK8ssandraCluster/AddDcToExistingCluster/SchemaDisagreementOnStargate (2.71s)
add_dc_test.go:104: wait for the CassandraInitialized condition to be set
add_dc_test.go:731: add Stargate and Reaper
add_dc_test.go:573: check that stargate sg1 is created
add_dc_test.go:576: update stargate sg1 status to ready
add_dc_test.go:588: check that reaper reaper1 is created
add_dc_test.go:591: update reaper reaper1 status to ready
add_dc_test.go:747: add dc2 to cluster
add_dc_test.go:772:
Error Trace:	/home/runner/work/k8ssandra-operator/k8ssandra-operator/controllers/k8ssandra/add_dc_test.go:772
/home/runner/work/k8ssandra-operator/k8ssandra-operator/controllers/k8ssandra/add_dc_test.go:597
/home/runner/work/k8ssandra-operator/k8ssandra-operator/controllers/k8ssandra/add_dc_test.go:232
Error:      	Received unexpected error:
Operation cannot be fulfilled on k8ssandraclusters.k8ssandra.io "add-dc-test": the object has been modified; please apply your changes to the latest version and try again
Test:       	TestK8ssandraCluster/AddDcToExistingCluster/SchemaDisagreementOnStargate
Messages:   	failed to add dc to K8ssandraCluster
FAIL
Did you expect to see something different?
This indicates a timing failure or a bug in which Updates are done in incorrect order. Either way, something to investigate and fix.
How to reproduce it (as minimally and precisely as possible):
Environment

K8ssandra Operator version:
Insert image tag or Git SHA here

Kubernetes version information:
kubectl version

Kubernetes cluster kind:
insert how you created your cluster: kops, bootkube, etc.

Manifests:

insert manifests relevant to the issue

K8ssandra Operator Logs:

insert K8ssandra Operator logs relevant to the issue here

Anything else we need to know?:

@burmanm assigning you, could this be a good target for the next refactoring week?


Added Pull Request Comment Duration

Activity Metric

Yea, we'll need a new activity metric to accommodate this. Not a big deal but just something to be done.

Updated the main activity metrics list. Thank you for patiently helping me understand the metrics addition steps. :)

I'll accept as is, we can improve this later.


Enforcing order of potential handlers

The current pattern in the toolkit is to populate forces by iterating through ParameterHandler objects and calling the create_force method of each. For exporting to OpenMM, this requires some custom code that, among other things, enforces order so that some handlers are only ever called after other ones. I believe, for example, ChargeIncrementModelHandler can only ever apply charge increment after AM1-BCC charges have been applied by ToolkitAM1BCC. This is done by tagging each class with a ._DEPENDENCY attribute that specifies what must come before each, resolving that graph, and using it to specify the other they'll be iterated through.
Maintaining this behavior is probably unavoidable, so the question if there's a better way to implement it or not.

Do PotentialHandlers need order? I get the sense that energy computation should be order-independent. A System will only need to know about order in the case of reparameterization, in which case the ForceField will contain the ordering logic.

The energy evaluation part should not, but the parametrization part should. If that logic stays in the toolkit, then it won't think much changed between the OpenMM System present and OpenFF System future. This might come down to the question of ForceField.create_openff_system vs. System.parametrize(topology, forcefield, ...). A downside of the current monkey-patching is that the responsibility is blurred:
https://github.com/openforcefield/openff-system/blob/f3a48953d50d1b806c7c10f0142cf6f92f70a0be/openff/system/stubs.py#L27-L51
Now, order doesn't need to be enforced, because the Electrostatics tagged is hacked together to only store the partial charge. But you can see that if it called the other handlers, order would be more relevant, as is in the toolkit now.

Another case: constraints usually don't specify the distance they're to be constrained to.
     <Constraints version="0.3">
         <!-- constrain all bonds to hydrogen to their equilibrium bond length -->
         <Constraint smirks="[#1:1]-[*:2]" id="c1"></Constraint>
     </Constraints>

The equilibrium bond length is supposed to be derived from bonds, meaning a constrained bond (i.e. any H-X bond here) will need to be gather information from two separate handlers. The toolkit handles this completely, as far as I can tell, but the details are baked into the create_force functions (alongside OpenMM details), not only the find_matches part, which is where the typing step happens. There are several details to consider, which I won't repeat except for copy+pasting
Here's the section of the SMIRNOFF spec:

<Constraints>
Bond length or angle constraints can be specified through a <Constraints> block, which can constrain bonds to their equilibrium lengths or specify an interatomic constraint distance.
Two atoms must be tagged in the smirks attribute of each <Constraint> record.
To constrain the separation between two atoms to their equilibrium bond length, it is critical that a <Bonds> record be specified for those atoms:
<Constraints version="0.3" >
  <!-- constrain all bonds to hydrogen to their equilibrium bond length -->
  <Constraint smirks="[#1:1]-[*:2]" />
</Constraints>

Note that the two atoms must be bonded in the specified Topology for the equilibrium bond length to be used.
To specify the constraint distance, or constrain two atoms that are not directly bonded (such as the hydrogens in rigid water models), specify the distance attribute (and optional distance_unit attribute for the <Constraints> tag):
<Constraints version="0.3">
  <!-- constrain water O-H bond to equilibrium bond length (overrides earlier constraint) -->
  <Constraint smirks="[#1:1]-[#8X2H2:2]-[#1]" distance="0.9572*angstrom"/>
  <!-- constrain water H...H, calculating equilibrium length from H-O-H equilibrium angle and H-O equilibrium bond lengths -->
  <Constraint smirks="[#1:1]-[#8X2H2]-[#1:2]" distance="1.8532*angstrom"/>
</Constraints>

Typical molecular simulation practice is to constrain all bonds to hydrogen to their equilibrium bond lengths and enforce rigid TIP3P geometry on water molecules:
<Constraints version="0.3">
  <!-- constrain all bonds to hydrogen to their equilibrium bond length -->
  <Constraint smirks="[#1:1]-[*:2]" />
  <!-- TIP3P rigid water -->
  <Constraint smirks="[#1:1]-[#8X2H2:2]-[#1]" distance="0.9572*angstrom"/>
  <Constraint smirks="[#1:1]-[#8X2H2]-[#1:2]" distance="1.8532*angstrom"/>
</Constraints>

Constraint section tag version
Required tag attributes and default values
Required parameter attributes
Optional parameter attributes

0.3

smirks
distance

This is no longer needed after refactoring from Chain of Responsibility to something more like a Builder pattern.


[BUG] org.opensearch.repositories.azure.AzureBlobStoreRepositoryTests.testMultipleSnapshotAndRollback is flaky

Describe the bug
The test suite is flaky as the suite seems to be timing out
java.lang.Exception: Test abandoned because suite timeout was reached.
	at __randomizedtesting.SeedInfo.seed([65B308AE35ED9ED5]:0)

Related component
Storage:Snapshots
To Reproduce
The problem seems to be some of the tests are taking longer and suite level default timeout (20 min) is probably not good enough.
REPRODUCE WITH: ./gradlew ':plugins:repository-azure:internalClusterTest' --tests "org.opensearch.repositories.azure.AzureBlobStoreRepositoryTests" -Dtests.seed=65B308AE35ED9ED5 -Dtests.security.manager=true -Dtests.jvm.argline="-XX:TieredStopAtLevel=1 -XX:ReservedCodeCacheSize=64m" -Dtests.locale=en -Dtests.timezone=Etc/UTC -Druntime.java=21

Expected behavior
Test should always pass
Additional Details
Plugins
Standard
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
https://build.ci.opensearch.org/job/gradle-check/40884/testReport/junit/org.opensearch.repositories.azure/AzureBlobStoreRepositoryTests/

Hey @sohami closing this issue since the automation created one issue for AzureBlobStoreRepositoryTests, please check https://github.com/opensearch-project/OpenSearch/issues/14291.
@andrross @dblock


Looped spin fort and move to fort. Endless "Possibly searching too often, take a rest."

Expected Behavior

Spin the current fort and go to another (like it was some days before)
Actual Behavior

Looped move to fort / spinning. Bot can be stuck in this state for like 30 minutes continuously trying to spin the fort.
Your FULL config.json (remove your username, password, gmapkey and any other private info)

http://pastebin.com/2gc6gaaP
Output when issue occurred
2016-08-21 22:07:29,914 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Vse Dla Fronta - 0.04km
2016-08-21 22:07:31,357 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:31,363 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:33,051 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:33,060 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Vse Dla Fronta - 0.04km
2016-08-21 22:07:35,968 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:35,974 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:37,807 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:37,813 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:40,849 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:40,857 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Vse Dla Fronta - 0.04km
2016-08-21 22:07:42,715 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:42,722 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:44,585 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:44,591 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:46,203 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:46,209 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Vse Dla Fronta - 0.04km
2016-08-21 22:07:48,157 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:48,163 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:50,885 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:50,891 [MoveToFort] [INFO] [moving_to_fort] Moving towards pokestop Vse Dla Fronta - 0.04km
2016-08-21 22:07:52,325 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:52,331 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:54,024 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:54,030 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:55,895 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
2016-08-21 22:07:55,904 [MoveToFort] [INFO] [arrived_at_fort] Arrived at fort.
2016-08-21 22:07:57,741 [  SpinFort] [INFO] [pokestop_searching_too_often] Possibly searching too often, take a rest.
Steps to Reproduce

Install using setup.sh from dev branch and just launch bot with my config. After 1-2 min bot will stuck
Other Information
OS:
MacOS
Branch:
dev
Git Commit:
3fcc2901c0f1afc14225c5455c6d2bebbedf5500
Python Version:
Python 2.7.12
Any other relevant files/configs (eg: path files)

I have the same. Bot move on after a few minutes.Bot go ahead after a few minutes as pokestop to renew.

IP ban. Change your IP.

This is not Ip Ban. Bot move normally. Only under specific conditions, crashes. Between the two pokestop Which are spaced less than 0.08km.

This one keeps coming back

Can you try altering the following:
    "type": "SpinFort",
    "config": {
      "spin_wait_min": 3,
      "spin_wait_max": 6

and let me know if the problem happens again.

Or try the following:
#4535
Adding it to the ignore list might not be ideal, but getting stuck definitely is not as well.

Commit c1cfaf6
Let me know if the problem happens again.


Modifying Bundle target can result in CA certs not being available for a while

At the moment if  bundle.spec.target gets modified, trust manager will apply two updates in separate reconciles- one where the old CA data is deleted from the target configmaps, another where the new CA data is written to the target configmaps. This will happen even when the CA data does not need to change, for example if namespace selector is removed.
In practice this means that there is a period of time where the CA data is not available and in some cases it could cause issues:

if there is a latency for calls to kube apiserver either because there is a large number of targets that trust-manager needs to update or because the apiserver is busy, the period when the CA cert is not available will be longer
if user applies a change to the Bundle that both changes the target and also references a source that cannot be used (is an invalid CA cert), the old CA data will be removed and the configmaps will remain empty till the user fixes the issue

Assuming that we think that CA data should be 'always' available, I think it would be preferable if target updates were atomic and we didn't have a period of time where the target configmaps are empty.
I ran an experiment with 1000 namespaces and observed that the after a target namespace selector change a target configmap had its CA cert deleted and remained empty for 5 minutes till the same CA data got added back:
irbe@trust-manager$ k logs deploy/trust-manager -ncert-manager | grep test-1000
I0119 13:24:53.280164       1 bundle.go:151] trust/bundle "msg"="deleted old target key" "bundle"="my-org.com" "namespace"="test-1000" "old_target"={"configMap":{"key":"ca.crt"},"namespaceSelector":{"matchLabels":{"foo":"bar"}}}
I0119 13:29:15.481179       1 sync.go:230] trust/bundle "msg"="synced bundle to namespace" "bundle"="my-org.com" "namespace"="test-1000"

Related (wrt whether we should prioritize CA data being always available): #99

I also noted this behavior when preparing a pull request for trust-manager. I wonder if there is a particular reason for doing it this way - as a two-step process? Maybe @JoshVanL has some insights?

As mentioned by @erikgb. This should be fixed on master thanks to #89.


The Basemap.drawcounties method does not use the 'antialiased' parameter

Current method:
def drawcounties(self,linewidth=0.1,linestyle='solid',color='k',antialiased=1, facecolor='none',ax=None,zorder=None,drawbounds=False):
    """
    Draw county boundaries in US. The county boundary shapefile
    originates with the NOAA Coastal Geospatial Data Project
    (http://coastalgeospatial.noaa.gov/data_gis.html).

    .. tabularcolumns:: |l|L|

    ==============   ====================================================
    Keyword          Description
    ==============   ====================================================
    linewidth        county boundary line width (default 0.1)
    linestyle        coastline linestyle (default solid)
    color            county boundary line color (default black)
    facecolor        fill color of county (default is no fill)
    antialiased      antialiasing switch for county boundaries
                     (default True).
    ax               axes instance (overrides default axes instance)
    zorder           sets the zorder for the county boundaries (if not
                     specified, uses default zorder for
                     matplotlib.patches.LineCollections).
    ==============   ====================================================

    returns a matplotlib.patches.LineCollection object.
    """
    ax = ax or self._check_ax()
    gis_file = os.path.join(basemap_datadir,'UScounties')
    county_info = self.readshapefile(gis_file,'counties',\
                  default_encoding='latin-1',drawbounds=drawbounds)
    counties = [coords for coords in self.counties]
    counties = PolyCollection(counties)
    counties.set_linestyle(linestyle)
    counties.set_linewidth(linewidth)
    counties.set_edgecolor(color)
    counties.set_facecolor(facecolor)
    counties.set_label('counties')
    if zorder:
        counties.set_zorder(zorder)
    ax.add_collection(counties)
    return counties

Suggested revision:
Replace counties = PolyCollection(... instantiation line with
counties = PolyCollection(counties, antialiaseds=(antialiased,))

I am closing the issue as complete, since the patch has been pushed to the repository targeting the hotfix 1.3.9. Thanks!


New Slack Channel - [#cobol-programming-course-pt]

Please complete all the sections below to request a new channel. Channel requests can take a day or two, so please be patient :-).
Channel name
#cobol-programming-course-pt
Channel purpose
My dad and I recently discovered the Open Mainframe Project and got really excited about it. We signed up for the COBOL course and started going through the documentation available but we found it a bit hard to follow for beginners, specially non-native english speakers. We also found very little official and non-official learning material available elsewhere in portuguese which we both speak natively so we decided to publish a message for all portuguese speaking members in the #general channel (picture bellow) calling them to join us in learning and sharing experiences. We got a few reactions to that message and with that we decided to create a new channel #study-group-pt with the problem being we couldn't make it public so I'd like to have a public channel created so folks can join freely and participate. What really motivates us, particularly myself, is the possibilities that having a space like that open up for my dad to be able to share his extensive knowledge in mainframe systems for both myself and others to enjoy. He has over 30 years of experience in the I.T. industry with over 10 to 15 years of hands on experience coding software for Brazilian mainframe systems in his early days. He later moved on from engineering to management directing and managing US multinationals sales operations in the southeast of Brazil. As impressive as his curriculum may appear, unfortunately he still struggles with spoken and conversational english and that's when being able to communicate in portuguese becomes important for us. I hope this message finds its way and until then I'd like to wish all of you a nice day and thank you for your time.

Moderators for the channel
Dylson Valente Neto

OMP Slack: @dylsonvalenteneto

Dylson Valente Filho

OMP Slack: @dylsonvalentefilho

Does this channel have a lifespan? ( if so, please let us know when that is so we can archive it or mark it inactive )
No, it should remain open for all the portuguese native speakers around the world to join it as the OMP slack grows. Administrators however can feel free to archive it if it ever becomes inactive.

Added now - https://openmainframeproject.slack.com/archives/C02BA8YRY48


[Dev file previewer]Various improvements

Summary of the Pull Request
What is this about:
What is included in the PR:

Changed "max file limit" string to variable one. Added context information to it about the term "KB" (Kilobyte)
Added performance improvements (in theory)
Added progress bar while loading
Added logs

BugReportTool now also copies logs from localLow folder

Centred loading screen
Changed background color of the loading screen to match the color of Monaco's dark mode

How does someone test / validate:
Quality Checklist

[x] Linked issue: #15758
[x] Communication: I've discussed this with core contributors in the issue.
[ ] Tests: Added/updated and all pass
[ ] Installer: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Docs: Added/ updated
[x] Binaries: Any new files are added to WXS / YML

[x] No new binaries
[ ] YML for signing for new binaries
[ ] WXS for installer for new binaries

Contributor License Agreement (CLA)
A CLA must be signed. If not, go over here and sign the CLA.

@check-spelling-bot Report
🔴 Please review
See the 📂 files view or the 📜action log for details.
Unrecognized words (1)
filetype
Previously acknowledged words that are now absent
To accept ✔ these unrecognized words as correct (and remove the previously acknowledged and now absent words), run the following commands
If the flagged items are false positives

@jsoref Any idea why this comes up? The word is in expect.txt,

@check-spelling-bot Report
🔴 Please review
See the 📂 files view or the 📜action log for details.
Unrecognized words (1)
filetype
Previously acknowledged words that are now absent
To accept ✔ these unrecognized words as correct (and remove the previously acknowledged and now absent words), run the following commands
If the flagged items are false positives

@jsoref Any idea why this comes up? The word is in expect.txt,

It's because UPPERCASE FILETYPE in expect.txt. Remove that one

@check-spelling-bot Report
🔴 Please review
See the 📂 files view or the 📜action log for details.
Unrecognized words (1)
filetype
Previously acknowledged words that are now absent
To accept ✔ these unrecognized words as correct (and remove the previously acknowledged and now absent words), run the following commands
If the flagged items are false positives

@jsoref Any idea why this comes up? The word is in expect.txt,

It's because UPPERCASE FILETYPE in expect.txt. Remove that one

@stefansjfw Thank you! Could you take a look at the follow-up questions I wrote in the review comments?

what is needed to wrap this up?

@stefansjfw I put all the tasks in one task

very nice. I gave it a test, and it works well. I like the loading bar!
one nit (This can be done in separate PR)

Can you add some left and right margins to Loading... text and loading bar? It should look a bit nicer.

I canndo that.

What I don't like here is that Bug report tool includes these *-Temp dirs from LocalLow:

In my case, those are ~150MB so bug reports could get quite big with these. Also, I don't think we need these at all. We should limit on taking only log directories from LocalLow. Also, let's add some suffix to log dirs in LocalLow (e.g. FileExplorer-LocalLow), so we know where it comes from). As it is now, in bug report we have FileExplorer dir and File Explorer dir, which is not nice

Ok.

@stefansjfw  I reworked the loading screen and changed the log path. Could you make that it does not copy the temp paths? I have actually no idea of C++.

@stefansjfw I reworked the loading screen and changed the log path. Could you make that it does not copy the temp paths? I have actually no idea of C++.

You can put logs in LocalLow/microsoft/Powertoys/Logs/FileExplorer_LocalLow/Monaco
and then just log the Logs dir?

@stefansjfw I reworked the loading screen and changed the log path. Could you make that it does not copy the temp paths? I have actually no idea of C++.

You can put logs in LocalLow/microsoft/Powertoys/Logs/FileExplorer_LocalLow/Monaco and then just take the Logs dir by bug report tool?

@stefansjfw  I changed it.

Something is wrong now

Does it not load at all or is it just the position of the elements?
Anyway Inwill look at it after the weekend

Something is wrong now

Does it not load at all or is it just the position of the elements?
Anyway Inwill look at it after the weekend

Just Loading label and loading bar positioning. Thanks

@stefansjfw Could you test if it now works for you?

For some reason, Label height does not follow font size, so positioning using Label height does not turn right. I set the height to a fixed value. Looks like this now:

This works for me too. Thank you! Does this PR need an additional approval or is it good to go?

Good to go as soon as build is green

Build is green. Let's get this merged.

Don't forget to update labels for linked issues


Refactor scrolling code to prepare for nested scrolling

This patch reworks some of the guts of scrolling to make it easier to
implement nested scrolling effects. The actually nested scrolling effect
will be included in a later patch.

Reviewing this was a bit of a surreal experience.


[$250] mweb-task-User assigning secondary contact&creating task directs to hmm not here page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.82-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
Action Performed:

Go to https://staging.new.expensify.com/home
Login with a new account
Tap fab -- assign task
Enter title and tap next
Select assignee as a secondary contact-<EMAIL_ADDRESS>Confirm task
Navigate to LHN
Perform step 3 - step 6 again

Expected Result:
User must be directed to primary contact page showing task created
Actual Result:
User assigning secondary contact&creating task directs to hmm not here page
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/38435837/1967d438-d4b7-4942-b727-8141fb5d9d12

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~010975818a83afe598
Upwork Job ID:<PHONE_NUMBER>786778762
Last Price Increase: 2024-08-07

Issue OwnerCurrent Issue Owner: @sobitneupane

@muttmuure FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Not overdue

Waiting for proposal

Waiting for proposal

Waiting for proposal

Issue not reproducible during KI retests. (First week)

https://github.com/Expensify/App/issues/43593#issuecomment-2221966015

Waiting for proposal.

Waiting for proposal.

Waiting for proposal.

Waiting for proposal.

Waiting for proposal.

Waiting for proposal.

Waiting for proposal.

Issue not reproducible during KI retests. (First week)

https://github.com/Expensify/App/issues/43593#issuecomment-2306951056


Add Cascadia fonts

Closes #1276, incorporates @cyntler's contribution at https://github.com/carbon-app/carbon/pull/1250
After selecting Cascadia Code:

After selecting Cascadia Mono (the non-ligature option):

Dropped the commit adding Cascadia Mono.


Add recipes section to document usage with other frameworks.

Add a "Recipes" section to document usage with other frameworks once their relevant adapters/middlewares have been implemented (#6).

This is now added to the documentation.


Support for KTL client GUI library.

Coverage decreased (-0.2%) to 90.208% when pulling dd0ac8137aa991d57ca568250577e0fd5b0ee20d on feature/GUI into 486333b80d0edbbf59bf178ed8c62e5eb1ab5ef5 on develop.

Coverage decreased (-0.2%) to 90.208% when pulling dd0ac8137aa991d57ca568250577e0fd5b0ee20d on feature/GUI into 486333b80d0edbbf59bf178ed8c62e5eb1ab5ef5 on develop.


Fixed a typo “>” to “==” in “Comparison operators” description.

Fixed a typo “>” to “==” (line 284) in “Comparison operators” description.

Thank you!


Watch event stream on a network request

Implement the functionality that will allow to access an event stream over a network request.
To be able to watch event streams, we need:

create stream requests and manage their lifecycle (live requests);
provide access to the body line by line;
process events;
close requests; and
provide access to watch functionality on collections.

➤ Clemente Tort Barbero commented:
No need for these changes. Each SDK should manage its own stream requests.


libuwac/input: Fix memory leak

create_pointer_buffer() allocates memory with mmap and never frees it.
Adding a corresponding munmap fixes this issue.

@freerdp-bot test

@SaschaWessel could you add the lo message as suggested by @akallabeth ?

Done. For data++, the output looks as follows:
[ERROR][com.freerdp.uwac.input] - munmap(0x00007fe150477001, 9216) failed with [22] Invalid argument

@freerdp-bot test

@freerdp-bot test


Add support for requiring exhaustiveness

Problem
People don't always make things exhaustive when I want them to. For example,
case bool
when TrueClass
  'yep'
when FalseClass
  'nah'
end

# instead of
case bool
when TrueClass
  'yep'
when FalseClass
  'nah'
else
  T.absurd(bool)
end

As a maintainer of a piece of code or type, when I make a change I want Sorbet to guide to to all the places that need updated and if people don’t handle the cases exhaustively I’m left to grep-ing to ensure I’ve updated everything.

Proposed solution

I want a way to explicitly say "if you are narrowing this type, do it exhaustively."
Since we have so many ways to support exhaustiveness, T.any, sealed classes, T::Enum I think it would be most practical to add a wrapper type such that we can tack it on to all these things:
bool = T.let(bool, T.exhaustive(T::Boolean))

case bool
when TrueClass
  'yep'
when FalseClass
  'nah'
end

# ^== Sorbet complains "You must add `else T.absurd(bool)`
# as `T.exhaust(T::Boolean)` must be exhaustively checked.

Some considerations:

We shouldn't force the narrowing to be done, people ought to be able to pass values around freely until someone actually attempts to narrow the type.
Hierarchies are kinda weird. For example, we have Result = Value | Error and Error = NotFound | BadInput, does doing T.exhaustive(Result) cause the narrowing of Error to also be exhaustive? As an outer annotation/wrapper it's difficult/confusing to effect Error's handling from Result's type. Enums don't have this problem since they can't nest but for T.any and sealed classes we may want control only for the immediate type and have subtypes self identity using for example T.any(A, B, ..., require_exhaustiveness: true) and sealed!(require_exhaustiveness: true)

Somewhat similar to this #1749


samples: usb: add test script for cdc_acm sample

Add test script for cdc_acm sample.
The script simply sends a block to the device and
expects the same block back.

close it for now but keep the branch


Create GitHub releases

Feature request: Upload builds to this GitHub repository's realeases page.
https://github.com/mlool/workday-calendar-extension/releases
Also add a link to the releases page to the README installation section.

Completed


Complete docstring for some methods and make some methods and variables more readable.

Complete docstring for some methods and make some methods and variables more readable.

thanks!

Thanks for your work always! @kennethreitz

likewise!


helm CLI displays lots of warning message skipping invalid entry

Output of helm version:
version.BuildInfo{Version:"v3.14.0", GitCommit:"3fc9f4b2638e76f26739cd77c7017139be81d0ea", GitTreeState:"clean", GoVersion:"go1.21.5"}
Output of kubectl version:
Client Version: v1.29.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.29.1
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
Docker Desktop
Below command displays lots of warning message which couldn't be suppresses
$ helm repo update

index.go:366: skipping loading invalid entry for chart "my-app-chart" "0.1.0-dev" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"
index.go:366: skipping loading invalid entry for chart "my-app-chart" "0.1.0" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"
index.go:366: skipping loading invalid entry for chart "my-app-chart" "0.2.0-dev" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"
index.go:366: skipping loading invalid entry for chart "my-app-chart" "1.0.0-dev" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"
index.go:366: skipping loading invalid entry for chart "my-app-chart" "1.0.0" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"
index.go:366: skipping loading invalid entry for chart "my-app-chart" "1.1.0-dev" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"
index.go:366: skipping loading invalid entry for chart "my-app-chart" "1.1.0" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"
index.go:366: skipping loading invalid entry for chart "my-app-chart" "1.2.0-dev" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"
index.go:366: skipping loading invalid entry for chart "my-app-chart" "1.2.0" from https://my-artifactory.repo.com/artifactory/helm-repo-virtual: validation: more than one dependency with name or alias "awesome-app"

Is there a way to suppress these message like helm repo update --quiet.  The private repo Jfrog artifactory has old charts.
Below option also didn't work.

helm update repo | grep -v "^index" - still those messages are getting printed in the console.
helm update repo > /dev/null - still these messages are getting printed in the console.

The same happens when issuing helm update --install <release> <repo>/<chart> --version=<chart-version> -n <namespace>.

https://github.com/helm/helm/issues/12748


[Biomedical DC] Add the main landing page

This PR adds the main landing page for biomedical DC.
Changes Include:

Adding a route /bio that takes the user to the new landing page (but hidden behind 404 on prod)
CSS, TS, HTML for the new landing page
React components for the search box and clickable cards

NOT included, but to be added in followup PRs:

A custom header, menu, and footer for biomedical pages
A "more examples" button for the sample questions section
Moving the homepage to its final destination in custom DC
Internationalization of the content

Sample screenshots:

This is looking awesome Julia.
This might not be the right place to call it out but wanted to bring attention to the tool bar treatment. We will place the DC logo + "• Biomedical" and not "Data Commons Biomedical". This is so that there is room for the search queries to have more space to render. Also added more details on the break points and how it relates to the main DC so that we have the same functionality. See from slide 25 onwards in our specs deck: https://screenshot.googleplex.com/7khCEbLqC7YZdUW


Data Preparation

Very excellent work, can you please provide the details of the data processing process? Is the preprocessing of the data extracting each frame of the FF++ and then putting it into the dataloader before selecting the segments?Looking forward to hearing from you.

Hi @MetroTY
Do you know what 'image_tmpl' is used for in video_dataset_config.py


bug fix

@kabilar I did and it still complains.

This is a blocker for me as I'm debugging a SciOps workflow. Any help would be appreciated.

@kabilar I did and it still complains.

Not sure why it complains but we can merge after the suggestion above.  Thanks!


Allow .txt extension on plugin test files

test/plugins/_index.test.js currently requires plugin test files to have a .svg extension, but the files are not valid SVG files. This has a couple of bad side effects:

it confuses editors that are expecting valid SVG
trying to view the test files on GitHub shows an "invalid image format" message rather than the file contents

This change allows the test files to have an optional .txt extension (e.g., filename.01.svg.txt).

I think something like this is a good idea and would improve my editor experience.
Any reason not to apply to all existing test files? I think we should for the same reason, so they can be seen in the diff and opened in an editor.

I agree it should be applied to all files, but since there are 300+, I figured it might be a good idea to start by making it optional in case there are unintended side effects (or if there's a better extension that .txt).

Just my opinion but I don't think it should be optional. If there are side effects to the change it would be good to understand it now when introducing the feature.

I appreciate the problem, but am partial to the proposed solution. Happy to hear more feedback, though. The proposal is probably still better than what we're doing now, though.

I think something like this is a good idea and would improve my editor experience.

This would degrade my default editor experience, though I can easily fix it with a setting override. The test files will lose syntax highlighting, which was working correctly before.
The solution to this would be to add the following in my VSC settings:
{
  "files.associations": {
    "*.svg.txt": "xml"
  }
}

Other potential solutions might be:

Split the test into multiple valid files, but that will result in so many files it'd be a mess.
Define test cases in an XML file with the nodes summary, input, output, and params. However, this would make tests for whitespace kind of annoying. Could be worth it, though.
The same as above, but in an SVG file with two nested SVGs. Has the same con, but does offer the benefit of being easy to open and render in a browser, which I do a lot to verify the test actually renders the same content.

Does anyone have thoughts on any of these? Otherwise, happy to run with this, but I agree we should rename all existing tests to .svg.txt in that case. 🤔

in case there are unintended side effects

If there are side effects to the change

I haven't tested this, but I think the only side effect will be that the prefixIds tests will need to have the instances of the file name in the IDs updated as well. i.e. prefixIds_03_svg → prefixIds_03_svg_txt

I appreciate the problem, but am partial to the proposed solution. Happy to hear more feedback, though. The proposal is probably still better than what we're doing now, though.

I think something like this is a good idea and would improve my editor experience.

This would degrade my default editor experience, though I can easily fix it with a setting override. The test files will lose syntax highlighting, which was working correctly before.
The solution to this would be to add the following in my VSC settings:
{
  "files.associations": {
    "*.svg.txt": "xml"
  }
}

Other potential solutions might be:

Split the test into multiple valid files, but that will result in so many files it'd be a mess.
Define test cases in an XML file with the nodes summary, input, output, and params. However, this would make tests for whitespace kind of annoying. Could be worth it, though.
The same as above, but in an SVG file with two nested SVGs. Has the same con, but does offer the benefit of being easy to open and render in a browser, which I do a lot to verify the test actually renders the same content.

Does anyone have thoughts on any of these? Otherwise, happy to run with this, but I agree we should rename all existing tests to .svg.txt in that case. 🤔

in case there are unintended side effects

If there are side effects to the change

I haven't tested this, but I think the only side effect will be that the prefixIds tests will need to have the instances of the file name in the IDs updated as well. i.e. prefixIds_03_svg → prefixIds_03_svg_txt

The solution to this would be to add the following in my VSC settings:

Put this in a .vscode

The solution to this would be to add the following in my VSC settings:

Put this in a .vscode

Put this in a .vscode

Nah, I'd rather not. I also dislike when other projects include a .vscode, unless it's a project that literally depends on Visual Studio Code like an VSC extension.

It clutters the repo imo when it includes editor-specific settings. Fine with ESLint, prettier, EditorConfig, etc. But if we do VSC, then next will be JetBrains, Eclipse, Theia, Sublime, etc.
From my experience, most projects that include a .vscode bother me more than help. For example, in this case, contributors will find dozens of problems being reported because of invalid XML in the top and bottom, which is partly what we're meant to be solving with this PR.
VSC makes it annoying to ignore or override workspace settings imported from a repo, especially when running git commands later, since deleting the file makes the repo dirty.
Contributor/maintainers should be responsible for configuring their editors to suit them, not the project, imo. I'm just one maintainer, I don't think it makes sense for me to include files in the repo for everyone for something like this.

In other words, linting code structure, linting, etc belongs in the repo, but editor preferences do not, imo.
For clarity, not a blocker. I was just noting how this affects a VSC user and what the solution would be if they wanted to preserve the XML syntax highlighting.

Huh. I haven't ran into issues with problems being reported, probably because I use a separate extension for SVGs. But it sounds like you wouldn't want to add suggested extensions here if you don't like editor-specific config.

I agree about not adding .vscode to the repository, but how about adding .vscode to .gitignore? That would make things easier for me - code formatting in SVGO is different than what I use in other projects, but if I add a workspace config for SVGO it creates a .vscode directory,

But it sounds like you wouldn't want to add suggested extensions here if you don't like editor-specific config.

Are you referring to Workspace recommended extensions?
If so, then yes, actually. If contributors overwhelming express interest in it, then I'm happy to consider it. But in general, I don't like seeing projects include configs for specific tooling unless the project depends on that tool.
I can think of some exceptions. For example, when GNOME recommends building their projects with GNOME Builder, I think that's great for beginners to C++/Rust that don't really understand the build system. Or if a certain tool includes documentation for quirks with working in a specific editor, then I could also get behind that. But including settings so that the out-of-the-box experience is subjectively better with specific editors… eh, it feels like the start of one of two things:

Coupling the project to that editor.
People wanting us to include preferences/recommendations for other editors.

but how about adding .vscode to .gitignore?

I have no qualms with this! I usually include that in other projects anyway. (Mostly to stop others from committing their .vscode directories. ^-^')

code formatting in SVGO is different than what I use in other projects

Main difference is that I don't use Prettier. If .vscode is in .gitignore, that's not a problem - I just enable it for my svgo folder.

Kind of a long thread, but it seems like the consensus is that the following would be an improvement:

make .svg.txt extension mandatory
rename all existing .svg files
make any necessary changes to test code to handle any side effects.
add .vscode to .gitignore

Is this accurate? If everyone is OK with this, I can go ahead and try to make these changes.

Is this accurate? If everyone is OK with this, I can go ahead and try to make these changes.

Can confirm that's fine with me. 👍🏽

All checks pass, but the diffs seem to include the ESM changes as well, so not sure if this will cause problems.
My previous uses of git have been mostly solo projects with simple workflow, so clearly I'm having some conceptual issues with rebasing and the current workflow.

It looks like you did both a merge then rebase is all. You only need to do one or the other! As we don't merge to main in this branch, it seems rebase works out better.
All I did was this to remove the merge commit:
git reset --hard HEAD~1
git push johnkenny54 svgtest --force-with-lease

Meanwhile, you'd performed the rebase correctly. It was just that you already had a merge commit included in this branch before doing it.


site LWRP current_resource.exists is sometimes incorrect (when there are a large number of bindings)

There seems to be a bug in appcmd.exe that causes the output to fail when a site has a large number of bindings.
Some discussion of this appcmd bug here:
http://serverfault.com/questions/313339/appcmd-bugged-with-more-than-70ish-bindings
To avoid this problem the cookbook should replace the appcmd "list site" command with an alternate method to obtain the same data.

@edmundcraske this is a possibility, however appcmd is extremely powerful.  Moving to powershell loses a lot backwards compatibility

@e100 @edmundcraske @EasyAsABC123 I think there is a project working on that alongside this effort.  I'm not in love with appcmd, but the PowerShell story isn't much better.  Honestly, I think we should just go direct to the WMI api.  The problem with PowerShell is, unless it is made a requirement for a Chef install, it is an optional feature (even on the newer OS platforms) and can be uninstalled but IIS will continue to work.
Of course, this is an example of three people with three different preferred management techniques. :)
As it stands, for the 3.x.x version, this cookbook will stick with appcmd.
@e100 is the reported issue a blocker for you or just a potential problem?  If so, then we could look at replacing that particular method...

This issue is not a blocker for me but it has bit me in the rear a few times when adding Chef to a previously manually configured server.
It is not necessary or desired to replace all appcmd calls, only this particular one.
Sure would be nice if MS would actually fix the bug in appcmd instead of us being forced to workaround their flaw.

@e100 do you have a site you can send me via good old metabase explorer export?
If so, I think i might have a fix for this so i'd like to test but 70 bindings is a lot to type up.

I have edited all of my sites bindings to resolve the problem.
Fairly confident that its not 70+ bindings itself that causes this issue, its the totality of the data represented by all the bindings.  Maybe a few bindings with really long hostnames would be sufficient to trigger the issue.

@e100 it appears using /xml solves this issue for large data results.  Still haven't had time to add 70 bindings...maybe i'll write a .bat script to just do it for me with an increment variable.

@e100 closing issue, re-open if you have a metabase file that can show this is still and issue when using /output:xml


Clarifications in Tailwind OPS LP Deployment

A couple of suggested notes to add in readme.md:

Certain steps require specific services that can't be deployed in an MSDN subscription, or are unavailable in certain regions. Would be good to call out the components used and to recommend an appropriate region

Before provisioning, use az account set --subscription  to target deployment steps to correct subscription

Hello @alspeirs,
Thank you for your feedback. Unfortunately, the content as been moved to nother repo (https://github.com/microsoft/ignite-learning-paths-training-ops)
I will invite you to re-create the issue over there. I will close this one.
Regards


GetRemoteBlobs operations blocks when multi threads request alarge number of objects and delete this objects at the same time.

Describe your problem
The get operation blocks when multiple threads request a large number of objects at the same time and some threads tries to delete the object.

Not a dead lock problem. It is just too slow.
Put 10000 small objects and use 4 thread to get(remote buffer). The total spent time is 100 times than 1000 small objects on TCP.


I'm not sure if i should put this in steam modded or here, gonna be honest have no clue what to do.

@ETSELG You have an old version of lovely. Update it and things should start working again. If not then you should ask for help in the #modding-chat channel of the Balatro Discord.


✨ add space container to the ks pod

Summary
This PR adds the space manager container to the kubestellar pod. The space-manager runs using its own image. The PR also defines a couple of space providers - kcp and kubeflex.  For kcp we use the kcp installed by kubestellar.  For kubeflex we install kubeflex using a script that this PR includes.  Long term, kubeflex should be installed using helm, but we ran into issues pulling kubestellar using helm and rather than spend time on it, switched to using the script for now.
With this PR merged, kubestellar includes the space framework and a couple of default providers.  The kubestellar code does not use the space manager yet.  A future PR will remedy that.
Related issue(s)
Fixes #

To run this code you need to:

kind create cluster --name mgt
hack/install-kubeflex.sh  --kubeconfig /home/effi/.kube/config
helm install kubestellar core-helm-chart --set EXTERNAL_HOSTNAME=localhost --set EXTERNAL_PORT=1024

The first step creates the kubestellar core cluster.  The second step installs kubeflex.  In the future we will switch to helm.  The third step installs kubestellar helm charts.

Tests issued:
Created spaces with kcp and kubeflex as providers.
Example of how to create a space with kubeflex:
kubectl create -f - <<EOF
apiVersion: space.kubestellar.io/v1alpha1
kind: Space
metadata:
name: kflex2
namespace: "spaceprovider-pkflex"
spec:
SpaceProviderDescName: "pkflex"
Type: "managed"
EOF
Then check that the space was created:
kubectl get spaces  -A -o yaml
You should see a space named kflex2 in the spaceprovider-pkflex namespace in the Ready status.Phase.

kind create cluster --name mgt

kind create cluster --name mgt --config=- <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:
  - containerPort: 443
    hostPort: 1024
    protocol: TCP
EOF

and
kubectl apply -f https://raw.githubusercontent.com/kubestellar/kubestellar/main/example/kind-nginx-ingress-with-SSL-passthrough.yaml
kubectl wait --namespace ingress-nginx \
  --for=condition=ready pod \
  --selector=app.kubernetes.io/component=controller \
  --timeout=90s

Tests issued: Created spaces with kcp and kubeflex as providers. Example of how to create a space with kubeflex: kubectl create -f - <<EOF apiVersion: space.kubestellar.io/v1alpha1 kind: Space metadata: name: kflex2 namespace: "spaceprovider-pkflex" spec: SpaceProviderDescName: "pkflex" Type: "managed" EOF
Then check that the space was created: kubectl get spaces -A -o yaml You should see a space named kflex2 in the spaceprovider-pkflex namespace in the Ready status.Phase.

@effi-ofer I'm unclear on what would the KUBECONFIG be for these commands

@effi-ofer I'm unclear on what would the KUBECONFIG be for these commands
The KUBECONFIG should be the one that references the core kubestellar and space manager cluster.

@effi-ofer @ezrasilvera I tested it again in OpenShift and it seems to work as expected. Thank you for your hard work.
/lgtm

/approve


Vue 2 don't work with camelCase Events

https://github.com/viktorlarsson/vue-tiny-slider/blob/a0ba40447e76ddfe55e5944d72981ac701ccc54c/src/index.js#L5
the events in the event list will never work because of
https://vuejs.org/v2/guide/components-custom-events.html#Event-Names

hm, looks like it works fine.
<tiny-slider @indexChanged="onSlideIndexChanged">...</tiny-slider>

yeah so when i have this:
<tiny-slider ref="main" v-bind="mainSliderOptions" @indexChanged="onSlideChange">
i get this error in the console:

and when i have this:
<tiny-slider ref="main" v-bind="mainSliderOptions" @index-changed="onSlideChange">
nothing happens.
basically, none of the custom events work at this moment.


unable to update buildroot submodule

I am trying to get started from master. I do the following, but get an error trying to pull in the buildroot submodule:
git clone https://github.com/paralin/SkiffOS.git
cd SkiffOS
git submodule update --init --recursive
Submodule 'buildroot' (https://github.com/paralin/buildroot.git) registered for path 'buildroot'
Cloning into '/Users/andrew/SkiffOS/buildroot'...
error: Server does not allow request for unadvertised object
4aaada448b852b5530612b90ff7394a61b9953fe
Fetched in submodule path 'buildroot', but it did not contain
4aaada448b852b5530612b90ff7394a61b9953fe. Direct fetching of that commit failed.

The above happens with commit b185cf7 using git 2.14.1
I tried with an older commit, 35ef0ca and I had no issues. Is this how we are expected to be pulling in the buildroot submodule, I couldn't find any mention of this in the readme.

Having exactly the same issue.

Typically the submodule would be fetched automatically, but the commit was removed from my Buildroot repo, so the ref doesn't exist.
My apologies, fixed now.

Thanks. Works!


Validation

Follow-up of #2073
Summary (Validation):

changed signature of filter() -> that implied that we have to allow empty error lists of Validation.Invalid
renamed mapError() to mapErrors()
restored signature of mapErrors()
added flatMapErrors()
added filterErrors()
reverted bimap() signature
added Validation.lift(Function)
added Validation.invalid(E...)
changed Validation.invalid(Seq) to Validation.invalidAll(Iterable) (name-change because of ambiguities)
renamed Validation.Builder to Validation.Builder2 (accordingly to the other Builder names)
changed some generic bounds
simplified ap() implementation
(more minor changes)

Summary (other changes):

re-added $Valid() and $Invalid() matching patterns
fixed javadoc
cleaned up some tests (independent of Validation)

Codecov Report

Merging #2195 into master will decrease coverage by <.01%.
The diff coverage is 96.22%.

@@             Coverage Diff              @@
##             master    #2195      +/-   ##
============================================
- Coverage     97.14%   97.14%   -0.01%
- Complexity     5262     5267       +5
============================================
  Files            93       93
  Lines         12143    12140       -3
  Branches       1589     1590       +1
============================================
- Hits          11796    11793       -3
  Misses          193      193
  Partials        154      154

Impacted Files
Coverage Δ
Complexity Δ

vavr/src/main/java/io/vavr/control/Try.java
95.7% <ø> (ø)
98 <0> (ø)
:arrow_down:

vavr/src/main/java/io/vavr/Value.java
93.72% <100%> (ø)
141 <2> (ø)
:arrow_down:

vavr/src/main/java/io/vavr/$.java
66.66% <100%> (+3.5%)
0 <0> (ø)
:arrow_down:

vavr/src/main/java/io/vavr/control/Validation.java
98.1% <95.83%> (-0.05%)
63 <15> (+5)

Continue to review full report at Codecov.

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


Suggest imagio and pure numpy over PIL for working with the canvas

Under "Useful tools and libraries" on https://pixels.pythondiscord.com/info/read_canvas we suggest the use of PIL/Pillow to work with the canvas.
In my opinion, we should suggest imageio + numpy over PIL. I have personally heard of a lot of people having problems with Pillow especially with the confusion between PIL and Pillow and how to install them.
Using imageio and numpy makes everything more lightweight and easier from my experience.
import imageio
import numpy as np
import requests

img_bytes = requests.get(...).content
img = np.frombuffer(img_bytes, np.uint8).reshape((X, Y, 3))

imageio.imwrite("out.png", img)

Of course, this is only my opinion and there may be uses for PIL that I missed here!

fyi: imageio docs

While I never tried imageio, I don't think suggestion numpy to someone who never worked with it is a good idea 😁

We could give alternatives in the docs, and explain why one is better over the other and in what circumstances.
Mostly using the docs as a tool to introduce people to different packages.
Notion gives readers the ability to show & hide different sections of the doc, so we should also ensure that we make use of that, so the docs don't seem too busy.


[545] New model for auxiliaryProperties added. Map of String and values

Issue: https://github.com/adobe/xdm/issues/545

We already have a way to do this with XDM - please don't create your own.   @kstreeter can you help here?

@kstreeter  @lrosenthol  please advise here. We want to be able to define and validate type of value in map.

@ankushkd My biggest problem with this approach is shown perfectly in your example - you have numbers represented as strings, which we would not want.  Data needs to be properly typed.

@lrosenthol The example could be better here, will update. Important point is, it is meant for keys we do not know yet. And these are not always fixed as well. We can not model it on the fly and  even if we try to it, it would end up as huge horizontal schema. Requirement is to model this not currently known key value pairs which are coming though ingestion channels into a Map. Downstream systems and validation services will need to know the value type is a String array.

Closing this pull request. Will open a new one with latest changes.

Please refer to https://github.com/adobe/xdm/pull/556 for latest on this.


Is there a way of pushing more data to the link resolver?

<RichText
  render={myDoc.data.title}
  linkResolver={linkResolver}
 />

linkResolver in this instance takes the _meta information for the inline link (uses UID as the resolver) however in my project in using a slug.
is there a way I can pass more data into the link resolver so that it uses slug to resolve?
example of graphQL:
... on PRISMIC_Page {
  _meta {
    uid
    type
    tags
    lang
  }
  slug
}

Hey @jodiedoubleday, sorry you didn't get a reply sooner. This comment comes almost a year and a half late. 🙃
If you are still looking for an answer, the answer is no, unfortunately. When using Prismic's GraphQL API, you are unable to fetch additional data for links within a Rich Text Field.
This limitation is only specific to document links in Rich Text fields rendered with <RichText> (which is now replaced by <PrismicRichText>. If you query for a document (i.e. not a Rich Text field) and pass it to <PrismicLink>, then you will have access to any data requested in your query.
When using Prismic's Rest API V2, you can specify nested content in a Rich Text field using GraphQuery or fetchLinks. These options will include nested data within any link field or within any links in a Rich Text field.
I'm going to close this issue, but please feel free to reply if you have any more questions. Thanks!


Investigate whether neo4j connection needs closed after each request

Having to reestablish a connection to neo4j on every request could add overhead.
https://github.com/sennetconsortium/ingest-api/blob/b1884e66aaccf981bb0a99bd5b5b0503c1956665/src/app.py#L207

@tjmadonna https://neo4j.com/docs/python-manual/current/connect/#_close_connections
Always close Driver objects to free up all allocated resources, even upon unsuccessful connection or runtime errors. Either instantiate the Driver object using the with statement, or call the Driver.close() method explicitly.

I was taking a closer look at this and don't think this is a problem. The code first checks for a global Flask object g field called neo4j_driver_instance.  I can't find the place where this field is being set so I don't know if the driver is ever being closed.
https://github.com/sennetconsortium/ingest-api/blob/b1884e66aaccf981bb0a99bd5b5b0503c1956665/src/app.py#L205C5-L205C44


Create insight empty state for usage insight - intelliJ

If we are at the entry span and there is no information about who is calling the span add the message: "Direct calls detected only, if this is called by other services consider instrumenting them with OTEL as well to see the entire call graph
".

you  might find useful information inside issue #https://github.com/digma-ai/digma-collector-backend/issues/636


Move tailwind plugin from devdeps to deps

Current dependencies on/for this PR:

main

PR #13   👈

This comment was auto-generated by Graphite.


Add  to the list of merchants

What's the name of your business?
airpodsskydd.se
What's the URL of the website?
 https://www.airpodsskydd.se/
Write a brief description of your business/service (max 50 characters) Cellphone and computer accessories store in Sweden
Enter the URL where a Monero mention can be found https://airpodsskydd.se

https://airpodsskydd.se
How do you accept Monero? (choose only one option)

[x] Monero integrations (github.com/monero-integrations) yes

[ ] Globee
[ ] Native wallet
[ ] Other payment gateaway (Coinpayments, Morphtoken, etc. Please specify)

How would you categorize your business? (choose only one option)

[ ] Exchange
[ ] Block Explorer
[ ] Payment Gateway
[ ] Web Hosting
[ ] Tool
[ ] Service
+[ ] Goods
[ ] Entertainment

Comment Goods

accessories for: Airpods, Computers, Mobiles. car Keychains, Wallets. Available in Sweden

These are not max 50 characters

Tool

You are not offering a tool, you sell goods. Please change to that category

ok fixed

Something went wrong. The description field is empty.

description: Cellphone and computer accessories store in Sweden

Please edit the title of the issue with the name of the merchant you want to add. Now it says ""

ping

Abandoned.


[Feat]: Don't use Vite library mode

Problem
Seia currently using Vite's lib mode to build the app.
https://github.com/abiriadev/seia/blob/04ba632fd2b562363460c367fd13a624d9a9f3a0/packages/seia/src/build.ts#L19-L21
This is a wrong approach since we are building an end application.
Suggestion
We can read index.html file as an entry point, or we can provide 'virual' index.html file at build time.
Willingness to Contribute

[X] I'm willing to actively contribute to it

Related Issues

#31 - May be related since Vite's lib build won't minify whitespace, which leads to __PURE__ annotations being left on the source, possibly causing this issue.
#40 - By reading index.html, we can directly solve this issue at the same time.

we can provide 'virual' index.html file at build time.

You mean 'virtual'?

@nemorize Fixed it. Thanks.


Stop stripping mainFiles extension before build

As of now, the extension of the main file is stripped before compilation. Thus, example.tex will result in a command like pdflatex example.
This works fine for .tex files, as pdflatex will search for both example and example.tex. However it fails at custom extensions, like .tikz.
This commit removes the stripping of the main files extension. So, example.tikz would be passed to pdflatex as it is.
Related issue: https://github.com/James-Yu/Atom-LaTeX/issues/86

Thank you for your contribution. Unfortunately, the PR cannot be merged as is. This is because that the change breaks its compatibility with bibtex, which can only accept main but not main.tex.
In https://github.com/James-Yu/LaTeX-Workshop , the suggested solution is to use project-specific configuration. AFAIK Atom is still developing the feature, so an alternative could be add a new placeholder.

I had a quick glance at https://github.com/James-Yu/LaTeX-Workshop: LaTeX-Workshop strips only .tex extensions. I adopted their implementation. This way, compilation works for all filetypes, while bibtex is still broken for non-.tex files.
Anyways, this is an improvement over compilation being generally broken for all types.
Also I reverted the TikZ extension commit, as it can be discussed in it's own PR https://github.com/James-Yu/Atom-LaTeX/pull/90.

Was just having a feeling of Déjà vu, wondering why the regex was there in the first place.
By stripping only .tex extensions, #42  will be broken again - that was when f35d4bc5e524ebf50866d96076fc09a68532ef95 was implemented. With this PR, we are basically reverting back to that right?

@ashthespy as James mentioned before, introducing a new placeholder would be a good solution. I was thinking of %DOC for the document with extension and %NAME for the document name without extension. Though, I like prefer it the way you propose it with %DOC and %EXT.
It is important not to break existing custom toolchains. Your idea is consistent with the previous behavior. Bravo!

Sounds like a good compromise right?
cmd = cmd.split('%DOC').join(
        # get basename and strip file extensions
        @escapeFileName(path.basename(@latex.mainFile).replace(/\.([^\/]*)$/, ''))
      )
cmd = cmd.split('%EXT').join(path.basename(@latex.mainFile).match(/\.([^\/]*)$/)[1])

Should also handle the odd case that someone wants to get funky with a main.tex.tikz ;-)
@simon123h would you be able to implement this or should I?


Synchronously track URIs in the process of opening

Synchronously track a set of incoming URIs within a Workspace. If another item is being opened at the same URI, await its Promise before continuing, to ensure that ::open() has a chance to find the Item added by the first call if it succeeds.
Fixes #13914.

Hmm, that CircleCI failure might be legit:
ResultsView
  opening results
    it opens the file containing the result in a non-pending state when the search result is double-clicked
      Expected <TextEditor 1552> to be null.
        Error: Expected <TextEditor 1552> to be null.
        at /Users/distiller/atom/node_modules/find-and-replace/spec/results-view-spec.js:417:75
        at Generator.next (<anonymous>)
        at step (/Users/distiller/atom/node_modules/find-and-replace/spec/results-view-spec.js:1:428)
        at <anonymous>

atom/find-and-replace#1006 should get this green again. I'll crunch on a few issues over there to... conserve release numbers I guess?

thanks @smashwilson!


✨ Implement alerting for Modsec & Nginx Ingress errors

Describe the feature request.
This ticket is to implement the solution outlined in this spike.
To accompany the new alerts It would be beneficial to have additional Grafana Dashboards so that we can easily review the ingress status on receipt of the alert. Example
Cloud Platform PR's

DH Dev - Awaiting approval for the dev namespace

I have found that the front end ingress name is the same across all environments, this makes it impossible to differentiate between the  environments when looking at grafana dashboards when investigating ingress errors.

I have been testing this and have found discrepencies with the alerts metrics for 4xx errors. I have asked the following question in the ask-cloud-platform channel.


#230 issue fix

When the anchor point is out of bounds, the whole marker widget disappears

#230

it fix also #128 issue

thanks for the contribution!

Your welcome, please check also #312 and #306
It's very important for my plugin and project.
Thanks

Plase consider also to release 0.5.4+1 with last pull request! Thanks 😊

👍 0.5.5 is released with your changes. Let me know if you have any issues

Thanks!! 👍

Please check #317


Add SR-IOV VF configuration support API changes

Signed-off-by: Fernando Fernandez Mancera<EMAIL_ADDRESS>

I will work on this, sorry for the late reply @tyll. Thanks!

I will work on this, sorry for the late reply @tyll. Thanks!

It is not urgent, it can wait for some more time.


Update README.rst

manylinux2 -> manylinux2010, as requested by @takluyver in #279

Thanks, I don't have much time to work on this right now so this helps very much.


[Bug]: default cn/dn cache volume error

Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Environment
- Version or commit-id (e.g. v0.1.0 or 8b23a93):
- Hardware parameters:
- OS type:
- Others:

Actual Behavior
When we not set cache volume, it will have volumeMount but not have volume created.
Expected Behavior
using memory storage
Steps to Reproduce
No response
Additional information
No response

closed by #218


Build failing -  AsnXml.targets(23, 5): [MSB4062] The "Microsoft.Build.Tasks.XslTransformation" task could not be loaded

AsnXml.targets(23, 5): [MSB4062] The "Microsoft.Build.Tasks.XslTransformation" task could not be loaded from the assembly Microsoft.Build.Tasks.Core, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.  Confirm that the  declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

At the moment it requires MSBuild because of that particular transform. The command line dotnet build will not work.

Can you please provide a tip on how to compile this? I'm having hard time to get msbuild to compile this, it's giving me C:\projects\Kerberos.NET\Kerberos.NET\Kerberos.NET.csproj.metaproj : warning MSB4078: The project file "Kerberos.NET\Kerberos.NET.c sproj" is not supported by MSBuild and cannot be built.

What version of MSBuild are you using? Are you running it from within the developer console?
Running this on a new install of Visual Studio works.
Developer Command Prompt for VS 2019 Preview >
cd c:\path\to\solution
msbuild Kerberos.NET.sln

Microsoft (R) Build Engine version 16.2.0-preview-19310-01+28ca8b4ea for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
Build started 8/13/2019 6:40:03 PM.
Project "C:\path\to\Kerberos.NET\Kerberos.NET.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Debug|Any CPU".
Project "C:\path\to\Kerberos.NET\Kerberos.NET.sln" (1) is building "C:\path\to\Kerberos.NET\Kerberos.NET\Kerberos.NET.csproj"
 (2) on node 1 (default targets).
_CheckForNETCoreSdkIsPreview:
C:\Program Files\dotnet\sdk\3.0.100-preview6-012264\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInfer
ence.targets(158,5): message NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-
preview [C:\path\to\Kerberos.NET\Kerberos.NET\Kerberos.NET.csproj]

.......... snip .........

Done Building Project "C:\path\to\Kerberos.NET\Kerberos.NET.sln" (default targets).

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:14.90

That worked. Thanks

This worked. I'm still confused as to why "dotnet msbuild" wouldn't compile it though, the whole difference between dotnet and msbuild cli is not very obvious.
Another question, I noticed targeting for library is now netcoreapp vs netstandard. Is there a reason? We've been using it for legacy WCF work to accept and validate tickets without domain joining machines, which is now going to make it problematic...

There's a known issue in dotnet build where it just doesn't exist yet. You'll notice the last dozen or so major changes took on a new ASN encoder so if can do both creation and validation of tickets. This was forked from the corefx repo.
This necessarily required upgrading it to 2.1. I had to rebuild the project which took netcoreapp by default. I haven't tried standard yet. One of the reasons I haven't updated the nuget package yet.