TF2.0: Translation model: Error when restoring the saved model: Unresolved object in checkpoint (root).optimizer.iter: attributes

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): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): MacOs Mojave 10.14.5
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: NA
TensorFlow installed from (source or binary):
TensorFlow version (use command below):' 2.0.0-beta1'
Python version: 3.7
Bazel version (if compiling from source): NA
GCC/Compiler version (if compiling from source): NA
CUDA/cuDNN version: NA
GPU model and memory: NA

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with: 1. TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)" 2. TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
Describe the current behavior
I am trying to restore the checkpoints and predict on different sentences NMT Attention Model. While restoring the checkpoints and predicting, I am getting gibberish results with warning below:
Unresolved object in checkpoint (root).optimizer.iter: attributes {   name: "VARIABLE_VALUE"   full_name: "Adam/iter"   checkpoint_key: "optimizer/iter/.ATTRIBUTES/VARIABLE_VALUE" }
Below is the additional warnings that I am getting and the results:
WARNING: Logging before flag parsing goes to stderr.
 See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/alpha/guide/checkpoints#loading_mechanics for details.
Input: <start> hola <end>
Predicted translation: ? attack now relax hello

The warning at the very end says:
'A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used...' what does it mean?
Describe the expected behavior
Checkpoints should be restored properly
Code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate the problem.
checkpoint_dir = './training_checkpoints'
checkpoint_prefix = os.path.join(checkpoint_dir, "ckpt")
checkpoint = tf.train.Checkpoint(optimizer=optimizer,
                                 encoder=encoder,
                                 decoder=decoder)
checkpoint.restore(tf.train.latest_checkpoint(checkpoint_dir))

Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.

Please take a look at the similar issue and let me know if it helps!!. Thanks!

@gowthamkpr
I had upgraded to TF2.0 and tested it, but still has the same error.
From https://github.com/tensorflow/tensorflow/issues/27937, I tried following the steps:

Saved the checkpoint
Re-initialized the encoder and decoder
Reloaded/restored the checkpoints to predict
The results are gibberish

Is it possible that the tokenizer is assigning random ID s to tokens when reloading the checkpoint?

Can you please share a github gist of this issue (preferably) in colab so that I can expedite the process. Thanks!

@nlpds Were you able to slove the issue? or else please provide a gist of minimum reproducable code. Thanks!

Closing this issue as it has been inactive for more than 15 days. Please add additional comments and we can open this issue again. Thanks!

Hopefully the simplest example that can reproduce the issue
# Tested with TF 2.0.0, Linux Ubuntu 18.04, Python 3.7.3, TF installed from binary
import tensorflow as tf

# create model and optimizer and checkpoint
model = tf.keras.models.Sequential([tf.keras.layers.Dense(5)])
opt = tf.keras.optimizers.Adam(0.1)
checkpoint_dir = 'ckpts'
ckpt = tf.train.Checkpoint(opt=opt, model=model)
manager = tf.train.CheckpointManager(ckpt, checkpoint_dir, max_to_keep=3)

# train with one example
example_x = tf.constant([[1.]])
example_y = tf.constant([[1.,2.,3.,4.,5.]])
model.compile(loss="mean_squared_error", optimizer=opt)
model.fit(example_x, example_y, epochs=1)

save_path = manager.save()
print("Saved checkpoint: {}".format(save_path))

# ========== restart from scratch but restore from checkpoint
model = tf.keras.models.Sequential([tf.keras.layers.Dense(5)])
opt = tf.keras.optimizers.Adam(0.1)

ckpt = tf.train.Checkpoint(opt=opt, model=model)
manager = tf.train.CheckpointManager(ckpt, checkpoint_dir, max_to_keep=3)
print('restoring...')
status = ckpt.restore(manager.latest_checkpoint)
# assert_consumed() fails with:
    # AssertionError: Unresolved object in checkpoint (root).opt.iter: attributes {
    #   name: "VARIABLE_VALUE"
    #   full_name: "Adam/iter"
    #   checkpoint_key: "opt/iter/.ATTRIBUTES/VARIABLE_VALUE"
status.assert_consumed()

I got the same error message and warning message in tensorflow-gpu 2.0
checkpoint = tf.train.Checkpoint(model=model, optimizer=optimizer)
checkpoint.save(checkpoint_prefix)

The optimizer is Adam
  lr_scheduler = tf.keras.optimizers.schedules.ExponentialDecay(
    initial_learning_rate=0.001,
    decay_steps=1000000,
    decay_rate=math.exp(-1),
    staircase=False)
  optimizer = tf.keras.optimizers.Adam(learning_rate=lr_scheduler)

The model is a subclassed tf.keras.Model

Same issue with Adam when asserting the load was complete with status.assert_consumed()

Same issue here, unable to properly load checkpoints without calling a tf.function function before loading the checkpoint.

I have a similar issue, and couldn't resolve it.
Error log:
Epoch 00004: saving model to checkpoints/yolov3_train_4.tf
9/9 [==============================] - 112s 12s/step - loss: 337.0419 - yolo_output_0_loss: 1.6753 - yolo_output_1_loss: 27.6452 - yolo_output_2_loss: 296.4273- val_loss: 1033934.1250 - val_yolo_output_0_loss: 1.5464 - val_yolo_output_1_loss: 17083.2285 - val_yolo_output_2_loss: 1016838.5000
Epoch 00004: early stopping
WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-8
W0424 06:25:47.220819<PHONE_NUMBER>81248 util.py:144] Unresolved object in checkpoint: (root).layer-8
WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-9
W0424 06:25:47.221170<PHONE_NUMBER>81248 util.py:144] Unresolved object in checkpoint: (root).layer-9
WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-10
W0424 06:25:47.221260<PHONE_NUMBER>81248 util.py:144] Unresolved object in checkpoint: (root).layer-10
WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-11
W0424 06:25:47.221323<PHONE_NUMBER>81248 util.py:144] Unresolved object in checkpoint: (root).layer-11
WARNING:tensorflow:A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details.
W0424 06:25:47.221471<PHONE_NUMBER>81248 util.py:152] A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details.

