google.protobuf.message.DecodeError: Truncated message.

I have transformed my pytorch model to tf model, and when I started loading the saved_model.pb file:
from tensorflow.python.platform import gfile
import tensorflow as tf
import tensorboard
model = './saved_model.pb'
graph = tf.get_default_graph()
graph_def = graph.as_graph_def()
graph_def.ParseFromString(gfile.FastGFile(model, 'rb').read())
I got the following problem hint:
google.protobuf.message.DecodeError: Truncated message.
I searched for some methods but they didn't work, BTW as far as I known it's an intractable problem. Would anybody give me some advice? Thanks!

Hi @Enjia ,have you tried this way to load your tfmodel? It may work.

Thanks@namizzz, it worked indeed. Meanwhile I checked the generated  tf_resnet50.py file, I found the last two lines of the codes say:
ResNetnFinalLayernfcnnLinearnfcn442 =   tf.layers.dense(ResNetnFinalLayernfcnnLinearnfcn442_flatten, 12, kernel_initializer = tf.constant_initializer(__weights_dict['ResNetnFinalLayernfcnnLinearnfcn442']['weights']), bias_initializer = tf.constant_initializer(__weights_dict['ResNetnFinalLayernfcnnLinearnfcn442']['bias']), use_bias = True)
and
return input, ResNetnFinalLayernfcnnLinearnfcn442
As the section of "Reuse the converted Tensorflow model" shows, how can I get the finally output (xxxxxxxxxfc442, what a expatiatory name) through  operation "sess.graph.get_tensor_by_name('xxx:0')" or any other methods because it seems there's no name for last fc442 layer in graph. Thanks again!

Hi @Enjia ,you can add name by yourself first then dump out the model file.

@namizzz Thank you so much! I have tested my classification model and prediction score was identical to the original model.

Hi @namizzz thanks for the solutions several days ago. Nowadays I am deploying my pb model to a webserver using Flask, so that the webserver will allow user to upload an image and then will generate a predictionmy. My thought is that if webserver has to load weights for each request and then do the inference, it will take a lot more time. So, I shall create the graph and load the weights and keep that in the memory so that I can quickly serve each incoming request. In consideration of this situation, I have to use the following code:
`def load_graph(trained_model):
with tf.gfile.GFile(trained_model, "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
with tf.Graph().as_default() as graph:
    tf.import_graph_def(
        graph_def,
        input_map=None,
        return_elements=None,
        name=""
        )
return graph`

As I have mentioned some days ago, there's a problem with graph_def.ParseFromString(f.read()), that is "google.protobuf.message.DecodeError: Error parsing message"
The whole workflow code:
`import sys
import os
import flask
from flask import render_template, send_from_directory, request, redirect,url_for
from werkzeug import secure_filename
from flask import jsonify
import base64
import StringIO
import tensorflow as tf
import numpy as np
import cv2
Obtain the flask app object
app = flask.Flask(name)
UPLOAD_FOLDER='static'
def load_graph(trained_model):
with tf.gfile.GFile(trained_model, "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
with tf.Graph().as_default() as graph:
    tf.import_graph_def(
        graph_def,
        input_map=None,
        return_elements=None,
        name=""
        )
return graph

@app.route('/')
def index():
return "Webserver is running"
@app.route('/demo',methods=['POST','GET'])
def demo():
if request.method == 'POST':
upload_file = request.files['file']
filename = secure_filename(upload_file.filename)
upload_file.save(os.path.join(UPLOAD_FOLDER, filename))
image_size=128
num_channels=3
images = []
image = cv2.imread(os.path.join(UPLOAD_FOLDER, filename))
image = cv2.resize(image, (image_size, image_size), cv2.INTER_LINEAR)
images.append(image)
images = np.array(images, dtype=np.uint8)
images = images.astype('float32')
images = np.multiply(images, 1.0/255.0)
x_batch = images.reshape(1, image_size,image_size,num_channels)
graph =app.graph
y_pred = graph.get_tensor_by_name("y_pred:0")
x= graph.get_tensor_by_name("x:0")
y_test_images = np.zeros((1, 2))
sess= tf.Session(graph=graph)
feed_dict_testing = {x: x_batch}
result=sess.run(y_pred, feed_dict=feed_dict_testing)
out={"cat":str(result[0][0]),"dog":str(result[0][1])}
return jsonify(out)
return  '''
<!doctype html>

Running my first AI Demo

HOME

Dogs Cats Classification Demo
Upload new Image

    '''
app.graph=load_graph('./tf_resnet50/saved_model')
if __name__ == '__main__':
    app.run(host="<IP_ADDRESS>", port=int("5000"), debug=True, use_reloader=False)`
Can you give me some advise to solve this protobuf issue or replace my load_graph function with other solutions so that avoid using sentences like "graph_def.ParseFromString(f.read())"?
Thanks a lot!

Hi @namizzz thanks for the solutions several days ago. Nowadays I am deploying my pb model to a webserver using Flask, so that the webserver will allow user to upload an image and then will generate a predictionmy. My thought is that if webserver has to load weights for each request and then do the inference, it will take a lot more time. So, I shall create the graph and load the weights and keep that in the memory so that I can quickly serve each incoming request. In consideration of this situation, I have to use the following code:
def load_graph(trained_model): with tf.gfile.GFile(trained_model, "rb") as f: graph_def = tf.GraphDef() graph_def.ParseFromString(f.read()) with tf.Graph().as_default() as graph:     tf.import_graph_def(         graph_def,         input_map=None,         return_elements=None,         name=""         ) return graph
As I have mentioned some days ago, there's a problem with graph_def.ParseFromString(f.read()), that is "google.protobuf.message.DecodeError: Error parsing message"
The whole workflow code:
`import sys
import os
import flask
from flask import render_template, send_from_directory, request, redirect,url_for
from werkzeug import secure_filename
from flask import jsonify
import base64
import StringIO
import tensorflow as tf
import numpy as np
import cv2
app = flask.Flask(name)
UPLOAD_FOLDER='static'
def load_graph(trained_model):
with tf.gfile.GFile(trained_model, "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
with tf.Graph().as_default() as graph:
    tf.import_graph_def(
        graph_def,
        input_map=None,
        return_elements=None,
        name=""
        )
return graph

@app.route('/')
def index():
return "Webserver is running"
@app.route('/demo',methods=['POST','GET'])
def demo():
if request.method == 'POST':
upload_file = request.files['file']
filename = secure_filename(upload_file.filename)
upload_file.save(os.path.join(UPLOAD_FOLDER, filename))
image_size=128
num_channels=3
images = []
image = cv2.imread(os.path.join(UPLOAD_FOLDER, filename))
image = cv2.resize(image, (image_size, image_size), cv2.INTER_LINEAR)
images.append(image)
images = np.array(images, dtype=np.uint8)
images = images.astype('float32')
images = np.multiply(images, 1.0/255.0)
x_batch = images.reshape(1, image_size,image_size,num_channels)
graph =app.graph
y_pred = graph.get_tensor_by_name("y_pred:0")
x= graph.get_tensor_by_name("x:0")
y_test_images = np.zeros((1, 2))
sess= tf.Session(graph=graph)
    feed_dict_testing = {x: x_batch}
    out=sess.run(y_pred, feed_dict=feed_dict_testing)
    result = {"protest": str(out[0][0]), "violence": str(out[0][1]), "sign": str(out[0][2]), "photo": str(out[0][3]),
   "fire": str(out[0][4]), "police": str(out[0][5]), "children": str(out[0][6]), "group_20": str(out[0][7]),
   "group_100": str(out[0][8]), "flag": str(out[0][9]), "night": str(out[0][10]), "shouting": str(out[0][11])}
    return jsonify(result)

return  '''
<!doctype html>

  <title>Running my first AI Demo</title>

            HOME

Dogs Cats Classification Demo

Upload new Image

	            <form method=post enctype=multipart/form-data>

<input type=file name=file>
    	        <input type=submit style="color:black;" value=Upload>
	            </form>

    '''
app.graph=load_graph('./saved_model.pb')
if __name__ == '__main__':
    app.run(host="<IP_ADDRESS>", port=int("5000"), debug=True, use_reloader=False)`
Can you give me some advise to solve this protobuf issue or replace my load_graph function with other solutions so that avoid using sentences like "graph_def.ParseFromString(f.read())"?
Thanks a lot!

Hi @namizzz thanks for the solutions several days ago. Nowadays I am deploying my pb model to a webserver using Flask, so that the webserver will allow user to upload an image and then will generate a predictionmy. My thought is that if webserver has to load weights for each request and then do the inference, it will take a lot more time. So, I shall create the graph and load the weights and keep that in the memory so that I can quickly serve each incoming request. In consideration of this situation, I have to use the following code:
`def load_graph(trained_model):
with tf.gfile.GFile(trained_model, "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
with tf.Graph().as_default() as graph:
    tf.import_graph_def(
        graph_def,
        input_map=None,
        return_elements=None,
        name=""
        )
return graph`

As I have mentioned some days ago, there's a problem with graph_def.ParseFromString(f.read()), that is "google.protobuf.message.DecodeError: Error parsing message"
The whole workflow code:
`import sys
import os
import flask
from flask import render_template, send_from_directory, request, redirect,url_for
from werkzeug import secure_filename
from flask import jsonify
import base64
import StringIO
import tensorflow as tf
import numpy as np
import cv2
Obtain the flask app object
app = flask.Flask(name)
UPLOAD_FOLDER='static'
def load_graph(trained_model):
with tf.gfile.GFile(trained_model, "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
with tf.Graph().as_default() as graph:
    tf.import_graph_def(
        graph_def,
        input_map=None,
        return_elements=None,
        name=""
        )
return graph

@app.route('/')
def index():
return "Webserver is running"
@app.route('/demo',methods=['POST','GET'])
def demo():
if request.method == 'POST':
upload_file = request.files['file']
filename = secure_filename(upload_file.filename)
upload_file.save(os.path.join(UPLOAD_FOLDER, filename))
image_size=128
num_channels=3
images = []
# Reading the image using OpenCV
image = cv2.imread(os.path.join(UPLOAD_FOLDER, filename))
# Resizing the image to our desired size and preprocessing will be done exactly as done during training
image = cv2.resize(image, (image_size, image_size), cv2.INTER_LINEAR)
images.append(image)
images = np.array(images, dtype=np.uint8)
images = images.astype('float32')
images = np.multiply(images, 1.0/255.0)
#The input to the network is of shape [None image_size image_size num_channels]. Hence we reshape.
x_batch = images.reshape(1, image_size,image_size,num_channels)
graph =app.graph
y_pred = graph.get_tensor_by_name("y_pred:0")
## Let's feed the images to the input placeholders
x= graph.get_tensor_by_name("x:0")
#y_true = graph.get_tensor_by_name("y_true:0")
y_test_images = np.zeros((1, 2))
sess= tf.Session(graph=graph)
    ### Creating the feed_dict that is required to be fed to calculate y_pred
    feed_dict_testing = {x: x_batch}
    result=sess.run(y_pred, feed_dict=feed_dict_testing)
    # result is of this format [probabiliy_of_cats probability_of_dogs]
    #print()
    #pred=str(result[0][0]).split(" ")
    #print(pred)
    out={"cat":str(result[0][0]),"dog":str(result[0][1])}
    return jsonify(out)
    #return redirect(url_for('just_upload',pic=filename))
return  '''
<!doctype html>

  <title>Running my first AI Demo</title>

            HOME

Dogs Cats Classification Demo

Upload new Image

	            <form method=post enctype=multipart/form-data>

<input type=file name=file>
    	        <input type=submit style="color:black;" value=Upload>
	            </form>

    '''
app.graph=load_graph('./dogs-cats-model.pb')
if __name__ == '__main__':
    app.run(host="<IP_ADDRESS>", port=int("5000"), debug=True, use_reloader=False)`
