ValueError: Unknown metric function: CustomMetric using custom metrics when loading tf saved model type with tf.keras.models.load_model

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

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.0.0
Python version: 3.7

Describe the current behavior
ValueError: Unknown metric function: CustomMetric occurs when trying to load a tf saved model using  tf.keras.models.load_model with a custom metric. If you look at the code for load_model, it is clear the load_model currently ignores the custom_objects dict for the tf saved model format.
Describe the expected behavior
load_model loads the custom metric successfully either just implicitly or through the custom_objects dict.
Code to reproduce the issue
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.metrics import Metric
import numpy as np

class CustomMetric(Metric):
  def __init__(self,
               name='score',
               dtype=tf.float32):
    super(CustomMetric, self).__init__(name=name)
    self.true_positives = self.add_weight(
        'true_positives',
        shape=[10],
        initializer='zeros',
        dtype=self.dtype)

  def update_state(self, y_true, y_pred, sample_weight=None):
    pass

  def result(self):
    return 0

  def get_config(self):
    """Returns the serializable config of the metric."""
    config = {}
    base_config = super(CustomMetric, self).get_config()
    return dict(list(base_config.items()) + list(config.items()))

  def reset_states(self):
    self.true_positives.assign(np.zeros(self.num_classes), np.float32)
    self.weights_intermediate.assign(
        np.zeros(self.num_classes), np.float32)

inputs = keras.Input(shape=(784,), name='digits')
x = layers.Dense(64, activation='relu', name='dense_1')(inputs)
x = layers.Dense(64, activation='relu', name='dense_2')(x)
outputs = layers.Dense(10, activation='softmax', name='predictions')(x)
model = keras.Model(inputs=inputs, outputs=outputs, name='3_layer_mlp')

model.compile(loss='sparse_categorical_crossentropy', optimizer=tf.keras.optimizers.Adam(lr=.001), metrics=[CustomMetric()])

model.save("model/", save_format='tf')

new_model = keras.models.load_model('model/',  tf.keras.models.load_model ={'score': CustomMetric})

Other info / logs
Traceback (most recent call last):
  File "/home/sentim/Website/model_prediction/test_load_saved_model.py", line 46, in <module>
    new_model = keras.models.load_model('model/', custom_objects={'score': CustomMetric})
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/save.py", line 150, in load_model
    return saved_model_load.load(filepath, compile)
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/saved_model/load.py", line 93, in load
    model._training_config))  # pylint: disable=protected-access
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/training/tracking/base.py", line 457, in _method_wrapper
    result = method(self, *args, **kwargs)
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 356, in compile
    self._cache_output_metric_attributes(metrics, weighted_metrics)
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training.py", line 1901, in _cache_output_metric_attributes
    metrics, self.output_names, output_shapes, self.loss_functions)
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 813, in collect_per_output_metric_info
    metric_name = get_metric_name(metric, is_weighted)
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/engine/training_utils.py", line 987, in get_metric_name
    metric = metrics_module.get(metric)
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/metrics.py", line 2857, in get
    return deserialize(identifier)
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/metrics.py", line 2851, in deserialize
    printable_module_name='metric function')
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/utils/generic_utils.py", line 180, in deserialize_keras_object
    config, module_objects, custom_objects, printable_module_name)
  File "/home/sentim/anaconda3/envs/py37/lib/python3.7/site-packages/tensorflow_core/python/keras/utils/generic_utils.py", line 165, in class_and_config_for_serialized_keras_object
    raise ValueError('Unknown ' + printable_module_name + ': ' + class_name)
ValueError: Unknown metric function: CustomMetric

I have tried on colab with TF version 2.0 and was able to reproduce the issue.Please, find the gist here. Thanks!

@AndersonHappens I think there is an issue with saving a model in *.tf version when the model has custom metrics. I have saved the model in  *.h5 format and everything works as expected. Please check the gist here. Thanks!
Please close the issue if it was resolved for you. Thanks!

