Extraprovincial company with missing DBA records - Clicking the DBA links results in an empty entity page.

While fixing a related sync issue with a company I came across the fact that none of its related DBA relationship records exist in the OrgBook, and I'm wondering if this is expected.

If not, we need to determine why the records are missing.
If so, we need to address the UI/UX issue with being able to open empty entity pages.

Affected Company:

https://orgbook.gov.bc.ca/entity/A0120859

There are 3 DBA relationships associated to this company (5 records total, two of which have been replaced), none of which exist in the OrgBook.  The result when you click on them is an empty entity page:

Seems to have been resolved (see screenshot):


Added api_origin option

An alternative to SOCKS proxy is to make configurable Telegram API origin. It will allow to use nginx reverse-proxy outside of perimether.
#20

Nice idea, @amokrushin!
I will try to fix CI build (it was failed due to Sentry uses outdated versions of pytest...) and will approve your improvement.

So, problems with Sentry's dependencies are solved. :tada:
However, some problems in the pull request appeared at the test stage. I will describe it and let's try to fix it :)


Fixed  HttpException: Unsupported cookie policy [default]

I occurred the error:

WARN  2016-04-13/17:00:26.428 [Crawler 1] WebCrawler -|79581|- Unhandled exception while fetching http://mp.weixin.qq.com/s?__biz=MzIzNzA0ODQxOA%3D%3D&mid=401543508&idx=1&sn=292e96fd82ca1207de11af1aacd03353: null
INFO  2016-04-13/17:00:26.429 [Crawler 1] WebCrawler -|79581|- Stacktrace:
org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
at edu.uci.ics.crawler4j.fetcher.PageFetcher.fetchPage(PageFetcher.java:274)
at edu.uci.ics.crawler4j.crawler.WebCrawler.processPage(WebCrawler.java:323)
at edu.uci.ics.crawler4j.crawler.WebCrawler.run(WebCrawler.java:278)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.http.HttpException: Unsupported cookie policy: default
at org.apache.http.client.protocol.RequestAddCookies.process(RequestAddCookies.java:150)
at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:132)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:193)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)

It is because of the error usage of cookie policy, we can find more informs from the links below and I think STANDARD policy is the better choice:
https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/config/CookieSpecs.html
https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/constant-values.html#org.apache.http.client.config.CookieSpecs.DEFAULT

It doesn't make any sense
If the default is "bad" then how did it work till today on thousands and thousands of sites ?

@Chaiavi Replace the policy default with standard, it works, the errors I've provided above, I suppose a few people met the same problems but not tell, I suggest that check the policy to standard  and run the integration tests, if the tests could pass, please think about if adopt the pull request.

@Chaiavi @yasserg I found the error happens in version 4.2, 4.1 or below is okay. The change cc99492215c4f01fa055eb293548b5cdd4fcd415 brought the problem. This change includes the CookieSpec update :
-        RequestConfig.custom().setExpectContinueEnabled(false).setCookieSpec(CookieSpecs.BROWSER_COMPATIBILITY)
+        RequestConfig.custom().setExpectContinueEnabled(false).setCookieSpec(CookieSpecs.DEFAULT)

Perhaps you may have a look.

I see.
@yasserg you changed from BROWSER_COMPATIBILITY to DEFAULT
Do you think DEFAULT is better than STANDARD ?

I've just hit this bug, and the reason is that I'm running my crawler inside a spark driver, which means I'm getting the version of apache client that is bundled with spark which is older then the version depended on by crawler4j. The older version doesn't have DEFAULT, BROWSER_COMPATIBLITY is the old, now deprecated name for DEFAULT.
I don't think switching this to STANDARD is the right choice. I'd favor switching it back to BROWSER_COMPATIBILITY to have better compatibility when running against older versions of apache client.

According to apache.org paper, I think STANDARD is the better choice and compatible with the version  'DEFAULT' while ['Netscape draft' | 'RFC 2965' | 'RFC 2109' | 'Browser compatibility'] is obsolete, Standard strict is without good compatibility and Ignore cookies is not suitable for the scene.

Thank you all for your research and findings!
You were very very helpful.
@winstonewert I am sorry but the browser compatibility mode is deprecated so we won't go back to a deprecated mode.
@IVANOPT You are righ, and the link to the official apache paper is what we need to make our decision,
We should change the mode to STANDARD.
In order to understand the decision please see section 3.2 .
@yasserg Please merge this pull request and close this issue


Slow Training- Need entire model

Hi. Thanks for the code and efforts. My training is slow. It takes about 4 hours per epoch. Do you by any chances have the "entire model" saved somewhere that you can share with me? This is the code I use to save the whole model so I can load it in Java later on (Checkpoints alone won't work):
        # Save the weights using the `checkpoint_path` format
        # Include the epoch in the file name (uses `str.format`)
        checkpoint_path = "checkpoints/cp-{epoch:04d}.ckpt"
        checkpoint_dir = os.path.dirname(checkpoint_path)
        shutil.rmtree(checkpoint_dir)
        model.save_weights(checkpoint_path.format(epoch=0))

        # Save the entire model
        modelSavePath = 'saved_model'
        shutil.rmtree(modelSavePath)
        model.save('saved_model/FaceVerify')

So I also can't load the saved model when I try to predict!! I think because we have freez and unfreez they backbone models don't get saved with the model. Do you know a way to save the entire model with the backbone models (MobileNet, Facenet) altogether? Here is the code I use to load the model:
import tensorflow as tf
from PIL import Image
from tensorflow import keras
import numpy as np
from facenet import Facenet
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
model = tf.keras.models.load_model('saved_model/FaceVerify')
And here is the error I get:
File "predict_MyModel.py", line 21, in
model = tf.keras.models.load_model('saved_model/FaceVerify')
File "C:\Users\ll\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\saving\save.py", line 187, in load_model
return saved_model_load.load(filepath, compile, options)
File "C:\Users\ll\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\saving\saved_model\load.py", line 131, in load
training_config))
File "C:\Users\ll\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\saving\saving_utils.py", line 217, in compile_args_from_training_config
loss = _deserialize_nested_config(losses.deserialize, loss_config)
File "C:\Users\ll\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\saving\saving_utils.py", line 262, in _deserialize_nested_config
for k, v in config.items()
File "C:\Users\ll\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\saving\saving_utils.py", line 262, in
for k, v in config.items()
File "C:\Users\ll\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\saving\saving_utils.py", line 258, in _deserialize_nested_config
return deserialize_fn(config)
File "C:\Users\ll\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\losses.py", line 1854, in deserialize
printable_module_name='loss function')
File "C:\Users\ll\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\keras\utils\generic_utils.py", line 378, in deserialize_keras_object
'Unknown ' + printable_module_name + ': ' + object_name)
ValueError: Unknown loss function: _triplet_loss

The slow training speed may be due to the comparison of data loading, rather than network reasons. You can try to turn off data enhancement and use a better solid state drive. When not using eager mode, you can set num_works.
I suggest that you don't need to save during training, you can save during prediction, just add the code in the facenet.py file. It should have nothing to do with freezing and non-freezing.

Thanks for your reply. I did as you suggested. Left the train.py code untouched and instead added the save entire model code to the facenet.py. Now it does not save anything at all!
Are you sure that is the right place to save the model?
I need the fully trained model entirely saved after training. So when I predict, I load the entire model, take an image, read it and make prediction. My deployment environment is in JAVA, so all prediction has to happen in JAVA. That's why I need to save the ENTIRE model.
Here is my modified facenet.py code:
import os
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from nets.facenet import facenet
#--------------------------------------------#
使用自己训练好的模型预测需要修改2个参数
model_path和backbone需要修改！
Use the self-trained model to predict 2 parameters need to be modified:
model_path and backbone need to be modified!
#--------------------------------------------#
class Facenet(object):
_defaults = {
#--------------------------------------------------------------------------#
#   使用自己训练好的模型进行预测要修改model_path，指向logs文件夹下的权值文件
#   训练好后logs文件夹下存在多个权值文件，选择验证集损失较低的即可。
#   验证集损失较低不代表准确度较高，仅代表该权值在验证集上泛化性能较好。
# Use the self-trained model to make predictions to modify the model_path to point to the weight file under the logs folder
# After training, there are multiple weight files in the logs folder, just choose the one with lower validation set loss.
# The lower loss of the verification set does not mean higher accuracy, but only the better generalization performance of the weight on the verification set.
#--------------------------------------------------------------------------#
"model_path"    : "model_data/facenet_mobilenet.h5",
#--------------------------------------------------------------------------#
#   输入图片的大小。
#--------------------------------------------------------------------------#
"input_shape"   : [160, 160, 3],
#--------------------------------------------------------------------------#
#   所使用到的主干特征提取网络
#--------------------------------------------------------------------------#
"backbone"      : "mobilenet"
}
@classmethod
def get_defaults(cls, n):
    if n in cls._defaults:
        return cls._defaults[n]
    else:
        return "Unrecognized attribute name '" + n + "'"

#---------------------------------------------------#
#   初始化Facenet
#---------------------------------------------------#
def __init__(self, **kwargs):
    self.__dict__.update(self._defaults)
    for name, value in kwargs.items():
        setattr(self, name, value)

    self.generate()

def generate(self):
    model_path = os.path.expanduser(self.model_path)
    assert model_path.endswith('.h5'), 'Keras model or weights must be a .h5 file.'
    #---------------------------------------------------#
    #   载入模型与权值
    #---------------------------------------------------#
    self.model = facenet(self.input_shape, backbone=self.backbone, mode="predict")
    self.model.load_weights(self.model_path, by_name=True)
    print('{} model loaded.'.format(model_path))