Can you give me some advise to solve this protobuf issue or replace my load_graph function with other solutions so that avoid using sentences like "graph_def.ParseFromString(f.read())"?
Thanks a lot!

Hi @Enjia
def load_graph(trained_model):
    with tf.gfile.GFile(trained_model, "rb") as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())

    with tf.Graph().as_default() as graph:
        tf.import_graph_def(
            graph_def,
            input_map=None,
            return_elements=None,
            name=""
            )
    return graph

It's a way to load fronzen protobuf TF model.
In MMdnn, we export TF model using API SavedModelBuilder.This is the right way to load the model:
export_dir = "./tf_resnet152"
with tf.Session(graph=tf.Graph()) as sess:
    tf.saved_model.loader.load(sess, [tf.saved_model.tag_constants.TRAINING], export_dir)

    x = sess.graph.get_tensor_by_name('input:0')
    y = sess.graph.get_tensor_by_name('xxxxxx:0')
    ......
    _y = sess.run(y, feed_dict={x: _x})

This two .pb are different.
If you want to save time of loading model saved by API SavedModelBuilder, it's better to ask in stackoverflow or tensorflow. Thanks!

@namizzz I see, I will modify the code, thanks for your advice anyway!


Feat: Design Profile screen

What is your issue related to ?

[ ] Code
[x] Designing
[ ] Documentation
[ ] Testing/Research
[ ] Others[please specify]

Description
Design a Profile Screen for FitMate where the user will be able to see

DP
NAME
GENDER
DOB
STATE (Drop Down Menu)
BADGES EARNED

Describe the solution you'd like**
For reference you can visit Design

Additional context
FIGMA DESIGN LINK

I'd like to work on this issue.
(LGM SOC)

Sure Go ahead

I would like to work on this. Please assign me this

I'd like to work on this issue. please assign me this (LGM SOC)

@Viditjain04 Sure go ahead

Fitmate : Display Profile Screen
Figma Link : https://www.figma.com/file/JsFndwt7dCGtKnAQLe1QGj/Fitmate-profile-screen?node-id=4%3A348
Prototype : https://www.figma.com/proto/JsFndwt7dCGtKnAQLe1QGj/Fitmate-profile-screen?node-id=33%3A195&scaling=min-zoom&page-id=4%3A348

@sowmiya-venkatesan Good Work
Create a pull request
Make a new folder in Contributions folder   here and add your designs in it [.svg]


app_store: more informative errors

It would be nice for app_store to give more information to devs upon error. One simple way to do this would be to make the Failure cases have a String and string-ify the Rust Error, e.g.
https://github.com/uqbar-dao/uqbar/blob/7cef9e48577078f044732e3ceb34465ab8fdcd2e/modules/app_store/app_store/src/lib.rs#L131
to
Failure(String),

and
https://github.com/uqbar-dao/uqbar/blob/7cef9e48577078f044732e3ceb34465ab8fdcd2e/modules/app_store/app_store/src/lib.rs#L300
to
Err(e) => LocalResponse::NewPackageResponse(NewPackageResponse::Failure(format!("{}", e))),

The rewrite in #205 will resolve this


Sort setters

Sorting the keys in the setter object does not achieve the same effect as the orientation fix.
With sorting, every x channel will be set before y, however, every y should be set before x to have the same effect as the fix.
see: https://github.com/vizzuhq/vizzu-lib/commit/3f6ae0e59ef3de91e4c9bad571035db066b9fc37


Add missing translation filter.

Closes #50.

It would be great if it is possible to choose all locales at once in missing translations filter. In our case we have over ten locales (and growing) and it is not very convenient to choose all them by one to see general overview of translations

May you do a small PR for that?


Tidied fill missing macro

added parse_interpolation and parse_tidy to @fill_missing.