I have the same issue, can this please be reopened?

I have also the same issue, could you please reopen this issue?

I am having this issue as well.

The error even shows up in the guide
https://www.tensorflow.org/tutorials/keras/save_and_load
Train on 1000 samples
Epoch 1/5
WARNING:tensorflow:Unresolved object in checkpoint: (root).optimizer.iter
WARNING:tensorflow:Unresolved object in checkpoint: (root).optimizer.beta_1
WARNING:tensorflow:Unresolved object in checkpoint: (root).optimizer.beta_2
WARNING:tensorflow:Unresolved object in checkpoint: (root).optimizer.decay
WARNING:tensorflow:Unresolved object in checkpoint: (root).optimizer.learning_rate
WARNING:tensorflow:A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details.
WARNING:tensorflow:Unresolved object in checkpoint: (root).optimizer.iter

Same problem, please reopen this issue

I also encountered this issue. However, most of my warnings were for training parameters like optimizers state. When looking the issue up, I came across an answer that said this occurs because I was loading weights from a checkpoint and then only using it for inference/prediction and not for training. Therefore the training parameters (like optimizer state) in the checkpoint were being unused and hence the warnings.
It would be great if someone could let me know how accurate an explanation this is. (Have attached the link below if someone wants to check the answer out)
https://stackoverflow.com/a/59582698

Finally found out a cause and solution for this problem.
Basically, it's because Adam is initializing its attributes like beta_1, beta_2, etc, as a Python float object, which are not tracked by tensorflow. By converting them into tf.Variable, we can let them tracked by tensorflow and thus we can load weights without issues.
https://gist.github.com/yoshihikoueno/4ff0694339f88d579bb3d9b07e609122

I also found that many people won't even notice this issue because they are not using assert_consumed method, which will postpone the checks. The conversion into tf.Variable will take place once the optimizer actually gets called, then the weights (beta_1 for example) will be loaded silently.

 In my case, I had some components left unbuilt within my build method and those were appearing in warnings like above.

This is my take:
The issue is that the new model object does not have the variable iter which is created when the optimiser is called on training samples. If you add these lines after you created the new model:
model.compile(loss="mean_squared_error", optimizer=opt)
model.fit(example_x, example_y, epochs=1)

Then the issue is resolved.
Or by using status.assert_existing_objects_matched(), you can avoid the error as well, as it only ensures variables in the new model gets restored.

This method resolves the issue, but I think TF should resolve such issue internally... I believe this issue should be reopened

I have a similar issue, and couldn't resolve it.
Error log:
Epoch 00004: saving model to checkpoints/yolov3_train_4.tf
9/9 [==============================] - 112s 12s/step - loss: 337.0419 - yolo_output_0_loss: 1.6753 - yolo_output_1_loss: 27.6452 - yolo_output_2_loss: 296.4273- val_loss: 1033934.1250 - val_yolo_output_0_loss: 1.5464 - val_yolo_output_1_loss: 17083.2285 - val_yolo_output_2_loss: 1016838.5000
Epoch 00004: early stopping
WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-8
W0424 06:25:47.220819<PHONE_NUMBER>81248 util.py:144] Unresolved object in checkpoint: (root).layer-8
WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-9
W0424 06:25:47.221170<PHONE_NUMBER>81248 util.py:144] Unresolved object in checkpoint: (root).layer-9
WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-10
W0424 06:25:47.221260<PHONE_NUMBER>81248 util.py:144] Unresolved object in checkpoint: (root).layer-10
WARNING:tensorflow:Unresolved object in checkpoint: (root).layer-11
W0424 06:25:47.221323<PHONE_NUMBER>81248 util.py:144] Unresolved object in checkpoint: (root).layer-11
WARNING:tensorflow:A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details.
W0424 06:25:47.221471<PHONE_NUMBER>81248 util.py:152] A checkpoint was restored (e.g. tf.train.Checkpoint.restore or tf.keras.Model.load_weights) but not all checkpointed values were used. See above for specific issues. Use expect_partial() on the load status object, e.g. tf.train.Checkpoint.restore(...).expect_partial(), to silence these warnings, or use assert_consumed() to make the check explicit. See https://www.tensorflow.org/guide/checkpoint#loading_mechanics for details.

anyone could solve it?
i'm using efficientDet

Hi,
I am trying to use centernet for one my projects. Current I was just testing it out on the normal RBC dataset, but I am getting checkpoint related error when using the CentreNet Model. I am attaching my config and log file
Config.txt
Error_CenterNet.txt

Same problem in TF 2.x GPU. I was shocked to see my model exporting script failing just because I removed unnecessary stuffs from the training script. Instantiating a tf.data.Dataset which is not used somehow fixes the problem.

hey guys, i met the same problem, and i found it is because what i fed is not the correct format(no pics in test), hope this may help

@xiankgx Can you copy paste the config you are using and point to which checkpoint you are trying to use it with ?

same probleme here when trying to import bert converted checkpoint to tf2.x

In some cases, I found that I needed to feed in input into custom tensorflow models before loading the weights/checkpoints. That's because some model weight shapes do not get properly configured before any input is fed into the network.

Using model.save_weights and model.load_weights worked for me.

I was able to solve it by deleting the last checkpoint, it was probably corrupted.
So in my case I deleted checkpoint ckpt-46.index  and ckpt-46.data-00000-of-00001
Then the model started training from
ckpt-45.index  and ckpt-45.data-00000-of-00001
with no issues

Finally found out a cause and solution for this problem. Basically, it's because Adam is initializing its attributes like beta_1, beta_2, etc, as a Python float object, which are not tracked by tensorflow. By converting them into tf.Variable, we can let them tracked by tensorflow and thus we can load weights without issues.
https://gist.github.com/yoshihikoueno/4ff0694339f88d579bb3d9b07e609122

This workaround works however, after an error is raised when I try to save the model model.save('saved_model/my_model')
Specifically a serialization problem because - I guess - of the tf.variable.
TypeError: Unable to serialize <tf.Variable 'Variable:0' shape=() dtype=float32, numpy=1e-07> to JSON. Unrecognized type <class 'tensorflow.python.ops.resource_variable_ops.ResourceVariable'>.