def letterbox_image(self, image, size):
    if self.input_shape[-1] == 1:
        image = image.convert("RGB")
    iw, ih  = image.size
    w, h    = size
    scale   = min(w/iw, h/ih)
    nw      = int(iw*scale)
    nh      = int(ih*scale)

    image   = image.resize((nw,nh), Image.BICUBIC)
    new_image = Image.new('RGB', size, (128,128,128))
    new_image.paste(image, ((w-nw)//2, (h-nh)//2))
    if self.input_shape[-1] == 1:
        new_image = new_image.convert("L")
    return new_image

#---------------------------------------------------#
#   检测图片
#---------------------------------------------------#
def detect_image(self, image_1, image_2):
    #---------------------------------------------------#
    #   对输入图片进行不失真的resize
    #---------------------------------------------------#
    image_1 = self.letterbox_image(image_1, [self.input_shape[1], self.input_shape[0]])
    image_2 = self.letterbox_image(image_2, [self.input_shape[1], self.input_shape[0]])
    #---------------------------------------------------#
    #   进行图片的归一化
    #---------------------------------------------------#
    image_1 = np.asarray(image_1).astype(np.float64) / 255
    image_2 = np.asarray(image_2).astype(np.float64) / 255
    #---------------------------------------------------#
    #   添加上batch维度，才可以放入网络当中预测
    #---------------------------------------------------#
    photo1 = np.expand_dims(image_1, 0)
    photo2 = np.expand_dims(image_2, 0)
    #---------------------------------------------------#
    #   图片传入网络进行预测
    #---------------------------------------------------#
    output1 = self.model.predict(photo1)
    output2 = self.model.predict(photo2)
    #---------------------------------------------------#
    #   计算二者之间的距离
    #---------------------------------------------------#
    l1 = np.sqrt(np.sum(np.square(output1 - output2), axis=-1))

    # plt.subplot(1, 2, 1)
    # plt.imshow(np.array(image_1))

    # plt.subplot(1, 2, 2)
    # plt.imshow(np.array(image_2))
    # plt.text(-12, -12, 'Distance:%.3f' % l1, ha='center', va= 'bottom',fontsize=11)
    # plt.show()
    return l1
# Save the weights using the `checkpoint_path` format
# Include the epoch in the file name (uses `str.format`)
checkpoint_path = "checkpoints/cp-{epoch:04d}.ckpt"
checkpoint_dir = os.path.dirname(checkpoint_path)
shutil.rmtree(checkpoint_dir)
model.save_weights(checkpoint_path.format(epoch=0))

# Save the entire model
modelSavePath = 'saved_model'
shutil.rmtree(modelSavePath)
model.save('saved_model/FaceVerify')

You can load the save code in the generate method of the facenet class, you will not call it outside of the facenet class at all

Just wanted to update you that I fixed the error when loading the saved model by turning off the model compilation when loading it via keras as follows:
model = tf.keras.models.load_model('saved_model/FaceVerify', **compile=False**)
I trained the model myself using a small subset of CASIA-WebFace dataset (only 15,000 images). I was not happy with the results. So I trained it again on a medium size subset of dataset (this time 83,000 images). But the results have not significantly improved. In both cases I get training accuracy of 0.95 and validation accuracy of 0.85. So It works. But when I test it on my own dataset, the l1 distance values of the same person and different persons are very close (0.6 for same person, 0.8 for different people). While if I load the pre-trained model of Facenet I get better distinction (0.47 and 1.2). So do you think if I train on the whole CASIA-WebFace dataset (494414 images) I will be able to achieve similar results to the pre-trained model?
BTW, here is the code I use for prediction from my own saved model:
`import tensorflow as tf
from PIL import Image
from tensorflow import keras
import numpy as np
from facenet import Facenet
from nets.facenet import facenet
from nets.facenet_training import FacenetDataset, LFWDataset, triplet_loss
import mtcnn
from numpy import expand_dims
from numpy import asarray
from mtcnn.mtcnn import MTCNN
from os import listdir
from matplotlib import pyplot
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
model = tf.keras.models.load_model('saved_model/FaceVerify', compile=False)
Check its architecture
model.summary()
function for face detection with mtcnn
extract a single face from a given photograph
def extract_face(filename, required_size=(160, 160)):
# load image from file
image = Image.open(filename)
# convert to RGB, if needed
image = image.convert('RGB')
# convert to array
pixels = asarray(image)
# create the detector, using default weights
detector = MTCNN()
# detect faces in the image
results = detector.detect_faces(pixels)
# extract the bounding box from the first face
x1, y1, width, height = results[0]['box']
# bug fix
x1, y1 = abs(x1), abs(y1)
x2, y2 = x1 + width, y1 + height
# extract the face
face = pixels[y1:y2, x1:x2]
# resize pixels to the model size
image = Image.fromarray(face)
image = image.resize(required_size)
face_array = asarray(image)
return face_array
load the photo and extract the face
facePixels1 = extract_face('img/201908800240013996.bmp')
facePixels2 = extract_face('img/201908800240013994.bmp')
image_1 = facePixels1
image_2 = facePixels2
Normalize the picture
image_1 = np.asarray(image_1).astype(np.float64) / 255
image_2 = np.asarray(image_2).astype(np.float64) / 255
Add the batch dimension before it can be put into the network to predict
photo1 = np.expand_dims(image_1, 0)
photo2 = np.expand_dims(image_2, 0)
The picture is transmitted to the network for prediction
output1 = model.predict(photo1)
output2 = model.predict(photo2)
output1String1 = output1[0]
output1String2 = output1[1]
output1Array1 = np.array(output1String1)
output1Array2 = np.array(output1String2)
output2Array1 = np.array(output2[0])
output2Array2 = np.array(output2[1])
Calculate the distance between the two
l11 = np.sqrt(np.sum(np.square(output1Array2 - output2Array2), axis=-1))
print("probability only 128 vector = %5.3f" % l11)`

83000 pictures are not enough. Oh, hundreds of thousands of pictures are also small data sets. Under normal circumstances, there is still a big gap between the network effect after training with hundreds of thousands of pictures and that in the paper. It seems that more advanced face recognition networks such as arcface also need millions of data sets.

Sorry, 3q, I am a little busy.


EarlGrey2 CocoaPods White-box working!

Hi all,
Many thanks to @tirodkar for his help in this.
EarlGrey 2 CocoaPods with white-box testing working example:
We recently migrated from EarlGrey 1 to EarlGrey 2, since we installed EarlGrey 1 with CocoaPods for white-box testing, it was important to us to enable EarlGrey 2 with similar setup and functionality, while unlocking iOS 14 and other features like deeplinking and crash reporting.
Here are the key gotchas that we encountered which will hopefully help another team enable EarlGrey 2 with whitebox testing installed using CocoaPods.

Create the generic eDistantObject bundle and UI test bundle as specified in the Xcodeproj white-box setup.
In the Podfile, add EarlGreyApp to the eDistantObject bundle instead of the application target, then weaklink EarlGreyApp to the eDistantObject bundle. Add EarlGrey Test to the UI test bundle.
P.S. This works with !use_frameworks, as you can selectively add !use_frameworks to each target that needs it and omit it where necessary.

To weaklink EarlGreyApp to eDistantObject bundle, add it as you would, then add the following to Podfile:
 post_install do |installer|
   # AppFramework is installed by EarlGreyApp and must be weakly linked to lazy load
   # symbols as eDistantObjectBundle is injected into the app
   targets_to_weaklink=['eDistantObjectBundle']
   frameworks_to_weaklink=['AppFramework']

   targets_to_weaklink.map!{|t| t="Pods-#{t}"}
   installer.pods_project.targets.each do |target|
     next unless targets_to_weaklink.include?(target.name)

     target.build_configurations.each do |config|
       base_config_reference = config.base_configuration_reference
       unless base_config_reference.nil?
         xcconfig_path = base_config_reference.real_path
         xcconfig = File.read(xcconfig_path)
         frameworks_to_weaklink.each do |framework|
           xcconfig = xcconfig.gsub(/-framework "#{framework}"/, "-weak_framework \"#{framework}\"")
         end
         File.open(xcconfig_path, "w") { |file| file << xcconfig }
       end
     end
   end
 end

Run pod install, this will add the EarlGreyApp and EarlGreyTest pods to your project
Add a Copy Files phase in UI test bundle to copy AppFramework.framework to

$(TARGET_BUILD_DIR)/../../.app/Frameworks

Recommend to use a "generic UI test bundle" to run this step once, so that if more UI test bundles are duplicated/added, this step isn't rerun multiple times.

That's it, I think. You can now continue to set up rest of white-box setup as specified in the current white-box setup doc.
This will enable EarlGrey 2, but also avoids other issues where the app will not open if not run by EarlGrey 2.

@shaneong I am having problems with the first gotcha

Hi @tirodkar, Followed the above approach along with white box testing ( https://github.com/google/EarlGrey/blob/earlgrey2/docs/swift-white-boxing.md ). We are able to execute UI tests. However, with whit box testing, it fails for the below error

We have some thing like below in our HeelperBundle
We wrote an EarlGreyCommunicator in Helper Bundle to access variable/function state in UI tests. EarlGreyCommunicator is a protocol to update the feature flag when the UI test gets executed.
 @objc
protocol EarlGreyUITestCommunicator {
    func updateFeatureFlag(for flagName: String, value: Bool)
}

However not able to access EarlGreyTest  we need that because we are writing an extension on
//import EarlGreyTest ( This `EarlGreyTest` is not accessible here :(  )
extension GREYHostApplicationDistantObject: EarlGreyUITestCommunicator {
    func updateFeatureFlag(for flagName: String, value: Bool) {
        //code for updating the feature flag.
    }
}

There is one small thing we might be missing. Any more pointer in solving this issue would be greatly appreciated.

Did you launch your application in your test?
XCUIApplication().launch()

Off course yes..

The error seems pretty straightforward actually - as Shane pointed out here, you must add a post-install script in your CocoaPods to get the host bundles to work. It seems like your bundle isn't actually linked into the application process which is causing this problem.

@tirodkar  i have done the post_install steps as well in the Podfile. Still same issue.
post_install do |installer|

  targets_to_weaklink=['bup-sample-ios-EarlGreyUITestHelperBundle']
  frameworks_to_weaklink=['AppFramework']

  targets_to_weaklink.map!{|t| t="Pods-#{t}"}
  installer.pods_project.targets.each do |target|
  next unless targets_to_weaklink.include?(target.name)
   target.build_configurations.each do |config|
     base_config_reference = config.base_configuration_reference
     unless base_config_reference.nil?
       xcconfig_path = base_config_reference.real_path
       xcconfig = File.read(xcconfig_path)
        frameworks_to_weaklink.each do |framework|
        xcconfig = xcconfig.gsub(/-framework "#{framework}"/, "-weak_framework \"#{framework}\"")
      end
      File.open(xcconfig_path, "w") { |file| file << xcconfig }
     end
   end
 end
end

Oh, also
//import EarlGreyTest ( This `EarlGreyTest` is not accessible here :(  )

The bundle is part of the application - this will not be accessible here.

@tirodkar  i tried moving this extension to UI test target as EarlGreyTest isnt accessible , it compiles fine though but when it tries to access the host objects methods i see *** -[NSProxy doesNotRecognizeSelector:updateFeatureFlagFor:value:] called! (NSInvalidArgumentException) error.

So @tirodkar  what u meant to say is add this in extension GREYHostApplicationDistantObject: EarlGreyUITestCommunicator {  app target ?

Sorry if this isn't clear in the white-boxing docs but you cannot have the whole GREYHostApplicationDistantObject added in the UI Test target as it is a purely app side object. The protocol which defines the function declarations must be added to both the app and the test target. Please take a look at the SwiftTests in the FunctionalProject for more information.

@tirodkar  we are performing weak linking.

Hi @shaneong  what does your Helper bundle bridging header file contain? Also does ur PODS_ROOT/EarlGreyApp/ contains below files or more than that ?

header contain ?

Got it working by adding below two entries in the Build settings  HEADER_SEARCH_PATHS for the Helper Bundle

"${PODS_CONFIGURATION_BUILD_DIR}/eDistantObject/eDistantObject.framework/Headers"
"${PODS_CONFIGURATION_BUILD_DIR}/EarlGreyTest/EarlGreyTest.framework/Headers"

Thank you @shaneong for sharing the extra steps that we need to follow to get white-boxing working with CocoaPods 👍
I had to alter the post_install script that you shared to weak link a few more frameworks and not just 'AppFramework'. I have put together a minimal Xcode workspace here which demonstrates this. See the Podfile in that workspace in particular. Note that I added the 'EarlGreyTest' pod to my helper bundle as well as 'EarlGreyApp' so that I could import the 'EarlGreyTest' module in the classes defined in my helper bundle.
I will endeavour to call out other subtleties in the README file in that workspace so that other developers can have a smoother ride in getting white-boxing working with CocoaPods.


[FRONTEND] [HYBRID] Support schedule interfaces on hybrid script

I have an ongoing PR(#1382), which has a hacky support on manipulating IR through some IR transform passes.
@tqchen suggested that I should refine it to make it able to reuse compute.op-like data structures. Then my solution comes to build some kind of op node between compute.op and extern.op, which supports: split, loop_type, pragma, reorder, and bind schedules.
import tvm
@tvm.hybrid.script
def outer_product(a, b, c):
    for j in range(128):
        for i in range(128):
            c[i,j] = a[i] * b[j]

a = tvm.placeholder((128, ), 'float32', 'a')
b = tvm.placeholder((128, ), 'float32', 'b')
c = tvm.placeholder((128, ), 'float32', 'c')
op = outer_product(a, b, c) #Currently it returns a HalideIR root, but I want to refactor it to a HybridOpNode
sch = tvm.create_schedule(op)
jo, ji = sch[op].split(j, 16)
io, ii = sch[op].split(i, 16)
sch[op].reorder(io, ii, jo, ji)
sch[op].vectorize(ji)

Points to be discussed:

Do I really need a HybridOpNode?

I can either extend ExternOpNode to be able to schedule or create a new Op type, but it requires aggressive refactor to fulfill my assumptions:

Unlike conventional op, which takes several input operands and produces one output, hybrid op takes several arguments, and side-effect may happen: a tensor argument can both be an input and an output, because users may want some in-place tensor algorithms. However, in ExternOp, there are only inputs and outputs, and only outputs allow modification on the tensor buffer.
It requires some compilation pass to detect some loop levels that can be manipulated by the schedule interfaces, so it requires some extra attributes to record this information. However, this information is redundant to a general ExternOpNode.

However, yet, I have not had a clear plan for the HybridOpNode, like attributes and analysis

sch[op]'s op seems to be redundant:

As far as I know, all the schedule properties like split, vectorize, and bind are members of Stage
However, in hybrid script there is only one stage inside, which makes op, the stage specifier, looks redundant

@were Can you post a complete code example so we can start discussing the API?

@kevinthesun

IMO, schedule for hybrid should be some passes, in which they can do optimize for IR stream automatically,
hybrid is input for tvm, just like c/c++ is input for llvm/gcc, just see how llvm/gcc to do schedule? a lots of passes! compute is your program logic, and you don't need to do too much schedule, of course you can, compiler will do most optimizations for you.
So the schedule api for users should be some pragmas for making hints, and in tvm, passes will optimize according to these hints.

@xqdan Several reasons for scheduling interfaces:

We can explore the solution space of tuning independent with the hybrid function
We can use some compilation techniques to detect those loop levels can be manipulated
We can create Operation node for this function body to make it easier to glue to an ML flow

@were If side effect is the major issue to support schedule interfaces, can we initially just disable in-place operation for parsing? We can then reuse ExternOpNode for now and adding support for side effect later. This should be sufficient for gluoncv models.

@were if you take a look at the passes of gcc, you will find lots of loop transformations. compute and schedule are also separated in compiler, the only difference here is schedule in tvm is done manually, and compiler can optimize in a automatically way or based on hints/flags from users. also gcc has very aggressive transformation like software pipelining for loops.
https://github.com/gcc-mirror/gcc/blob/229c0ef777161ec5adfb71ef1611af502541ccda/gcc/passes.def
```
NEXT_PASS (pass_tree_loop_init);
NEXT_PASS (pass_tree_unswitch);
NEXT_PASS (pass_scev_cprop);
NEXT_PASS (pass_loop_split);
NEXT_PASS (pass_loop_jam);
/* All unswitching, final value replacement and splitting can expose
empty loops.  Remove them now.  */
NEXT_PASS (pass_cd_dce);
NEXT_PASS (pass_iv_canon);
NEXT_PASS (pass_loop_distribution);
NEXT_PASS (pass_linterchange);
NEXT_PASS (pass_copy_prop);
NEXT_PASS (pass_graphite);
PUSH_INSERT_PASSES_WITHIN (pass_graphite)
NEXT_PASS (pass_graphite_transforms);
NEXT_PASS (pass_lim);
NEXT_PASS (pass_copy_prop);
NEXT_PASS (pass_dce);

making split reorder such things as tvm passes are not violating the tvm philosophy. Also I don't see any differences between pragma + passes with tvm schedule api for tuning, pragma and passes's flag also can be tuned, lots of research is about how to tune the options of compiler flags for better performance.

For aggressive or not, and automatically or not, if controlled by users(with schedule api/pragmas/flag options), schedule or transformations are not automatic but can be aggressive. if doing by tvm itself, not aggressive but automatic, both can be options for users.

IMO, the similar story is repeating in another place, you can see operators fusion just looks like inter procedure optimizations(eg inline), and passes in tvm is intro procedure, for example, double buffer is just a subset of software pipeline, BTW, you can control double buffer in schedule api, but actually it's a real pass.

For this issue, we don't need to care about the separation thing for hybrid, that's fine, and I suggest we implement split/reorder/.. in c++ passes, and provide api for users controlling for now, and the next would be we can analyze ir stream in tvm and decide to optimize or not.

It is always good to implement user control first, then start to automate them with passes

@were can you start with an implementation? Currently seems things are still a bit blocked by not being able to run extern block on that, we should start with that

@tqchen Thay may require moderate modification to the structure of OpNode.
Thus, I need to be careful.

You can try to modify ExternOpNode, or create a HybridOpNode to support this, and open a PR when it is ready for review

One question is whether passing a constant argument is supported now. If not, can we pass expr, like FloatImm?


Updates

Add additional controls to Specular BTDF
Add Sheen BRDF
Redo material name display

I fixed the areas you specifically mentioned.  As far as the 'one parameter per line' that's going to be a major project as there are hundreds of parameters that will need to be updated.


Fix for switch debug & release builds invalidates build

Added for products too!

Is this ready for rereview?

We're thinking to write some tests to make sure other things aren't getting broken.  Ankit was worried about this.

This looks good.

@swift-ci smoke test

Yay yay yay! Can’t wait for a toolchain...


Trouble stubbing yaml file

Subject of the issue
Here's a snippet
The class where I'm loading YAML file
class FeatureStorageService
  FEATURES = YAML.load_file(Rails.root.join("config/features.yml"))
end

The test
describe FeatureStorageService do
  let!(:yaml)     { YAML.load_file(Rails.root.join("spec/factories/files/features.yml")) }

  before do
    allow(YAML).to receive(:load_file).and_call_original
    allow(YAML).to receive(:load_file).with(Rails.root.join("config/features.yml")).and_return(yaml)
  end
end

The spec doesn't load the file at "spec/factories/files/features.yml" instead loads the original one.
I have cross checked the syntax so many times.
Also, the stubbing works fine for my controller spec which is accessing the same service(class shown here) with the same syntax.
Your environment
Ruby version: 2.3
gem 'rspec-rails', '~> 3.4.2'
gem 'rails', '4.2.7'

Hello! So this is not a bug, whats happening here is that FeatureStorageService::FEATURES is being defined when the class is loaded (by rails), you want to stub that not the yaml load, as thats already happened.

@JonRowe I tried stunning the constant, but failed to do so.
If possible can you help me with the syntax.
Thanks

You're looking for stub_const, see https://relishapp.com/rspec/rspec-mocks/docs/mutating-constants. These sorts of questions are best asked on our mailing list or stack overflow and the like as our time is limited! :)

I had tried it earlier, and other things which I could find. Though thanks for the quick replies.


03 - Inject and manage common objects via a request filter

Remove the burden of allocating and managing common objects from handlers, endpoints, etc. and use a Request filter to do all the work. This has the additional benefit of adding security to every request without the need for developer discipline.
Note: you can see how this improves on the request logging PR in that the creation and closing of the request logging session is now auto-managed.

Not necersarily related to this PR, but I was looking at #85 and noticed the interface to get a RequestLoggingSession from a request ID returns an Optional. WDYT about making it return the NOOP implementation instead of an Optional.empty()? It would make using it nicer.

Yeah, once we have that PR it doesn't need to be optional anymore. I'll change that in that PR.


Crash on android less than 5.0

Hi there!
I'm trying to get it working on android 4.0.4 and have troubles with unimplemented 'rand', 'srand' and some other functions.
The problem looks similar to this:
https://stackoverflow.com/questions/27338318/cannot-load-library-reloc-library1285-cannot-locate-rand
It works fine on devices with api >= 21 and crashes on older ones.
When I change platformVersion to 19 in build.gradle, I get an error: undefined reference to 'rand'..
Is it possible to use SvgRen on android with api less than 21?
Thanks in advance for any ideas and thoughts )

How do you use it with android? Do you install it as described in the wiki here? Or do you compile it from sources yourself?
In that stackoverflow topic there is an answer which suggests some kind of solution https://stackoverflow.com/a/38499898/1221106 have you tried it?
What is the exact list of functions which are unimplemented in your case?
It seems like there are some differences in standard library between api 20 and 21...

I build shared library with your slightly modified build.gradle.
These functions are defined in stdlib.h and cannot be located at compile time when I set platformVersion option to 19 and at runtime when it's set to 21.
static  inline int rand(void) {
return (int)lrand48();
}
static  inline void srand(unsigned int __s) {
srand48(__s);
}
static  inline long random(void)
{
return lrand48();
}
static  inline void srandom(unsigned int __s)
{
srand48(__s);
}

Can you try defining those functions yourself as described in https://stackoverflow.com/a/38499898/1221106 ? It might be the solution, but I think would be nice to have some kind of #ifdef to do it on when building for api 19

I will try right now

some related info
https://issuetracker.google.com/issues/37000040
They state that that is Intended Behavior and Won't Fix (

I assume Android 4 devices are still quite common and it is undesirable to drop their support?

Yes, they are still pretty popular

I managed to get it working on Android 4.0.4 device by manually adding above mentioned functions to my sources

Good that you got it working, but does it compile on api 21 now with those functions added?

Yes, it can be compiled on api 21 with both static and shared stdlib and works perfectly on devices targeting API >= 21 but on the older devices it works only with statically linked stdlib.

Ok, good to know! Maybe this solution helps somebody else. Thanks!


featureGate adds the --feature-gates arg on all deployments and break Azure Service Operator deployed alongside CAPZ

What steps did you take and what happened:
[A clear and concise description on how to REPRODUCE the bug.]
When setting specs.manager.featureGates, deployments other than the manager gets patched with the --feature-gates flag.
For instance CAPZ deploys Azure Service Operator, which breaks when using featureGates because the --feature-gates flag is added to the deployment args.
What did you expect to happen:
featureGates should only patch the manager deployment.
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Environment:

Cluster-api-operator version: v0.7
Cluster-api version: 1.5.3
Minikube/KIND version:
Kubernetes version: (use kubectl version): 1.24
OS (e.g. from /etc/os-release):

/kind bug
[One or more /area label. See https://github.com/kubernetes-sigs/cluster-api-operator/labels?q=area for the list of labels]

/triage accepted

@Fedosin thanks a lot for fixing this so fast. Could it be possible to have a 0.8.1 release to include this patch ?

@synthe102 hey, np :) thank you for reporting the bug. I've already proposed a backport: https://github.com/kubernetes-sigs/cluster-api-operator/pull/391


[camerax] Change unawaited usages to await for calls to stop asynchronous camera operations

Currently, the camera_android_camerax implementation uses unawaited to not wait for calls to stop using certain UseCases and disposing of the camera. This may introduce race conditions as discussed in https://github.com/flutter/flutter/issues/115925#issuecomment-1664574560.
The unawaited usages should be revisited and only used when there is no way to ensure asynchronous completion on the native side.

Here is an example of a place to reconsider using unawaited: https://github.com/flutter/packages/pull/3586#discussion_r1294892940


Notebook Instance lifecycle configuration (with samples)

This is a pull request for the Notebook Instance Lifecycle configuration and its samples. It contains all crud operations.
Files added:
custom_delta.go: This file contains two functions that return an updated delta if the onCreate/onStart values have changed.
Both delta functions do a nil check, length check and finally check if the contents of onStart/onCreate have changed. The code generator does not support this natively so it has to be written by hand for now.
Note: onCreate and onStart have identical structures thus both delta functions are the same except for different variable names.
delta_post_compare.go.tpl: hook that goes in delta.go that calls the functions in custom_delta.go
my-notebookinstance_lifecycle_config.yaml - Sample Notebook Instance Lifecycle configuration
Changed files:
generator.yaml: Added the Notebook Lifecycle configuration and a hook for delta. Also added a field called LastModifiedTime to inform the user about the last time the resource was modified.

/ok-to-test


Robolectric 3.4.2?

Any interest in bumping this? Currently I cannot set SDK to 24.

I'm willing to take a stab at this (currently looking at the code), but there are a LOT of breaking changes since Robolectric 3.0, and I'm not familiar at all (yet) with the inner workings of that project.

Yay, found a migration guide: http://robolectric.org/migrating/#migrating-from-33-to-34

I make another project based on RoboSpock code, which should be more or less work on Robolectric 3.4
ElectricSpock

What about this issue? https://github.com/hkhc/electricspock/issues/3

Just released ElectricSpock 0.6, should be OK with Robolectric 3.4.2.

Thank you! I will take a look.

Happy to report ElectricSpock currently meets my needs.


Added invert method to vectors.

Useful to invert normals or direction if necessary.

In the Matrix classes, there's inv() to get the inverse. Does it make sense to stick with the same method name here?

I never knew you can multiply -1 to get an inverted value. Now I'm unsure should I close this pull request since it can multiply -1 to invert the vector. I'll let members decide what to do with this pull request.
I'm petty sure it dose since most vector's method has shortened names.

I'd vote to close this as not useful. One could call scl(-1) as mentioned above to get the same result. If it does get accepted for some reason, I'd vote to name it negate()or something; "inv" for matrices means multiplicative inverse, which is well-understood. People rarely refer to the additive inverse of vectors, which is what this would be.

I agree - thank you for your response. I hardly remember this pull request, It wasn't long ago. Anyway - it closed now.


Fixes for Elixir warnings

See:

#5

Added parenthesis around a do: target (backward compatible)
Replace Code.load_file (deprecated) by Code.require_file (available since at least Elixir 1.10)

I did not commit changes in formatting, and wonder if you would welcome a formatting PR separately.

Hi @whitfin, any chance you could merge this PR and issue a release? Looking at upgrading our app to Elixir 1.15. Many thanks!

Hey @thbar, sure thing. I'll be merging this manually because I'm also moving to main as the default branch.

Thank you!


Unable to create resource

Package
filament/filament
Package Version
v2.15.6
Laravel Version
v9.22.1
Livewire Version
No response
PHP Version
8.1.3
Problem description
When I try to create a new resource I get the following error, I'm running the proyect on Laravel Sail

I tried publishing all stubs but is not working
Expected behavior
I expect to create a new resource
Steps to reproduce

Installed Filament on a brand new project
ran php artisan make:filament-resource User

Reproduction repository
Not available at the moment
Relevant log output
No response

Very sorry about this, a fix is on the way.

I've just released the fix, sorry about that.


refactor: Extract message "type"s out into constants to help prevent string mismatches

Adds message "type" constants, and updates usages of string literals to use these constants instead. Should help prevent bugs like the one fixed in #14974 going forward.
Also renamed "AudienceClientMetaData" to "AudienceClientMetadata" to be consistent with other usages of the term "metadata".

❤
Nit: I start to get the feeling that the amount of boilerplate for the messaging piece is spiraling out of control. I think I would've centralized the message types instead of using individual constants (maybe a MessageTypes class with nothing but public static readonly fields). Thoughts?

Yeah, after doing the refactoring exercise, I agree. I think I still like the idea of grouping the messages by category (audience, telemetry, container, etc.), but maybe a namespace / class for each category would be a reasonable compromise?

Yeah, after doing the refactoring exercise, I agree. I think I still like the idea of grouping the messages by category (audience, telemetry, container, etc.), but maybe a namespace / class for each category would be a reasonable compromise?

I could see MessageTypes.Telemetry.<*>, MessageTypes.Audience.<*>, etc. Instinctively would prefer that over separate classes for each area. But thinking more thoroughly about back/forward-compat implications of the choice seems worth it.

Yeah, after doing the refactoring exercise, I agree. I think I still like the idea of grouping the messages by category (audience, telemetry, container, etc.), but maybe a namespace / class for each category would be a reasonable compromise?

I could see MessageTypes.Telemetry.<*>, MessageTypes.Audience.<*>, etc. Instinctively would prefer that over separate classes for each area. But thinking more thoroughly about back/forward-compat implications of the choice seems worth it.

Yeah, the compatibility side of things definitely warrants further consideration. I think I'll merge this as is for now (since it at least gives us a bit more type safety, even if it generates more boilerplate), and tackle cleaning up boilerplate separately.


support the option for fiat onboarding/offboarding

as a user, i would like to have the option to buy crypto with fiat or swap my crypto back to fiat.
note, we are NOT associated with the solution, just listing few selected options to make it available for our users.
side menu item:
page layout:
https://www.figma.com/file/3yED7o7TgoLwoEjV2EkRLL/Bancor-V2?node-id=548%3A7980
moonpay implementation URL:
buy: https://buy.moonpay.com?apiKey=pk_live_qiJRayRj9iKRUWCfaWX5Vo6Sn0rnNsj&defaultCurrencyCode=ETH
sell: https://sell.moonpay.com?apiKey=pk_live_qiJRayRj9iKRUWCfaWX5Vo6Sn0rnNsj&defaultCurrencyCode=ETH
test key:
pk_test_UQrsGSrVtsrfN5O5IZUPJCDW5kXrrapO

ive updated the url slightly.
check the option for test key

When would we use the test key?

to test deposit flow end to end and make sure it register correctly (without using a valid cc)


Triplet loss semi hard function does not work

The triplet loss semi hard function does not work in the line where have an assertion which checking variable dimension

@thebeancounter Thanks for the workaround and also for working on the solution. I will close this issue. Please feel free to open If you see the issue again. Thanks!


UI issue of contact icon.

-The contact icon is different from the initial app.Also it is different on both ios and android device.

Icon in Android(SAMSUNG A50) device

Icon in ios(iphone 7)device

-Also the contact image is not available while doing "Send To Contacts"

-Now the contact icons are same on both the devices i.e ios and Android.
-But the contact image is still not available while doing "Send To Contacts"

-Tested in dev app v1.5.0(254)

-Now the contact image is available while doing "Send To Contacts".
-Tested on staging app v1.5.0(255)
-But -And F&F request awaiting still not showing the wallet name.

-It is showing F1/F2...instead of wallet name.

Will be available in build 257

-F&F request awaiting still not showing the wallet name on "Send to contact".
-But in F&F list it is showing the wallet name after confirmation.

Filed a new issue for this f&F request awaiting.so closing this issue for now.Remaining changes are verified on staging app v1.5.0(260)


Replace Travis (deprecated) badge by GitHub Action Upgrade badge

Questions
Answers

Description?
Replace Travis (deprecated) badge by GitHub Action Upgrade badge

Type?
improvement

Rebased after https://github.com/PrestaShop/autoupgrade/pull/383 to test it

Thanks @matks


(chocolatey-core.extension) Adds support for common powershell parameters

This PR adds support for the most common powershell
arguments and switches to the function that did not implement
them, or did not fully support them.

:white_check_mark: Package verification completed without issues. PR is now pending human review

Those commands can be used outside of Chocolatey as well.

:white_check_mark: Package verification completed without issues. PR is now pending human review

@mwallner there is no difference when running any of the functions through chocolatey, these common parameters are only useful if/when debugging outside of chocolatey.

is there a scenario where this could get back to us in terms of "freezing" a choco install?

I have not found such as scenario during my testing.


Repair bug

Types of changes

[ ] Bug fix (a non-breaking change which fixes an issue)
[ ] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly. (PR: #)
[ ] I have added tests to cover my changes (if not applicable, please state why)
[ ] All new and existing tests are passing.

@516310460 If you need latest changes in dev branch, simply replace nuxt with nuxt-edge package :)


AMBARI-22934. [API] Updating current stack repo without GPL repos in …

…the body does not throw any error. (mpapirkovkyy)
What changes were proposed in this pull request?
Restrict importing VSF without GPL repositories from HDP stack with version greater than <IP_ADDRESS>
How was this patch tested?
mvn clean test
manual check

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/534/
Test PASSed.


Extend RefCountDisposable to support throwing ObjectDisposedExceptions w...

...hen GetDisposable is called after the RefCountDisposable has been disposed.

The change makes sense. I'm curious to know in which case you're using the new behavior? We'll consider this for the next release of Rx. Thanks!

Consider this class:
class SomeClass : IDisposable
{
    private RefCountDisposable _refCountDisposable;

    public SomeClass(IDisposabe resource)
    {
        this._refCountDisposable = new RefCountDisposable(resource);
    }

    public void DoSomethingWithResource()
    {
         using(this._refCountDisposable.GetDisposable())
         {
              ....
         }
     }

     public void Dispose()
     {
         this._refCountDisposable.Dispose();
     }
}

The requirements for this class are as follows:

Dispose and DoSomethingWithResource may be called at any time, on any thread.
The inner resource must not be disposed as long as DoSomethingWithResource executes.
After disposing the instance of SomeClass, the inner resource must be disposed when all calls to DoSomethingWithResource have completed.
Calling DoSomethingWithResource after calling Dispose throws an ObjectDisposedException.

The new behavior is needed for requirement 4. It can be emulated by checking IsDisposed within the using block, but having a disposed RefCountDisposablethrow an ObjectDisposedException by itself is a much cleaner approach IMO.

I reviewed the above requirements and the commits from my pull request. As my pull request works right now, requirement 4 will not exactly be satisfied, but rather this:
4b. Calling DoSomethingWithResource after Dispose has been called throws an ObjectDisposedException if the RefCountDisposable has reached a zero count (i.e. all previous calls to DoSomethingWithResource have finished).
Which behaviour is more desireable may be the subject of further discussion.

@mattpodwysocki @shiftkey @bartdesmet  thoughts for inclusion in the 3.0.1?

@onovotny yep, let's do it

Review status: 0 of 1 files reviewed at latest revision, 1 unresolved discussion.

Rx.NET/Source/System.Reactive.Core/Reactive/Disposables/RefCountDisposable.cs, line 1 [r1] (raw file):

// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.

Please update copyright header to match other files in this repo

Comments from Reviewable

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable

Rebased onto latest master, should be good now.


JobUpdater crashing to update workqueue elements

Impact of the bug
WMAgent, JobUpdater crashes
Describe the bug
From the traceback, it looks like JobUpdater is trying to update workqueue elements (which database? local or remote?) that no longer exist, thus failing with the TypeError.
How to reproduce it
not sure
Expected behavior
The component should not crash in a case like that. It should log the error and move on.
In addition to that, I think it would be useful to make the component log slightly more verbose, at least logging which workflow is getting re-prioritized in the component.
Additional context and error message
Traceback from the component log in vocms0283:
2020-03-18 08:44:38,751:139714867345152:INFO:JobUpdaterPoller:Synchronizing priorities with ReqMgr...
2020-03-18 08:44:39,184:139714867345152:INFO:JobUpdaterPoller:Found 1 workflows to update in workqueue
2020-03-18 08:44:39,193:139714867345152:ERROR:JobUpdaterPoller:Caught unexpected exception in JobUpdater: 'NoneType' object is not iterable
Traceback (most recent call last):
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMComponent/JobUpdater/JobUpdaterPoller.py", line 84, in algorithm
    self.synchronizeJobPriority()
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMComponent/JobUpdater/JobUpdaterPoller.py", line 138, in synchronizeJobPriority
    self.workqueue.updatePriority(workflow, workflowsToUpdate[workflow])
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Services/WorkQueue/WorkQueue.py", line 230, in updatePriority
    self.updateElements(*elementsToUpdate, Priority=priority)
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Services/WorkQueue/WorkQueue.py", line 196, in updateElements
    conflictIDs = self.db.updateBulkDocumentsWithConflictHandle(elementIds, eleParams, maxConflictLimit=20)
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Database/CMSCouch.py", line 385, in updateBulkDocumentsWithConflictHandle
    conflictDocIDs = self.updateBulkDocuments(doc_ids, updateParams, updateLimits)
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Database/CMSCouch.py", line 366, in updateBulkDocuments
    doc.update(j['doc'])
TypeError: 'NoneType' object is not iterable
2020-03-18 08:44:39,246:139714867345152:ERROR:BaseWorkerThread:Error in worker algorithm (1):
Backtrace:
  <WMComponent.JobUpdater.JobUpdaterPoller.JobUpdaterPoller object at 0x7f11efd71dd0> <@========== WMException Start ==========@>
Exception Class: JobUpdaterException
Message: Caught unexpected exception in JobUpdater: 'NoneType' object is not iterable

        ModuleName : WMComponent.JobUpdater.JobUpdaterPoller
        MethodName : algorithm
        ClassInstance : None
        FileName : /data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMComponent/JobUpdater/JobUpdaterPoller.py
        ClassName : None
        LineNumber : 110
        ErrorNr : 0

Traceback:
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMComponent/JobUpdater/JobUpdaterPoller.py", line 84, in algorithm
    self.synchronizeJobPriority()

  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMComponent/JobUpdater/JobUpdaterPoller.py", line 138, in synchronizeJobPriority
    self.workqueue.updatePriority(workflow, workflowsToUpdate[workflow])

  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Services/WorkQueue/WorkQueue.py", line 230, in updatePriority
    self.updateElements(*elementsToUpdate, Priority=priority)

  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Services/WorkQueue/WorkQueue.py", line 196, in updateElements
    conflictIDs = self.db.updateBulkDocumentsWithConflictHandle(elementIds, eleParams, maxConflictLimit=20)

  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Database/CMSCouch.py", line 385, in updateBulkDocumentsWithConflictHandle
    conflictDocIDs = self.updateBulkDocuments(doc_ids, updateParams, updateLimits)

  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Database/CMSCouch.py", line 366, in updateBulkDocuments
    doc.update(j['doc'])

<@---------- WMException End ----------@>  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/WorkerThreads/BaseWorkerThread.py", line 182, in __call__
    tSpent, results, _ = algorithmWithDBExceptionHandler(parameters)
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMCore/Database/DBExceptionHandler.py", line 39, in wrapper
    return f(*args, **kwargs)
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/Utils/Timers.py", line 24, in wrapper
    res = func(*arg, **kw)
  File "/data/srv/wmagent/v1.2.8/sw/slc7_amd64_gcc630/cms/wmagent/1.2.8/lib/python2.7/site-packages/WMComponent/JobUpdater/JobUpdaterPoller.py", line 110, in algorithm
    raise JobUpdaterException(msg)

2020-03-18 08:44:39,246:139714867345152:INFO:Harness:>>>Terminating worker threads
2020-03-18 08:44:39,246:139714867345152:ERROR:BaseWorkerThread:Error in event loop (2): <WMComponent.JobUpdater.JobUpdaterPoller.JobUpdaterPoller object at 0x7f11efd71dd0> <@========== WMException Start ==========@>

So, it's a local workqueue database update and, it was crashing right after every restart of the component.
I noticed the local workqueue views were around 19GB (compared to the 2GB of database size). I then stopped everything (agent + services) and removed the workqueue views:
cmst1@vocms0283:/data/srv/wmagent/current/install/couchdb/database $ rm -rf .workqueue_design/mrview/2f77345c5cf5065ec0f98a614222c8b2.view

restarted everything and it's no longer crashing.
Still, I think it's a good idea to make it a bit more verbose (no need to backport anything though)

This should be fixed with the automatic database and view compaction changes, made in this PR:
https://github.com/dmwm/deployment/pull/874
but it will only be applied to the upcoming WMAGent production release (1.3.2)


Fix form responsive FAQ results and clean button

Fix size form, clean button position and fix form responsive.
Here is a video with the changes: https://user-images.githubusercontent.com/56647378/161027712-edbb0f73-79c0-4037-a5c9-9e9a3f0c5750.mp4

I took a look at the changes locally and it looks very good now. Thanks @10delin !

@MikeMcC399 I have resolved the conflicts now. Also I have added screenshots before/after.
Note that this is just for the detailed FAQ screen. The same is going to happen for the FAQ landing page in another PR later today or tomorrow.

This PR is related to https://github.com/corona-warn-app/cwa-website/issues/2601

@svengabr

Note that this is just for the detailed FAQ screen. The same is going to happen for the FAQ landing page in another PR later today or tomorrow.

Thanks for the hint. I confirm that it looks good on the detail FAQ screen https://www.coronawarn.app/en/faq/results/, with or without a search term present in the search box.


Testing

From @andrewMacmurray on November 10, 2016 12:47
We could use AVA, very similar to tape
We could use Nightwatch for e2e testing
Also this seems like a decent utility for unit testing the frontend:

Elm Test
Testing in Elm Article

Copied from original issue: foundersandcoders/keep-the-lights-on#15

From @iteles on November 10, 2016 15:28
If you're using Nightwatch, this might be useful: https://github.com/dwyl/learn-nightwatch


⚠ Bofrost.de has degraded performance

In deac727, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1158 ms

Resolved: Bofrost.de performance has improved in d567148 after 6 minutes.


Enable auto-merge for update-community PRs and small cleanups

Remove create_pr from outputs since all the actions are already using it as an env var. This move is already reflected in the README so it looks it just needs some cleanups.

Add skip-review label to enable auto-merge PRs that update community files. This is part of the work for https://github.com/knative/test-infra/issues/2965. In the future the same config can be extended to other actions as well.

/hold
From: https://github.com/knative/test-infra/pull/3245#issuecomment-1091726490
I worry some repos don't have proper checks being marked as required (ie. GitHub actions) and worry about bad PRs being merged

It has to have the skip-review label, which is only enabled here
https://github.com/knative-sandbox/knobots/pull/181/files#diff-ad874af890dcbcecb09c57f02eff5c90ca8344225f1e20525b0fce5e3f3ebcaaR21-R24

which maps to https://github.com/knative/test-infra/pull/3245/files#diff-43597815f705840f0d74fd38408b1dfab023521863d730099df2dad36f7183a5R163-R166

/hold cancel

/lgtm
/approve

@chizhg So the run failed for some repos - but it's not clear to me why
https://github.com/knative-sandbox/knobots/runs/5871383508?check_suite_focus=true

Applying labels 'skip-review'
  Error: Must have admin rights to Repository.

It looks we need to add knative-automation as the admin - the same as other bot accounts.

Created https://github.com/knative/community/pull/1006 for the fix.


Documentation bug: smart quotes

On the PyPI page for bumpversion, the documented defaults for settings which take strings surround the strings with smartquotes. These can't be copied directly to a .bumpversion.cfg file because you'll get this error if you do so:
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/bumpversion", line 11, in <module>
    sys.exit(main())
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/bumpversion/__init__.py", line 695, in main
    config.write(log_config)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ConfigParser.py", line 412, in write
    key = " = ".join((key, str(value).replace('\n', '\n\t')))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 0: ordinal not in range(128)

I would like to request that all these smart quotes (and other other non-ascii characters in the docs) be replaced with ascii-compatible characters.
EDIT: Unfortunately, after some more testing, it looks like this is actually PyPI's fault, rather than yours. Copying the default strings from the github display of the README gives real quotes. Maybe you could add some de-smartification code to the parser? Though that seems really silly.
TL;DR F*$% "smart" quotes.

Oh my, this is worse than I thought. After finally getting my .bumpversion.cfg file fully set up, I realized that quotes shouldn't be included in those settings at all, because they get included verbatim into the setting value. For example:
message = "Bumped version to 7.x-{new_version}"

That will cause the git commit message to be "Bumped version to 7.x-{new_version}", with the quotes around it.
That seems like it probably shouldn't happen, especially since the documentation includes those quote marks.

Yes, you're right. Want to submit a pull request ?
That stack trace is probably a duplicate of #105, but we should probably include code in bumpversion itself to safeguard against that bug in configparser.

So I'm trying to put together a pull request to fix the unicode error, but the test framework itself seems to suffer from the same problem. I'm not familiar with tox and pytest, so I'm probably doing something wrong, but I can't get it to write out a .bumpversion.cfg that has smartquotes in it. The call to tmpdir.join(".bumpversion.cfg").write() fails with:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 114: ordinal not in range(128)

On another note, do you think it'd be better to update the documentation to remove the quotes, or update the parser to strip them? I this this is really a documentation bug hiding within this unicode problem, making itself look like a code bug.

@coredumperror The documentation is ambiguous, let's fix that. The test suite is in python, so it handles unicode the same way, yes. Lots of stuff is better in Python 3 :)

So what, if anything, can I do to make it possible to test unicode-containing config files in Python 2.7?

IIRC this is fixed in #112, if not please re-open.


Dynamic Secure

To quote TI setting secure dynamically leads to unpredictable results.

There is no way to change at run-time whether or not NWK layer security is on or off - this is a compile-time choice that ends up in zgSecurityMode. Unpredicatible results will ensue from attempting to manually change it. Thus, you either have a SECURE network, or not.
Alternatively, you can have an un-SECURE network and optionally add APS-layer encryption on a packet-by-packet basis by using the AF_EN_SECURITY option when invoking AF_DataRequest().

https://e2e.ti.com/support/wireless_connectivity/zigbee_6lowpan_802-15-4_mac/f/158/t/63803
We found this to be an issue in our quest to upgrade to Z-Stack 3.0 (in progress). It appears that TI are checking for this now and explicitly erroring.

This change with Z-Stack 3.0 is probably due to Security being made mandatory in Z-Stack 3.0.


Should each Piece orientation be processed under a new recursion level?

Currently we only iterate through the possible piece orientations to find the first fit on the board (if any). If the piece fits (ie. it can be placed onto the board), we delve a level deeper into the recursion to explore the subsequent possibilities.
Do we need to treat each possible orientation (that fits) as an "alternate timeline" to be explored?

This is only relevant if the goal is to find every possible solution.
If that IS the goal, I'm not convinced that the change would result in an exhaustive list of solutions anyway. I think we'd need to run the recursive solve for every possible permutation of the piece list, rather than a single pass with a prioritised order.
This needs a bit more thought.


Implement cupy.msort.

This PR implements cupy.msort. Please merge #2057 first.
numpy.msort(a) is equivalent to numpy.sort(a, axis=0). For implementation reasons, cupy.sort currently supports only sorting an array with its rank of one, so cupy.msort(a) would be actually equivalent to cupy.sort(a) for now.

This PR is reposted to cupy/cupy#150 after CuPy separation from Chainer, so I close this.


Update cert

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/retest

/retest

/retest


Improper relative path for images or static files

OS?

Windows 10

Versions.

angular-cli: 1.0.0-beta.19-3
node: 7.0.0
os: win32 x64

Repro steps.

Trying to give a relative path to the static files/image present in the assets folder.
If I have -->  img src="/first-app/assets/path/to/image/trial.png"
it works fine on the server where I have deployed my application. But the same fails on the localhost... and only this works on localhost --> img src="/assets/path/to/image/trial.png"

So I tried... ng build --base-href /first-app/
This works as a relative path for the scripts present in the index.html but not for the images which are referenced in different components.

The log given by the failure.

GET http://<IP_ADDRESS>/assets/path/to/image/small.png 404 (Not Found)
GET http://<IP_ADDRESS>/assets/path/to/image/trial.png 404 (Not Found)

Mention any other details that might be useful.
I am clueless on how to get the images referenced.
The files generated after build are placed under /first-app folder. How to get this fixed?

Thanks! We'll be in touch soon.

You're using a root relative URL for your assets.  Take out the first /.

@clydin  Thanks.. That worked for me. :)


Create the bottom to top arrow

Hello there I want to add the bottom to top arrow in your website. please assign this issue to me under hacktoberfest

Thank you @Arnabhit for your interest
I am assigning this to you
Please maintain the color scheme

Can you please add the hacktoberfest label

Added


Testing branch - Applying master changes to Monster.cpp

An attempt to resolve #1983
The original master commit is this by @tigerw . I didn't cherry-pick it because it included unrelated stuff.

Accidentally did a PR to master, closing.


Final clean-up: distribute files in components/schemas to subdiredctories

Scope:

[x] actors @tobice
[x] actor-builds @HonzaTuron
[x] actor-runs @HonzaTuron
[x] actor-tasks @tobice
[x] datasets @HonzaTuron
[x] request-queues @HonzaTuron
[x] store @HonzaTuron
[x] webhooks @HonzaTuron
[x] schedules @HonzaTuron
[x] users @HonzaTuron
[x] common @HonzaTuron

Instructions

We have only one ticket for this, so add yourself next to the resource type you want to clean up
Move all related files from the top level directory to a resource-specific directory
Get rid of / rename data*.yaml files
Get rid of numbers in names, e.g. ActorShort1.yaml
Make all the files start with a capital letter

Closing :tada:


release 0.21.2 contains no binaries/release action is invalid

The release pipeline has failed and the latest github release does not contain a binary payload
https://github.com/authzed/zed/actions/runs/10938162375 seems github does not allow yaml anchors in actions files
Invalid workflow file: .github/workflows/release.yaml#L1
The workflow is not valid. .github/workflows/release.yaml: Anchors are not currently supported.
Remove the anchor 'goreleaser_version'

and there's no binaries in https://github.com/authzed/zed/releases/tag/v0.21.2
We use this repo in a devcontainer feature to install zed
		"ghcr.io/devcontainers-contrib/features/gh-release:1": {
			"repo": "authzed/zed",
			"binaryNames": "zed"
		},

and this currently causes the devcontainer build to fail.

That's frustrating about the anchors. I'll get that fixed and cut a release.

thank you!


MaxAdView in MultiSliver has black background

MAX Plugin Version
3.10.1
Flutter Version
3.19.6
Device/Platform Info
IOS 17.5.1
Current Behavior
When a CustomScrollView adds a MaxAdView with slivers, there may be a black background on the left or right or top and bottom, but there is no black background in a normal Column.

Expected Behavior
MaxAdView does not require a background color
How to Reproduce
This can be reproduce using the following code
import 'package:applovin_max/applovin_max.dart';
import 'package:bro_novel/widget/ad_mod/ad_helper.dart';
import 'package:flutter/material.dart';
import 'package:sliver_tools/sliver_tools.dart';

class TestPage extends StatefulWidget {
  const TestPage({Key? key}) : super(key: key);

  @override
  State<TestPage> createState() => _TestPage();
}

class _TestPage extends State<TestPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: CustomScrollView(
        physics: BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
        slivers: [
          MultiSliver(children: [
            MaxAdView(
              adUnitId: ADHelper().bannerADUnitId,
              adFormat: AdFormat.banner,
            ),
          ]),
        ],
      ),
    );
  }
}

Additional Info
No response

@jackxuechen, thanks for raising the issue.  It looks like the width of the banner container is wider than the banner width.  Could you try live ads?


Mat/Pat - UX - Inform applicants what can be edited and what cannot be edited

Inform applicants what can be edited and what cannot be edited before and after supervisor approval & start date

duplicate


Android - VBA - App crashed when initiating VBA flow 2nd time after disconnecting already added one

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

Action Performed:

Launch the app
Log in with expensifail account
Go to any Workspace and select Connect bank account
Add bank account following VBA flow
After bank is validated - tap disconnect bank account
Go to any Workspace and select Connect bank account
Continue VBA flow
After entering chase bank credentials select saving accounts

Expected Result:
Able to continue and connected with bank account
Actual Result:
App crashed when initiating VBA flow 2nd time after disconnecting already added one
Workaround:
Unknown
Platform:

Where is this issue occurring?

Android

Version Number:  <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Unable check in production with test credentials
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/140548439-0a2b7c93-e1c5-4aba-ab5c-5ee9685de7b4.mp4
Bug5313612_VBA_crashed.txt
Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Triggered auto assignment to @NikkiWines (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

I'm able to reproduce something similar on web where I just get endless loading spinners when trying to add the bank account again.
@kavimuru does this issue also occur on iOS for you guys? Or is it only reproducible on Android?

Figured out the root cause I believe - looking into a fix now

@NikkiWines Forgot to post the iOS result here, my apologies. The issue is also reproducible on iOS.


Grouped item sidebar

I am wondering if there is any desire for a grouped item sidebar organized by type?
made a quick preview edited in the DOM
https://github.com/user-attachments/assets/87e34d56-2d21-4900-b427-a82a34a047a7

Yeah I'm not opposed to it, but I'd need a really good reason (and other folks who also think it's a better way to display them). The groupings was basically my initial beef with pages like https://en.bitcoin.it/wiki/Script. The groupings need to break the single list continuity from 0-255, and then you're left wondering a bunch of stuff, for example:

Do all possible bytes correspond to an opcode? (yes, but you don't know from the page alone)
Why are some opcodes missing from the page?
Why are they grouped conceptually but not in their ordering?

Moreover:

you have a lot of opcodes that might belong in a few different groupings (I'd need to confirm this but it's very likely)
You always end up with a group that's like "misc" because they don't fit anywhere else.

The current approach is conceptually cleaner because it resembles a dictionary (might be better name for it than the one I currently use, encyclopedia?) where all words are listed in no particular order, one at a time. Easy to find them, you don't need to have prior knowledge of what category they belong to.
You do, however, make me wonder if a page that collects the opcodes in conceptual categories would be useful (in fact I'm certain it would). This would help also break the feeling of "wow there is so much to learn", when in fact it's only a few different concepts that you need to grapple with.
Anyway happy to hear other people's thoughts on this! Take my opinion with a grain of salt.

Ahh, I didn't even think about them being ordered by their opcode number! I just saw op_0 and op_pushbytes_1 after one another and said... huh
Perhaps these categories are better to remain in the script pages where they may not be individually talked about but can easily be all listed by category

Perhaps the list could be made slightly more clear on why they are ordered that way?
numbers on the side? heading? not sure, just something to think about.
Going to close this for now as I think this iteration isn't it

Perhaps the list could be made slightly more clear on why they are ordered that way?

The opcodes in the sidebar were numbered before e0ab775d166408f6333aa64bb8fdf30421cedf97, personally I liked it more that way.

Oh interesting @vostrnad! I wasn't sure about removing them when I did, and now I'm reconsidering! I'll opened a new issue for it: #17.


Update tile layers to leaflet 1.0 format

The current layers here cannot be used with leaflet 1.0 since the layer interface has changed.
The layers must implement ILayer and methods like _layerAdd.

Missed the extra branch for leaflet_one here! Sorry


Icon component, glyph icon uncompleted

Currently, following icon names are supported:

logo
create
history
search
modify
refresh
arrow-down
close
more
check
establish
stop
Overview page: User logo, Apps icon, Clusters icon,Categories icon, Users icon
Repos page: Runtime Provider(qingcloud,kubernetes) image

designer working on


Add python wrapper for index test case developing

Wrap index for python developer, also provide some python case.
Signed-off-by: Yusheng.Ma<EMAIL_ADDRESS>

/lgtm

/approved

/approve

/lgtm

/approve

#136

isssue: #136

issue: #136


Added meters for http client and pam clients

introduce pipeline concept similar to middlewares in fiber to introduce metrics without cluttering code
move cross cutting concerns like telemetry and logging to pipeline handlers

Perhaps a next task would be some documentation regarding these Pipelines and where/how/when they can be used.

Sure, good suggestion, will add some small guiding docs for it. I'll create a separate task for it


undefined method error with 1.2.4

Hi there
Not sure why but I am getting following error when I upgrade boxen from 3.7 to 3.10.1 and iterm2 to 1.2.4.
No problem with iterm2 1.2.3
thanks
bundle exec librarian-puppet install --clean --verbose
blah blah ....
[Librarian] Installing imagemagick/1.3.0 <boxen/puppet-imagemagick>
[Librarian] Installing inifile/1.1.1 <puppetlabs/puppetlabs-inifile>
[Librarian] Installing iterm2/1.2.4 <boxen/puppet-iterm2>
/opt/rubies/1.8.7-p358/lib/ruby/1.8/fileutils.rb:1414:in `fu_each_src_dest0': undefined method `to_str' for nil:NilClass (NoMethodError)
    from /opt/rubies/1.8.7-p358/lib/ruby/1.8/fileutils.rb:1400:in `fu_each_src_dest'
    from /opt/rubies/1.8.7-p358/lib/ruby/1.8/fileutils.rb:423:in `cp_r'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-puppet-1.0.9/lib/librarian/puppet/util.rb:21:in `cp_r'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-puppet-1.0.9/lib/librarian/puppet/source/githubtarball/repo.rb:56:in `install_version!'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-puppet-1.0.9/lib/librarian/puppet/source/githubtarball.rb:84:in `install!'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/manifest.rb:101:in `install!'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/action/install.rb:49:in `install_manifests'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/action/install.rb:48:in `each'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/action/install.rb:48:in `install_manifests'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/action/install.rb:39:in `perform_installation'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/action/install.rb:12:in `run'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-puppet-1.0.9/lib/librarian/puppet/cli.rb:94:in `install!'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-puppet-1.0.9/lib/librarian/puppet/cli.rb:69:in `install'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/thor-0.19.1/lib/thor/command.rb:27:in `__send__'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/cli.rb:26:in `bin!'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/cli.rb:31:in `returning_status'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/cli.rb:26:in `bin!'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/cli.rb:47:in `with_environment'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-0.1.2/lib/librarian/cli.rb:26:in `bin!'
    from /opt/boxen/repo/.bundle/ruby/1.8/gems/librarian-puppet-1.0.9/bin/librarian-puppet:7
    from /opt/boxen/repo/.bundle/ruby/1.8/bin/librarian-puppet:19:in `load'
    from /opt/boxen/repo/.bundle/ruby/1.8/bin/librarian-puppet:19

I'll check it out today @njia thanks for the heads up!

@njia are you able to confirm if this is still an issue on the latest? I'm going to close this but do let me know if this is still a problem and I'll take a look.


1.3.0 and 1.4.0 cannot be opened on Mac

Hi, really like this utility! I have been using 1.2.0 for a long time and only recently realized there was 1.4.0 available. I thought 'why not upgrade'... Well, I tried to run it and got an error to the effect of 'this cannot be opened'. So, I tried 1.3.0 and got the same error. I then re-downloaded the 1.2.0 and everything worked fine. Looking at the change log I don't NEED to update but I thought I would let you know...
If you need me to test any builds or compile something let me know and I can try to help out.
macOS 10.15.7 (19H2)

Can you check if this is similar to your issue? It seems that electron builder has issues with generating the zip file. If it's the same issue, I'll apply the same workaround that I did for Vieb to crossdirstat.

Yes, that appears to be similar. I did the same unzip test and got...
~/Downloads ▶ unzip crossdirstat-1.4.0-mac.zip
Archive:  crossdirstat-1.4.0-mac.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of crossdirstat-1.4.0-mac.zip or
        crossdirstat-1.4.0-mac.zip.zip, and cannot find crossdirstat-1.4.0-mac.zip.ZIP, period.
~/Downloads ▶

Alright, I have applied the same fix to crossdirstat and have created a pre-release that you can download here, let me know if that works.

Success! Worked great.

Great, good to hear, I'll close the issue and make a proper 1.5.0 release later today.


Cloning repo and running tests fails

Just cloning the repo and running tests seems to fail.
Error message:
><EMAIL_ADDRESS>test
> jest

(node:856308) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
 FAIL  src/customer-repository.test.js
  ● Customer Repository › should create and return multiple customers

      10 |
      11 |     beforeAll(async () => {
    > 12 |         postgresContainer = await new PostgreSqlContainer().start();
         |                             ^
      13 |         postgresClient = new Client({ connectionString: postgresContainer.getConnectionUri() });
      14 |         await postgresClient.connect();
      15 |         await createCustomerTable(postgresClient)

      at getContainerRuntimeClient (node_modules/testcontainers/src/container-runtime/clients/client.ts:60:9)
      at PostgreSqlContainer.start (node_modules/testcontainers/src/generic-container/generic-container.ts:81:20)
      at PostgreSqlContainer.start (node_modules/@testcontainers/postgresql/src/postgresql-container.ts:39:43)
      at Object.<anonymous> (src/customer-repository.test.js:12:29)

  ● Test suite failed to run

    TypeError: Cannot read properties of undefined (reading 'end')

      17 |
      18 |     afterAll(async () => {
    > 19 |         await postgresClient.end();
         |                              ^
      20 |         await postgresContainer.stop();
      21 |     });
      22 |

      at Object.end (src/customer-repository.test.js:19:30)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        0.628 s
Ran all test suites.

Docker version:
Client: Docker Engine - Community
 Version:           25.0.4
 API version:       1.44
 Go version:        go1.21.8
 Git commit:        1a576c5
 Built:             Wed Mar  6 16:32:12 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          25.0.4
  API version:      1.44 (minimum version 1.24)
  Go version:       go1.21.8
  Git commit:       061aa95
  Built:            Wed Mar  6 16:32:12 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Node v21.7.1
Ubuntu 22.04.4 LTS

Hey @JackMBurch thanks to raise the issue,
I run the project clone && install fresh and is passing test for me
Can you try to repeat a fresh cloning install with the Node LTS version 20.11.1 and npm 10.2.4,?

Thank you for the quick response!
Tried and still getting the same thing with Node 20.11.1 and npm 10.2.4.

let me investigate installing a VM with ubuntu on my mac to try it

Much appreciated 🙏

you know what, you are right

this is my vm running an ubuntu LTS
So let me take a look

Are we getting different dependencies pulled on Ubuntu as compared to macOS? Looks like an issue with the Postgres client library to me.


How to Enable GUP server(Ubuntu) feature on Grobid Training?

Hi,
Grobid training on new huge dataset took more days and months for training.
We are having Ubuntu GUP server, while executing Phyton related class files it was to faster in the training. But Grobid was developed under 'Java'.
Is there any way to enable GUP server feature on training? In order to make training of dataset to be faster?
Could anyone please help on type kind of issue.
Thank you in advance.

Hi @YangaPri your issue is not really clear. What is Ubuntu GUP server?
I think usually Java is faster than python by design ;-)

Hello @YangaPri  !
Maybe you are talking about using GPU?
GROBID uses Wapiti as CRF engine which is written in C but does not support GPU for training. As far as I know, there is no equivalent Python related CRF engine.
Regarding GPU, I am experimenting Deep Learning models for GROBID in https://github.com/kermitt2/delft (DeLFT) which uses GPU and indeed is significantly much faster for training, but all the models are for the moment less accurate than current CRF models by 2-3 points in f-score.
Regarding your training time issue, for me all the training time using multi-threading are under one day even for the largest model on a 8-core machine. Are you doing semi-supervised training for having such huge training dataset ?


Update bugsnag version and data

💻 Environment
Platform: macOS/Windows/Linux
📒 Description
We should update our bugsnag versions (At least on windows it's old)
Also we should make sure we send all additional data in correct format so we can search the error logs properly.

Also there is a problem that Windows 10 and Windows 8.1 are detected as Windows 8 in Bugsnag. In order for Environment.OSVersion to return a correct version, this version has to be enabled in the application manifest https://docs.microsoft.com/en-us/windows/desktop/SysInfo/targeting-your-application-at-windows-8-1.

Latest NuGet package for windows app.
https://www.nuget.org/packages/Bugsnag/

Sending user ID in #C is described in Callback section https://github.com/bugsnag/bugsnag-dotnet#callbacks

Windows and mac are done. We now need to double check the linux implementation. Linux uses custom made solution. What we need to check is if Linux sends the userID correctly.

This is done now, Linux PR is also already merged.


Create gluster-health-check

script that quickly gives you health of your gluster clusters.

@etsauer not sure if there is a list I should notify for review, so pinging you directly :)

@etsauer or @sabre1041 can I get a review?

@garethahealy i also just created https://github.com/redhat-cop/openshift-toolkit/pull/118 which is a peer to this as its a tool i needed while debuging my current gluster issues.

issues resolved

@garethahealy thank you for the peer review and merge.


fix: stringify deeply nested data and minor refactoring in debug-adapter

Here are a couple of quick follow-up improvements for debug-adapter. Not sure if the test is what you had in mind based on your feedback (seems my test is causing me to stub out more, not less, out of necessity), but happy to refactor/re-write as needed.

Since it was a relatively minor change, have also rolled in the fix for handling deeply nested data to be rendered in Ember Inspector.
Unfortunately, for now, we need to stringify objects/arrays that are more than 2 levels deep since this is explicitly not handled by Ember Inspector: https://github.com/emberjs/ember-inspector/blob/ab6fead7b64173d0fc78443290df65cfe538ebc4/ember_debug/object-inspector.js#L71.
Maybe we should fix it there and remove this code? But for now, this will enable developers to get a more granular idea of what their data is.
Before

After

thanks @SYU15 !


Running OS commands in Ballerina

At the moment this is not supported. Created an issue to track the requirement.
Ballerina central has a connector [1] which supports this to some extent but not up to date.
[1] https://central.ballerina.io/mirage/os

Closing since part of https://github.com/ballerina-platform/ballerina-standard-library/issues/571

Closing since part of https://github.com/ballerina-platform/ballerina-standard-library/issues/571


[Bug]: ModuleNotFoundError: No module named 'llama_index.readers.web'

Bug Description
I have installed all necessary pip libraries needed, but i still find the error
ModuleNotFoundError: No module named 'llama_index.readers.web'
When i try to import
from llama_index.readers.web import TrafilaturaWebReader
Version
0.10.5
Steps to Reproduce
pip install llama-index
And try to import in a python file and run it
from llama_index.readers.web import TrafilaturaWebReader
Relevant Logs/Tracbacks
No response

Did you also install the pip dependency?
pip install llama-index-readers-web

Yes, you need to install the reader package as well from v0.10.x onwards.
Migration Guide https://pretty-sodium-5e0.notion.site/v0-10-0-Migration-Guide-6ede431dcb8841b09ea171e7f133bd77
Package registry https://pretty-sodium-5e0.notion.site/ce81b247649a44e4b6b35dfb24af28a6?v=53b3c2ced7bb4c9996b81b83c9f01139

I have the same issue too!

same here plus the posted guides are no longer accessible


Blazor: Provide common callback mechanism for when Blazor starts

Is your feature request related to a problem? Please describe.
We can currently set autostart="false" on the the Blazor <script> tag and then use the JavaScript Blazor.start({}).then(.........) to execute JavaScript we need to run as soon as Blazor starts.
Using this approach is not suitable for library developers, because Blazor.start can only be called once.
Describe the solution you'd like
Please provide a new Blazor.onStarted function that accepts a callback to execute once Blazor has started. It should be possible to call this function more than once so many scripts can be notified. If Blazor has already started, the callback should be executed immediately.
Or
Allow us to call Blazor.start() without any parameters which will complete the promise when Blazor has finished starting up, or immediately if it has already initialized.

@mrpmorris thanks for contacting us.
We'd like to understand more about your scenario. Could you please elaborate on the scenario and the problem you're trying to solve?

@mrpmorris thanks for contacting us.
We'd like to understand more about your scenario. Could you please elaborate on the scenario and the problem you're trying to solve?

Hi
A simple example is some JavaScript that invokes a static .NET method in order to get an API key that is stored in appsettings.json.
The use case isn't really that important, the problem is that any JavaScript that needs to call a static .NET class on startup cannot do so because there is no way to know when Blazor is ready to service the call.
The app developer can do this by calling Blazor.start({}).then(.....( but that's a one-off call. Any libraries that have JavaScript that needs to execute automatically don't have a hook point.
There are work-arounds such as getting some Blazor code to initialize the JavaScript, but that's not really the point. This is about JavaScript invoking Blazor static methods.
The three solutions to this are

Use setTimeout - but then you have to set the timeout too high.
Use setTimeout in a loop and swallow exceptions - this is quite an aggressive way to achieve the goal.
Use Blazor.start() - but that can only be hooked once.
Get Blazor to call the JavaScript - that works, but not as neat for something like Google Analytics where you just want the user to add a NuGet reference to your library, add an ApiKey to the settings, and reference a JavaScript.

https://blazor-university.com/javascript-interop/calling-dotnet-from-javascript/calling-static-dotnet-methods/

@mrpmorris I wouldn't recommend any javascript library to automatically perform any action (specially involving dotnet) immediately after being loaded by the browser.
The right pattern to follow here is for the library to expose an init/initialize method or similar and call that from the resulting promise from Blazor.start. So equivalent to what you suggested above
await Blazor.start({...});
library.Initialize();

@mrpmorris I wouldn't recommend any javascript library to automatically perform any action (specially involving dotnet) immediately after being loaded by the browser.
The right pattern to follow here is for the library to expose an init/initialize method or similar and call that from the resulting promise from Blazor.start. So equivalent to what you suggested above
await Blazor.start({...});
library.Initialize();

I agree that is currently the correct approach but, as you know, library creators like to go for as little boilerplate as possible.
Compare the instructions
(My suggestion)

Add NuGet reference to the package
Add a <script> reference (would be nice not to have to do this in the future)

(Current process)

Add NuGet reference to the package
Add the <script> tag
Alter the _Host.cshtml file and set autostart='false' on the Blazor script
Add a new script for your app (or <script> section in the _Host.cshtml file)
Add a new await call to Blazor.start() (passing in the default values, whatever they are)
Then call library.initialize() for every library you use

Not even sure if 5+6 would have to be an async function which you need to call, or if the main script can await - but anyway, it's just far too much to get a library consumer to do.
It would be a far superior experience for Blazor developers if the libraries they consume could each just do this
Blazor.addStartedCallback(function() {
initializeMyLibrary();
});

We've moved this issue to the Backlog milestone. This means that it is not going to happen for the coming release. We will reassess the backlog following the current release and consider this item at that time. However, keep in mind that there are many other high priority features with which it will be competing for resources.

@javiercn I think your bot is playing up.

@anurse can you take a look? The bot is doing bot things 😵

This is the bug I mentioned in Teams earlier that is fixed. The Needs: Author Feedback label was applied but not properly removed when @mrpmorris responded. It's all fixed now.


Propagate ErrorType to caller if ProtocolError is thrown by handler

Allow clients to set the response ErrorType by throwing a ProtocolError. Rate limiting is one use-case where this is useful.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #197 into master will increase coverage by 0.29%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #197      +/-   ##
============================================
+ Coverage     71.63%   71.92%   +0.29%
  Complexity       10       10
============================================
  Files            87       87
  Lines          2654     2660       +6
  Branches        318      320       +2
============================================
+ Hits           1901     1913      +12
+ Misses          535      525      -10
- Partials        218      222       +4

Impacted Files
Coverage Δ
Complexity Δ

...java/com/uber/tchannel/handlers/RequestRouter.java
72.48% <100%> (-0.34%)
0 <0> (ø)

...rc/main/java/com/uber/tchannel/api/SubChannel.java
76.92% <0%> (-0.96%)
0% <0%> (ø)

.../main/java/com/uber/tchannel/errors/ErrorType.java
66.67% <0%> (+3.7%)
0% <0%> (ø)
:arrow_down:

.../main/java/com/uber/tchannel/errors/BusyError.java
75% <0%> (+75%)
0% <0%> (ø)
:arrow_down:

...n/java/com/uber/tchannel/errors/ProtocolError.java
100% <0%> (+100%)
0% <0%> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Add the dialog to create new data sources to the UI

JIRA: https://issues.jboss.org/browse/AEROGEAR-3609
Additions:

Modal "add data source" has forms
Forms have validation
Forms are cleared when modal closes
"Add" button is disabled if any validation fails
Data source is created when clicking "Add" button
An alert is shown within the modal if an error ocurrs
New data sources are added to the data sources list

Disclaimer:

Under components/forms there are many components that are useless at the moment. They have been added to provide a boilerplate for future data source types and their customized forms.

@josemigallas Im not 100% on how everything is working yet so while it looks good, I'll leave it to @pb82 to approve

@pb82 @cfoskin PR updated with new info from backend guys: config is no longer asked to the user but a timestampData checkbox.
@cfoskin Could you perhaps verify that after creation, the db entry looks like this?