While working on this and separate_rows, I realized (i think) that functions  that leverage df.jl, but are not df.jl functions don't support all the selection methods that parse_tidy does (ie between, negation, and numbers).
I put together a from_parse_tidy function to better enable tidy selection in other functions. So now, for example, @fill_missing() supports the following (in addition to interpolation:
@fill_missing44(df, dt1:dt2 ,dt4, "down")
@fill_missing44(df, !1, "down")
@fill_missing44(df, !(dt1:dt3), "down")
@fill_missing44(df, !(3:4), "down")

@fill_missing44(df, !a, "down") # this is the only one that continues to elude me.

it is definitely possible there is pre-existing, more elegant, or more efficient way to do this. But if not, perhaps this could be a temporary method or future TidierTool? Happy to nix it as well.
Edit: Perhaps a more appropriate name would have been columns_from_parse_tidy() ?

Thanks @drizk1! Let me take a look at this to understand how it fits. Appreciate you working on this.

Looking through what the from_parse_tidy() function is doing, I'm not sure it's actually needed.
DataFrames.jl actually supports indexing like this: df[:, Cols(:a, :b, Between(:c, :e))], so I think the regular parse_tidy() function would still work here.
The bracket-indexing, even though it doesn't appear to be using a DataFrames function, actually is using a DataFrames function: the getindex() function. That's why I'm pretty sure we can support this capability in @fill_missing() without defining a new parsing function.
With all that said, I'm happy to modify your code to work with parse_tidy() to see if that's actually true.

That would be awesome if there is a way to do it without adding an additional parsing function. If you don't mind modifying it, that would be great because i could learn from it for future use.

I was curious to see if i could figure out how to modify with Cols to make it work without the additional parsing function, and it worked! And so simply.
replacing the parsing function with
  cols_expr = columns isa Expr ? (columns,) : columns
  column_symbols = names(df, Cols(cols_expr...))

makes all of the above fill column selections work, including the one that wouldn't. I'll throw in a PR with an adjusted fill_missing and separate_rows later

Do you want to modify this PR with those changes? Or do you want to put in a fresh PR?
Happy to leave this open or close accordingly.

I can put in a fresh one to keep the commits light.
The fill_missing macro uses parse_interpolation and parse_tidy  same as the changed version in the initial commit here (but they were the older versions, not the updated ones from this most recent update). And the updated function was changed to used lines above.


Extend ProfileTracer to display information about short regions

One possible extension for short region events is to put the region hash in the signal column and add two columns for runtime ad count.  For event types other than short region, these two additional columns will be empty.

Related to #1766


Clojure: Defword on symbol finds no definition (treesitter)

Say I'm looking at some code like this:
(ns my-ns
  (:require [clojure.string :as str]))

(str/join " " ["a" "b"])
; 1 2  3 (cursor positions)

I'm trying to navigate to the definition of the str/join function.
Typically if I put my cursor at position 3 (withing the symbol join) and use :ConjureDefWord (or the keybinding) this would happen.
But now for some reason I get the following:
; def (word): join
; Multiple candidates found
java.lang.Thread/join
java.lang.String/join

Luckily there's a work around: I can put my cursor at position 1 and then just search for join, but this isn't ideal.

Minimal Reproduction

minimal.lua
vim.cmd([[set runtimepath=$VIMRUNTIME]])
vim.cmd([[set packpath=/tmp/nvim/site]])
local package_root = "/tmp/nvim/site/pack"
local install_path = package_root .. "/packer/start/packer.nvim"
local function load_plugins()
    require("packer").startup({
        {
            "wbthomason/packer.nvim",
            -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
            "Olical/conjure",
            {
                "nvim-treesitter/nvim-treesitter",
                run = ":TSUpdate",
            },
        },
        config = {
            package_root = package_root,
            compile_path = install_path .. "/plugin/packer_compiled.lua",
            display = { non_interactive = true },
        },
    })
end

_G.load_config = function()
    -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
    require("nvim-treesitter.configs").setup({
        ensure_installed = { "clojure" },
        highlight = {
            enable = true,
        },
    })
end
if vim.fn.isdirectory(install_path) == 0 then
    print("Installing dependencies.")
    vim.fn.system({ "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path })
end
load_plugins()
require("packer").sync()
vim.cmd([[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]])

Create a file my_ns.clj with the code above
Start a repl (with cider etc)
Start nvim with the above config nvim -nu minimal.lua
:e my_ns.clj
Put cursor over the join symbol
:ConjureDefWord

I've narrowed things down a little, by using extract.word:
:lua print(vim.inspect(require("conjure.extract").word()))

At position 3 this outputs:
{
  content = "join",
  range = {
    ["end"] = { 11, 8 },
    start = { 11, 5 }
  }
}

Whereas extract.legacy-word outputs what I'd consider the "correct" extraction.
{
  content = "str/join",
  range = {
    ["end"] = { 11, 8 },
    start = { 11, 1 }
  }
}

I seem to remember this working a couple of days ago which makes me think that this is an issue with a tree-sitter update or something.

Cool, so I managed to narrow it down to this commit which updates the Clojure parser in Treesitter:
https://github.com/nvim-treesitter/nvim-treesitter/commit/5b8a152c6c9de4004725c20b891658e698430c70

I've not looked to deeply but I think the output of the clojure treesitter changed?
Changes in the above commit: https://github.com/sogaiu/tree-sitter-clojure/compare/8c23e..50468
If I had to guess it'd be this PR: https://github.com/sogaiu/tree-sitter-clojure/pull/31
Under the hood the :TSPlayground output has gone from:

from:
list_lit [0, 0] - [1, 38]
  value: sym_lit [0, 1] - [0, 3]
  value: sym_lit [0, 4] - [0, 11]
  value: list_lit [1, 2] - [1, 37]
    value: kwd_lit [1, 3] - [1, 11]
    value: vec_lit [1, 12] - [1, 36]
      value: sym_lit [1, 13] - [1, 27]
      value: kwd_lit [1, 28] - [1, 31]
      value: sym_lit [1, 32] - [1, 35]
list_lit [3, 0] - [3, 24]
  value: sym_lit [3, 1] - [3, 9]
  value: str_lit [3, 10] - [3, 13]
  value: vec_lit [3, 14] - [3, 23]
    value: str_lit [3, 15] - [3, 18]
    value: str_lit [3, 19] - [3, 22]

to:
list_lit [0, 0] - [1, 38]
  value: sym_lit [0, 1] - [0, 3]
    name: sym_name [0, 1] - [0, 3]
  value: sym_lit [0, 4] - [0, 11]
    name: sym_name [0, 4] - [0, 11]
  value: list_lit [1, 2] - [1, 37]
    value: kwd_lit [1, 3] - [1, 11]
      name: kwd_name [1, 4] - [1, 11]
    value: vec_lit [1, 12] - [1, 36]
      value: sym_lit [1, 13] - [1, 27]
        name: sym_name [1, 13] - [1, 27]
      value: kwd_lit [1, 28] - [1, 31]
        name: kwd_name [1, 29] - [1, 31]
      value: sym_lit [1, 32] - [1, 35]
        name: sym_name [1, 32] - [1, 35]
list_lit [3, 0] - [3, 24]
  value: sym_lit [3, 1] - [3, 9]
    namespace: sym_ns [3, 1] - [3, 4]
    name: sym_name [3, 5] - [3, 9]
  value: str_lit [3, 10] - [3, 13]
  value: vec_lit [3, 14] - [3, 23]
    value: str_lit [3, 15] - [3, 18]
    value: str_lit [3, 19] - [3, 22]

One (probably less than ideal) solution might be:
local ts = require("conjure.tree-sitter")

local node = ts["get-leaf"]()
local node_type = node:type()
if node_type == "sym_name" or node_type == "sym_ns" then
  node = node:parent()
end

print(ts["node->str"](node))

Problems with this are:

It's a specific work around for the clojure parser
It doesn't find the symbol if you have your cursor over the / (position 2 in OP)

Oh I think I fixed this in #460! And yeah, I think the syntax updated so the tree had more nuance to it. I changed the TS word extraction to consider it's parent, if it's a multi_symbol we use that instead of the lower symbol we started with. That should fix all occurrences of this although we may have to recursively walk up.
I wonder if foo.bar/x.y becomes [[foo, bar], [x, y]], so two levels of multi_symbol with four symbol at the bottom of the tree. If so, we just need to recur in some way and handle infinite layers of multi syms.

Yep, it does double nest, fixing with recursion, the duct tape of the CPU.

Fixed, I think? (on develop)

Just tried out develop and this fixed it for me.
I'll be keeping an eye out on releases 👀

@Olical and @Akeboshiwind
Sorry about the change / breakage.
We had created this issue to try to give advance warning of planned changes, but I didn't realize clearly that Conjure was using tree-sitter-clojure, and thus failed to reach out earlier (before releasing the change).
Please consider subscribing if interested.
(There is another change we're planning to release to better handle ClojureDart code, but perhaps it won't affect folks adversely.)

No problem! Thank you for improving the TS support and the added context.


Compiling NIO in Release Mode throws warnings

Expected behavior
No warnings, clean compile.
Actual behavior
A set of warnings, no clean compile.
Compile Swift Module 'NIO' (47 sources)
/Users/helge/dev/Swift/SwiftXcode/Images/SwiftNIO_XcodeImage/.build/checkouts/swift-nio.git-3108475404973543938/Sources/NIO/EventLoopFuture.swift:316:25: warning: will never be executed
            if let me = eventLoop as? SelectableEventLoop {
                        ^
/Users/helge/dev/Swift/SwiftXcode/Images/SwiftNIO_XcodeImage/.build/checkouts/swift-nio.git-3108475404973543938/Sources/NIO/EventLoopFuture.swift:315:12: note: condition always evaluates to false
        if _isDebugAssertConfiguration() {
           ^
/Users/helge/dev/Swift/SwiftXcode/Images/SwiftNIO_XcodeImage/.build/checkouts/swift-nio.git-3108475404973543938/Sources/NIO/EventLoopFuture.swift:338:64: warning: will never be executed
        if _isDebugAssertConfiguration(), let eventLoop = self.eventLoop as? SelectableEventLoop {
                                                               ^
/Users/helge/dev/Swift/SwiftXcode/Images/SwiftNIO_XcodeImage/.build/checkouts/swift-nio.git-3108475404973543938/Sources/NIO/EventLoopFuture.swift:338:12: note: condition always evaluates to false
        if _isDebugAssertConfiguration(), let eventLoop = self.eventLoop as? SelectableEventLoop {
           ^
Compile Swift Module 'NIOTLS' (3 sources)
Compile Swift Module 'NIOHTTP1' (7 sources)
Compile Swift Module 'NIOOpenSSL' (11 sources)
Compile Swift Module 'MicroExpress' (7 sources)
/Users/helge/dev/Swift/SwiftXcode/Images/SwiftNIO_XcodeImage/.build/checkouts/MicroExpress.git-6340581023861930988/Sources/MicroExpress/Express.swift:23:26: warning: 'addHTTPServerHandlers(first:)' is deprecated: Please use configureHTTPServerPipeline
        channel.pipeline.addHTTPServerHandlers().then {
                         ^

Steps to reproduce
swift build -c release
SwiftNIO version/commit hash
1.2.1
Swift & OS version (output of swift --version && uname -a)
Apple Swift version 4.0.3 (swiftlang-9<IP_ADDRESS> clang-9<IP_ADDRESS>)
Target: x86_64-apple-macosx10.9
Darwin ZeaPro.local 16.7.0 Darwin Kernel Version 16.7.0: Thu Jan 11 22:59:40 PST 2018; root:xnu-3789.73.8~1/RELEASE_X86_64 x86_64

Sadly, you're right. 😞
The first four warnings are all related to our debugging code for Futures/Promises, which keeps track of where futures and promises are allocated and then performs checking on deinit. Naturally this is very slow, so we want to avoid doing it in release builds. Sadly, the Swift compiler complains about anything guarded by _isDebugAssertConfiguration, and there is no way to silence it.
The final warning is because you're using a deprecated function: that's easily fixed. :smile:
We've just been quietly accepting those warnings, but you're right that clean builds are better, so right now the best solution we seem to have is to write our own function that does this insane thing:
func debugOnly(_ body: () -> Void) {
    assert({ body(); return true }())
}

This bizarre misuse of the assert function will work. I'll push up a patch to adopt it internally.
That said, if you loathe that construction as much as I do, feel free to chime in on this forums.swift.org post to help make the case for a better solution.
Thanks for the report!

See #179.

Why can't you embed the relevant code in #if Debug?

Because it's not a real thing in Swift. Nothing sets that automatically, not Xcode, and not SwiftPM, so adding it in there still keeps the code out unless you remember to manually set the #define either in Xcode or via -Xswiftc "-D Debug", which makes it not very useful.

Oh right, that is funny. I could have sworn #if DEBUG works for me. Looks like I never left Xcode ;-)


discord boost icon misaligned in dropdown list

self-explanatory
on BD 0.3.2/BBD 0.2.17/Nox 1.0.2

additionally, when you hover over a user and the text gets larger, the Boost icon next to them (if present) does not shift right with it

This should now be fixed.


Implement SHA3 base class and SHA3-512

Closes: #61

I am going to merge this since it passes the Short and Long messages and then address any issues with Monte when building the actually testing infrastructure.


gcvt() not working

1. SDK version（SDK 版本）
{
V1.506
}

2. In what kind of operation problems appear, and how to reproduce the problem ?（什么样的操作步骤问题会出现，是否是稳定复现，如何复现问题？）
{
        #include "stdlib.h"

        double value = 1.234567;
        char bufff[20];
        gcvt(value, 3, bufff);
        Trace(1,"%s",bufff);

@Neutree please resolve it ASAP!
can't able to convert float to char{see below image}.

}

see v2.1.1


ERROR [copy_back:159] FileNotFoundError: [Errno 2] No such file or directory: 'None'

2021-11-08 16:56:31 INFO [copy_back:24] Shutting Down MySQL server:
2021-11-08 16:56:31 INFO [process_runner:54] SUBPROCESS STARTING: systemctl start<EMAIL_ADDRESS>2021-11-08 16:56:31 INFO [process_runner:69] SUBPROCESS systemctl COMPLETED with exit code: 0
2021-11-08 16:56:31 INFO [copy_back:50] Moving MySQL data_dir to /tmp/MySQL-AutoXtraBackup-tmp-dir
2021-11-08 16:56:31 INFO [process_runner:54] SUBPROCESS STARTING: rm -rf /tmp/MySQL-AutoXtraBackup-tmp-dir
2021-11-08 16:56:31 INFO [process_runner:69] SUBPROCESS rm COMPLETED with exit code: 0
2021-11-08 16:56:31 ERROR [copy_back:159] FileNotFoundError: [Errno 2] No such file or directory: 'None'
2021-11-08 16:56:31 INFO [autoxtrabackup:301] Xtrabackup command history:
2021-11-08 16:56:31 INFO [autoxtrabackup:303] ['command', 'xtrabackup_function', 'start time', 'end time', 'duration', 'exit code']
2021-11-08 16:56:31 INFO [autoxtrabackup:303] ['systemctl', 'None', '2021-11-08 16:56:31', '2021-11-08 16:56:31', '0s', '0']
2021-11-08 16:56:31 INFO [autoxtrabackup:303] ['rm', 'None', '2021-11-08 16:56:31', '2021-11-08 16:56:31', '0s', '0']2021-11-08 16:56:31 INFO [autoxtrabackup:304] Autoxtrabackup completed successfully!

and in the log I can see

2021-11-08 16:56:31 INFO [copy_back:50] Moving MySQL data_dir to /tmp/MySQL-AutoXtraBackup-tmp-dir
2021-11-08 16:56:31 INFO [process_runner:54] SUBPROCESS STARTING: rm -rf /tmp/MySQL-AutoXtraBackup-tmp-dir
2021-11-08 16:56:31 DEBUG [process_runner:103] subprocess args are: ['rm', '-rf', '/tmp/MySQL-AutoXtraBackup-tmp-dir']
2021-11-08 16:56:31 INFO [process_runner:69] SUBPROCESS rm COMPLETED with exit code: 0
2021-11-08 16:56:31 ERROR [copy_back:159] FileNotFoundError: [Errno 2] No such file or directory: 'None'
2021-11-08 16:56:31 DEBUG [base:220] <pid.posix.PidFile object at 0x7f98507b4f48> closing pidfile: /tmp/MySQL-AutoXtraBackup/autoxtrabackup.pid

I am using version 2.0.2, the backup works ok, but the restore operation seems did nothing to the datadir. I've tried to empty the datadir and put a empty file in it, then try to recover the backup, it report as the above, and the datadir is still with only a empty file
the backup have already been manually prepared
my configuration file
[MySQL]
mysql=/usr/bin/mysql
mycnf=***
mysqladmin=/usr/bin/mysqladmin
mysql_user=***
mysql_password=***
## Set either mysql_socket only, OR host + port. If both are set mysql_socket is used
mysql_socket=***
#mysql_host=<IP_ADDRESS>
#mysql_port=3306
datadir=****
[Logging]
#[debug,info,warning,error,critical]
log = DEBUG
log_file_max_bytes =<PHONE_NUMBER>
log_file_backup_count = 7
#log_file =

[Backup]
#optional: set pid directory
pid_dir = /tmp/MySQL-AutoXtraBackup
tmp_dir = /tmp/MySQL-AutoXtraBackup-tmp-dir
#optional: set warning if pid of backup us running for longer than x
pid_runtime_warning = 2 Hours
backup_dir = /data/mysql_backup
backup_tool = /usr/bin/xtrabackup
#optional: specify different path/version of xtrabackup here for prepare
#prepare_tool =
xtra_prepare = --apply-log-only
#optional: pass additional options for backup stage
#xtra_backup = --compact
#optional: pass additional options for prepare stage
#xtra_prepare_options = --rebuild-indexes
#optional: pass general additional options; it will go to both for backup and prepare
#xtra_options = --binlog-info=ON --galera-info
#optional: set archive and rotation
#archive_dir = /data/mysql_backup_archives
#prepare_archive = 1
#move_archive = 0
#full_backup_interval = 1 day
#archive_max_size = 100GiB
#archive_max_duration = 4 Days
#optional: warning(enable this if you want to take partial backups). specify database names or table names.
#partial_list = test.t1 test.t2 dbtest

[Compress]
#optional
#enable only if you want to use compression.
#compress = quicklz
#compress_chunk_size = 65536
#compress_threads = 4
#decompress = TRUE
#enable if you want to remove .qp files after decompression.(Available from PXB 2.3.7 and 2.4.6)
#remove_original = FALSE

[Encrypt]
[Xbstream]
[Commands]
start_mysql_command=systemctl start<EMAIL_ADDRESS>stop_mysql_command=systemctl stop<EMAIL_ADDRESS>#Change user:group respectively
chown_command=chown -R mysql:mysql

I add some debug code,
    def move_to_tmp_dir(self) -> None:
        print(str(self.mysql_options.get("data_dir")))
        try:
            shutil.move(
                str(self.mysql_options.get("data_dir")),
                str(self.backup_options.get("tmp_dir")),
            )

and find out the print is

None

I thought it was due to there is no data_dir option in my.cnf but datadir, so I add a data_dir with same value as datadir, but get the same result.

I found 3 error in the script, and create a pull request
https://github.com/ShahriyarR/MySQL-AutoXtraBackup/pull/456


TLV Derive Macro for Borsh Variable Length

Broken off of #4768 (1/3)

This PR adds a derive macro to spl-type-length-value for simply adding the VariableLenPack trait with borsh methods for those who do not wish to implement a custom implementation of the tratit.
It simply mimics the TokenMetadata state implementation of VariableLenPack:
impl VariableLenPack for TokenMetadata {
    fn pack_into_slice(&self, dst: &mut [u8]) -> Result<(), ProgramError> {
        borsh::to_writer(&mut dst[..], self).map_err(Into::into)
    }
    fn unpack_from_slice(src: &[u8]) -> Result<Self, ProgramError> {
        try_from_slice_unchecked(src).map_err(Into::into)
    }
    fn get_packed_len(&self) -> Result<usize, ProgramError> {
        get_instance_packed_len(self).map_err(Into::into)
    }
}

I've also taken special care to set up a separate crate for testing the derive macro in order to keep borsh out of the dependencies for spl-type-length-value

All comments resolved. I would like to note I kind of hate having a "test" crate - I think it looks weird. But we have some for program crates, so it's not unusual. Perhaps this crate itself can, over time, morph into a general testing crate for all derive macros in the libraries dir?

I would like to note I kind of hate having a "test" crate

I totally appreciate that, but it's definitely needed in some cases. Typically it's whenever your dependencies would get screwed otherwise. And in this case, I want to avoid pulling borsh into the crate, so moving it into a test crate is a perfect solution.
I don't know if we need to worry about having some large test crate, but we can see how things shake out.


Honeycomb Environments

This library does not support Honeycomb environments.
https://docs.honeycomb.io/getting-data-in/data-best-practices/#environments-separate-data

I completely missed them releasing the Environments & Services.. that is absolutely awesome.
I am currently building a new library that is actually Open Telemetry compatible, which is even easier to work with, and that one is compatible with the environments, as you only need to specify an API key and not a dataset.
You can find it here: https://github.com/evanderkoogh/otel-cf-workers


Multiple OnPublish Commands

Which version are you using?
v0.13.0 OS WINDOWS
Question
Multiple OnPublish Commands
We are currently using onpublish to record streams to a file using ffmpeg. At the same time we would like to create an HLS stream. How can we create multiple onpublish actions?
Also, when using ffmpeg and onpublish, is there a way to log the output? it seems we only see it on the console but can't log it?

Ok seems we can just add additional onpublish lines. So it is working.

working.

actually it seems only the last one added is working. if we have to onpublish commands.

By utilizing multiple runOnPublish you are only replacing the previous value, which is why only the last one is running (it's just the YAML works).
I think it's possible to achieve what you want by simply utilizing the parallel process shell feature. Running CMD1 & CMD2 will run CMD1 in background and wait for CMD2 to finish. This works in linux shells and might work on widnows shell. Now there might be trouble sending interrupt signal to CMD1 one the publish is done, which is why you might want to wrap the commans in a shell fine and instead call  runOnPublish: ./cmd.sh. Inside the cmd file you would implement the signal handling for the spawed processes.

You can do exactly what @dorinclisu said - i'm noticing that there are a lot of Windows users, and the Windows problem is that the shell engine is really old and weak, exactly the opposite of the Linux one - but at the moment i don't know what to do. I could

incorporate a scripting engine into the server - the server would become huge and there'll be license problems
make the configuration more powerful, the problem is that nothing is as versatile as a scripting engine

You can do exactly what @dorinclisu said - i'm noticing that there are a lot of Windows users, and the Windows problem is that the shell engine is really old and weak, exactly the opposite of the Linux one - but at the moment i don't know what to do. I could

incorporate a scripting engine into the server - the server would become huge and there'll be license problems
make the configuration more powerful, the problem is that nothing is as versatile as a scripting engine

We are going to build an external application that will be called by the onpublish command, which is working fine, when a stream publishing our app triggers. The issue is that we also want a trigger when the publisher disconnects. Is it possible to achieve this?

We are going to build an external application that will be called by the onpublish command, which is working fine, when a stream publishing our app triggers. The issue is that we also want a trigger when the publisher disconnects. Is it possible to achieve this?


Resetting recoveryOf during transfer

https://github.com/farcasterxyz/contracts/blob/0dd302ffe51a34508f1eada4de6ba6622097c457/src/IdRegistry.sol#L274
I can see two use cases for transferring fids:

Transfer to new wallet (same owner)
Transfer to a new owner.

If the second case is expected to be the typical use case, then retting recoveryOf is a good decision, and the UI should make sure to let the new owner know that recovery is null and that they may want to set one. The possible problem in this case is owners just transferring between wallets do not set a new recovery address, even though they had one before, because they don't have it handy, or because gas price is high and they "will do it later". Also, transferring to the wrong address by mistake (ex. typo) is unrecoverable.
However, if the first case is expected to be the typical one, I think that recoveryOf should not be reset during transfer. I'm moving my FID to a new wallet, I most probably do not want to change the recovery address. The problem here is if I transfer to a totally different owner and he is not aware that I can use my recovery address to claim it back. So, in this case, the UI should make sure that I should set a new recovery address.
Both approaches have their pros and cons, but I think that we should optimise for 1 and leave recoveryOf unchanged.

there are three reasons why people transfer:

transferring to a new wallet for convenience (eg i prefer rainbow over metamask)
transferring to a new wallet for security (eg i am worried my seed phrase was exposed)
transferring to a new owner because the account changes hands (eg i sold my company)

If we go down the path of not resetting recovery, it means that a malicious party (an attacker in case 2, seller in case 3) can perform the transfer and then make an on-chain request to transfer the fid back which the other party might not notice or respond to in time.
I agree that it does make the case for (1) better where you enter the wrong wallet address. The thing is that (1) is a well known problem for all crypto transfers that users and applications are aware of and working to fix. while the attack vector is much more subtle and likely to be unexpected behavior.
There's another reason to reset it - to keep it aligned with the behavior of the NameRegistry so that users don't have to think about two different recovery properties when using Farcaster. In the case of the NameRegistry resetting the recovery is much more important because it is an ERC-721 and might cause lots of unexpected behaviors in auctions and other systems that do not assume a recovery mechanism.


bicep error "Values for request parameters are invalid: networkAcls.virtualNetworkRules[*].id" for resource Microsoft.Storage/storageAccounts

Bicep version
Bicep CLI version 0.16.2 (de7fdd2b33)
Describe the bug
When creating resource Microsoft.Storage/storageAccounts the parameter id is rejecting a valid virtual network subnet identifier, same parameter and approach works for keyvault resources but fails for storageaccount resources.
To Reproduce
create a vnet with a single subnet in its own resource group, reference the existing subnet from another bicep template as follows, the names used here are not relevant to the issue and can be substituted:
resource myVnetExample 'Microsoft.Network/virtualNetworks@2022-07-01' existing = {
  scope: resourceGroup('rg-example')
  name: 'vnet-example'
}

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  // other parameters omitted for brevity, considered irrelevant
  name: 'saexample'
  kind: 'StorageV2'
  properties: {
    networkAcls: {
      bypass: 'AzureServices'
      defaultAction: 'Deny'
      virtualNetworkRules: [
        {
          action: 'Allow'
          id: myVnetExample.properties.subnets[0].id
        }
      ]
    }
  }
}

upon attempting deployment, observe error:
Inner Errors:  {"code": "InvalidValuesForRequestParameters", "target": "saexample", "message": "Values for request parameters are invalid: networkAcls.virtualNetworkRules[*].id. For more information, see - https://aka.ms/storagenetworkruleset"}
Additional context

this experience is counter to the documentation and observed bicep functionality of other resources, for example the same approach works for keyvault resources.

leveraging resourceId(...) results in the same error.

passing in a 'hardcoded' id using a parameter causes an InternalServerError status for the deployment when viewed in Portal, parameter was in the format: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{snetName}'

The error logged for the deployment in this scenario was:
{
    "status": "Failed",
    "error": {
        "code": "ResourceDeploymentFailure",
        "target": "/subscriptions/123/resourceGroups/rg-example/providers/Microsoft.Storage/storageAccounts/saexample",
        "message": "The response for resource had empty or invalid content."
    }
}

it would seem Microsoft.Storage/storageAccounts creation improperly implements this parameter?
Please advise.

It does look like something is wrong on the Storage Accounts Resource Provider side - especially with the InternalServerError. Are you able to open a support ticket for this so this can be routed to the storage team?


Ping always returns Virtual IP

hello
That is an amazing tool :) thanks
But I have a problem. DNS is working on Pods, found the correct IPs. However, when I use ping to any external domain, returns my virtual IP. So Pods could not access any external address.
My Installation Scripts:
curl -s https://kube-vip.io/manifests/rbac.yaml > /var/lib/rancher/rke2/server/manifests/kube-vip-rbac.yaml
crictl pull docker.io/plndr/kube-vip:$TAG
alias kube-vip="ctr --namespace k8s.io run --rm --net-host docker.io/plndr/kube-vip:$TAG vip /kube-vip"

export VIP=<IP_ADDRESS>
export TAG=v0.4.2

kube-vip manifest daemonset \
--arp \
--interface $INTERFACE \
--address $VIP \
--controlplane \
--leaderElection \
--taint \
--services \
--inCluster | tee /var/lib/rancher/rke2/server/manifests/kube-vip.yaml

Hi, could you add the IP addresses, the commands etc.. just so I can see what you're seeing and what you would expect to see?

Hi, could you add the IP addresses, the commands etc.. just so I can see what you're seeing and what you would expect to see?

hi daniel
for example, run these command from any pods
bash-5.1# nslookup  google.com
Server:         <IP_ADDRESS>
Address:        <IP_ADDRESS>:53

Non-authoritative answer:
Name:   google.com
Address: 2a00:1450:4017:811::200e

Non-authoritative answer:
Name:   google.com
Address: <IP_ADDRESS>

bash-5.1# ping google.com
PING google.com (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=63 time=0.422 ms
64 bytes from <IP_ADDRESS>: seq=1 ttl=63 time=0.280 ms

<IP_ADDRESS> is my VIP

bash-5.1# traceroute google.com
traceroute to google.com (<IP_ADDRESS>), 30 hops max, 46 byte packets
 1  192-168-10-71.rke2-ingress-nginx-controller-admission.kube-system.svc.cluster.local (<IP_ADDRESS>)  0.042 ms  0.034 ms  0.031 ms
 2  <IP_ADDRESS> (<IP_ADDRESS>)  0.311 ms  0.285 ms  0.284 ms

<IP_ADDRESS> is my Node 1 IP

I found the problem :) At first, I suspected the kube-vip but I was wrong. Sorry :(


Clear all pin fields

Hi,
I can't find a method to clear all pin fields together. Can you help me?

you can set PinEntryEditText to null.
pinEntryEditText.setText(null);


Add io.gitlab.arturbosch.detekt.generator.Main to the jar manifest

Fixes #6600
We weren't adding declaring the Main class in the detekt-generator-*-all.jar. This will fix that.

Do we need a new patch release 1.23.4?

This is not critical so I don't think we need it for this. But with the Kotlin update we will need that point release. So I think that this fix should be added too


Basic configuration for mods

Hi!
Very happy about the way you work with the mod. It received regular updates and fixes for issues that I created, and it's been a blast playing with it on the server.
So, I wanna give back - I've configured the requirements based on your vanilla values for more than 60 mods that we've been using in the modpack. If you wish - I can send the config file to you to include some preconfigured values tested on multiplayer for all these mods.

Hi, thanks for your support, I appreciate your effort on this, in the discord server I already have a channel to share already made config files along kubejs scripts, feel free to join and share the files there ^^
Discord invite link: https://discord.gg/6c6cDU2mKj
Channel link: https://discordapp.com/channels/1266498719130583050/1269494389605142538


feat: Battery API

Definitely a WIP. Some open questions around how we can do events.

LGTM, Thank you!


Ontology review: reduce time for ontology tests

@elipapa commented on Wed May 16 2018
Currently it takes over > 10min to run test_ontology.

Could we please reduce it ?

@ckongEbi commented on Tue Jul 10 2018
would this be something @afaulconbridge  can look at as well?

As part of #122 the ontology tests can also be separated, which will mitigate this issue


Consistently use quarkus-generator.openApiSpecId as openApiSpecId in templates

As otherwise using the configKey instead can lead to a mismatch and an exception like:
[error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: jakarta.enterprise.inject.spi.DeploymentException: jakarta.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type io.quarkiverse.openapi.generator.providers.CompositeAuthenticationProvider and qualifiers [@OpenApiSpec(openApiSpecId = "your-config-key-not-the-same-as-spec-id")]
        - injection target: parameter 'compositeProvider' of com.acme.api.auth.AuthenticationPropagationHeadersFactory constructor
        - declared on CLASS bean [types=[com.acme.api.auth.AuthenticationPropagationHeadersFactory, io.quarkiverse.openapi.generator.providers.AbstractAuthenticationPropagationHeadersFactory, org.eclipse.microprofile.rest.client.ext.ClientHeadersFactory, java.lang.Object], qualifiers=[@Default, @Any], target=com.acme.api.auth.AuthenticationPropagationHeadersFactory]
        The following beans match by type, but none has matching qualifiers:
        - SYNTHETIC bean [types=[io.quarkiverse.openapi.generator.providers.CompositeAuthenticationProvider, java.lang.Object], qualifiers=[@Any, @io.quarkiverse.openapi.generator.OpenApiSpec(openApiSpecId = "your-spec-id-not-the-same-as-config-key")], target=n/a]

This is related to the changes introduced in https://github.com/quarkiverse/quarkus-openapi-generator/pull/795 and discovered while trying to update to the 2.6.0 in the hibernate-github-bot (https://github.com/hibernate/hibernate-github-bot/actions/runs/11771089053/job/32792519558?pr=286).
Many thanks for submitting your Pull Request :heart:!
Please make sure that your PR meets the following requirements:

[ ] You have read the contributors guide
[ ] Your code is properly formatted according to our code style
[ ] Pull Request title contains the target branch if not targeting main: [0.9.x] Subject
[ ] Pull Request contains link to the issue
[ ] Pull Request contains link to any dependent or related Pull Request
[ ] Pull Request contains description of the issue
[ ] Pull Request does not include fixes for issues other than the main ticket

How to backport a pull request to a different branch?

In order to automatically create a backporting pull request please add one or more labels having the following format backport-<branch-name>, where <branch-name> is the name of the branch where the pull request must be backported to (e.g., backport-quarkus2 to backport the original PR to the quarkus2 branch).

NOTE: backporting is an action aiming to move a change (usually a commit) from a branch (usually the main one) to another one, which is generally referring to a still maintained release branch. Keeping it simple: it is about to move a specific change or a set of them from one branch to another.

Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added.
If something goes wrong, the author will be notified and at this point a manual backporting is needed.

NOTE: this automated backporting is triggered whenever a pull request on main branch is labeled or closed, but both conditions must be satisfied to get the new PR created.

@all-contributors add @marko-bekhta for code.


CODE: num_causal error

Detect num_causal error in sim_trait function

This is resolving https://github.com/tskit-dev/tstrait/issues/94

LGTM. Shall we do the same for the random_seed variable?

For the random_seed variable, np.random.default_rng function https://numpy.org/doc/stable/reference/random/generator.html can have more inputs than integers, and I received a suggestion from Jerome saying that we shouldn't be trying to generate errors for that part.

Thank you for your prompt feedback @GertjanBisschop

cool!


How to load pre-trained weights on natural images?

The experiment in the paper shows that pre-trained weights on natural images can significantly improve the performance of the model.  There seems to be nothing in the code about how to load pre-trained weights on natural images.

Sorry for late reply
https://github.com/282857341/nnFormer/blob/e69edc83c79a6a8ccbf634e0ffbdfc82077c277e/nnformer/training/network_training/nnFormerTrainerV2_ACDC.py#L167-L169
You can load the pretrained weights by modify these code

Thank you for your reply. Did you download the natural image pre-trained weights from the link: https://github.com/microsoft/Swin-Transformer.
There are Swin-T, Swin-B, and Swin-L on different datasets and resolution, which one do you use?
------------------ 原始邮件 ------------------
发件人:                                                                                "282857341/nnFormer"                                                                                @.>;
发送时间: 2021年12月7日(星期二) 上午10:50
@.>;
<EMAIL_ADDRESS>主题: Re: [282857341/nnFormer] How to load pre-trained weights on natural images? (Issue #39)
Sorry for late reply
https://github.com/282857341/nnFormer/blob/e69edc83c79a6a8ccbf634e0ffbdfc82077c277e/nnformer/training/network_training/nnFormerTrainerV2_ACDC.py#L167-L169
You can load the pretrained weights by modify these code
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

synapse is swin L, and ACDC uses swin s in the https://github.com/SwinTransformer/Swin-Transformer-Semantic-Segmentation


Android Basics: Activity Lifecycle

https://developer.android.com/codelabs/basic-android-kotlin-training-activity-lifecycle?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-3-pathway-1%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-activity-lifecycle#4
Step 5
Website is missing a line break before '5.' so it is at the end of the last paragraph of step 4.

@adalius
Do you mean image rendering issue?

No. This.

No. This.

@adalius
Thank you for reaching out to us. The issue is fixed and published.


imp: various ux stuff

Hey @plbkr can you commit the changes to package.json in this PR so we get the DND deps?

Actually I'll fix and push a new PR with the updated deps.


Add AFK Timer to "Report Button" Plugin

A nice addition to the Report Button plugin would be to add a timer that shows how many minutes/seconds it's been since you last interacted with the game window.
I know that by default there are notifications when you get close enough to hitting the logout timer, but I think this change would be pretty simple and add a small amount of QOL.

Looking into this.


GLFW throws error when start gles-worker desktop on Mac

Environment

os.name: Mac OS X
os.version: 10.13.4
GL_VERSION : 2.1 INTEL-10.32.48
GL_SHADING_LANGUAGE_VERSION: 1.20
GL_VENDOR: Intel Inc
GL_RENDERER: Intel Iris OpenGL Engine
Java version: 1.8.0_191
Python version: 3.7.2

Description
I built the gles-worker and tried to execute with command java -ea -jar gles-worker-desktop.jar. However, the GLFW library failed to create window and throw an error.
The error log:
java.lang.ExceptionInInitializerError
	at org.lwjgl.glfw.GLFW.glfwCreateWindow(GLFW.java:1647)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.createGlfwWindow(Lwjgl3Application.java:442)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.createWindow(Lwjgl3Application.java:391)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.createWindow(Lwjgl3Application.java:379)
	at com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application.<init>(Lwjgl3Application.java:108)
	at com.graphicsfuzz.glesworker.desktop.DesktopLauncher.start(DesktopLauncher.java:263)
	at com.graphicsfuzz.glesworker.desktop.DesktopLauncher.main(DesktopLauncher.java:164)
Caused by: java.lang.IllegalStateException: GLFW windows may only be created on the main thread and that thread must be the first thread in the process. Please run the JVM with -XstartOnFirstThread. For offscreen rendering, make sure another window toolkit (e.g. AWT or JavaFX) is initialized before GLFW.
	at org.lwjgl.glfw.EventLoop$OffScreen.<clinit>(EventLoop.java:37)
	... 7 more

Current Workaround

For running via command line, use java -XstartOnFirstThread -ea -jar gles-worker-desktop.jar
For running on IntelliJ IDEA, set -XstartOnFirstThread as the VM options for the configuration.

This might have been fixed in a newer version of LibGDX.  Could you test that out please?

@jiradeto Does the workaround actually work for you? On desktop, I believe we invoke the java binary again as a child process without forwarding the JVM args. We should change the invocation to include -XstartOnFirstThread when running on MacOS (and to include -ea always!). You can see this here:
https://github.com/google/graphicsfuzz/blob/master/gles-worker/desktop/src/com/graphicsfuzz/glesworker/desktop/DesktopLauncher.java#L171
We should split it into:

cmd.addAll "java" and JVM args "-ea" and "-XX:ErrorFile=...".
if on macOS: cmd.addAll "-XstartOnFirstThread".
cmd.addAll "-jar" and jarPath
cmd.addAll args (existing args input)

Could you:

See if the workaround you provided works. If yes, then that would be surprising and we should investigate it further before doing step 2.
Try doing the above change and see if that works for you. If yes, then do a PR and I can check if it works for me as well.

@paulthomson does #469 fix this?

Closed by #469


"Try it out" button for snippetgenerator on Swagger UI always fails with 415

Repro:

Go to https://graphexplorerapi.azurewebsites.net/swagger/index.html
Expand POST /snippetgenerator
Select Try it out
Select Execute

Result: Server returns 415.
It looks like the UI is passing the wrong Content-Type. The UI has text/message;version=1.1;msgtype=request. However, the API endpoint is expecting application/http.
AB#8087

this issue appears to be fixed.


NativeFunctionInvocationFixer - PHP 8 attributes

The NativeFunctionInvocationFixer removes the leading \ from attributes when strict is set to true which breaks the code.
Config:
'native_function_invocation' => [
    'strict' => true,
],

Result:
-#[\Attribute(\Attribute::TARGET_CLASS)]
+#[Attribute(\Attribute::TARGET_CLASS)]
class Foo {}

This PR should fix the problem.

Coverage increased (+0.001%) to 91.922% when pulling 8a110a171802cd7b2a8a100cb06600200fcc931b on HypeMC:native-function-invocation-attributes into 27b5b5670a5127f7ef127eb2d1c8688fd8ae8db5 on FriendsOfPHP:2.17.

Coverage increased (+0.001%) to 91.922% when pulling 8a110a171802cd7b2a8a100cb06600200fcc931b on HypeMC:native-function-invocation-attributes into 27b5b5670a5127f7ef127eb2d1c8688fd8ae8db5 on FriendsOfPHP:2.17.

Thank you @HypeMC.


bug fix: PEATCLSM water table depth

The water table depth (WATERTABLED) export variable ("zbar" in Catchment) that was introduced with PEATCLSM (#524) produces inappropriate values for mineral tiles.
This PR restricts the calculation of the WATERTABLED and FSWCHANGE exports to PEATCLSM tiles and assigns MAPL_UNDEF elsewhere.  The PR also renames these exports for clarity and consistency:
WATERTABLED --> PEATCLSM_WATERLEVEL
FSWCHANGE   --> PEATCLSM_FSWCHANGE

Moreover, the sign convention for PEATCLSM_WATERLEVEL was flipped from that of WATERTABLED so that now water level is negative below ground and positive above ground.
One open question (probably for @weiyuan-jiang or @mathomp4):
The above PEATCLSM exports are calculated in tile space and remapped to the atmospheric grid via MAPL Location Stream, along with all other tile-space land exports.  Since PEATCLSM tiles are still "land" tiles (i.e., type 100) and are identified only by their uniquely large porosity (POROS) values, the question is how no-data-values (MAPL_UNDEF) are treated in the remapping from tile to grid.  The desired behavior is to ignore MAPL_UNDEF in the tile2grid operation.  That is, if a given (say, cube-sphere) grid cell includes two tiles, one mineral and one PEATCLSM, then the average of PEATCLSM_WATERLEVEL for the cube-sphere grid cell in question should be that of the PEATCLSM tile, rather than MAPL_UNDEF.  If this is not the default behavior, are there options in MAPL Location Stream to make this happen?
Since the PR only touches exports that are only used for the forthcoming SMAP L4_SM version, it should be trivially 0-diff for the GCM.  Given the extent of the edits, though, I chose the regular 0-diff label to be safe.
There is some urgency to this bug fix because it is needed for L4_SM Version 7 production, which is estimated to start later this month.
A matching GEOSldas PR will be created.
The revised variable names and documentation are not set in stone.  Feel free to comment if you have any questions or suggestions.
cc: @gmao-jkolassa @rdkoster @sdrabenh @biljanaorescanin @mbechtold @gmao-qliu

That is, if a given (say, cube-sphere) grid cell includes two tiles, one mineral and one PEATCLSM, then the average of PEATCLSM_WATERLEVEL for the cube-sphere grid cell in question should be that of the PEATCLSM tile, rather than MAPL_UNDEF.

DO you mean the calculation of PEATCLSM_WATERLEVEL should depend on other variables PEATCLSM ?

I think in MAPL, the data MAPL_UNDEF is ignored and is not counted in averaging calculation

Ok, thanks.  We'll assume for now that nothing else needs to be done and verify the assumption in a cube-sphere tile-space experiment.

DO you mean the calculation of PEATCLSM_WATERLEVEL should depend on other variables PEATCLSM ?

No.  Water level is computed in tile space in CatchGridComp.  The question is simply what we get when we ouput waterlevel in grid space from SurfaceGridComp (where the tile2grid aggregation is done by MAPL Location stream).  So if x(tile1) = 0.5 and x(tile2)=NaN, we want x(gridcellA)=0.5, where gridcellA consists of tile1 and tile2.

@gmao-rreichle
then if x(tile1) = 0.5 and x(tile2)=NaN, where gridcellA consists of tile1 and tile2. Then the MAPL_LocstreamTransoform will give: x(gridcellA)=0.5
Basically any MAPL_UNDEF in the source tiles does not count towards the destination cell. In that case the weights are renormalized. That is done here:
https://github.com/GEOS-ESM/MAPL/blob/main/base/MAPL_LocStreamMod.F90#L1992

No questions or suggestions. Sounds like a very good idea to me to have PEATCLSM_WATERLEVEL and PEATCLSM_FSWCHANGE output variables. I also appreciate the sign change.

See below for update on testing.
@sdrabenh: We are ready to start SMAP L4_SM Version 7 reprocessing as soon as we have a new GEOSgcm_GridComp release that includes this bug fix.  The PR could be merged immediately, so we could start L4_SM reprocessing without further delay.  Or we could wait (probably about a day) for Biljana's test to be completed.  In any case, this is a heads-up that it would be very helpful to merge this PR as soon as you can fit it into your schedule.
I'm going to change the status from "draft" to "ready for review" now so we can start collecting approvals from @GEOS-ESM/landice-team and @GEOS-ESM/ocean-team.  The changes are strictly limited to export variables for "land" tiles and can be considered trivially 0-diff for all things GCM.
Update on tests completed so far:
From @gmao-qliu, 13 Jun 2022: "The NRv10 and OLv7 tests are both zero diff from before. I also confirm that the WATERABLED and FSWCHANGE output are scientifically identical for peat tiles (with WTD sign reversed)."
From @biljanaorescanin, 13 Jun 2022: "I've run AGCM tests and those are zero diff."
Qing's testing of the changes in the PEATCLSM_* outputs was done on the EASEv2 grid, with 1 tile per grid cell, which is all we need for SMAP L4_SM.  We still need to verify that that the tile2grid aggregation works as expected when on the cube-sphere tile space with lat/lon-gridded output.  @biljanaorescanin is working on this.  Based on the input by @bena-nasa above, we fully expect this to work properly.  But any issues there would not affect SMAP L4_SM.

FINAL update: Based on output created by @biljanaorescanin using "develop" and this branch with NLv5 bcs on the cube-sphere tile space, I verified that PEATCLSM_WATERLEVEL and PEATCLSM_FSWCHANGE are ok.  PR is definitely ready to be merged as is.


Support for Source Resource

Are there plans to support Source Resources, which can be found here on the API docs?
https://developers.paymongo.com/v1/reference/the-sources-object

Actually, turns out we were looking at older docs (note the /v1/ while their updated docs are unversioned https://developers.paymongo.com/docs/introduction) and Source Resources are no longer supported nor recommended.
This issue is no longer relevant, closing.


Missing package from NPM

Hi
When i try to install in NPM with npm install @bepo65/mat-image-grid i got the following error:

The package is still under construction (but already usable in its limits), so I did not publish it to npmjs already.
The limits are the number of images; at the moment it keeps all loaded image data from the server in the internal buffer;so the memory footprint might get very large for large image lists. I tested it with 10,000 images without running into problems.
At the moment i am working on the package to remove the limitation. This will change the interface (i.e. the properties defining the size of the buffers).
I will publish it anyway, but today i am very busy, Hope I will find the time tomorrow morning.
The package is not scoped, so it will be published as ´mat-image-grid´ (without the '@bepo65').


Adding Integrity Check to snapshot version for checking corrupted queues.

Can you get rid of the build system changes from the PR? If there are any, which is hard to tell whether it's just a messed up PR or intentional, they should be submitted separately.

I can separate the gradle changes into a different commit yes.

3 separate commits now. 1. initial gradle setup; 2. update to gradle 6.7 and Java 11; 3. my change.

LGTM

Not needed anymore. Outdated.

Not needed anymore. Outdated.


On Edge/IE11 input is stamping the expression placeholder as the value

In a LitElement, if you are using an <input value="${props._value}"> in your template and props._value is undefined, then Edge/IE stamp the expression placeholder instead of something good:

If you set a default value for _value in the element's constructor then it's fine.
Repro: https://lit-element-example-6nhwjs.stackblitz.io
(Works fine on Chrome/FF/Safari, borked on Edge/IE11)

const tpl = document.createElement('template');
tpl.innerHTML = '<input value="foo">';
const input = document.importNode(tpl.content, true).firstElementChild;

input.removeAttribute('value');
console.log('value is now:');
console.log(JSON.stringify(input.value));

This logs the value as "" for Chrome and "foo" for Edge. This explains why you get the expected result in your example in Chrome etc, but this actually masks a bug in lit-html:
Setting the _value to empty string in the constructor means the first render will call the value property setter on the input element. When this initial _value is undefined, this setter is not called because the _equalToPreviousValues of AttributePart returns true.
This is wrong, on a first render _equalToPreviousValues should never be true.
Repro in @notwaldorf's example: https://stackblitz.com/edit/lit-element-example-sqqeig. Note how the setter never gets called unless you uncomment the this._value = ''; in the constructor.
Another result of the fact that _equalToPreviousValues returns true if the initial value is undefined is the following unexpected behaviour:
import {render, html} from 'lit-html';

render(html`

`, document.body);

console.log(document.body.innerHTML);

logs

Repro: https://stackblitz.com/edit/lit-element-example-fqhsbb

I couldn't repro this anymore, so I think it was fixed by #377, but I added a test in #448


Chip and STR revision for datasets creation

Current coverage is 87.79% (diff: 94.87%)

Merging #24 into generic will decrease coverage by 1.41%

@@            generic        #24   diff @@
==========================================
  Files             6          6
  Lines           306        295    -11
  Methods           0          0
  Messages          0          0
  Branches         41         39     -2
==========================================
- Hits            273        259    -14
- Misses           30         33     +3
  Partials          3          3

Powered by Codecov. Last update b5f8415...2906c39

Looks good!


Make multiple CH-prepared profiles possible

Currently only one profile can be CH-prepared and therefor faster. For this change eveything is in place via #111 and #339 both implemented in PR #447.

[x] access bits won't be necessarily on the first&second bit of the encoder.flags now anymore. But for shortcut weights we need them there.
[x] how to get these routing graphs - via getGraph(Graph.class, new Weighting, new FlagEncoder)?
[x] do multiple CH-preparations based on different weightings/flagencoders
[ ] we need a separate per-request parameter to force none-CH requests like flexibility=true. This possibility should be disabled by default like jsonp is disabled for request stability reasons.
[x] how to handle multiple routing factories for ch and none-ch in GraphHopper class
[ ] make config possible in Java API and in config.properties

Once we have this we need #86 and the bug mentioned in #318 which will get a lot more urgent.

This is now compiling and working for one profile at least. More profiles cause routing problems Connection between locations not found for the additional profiles even for short distances and if it is routing causing strange artifacts. To be investigated.

See branch https://github.com/graphhopper/graphhopper/tree/issue_464

This is huge: it is working now! Please test and report problems!
I added a usage description in the top comment entry.

further improvements to be done:

add weighting of ch also to graph.toString + toDetailsString
Weighting comparison by reference or by string both sometimes ugly, see // TODO too loose matching?
should we really allow RoutingAlgorithmFactory overwriting in putAF?
ensure already in Weighting class file name friendly names! so that file name is really identical to weighting name?
assert correct encoder in the methods isForward/isBackward of the two edge iterator implementations in CHGraph, see // TODO assert correct encoder

All problems fixed. Or at least an issue created (#490, #491)

Merged

:+1:


I have a problem. The tiles I cut do not conform to my coordinate system

my data is cgcs2000, i think it don`t have different with wgs84

Dear @zhanghjtx
I'm sorry but I don't understand your issue.
I'm going to close this because we need more context/data!


Use travis-ci.com.

Codecov Report

Merging #21 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #21   +/-   ##
=======================================
  Coverage   66.93%   66.93%
=======================================
  Files           8        8
  Lines         490      490
=======================================
  Hits          328      328
  Misses        154      154
  Partials        8        8

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 d11691d...45a63fe. Read the comment docs.


place-items and place-content

We should support place-items and place-content

Note, we can’t support place items, as justify-items is missing from RN


peripheral mac address not unique

Hello,I use the BluetoothLeScanner  device to search BluetoothLeAdvertiser device.I only use the same peripheral device(an android phone). But I try many times, the BluetoothLeScanner device search the different mac address every time. I use the callback onScanResult() and the function result.getDevice().getAddress()
@Override public void onScanResult(int callbackType, ScanResult result) {
            super.onScanResult(callbackType, result);
            if (mOnScanCallback != null) {
                Logger.i("ScanResult" + result.getDevice().getAddress());
            }
        }

When LE privacy (https://blog.bluetooth.com/bluetooth-technology-protecting-your-privacy) is in use the mac addresses are randomized and they maybe different from the BD_ADDR.  Thats what seems to be happening on your Android Phone which you are using as a Peripheral.

Hi, I feel frustrated of the Mac address rotating in my phone. I use two phones as scanner and advertiser. Why do I see the exact persistent Mac address of advertise phone in the scanner phone and do not see any rotating Mac address?

@jamesweb1  I mean the same device, which shows different mac address on two broadcasts.


Could I have a little tutorial on how to use the video feature? I want to display the video in a winforms picturebox if that’s possible ;)

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{  D400 }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
Win10

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
PC/Raspberry Pi/ NVIDIA Jetson / etc..

SDK Version
{ legacy / 2.. }

Language
{C#}

Segment
{Robot/Smartphone/VR/AR/others }

Issue Description
<Describe your issue / question / feature request / etc..>

Hi @jinxzzz
Did you look at cs-tutorial-2-capture, I think it is more or less what you are looking for.

Hi @jinxzzz
Did you look at cs-tutorial-2-capture, I think it is more or less what you are looking for.

Thanks for the quick response.
I wrote the winform program by referring to the source code you said.But the source code is written in WPF.WPF is still different from winform in many ways.The winform program I wrote according to this source code does not show depth images. Could you help me check my program and provide me with a small demo to show depth images in picturebox controls?Thank you very much!
Here is my code:
           Pipeline  pipeline;
           pipeline = new Pipeline();
           Colorizer colorizer;
           colorizer = new Colorizer();

           var cfg = new Config();
           cfg.EnableStream(Intel.RealSense.Stream.Depth, 640, 480, Format.Any, 30);
           cfg.EnableStream(Intel.RealSense.Stream.Color, 1280, 720, Format.Rgb8);
           var pp = pipeline.Start(cfg);

           var frames = pipeline.WaitForFrames();

           var colorFrame = frames.ColorFrame.DisposeWith(frames);
           var depthFrame = frames.DepthFrame.DisposeWith(frames);
           var p = pp.GetStream(Intel.RealSense.Stream.Depth) as VideoStreamProfile;
           var img = new Bitmap(p.Width, p.Height, PixelFormat.Format24bppRgb);
            pictureBox1.Image = img;

@RealSense-Customer-Engineering

Problem with @jinxzzz's code isn't Winform\WPF related, it's that depth images aren't in a format compatible for display. The default depth format is Format.Z16, which is 16-bit linear depth in device units.
You'll need to convert this for something that can be displayed, this is what the Colorizer processing block is for, it returns a color-mapped frame with Format.Rgb8.

Hi jinxzzz,
Given what ogoshen mentioned, wonder if you have any update? Or do you still need help?
Thanks!

Hi jinxzzz,
If there is nothing else, this one will be closed soon.
Thanks!


usb: function_eem: fix eem_read_cb

This patch prevents eem_read_cb from trying to allocate a lot of memory.
It may happen that EEM payload size is zero, the eem_read_cb then tries to
allocate a buffer which is 0xfffc bytes large and luckily blocks.
(If someone wants to test it, rebase this PR on #7551)

@loicpoulain FYI

Codecov Report

Merging #7925 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #7925      +/-   ##
==========================================
+ Coverage   55.02%   55.03%   +<.01%
==========================================
  Files         483      483
  Lines       53960    53966       +6
  Branches    10499    10490       -9
==========================================
+ Hits        29694    29698       +4
- Misses      19978    19992      +14
+ Partials     4288     4276      -12

Impacted Files
Coverage Δ

include/entropy.h
33.33% <0%> (-41.67%)
:arrow_down:

kernel/init.c
57.57% <0%> (-10.29%)
:arrow_down:

tests/kernel/common/src/intmath.c
100% <0%> (ø)
:arrow_up:

kernel/thread.c
87.23% <0%> (ø)
:arrow_up:

subsys/net/ip/rpl.c
16.64% <0%> (+0.05%)
:arrow_up:

tests/net/arp/src/main.c
62.86% <0%> (+0.13%)
:arrow_up:

..._slab/mslab_threadsafe/src/test_mslab_threadsafe.c
95.83% <0%> (+0.18%)
:arrow_up:

tests/posix/semaphore/src/sem.c
85.71% <0%> (+0.52%)
:arrow_up:

subsys/logging/kernel_event_logger.c
57.5% <0%> (+1.4%)
:arrow_up:

include/crypto/cipher.h
100% <0%> (+33.33%)
:arrow_up:

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 876a9af...b84a52e. Read the comment docs.


fix(camel-case-pipe): update regex to fix code scanning issue

Description
Fix code scanning issue: insufficient regular expression.
For more details:
https://github.com/Legal-and-General/canopy/pull/194/checks?check_run_id=1823669882
Checklist:

[x] The commit messages follow the convention for this project
[ ] I have provided an adequate amount of test coverage
[ ] I have added the functionality to the test app
[ ] I have provided a story in storybook to document the changes
[ ] I have provided documentation in the notes section of the story
[ ] I have added any new public feature modules to public-api.ts
[ ] I have linked the new component to adobe DSM (if appropriate)

@thatguynamedandy would you be able to disable the check for the code scan on this PR so that we can merge it?
For some reason it still detects it even though that code is not there anymore - I think that's a bug Jack raised with GitHub already.


The program exits abnormally

When the program exits abnormally, MP4E_close cannot be called normally, how can I repair the file?

Hi)
I'm not sure. But according to doc write() and close() is allowed in signal handlers:
https://man7.org/linux/man-pages/man7/signal-safety.7.html
so it's theoretically possible to call MP4E_close on app abnormal termination.
If MP4E_close is not called, in default mode there almost impossible to to repair data since all frames stored in 1 mdat and without indexes frames length is unknown.
In sequential mode repair process is somewhat real since each frame resides in individual mdat and have known length. But still not simple, you need restore some meta info like codecs used and which individual mdat belongs to what codes/track which is complex task too, but can be simple for 1 track file case.
If fragmented mode file should be decodable to last complete mdat/moof fragment.

Hi)
I'm not sure. But according to doc write() and close() is allowed in signal handlers:
https://man7.org/linux/man-pages/man7/signal-safety.7.html
so it's theoretically possible to call MP4E_close on app abnormal termination.
If MP4E_close is not called, in default mode there almost impossible to to repair data since all frames stored in 1 mdat and without indexes frames length is unknown.
In sequential mode repair process is somewhat real since each frame resides in individual mdat and have known length. But still not simple, you need restore some meta info like codecs used and which individual mdat belongs to what track which is complex task too, but can be simple for 1 track file case.
If fragmented mode file should be decodable to last complete mdat/moof fragment.

Thank you for giving me some inspiration, I will try to fix it


Include setup of the "quickstart" OCI registry ingress " in the "quickstart install" command

What would you like to be added:
Include the setup of the ingress for the OCI registry of "landscaper-cli quickstart install" in the "install" command itself.
Why is this needed:
Currently when using "landscaper-cli quickstart install" to setup a Landscaper instance and an OCI registry in a shoot cluster, an ingress for accessing the registry without port-forwarding via localhost must be manually added via "landscaper-cli quickstart add-oci-endpoint". In reality this turned out to be a somewhat of a hassle (e.g. configuring the Landscaper instance with the correct registry credentials). These manual steps should be included in the "quickstart install" command itself. It should really take only 1 single command to get up and running with component development using the setup provided by the "quickstart" command.

Will the old command "landscaper-cli quickstart add-oci-endpoint" still be available or has it been included in the quickstart command itself ? If the latter, then the CLI Documentation needs to be adjusted accordingly (https://github.com/gardener/landscapercli/tree/master/docs/commands and subsequent pages ...)

I directly included the logic in the "quickstart install" itself, therefore removing the "quickstart add-oci-endpoint" command. This has already been updated in the docs https://github.com/gardener/landscapercli/blob/master/docs/commands/quickstart/install.md#installing-and-configuring-the-oci-registry


[core] add a package to expose creation of HttpClients

Initially expose an method to create XhrHttpClient.
Over time when we change the concrete types of our default HttpClients, old HttpClient concrete types might still be desired by some customers. They can be exposed in this package.

API change check
APIView has identified API level changes in this PR and created following API reviews.
@azure/core-httpclients

High-level though it's less clear to me why we'd want to public this and maintain it

The main reason customer might need one httpclient over another is that there are feature disparities between APIs (Fetch v.s. XHR), and platform implementation details (e.g., incomplete Fetch implementation in React-Native).
An immediate ask is that ACS team would like to use XHR based client for file upload scenario because upload progess is broken in Fetch (only fired once on completion).

Tossing out a few more package name ideas: core-http-transport, core-http-client, or even core-http-client-xhr if we wanted to really make this fine-grained.
/cc @bterlson thoughts?

I like fine-grained core-http-client-xhr.

High-level though it's less clear to me why we'd want to public this and maintain it

The main reason customer might need one httpclient over another is that there are feature disparities between APIs (Fetch v.s. XHR), and platform implementation details (e.g., incomplete Fetch implementation in React-Native).
An immediate ask is that ACS team would like to use XHR based client for file upload scenario because upload progess is broken in Fetch (only fired once on completion).

Got it, and makes sense. Just to throw out a few alternatives:

Allow createDefaultHttpClient to accept a "kind" property (type httpClientKind = "xhr" | "fetch") or some configuration that can be used as an escape hatch. const httpClient = createDefaultHttpClient({ kind: "xhr" }) if I want to have more control

Expose createXhrHttpClient from core-rest-pipeline with a "you probably want createDefaultHttpClient instead" doc-comment

Either will allow a similar behavior without having to publish, version, and maintain another core package. Thoughts? Any other alternatives?

Either will allow a similar behavior without having to publish, version, and maintain another core package. Thoughts? Any other alternatives?

Similar approach was explored in PR #28510.  For fairly stable code I think it's fine to create a package.


[Enhancement]: Add support of LTS versions

Describe the new feature or enhancement
My last error report #352 @nitrog0d says "It's using a modified Unity engine"
But in actually that's not a modified version,the game was created on a LTS version so that the MelonLoader loaded the Unity version incorrectly. (e.g. The detail tell me that's a 2020.3.17f1c1(LTS) but MelonLoader failed to load the version and mark it to 2020.3.17f99)

C1 is a modified engine for our purposes, it often comes with encryptions and difficult-to-understand modifications over the normal version of the engine.

Can players just select their own engine version if the modified engine's version was been confirmed?


Provide a link to GitHub from new sample pages

Currently the new sample pages (e.g. https://docs.gradle.org/nightly/samples/groovyBasicApplication/) provide buttons to download zips in Kotlin and Groovy DSL which is good. We should also provide a way link to browse the sample in GitHub.

On the other hand, we already inline the samples on the page with the Kotlin / Groovy switcher so perhaps it's not that important.

I don't think we want to do this.  We don't want to limit the layout of the checked-in samples to be something that's "browsable" because some samples may be composed of several different parts.
We weren't planning on doing it now, but we had thought about making it so you could browse more of the sample's files on the sample page in a file browser-like structure.

@big-guy Sounds good. I think that for some samples it matters more than others. For example in https://github.com/gradle-guides/gradle-site-plugin, the code is more important than the build files.


php artisan vendor:publish error

After I set the package, on vendor:publish I get this error message:
[ErrorException]
mkdir(): Invalid path

Clearly a bug.
Do it manually, while I fix this if you don't mind.

Any news on this bug?

https://github.com/nilportugues/laravel5-jsonapi/releases/tag/2.1.12 :)

Thanks :)

I still have this problem in Laravel 5.2.
My composer shows:
nilportugues/api-transformer             1.5.0
nilportugues/json-api                        2.1.7
nilportugues/laravel5-json-api           2.1.12
nilportugues/serializer                     1.1.10
nilportugues/serializer-eloquent         1.0.9
How can I fix?
Many thanks in advance.

@TBarina let me look into it

@TBarina https://github.com/nilportugues/laravel5-jsonapi/releases/tag/2.1.15

Many thanks. It works perfectly now.


Symbol resolution

What should I do to resolve the stack trace to something readable, especially when running inside a bare metal (for me actually, a toy kernel)?

That requires access to debug information, which is not loadable part of ELF (as opposed to eh_frame, which is). This means that it can be difficult to access for baremetal application.
If you toy kernel can access its own ELF file (either you load the raw ELF file using bootloader, or if you toy kernel has file systems then it might be able to load itself), then you can try to use addr2line crate to parse it. This can be difficult though.
Another approach is to dump the symbol addresses into a table and link it with your kernel, so your kernel can use a lookup table to resolve addresses (Linux kernel uses this approach, check out Kallsyms).
If you don't need to have symbol names resolved online, you can also just do it offline using the addr2line tool on your dev machine.


startup errors on new install of 1.3.0

I just installed cert-manager on a 1.19 k8s cluster, and now upgraded to 1.3.0.
I have valid certs for argocd and grafana service (served by traefik).. so that works.. and yet the startup log right after upgrade says this:
E0413 05:22:33.868419       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting referenced owning resource" "error"="certificaterequest.cert-manager.io "argocd-helm-chart-tls-dnjbt" no
t found" "related_resource_kind"="CertificateRequest" "related_resource_name"="argocd-helm-chart-tls-dnjbt" "related_resource_namespace"="argocd" "resource_kind"="Order" "resource_name"="argocd-helm-chart-tls-dnjbt-4075699960" "resou
rce_namespace"="argocd" "resource_version"="v1"
E0413 05:22:33.868490       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting referenced owning resource" "error"="certificaterequest.cert-manager.io "traefik-dashboard-tls-l642l" no
t found" "related_resource_kind"="CertificateRequest" "related_resource_name"="traefik-dashboard-tls-l642l" "related_resource_namespace"="traefik" "resource_kind"="Order" "resource_name"="traefik-dashboard-tls-l642l-1995584988" "reso
urce_namespace"="traefik" "resource_version"="v1"
E0413 05:22:33.868535       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting referenced owning resource" "error"="certificaterequest.cert-manager.io "graylog-es-cert-mt4p6" not foun
d" "related_resource_kind"="CertificateRequest" "related_resource_name"="graylog-es-cert-mt4p6" "related_resource_namespace"="graylog" "resource_kind"="Order" "resource_name"="graylog-es-cert-mt4p6-1989712719" "resource_namespace"="g
raylog" "resource_version"="v1"
E0413 05:22:33.868576       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting referenced owning resource" "error"="certificaterequest.cert-manager.io "opendistro-es-tls-gjtj4" not fo
und" "related_resource_kind"="CertificateRequest" "related_resource_name"="opendistro-es-tls-gjtj4" "related_resource_namespace"="graylog" "resource_kind"="Order" "resource_name"="opendistro-es-tls-gjtj4-1522863158" "resource_namespa
ce"="graylog" "resource_version"="v1"
E0413 05:22:33.868619       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting referenced owning resource" "error"="certificaterequest.cert-manager.io "kube-prometheus-grafana-tls-bwm8
8" not found" "related_resource_kind"="CertificateRequest" "related_resource_name"="kube-prometheus-grafana-tls-bwm88" "related_resource_namespace"="monitoring" "resource_kind"="Order" "resource_name"="kube-prometheus-grafana-tls-bw
m88-3785458974" "resource_namespace"="monitoring" "resource_version"="v1"
E0413 05:22:33.868657       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting referenced owning resource" "error"="certificaterequest.cert-manager.io "whoami-tls-4hhmj" not found" "r
elated_resource_kind"="CertificateRequest" "related_resource_name"="whoami-tls-4hhmj" "related_resource_namespace"="default" "resource_kind"="Order" "resource_name"="whoami-tls-4hhmj-3551823297" "resource_namespace"="default" "resour
ce_version"="v1"
E0413 05:22:33.868695       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting referenced owning resource" "error"="certificaterequest.cert-manager.io "whoami-auth-tls-wllkk" not foun
d" "related_resource_kind"="CertificateRequest" "related_resource_name"="whoami-auth-tls-wllkk" "related_resource_namespace"="default" "resource_kind"="Order" "resource_name"="whoami-auth-tls-wllkk-503143068" "resource_namespace"="de
fault" "resource_version"="v1"
E0413 05:22:33.868750       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting referenced owning resource" "error"="certificaterequest.cert-manager.io "traefik-forward-auth-tls-nmq2g"
not found" "related_resource_kind"="CertificateRequest" "related_resource_name"="traefik-forward-auth-tls-nmq2g" "related_resource_namespace"="traefik" "resource_kind"="Order" "resource_name"="traefik-forward-auth-tls-nmq2g-36782048
" "resource_namespace"="traefik" "resource_version"="v1"
W0413 05:22:33.873413       1 warnings.go:67] networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
I0413 05:22:33.953347       1 setup.go:170] cert-manager/controller/clusterissuers "msg"="skipping re-verifying ACME account as cached registration details look sufficient" "related_resource_kind"="Secret" "related_resource_name"="le
tsencrypt-key" "related_resource_namespace"="cert-manager" "resource_kind"="ClusterIssuer" "resource_name"="letsencrypt" "resource_namespace"="" "resource_version"="v1"
E0413 05:22:33.954401       1 controller.go:158] cert-manager/controller/orders "msg"="re-queuing item due to error processing" "error"="ACME client for issuer not initialised/available" "key"="argocd/argocd-helm-chart-tls-dnjbt-4075
699960"
I0413 05:22:38.887133       1 setup.go:170] cert-manager/controller/clusterissuers "msg"="skipping re-verifying ACME account as cached registration details look sufficient" "related_resource_kind"="Secret" "related_resource_name"="le
tsencrypt-key" "related_resource_namespace"="cert-manager" "resource_kind"="ClusterIssuer" "resource_name"="letsencrypt" "resource_namespace"="" "resource_version"="v1"
In the relevant namespaces I have a valid cert - f.ex.
argocd-helm-chart-tls                     True                     argocd-helm-chart-tls                     letsencrypt                     Certificate is up to date and has not expired                     15h
anymore info I can provide?

Hi @KlavsKlavsen ,
Thank you for opening the issue!
Have you created any certs since the upgrade or have there been any renewals?
Are any of the cert-manager custom resources (Certificates, CertificateRequests, Orders etc) in a not Ready state?
Do the CertificateRequests that apear as 'not found' in the logs actually exist?
I would not worry to much about it not finding a CertificateRequest- cert-manger will always create a new CertificateRequest when it needs to issue a new X.509 cert for a Certificate resource- unless there is some other issue, such as certs not getting renewed, I don't see anything in the logs to be very worried about.
A minor thing- could you perhaps format the logs by wrapping them in tripple backticks- else it's harder to parse and we might miss some details 😅

Everything is in ready state.. so I think everything is working.. all certificaterequests, certificates and orders 8days old..
Its just odd it logs these errors then if everythings fine?

Yes, we are currently having some discussions about whether we should or should not not log these messages as errors #3794
It happens because we have multiple control loops updating the same resources and sometimes there is a race condition. When that happens, the control loop that couldn't apply the update logs the error, re-syncs the resource and re-tries the update again till it succeeds.
With the current cert-manager architecture this is expected.


Add unified log to RetrieveVASP reply

Scope of changes
This adds a unified contacts email log to the RetrieveVASP reply. The purpose of this data is so that the frontend can display a time-ordered sequence of emails sent regarding the VASP that includes all of the contacts.
SC-10163
Type of change

[ ] bug fix
[x] new feature
[ ] documentation
[ ] other (describe)

Acceptance criteria
The RetrieveVASP endpoint should return the unified email log and the entries should be in time order.
Author checklist

[x] I have manually tested the change and/or added automation in the form of unit tests or integration tests
[ ]  I have updated the dependencies list
[ ]  I have recompiled and included new protocol buffers to reflect changes I made
[ ]  I have added new test fixtures as needed to support added tests
[x]   Check this box if a reviewer can merge this pull request after approval (leave it unchecked if you want to do it yourself)
[x]  I have moved the associated Shortcut story to "Ready for Review"

Reviewer(s) checklist

[ ] Any new user-facing content that has been added for this PR has been QA'ed to ensure correct grammar, spelling, and understandability.

Codecov Report
Base: 44.02% // Head: 44.06% // Increases project coverage by +0.03% :tada:

Coverage data is based on head (bc880f4) compared to base (ab09a62).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #882      +/-   ##
==========================================
+ Coverage   44.02%   44.06%   +0.03%
==========================================
  Files         635      635
  Lines       23194    23263      +69
  Branches     1416     1416
==========================================
+ Hits        10212    10250      +38
- Misses      11645    11670      +25
- Partials     1337     1343       +6

Flag
Coverage Δ

unittests
44.06% <ø> (+0.03%)
:arrow_up:

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

Impacted Files
Coverage Δ

...trisacrypto/directory/pkg/gds/fixtures/fixtures.go
38.90% <0.00%> (-1.67%)
:arrow_down:

.../github.com/trisacrypto/directory/pkg/gds/admin.go
55.77% <0.00%> (-0.15%)
:arrow_down:

...com/trisacrypto/directory/pkg/gds/certman/certs.go
55.22% <0.00%> (+0.31%)
:arrow_up:

....com/trisacrypto/directory/pkg/models/v1/models.go
69.95% <0.00%> (+0.65%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.