autocomplet checkbox is never check

check autocomplet in config panel.
reload
checkbox is not selected

fixed in ce354b1002ddd626980cab69d10ffa8e645b51dd


Improved Validating Setup instructions

Updated Validating Setup instructions to be clearer and more consistent.

Thank you for your contribution


Generation problem

Hi @prius, tried to generate and got this error:
test ! "x/Users/user/Downloads/leetcode-anki/leetcode-anki" = "x" || (echo "Need to run inside venv" && exit 1)
pip install -r requirements.txt
Requirement already satisfied: python-leetcode in ./leetcode-anki/lib/python3.9/site-packages (from -r requirements.txt (line 1)) (1.0.6)
Requirement already satisfied: diskcache in ./leetcode-anki/lib/python3.9/site-packages (from -r requirements.txt (line 2)) (5.2.1)
Requirement already satisfied: genanki in ./leetcode-anki/lib/python3.9/site-packages (from -r requirements.txt (line 3)) (0.11.0)
Requirement already satisfied: tqdm in ./leetcode-anki/lib/python3.9/site-packages (from -r requirements.txt (line 4)) (4.62.3)
Requirement already satisfied: certifi in ./leetcode-anki/lib/python3.9/site-packages (from python-leetcode->-r requirements.txt (line 1)) (2021.10.8)
Requirement already satisfied: urllib3>=1.15 in ./leetcode-anki/lib/python3.9/site-packages (from python-leetcode->-r requirements.txt (line 1)) (1.26.7)
Requirement already satisfied: python-dateutil in ./leetcode-anki/lib/python3.9/site-packages (from python-leetcode->-r requirements.txt (line 1)) (2.8.2)
Requirement already satisfied: six>=1.10 in ./leetcode-anki/lib/python3.9/site-packages (from python-leetcode->-r requirements.txt (line 1)) (1.16.0)
Requirement already satisfied: cached-property in ./leetcode-anki/lib/python3.9/site-packages (from genanki->-r requirements.txt (line 3)) (1.5.2)
Requirement already satisfied: pyyaml in ./leetcode-anki/lib/python3.9/site-packages (from genanki->-r requirements.txt (line 3)) (6.0)
Requirement already satisfied: frozendict in ./leetcode-anki/lib/python3.9/site-packages (from genanki->-r requirements.txt (line 3)) (2.0.6)
Requirement already satisfied: pystache in ./leetcode-anki/lib/python3.9/site-packages (from genanki->-r requirements.txt (line 3)) (0.5.0)
python3 generate.py
Traceback (most recent call last):
File "/Users/user/Downloads/leetcode-anki/generate.py", line 14, in
import genanki  # type: ignore
File "/Users/user/Downloads/leetcode-anki/leetcode-anki/lib/python3.9/site-packages/genanki/init.py", line 6, in
from .model import Model
File "/Users/user/Downloads/leetcode-anki/leetcode-anki/lib/python3.9/site-packages/genanki/model.py", line 3, in
import pystache
File "/Users/user/Downloads/leetcode-anki/leetcode-anki/lib/python3.9/site-packages/pystache/init.py", line 2, in
from init import *
ModuleNotFoundError: No module named 'init'
make: *** [generate] Error 1

Hi @malish8632! Sorry, I haven't tested it for Windows. I don't have a working windows system and I don't know if I will. You can debug it yourself and submit a PR if you wish, but I can't guarantee you to fix it myself, sorry.
It looks like the problem is actually in pystash module. I'd recommend to import it directly and see if it still fails. In this case I'd report a bug to https://github.com/defunkt/pystache

Happy to help. I've created the PR 👍🏻


Finish the open source release

[ ] FileCheck tests
[ ] The boilerplate generator
[ ] Documentation

Update: Some internal cleanups are required to re-organize the tests before releasing. Work in progress...


Update README.md

Codecov Report

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

@@           Coverage Diff           @@
##           master      #23   +/-   ##
=======================================
  Coverage   97.53%   97.53%
=======================================
  Files           6        6
  Lines          81       81
  Branches       12       12
=======================================
  Hits           79       79
  Misses          2        2

Continue to review full report at Codecov.

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


[UXSite] Fix vote demo code samples

Q
A

Bug fix?
no

New feature?
no

Tickets
N/A

License
MIT

Fixes wrong code excerpts on https://ux.symfony.com/live-component/demos/voting

Thank you @ogizanagi.


Build your first Outlook Add-in