@jvishnuvardhan While it does work in the h5 format, if I have saved a model to the tf format, I cannot load the model to resave it to the h5 format later (since I can't load the model in the first place), so ultimately this is still an issue that needs to be addressed.

Here is a workaround for the meantime:
from tensorflow.python.saved_model import loader_impl
from tensorflow.python.keras.saving.saved_model import load as saved_model_load

loader_impl.parse_saved_model(load_path)
model = saved_model_load.load(load_path, custom_objects={"custom_metric": custom_metric})

same issue here, when you save the model in tf format, you can't re-load the model with custom_objects, this should be fixed.

Here is a workaround for the meantime:
from tensorflow.python.saved_model import loader_impl
from tensorflow.python.keras.saving.saved_model import load as saved_model_load

loader_impl.parse_saved_model(load_path)
model = saved_model_load.load(load_path, custom_objects={"custom_metric": custom_metric})

not working at keras 2.3.1, tf 2.0.0
TypeError: load() got an unexpected keyword argument 'custom_objects'

@jvishnuvardhan While it does work in the h5 format, if I have saved a model to the tf format, I cannot load the model to resave it to the h5 format later (since I can't load the model in the first place), so ultimately this is still an issue that needs to be addressed.

@AndersonHappens Can you please check with the tf-nightly. I saved model in "tf" format, then loaded model and saved in "h5" format without any issues. Please check the gist here.
Please let us know what you think. Thanks.
@JustinhoCHN can you please try tf-nightly. If you still have an issue, please open a new issue with a standalone code to reproduce the error.
I am closing this issue as it was resolved in recent tf-nightly. Please feel free to open if the issue persists again. Thanks!

This should not be closed, the problem is not the loading in "tf" format as is, but if you have custom_objects to pass!

@jvishnuvardhan This issue should not be closed. The loading as in your gist works, but once you use the model, e.g. to further train it you will get an error that the custom object is unkown.

Here is a new workaround, not sure what changed that the old one does not work anymore:
from tensorflow.python.saved_model import load as tf_load
from tensorflow.python.keras.saving.saved_model.load import KerasObjectLoader, RevivedModel
from tensorflow.python.keras.saving import saving_utils

custom_objects = {"compute_loss": loss}
model = tf_load.load_internal(PATH_TO_MODEL, loader_cls=KerasObjectLoader)
if isinstance(model, RevivedModel) and compile:
  if model._training_config is not None:
    model.compile(**saving_utils.compile_args_from_training_config(
    model._training_config, custom_objects))

@j-o-d-o Can you try adding one more line as follows and train the model (loaded_my_new_model_saved_in_h5).
loaded_my_new_model_saved_in_h5.compile(loss='sparse_categorical_crossentropy', optimizer=tf.keras.optimizers.Adam(lr=.001), metrics=[CustomMetric()])
Thanks!

The models saved in h5 format seem to work fine, the issue is about models saved with tf flag (SavedModel Format).
What is working is setting the compile flag to False and then compiling it on its own e.g.:
import tensorflow as tf

# Save Keras Model as SavedModel (Keras model has some custom objects e.g. custom loss function)
tf.saved_model.save(my_keras_model, EXPORT_DIR)
...
# Load the model and compile on its own (working)
loaded_model = tf.keras.model.load(EXPORT_DIR, custom_objects={"custom_loss": my_custom_loss}, compile=False)
model.compile(optimizer=my_optimizer, loss=my_custom_loss)
# Load the model while also loading optimizer and compiling (failing with "Unkown loss function: my_custom_loss")
loaded_model = tf.keras.model.load(EXPORT_DIR, custom_objects={"custom_loss": my_custom_loss}) # compile is set to True by default

The point is:

The default way of loading models fails if there are custom objects involved.
By compiling yourself you are setting up a new optimizer instead of loading the previously trained models optimizer weights.

Moreover I already submited a PR that would fix this: https://github.com/tensorflow/tensorflow/pull/34048. But it seems nobody bothers about it : /

@j-o-d-o Can you please check using model.save after compile and the use keras.models.load_model to load the model. I tried it without any issue. Here is the gist. Please run it with tf-nightly. Thanks!

I am closing this issue as it was resolved. Please feel free to reopen if the issue didn't resolve for you. Thanks!

Hello gentlemen, I am surprised that I am having a similar issue with a .h5 model. Do I have to define my custom metric as a class instead of a function? thank you!

tf-nightly works, but doesn't run on the GPU.

@rodrigoruiz Can you please open a new issue with details and a simple standalone code to reproduce the issue? Currently TF2.2.0rc2 is the latest release candidate. I expect there will be TF2.2 stable version will be released in the near future. Thanks!

@jvishnuvardhan I think i figured it out, tf-nightly does not run on GPU, tf-nightly-gpu does... It's just that this is not specified in the docs.
I'll just wait for the stable version I guess.

Just tried this on 2.2.0. While it doesn't run into error, it seems to load an empty model. I'm using Feature Column API.

@timatim Please create a new issue with a simple standalone to reproduce the issue. Thanks!

I have this problem loading an .h5 model on TF 2.3.0.

I am using tensorflow v 2.3  in R, saving and loading the model with save_model_tf() , load_model_tf() and I get the same error because of my custom metric balanced accuracy.
I can't  compile it afterwards because I am running a grid search for the optimizer learning rate, so it wont be practical.
my issue was resolved by adding my custom metric in the custom_objects:
load_model_tf(path, custom_objects=list("CustomLayer" = CustomLayer))

I am using tensorflow v 2.3  in R, saving and loading the model with save_model_tf() , load_model_tf() and I get the same error because of my custom metric balanced accuracy.
I can't  compile it afterwards because I am running a grid search for the optimizer learning rate, so it wont be practical.
my issue was resolved by adding my custom metric in the custom_objects:
load_model_tf(path, custom_objects=list("CustomLayer" = CustomLayer))


Doesn't Work in Frankfurt

Frankfurt requests require you to use V4 api signing which the rightscale aws lib doesn't support.
http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html

This should be resolved now that we're using the aws-sdk


[Cherry-pick] Merge tag '2.5.5' into branch-2.5-tbds

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.21 out of 22 committers have signed the CLA.:white_check_mark: evelynzhaojie:white_check_mark: Astralidea:white_check_mark: ABingHuang:white_check_mark: nshangyiming:white_check_mark: sevev:white_check_mark: meegoo:white_check_mark: hellolilyliuyi:white_check_mark: packy92:white_check_mark: liuyehcf:white_check_mark: amber-create:white_check_mark: Smith-Cruise:white_check_mark: zombee0:white_check_mark: zaorangyang:white_check_mark: ZiheLiu:white_check_mark: fzhedu:white_check_mark: decster:white_check_mark: luohaha:white_check_mark: EsoragotoSpirit:white_check_mark: andyziye:white_check_mark: wangruin:white_check_mark: huangfeng1993:x: mergify[bot]You have signed the CLA already but the status is still pending? Let us recheck it.


Core Files/Testing Update and introduce adapter-core

@Apollon77 Could you please create a pull request for the new core files / testing update?
Same as in https://github.com/Zefau/ioBroker.roomba/pull/8
Thanks in advanced,
Zefau

will do tonight

@Apollon77 little Reminder. If you have the time this weekend it is much appreciated. I know you have a lot of other stuff on your agenda :-)

done https://github.com/Zefau/ioBroker.nuki2/pull/4
Sorry, lost from radar

Thank you very much

@Apollon77 One last thing: The link for the stable badge http://iobroker.live/badges/nuki2-stable.svg always redirects to another repository http://iobroker.live/badges/nuki-stable.svg and thus shows wrong version of this adapter. Where to open an issue for this? https://github.com/ioBroker/ioBroker/issues ?

is nuki2 aready in stable? maybe put into stable and then it should not do that. Also AIsue in the ioBroker-repositories Project

It's not in the stable repo. My bad. Thank you.


Font-awesome icons are not rendered in example page

In the documentation at  https://visjs.github.io/vis-network/examples/network/nodeStyles/customGroups.html the FA icons are not properly displayed. I changed to https:...fontawesome css in firefox and seemed to solve it but in chrome browser the problem is the same. Also tested using `document.addEventListener("DOMContentLoaded",...) in a local page but same results.

issue #163 contains a link to https://visjs.github.io/vis-network/examples/network/nodeStyles/icons.html where fa-icons (v4 and v5) are displayed, I will try that code instead.
Anyway having a look/fix at the first URL would be great since we cannot pull-request to gh-pages (doc says that non-master PRs will be closed). The example pages are very convenient as templates.
Thanks.

Ok, document.fonts.load('normal normal 400 24px/1 "FontAwesome"').then(paint).catch(console.error) solves the problem.
For those reading the issue, you can also use the newer fa version 5 in icons.html.
(I leave the issue as open for some days, just in case any contributor wants to update the customGroups example file.)

I have a similar issue because Vis uses regular icons by default until you click on a icon it switches to solid.
This happens if I add a shape like dot. Unfortunately this only works, if an icon has an regular version, which not all icons have.
For example:
fa-regular fa-circle-user by default and fa-solid fa-circle-user if I click on the icon
I clicked on the left user icon, and it is now the solid version:

In this example, no regular icon is available:

If I click on the icon, Vis changes to the solid/bold icon, and it works:

This is my config
  users: {
      shape: 'dot',
      color: '#800080',
      size: 15,
      icon: {
          face: '"Font Awesome 6 Free"',
          code: '\uf2bd', // exists as solid and regular
          color: '#ffffff',
          size: 5,
          weight: 'bold'
      }
  },
 usercontainerroles: {
      shape: 'dot',
      color: '#800080',
      size: 15,
      icon: {
          face: '"Font Awesome 6 Free"',
          code: '\uf0c0', // only exists as solid (in Font Awesome Free)
          color: '#ffffff',
          size: 5,
          weight: 'bold'
      }
  },

Can i somehow force Vis to always use the solid icons and not the regular font?
I think this relates to #139 or #1508

I found a simple solution for the solid / regular issue by using the font family Font Awesome 6 Free Solid instead of Font Awesome 6 Free
 shape: 'dot',
  color: '#800080',
  size: 15,
  icon: {
      face: '"Font Awesome 6 Free Solid"',
      code: '\uf0c0',
      color: '#ffffff',
      size: 5,
      weight: "900",
  }


compatibility issues

Could you please advise the compatibility of the following:
Runtime information: Ubuntu 16.04
Neo4j database version: 3.0.0
neo4j gem version: 4.1.5
neo4j-core gem version: 4.07

I have no reason to think that Ubuntu wouldn't wouldn't work.  Those versions of the gems are pretty old, though and support for Neo4j 3.0 wasn't introduced until neo4j 7.0.3 and neo4j-core 6.1.3.


added some tracing docs

Description
Added example compose + config + setup for opentelemetry tracking with elastic apm server
Types of Changes

[ ] Core
[ ] Bugfix
[ ] New feature
[ ] Enhancement/optimization
[x] Documentation

Checklist

[ ] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

I'm not sure about the collector - the apm server should be able to handle OTLP requests directly by default (well - at least the elastic apm docs assert this)
I'll spend some more time to research this asap


Local backend - add and update compute plan

Add the add_compute_plan, update_compute_plan functions to the local backend.
Main changes

[x] add_compute_plan
[x] update_compute_plan
[ ] Hybrid debugging: run these on fake data (wait for https://github.com/SubstraFoundation/substra/pull/195)

Progress
add_compute_plan and update_compute_plan implemented, tests pass in substra-tests
Lack support for clean_modelsattribute
Lack support for running on fake data --> will be implemented in the 'hybrid debugging' PR
N.B.
Once the aggregate and composite tuples PR is merged, change the order of the functions to keep the public functions below.

Question: what does clean_models do ?

In the function substra/sdk/backends/local/backend.py - __create_compute_plan_from_tuple, do we trust the rank given by the user or do we recalculate it ? (case when an user creates a traintuple with compute_plan_id != None and gives a value for the rank)

I reordered the functions, tell me if it messes too much with the review, this is the latest commit so I can revert it easily


Can't build R-package from master since #13062

Commit #13062 by adding the symbolic links to dmlc and nnvm seems the cause of the error in building the R-package.
Thwe code in cause in the Makefile for rpkg are:
cp -rf 3rdparty/dmlc-core/include/* R-package/inst/include/
cp -rf 3rdparty/tvm/nnvm/include/* R-package/inst/include

If removing the above lines, the build of the R-package still fails. Seems like the symbollic like isn't resolved properly by the process (not too sure about this later part).
Shouldn't a build test have captured this issue?

Hi @jeremiedb , not sure how R build so I tagged someone who knows better than me. I think we do have R build procedure and it is here:
https://github.com/apache/incubator-mxnet/blob/master/ci/docker/runtime_functions.sh#L789-L802
However, I do not see R building procedure in the CI which I think this is a problem.
@anirudhacharya

@anirudhacharya Pull request #14068 should fix the those commands.


Fixes pull request #740 - geoip fix

Oddly, I can't get this to fail even without GeoIP installed. I'm not entirely sure that it does produce a fatal error when php5-geoip is not installed, rather, it may have been caused by my original branch not containing the phar.

Just tested, and it works well:


Update opentelemetry to 0.20.0, actix-web-opentelemetry to 0.15.0 and opentelemetry-prometheus to 0.13.0

Updated opentelemetry from 0.17.0 to 0.20.0
updated actix-web-open-telemetry from 0.12.0 to 0.15.0
Updated opentelemetry-prometheus from 0.10.0 to 0.13.0

Codecov Report

Merging #450 (c7143e3) into main (73dbf87) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #450   +/-   ##
=======================================
  Coverage   67.11%   67.11%
=======================================
  Files           1        1
  Lines         368      368
  Branches       58       58
=======================================
  Hits          247      247
  Misses        121      121

Components
Coverage Δ

apel_plugin
67.11% <ø> (ø)

auditor
∅ <ø> (∅)

slurm_collector
∅ <ø> (∅)

slurm_epilog_collector
∅ <ø> (∅)

htcondor_collector
∅ <ø> (∅)

priority_plugin
∅ <ø> (∅)

Thanks, LGTM now!


🤖🐚 ↝ [GP-43]: Initialise cloud data images, algo to populate them into anomalies

Each cloud datapoint should point to an anomaly of anomalytype == planet. Right now we'll just pull in images, randomly assign them and then upload them to the relevant bucket, and update the pointer of the cloud point in the anomalies table
Alternatively, we could structure it that we pull in images in the cloud part of the storage bucket /dir of the setting anomaly, the classification points to the storage element so we don't need another field in anomalies.
So we can do some exploring. There won't be hugely complex algorithms, we'll maybe add an additional field to the cloud classification process later like "select a planet you know that looks like this cloud could be from" (in which case we'd need a field in anomalies table
Executive decision: to achieve consistency, there will be a field in anomalies, however they will have a parentItem of a particular setting/planet anomaly row

Great idea -> the method for verifying/assigning users other classifications is they have to classify all of the data on their planet (or they have the option to... unlocks a "completion status" thing/concept. Once we have more data for each anomaly [type] we can then reduce the threshold to like, say, 65%). This means that we then have a pipeline for having users classify things that have already been classified [by other users] to increase validity likelihood.
...Now we just need to link this in with the feed, somehow

An update:

The main logic for the cloud data is already such that there's automatic filling of data, and I briefly (for about 15 seconds) thought about writing a python snippet anyway so that we can pull the images from the anomalies.configuration column into the storage buckets, but I realised that there's no point - just adds extra storage and I don't think the lag issues are as pronounced as they seem to be in the dev environment (in terms of having the images show up in the Camera Module). So we should be fine.
I'm going to move onto the surveyor module and come up with an automated response for each anomaly...

So far what I'm thinking for the surveyor module:
create table
  public.anomalies (
    id bigint generated by default as identity,
    content text null,
    "ticId" text null,
    anomalytype text null,
    type text null,
    radius double precision null,
    mass double precision null,
    density double precision null,
    gravity double precision null,
    "temperatureEq" double precision null,
    temperature double precision null,
    smaxis double precision null,
    orbital_period double precision null,
    classification_status text null,
    avatar_url text null,
    created_at timestamp with time zone not null default now(),
    deepnote text null,
    lightkurve text null,
    configuration jsonb null,
    constraint baseplanets_pkey primary key (id)
  ) tablespace pg_default;

Here's an example content for the configuration column:
{
  "mass": 2.14,
  "ticId": "Kepler-69",
  "radius": 1.71,
  "smaxis": 0.64,
  "ticId2": "KOI 172.02",
  "density": 2.36,
  "gravity": 0.73,
  "lightkurve": "https://qwbufbmxkjfaikoloudl.supabase.co/storage/v1/object/public/planetsss/_1710155300825",
  "temperature": 325.15,
  "orbital_period": 242.47,
  "temperature_eq": 548.15
}

Each anomaly represents a planet, which obviously has data like the temperature of "325.15 Kelvin" or the orbital period, etc
Users can make classifications for any missing values or update any values, here's the schema for the classifications table:
create table
  public.classifications (
    id bigint generated by default as identity,
    created_at timestamp with time zone not null default now(),
    content text null,
    author uuid null,
    anomaly bigint null,
    media json null,
    constraint classifications_pkey primary key (id),
    constraint classifications_anomaly_fkey foreign key (anomaly) references anomalies (id),
    constraint classifications_author_fkey foreign key (author) references profiles (id)
  ) tablespace pg_default;

a python snippet file/script that will pull in all classifications where classificationtype = any field matching the configuration element for the anomalies (in this case, it would be like mass, temperature, orbital_period, gravity, etc). So we should extract the "columns" from the configuration field, then look through classifications table for any rows where classificationtype = one of those fields. Then, it should group all those classifications by the anomaly & classificationtype, average them out (e.g. if there's two classifications mentioning "gravity" for anomaly == 1, it should average the values out)

I'm thinking about having some sort of way to "verify" changes, or add some extra values to anomalies.configuration value for like "userSuggestions" or something. But for now just averaging them out and seeing the results locally would be a good start

Looks like a bit more debugging is required...

#43

Started to work on this: https://deepnote.com/workspace/star-sailors-49d2efda-376f-4329-9618-7f871ba16007/project/Step-by-step-50ad3984-69a9-496e-a121-efb59231e7e9/notebook/Gen AI Stuff-4c10e2cf5db441c2b1cfd69079cc85f4
more info coming soon


Non-standard http methods / WebDAV support?

What would be the best way to use non-standard http methods?
I was thinking about adding WebDAV support to a project I'm currently using Drogon for and it adds a number of HTTP methods not in the drogon::HttpMethod enum.

You can modify the source code of drogon.


Django 1.9 compatibility?

Is django-two-factor-auth Django 1.9 compatible yet?
I saw you made some changes to support 1.9, is this still a work in progress? Today we wanted to upgrade our project to 1.9 and while upgrading packages, Django 2F auth reverted this to 1.8.x. When using the GitHub version instead of the pypi release all went fine.

The next release will be a new minor version, so I want to get as much of the pending work in as possible. For now only #113 is pending a merge, but I don't have the time at the moment to complete that. So any help would be appreciated.

Version 1.3.0 was released two months ago including support for Django 1.9.

Is Django 1.9 still supported and if so, how much longer will it be supported?

1.5.0 was the last version to support Django 1.9.

Thanks for answering so quick! So if we use version 1.5.0 things should go smooth with Django 1.9?

Maybe? This package has other dependencies (like django_otp) which you will need to pin on older versions too.

Gotcha thanks!


License?

Very cool project. Is there a particular license for beatdrummer? (see, e.g., http://choosealicense.com/ )

Good to note, I didn't select a license at the time of publishing, but I've updated it with the MIT license.
https://github.com/akshatmittal/beatdrummer/commit/74cd5943c4dd5e40f0e0c6c6b203da7c1b892e26


Validator updates needed to get Infrastructure examples in STIX 2.1 WD04 to validate

This pull request contains a updates needed to get the Infrastructure examples in STIX 2.1 WD04 to validate (along with associated schema updates in a separate pull request). It is a partial step along the way to getting the validator to validate any STIX 2.1 WD04 compliant json. It does not yet provide full compatibility with STIX 2.1 WD04. This pull request

Updates vocabs to STIX 2.1 WD04 and adds vocab checks for new vocabs
Adds infrastructure and malware-analysis SDOs
Accepts SCOs as first class objects in relationships rather than identifying them as custom objects
Fixes a typo where region was reusing test identifier of tool-types

The new Infrastructure SDO is the first SDO that allows a relationship with all SCOs. This resulted in listing all SCOs for the relationship in enums.py. If this pattern continues, we may want a better and more concise way of representing that all SCOs are acceptable in a relationship.
I have signed the individual CLA.

Thank you for the contirbution, @ejratl!


Tidy up tests

New tests have no dependency on ibek-defs.
Are all based on two minimal support modules YAML and two ioc YAML.
Are shorter and contain much less hard coded strings for comparison.

Codecov Report

Merging #91 (c9359c5) into main (dd1906b) will decrease coverage by 1.02%.
Report is 5 commits behind head on main.
The diff coverage is 77.77%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##             main      #91      +/-   ##
==========================================
- Coverage   97.24%   96.22%   -1.02%
==========================================
  Files           9        9
  Lines         363      371       +8
==========================================
+ Hits          353      357       +4
- Misses         10       14       +4

Files Changed
Coverage Δ

src/ibek/ioc.py
96.15% <75.00%> (+0.15%)
:arrow_up:

src/ibek/support.py
97.50% <80.00%> (-1.17%)
:arrow_down:

... and 1 file with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Disble VRFY

Disable VRFY
Refs:

https://linux-audit.com/postfix-hardening-guide-for-security-and-privacy/

Completed with 0582d94


Cosys Integration

CoSys is a platform for generating PDF documents from the process context. I.e. the contents of a document and the ID of the template come from the process. With this CoSys generates the PDF and returns it. This PDF can then be handled further in the process (e.g. sent by mail, placed in a DMS, etc.).
This Epic includes:

Solve the Cosys integration from the monolith.
Create Spring Boot Starter for the Cosys functionality
Include S3 as a (temporary) file store
create a sample project for a Cosys integration artifact


Vulkan Validation: (via RendererCompositorRD::blit_render_targets_to_screen) vkCmdDrawIndexed: Hazard READ_AFTER_WRITE for VkImageView

Godot version
Godot Engine v4.0.dev.calinou.795cd2eb3 (795cd2eb3)
System information
Linux, Elementary OS 5.1, Intel(R) HD Graphics 4400 (HSW GT2), Vulkan API 1.2.182
Issue description
ERROR: VALIDATION - Message Id Number:<PHONE_NUMBER> | Message Id Name: SYNC-HAZARD-READ_AFTER_WRITE
        Validation Error: [ SYNC-HAZARD-READ_AFTER_WRITE ] Object 0: handle = 0x93fb240000002a6f, type = VK_OBJECT_TYPE_IMAGE_VIEW; | MessageID = 0x4cb75b2d | vkCmdDrawIndexed: Hazard READ_AFTER_WRITE for VkImageView 0x93fb240000002a6f[], in VkCommandBuffer 0x55555f9d0520[], and VkPipeline 0x32c84400000004d6[], VkDescriptorSet 0x7245e800000035d1[], type: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, imageLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, binding #0, index 0. Access info (usage: SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ, prior_usage: SYNC_IMAGE_LAYOUT_TRANSITION, write_barriers: 0, command: vkCmdEndRenderPass, seq_no: 1361, reset_no: 41).
        Objects - 1
                Object[0] - VK_OBJECT_TYPE_IMAGE_VIEW, Handle -7783587948561159569
   at: _debug_messenger_callback (drivers/vulkan/vulkan_context.cpp:157)

#0  VulkanContext::_debug_messenger_callback (messageSeverity=VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT, messageType=0x2, pCallbackData=0x7fffffffc430, pUserData=0x55555f0317b0) at drivers/vulkan/vulkan_context.cpp:53
#1  0x00007fffe93ff5de in debug_log_msg (layer_prefix=0x7fffe9a10799 "Validation", text_vuid=<optimized out>, message=<optimized out>, objects=..., msg_flags=<optimizedout>, debug_data=<optimized out>) at /root/sdk-build/<IP_ADDRESS>/source/Vulkan-ValidationLayers/layers/vk_layer_logging.h:475
#2  LogMsgLocked (debug_data=<optimized out>, msg_flags=msg_flags@entry=0x8, objects=..., vuid_text="SYNC-HAZARD-READ_AFTER_WRITE", err_msg=<optimized out>) at /root/sdk-build/<IP_ADDRESS>/source/Vulkan-ValidationLayers/layers/vk_layer_logging.h:735
#3  0x00007fffe9461bc7 in ValidationObject::LogError<VkImageView_T*> (this=0x55555f968790, src_object=<optimized out>, vuid_text="SYNC-HAZARD-READ_AFTER_WRITE", format=0x7fffe9c18d38 "%s: Hazard %s for %s, in %s, and %s, %s, type: %s, imageLayout: %s, binding #%u, index %u. Access info %s.") at /root/sdk-build/<IP_ADDRESS>/source/Vulkan-ValidationLayers/layers/generated/chassis.h:3310
#4  0x00007fffe97529ad in CommandBufferAccessContext::ValidateDispatchDrawDescriptorSet (this=this@entry=0x555562aa39e0, pipelineBindPoint=pipelineBindPoint@entry=VK_PIPELINE_BIND_POINT_GRAPHICS, func_name=func_name@entry=0x7fffe9a11f29 "vkCmdDrawIndexed") at /root/sdk-build/<IP_ADDRESS>/source/Vulkan-ValidationLayers/layers/synchronization_validation.cpp:1835
#5  0x00007fffe9754148 in SyncValidator::PreCallValidateCmdDrawIndexed (this=<optimized out>, commandBuffer=<optimized out>, indexCount=0x6, instanceCount=<optimized out>, firstIndex=0x0, vertexOffset=<optimized out>, firstInstance=0x0) at /root/sdk-build/<IP_ADDRESS>/source/Vulkan-ValidationLayers/layers/synchronization_validation.cpp:4078
#6  0x00007fffe929760d in vulkan_layer_chassis::CmdDrawIndexed (commandBuffer=<optimized out>, indexCount=<optimized out>, instanceCount=<optimized out>, firstIndex=<optimized out>, vertexOffset=0x0, firstInstance=0x0) at /root/sdk-build/<IP_ADDRESS>/source/Vulkan-ValidationLayers/layers/generated/chassis.cpp:3031
#7  0x00005555587a0ba0 in RenderingDeviceVulkan::draw_list_draw (this=0x55555f7b0090, p_list=0x800000000000000, p_use_indices=0x1, p_instances=0x1, p_procedural_vertices=0x0) at drivers/vulkan/rendering_device_vulkan.cpp:7468
#8  0x000055555ab0bc04 in RendererCompositorRD::blit_render_targets_to_screen (this=0x55555efa3800, p_screen=0x0, p_render_targets=0x55557be118d0, p_amount=0x1) at servers/rendering/renderer_rd/renderer_compositor_rd.cpp:87
#9  0x000055555ae12f8d in RendererViewport::draw_viewports (this=0x55555fa72300) at servers/rendering/renderer_viewport.cpp:650
#10 0x000055555aa65b7e in RenderingServerDefault::_draw (this=0x55555fa3cfa0, p_swap_buffers=0x1, frame_step=6.7999999999999998) at servers/rendering/rendering_server_default.cpp:97
#11 0x000055555aa678ac in RenderingServerDefault::draw (this=0x55555fa3cfa0, p_swap_buffers=0x1, frame_step=6.7999999999999998) at servers/rendering/rendering_server_default.cpp:379
#12 0x00005555576d8ce2 in Main::iteration () at main/main.cpp:2666
#13 0x00005555576928b6 in OS_LinuxBSD::run (this=0x7fffffffd540) at platform/linuxbsd/os_linuxbsd.cpp:342
#14 0x000055555768eded in main (argc=0x7, argv=0x7fffffffda38) at platform/linuxbsd/godot_linuxbsd.cpp:58

Steps to reproduce
vulk-previews-issue-repro-bb.zip
Minimal reproduction project
No response

https://github.com/godotengine/godot/pull/57047 was closed and reduz and RandomShaper think this may be a validation layer error. More investigation is needed


Service Fabric CI/CD support for Linux Azure DevOps Agent pools

Currently the Microsoft-hosted Linux pools do not have the Service Fabric SDK installed. Since the Linux agent pools run on an Ubuntu Linux host inside the vsts-agent-docker container, consider adding support for the Service Fabric SDK. This will enable rapid CI/CD for Linux Service Fabric projects in Azure DevOps.

An initial workaround might be to use Container jobs and the service-fabric-onebox container?
Also posted in: https://github.com/Azure/service-fabric-issues/issues/1275

Hi @shashban, any update on this? Thx.

@pulkitaggarwl @bishal-pdMSFT
The main thing is being able to deploy to a cluster endpoint. Bringin SFCTL in to the container would be one option. Having a taks around SFCTL for deploying would be the better option.

@MikkelHegn - for a .Net Core Linux Service Fabric project wondering which template should be used:

@MikkelHegn - I think developers would still prefer 1st class support for Service Fabric Linux projects in the form of above Azure DevOps templates, and also ability to deploy to a target SF cluster from the Linux VSTS agent (unless this is contrary to other plans)?

@pulkitaggarwl can you please follow up on this?

@bishal-pdMSFT @pulkitaggarwl - any update.. thx?

Thanks  a lot @MedAnd  for following up and I acknowledge the request.
We have added this to our backlog and will try to deliver on this  as early as possible.
In the meanwhile, it will really help if you introduce this request to our user voice.
Similar feedback from community will help us provide a more comprehensive solution.
Regards
Pulkit

@pulkitaggarwl https://developercommunity.visualstudio.com/idea/385310/service-fabric-cicd-support-for-linux-azure-devops.html


Truncate warnings

I have had problems in LDV orgs when the logs got gargantuan due to per-row errors. This avoids that.

Are you coordinating this with @davidmreed? I would guess it'll take some care to merge with his refactor.

This is a sub-branch of his.

@prescod oops, I didn't see that. I'll let him do the main review then, but I have no objection.


Support for other background processing?

Hi! Our app is deployed on AWS Beanstalk... and we use active_elastic_job to handle our offline jobs.
We also use Devise and we would love to be able to also use active_elastic_job to send email asynchronously, but it looks like this is not currently supported by Devise. Any reason why only Resque, Sidekiq and Delayed::Job are supported?
Any guideline on how to add other background processing?

Devise supports any background processing that Rails supports to send email. You only need to configure Rails correctly to be able to do so.
See https://github.com/plataformatec/devise/blob/88e9a85d6a796a41f4dcf2528ed6d5f48916b5fd/README.md#activejob-integration and http://guides.rubyonrails.org/active_job_basics.html#setting-the-backend


Make strapi directory owned by node user

With the current version of the Dockerimage it isn't possible to run strapi with another user besides root. If you try to run it with user 1000 you'll get an error message indicating that the user does not have write permissions for the directory /srv/app. This PR make user 1000 the owner of the directory.

Looks like a good improvement :) will test it asap

I'm having exactly this issue when working with Linux/Windows, because it creates all strapi files under root permissions. On Mac OS that's not a problem, because it always creates as the common user but on Linux/Windows it's different.
The only way to "fix" this that I found was creating my own Dockerfile and passing the user in a similar way that @jonasfranz did. So if you could take a look about this, it will be awesome =)

Works like a charm 💯  Will use this for the next release of strapi !


Refs #33476 -- Refactored problematic code before reformatting by Black.

In these cases Black produces unexpected results, e.g.
def make_random_password(
    self,
    length=10,
    allowed_chars='abcdefghjkmnpqrstuvwxyz' 'ABCDEFGHJKLMNPQRSTUVWXYZ' '23456789',
):

or
cursor.execute("""
SELECT ...
""",
    [table name],
)

As far as I'm aware there is nothing else that could be marked with fmt: off, so after merging this PR I'm going to run Black on the entire Django code repository and add a single commit to the #15387.

Are we planning to add all of these pre-Black commits to .git-blame-ignore-revs as well?

Are we planning to add all of these pre-Black commits to .git-blame-ignore-revs as well?

IMO, that's the last one.
According to the DEP-8 only "the whole-repo-refactor commit SHA should be added to the .gitblameskip or similar" (Black guarantees that it doesn't change the behavior of the code by checking that processing a file doesn't change its AST). Theoretically they can introduce a regression so I'm not sure if we should be doing this :thinking:

I think that Github still doesn't support .git-blame-ignore-revs but from the perspective of someone that uses git-blame locally and their web interface extensively when triaging issues or trying to differentiate behavior between Django versions this change will be highly disruptive so we should rely on this feature as much as possible to reduce the friction formatting the whole base will add.
Just my two cents, maybe others feel differently about this subject.

I think that Github still doesn't support .git-blame-ignore-revs but from the perspective of someone that uses git-blame locally and their web interface extensively when triaging issues or trying to differentiate behavior between Django versions this change will be highly disruptive so we should rely on this feature as much as possible to reduce the friction formatting the whole base will add.
Just my two cents, maybe others feel differently about this subject.

Agreed, let's add all three to the .git-blame-ignore-revs.

Thanks for checking :100:


fix delayed_by_us and delayed_by_ms to not return times > at_the_end_…

fixes #687

This change looks ok, though I'm not seeing the path where a negative (or in this case I guess unsigned-wrapped) delta made it into that function. Initially I thought multicore_lockout_handshake was the culprit, but seems like we check the sign there.

Yes, this was just a bespoke and vestigial use of -1 for at_the_end_of_time, whereas very soon after SDK1.0 at_the_end_of_time was changed from UINT32_MAX to INT32_MAX


Auto - Update velocity setpoint generator to avoid overshoot at high cruise speed

The problem with the current velocity setpoint generator in auto mode is that it assumes a linearly increasing breaking distance. This approximation is good at 5m/s but gets rapidly wrong when the cruise speed in increased. This leads to large overshoots at waypoints and also depends on the maximum acceleration parameter.
To solve this issue, a better approximation is made by assuming square acceleration profile with a scaling to handle the imperfection of this formula. This gives a much better approximation and enables higher cruise speeds without having to adapt the trajectory gain.
Before this PR, with a desired cruise speed of 20m/s:
https://logs.px4.io/plot_app?log=5bb6edfb-4f75-4ca9-8ff1-e42d10ada588

With this PR:
https://logs.px4.io/plot_app?log=eba40d2b-ef50-46da-bb0f-c0e512eb16f2

replaces #11841

@PX4/testflights Can you thy this PR with different cruise speeds please?
MPC_CRUISE_SPEED = 5, 8, 10

Tested on Pixhawk4 mini v5
Modes Tested:
Position Mode: no issue
mission mode : no issues
Vehicle type: Quadrotor
Airframe: DJI Flame Wheel F450, Quadrotor x
Hardware: PX4_FMU_V5
log MPC_XY_CRUISE = 5 m/s
https://review.px4.io/plot_app?log=f560ffd1-c49d-40f9-b6f1-bd1a534a8674
log MPC_XY_CRUISE = 8 m/s
https://review.px4.io/plot_app?log=cc101b3b-2ca6-407c-b52e-886aa9c00f3b
log MPC_XY_CRUISE = 10 m/s
https://review.px4.io/plot_app?log=3d55cf6d-ea17-4713-aa8d-e69dfc4cf3d5

Perfect, thanks a lot @dannyfpv  !

I did something similar here to make sure we don't exceed safe velocities in the avoidance given our sensor range: https://github.com/PX4/avoidance/blob/b31d149a7433a261f6365c32bb02f12fd1727330/local_planner/src/nodes/local_planner.cpp#L288
It also conservatively takes into account the acceleration ramp-up time based on the jerk limit, by assuming no velocity change happens until acceleration is saturated.

@jkflying Thanks for the review. I decided to use your approach but I doubled the acceleration rise time to take in account the case where the current acceleration is opposite. I'll fly it again today

@PX4/testflights can you try that PR again please?
You can even go to higher speeds (I went up to 20m/s this afternoon).
Don't forget to increase the maximum speed MPC_XY_VEL_MAX to ~22m/s if you want to set the cruise speed at 20m/s.

Flight at 20m/s with the new logic : https://logs.px4.io/plot_app?log=9ae356b7-8d8f-448b-9751-c7e57f69cd2b

Tested on Pixhawk4 v5
Modes Tested:
Position Mode: no issue
mission mode : no issues
Vehicle type: Quadrotor
Airframe: DJI Flame Wheel F450, Quadrotor x
Hardware: PX4_FMU_V5
logs MPC_XY_CRUISE = 20 m/s
MPC_XY_VEL_MAX to ~22m/s
https://review.px4.io/plot_app?log=a336879d-cf80-468e-9d7f-0f67281aa7e8
https://review.px4.io/plot_app?log=2f146332-3709-40d3-9cb2-ac011f96a7a9

Tested on PixRacer V4:
Note:The parameter MPC_XY_VEL_MAX was changed to 22m / s and MPC_XY_CRUISE to 20m / s.
Flight Card 3
Modes Tested
Position Mode: Good.
Mission Plan Mode (Automated): Good.
RTL (Return To Land): Good.
Procedure
Arm and Take off in position mode, after flying for approximately one minute, switched to mission plan mode then make sure that vehicle follows all waypoints as shown in QGC, once completed all waypoint see landing behavior.
Note:
Vehicle was constantly oscillating during the flight; this could be seen in position, mission and RTL mode.
Loaded master to see if the issue persisted but it was not the case, vehicle flew as expected without oscillations.
Logs:
https://review.px4.io/plot_app?log=042d0074-6c9d-4af7-a4c5-4e77bc202963
https://review.px4.io/plot_app?log=ca72ff65-b0a0-47b9-a578-428db63deb3a
Logs: Comparison to master
https://review.px4.io/plot_app?log=2655c0a7-dee4-45fc-ae4a-7757831200ed
Tested on Pixhawk 2 Cube V3:
Note:The parameter MPC_XY_VEL_MAX was changed to 22m / s and MPC_XY_CRUISE to 20m / s.
Flight Card 3
Modes Tested
Position Mode: Good.
Mission Plan Mode (Automated): Good.
RTL (Return To Land): Good.
Procedure
Arm and Take off in position mode, after flying for approximately one minute, switched to mission plan mode then make sure that vehicle follows all waypoints as shown in QGC, once completed all waypoint see landing behavior.
Note:
Vehicle was constantly oscillating during the flight; this could be seen in position, mission and RTL mode.
Loaded master to see if the issue persisted but it was not the case, vehicle flew as expected without oscillations.
Logs:
https://review.px4.io/plot_app?log=cea0e989-0474-4e84-8b87-b546d32528e1
https://review.px4.io/plot_app?log=b373a2d3-b068-422d-92f7-569fe45cd995
Logs: Comparison to master
https://review.px4.io/plot_app?log=6e5db31a-f67a-410f-8252-2e54622c5468

Tested on Pixhawk Pro v4:
Note: Parameters MPC_XY_VEL_MAX was changed to 22m/s and MPC_XY_CRUISE to 20m/s.
Modes Tested
Position Mode: Good.
Mission Plan Mode (Automated): Good.
RTL (Return To Land): Good.
Procedure
Arm and Take off in position mode, after flying for approximately one minute, switched to mission plan mode then make sure that vehicle follows all waypoints as shown in QGC, once completed all waypoint see landing behavior.
Note:
No issues noted, good flight in general.
Logs:

https://review.px4.io/plot_app?log=59f11fa4-2a44-4229-83a1-2dfb91183d2d

https://review.px4.io/plot_app?log=9190caf4-ba08-456a-8b0e-b6c4fb0bd995

Tested on NXP FMUK66 v3:
Note: Parameters MPC_XY_VEL_MAX was changed to 22m/s and MPC_XY_CRUISE to 20m/s.
Modes Tested
Position Mode: Good.
Mission Plan Mode (Automated): Good.
RTL (Return To Land): Good.
Procedure
Arm and Take off in position mode, after flying for approximately one minute, switched to mission plan mode then make sure that vehicle follows all waypoints as shown in QGC, once completed all waypoint see landing behavior.
Note:
No issues noted, good flight in general.
Logs:

https://review.px4.io/plot_app?log=aedfced7-926b-456e-8ea5-7ae5ce06bf5a

https://review.px4.io/plot_app?log=eea3fbd4-26f5-44ac-b0ee-8520c8ae9812

Thank you @dannyfpv @jorge789 @Junkim3DR !
@jkflying Can you review and approve again so we can merge this please?

Offboard footage: https://youtu.be/OZzi8cmUZ74
Onboard footage: https://youtu.be/cDZWgacUZZc


Feat: Add secrets property

Add a secrets property, the result of which is interpolated into the config property, when it's a string.

Is there a way to escape and insert something that looks like a secret into the config?

Not at the moment. For now, I think the regex is explicit enough that we're unlikely to run into this case. We should revisit this later though.


Combination with Term.jl to show the output much better.

Hi, I got familiar with this excellent work couple of minutes ago. I imagined the combination of this module with Term.jl would be great to show the output of PkgDependencies.tree() in a much more delightful way. This is a requested feature, and I would be happy if you mind it.

Thank for your recommendation of Term.jl! I'm experimenting this but found it cannot display tree in a specific order currently. I should wait for FedeClaudi/Term.jl#139 to be solved.

Thank for your recommendation of Term.jl! I'm experimenting this but found it cannot display tree in a specific order currently. I should wait for FedeClaudi/Term.jl#139 to be solved.

Hi,
I see. I look forward to the good news!

After update the Term.jl to v1.0.4, the PkgDependency automatically downgraded to 0.1.0.


When I create dialogs, they overlap each other

When I create dialogs, they overlap each other
Describe the bug
When I click the button next to an NPC, it brings up a dialog box
The problem is that if I click the button a lot of times, then there are a lot of dialogs on top of other
To Reproduce
(Using C#)
Node dialog = null; dialog = DialogicSharp.Start("timeline"); AddChild(dialog);
Expected behavior
To start just one dialog not many of them
System (please complete the following information):

OS: Windows 11
Godot Version: v3.5.1.stable.mono
Dialogic Version: v1.4.5

Well if you call the method multiple times then it will instance it multiple times. You can add a check if Dialogic.has_current_dialog_node():.
Hope this helps.


Teams docs

Docs around Teams and Teams CLI
Before merging would be great to have these few tasks checked off: https://github.com/tinacms/tinacms-site/issues?q=is%3Aissue+is%3Aopen+label%3Ateams
fixes: https://github.com/tinacms/tinacms-site/pull/117
fixes: https://github.com/tinacms/tinacms-site/issues/121

Was it issue #120 that also was incorporated?

Sorry just saw your notes now @kendallstrautman ! The Tina serve command has kind of been put on ice for the time being, so I may end up removing it from the CLI (and the docs along with it).
I'm also not sure why I self-referenced this PR in the description :/ I think I meant to link it to an issue in another repo

Just looking into this now. It's not super clear to me the steps to get setup. After the global install with getting started, it might be good to prompt folks on next steps — which commands should they run or what should they expect to see happen so they know they're on the right track?
Is it expected on the commands page that they follow the list sort of one by one to get the party started?


Fix/wallet manager worker unassigned runtime

Context
WalletManagerWorker.runtime is never assigned the value provided in the constructor, which
Proposed Solution
Added unit test to catch this problem.
Added  no-unused-expressions typescript eslint rule to catch this kind of errors.
Important Changes Introduced

I'm wondering how it was even working, is runtime available as global in the extension? 🤔

@mkazlauskas in the extension it is working because the consumeRemoteApi resolves to _backgroundConsumeRemoteApi which calls getBackgroundMessenger and returns the backgroundMessenger if it was already created. For desktop the consumeRemoteApi will resolve to _nonBackgroundConsumeRemoteApi which doesnt use getBackgroundMessenger and always creates the backgroundMessenger and has the runtime as dependency.

squashed and rebased on top of master


new release please

are you going to make a new release?
Thank you.

Hey, The thing is right now I am in the middle of kind of revamping the core engine(you can see the gen3/gen2 branch), in them the terrain generation part is mostly done but the texturing part is still mostly left, though I would love to finish up and release ass soon as possible, the amount time I can personally devote has gotten pretty small due to work and other commitments, so to answer your question, Yes there is going to be a release, but as for when, its a bit difficult to say.
Hope this answers your question😊

Hey, The thing is right now I am in the middle of kind of revamping the core engine(you can see the gen3/gen2 branch), in them the terrain generation part is mostly done but the texturing part is still mostly left, though I would love to finish up and release ass soon as possible, the amount time I can personally devote has gotten pretty small due to work and other commitments, so to answer your question, Yes there is going to be a release, but as for when, its a bit difficult to say. Hope this answers your question😊

yes and some "pre" release ? :-)


Generate video error

Unload to CPU: VideoAutoencoderKL
Load to GPU: AutoencoderKL
Unload to CPU: AutoencoderKL
Load to GPU: CLIPTextModel
Unload to CPU: CLIPTextModel
Load to GPU: ModifiedUNet
Unload to CPU: ModifiedUNet
Load to GPU: AutoencoderKL
Unload to CPU: AutoencoderKL
Load to GPU: CLIPTextModel
Unload to CPU: CLIPTextModel
Load to GPU: Resampler
Load to GPU: ImprovedCLIPVisionModelWithProjection
Unload to CPU: Resampler
Unload to CPU: ImprovedCLIPVisionModelWithProjection
Load to GPU: VideoAutoencoderKL
Traceback (most recent call last):
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\queueing.py", line 528, in process_events
response = await route_utils.call_process_api(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\route_utils.py", line 270, in call_process_api
output = await app.get_blocks().process_api(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\blocks.py", line 1908, in process_api
result = await self.call_function(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\blocks.py", line 1485, in call_function
prediction = await anyio.to_thread.run_sync(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\anyio\to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\anyio_backends_asyncio.py", line 2177, in run_sync_in_worker_thread
return await future
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\anyio_backends_asyncio.py", line 859, in run
result = context.run(func, *args)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\utils.py", line 808, in wrapper
response = f(*args, **kwargs)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\gradio_app.py", line 222, in process_video
frames, im1, im2 = process_video_inner(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\gradio_app.py", line 190, in process_video_inner
input_frame_latents, vae_hidden_states = video_pipe.encode_latents(input_frames, return_hidden_states=True)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\pipeline.py", line 102, in encode_latents
encoder_posterior, hidden_states = self.vae.encode(x, return_hidden_states=return_hidden_states)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 804, in encode
h, hidden = self.encoder(x, return_hidden_states)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl
return forward_call(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 249, in forward
h = self.mid.attn_1(h)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\nn\modules\module.py", line 1532, in wrapped_call_impl
return self.call_impl(*args, **kwargs)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\nn\modules\module.py", line 1541, in call_impl
return forward_call(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 411, in forward
h = self.attention(h)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 397, in attention
out = chunked_attention(
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 36, in chunked_attention
out = xformers.ops.memory_efficient_attention(q, k, v)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha_init.py", line 276, in memory_efficient_attention
return memory_efficient_attention(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha_init.py", line 395, in _memory_efficient_attention
return memory_efficient_attention_forward(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha_init.py", line 414, in _memory_efficient_attention_forward
op = _dispatch_fw(inp, False)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha\dispatch.py", line 119, in _dispatch_fw
return _run_priority_list(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha\dispatch.py", line 55, in _run_priority_list
raise NotImplementedError(msg)
NotImplementedError: No operator found for memory_efficient_attention_forward with inputs:
query       : shape=(2, 2688, 1, 512) (torch.float16)
key         : shape=(2, 2688, 1, 512) (torch.float16)
value       : shape=(2, 2688, 1, 512) (torch.float16)
attn_bias   : <class 'NoneType'>
p           : 0.0
decoderF is not supported because:
max(query.shape[-1] != value.shape[-1]) > 128
xFormers wasn't build with CUDA support
attn_bias type is <class 'NoneType'>
operator wasn't built - see python -m xformers.info for more info
<EMAIL_ADDRESS>is not supported because:
max(query.shape[-1] != value.shape[-1]) > 256
xFormers wasn't build with CUDA support
operator wasn't built - see python -m xformers.info for more info
cutlassF is not supported because:
xFormers wasn't build with CUDA support
operator wasn't built - see python -m xformers.info for more info
smallkF is not supported because:
max(query.shape[-1] != value.shape[-1]) > 32
xFormers wasn't build with CUDA support
dtype=torch.float16 (supported: {torch.float32})
operator wasn't built - see python -m xformers.info for more info
unsupported embed per head: 512
Unload to CPU: VideoAutoencoderKL
Load to GPU: CLIPTextModel
Unload to CPU: CLIPTextModel
Load to GPU: Resampler
Load to GPU: ImprovedCLIPVisionModelWithProjection
Unload to CPU: Resampler
Unload to CPU: ImprovedCLIPVisionModelWithProjection
Load to GPU: VideoAutoencoderKL
Traceback (most recent call last):
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\queueing.py", line 528, in process_events
response = await route_utils.call_process_api(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\route_utils.py", line 270, in call_process_api
output = await app.get_blocks().process_api(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\blocks.py", line 1908, in process_api
result = await self.call_function(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\blocks.py", line 1485, in call_function
prediction = await anyio.to_thread.run_sync(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\anyio\to_thread.py", line 56, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\anyio_backends_asyncio.py", line 2177, in run_sync_in_worker_thread
return await future
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\anyio_backends_asyncio.py", line 859, in run
result = context.run(func, *args)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\gradio\utils.py", line 808, in wrapper
response = f(*args, **kwargs)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\gradio_app.py", line 222, in process_video
frames, im1, im2 = process_video_inner(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\gradio_app.py", line 190, in process_video_inner
input_frame_latents, vae_hidden_states = video_pipe.encode_latents(input_frames, return_hidden_states=True)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\pipeline.py", line 102, in encode_latents
encoder_posterior, hidden_states = self.vae.encode(x, return_hidden_states=return_hidden_states)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 804, in encode
h, hidden = self.encoder(x, return_hidden_states)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\nn\modules\module.py", line 1532, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\nn\modules\module.py", line 1541, in _call_impl
return forward_call(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 249, in forward
h = self.mid.attn_1(h)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\nn\modules\module.py", line 1532, in wrapped_call_impl
return self.call_impl(*args, **kwargs)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\torch\nn\modules\module.py", line 1541, in call_impl
return forward_call(*args, **kwargs)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 411, in forward
h = self.attention(h)
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 397, in attention
out = chunked_attention(
File "E:\UNDO\Paints-UNDO\diffusers_vdm\vae.py", line 36, in chunked_attention
out = xformers.ops.memory_efficient_attention(q, k, v)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha_init.py", line 276, in memory_efficient_attention
return memory_efficient_attention(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha_init.py", line 395, in _memory_efficient_attention
return memory_efficient_attention_forward(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha_init.py", line 414, in _memory_efficient_attention_forward
op = _dispatch_fw(inp, False)
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha\dispatch.py", line 119, in _dispatch_fw
return _run_priority_list(
File "C:\Users\DM.conda\envs\paints_undo\lib\site-packages\xformers\ops\fmha\dispatch.py", line 55, in _run_priority_list
raise NotImplementedError(msg)
NotImplementedError: No operator found for memory_efficient_attention_forward with inputs:
query       : shape=(2, 2688, 1, 512) (torch.float16)
key         : shape=(2, 2688, 1, 512) (torch.float16)
value       : shape=(2, 2688, 1, 512) (torch.float16)
attn_bias   : <class 'NoneType'>
p           : 0.0
decoderF is not supported because:
max(query.shape[-1] != value.shape[-1]) > 128
xFormers wasn't build with CUDA support
attn_bias type is <class 'NoneType'>
operator wasn't built - see python -m xformers.info for more info
<EMAIL_ADDRESS>is not supported because:
max(query.shape[-1] != value.shape[-1]) > 256
xFormers wasn't build with CUDA support
operator wasn't built - see python -m xformers.info for more info
cutlassF is not supported because:
xFormers wasn't build with CUDA support
operator wasn't built - see python -m xformers.info for more info
smallkF is not supported because:
max(query.shape[-1] != value.shape[-1]) > 32
xFormers wasn't build with CUDA support
dtype=torch.float16 (supported: {torch.float32})
operator wasn't built - see python -m xformers.info for more info
unsupported embed per head: 512
Windows 11

13th Gen Intel(R) Core(TM) i7-13700K   3.40 GHz
RTX 4090

Fix PyTorch and xformers compatibility issues

Uninstalled conflicting versions of PyTorch and xformers
Installed PyTorch 2.0.1+cu118 for CUDA 11.8 support
Installed compatible xformers 0.0.20
Verified CUDA availability and package versions
Reinstalled project dependencies

This resolves version conflicts and ensures proper GPU utilization.


Alerting enhancements: Alerting Comments (Experimental)

Description
Common utils additions for the Alerting Comments experimental feature
Issues Resolved
https://github.com/opensearch-project/alerting/issues/1500: direct request for adding Alert notes when acknowledging an Alert and showing who acknowledged an Alert.
This feature intends to be a superset of this ask, though adding comments or notes specifically when acknowledging an Alert will be a later extension.
Check List

[x] New functionality includes testing.

[x] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

if you've have a github issue for this feature, add it in PR description for ref

Looks good to me as long as other folks' comments are addressed. I've resolved the comments I left.


Custom context not passed to default template render function

Hi,
Not sure if this is intentional or not, but I think I've noticed a bug in the way the default template plugin renders templates.
In order to take full advantage of using this plugin I have been using:
\Timber\Integrations\WooCommerce\WooCommerce::render_default_template();

in my woocommerce.php file so that I get the recommended files. I have noticed though, that when using this function, that any custom context that I have defined within the woocommerce.php file is not pulled into this function, even though the context is defined at the top of your function using $context = Timber::get_context();.
Steps to reproduce:

Setup a WP instance with WooCommerce installed (latest versions)
Install Timber and this plugin with composer
Create a woocommerce.php file in your theme
Define some custom context using `$context['customText'] = "Hello World";
Add this at the end of the file \Timber\Integrations\WooCommerce\WooCommerce::render_default_template(); to render the recommended templates within this plugin
Try and use the custom context by either echoing {{ customText }} or printing it out using dump(customText)
This returns NULL

Potential fix:
Add a variable to pass into the function, and then check if it's been passed in and merge the two together.
	public static function render_default_template($customContext = array()) {
		$context = Timber::get_context();

		if(!empty($customContext)) {
			$context = array_merge($context, $customContext);
		}

If this is intentional, then please ignore me 😄 If not, happy to introduce a PR to fix.
Thanks,
Ed

Do you mean like here?
https://github.com/mindkomm/timber-integration-woocommerce/blob/72a724bfa238e75f5371c8464957a14d4b1dde58/lib/WooCommerce.php#L352-L353
This is in the latest release candidate.
(I still have to check one thing or two before I can make an official release, but I hope to get that out soon.)

Ahhh perfect! I didn't think to check the latest releases 👍 Is that pre-release safe to use even though it's not got an official release yet?

Sorry for the late reply! I usually make a pre-release to use it in our client projects and see whether everything works out fine before releasing an official version. I’d say those pre-releases are pretty safe to use.
I just released version 0.6.0. You can update the integration with
composer update mindkomm/timber-integration-woocommerce


Support fetching figma file version

Looks like mediacompose needs to be fixed

Looks like mediacompose needs to be fixed

Done. Could you please to take another look before I merge? @rylin8  Thanks!


Prevent the header logo from shrinking

Closes #1398

It looks like this when the viewport width is small:

ugh, need a rebase plz. got conflicted after I merged another one.

Rebased :)


Unable to open database file: Permission denied

I installed the plugin in the plugin directory, all permissions in the /var/lib/grafana folder are set to 750.
I added the datasource of type sqlite-datasource with path to "~/project/data/database.db".
When creating a new panel with the newly added datasource the following error is displayed:

The database.db file also has permission 750.

I'm facing the same issue, can you tell me the fix? thanks


file mode changes

add bin/* files to enable-executable and executable-status-check
generator now makes test files executable
make enable-executable chmod consistent with current file modes

Looks good.  Waiting on Travis.

Methods can't go to 11!
I can fix that.
I also noticed that the enable-executable and executable-status-check don't work if you are cd-ed into bin.
I'll throw that fix in as well.

You shouldn't need to change folders into any other folder in order to use the tools.
In fact you should be able to add that to your path and run them from anywhere.  Though normally, I suppose, it would be the project root.
You don't change directory to work on the exercise files, (do you?) you shouldn't need to run the bin files.

Its not that you need to cd to use them, its that if you do, you can't!
I'm usually at project root, but it threw me for a loop when I cd-ed into bin while experimenting with file modes because I got tired of typing ll bin/* and wanted to just type ll.

@kotp, are you against having enable-executable and executable-status-check use pathing from the current file in their Dir.globs? It does kinda seem like overkill, but on the other hand... if someone cds into bin it saves them some confusion.

Actually, putting bin on your path is kinda scary! Because Dir.glob is relative to pwd, that can change file permissions on a whole lotta stuff (if for example, used from home).

Current view on that branch looks like:
total 64
-rwxrwxr-x 1 george curious 342 Apr 11 22:37 enable-executable
-rwxrwxr-x 1 george curious 349 Apr 11 22:37 executable-tests-check
-rwxr--r-- 1 george curious 640 Apr  4 14:53 fetch-configlet
-rwxr--r-- 1 george curious 140 Apr 11 01:06 generate-clock
-rwxr--r-- 1 george curious 186 Apr  4 14:53 generate-difference-of-squares
-rwxr--r-- 1 george curious 155 Aug 16  2015 generate-gigasecond
-rwxr--r-- 1 george curious 146 Aug 16  2015 generate-hamming
-rwxr--r-- 1 george curious 157 Apr 11 00:59 generate-hello-world
-rwxr--r-- 1 george curious 189 Apr 11 00:59 generate-largest-series-product
-rwxr--r-- 1 george curious 137 Apr 11 00:59 generate-leap
-rwxr--r-- 1 george curious 146 Apr 10 23:17 generate-pangram
-rwxr--r-- 1 george curious 150 Apr 11 00:59 generate-raindrops
-rwxr--r-- 1 george curious 175 Apr  4 14:53 generate-rna-transcription
-rwxr--r-- 1 george curious 166 Apr 11 00:59 generate-roman-numerals
-rwxr--r-- 1 george curious 407 Apr  4 14:53 local-status-check
-rwxr--r-- 1 george curious 114 Aug 16  2015 setup-git-hoooks

Your changes introduce another level of access that may not be necessary.  Compare to the rest of the files permissions.  Yours are 775, while the rest are 744.

A fresh clone of master has this for me:
-rwxrwxr-x 1 cohen cohen 224 Apr 11 22:50 enable-executable
-rwxrwxr-x 1 cohen cohen 246 Apr 11 22:50 executable-tests-check
-rwxrwxr-x 1 cohen cohen 640 Apr 11 22:50 fetch-configlet
-rwxrwxr-x 1 cohen cohen 186 Apr 11 22:50 generate-difference-of-squares
-rwxrwxr-x 1 cohen cohen 155 Apr 11 22:50 generate-gigasecond
-rwxrwxr-x 1 cohen cohen 146 Apr 11 22:50 generate-hamming
-rwxrwxr-x 1 cohen cohen 157 Apr 11 22:50 generate-hello-world
-rwxrwxr-x 1 cohen cohen 189 Apr 11 22:50 generate-largest-series-product
-rwxrwxr-x 1 cohen cohen 137 Apr 11 22:50 generate-leap
-rwxrwxr-x 1 cohen cohen 146 Apr 11 22:50 generate-pangram
-rwxrwxr-x 1 cohen cohen 150 Apr 11 22:50 generate-raindrops
-rwxrwxr-x 1 cohen cohen 175 Apr 11 22:50 generate-rna-transcription
-rwxrwxr-x 1 cohen cohen 166 Apr 11 22:50 generate-roman-numerals
-rwxrwxr-x 1 cohen cohen 407 Apr 11 22:50 local-status-check
-rwxrwxr-x 1 cohen cohen 114 Apr 11 22:50 setup-git-hoooks

But that wasn't coming from the prior version.  I just checked against what it was handling, which is the test files...
I get this:
-rwxr--r-- 1 george curious 3062 Apr 11 19:45 exercises/clock/clock_test.rb

for example, which is to say 744.

It appears there is some git magic afoot. I'll update to using FileUtils.chmod('+x', file).

Should be all squared away now. /knocks on wood

I think the generator file doesn't belong in this commit?  Seems out of place, and I think it naturally leaves if we leave executable bit functionality to the tools to address that.

@kotp With regards to if the generator should change the filemode, see my comments on the diff. Perhaps we could tag kytrinyx for an opinion?

I'd rather not have the generator change the file mode, as it seems like a completely unrelated change.
The whole "make the tests executable" is a weird edge case that we threw in to make someone happy. I personally do not see the value of it, but it doesn't seem to hurt to have it. That said, at some point I'm going to write an article about all the ways you can run the tests quickly or automatically (rerun, guard, vim keybindings, etc, etc), at which point I'd like to rip out the #!s and the stuff where muck with the execution bit, because at that point we can just point to the article and suggest that these are all good ways to do it.
If we stick it in the generators, now we'll have to rip it out of 60 different places.
Does that make sense?

Regarding the test cases executable:
I'm sorry to butt in here because I may be making a statement that is based on an incomplete understanding of all the issues at hand here, but I would note that despite https://github.com/exercism/xruby/blob/master/exercises/hello-world/hello_world_test.rb currently being executable, exercism fetch ruby hello-world does not make it executable.
In cli the file is always written non-executable by fetch due to https://github.com/exercism/cli/blob/master/user/item.go#L71 . We also briefly discussed in https://github.com/exercism/cli/issues/276 (note that the issue proper discusses download not fetch but the decision covered fetch as well).
Basicaly I'm saying, if desiring to make the test files executable, some work will have to be done in CLI.
Of course whether the file is executable will affect those who clone the repo directly instead of going through exercism fetch. So still worth thinking about.

Yes, the client code not being executable is understood.  Thanks @petertseng, reminded me about that.  I am not sure we would or should make clients files executable in general, without good reason.  Plus it is one more learning point.  How do you automate your tests.  I use rerun gem often, or guard when it is a full project.  But my editor is my test launcher otherwise.
The generator is only one file, and effects those (hopefully soon to be) sixty, but is only one file to change later.  Honestly, the benefit is while the generated test is being created.  It is a limited convenience.
However, the generator change should not be in this PR.

Basicaly I'm saying, if desiring to make the test files executable, some work will have to be done in CLI.

I forgot about that. We did that on purpose.

The generator is only one file

Oh, right. I wasn't thinking.

the benefit is while the generated test is being created

OK, now I really don't understand. Why does it help to make the test file executable when generating it?

That is more feedback that I have been told, rather than what my experience has been, not sure if they are using automated tools to run on change, or just not using the command line history to get the line ruby exercise/something_test.rb.  It is probably more of a "someone is working harder than they need to be" kind of thing.
So probably too much weight in regards to the benefit being during creation.  Though that would be the time when it is likely to be ran in quick succession through the iterations.


remove empty code files to silence warnings

Closes #80

this is the second time that I've had a failure on the Windows compiler for no apparent reason. I swear it's a buggy compiler.


Type script error for Button with target property.🐛

export interface ButtonProps extends HTMLButtonAttributes {
Maybe need replace to
export interface ButtonProps extends HTMLButtonAttributes | HTMLLinkAttributes {

Thank you, its works, but you have problem there with ButtonColor property, its not imported

That's fixed. It'll be out in the next patch release 6.2.3


Add a new option to specify a file for content

Fixed by https://github.com/abirismyname/create-discussion/pull/32


On Linux GetTicks64 always returns 0 while GetTicks returns correct value

I'm using x86_64 Linux distributive.
sdl.GetTicks64() always returns 0 while sdl.GetTicks() returns a correct value.

I've been using 0.4.27 since the initial commit of my boilerplate code:
https://github.com/geniot/go-sdl2-cp-examples/commit/36994f6e2b2c2be3c1b4fcd66263c8ee23c12c26#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6
The finding and the fixes came later:
https://github.com/geniot/go-sdl2-cp-examples/commit/e2bf3aac9b2b9bae4743abd774989f9ed70b6ef7
https://github.com/geniot/go-sdl2-cp-examples/commit/4209ea562a2c9fd55dba64b3729e8bd52e8a467f

Thanks @geniot for the response. Could you let me know what version of SDL2 is being used?

Hi @geniot, if SDL2 2.0.0 is being used then it needs to be updated to at least SDL2 2.0.18 as that function isn't available in the older versions, according to https://wiki.libsdl.org/SDL2/SDL_GetTicks64

Hi @geniot, you can try our master branch which has SDL2 2.0.20 static libraries and build your game statically using the command mentioned here. They haven't been tested but it may be worth a shot.

Thanks for the hint. I'll definitely try later.


Timeout of 10s is too short during the startup process..

https://github.com/elastic/puppet-elasticsearch/blob/cb2726a8e8d01b955df96c9c82faff3c5e0ac967/files/etc/init.d/elasticsearch.Debian.erb#L156
Using ElasticSearch 6.2.3 on Ubuntu 14.04, the timeout is too short for some reason.. it takes ~11s for the app to start up in our environment, so the init script errors out even though ES starts up properly.

So that timeout value is drawn from the upstream init script which uses the same timeout value and logic. If it's causing problems during startup, my thought is that it should be changed upstream (with possibly an environment variable the init script consumes for a timeout value?) so that the fix can be standardized (and validated by the Elasticsearch team as well), then we can sync with any fixes they may have with the init script. Thoughts?

I ran into this too on CentOS 7. I changed it to 1 minute.

The timeout for the init script is just "kicking off" elasticsearch, but from the time the init script comes back (which is actually really fast), to the time when elasticsearch is actually "ready" is significantly longer. The default value should be at least 30, if not 60. Thankfully its a parameter, so you just have to add the following to heiradata:
elasticsearch::api_timeout: 30

or add it as a parameter to the elasticsearch class in your puppet code if you prefer not to use hieradata ;)
~tommy


Added support for weather sensors

Added support to retreive weather sensor data from trafikverket road sensors.
Verified with pylint and simulated successfully with cli test.
Bumped version from 1.5.7 to 1.5.8
Weatherstation:
https://api.trafikinfo.trafikverket.se/API/Model
Stations with names:
https://www.trafikverket.se/trafikinformation/vag/?TrafficType=personalTraffic&map=1/606442.17/6886316.22/&Layers=RoadWeather%2B
Example CLI for weatherstations:
-key [api_key here] -method get-weather -station "Upplid"

@AnderssonPeter What do you think..?

Hi, any chance you could take over this project? I don't write much python now days.

Hej Peter,
Works fine for me.
You can transfer the ownership of the repo in the settings but I think it's best if you accept the pr first so I can dump my fork before you make the transfer

My fork is now deleted,
PyPi userid endor.

I have sent a transfer request on both github and PyPi, thanks for taking over this project (i haven't given it the love it deserves)


Identify md file urls as text files

md files were being fetched as binary files, which breaks UTF-8 characters in the READMEs.

Great - thanks!


risc-v/vfork: FPU was not saved correctly

The FPU register saving upon vfork entry was missing.
Also added macro that tells the actual size of an FPU reg, instead
of just having a coefficient for qfpu/no-qfpu.
Summary
I goofed and forgot to make the actual FPU register save in #6299
Impact
Adds what was left out
Testing
icicle:pnsh
user_main: vfork() test
vfork_test: Child 86 ran successfully

Need to add wrap for FPU in the asm file still. Goes to tomorrow.


Fix mypy warnings post runtime image upgrade to 8.3.0

Follow-up PR for fixing mypy failures on https://github.com/astronomer/astronomer-providers/pull/1142

@phanikumv please review

Merged this as CI is RED in main.


Invalid zone setting "**" (value: ) found - cannot be set as it is read only

Confirmation

[X] My issue isn't already found on the issue tracker.
[X] I have replicated my issue using the latest version of the provider and it is still present.

Terraform and Cloudflare provider version
Terraform v1.1.7
on darwin_amd64

provider registry.terraform.io/cloudflare/cloudflare v3.10.0
provider registry.terraform.io/hashicorp/aws v3.74.0

Affected resource(s)

cloudflare_zone_settings_override

Terraform configuration files
data "cloudflare_zone" "zone" {
  name = "example.org"
}

resource "cloudflare_zone_settings_override" "settings" {
  zone_id  = data.cloudflare_zone.zone.id

  settings {
    ssl                         = "full"
    always_use_https            = "on"
  }
}

Debug output
output too long...
Panic output
Error: invalid zone setting "polish" (value: ) found - cannot be set as it is read only
Expected output
All changes applied
Actual output
Error: invalid zone setting "polish" (value: ) found - cannot be set as it is read only
and every time, the setting that causes the error is different (it just throws a random readonly setting every time), but as you can see on the example above, I am never setting it.
Steps to reproduce

Create a zone in Cloudflare
Reference that zone as data on your main.tf
Then add a resource cloudflare_zone_settings_override and use the zone_id from the data from step 2, after this, add the settings block and set one setting such as ssl = "full"
Try to apply the changes

Additional factoids
This happens on both local and latest stable docker image on Gitlab CI
References
Duplicate of #1117

For people who is having this same issue try the following:

Checkout your state file (in case you have it remotely like me), I recommend you switch your backend to a local one (you'll have to do a migration).
Delete the settings_override resource from your state file and also from your tf file
Do a terraform apply
Now re-add the settings_override resource
Do a terraform apply (It should work now!)
Now change your backend back to what it was and do the migration in case needed

I'm not really sure what caused this, but in my case it was because I did a terraform apply, and the script failed while being created (I did the terraform validate, and plan but no errors were thrown).

Thanks for the workaround @davidvpe! But I think you should reopen this issue, it is clearly a bug.

For anyone else running into this, all you need to do is run this before reapplying:
terraform state rm cloudflare_zone_settings_override.example

You neither need to move your remote state, nor edit it directly.


[PAR-473] Pass through components from react-responsive and remove custom Responsive components

BREAKING CHANGE
This removes custom Responsive components in favor of passing through components from react-responsive directly.
Components that have been removed:

ExtraSmall
Small
Medium
Large
ExtraLarge
ExtraExtraLarge
LargerThanExtraSmall

New passthrough components/hooks:

MediaQuery
useMediaQuery
ResponsiveContext

Supporting information

https://openedx.atlassian.net/browse/PAR-473
https://github.com/openedx/frontend-wg/issues/45
react-responsive documentation

:tada: This PR is included in version 17.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Allow fetching relation types via 'include' key

Right now query.include only works if the column is of type pointer or an array. It would be useful to have include fetch relation type as well.

This was the case with Parse.com apps as well. Feel free to open a PR that adds this feature! Closing this as we're using the issue tracker for bugs and issues.


Update README to link to new wiki tutorials #74

Replaces existing link to wiki with link to wiki section on
tutorials.
Previously modified wiki to add sections documenting (1) importing
JSON and exporting SQLite to JSON and (2) opening and saving a
SQLite file.

Signed-off-by: John M. Horan<EMAIL_ADDRESS>

LGTM! 👍


Error when training in the MNIST example

When I uncomment the line trainer.fit(model, datamodule=dm) in the Super-Resolution - MNIST Example.ipynb file, I get this error TypeError: 'NoneType' object is not callable on line 53 of SResTransformer.py file. Could you please take a look why this is happening? I should mention that I had to change some stuff to get the code running. One change was the definition of the trainer object
trainer = Trainer(max_epochs=100,
                  gpus=1, # set to 0 if you want to run on CPU
                  callbacks = [
                    ModelCheckpoint(
                        dirpath=None,
                        save_top_k=1,
                        verbose=False,
                        save_last=True,
                        monitor='Train/avg_val_loss',
                        mode='min',
                        # prefix='best_val_loss_'
                    )
                  ],
                  deterministic=True)

Another change was to change lines 76 and 77 in SResDataModule.py from
mnist_test = MNIST(self.root_dir, train=False, download=True).data.type(torch.float32)
mnist_train_val = MNIST(self.root_dir, train=True, download=True).data.type(torch.float32)

to
mnist_test = MNIST(self.root_dir, train=False, download=True).test_data.type(torch.float32)
mnist_train_val = MNIST(self.root_dir, train=True, download=True).train_data.type(torch.float32)

Hi @rkushol,
Thank you for reporting this issue. It looks like some underlying API has changed over the last months. Could you try to use pytorch-lightning==1.2.6?

Hi @rkushol
I finally got around to look at it. I fixed a couple things that were broken and now it is running on my system again. If you find the time it would be appreciated if you could try it out again :)
Thank you!


drivers: modem: introduce modem context helper and layers

Initial support for modems in Zephyr use the following driver model:

Main portions of code live in the modem specific driver.  This includes internal socket management, command parsing, etc.
They leverage a UART-based modem receiver helper to gather data.
Interface with Zephyr networking via net_context offload APIs.

This implementation was good enough to kick start interest in supporting modem usage in Zephyr, but lacks future scalability:

The net_context offload APIs don't allow for operations such as offloaded DNS, SSL/TLS and other HW specific features.
Since most of the code lives within the modem drivers, it's very hard for the Zephyr community to improve the driver layer over time.  Bugs found in 1 driver probably affect others due to copy/paste method of development.
Lack of abstraction for different modem interfaces and command handlers makes it impossible to write a "dummy" layer which could be used for testing.
Lack of centralized processing makes implementing low power modes and other advanced topics more difficult.

Introducing the modem context helper driver and sub-layers:

modem context helper acts as an umbrella for several configurable layers and exposes this data to externals such as the modem shell.  Included in the helper is GPIO pin config functions which are currently duplicated in most drivers.
modem interface layer: this layer sits on the HW APIs for the peripheral which communicates with the modem.  Users of the modem interface can handle data via read/write functions.  Individual modem drivers can select from (potentially) several modem interfaces.
modem command parser layer: this layer communicates with the modem interface and processes the data for use by modem drivers.

Fixes: https://github.com/zephyrproject-rtos/zephyr/issues/17922

Including the following who have shown interest in modems:
@weinholtendian
@WilliamGFish
@rerickson1
@cybertale
@Oanerer
@Swij

My original goal was to get this in for Zephyr 2.0.  But, I had a lot of work distractions so this came in very late.  As this is a new driver helper, it doesn't affect anyone's existing driver so maybe there is still time.
By getting it into v2.0 we can establish a baseline for new modem drivers to use, rather than end up with a lot of copy/paste code.
There is a lot of room for improvement over time, but that should come later:

power management
dummy modem driver + modem interface for testing
etc

Also: my ELC NA 2019 presentation will center around these changes

Ugh.  Fixing checkpatch issues.  :)

@ulfalizer Thank you for the review!
Posted v2 with diff here: https://pastebin.com/raw/gbrrK9x9

Addressed comments
Fixed checkpatch and Kconfig issues

@ulfalizer Looks like I need to think about this "choice" between R4 and U2 variants of the modem.  It's breaking Kconfig.

@ulfalizer specifically:
Error: Aborting due to non-whitelisted Kconfig warning 'warning: default on the choice symbol
MODEM_UBLOX_SARA_R4 (defined at boards/arm/particle_boron/Kconfig.defconfig:64,
drivers/modem/Kconfig.ublox-sara-r4:27) will have no effect, as defaults do not affect choice
symbols'. Note: If this warning doesn't point to an actual problem, you can add it to the whitelist
at the top of /home/scottml/fio/zephyr-master/zephyr/scripts/kconfig/kconfig.py.

This is caused by how I'm selecting MODEM_UBLOX_SARA_R4 in the particle_boron Kconfig.defconfig:
if MODEM

config UART_1_NRF_UARTE
	default y

config UART_1_NRF_FLOW_CONTROL
	default y

config MODEM_UBLOX_SARA
	default y

config MODEM_UBLOX_SARA_R4
	default y

config UART_INTERRUPT_DRIVEN
	default y

endif # MODEM

@mike-scott
Might need to give the choice a name and define it in multiple locations.
There's some instructions in the board porting guide (kinda weird location, yeah).

@ulfalizer thank you for the recommendation!  Pushed new version with Kconfig fixes.
Diff from v2: https://pastebin.com/raw/JrNTURX4

@jukkar updated with your recommendations.  Here's a diff from the previous version:
https://pastebin.com/raw/N93ZRD4G

Added [EXPERIMENTAL] to MODEM_CONTEXT config
Removed the "static" from argv/argc vars and cleaned up their handling a bit
dropped modem_context_hexdump() in favor of LOG_HEXDUMP_DBG().  Also had to re-work where the logging was done now that there is literally no pause in execution for logging (I was getting almost all single characters logged).
Fixed poll() return codes for ETIMEDOUT and EAGAIN (don't return an error).
Swapped atoi usage to strtol.  I set this up as a function + macro for readability due to line lengths.  If you don't like how I did that I can change as needed.

* dropped `modem_context_hexdump()` in favor of `LOG_HEXDUMP_DBG()`.

You could keep the call to modem_context_hexdump("RECV", data->read_buf, bytes_read); in order to avoid extra #if defined(CONFIG_MODEM_CONTEXT_VERBOSE_DEBUG) in the code.
So something like this:
static void modem_context_hexdump(x, y z)
{
#if defined(CONFIG_MODEM_CONTEXT_VERBOSE_DEBUG)
		LOG_HEXDUMP_DBG(params);
#endif
}

@ioannisg its morning my time.  I'll have an update ready in 2ish hours + time for CI -- should be ready for today depending on timezones.

Mike,
This is looking great, I still haven't found the offending code that causes the U2 version to encounter a FATAL error.
FATAL: ***** USAGE FAULT *****
FATAL:   Illegal use of the EPSR
FATAL: r0/a1:  0x00000000  r1/a2:  0x2000b1e0  r2/a3:  0x00000001
FATAL: r3/a4:  0x0000be77 r12/ip:  0x00000031 r14/lr:  0x00006bd1
FATAL:  xpsr:  0x60000000
FATAL: Faulting instruction address (r15/pc): 0x00008404
FATAL: >>> ZEPHYR FATAL ERROR 0: CPU exception
FATAL: Current thread: 0x20001320 (unknown)
FATAL: Halting system

The instruction address points to:
PRINT_BOOT_BANNER();
 00008404   LDR          R0, =0x0000FEA2                 ; [0x00008424]
 00008406   BL           printk                          ; 0x00009E6A

The change occurred between 1.14 and  July. I'll keep looking but am at a lose right now.
Billy..

Addressed comments from @tbursztyka @rlubos.  Here's the diff: https://pastebin.com/raw/JcVKSZaB

@tbursztyka I chose not to mark the new functions in modem_cmd_handler.c as "inline".  I think "static" is enough and the compiler will normally perform that optimization if needed.  If you don't agree with that choice: I can update the patch.

Summary of changes:

introduced process_cmd and find_cmd_match functions into modem_cmd_handler.c to break up the loop in cmd_handler_process
out_len in cmd_handler_process renamed to match_len to clarify and use it instead of the original len (to next CR/LF) in several cases.
added a few more comments to the code for clarity
changed modem_iface_uart_isr per @tbursztyka recommendation while keeping original logic intact
dropped net/socket_offload_ops.h include from modem_socket.c
added FIXME comment regarding modem_socket_poll limitations
handle POLLOUT event in modem_socket_poll (exit early as we assume socket is always writable)

RESOLVED -- FATAL error.

FATAL: ***** USAGE FAULT *****
FATAL:   Illegal use of the EPSR
FATAL: r0/a1:  0x00000000  r1/a2:  0x2000b1e0  r2/a3:  0x00000001
FATAL: r3/a4:  0x0000be77 r12/ip:  0x00000031 r14/lr:  0x00006bd1
FATAL:  xpsr:  0x60000000
FATAL: Faulting instruction address (r15/pc): 0x00008404
FATAL: >>> ZEPHYR FATAL ERROR 0: CPU exception
FATAL: Current thread: 0x20001320 (unknown)
FATAL: Halting system

The instruction address points to:
PRINT_BOOT_BANNER();
 00008404   LDR          R0, =0x0000FEA2                 ; [0x00008424]
 00008406   BL           printk                          ; 0x00009E6A
z_sys_device_do_config_level(_SYS_INIT_LEVEL_APPLICATION);
 0000840A   MOVS         R0, #3
 0000840C   BL           z_sys_device_do_config_level    ; 0x00008248
z_init_static_threads();
 00008410   BL           z_init_static_threads           ; 0x000091F0
main();
 00008414   BL           main                            ; 0x00000470
}
 00008418   LDR          R2, =_main_thread_s             ; [0x00008428] =0x20001320
 0000841A   LDRB         R3, [R2, #0xC]
 0000841C   BIC          R3, R3, #1
 00008420   STRB         R3, [R2, #0xC]
init.c , Line 304
 00008422   POP          {R3, PC}```

The change occurred between 1.14 and  July. I'll keep looking but am at a lose right now.

Billy..

Combination of configuration issue and a suspect power supply.
This combination causes hard fault;
CONFIG_HW_STACK_PROTECTION=y
CONFIG_MODEM_SHELL=y
Even not having CONFIG_MODEM_SHELL set will cause failures.

@WilliamGFish Interesting!  What sample are you testing?

@mike-scott  Its a BLE Mesh with MQTT to Blue-mix via Particle
The hardware protection settings was due to multiple issues when stressing the Mesh.

@ioannisg I know we discussed merging this on Slack, but capturing here for historical reasons.  I feel we can probably merge this as today is the cut-off for feature freeze and the general approach of this patchset was approved..  However, I'd still like to get @tbursztyka and @rlubos to look at my final changes regarding their comments.  If there are other changes needed, I will do a follow-up bugfix patch.

Hi, I just want reinitialize PPP and Offloading both when I hard switch off (power pin) the modem from the main application. Right now I just reinitialize gsm_init and modem_init when I reset from the main application. Any idea towards solution to this problem.


Refresh generators docstrings & deprecate random generators' cls parameter

Do you also want to just do https://github.com/dwavesystems/dimod/issues/1108 as part of this PR?

Do you also want to just do #1108 as part of this PR?

Sure.

Commit https://github.com/dwavesystems/dimod/pull/1109/commits/f92b921391c5063e1c981829ae638691c99061fc closes https://github.com/dwavesystems/dimod/issues/1108


Bring in latest updates from V3

Checklist

[ ] You added tests to cover the change
[ ] mvn clean install build and test completes
[ ] You changed or added to the documentation

@johnoliver one test failure:
[INFO]
Error:  Failures:
Error:    JsonSerializationTest.isPrettyPrinted:34 Expected value to be true.


"Unexpected reserved word"

Following the instructions and got this error when trying to start the proxy:
file:///root/.npm/_npx/cf6c8ea642fc233a/node_modules/socratex/main.mjs:31
await utilitas.locate(utilitas.__(import.meta.url, 'package.json')); // keep 1st
^^^^^

SyntaxError: Unexpected reserved word
    at Loader.moduleStrategy (internal/modules/esm/translators.js:133:18)
    at async link (internal/modules/esm/module_job.js:42:21)

What in your nodejs version? And as I mention, you can not run the program via npx.

Ah it was the nodejs version, my machine turned out to have a very old version (12) and upgrading solved the problem.
Thank you for making this awesome tool!

🍻