Major issues when running the npm start phase.
Manifest package saved to C:\Users\donal\AppData\Local\Temp\manifest.zip
running: npx @microsoft/teamsapp-cli install --file-path "C:\Users\donal\AppData\Local\Temp\manifest.zip"
This command is in preview.
Log in to your Microsoft 365 account - opening default web browser at https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=7ea7c24c-b1f6-4a20-9d11-9ae12e9e7ac0&scope=https%3A%2F%2Ftitles.prod.mos.microsoft.com%2F.default openid profile offline_access&redirect_uri=http%3A%2F%2Flocalhost%3A57767&client-request-id=09660081-2524-4af4-81f7-f29d9e3e5d4d&response_mode=query&response_type=code&x-client-SKU=msal.js.node&x-client-VER=1.17.3&x-client-OS=win32&x-client-CPU=x64&client_info=1&code_challenge=yHwU6knWG9uwfBUFmULSNxGnIrxT04UsZYz0qKnduIA&code_challenge_method=S256&prompt=select_account#
Uploading package ...
--Error sideloading!--
Error: Error: Command failed: npx @microsoft/teamsapp-cli install --file-path "C:\Users\donal\AppData\Local\Temp\manifest.zip"
(×) Error: [Login] Failed to retrieve token silently. If you encounter this problem multiple times, you can delete C:\Users\donal\.fx\account and try again. invalid_scope: 70011 - [2024-05-17 06:03:16Z]: AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope 'https://dev.teams.microsoft.com/AppDefinitions.ReadWrite openid profile offline_access' does not exist. Trace ID: d39000b8-fbbb-47b4-a36c-9c163796dd00 Correlation ID: 1c17b8da-2ce1-4178-a32c-64301719d912 Timestamp: 2024-05-17 06:03:16Z - Correlation ID: 1c17b8da-2ce1-4178-a32c-64301719d912 - Trace ID: d39000b8-fbbb-47b4-a36c-9c163796dd00
(×) Error: Sideloading failed.
(×) Error: {"statusCode":401,"message":"Unauthorized"}
(×) Error: m365.InternalError: {"message":"Request failed with status code 401","detail":"{"statusCode":401,"message":"Unauthorized"}","tracingId":""}
STDERR:
(×) Error: [Login] Failed to retrieve token silently. If you encounter this problem multiple times, you can delete C:\Users\donal\.fx\account and try again. invalid_scope: 70011 - [2024-05-17 06:03:16Z]: AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope 'https://dev.teams.microsoft.com/AppDefinitions.ReadWrite openid profile offline_access' does not exist. Trace ID: d39000b8-fbbb-47b4-a36c-9c163796dd00 Correlation ID: 1c17b8da-2ce1-4178-a32c-64301719d912 Timestamp: 2024-05-17 06:03:16Z - Correlation ID: 1c17b8da-2ce1-4178-a32c-64301719d912 - Trace ID: d39000b8-fbbb-47b4-a36c-9c163796dd00
(×) Error: Sideloading failed.
(×) Error: {"statusCode":401,"message":"Unauthorized"}
(×) Error: m365.InternalError: {"message":"Request failed with status code 401","detail":"{"statusCode":401,"message":"Unauthorized"}","tracingId":""}
Error: Unable to start debugging.
Error: Unable to sideload the Office Add-in.
Error: Command failed: npx @microsoft/teamsapp-cli install --file-path "C:\Users\donal\AppData\Local\Temp\manifest.zip"
(×) Error: [Login] Failed to retrieve token silently. If you encounter this problem multiple times, you can delete C:\Users\donal\.fx\account and try again. invalid_scope: 70011 - [2024-05-17 06:03:16Z]: AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope 'https://dev.teams.microsoft.com/AppDefinitions.ReadWrite openid profile offline_access' does not exist. Trace ID: d39000b8-fbbb-47b4-a36c-9c163796dd00 Correlation ID: 1c17b8da-2ce1-4178-a32c-64301719d912 Timestamp: 2024-05-17 06:03:16Z - Correlation ID: 1c17b8da-2ce1-4178-a32c-64301719d912 - Trace ID: d39000b8-fbbb-47b4-a36c-9c163796dd00
(×) Error: Sideloading failed.
(×) Error: {"statusCode":401,"message":"Unauthorized"}
(×) Error: m365.InternalError: {"message":"Request failed with status code 401","detail":"{"statusCode":401,"message":"Unauthorized"}","tracingId":""}

Hi @donaldlscottiii,
Thanks for reporting this. To clarify, are you following this Outlook quickstart and using the "unified manifest" option?
@Rick-Kirkham, could you please investigate.


Check tile repository initialization

https://forums.luxcorerender.org/viewtopic.php?f=4&t=12

The source of the problem is in having a single small film for each tile (instead of one single big film). So the cost of allocating a tile, at the startup, is not trivial.
Once we had one big film but it was changed to be able to render the same tile multiple times (for instance, when you have only one tile to render, LuxCore still uses all CPU cores available instead of running with a single thread). So it is a trade-off of between memory/startup costs and running speed.
I have alleviated the problem by supporting multi-threading in the initialization. The initialization of your scene, now takes 3.15 seconds:
[code]
[LuxCore][0.726] Configuring 12 CPU render threads
[LuxCore][3.880] Tiles initialization time: 3.15 secs
[LuxCore][4.008] Film OpenCL image pipeline
[/code]
instead of 21.13 seconds:
[code]
[LuxCore][0.715] Configuring 12 CPU render threads
<The old code miss the "Tiles initialization time" message>
[LuxCore][21.840] Film OpenCL image pipeline
[/code]
It is now about 6 times as expected on six core + hyper-threading.

That seems good enough for now.
I can also set the soft_min of the tile size property in BlendLuxCore to something higher than 8 so users don't stumble upon this problem too often.

By the way, about your commit:
	#pragma omp parallel for
	for (
			// Visual C++ 2013 supports only OpenMP 2.5
#if _OPENMP >= 200805
			unsigned
#endif
			int i = 0; i < size; ++i)

Couldn't you replace that with the following code?
#if _OPENMP >= 200805
	typedef unsigned int itertype;
#else
	// Visual C++ 2013 supports only OpenMP 2.5
	typedef int itertype;
#endif

for (itertype i = 0; i < size; ++i) {

(looks more readable to me)

It may be also better to define itertype in a single place but the code is there only as workaround for a VS2013 limitation: the support  only for 2008 (!) OpenMP.
I assume it can be removed as soon as we move to a newer OpenMP version.


CLN change default data dir to ~/data/libsvm, make it settable by user

Also remove usage of os to only use the pathlib API which is the modern way :)
closes #4

Codecov Report

Merging #5 into master will decrease coverage by 1.39%.
The diff coverage is 92.30%.

@@            Coverage Diff             @@
##           master       #5      +/-   ##
==========================================
- Coverage   91.39%   90.00%   -1.40%
==========================================
  Files           3        3
  Lines          93       90       -3
  Branches       14       13       -1
==========================================
- Hits           85       81       -4
  Misses          5        5
- Partials        3        4       +1

Impacted Files
Coverage Δ

libsvmdata/datasets.py
87.14% <92.30%> (-1.90%)
:arrow_down:

Continue to review full report at Codecov.

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

@agramfort have you seen that we changed the directory to data/libsvm? (your approve is concurrent with this change).
@mathurinm  agrees with me on this one so I think it is fine but I don't want you to feel cheated :)

Thanks a lot for the discussion and implementation

I kinda like the newline after each case

Fine!
Thx for the discussion.


[NNBD] No error in Analyzer when non-nullable function may return null

The following code produces no issues in Analyzer but a compile error in CFE
import "dart:async";
main() {
  Future<int> f = new Future.value(42);
  f.then((_) {
    bool b = true;
    if (b) {
      return 42;
    }
  });
}

CFE output is
Error: A non-null value must be returned since the return type 'int' doesn't allow null.
f.then((_) {
       ^

There must be a compile error in Analyzer as well
Dart VM version: 2.9.0-20.0.dev (dev) (Wed Jul 1 11:29:16 2020 +0200) on "windows_x64"

The result of f.then(...) does seem to be Future<int> in the analyzer too, so it's not because it deduces that the function return type is int?.

I believe this is concerned with function literal return type inference: If the invocation of then gets an explicit type argument <int> then the CFE and the analyzer agree that it is an error, because the function literal may return null. With type argument <int?>, only the CFE reports an error (and it's the same error), which would be consistent with the following difference:

The CFE computes int as the inferred return type of the function literal, and
the analyzer computes int?

The rules here for the computation of the 'actual returned type' do not take the normal completion (that is: we reach the end of the function) into account, so I believe the CFE is correct and the analyzer takes an extra step which is not specified (in adding Null to the actual returned type).
I also think it would make sense to do as the analyzer says, in which case we should add an extra case to the rules about computing the actual return type.

Second thought: We should stick to the current rules. ;-)
The local function f is a compile time error:
void main() {
  var b = true;
  f() {
    if (b) return 1;
  }
  g() {
    if (b) return 1;
    if (!b) return null;
  }
}

The point is that we do allow an explicit return null to make the inferred return type nullable, but reaching the end of the function is not given the same powers: That situation is just noted (so we know that the semantics of the function allows for returning null), and the return type is inferred (ignoring that we may reach the end), and then it's an error to reach the end if and because the inferred return type is non-nullable.
The current rules are giving the same treatment to the function literal as we're giving local functions (and no other functions are subject to return type inference based on the body). So the CFE behavior is the consistent behavior.
Cf. https://github.com/dart-lang/language/issues/1063.

It seems that this is a moving target, as discussion is continues in https://github.com/dart-lang/language/issues/1063.
FWIW, I like the idea of making returning Null explicit, so updating the spec for inference rules and analyzer.

@scheglov, @sgrekhov, with dart-lang/language#1063 closed I believe we can conclude that the analyzer works as intended: The normal completion gives rise to a nullable inferred return type for the function literal, and there is no error when the return statement is checked. So I'll close this.


Wrong types for NuxtConfigurationBuild.typescript

Version
v2.5.1
Reproduction link
https://codesandbox.io/s/91z3jwqyxw
Steps to reproduce
Run the dev or build commands and check the output.
What is expected ?
The NuxtConfigurationBuild.typescript typings should be defined.
What is actually happening?
The NuxtConfigurationBuild.typescript typings are missing, so the nuxt.config.ts can't compile if we declare the configuration object's type.
Additional comments?
Here's a workaround:
// import NuxtConfiguration from "@nuxt/config";

// const config: NuxtConfiguration = {
const config = {
  mode: "spa",
  plugins: ["~/plugins/hello"],
  build: {
    // useForkTsChecker: false,
    typescript: {
      typeCheck: false,
    },
  },
};

export default config;

This bug report is available on Nuxt community (#c8952)

This should be fixed by #5326 in v2.5.2.

Oh thanks! I tried to look for this issue before but not sure what I did 😅


Refactor/Fix framework tests (config)

Use absolute paths -> tests binary doesn't depend on working directory
Add test_directory_setups: Creates for each test setup another directory to allow well-defined environments
Updates usage of Everest::Config constructor
Add setting options in config.yaml files to allow 'custom directories'
Add logging config

Can be build with
cmake -DBUILD_TESTING=ON ..

make tests

run with:
cd build/
./tests/tests


Output grammar as ES module.

The fact that the output is UMD wrapped breaks native imports used inside the grammar as they are not in top-level scope.
Is adding an ES preprocessor an option? Something like this
generate.es = function (parser, exportName) {
    var output = "// Generated automatically by nearley, version " + parser.version + "\n";
    output +=  "// http://github.com/Hardmath123/nearley\n";
    output += "function id(x) { return x[0]; }\n";
    output += parser.body.join('\n');
    output += "var grammar = {\n";
    output += "    Lexer: " + parser.config.lexer + ",\n";
    output += "    ParserRules: " +
        serializeRules(parser.rules, generate.javascript.builtinPostprocessors)
        + "\n";
    output += "  , ParserStart: " + JSON.stringify(parser.start) + "\n";
    output += "}\n";
    output += "export { grammar };\n";
    return output;
};

Hi! Yes, an option to output as a module makes sense to me.
Unfortunately, I don’t think Node supports modules yet—�which would make this hard to test!
Would you like to send a PR? The relevant code is in generate.js, and the relevant tests are in nearleyc.test.js. :)

Sure thing, I'll gladly do it!
Is naming the preprocessors es and ecmascript ok? It might be confused with the default javascript.


BlueStacks.BlueStacksX version <IP_ADDRESS>

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

found out why:

it was not Nullsoft installation in the first place


rebase to latest vpp

Changes include:

rebasing to VPP commit e95b246c7b87bf2a1d51d2061c72a9824a6ff047
updating VPP dependencies
updating goapis

We should probably close this in favor of #423 (copied your changes to vpp-manager/images/ubuntu-build/Dockerfile that were missing in the other PR)

Closing in favor of https://github.com/projectcalico/vpp-dataplane/pull/423.


Skip fuzzer test for functions that need variable bindings

Decimal arithmetic functions like decimal Add, Subtract etc. require not only signature binding but also variable bindings to create DECIMAL type with precision and scale.
Example:
DECIMAL(x,y) plus(DECIMAL(aR, aS), DECIMAL(bR, bS));
In the above function signature the variables aR, aS, bR and bS require binding with constants. This is essential to resolve the return type. Today, fuzzer test framework has no capability to assign suitable constants to these variables and hence will fail Signature::tryResolveType call.
This change will skip function signatures that have a non-empty variables member in the Signature.

Thanks!


Support Swift 4

Will you be providing support for Swift 4?

Thanks for asking, I'll take a look today.

It supports Swift 4 out of box. @vaibhav-varshaaweblabs I have updated the swift example to swift 4. Let me know if you have more questions.


Rework use of telemetry handler

What does this PR do?

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/trigger-ci --variable RUN_ALL_BUILDS=true --variable RUN_KITCHEN_TESTS=true --variable RUN_E2E_TESTS=on --variable RUN_UNIT_TESTS=on --variable RUN_KMT_TESTS=on

/merge


[Bug Report] [NavMenu] select event only triggered when you click menu item?

Element UI version
2.4.5
OS/Browsers version
macOS 10.13.5/Chrome 68
Vue version
2.5.17
Reproduction Link
https://jsfiddle.net/no-need/
Steps to reproduce
always
What is Expected?
When default-active changed, "select" callback should be invoked.
What is actually happening?
"select" callback doesn't get invoked.

https://github.com/ElemeFE/element/blob/7f2510f0f104fac7f064aa12acc622b0f8d2a719/packages/menu/src/menu-item.vue#L96-L100
https://github.com/ElemeFE/element/blob/7f2510f0f104fac7f064aa12acc622b0f8d2a719/packages/menu/src/menu.vue#L303
https://github.com/ElemeFE/element/blob/7f2510f0f104fac7f064aa12acc622b0f8d2a719/packages/menu/src/menu.vue#L251-L267
I checked the source code, and it looks like select only triggered when menu item clicked. Maybe it's better to trigger select when activeIndex changed.

I think it's not a bug. Supposing there's one input in a page as follows.
<input :value="value" type="text" @change="handleChange" />

If the binding value changes, handleChange isn't called.

In fact, It's still an acceptable choice that if handleChange get called in your situation.


Suggestion to add changeAddress function

Since the installment periods (including cliff) for xDai Ecosystem Fund and xDai Foundation Reward are relatively long (1-3 years), I'd propose to add changeAddress function which would allow changing the address of xDai Ecosystem Fund or xDai Foundation Reward if needed.
That would be useful for a case of finding some vulnerability in a multisig wallet which would be a cause for changing multisig address to another wallet.
event PoolAddressChanged(uint8 indexed pool, address oldAddress, address newAddress);

function changeAddress(uint8 _pool, address _newAddress) external initialized {
    require(_pool == ECOSYSTEM_FUND || _pool == FOUNDATION_REWARD, "wrong pool");
    require(msg.sender == poolAddress[_pool]);
    emit PoolAddressChanged(_pool, poolAddress[_pool], _newAddress);
    poolAddress[_pool] = _newAddress;
}

@igorbarinov do you agree we should have this in the Distribution contract?

I agree.

Added in https://github.com/poanetwork/dpos-token/commit/f541939f8b8cedfdc59a1ed4d272140bc7e234e9


Can not accquire interactive figure of group-level analysis report

What happened?
Hi everyone
I run the mriqc participant level first and then run group level. However, the group report does not present the interactive figure for me. It's weird.
The group_bold.html is here:

And the whole output of group analysis:

Best,
Yunhong
What command did you use?
singularity run \
        --cleanenv \
        -B ${BIDS_DIR}:/data:ro \
        -B ${OUTPUT_DIR}:/output \
        -B ${WORK_DIR}:/work \
    ${MRIQC} /data /output \
    group \
    -w /work \
    -vv \
    --n_cpus 8 \
    --mem 16000 \
    --write-graph \
    --fd_thres 0.2 \
    --float32 \

What version of the software are you running?
24.1.0dev
How are you running this software?
Singularity
Is your data BIDS valid?
Yes
Are you reusing any previously computed results?
No
Please copy and paste any relevant log output.
240411-07:03:31,929 cli IMPORTANT:
         ------------------------------------------------------------------
         Running MRIQC version 24.1.0.dev0+g08aa4550.d20240405
         ------------------------------------------------------------------
           * BIDS dataset path: /data.
           * Output folder: /output.
           * Analysis levels: ['group'].
         ------------------------------------------------------------------

240411-07:03:36,976 cli INFO:
         Group level started...
240411-07:03:44,594 cli INFO:
         Generated summary TSV table for T1w data: /output/group_T1w.tsv
240411-07:03:44,795 cli INFO:
         Group-T1w report generated: /output/group_T1w.html
240411-07:03:45,292 cli INFO:
         Generated summary TSV table for bold data: /output/group_bold.tsv
240411-07:03:45,381 cli INFO:
         Group-bold report generated: /output/group_bold.html
240411-07:03:45,591 cli INFO:
         Group level finished successfully.
240411-07:03:45,592 cli INFO:
         Generating BIDS derivatives metadata.
240411-07:03:45,594 cli INFO:
         MRIQC completed.
--------execution success--------

Additional information / screenshots
No response

Ha, I was about to open an issue for this thinking it only affects DWI, but it does clearly affect bold.
We will address this asap. Thanks for reporting :)

Thanks for your help @oesteban
I'll try the latest version 24.0.0rc6 of mriqc.
Cheers,
Yunhong

Hi @oesteban
I worked with nipreps/mriqc:24.0.0rc6, but the interactive firure of group-level report for func and anat still lacked.
Best,
Yunhong

@WangYunHong98 that's because the fix has not been released yet. It will be part of rc7

@oesteban Thanks for your work for mriqc.


Lost all Crelly sliders on DIVI Builder website

All the Crelly sliders disappeared on my DIVI Builder website when I updated the Crelly Slider to the current version.
The Crelly Slider plugin is still there and so are the sliders that I made, but the short code stopped working on the web pages.

Can you give us a sample page when you included your sliders with shortcodes, so we can see?
Best regards!

I'm extremely sorry. I didn't get notified for this post and I've found it just now... Can I still be helpful?

No, I solved the problem myself, weeks ago.
Disappointed with the support delay.
=Steve=
From: Fabio Rinaldi<EMAIL_ADDRESS>Sent: Saturday, April 15, 2017 9:13 AM
To: fabiorino/crelly-slider<EMAIL_ADDRESS>Cc: sravner<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [fabiorino/crelly-slider] Lost all Crelly sliders on DIVI Builder website (#40)
I'm extremely sorry. I didn't get notified for this post and I've found it just now... Can I still be helpful?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/fabiorino/crelly-slider/issues/40#issuecomment-294292456 , or mute the thread https://github.com/notifications/unsubscribe-auth/AHYNCvM205KYivMeTYFRP8b0dz8hrG5Uks5rwMJcgaJpZM4Mj9gG .  https://github.com/notifications/beacon/AHYNCnsV0ubUZ_6rsWv_75PRiv30C1cFks5rwMJcgaJpZM4Mj9gG.gif


Fix unhandled error when a bad revision is provided to changedSince

Summary
This PR fixes #7025 – when a bad revision is passed to the --changedSince argument, causing an unhandled rejection error message. It will now output the error message from git/hg instead.
Before:

After

Test plan
Updated integration tests.

Codecov Report

Merging #7112 into master will decrease coverage by 0.05%.
The diff coverage is 27.77%.

@@            Coverage Diff             @@
##           master    #7112      +/-   ##
==========================================
- Coverage   66.67%   66.62%   -0.06%
==========================================
  Files         253      253
  Lines       10597    10607      +10
  Branches        3        4       +1
==========================================
+ Hits         7066     7067       +1
- Misses       3530     3539       +9
  Partials        1        1

Impacted Files
Coverage Δ

packages/jest-changed-files/src/hg.js
28% <0%> (-7%)
:arrow_down:

packages/jest-changed-files/src/git.js
84.61% <55.55%> (-15.39%)
:arrow_down:

Continue to review full report at Codecov.

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

Oh, another thing. What do yu think about wrapping the invocations of these functions in https://github.com/facebook/jest/blob/8e6b34520517033be0cbd866ccd70b91cb237696/packages/jest-changed-files/src/index.js#L32-L48? Then it's enough to just change there instead of the same change in both git and hg

Oh, another thing. What do yu think about wrapping the invocations of these functions in
jest/packages/jest-changed-files/src/index.js
Lines 32 to 48 in 8e6b345
const gitPromises = Array.from(repos.git).map(repo =>
git.findChangedFiles(repo, changedFilesOptions),
);
const hgPromises = Array.from(repos.hg).map(repo =>
hg.findChangedFiles(repo, changedFilesOptions),
);
const changedFiles = (await Promise.all(
gitPromises.concat(hgPromises),
)).reduce((allFiles, changedFilesInTheRepo) => {
for (const file of changedFilesInTheRepo) {
allFiles.add(file);
}
return allFiles;
}, new Set());
? Then it's enough to just change there instead of the same change in both git and hg.
EDIT: Even better might be to wrap here:
jest/packages/jest-cli/src/getChangedFilesPromise.js
Lines 23 to 27 in 8c86fe8
return getChangedFilesForRoots(allRootsForAllProjects, {
changedSince: globalConfig.changedSince,
lastCommit: globalConfig.lastCommit,
withAncestor: globalConfig.changedFilesWithAncestor,
});
Then it's in jest-cli and we don't have to add a dep to jest-message-util in jest-changed-files

Not exactly sure why, but wrapping l23-l27 w/ a try/catch didn't work – the error gets thrown anyway and it never catches. I went with the above suggestion to avoid the same changes in both hg.js and git.js.


[Multi window mode]: Browser console messages

Changes:

rewrite src/browser/connection/gateway.ts to TypeScript.
use the BrowserConnectionGateway type in the all appropriate places.
`t.getBrowserConsoleMessages' method returns console messages only for the current page.

P.S. Now, there are 21 TypeScript warnings.

@testcafe-build-bot retest

@testcafe-build-bot retest

@testcafe-build-bot retest

FPR @AndreyBelym

I will implement #4586 enhancement after #4574 task.


getInstalledInjectedConnectors() may be empty on page load but not empty a bit later

On pxls.wtf we had the following issue: sometimes the users couldn't log because there were no connectors.
I found that it happened when the user was reloading the page (command R on chrome).
At that point, the getInstalledInjectedConnectors() that gets called at the very beginning of my Next.js app was empty!
Right now, I fixed it the hacky way:
https://github.com/nmalzieu/pxls-frontend/blob/main/pages/_app.tsx#L111-L129
However, I wonder:

could we detect that the installed connectors available on the page have changed?
should we really check this just once, at the very beginning of a Next.js app as done in the example or should we have a way to reload this before trying to connect
is there a reason why this happened to me only when doing a "reload" of the page and not when I was opening the same page in a new tab?

This is a long standing issue and as you say there is no clear way forward. The wallets inject themselves at any point after the page loads and so it's impossible to detect them reliably. My guess is that users that experience issues have many extensions installed or slower computers. In your case, when you reload the page maybe chrome uses the cached version of the application and so the code is executed before the wallets finished injecting themselves.
The solutions are two:

manually create a list of supported wallets
use a hook similar to yours to refresh the installed wallets periodically

I wish we had a way to listen for changes to the window object to detect the wallets better.

Thanks for your quick answer!
I wonder if we shouldn't see connectors in 2 groups:

connectors that we manually pass to the provider
injected installed connectors that we find in the window object

When we use injected connectors, maybe we should just make the connectors and available properties of useStarknet methods that actually refresh them?
Do you know how wagmi handles this on Ethereum? They should have the exact same issue?

In wagmi you need to specify the connectors manually so there is no issue. I agree connectors and available should be functions not values, probably a good idea to do that in the next breaking release.


Chaining conditional validations does not work

System Details

FluentValidation version: 8.6.0

Issue Description
Here is a test case that fails (whereas I think it should pass)
using FluentAssertions;
using FluentValidation;
using Xunit;

namespace DiagnosticProcedures.Tests
{
    public class Tmp
    {
        [Fact]
        public void Test()
        {
            //the following 3 assertions work as expected
            //new MyFormValidator().Validate(new MyForm() { A = "notempty", B = "" }).IsValid.Should().Be(true);
            //new MyFormValidator().Validate(new MyForm() { A = "", B = "notempty" }).IsValid.Should().Be(true);
            //new MyFormValidator().Validate(new MyForm() { A = "notempty", B = "notempty" }).IsValid.Should().Be(false);

            new MyFormValidator().Validate(new MyForm() { A = "", B = "" }).IsValid.Should().Be(false);
        }
    }

    public class MyForm
    {
        public string A { get; set; }
        public string B { get; set; }
    }

    public class MyFormValidator : AbstractValidator<MyForm>
    {
        public MyFormValidator()
        {
            RuleFor(x => x.B)
                .NotEmpty().When(x => x.A == "")
                .Empty().When(x => x.A != "");
        }
    }
}

Note that, as a workaround, using separate rules work:
    public MyFormValidator()
    {
        RuleFor(x => x.B).NotEmpty().When(x => x.A == "");
        RuleFor(x => x.B).Empty().When(x => x.A != "");
    }

Conditions apply to all previous validators in the same chain. There’s a second parameter to When that allows you to specify that it should only apply to the immediately preceding validator.

Ah thanks for the fast answer !
Maybe could be added in https://fluentvalidation.net/start#conditions ?
How can I do a PR on the doc ?

Thanks - a PR would be great. All the documentation is in the docs folder in the repo

Here you are :)
Note that it may be a great addition to have something like ApplyConditionTo.AllUnconditionedPreviousValidators
That way, we'll be able to do
RuleFor(customer => customer.Photo)
    .NotEmpty().Matches("https://wwww.photos.io/\d+\.png").When(customer => customer.IsPreferredCustomer, ApplyConditionTo.AllUnconditionedPreviousValidators)
    .Empty().When(customer => ! customer.IsPreferredCustomer, ApplyConditionTo.AllUnconditionedPreviousValidators);

That way, you can chain rules for a specific condition.
Also note that, the WithMessage has the "opposite problem":
        RuleFor(x => x.Name)
            .NotEmpty().WithMessage(_ => localizer.InvalidName())
            .MaximumLength(150).WithMessage(_ => localizer.InvalidName());

You are required to repeat WithMessage for each rule (like the default is ApplyMessageTo.CurrentValidator).
Great library otherwise, keep up the good work !

Thanks, I've merged the PR with a few wording changes.

Note that it may be a great addition to have something like ApplyConditionTo.AllUnconditionedPreviousValidators

I'm not really keen on this as I don't think it's particularly clear what's happening. In this situation I'd just break it up into multiple calls to RuleFor, all with separate conditions (which can all then be left on the default behaviour). This is much more readable than trying to shoehorn everything into a single chain.

Also note that, the WithMessage has the "opposite problem":

I wouldn't consider this a problem - it's by design. Messages and conditions have separate goals, and their usual use cases are different. A message is generally different for each validator in the chain. Obviously everyone's applications are different, but most of the time in most projects I've worked with the expectation is generally that you'd want different messages depending on the MaxLength failing vs the NotEmpty failing ("Please enter a name" vs "The name you entered is too long. Please ensure that it's less than 150 characters (you entered 200 characters").
A condition however usually applies to multiple validators in a single chain (eg "Check that the username isn't too long, and also check that it's not already in use, but only if it's been specified"). Of course there are exceptions (which is why ApplyConditionTo.CurrentValidator exists), but this is generally unusual, as multiple calls to RuleFor with separate conditions are much more readable.
FluentValidation's default behaviour has come about over the last 11 years of real world usage, and I'm happy that the defaults for both conditions and messages are sensible.
Thanks for the feedback though!


feat(components): loading

Adds wrapper around tailwind utility for loading shimmer
Adds loading spinner

Will take care of #63 when merged to main
To test

check out this branch, npm run dev
On the demo page, check out the loading class and spinner

Hey @vikramrojo @josh-chamberlain I went ahead and merged this. If you want to review #78, that will now have these changes with all of the search-v2 work, which is ready to merge to main.


Implement reset function for EPS sensors

Description
This PR adds functionality to either fully reset the ADCs to their default power up state, or just clear the FIFOs.
Fixes #214

I did not close this PR on purpose. It was just a mistake during force pushing.

I don't know why LfsRam.test.cpp fails all of a sudden. I did not change any code there. The EPS code is not even built for Linux. I also cannot reproduce the error locally. I used the same container version, deleted the build folder, and executed the same commands as for the test job. Still, all tests passed. This is super weird. I don't know what to do, so I'll just wait and run the tests again later or tomorrow. Hopefully that the problem has resolved itself then.

WTF. I reverted the single commit that I made on this branch. This is now the same code as on the master branch which passed all tests just fine on 21.04.2024.

I created a separate issue for the problem with the LfsRam test (#281) and disabled the test for now, so that this doesn't stop all other progress.


Export environment variables as .env file

Is your feature request related to a problem? Please describe.
Portainer does not currently have the functionality to export the env vars as a .env file. Not a problem, per se, but more of a convenience thing. I have previously managed my docker containers with docker run --env-file [container].env files ..., and if I need a copy or duplicate I simply copy the .env file and make changes.
Describe the solution you'd like
Exporting the ENV values for a container as a .env file would make it easier to open them in the text editor of my choice and edit (or run a script, etc, etc).
Describe alternatives you've considered
I have wrote bash scripts to do the container management of portainer so that I can use my .env files. Especially Duplicating a container with new ENV variables, as this is cumbersome in the Portainer UI.
Additional context
Not really. I can post the bash script I use, but this isn't really relevant since Portainer does everything I need EXCEPT provide an easy way to bulk manage ENV variables.

There has been an existing feature request for import from env file here #1857
As such I have modifed this issue to cover the 'export' functionality

Might be a bit of a long way round, but you can backup your complete portainer instance at Settings - Download backup file.  That archive has the necessary files in it.
Time to close as fixed?

Closing this as its covered under #1857