Memory Leak Running simple feed_dict graph

In a series simple tensorflow programs I obtain memory leaks (unbounded growth of CPU memory).
On original program on a computer with 64GB of RAM this leak is about 640 megabytes per hour (1% of total memory).
Plots of computer's memory over time:
Long time scale picture:

short time scale picture:

Problem description
The original program was more advanced and included RNNs/Saving/Loading etc.. but I "narrowed it down" to a simple for loop with no gradient descent where memory grows over time without bound.
Tested on Fedora 25 and Mac OSX 10.11.5. Issue occurs when running on single GPU (Titan X Pascal) or on CPU. Varying the sizes of the variables in the graph only changes the degree of growth, but does not prevent the effect from occurring. This issue occurs on tensorflow 0.12 and on current tensorflow 1.0.1. No custom code was used. Tensorflow was installed using pip in both cases (pre-compiled binary. Each time this was pip3 install tensorflow-gpu). Using CUDA 8.0,  CuDNN v5 [though this should not impact the use-case, since no cudnn kernels are being used]. GPU is a Titan X Pascal 12GB of VRAM (not Titan Xp).
To reproduce:
import argparse
import psutil

from os import getpid
import tensorflow as tf
import numpy as np

def fc(inputs, output_size):
    with tf.variable_scope("FC"):
        input_size = inputs.get_shape()[-1].value
        W = tf.get_variable("W", shape=[input_size, output_size])
        b = tf.get_variable("b", shape=[output_size], initializer=tf.constant_initializer(0))
        out = tf.nn.xw_plus_b(inputs, W, b)
    return out

def create_model(input_size, output_size):
    # model placeholders:
    with tf.variable_scope("Inputs"):
        input_placeholder = tf.placeholder(
            tf.float32, [None, input_size], name="input_placeholder"
        )
    # meaningless function of inputs
    op = tf.reduce_mean(tf.reduce_sum(fc(input_placeholder, output_size), 1))
    return input_placeholder, op

def parse_args(args=None):
    parser = argparse.ArgumentParser()
    parser.add_argument('--max_epochs', type=int, default=1000)
    parser.add_argument('--batch_size', type=int, default=7000)
    parser.add_argument('--input_size', type=int, default=100)
    parser.add_argument('--output_size', type=int, default=100)
    parser.add_argument('--device', type=str, default="gpu:0")
    return parser.parse_args(args=args)

def create_batches(inputs, input_size, batch_size, n):
    batches = []
    for i in range(n):
        X = np.random.uniform(-1.0, 1.0, size=(batch_size, input_size))
        batches.append({inputs: X})
    return batches

def main():
    args = parse_args()
    session_conf = tf.ConfigProto(allow_soft_placement=True)
    np.random.seed(1234)
    process = psutil.Process(getpid())

    with tf.Session(config=session_conf) as session, tf.device(args.device):
        inputs, op = create_model(args.input_size, args.output_size)
        session.run(tf.global_variables_initializer())
        batches = create_batches(inputs, args.input_size, args.batch_size, 20)

        for epoch in range(args.max_epochs):
            before = process.memory_percent()
            for feed_dict in batches:
                session.run(op, feed_dict)
            after = process.memory_percent()
            print("MEMORY CHANGE %.4f -> %.4f" % (before, after))

if __name__ == "__main__":
    main()

Output will be (exact numbers are percentages of computer's ram, so should change based on hardware, but main point is that memory continues to grow when the program has no variation between graph runs, batches are all the same size, no randomness is left in the program, etc.):
MEMORY CHANGE 1.2427 -> 1.3101
MEMORY CHANGE 1.3101 -> 1.3103
MEMORY CHANGE 1.3103 -> 1.3104
MEMORY CHANGE 1.3104 -> 1.3106
MEMORY CHANGE 1.3106 -> 1.3108
MEMORY CHANGE 1.3108 -> 1.3108
MEMORY CHANGE 1.3108 -> 1.3108
...
MEMORY CHANGE 1.3108 -> 1.3109
...
MEMORY CHANGE 1.3109 -> 1.3110
...

How can I fix this? I currently suspect a CPU memory pool issue inside tensorflow since the problem is fairly generic, and does not depend on the ops inside the graph (much). From what I've gathered most likely candidate is the tf.asarray/copying of numpy arrays in feed_dict, leading to memory fragmentation etc. Supposing this were the case, I've heard that tcmalloc should alleviate this, but no dice (note: I've also checked that objgraph shows no growth in program over time).

Thank you @JonathanRaiman for putting a lot of thought into communicating this issue. You've indicated you suspect there is a memory leak in the C++ code. In that case, @zhifengc might be able to advise you on how to troubleshoot down to the precise bug, or perhaps look into it himself.

@jart Terrific. Thanks!

I have a similar issue and stumbled upon this report. I used the code supplied by @JonathanRaiman  to quickly try and test what exactly (which instruction) is causing my issue.
After a lot of different tests, evaluating different ops, I got the following code that reliably reproduces this problem:
`import argparse
import psutil
from os import getpid
import tensorflow as tf
import numpy as np
def create_model(input_size, output_size):
# model placeholders:
shape = tf.clip_by_value(tf.cast(tf.random_normal([2]) * 38.0 + 64.0, tf.int32), 38, 120)
shape = tf.concat([[1], shape, [512]], axis=0)
return tf.ones(shape, dtype=tf.int32)

def parse_args(args=None):
parser = argparse.ArgumentParser()
parser.add_argument('--max_epochs', type=int, default=10000)
parser.add_argument('--batch_size', type=int, default=7000)
parser.add_argument('--input_size', type=int, default=100)
parser.add_argument('--output_size', type=int, default=100)
parser.add_argument('--device', type=str, default="gpu:0")
return parser.parse_args(args=args)
def main():
args = parse_args()
session_conf = tf.ConfigProto(allow_soft_placement=True)
np.random.seed(1234)
process = psutil.Process(getpid())
with tf.Session(config=session_conf) as session, tf.device(args.device):
    op = create_model(args.input_size, args.output_size)
    session.run(tf.global_variables_initializer())
    before = process.memory_percent()

    for epoch in range(args.max_epochs):
        session.run(op)

        if epoch % 100 == 0:
            after = process.memory_percent()
            print("MEMORY CHANGE %.4f -> %.4f" % (before, after))
            before = after

if name == "main":
main()`
The tf.ones(shape, dtype=tf.int32) instruction causes the issue. Same with tf.zeros, tf.ones_like and tf.zeros_like. But the interesting part is, this ONLY happens with dtype=tf.int32, it doesn't happen for int64, int16, int8, uints, floats.
Another observation is that, while the reported memory usage by python on the first run is roughly the same for all those data types, the memory usage in the XFCE Task manager is more than twice as high for the int32 variant than for other datatypes. So it seems like python is incorrectly reporting memory usage when tf.int32 is used.
Examples (first bump is int64 with no growth, second bump is int32 with fast growth):

Please also note that the memory usage increases rather quickly (from 2% memory to 8% memory in 10'000 interations, which takes about 10-15 seconds) and that having multiple tf.ones instruction makes it go up even faster, which can have a pretty noticeable effect on larger and more complex models.
But this only happens when the input-dimensions are random. If the shape supplied to tf.ones is the same on every run, memory used does not increased. So it only affects variable sized tensors.
I'm not 100% sure this is the same issue as @JonathanRaiman's, since he's not using int32 as far as I can tell, but his example does have a "None" dimension.
And I'm using tensorflow built from master yesterday, though the problem also existed in 1.1, on Arch Linux

@Panaetius My original memory leak problem arised in code that had several int32 tensors being fed in with varying sizes (inputs for embedding lookup tables that have varying numbers of time steps going into RNNs). This sounds like it might be the same issue

This is becoming problematic for me as well. I also use non-fixed input dimensions.
Related:
https://github.com/tensorflow/tensorflow/issues/8560
https://stackoverflow.com/questions/42861956/gpu-poolallocator-explodes-the-cpu-memory

@jart @zhifengc Have these code snippets helped illuminate what might be the source for the leak? Is there any other information we could provide to help fix this?

@JonathanRaiman I'm facing the same problem and I also suspect that it is due to the copying of numpy arrays in feed_dict

There is indeed different treatment for dtype=tf.int32  for tf.zeros, tf.zeros_like, tf.ones, tf.ones_like.
These ops are defined in tensorflow/python/ops/array_ops.py.
They all call fill function defined in tensorflow/core/kernels/constant_op.cc.
The FillOp is registered as usual for all types except int32:
// A special GPU kernel for int32.
// TODO(b/25387198): Also enable int32 in device memory. This kernel
// registration requires all int32 inputs and outputs to be in host memory.
REGISTER_KERNEL_BUILDER(Name("Fill")
                            .Device(DEVICE_GPU)
                            .TypeConstraint<int32>("T")
                            .HostMemory("dims")
                            .HostMemory("value")
                            .HostMemory("output"),
                        FillOp<CPUDevice, int32>);

ConstantOp in the same file also has this special treatment.
*REGISTER_KERNEL_BUILDER macro is defined in tensorflow/core/framework/op_kernel.h.

There may be a relation to issue 13221.

It has been 14 days with no activity and the awaiting tensorflower label was assigned. Please update the label and/or status accordingly.

Thanks for pointing out that #13221 is likely a duplicate of this. That issue has gained a lot of attention from the development team, with information on what should happen, and we're hoping someone in the community will volunteer to be the one to solve it. Please follow the other issue from here out.

Appears to be fixed in tf 1.6

No, not yet. I still found this problem in tf 1.8.

I second @hbb21st , I'm facing the same (or very similar) issue in tensorflow 1.8, running a loop of sess.run passing via feed dict just a string with the filename to read:
for image in glob(os.path.join(validationset_path, "*.png")):
    embed = sess.run(latent, feed_dict={filename_: image})

After some iteration:
E tensorflow/stream_executor/cuda/cuda_driver.cc:967] failed to alloc<PHONE_NUMBER>2 bytes on host: CUDA_ERROR_OUT_OF_MEMORY
W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size:<PHONE_NUMBER>2

I'm getting a similar problem. I'm generating batches manually from different .h5 files.
with sess.as_default():
	full_start = clock()
	for i in range(100):    #epochs
		start = clock()
		batch_train_size = 512
		batch_test_size = 200
		start_train_index =0
		end_train_index = start_train_index+batch_train_size
		start_test_index = 0
		end_test_index = start_test_index+batch_test_size
		for j in range(int(ceil(float(train_len)/batch_train_size))):
			if start_train_index  >= train_len:
				start_train_index = 0
			if start_test_index >= test_len:
				start_test_index = 0
			end_train_index = start_train_index+batch_train_size
			end_test_index = start_test_index + batch_test_size
			if end_train_index >= train_len:
				end_train_index = train_len
			if end_test_index >= test_len:
				end_test_index = test_len
			print 'epoch:',i+1,'/100 batch_num:',j+1,'/19'
			x_train,y_train,x_test,y_test = loadData(start_train_index,end_train_index,start_test_index,end_test_index)
			start_train_index = end_train_index
			start_test_index = end_test_index
                        print x_train.shape,x_test.shape
			train_step.run(feed_dict={X_train: x_train,
	                                  labels: y_train})

loadData function returns padded input features of different videos from .h5 files
After a few batches
2018-07-06 18:04:56.278757: W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size:<PHONE_NUMBER>
Killed

Can someone suggest a way to load batches manually and not exhaust memory
@JonathanRaiman @hbb21st Please guide me if you solved your error

@Satcheel were you able to solve this issue? I am getting a similar memory leak when I change my feed_dict to extract specific tensor values in a single session. Any help in this regards would be really helpful! Many thanks!

Sorry, I am not very active on GitHub.
Leaving the answer here for future reference.
My problem was not memory leak but my huge training data (250GB). So, used keras and steps_for_epoch for training and used a generator function to load data. I was trying to do the same in native tf but couldn't work it out


White space below logo when applying text label

When using both a logo and label, I am observing additional white space being added below the logo image.
With text label:

Without text label:

Am presently using version 4.6.
Code used to generate the above is as follows:
	$url = 'clr.ie/125372';
        $schemePlusUrl = 'https://' . $url;

        $builder = Builder::create()
            ->writer(new PngWriter())
            ->writerOptions([])
            ->data($schemePlusUrl)
            // ->labelText($url)
            ->encoding(new Encoding('ISO-8859-1'));

        if ($includelogo) {
            $logo = 'templates/blackandwhite/images/Logo/ClearCircle/Blue.png';
            $builder->logoPath($logo)->logoResizeToWidth(120)->logoPunchoutBackground(true)->errorCorrectionLevel(new ErrorCorrectionLevelHigh());
        }

        $result = $builder->build();

Thanks for the quick turnaround!


deps(jasmine):

update jasmine to ^2.6.4

I signed it!

The goal of this PR is so that protractor makes use of a version of Jasmine that incorporates the fix for included in https://github.com/jasmine/jasmine/pull/1225 .
Not sure why the tests failed here.  How can I rerun tests on a PR?

Closing in favor of https://github.com/angular/protractor/pull/4465


chore(main): release 0.0.32

:robot: I have created a release beep boop
0.0.32 (2024-08-22)
Dependency Updates

deps: update golang.org/x/exp digest to 778ce7b (#340) (145fd5a)

Refactoring

make each rule implement validationrule.Interface (#341) (e79d5c9)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v0.0.32
:sunflower:


fails to load after libclang update

first installed atom-clang with libclang 3.9. After upgrade to 4.0 does not work any more even after plugin recompile.

not enough information... what do you mean does not work? Does not perform completions? Crashes? Throws errors to the console log?
For example, looking at the console, I see clang 4.0.0 using the clang binaries tar.gz from llvm.org on ubuntu 14.04

Do you at least see that?

sorry not being specific enough. clang 4.0 is not a problem by itself, I
have it now working with it. The problem was that after updating clang the
makefiles were still pointing to old library. So when I rebuilt the
atom-clang it failed to load with a message (out of memory)
"libclang.so.3.9 could not be found"
On Mon, May 22, 2017 at 6:50 PM, Joe Roback<EMAIL_ADDRESS>wrote:

not enough information... what do you mean does not work? Does not perform
completions? Crashes? Throws errors to the console log?
For example, looking at the console, I see clang 4.0.0 using the clang
binaries tar.gz from llvm.org on ubuntu 14.04
[image: atom-clang-4]
https://cloud.githubusercontent.com/assets/156174/26319471/62b9274a-3edc-11e7-84cd-b8b1da3223ed.png
Do you at least see that?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/joeroback/atom-clang/issues/30#issuecomment-303157097,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGI3Sf9rN3w8HpeE34DF-4_rOT5BlsSmks5r8bzlgaJpZM4NhtpK
.


Action failing on Mac due to known DNS GH problem

Kind with registry may have problem on macos runners due to DNS (see https://github.com/actions/runner-images/issues/8649).

The workaround for the time being is to change the kind-registry host name with <IP_ADDRESS> as done in https://github.com/apache/camel-k/pull/5076/commits/ee547143d906771edc0a6cba42314ecd78238c12


Add run on repl.it badge to README

This pull request adds a Run on Repl.it badge to the README. This will allow users to easily run this repository in their browser, without having to set up an environment. You can learn more about Repl.it here.
React Boilerplate
Thank you for contributing! Please take a moment to review our contributing guidelines
to make the process easy and effective for everyone involved.
Please open an issue before embarking on any significant pull request, especially those that
add a new library or change existing tests, otherwise you risk spending a lot of time working
on something that might not end up being merged into the project.
Before opening a pull request, please ensure:

[ ] You have followed our contributing guidelines
[ ] Double-check your branch is based on dev and targets dev
[ ] Pull request has tests (we are going for 100% coverage!)
[ ] Code is well-commented, linted and follows project conventions
[ ] Documentation is updated (if necessary)
[ ] Internal code generators and templates are updated (if necessary)
[ ] Description explains the issue/use-case resolved and auto-closes related issues

Be kind to code reviewers, please try to keep pull requests as small and focused as possible :)
IMPORTANT: By submitting a patch, you agree to allow the project
owners to license your work under the terms of the MIT License.

I tried it and didn't work
Closing due to the major v5 release. Read the discussion here

Merging can  also be performed semi automatically with automatic test and manual test reviews.


Fix python header resolution on Windows

The substring "\U" in the path to the Python binary was confused for a unicode escape sequence. This should be a raw string.

@markdroth

Looks good. TIL windows allow special chars like \ in filename.

In Windows, backslash is the path separator! I actually used forward-slashes in my project config, but something converted it into its platform-native representation before this code encountered it.

@twon33 Right, my bad. I was reading from a wrong source: https://awp.autotask.net/help/Content/1_GENERAL/File_Name_Constraints.htm
According to wiki, \ is prohibited as filenames on Windows https://en.wikipedia.org/wiki/Filename.

Known failure https://github.com/grpc/grpc/issues/26595

Could we get this into the next patch release? It looks like 1.39.0 and 1.39.1 were both released after this PR but didn't include this commit, and this is currently blocking our gRPC upgrade since our Windows build fails on any gRPC versions on or after 1.27.0 (which is the first release that included the header detection changes).

@clarkzinzow The v1.40.0 release is on the way and includes this change. It should be happen soon.
CC @nicolasnoble for a more accurate release date.

@lidizheng Perfect, thank you! 😄 We're applying a manual patch via a Bazel HTTP archive target for now, but we'll be sure to upgrade to v1.40.0 once it's out and remove the patch.


when opening a .blocks file, verify that TS is in sync

when opening main.blocks, do the same dance as when we convert from TS -> Blocks. Otherwise prompt the user that they should choose which one to pick - same dialog as the failed conversion.

confused about this - I thought that blocks was just a view on TS?

No blocks also contains info that cannot be encoded in the TS: block position, external inputs, disabled blocks etc...
Either the .blocks file is the "master" or the .ts file is "master" depending on what the user is editing.
Sent from Outlook Mobilehttps://aka.ms/djubve

From: Tom Ball<EMAIL_ADDRESS>Sent: Sunday, August 7, 2016 1:22:52 AM
To: Microsoft/pxt
Cc: Peli de Halleux; Author
Subject: Re: [Microsoft/pxt] when opening a .blocks file, verify that TS is in sync (#190)
confused about this - I thought that blocks was just a view on TS?

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/pxt/issues/190#issuecomment-238070245, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AD-4KeUjZjSbCFZd4u_RBEwzsGW60xSjks5qdZXcgaJpZM4JcLqk.

Should we prompt the user or just show the TS? and when the user switches to blocks (they'll be prompted with the dialog to choose.

Dupe of #141


Handle tagged AND untagged COSE objects

I received some comments from developers that had been looking at your solution that you can't handle when the Cose_Sign1 isn't tagged. See my issue https://github.com/ehn-digital-green-development/hcert-spec/issues/69.

Hi,
could your verify if the changes of https://github.com/ehn-digital-green-development/ValidationCore/issues/3 resolve your issue as well?
Support for other COSE objects like Cose_Sign is currently planned for future versions.

Yes it's now fixed with the latest fix in #3 , you can close this now


[WIP] [BEAM-10212] State cache memory limit

Imposing a memory limit on the cross bundle state cache based on a percentage of memory allocated to the harness

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @lukecwik

R: @amaliujia

This is an initial implementation that reads max memory from a cgroup file (note: this does affect current tests such as RemoteExecution tests that are not containerized)
Rui suggested using a hard coded cap vs a percentage like the legacy worker which defaulted to 100mb - wondering what your thoughts are @lukecwik

This is an initial implementation that reads max memory from a cgroup file (note: this does affect current tests such as RemoteExecution tests that are not containerized)
Rui suggested using a hard coded cap vs a percentage like the legacy worker which defaulted to 100mb - wondering what your thoughts are @lukecwik

Using a hard-coded cap was a mistake as it didn't scale with machine size and in many cases we needed to tell users to specify a flag. Also a percent will likely work better with future VM right sizing work.

Sorry for any annoyance I accidentally pushed testing changes to this branch ... it is now ready for review @amaliujia @lukecwik

I was assuming you were talking about percentage of total memory for the process would be given to cache (and this is the current implementation).  Are you instead proposing an option of bytes-per-core for cache scaling?  That seems like it would scale with larger machines though it is a little unclear what a reasonable default would be given that there the ram/cpu ratio might vary between vendors.

Actually I see now you are saying that the amount of memory available for processing on a machine with a fixed amount of cpu but increased ram will be greater.  That is true, however if the cache itself is the cause of OOMs (not user processing) it doesn't help.
With the windmill cache, the objects were cached using the serialized size as the weight but the cached objects were deserialized (as that added a large benefit to the cache). However this meant that the memory used by the cache could be much more than the configured limit depending on the objects cached.  It seems here we might be caching the protos so perhaps the size estimate is reliable.  However if we change to caching user objects in the future we might need to be more careful.


Planning | Color Theme, Logo

We need a professional color scheme and logo.

Created base theme, logo still pending.


DataLoader please

Want to support DataLoader? After all, there are many scenarios in GraphQl that are useful.

Please explain in more detail. I'm not sure which DataLoader you are referring to.

I've also turned on GitHub discussions which might be a better place for something like this.

I actually want one ne that integrates this -> https://github.com/graphql/dataloader .

Are you suggesting adding the features of the data loader to ggql or finding a way to use the existing data loader with ggql?

Sorry, I think I can find a way to use gopher-dataloader directly. Thanks for your reply and i will close it,  thks again.


Login/Signup via email fails after updating to v4.15: "Sorry, something went wrong. Please try again."

Issue Summary
Since updating to Ghost 4.15 from 4.13, login/signup via email no longer works. Possibly on v4.14 too. We're using Mailgun. The only workaround we had was to revert to 4.13 to make it work again.
To Reproduce

Update Ghost from version 4.13 to 4.15.
Enter email to log in to Ghost blog.
Click on "SEND LOGIN LINK".

The issue is similar to https://github.com/TryGhost/Ghost/issues/7847. The logs reveal "Failed to send email. Reason: Invalid login: 535 Authentication failed.":
[2021-09-22 14:18:30] ERROR Failed to send email. Reason: Invalid login: 535 Authentication failed.

Failed to send email. Reason: Invalid login: 535 Authentication failed.

"Please see https://ghost.org/docs/config/#mail for instructions on configuring email."

Error ID:
f5eeafd0-1baf-11ec-a6b5-3f6b787399fb

Error Code:
EAUTH

----------------------------------------

EmailError: Failed to send email. Reason: Invalid login: 535 Authentication failed.
at createMailError (/var/lib/ghost/versions/4.15.0/core/server/services/mail/GhostMailer.js:59:12)
at GhostMailer.sendMail (/var/lib/ghost/versions/4.15.0/core/server/services/mail/GhostMailer.js:119:19)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async GhostMailer.send (/var/lib/ghost/versions/4.15.0/core/server/services/mail/GhostMailer.js:105:26)
at async MagicLink.sendMagicLink (/var/lib/ghost/versions/4.15.0/node_modules/@tryghost/magic-link/lib/MagicLink.js:62:22)
at async RouterController.sendMagicLink (/var/lib/ghost/versions/4.15.0/node_modules/@tryghost/members-api/lib/controllers/router.js:248:17)

Error: Invalid login: 535 Authentication failed
at SMTPConnection._formatError (/var/lib/ghost/versions/4.15.0/node_modules/nodemailer/lib/smtp-connection/index.js:784:19)
at SMTPConnection._actionAUTHComplete (/var/lib/ghost/versions/4.15.0/node_modules/nodemailer/lib/smtp-connection/index.js:1536:34)
at SMTPConnection.<anonymous> (/var/lib/ghost/versions/4.15.0/node_modules/nodemailer/lib/smtp-connection/index.js:540:26)
at SMTPConnection._processResponse (/var/lib/ghost/versions/4.15.0/node_modules/nodemailer/lib/smtp-connection/index.js:947:20)
at SMTPConnection._onData (/var/lib/ghost/versions/4.15.0/node_modules/nodemailer/lib/smtp-connection/index.js:749:14)
at TLSSocket.SMTPConnection._onSocketData (/var/lib/ghost/versions/4.15.0/node_modules/nodemailer/lib/smtp-connection/index.js:189:44)
at TLSSocket.emit (events.js:400:28)
at addChunk (internal/streams/readable.js:290:12)
at readableAddChunk (internal/streams/readable.js:265:9)
at TLSSocket.Readable.push (internal/streams/readable.js:204:10)
at TLSWrap.onStreamRead (internal/stream_base_commons.js:188:23)

Current Technical details:

Ghost Version: 4.13.0
Node Version: 14.17.6
Database: MariaDB 10.5.3
Docker Version: 20.10.7
Browser/OS: Firefox 92(client side)/Ubuntu 20.04 Server

I confirm this. We also use mailgun and get these errors on Ghost v4.15.0.

I'm pretty sure this commit is the reason.

Thanks @aprosvetova! Hope it gets resolved soon.

Hey all! 👋🏻 I believe this would be fixed with a commit in 4.15.1, so please update using Ghost-CLI. If the issue still persists, provide your logs and we'll do our best to fix it. 🙂

It was indeed Mailgun relevant (subscription renewal). Everything's working again now on the latest version.


Wrong prediction result

I am on the master branch of pytorch and using also the master brach of the spotlight.
Test code:
from spotlight.cross_validation import random_train_test_split
from spotlight.datasets.movielens import get_movielens_dataset
from spotlight.evaluation import mrr_score
from spotlight.factorization.implicit import ImplicitFactorizationModel

dataset = get_movielens_dataset(variant='1M')

train, test = random_train_test_split(dataset,test_percentage=0.01)
print train
print test
model = ImplicitFactorizationModel(n_iter=1,embedding_dim=32,
                                   loss='bpr', use_cuda=True)
model.fit(train,verbose=True)
mrr = mrr_score(model, test)
print mrr.mean()

Put a breakpoint at mrr_score
def mrr_score(model, test, train=None):
    """
    Compute mean reciprocal rank (MRR) scores. One score
    is given for every user with interactions in the test
    set, representing the mean reciprocal rank of all their
    test items.

    Parameters
    ----------

    model: fitted instance of a recommender model
        The model to evaluate.
    test: :class:`spotlight.interactions.Interactions`
        Test interactions.
    train: :class:`spotlight.interactions.Interactions`, optional
        Train interactions. If supplied, scores of known
        interactions will be set to very low values and so not
        affect the MRR.

    Returns
    -------

    mrr scores: numpy array of shape (num_users,)
        Array of MRR scores for each user in test.
    """

    test = test.tocsr()

    if train is not None:
        train = train.tocsr()

    mrrs = []
    for user_id, row in enumerate(test):
        if not len(row.indices):
            continue

        predictions = -model.predict(user_id)
        import pdb
        pdb.set_trace()
        if train is not None:
            predictions[train[user_id].indices] = FLOAT_MAX

        mrr = (1.0 / st.rankdata(predictions)[row.indices]).mean()

        mrrs.append(mrr)

    return np.array(mrrs)

Let's run and debug
python test_spotlight.py
<Interactions dataset (6041 users x 3953 items x 990206 interactions)>
<Interactions dataset (6041 users x 3953 items x 10003 interactions)>
Epoch 0: loss 0.136451368182
> /home/sunlin/anaconda2/lib/python2.7/site-packages/spotlight/evaluation.py(48)mrr_score()
-> if train is not None:
(Pdb) predictions.shape
(15626209,)
(Pdb)

The correct shape is 3953, but the wrong shape 15626209=3953*3953
The root cause is the BilinearNet model, a fix is to change
        return dot + user_bias + item_bias

To
        return dot.view(-1,1) + user_bias + item_bias

Is this to do with my version of pytorch?

This could be due to your version of PyTorch. Spotlight is tested to work with the latest release of PyTorch (v0.1.12) --- thought I should make that more prominent in the documentation.
Can you reproduce this error with PyTorch v0.1.12?

Thank you for the prompt reply!
I cannot reproduce this error with pytorch v0.1.12.  So it has to do with the pytorch version.


Can't find variable: RNFetchBlob

Hi,
I am trying to integrate RNFetchBlob in my Android Native App. As part of integration as suggested, I tried to link the RNFetchBlob package manually.
https://github.com/wkh237/react-native-fetch-blob/wiki/Manually-Link-Package
But, I am facing issue when I try to open a screen built in React Native and where I am trying to invoke RNFetchBlob package.
Crash log: Can't find variable: RNFetchBlob
I have tried the steps provided in the Manually link package url but no success.
I believe since I am trying to integrate React Native within an existing App its quite difficult to add RNFetchBlob package. (All works fine if I create an App ONLY on React Native).
Will you be able to please help me on resolving the issue.
Thanks.

hi, did you find any solution yet, i'm stuck here ?

hi, did you find any solution yet, I have the same Crash log too ?

Hi all,
I found a solution for this.
Basically, you will need to do manual linking. The changes needs to be done in the Android App side in which you are planning to integrate your React Native module. Please follow the below instructions:

In your Activity which will integrate the Android App with React Native module add the below line:

Example:
public class MyReactActivity extends
Activity implements DefaultHardwareBackBtnHandler {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
    mReactRootView = new ReactRootView(this);
    mReactInstanceManager = ReactInstanceManager.builder()
            .setApplication(getApplication())
            .setBundleAssetName("index.android.bundle")
            .setJSMainModuleName("index.android")
            .addPackage(new MainReactPackage())
            .addPackage(new RNFetchBlobPackage())
            .setUseDeveloperSupport(BuildConfig.DEBUG)
            .setInitialLifecycleState(LifecycleState.RESUMED)
            .build();
    mReactRootView.startReactApplication(mReactInstanceManager, "<YourReactNativeAppName>", appProps);
    setContentView(mReactRootView);

}
}

In Android App settings.gradle file add below lines:

include ':react-native-fetch-blob'
project(':react-native-fetch-blob').projectDir = new File('/Users//node_modules/react-native-fetch-blob/android')
include ':app'

In Project build.gradle add below lines:

allprojects {
repositories {
maven {
url "/Users//node_modules/react-native/android"
}
maven {
url "/Users//node_modules/react-native-fetch-blob/android"
}
}
}

In Module:app build.gradle add below lines:

dependencies {
compile project(':react-native-fetch-blob')
}
NOTE: Initially try to integrate using Absolute path for node_modules/react-native-fetch-blob/android
Once all the above changes are done please rebuild the App and then let me know if you still face any issue.

Hi haifa and cxjpxl,
Did you try the above solution? Did it worked for you guys?

I found these two resources .. check them out .. they might help you https://github.com/invertase/react-native-firebase and https://github.com/firebase/quickstart-js/blob/master/storage/index.html#L75 .. tell me what you did once you figure it out :)

Hi haifaGh,
Thanks for your reply.
But I am not facing any crash issue now. The solution which I provided above is working perfectly. I just wanted to know if it worked for you both or not :)


Will scriptors get detected and get no allocation?

Just wanted to know, if anyone got qualified without getting the points slashed for the Season 1 Airdrop using script?
If got Qualified, how much was your allocation?

I got a Good allocation Last time :) also i dont think any user of My old Stage 1 script was marked for sybil because We are not sybil ! We are having 1 account and many devices ! thats it !! and that is allowed :)
we are 1st one

Are Residential Proxies, good?


The ability to attach a VDI profile

Is your feature request related to a problem? Please describe.
With the introduction of APM policy imports I would like the ability to automate the deployment of my RDP gateways.  To Deploy the RDP gateway solution additional profiles are required.  Today AS3 supports the attachment of a rewrite and connectivity to the virtual server.  However, I do not see anywhere in the schema the ability to attach a VDI profile.
Describe the solution you'd like
AS3 needs the ability to attach a VDI profile to a virtual server.
Describe alternatives you've considered
My first thought was using icontrolREST to attach the VDI profile after AS3 attached he policy.  However, there is a dependency and the AS3 declaration fails since the VDI profile doesn't exist on the virtual server.

Closing as duplicate of #153. Since we have multiple people asking for this, I am bumping the priority of AUTOTOOL-1053.


Versioned Download for macOS Client

The Homebrew-Cask project, which extends Homebrew for GUI programs, cannot properly checksum or check for updates unless the download URL for an application contains a version number. Since Keybase doesn’t provide a versioned download, the Cask for it is currently unable to do these things.
Would it be possible for a versioned download URL to be offered instead of the existing one?

cc: @gabriel

The current public version can be looked up here:
http://prerelease.keybase.io/update-darwin-prod-v2.json
Then you can find the dmg for that version here:
http://prerelease.keybase.io/darwin/Keybase-1.0.18-20161101165331%2Ba862115.dmg
We'll try to have an easier way to get current version dmg soon.


Settings don't seem to work

Settings in this ArchiveBox.conf file don't seem to persist, any ideas why? I have done systemctl restart archivebox as well after changing settings. I am trying to disable archive_org so I can archive personal info.
$ pwd
/etc/yunohost/apps/archivebox
$ cd
cd conf/
$ ls
ArchiveBox.conf  nginx.conf  package.json  package-lock.json  requirements.txt  start.sh  systemd.service
$ cat ArchiveBox.conf
[DEPENDENCY_CONFIG]
NODE_BINARY=__YNH_NODE__
[ARCHIVE_METHOD_TOGGLES]
SAVE_ARCHIVE_DOT_ORG = False

$ systemctl restart archivebox

This doesn't work even though I get no errors.
I have also tried settting SAVE_ARCHIVE_DOT_ORG = False as its own line not within the [ARCHIVE_METHOD_TOGGLES] group.

It's because the good ArchiveBox.conf is at /home/yunohost.app/archivebox/ArchiveBox.conf


Question: How to assign tilesheet properties to wall sprites?

I have a tile set with several properties - solid, sandPit, etc.
I've adapted the code in the demo you provide with the level 1-1 example code to assign a property to all the wall sprites for collision.
How can I match up the properties of a tileset tile to the sprite that ends up being created from it?
    ---creating collision for floor

    local tileGidsThatAreGrounds = {}

    for i = 1, #tmjloader.tileset.tiles do
        local tile = tmjloader.tileset.tiles[i]

        local properties = tmjloader:getPropsOfTile(tile)

        if properties.sandPit then
            print("sandpit found") -- how to assign to sprites?
        end

        if properties.solid == true then
            if not arrContains(tileGidsThatAreGrounds, tile.id + 1) then
                table.insert(tileGidsThatAreGrounds, tile.id + 1)
            end
        end
    end

    local tileGidsThatAreNotGrounds = {}

    for i = 1, tmjloader.tileset.tilecount do
        if not arrContains(tileGidsThatAreGrounds, i) then
            table.insert(tileGidsThatAreNotGrounds, i)
        end
    end

    print(tileGidsThatAreNotGrounds[1])

    local walls = gfx.sprite.addWallSprites(tmjloader.tileMapsByLayer['floor'], tileGidsThatAreNotGrounds)

    -- Set properties for wall tiles
    for i = 1, #walls do
		local w = walls[i]
		w.isWall = true

                -- if the sprite's tile has property sandPit == true, add to sprite here...?
               -- How would I figure this out?
	end

And collision later in my avatar class...
        self.position.x, self.position.y, collisions, collisionsCount = self:moveWithCollisions(self.position)

        self.onGround = false

        for i = 1, collisionsCount do

            local c = collisions[i]

            if c.other.sandPit == true then
                -- How to assign this property so I can check against it here?
            end

            if c.other.isWall == true then -- this works
                ...

Any suggestions will be appreciated - I'm unclear as to if the library supports this somehow or if I should be building my own logic to figure it out.
Thanks!

Oh, you are skipping a trillion steps.
First of all, I just pushed a fix to the getGidAtLayerPos method, you will need to pick the updated version.

You see, in the example, we loop tmjloader.tileset.tiles  function, which happens to be just a list of the 'registered' tiles with special properties -- we are not looping a tileset XY.
The function gfx.sprite.addWallSprites does a trillion things, its a convenient function, but inside it an unholy amount of things are happening, including the creation of sprites.
But you also pass the tileset itself, so that is how its able to create the collisions in the proper positions.

In your situation, you wanna now create special blocks at special XY positions, so the code looks like this
local bg = tmjloader:getLayerByName('bg')

for i = 0, tmjloader.root.width - 1 do
	for j = 0, tmjloader.root.height - 1 do
		local gid = tmjloader:getGidAtLayerPos(i, j, bg)
		if gid ~= nil then
			local properties = tmjloader:getPropsTileOfGid(gid)

			if properties.solid then
				local sand = gfx.sprite.new('assets/davidjtferguson_awesome_sand_sprite')
				sand:moveTo(i * tmjloader.root.tilewidth, j * tmjloader.root.tileheight)
				sand.isSand = true
				sand:add()
			end
		end
	end
end

I updated the example to add your situation
Be aware that the objects wont be optimized, because if does not goes throught the addWallSprites special group algorithm.
If you are spawning a lot of sand areas, you probably will want to use a workaround and still use the addWallSprites method, but you will need to hack it a bit, you will need o pass the gids that are not sand instead that are not ground, and then adjust the created sprites as you need

Ah right okay, that code looks a lot like the code in the level 1-1 example project as well which I was gonna do for npcs etc.
I'm surprised there's no obvious way to get the tile gid from each sprite returned by the  addWallSprites function to know what to add extra properties to after. I want the sandpit to be the same as walls but with this extra bool property on it, so it's annoying I can't just do if sprite[i].tileGid == sandPitGid then sprite[i].isSandPit = true. Maybe there is a way to do it and I just missed it, I'll read the docs again tomorrow.
Thanks for the help! Sounds like it's not really related to the library then, but thank you very much for the example code and updates :D

Ah right okay, that code looks a lot like the code in the level 1-1 example project as well which I was gonna do for npcs etc.
I'm surprised there's no obvious way to get the tile gid from each sprite returned by the  addWallSprites function to know what to add extra properties to after. I want the sandpit to be the same as walls (they have the solid flag currently) but with this extra bool property on it, so it's annoying I can't just do if sprite[i].tileGid == sandPitGid then sprite[i].isSandPit = true. Maybe there is a way to do it and I just missed it, I'll read the docs again tomorrow.
But yeah if this is the done thing it'll be easy enough to do instead.
Thanks for the help! Sounds like it's not really related to the library then, but thank you very much for the example code and updates :D
... Ah, I suppose I could call addWallSprites once for all the walls, then again for all the sandpits?

there is no way to get gid for each sprite because it does not make sense.
a sprite added by addwall sprites is not a visual sprite, its just a collision.
and the collision sprites may take more than 1 tile size, thats the very objective of add wall sprites, to make as few collision sprites as possible.
anyway, you can yes, call for walls and then call for sandpits!
but these are just the collisions!!! and their shape may vary wildly!

Aaah, okay. Thank you. I didn't realise the addWallSprites was grouped together shapes for collision, I thought it was a sprite for each tile with the image. I think in my head a 'sprite' is always a visual thing, but I guess I got to drop that idea.
I have this now:
    local tileGidsThatAreGrounds = {}
    local tileGidsThatAreSandPits = {}

    for i = 1, #tmjloader.tileset.tiles do
        local tile = tmjloader.tileset.tiles[i]

        local properties = tmjloader:getPropsOfTile(tile)

        if properties.solid == true then
            if not arrContains(tileGidsThatAreGrounds, tile.id + 1) then
                table.insert(tileGidsThatAreGrounds, tile.id + 1)
            end
        end

        if properties.sandPit then
            if not arrContains(tileGidsThatAreSandPits, tile.id + 1) then
                table.insert(tileGidsThatAreSandPits, tile.id + 1)
            end
        end
    end

    local tileGidsThatAreNotGrounds = {}

    for i = 1, tmjloader.tileset.tilecount do
        if not arrContains(tileGidsThatAreGrounds, i) then
            table.insert(tileGidsThatAreNotGrounds, i)
        end
    end

    local walls = gfx.sprite.addWallSprites(tmjloader.tileMapsByLayer['floor'], tileGidsThatAreNotGrounds)

    -- Set properties for wall tiles
    for i = 1, #walls do
		local w = walls[i]
		w.isWall = true
	end

    local tileGidsThatAreNotSandPits = {}

    for i = 1, tmjloader.tileset.tilecount do
        if not arrContains(tileGidsThatAreSandPits, i) then
            table.insert(tileGidsThatAreNotSandPits, i)
        end
    end

    local walls = gfx.sprite.addWallSprites(tmjloader.tileMapsByLayer['floor'], tileGidsThatAreNotSandPits)

    -- Set properties for sand pit tiles
    for i = 1, #walls do
		local w = walls[i]
		w.isWall = true
                w.isSandPit = true
	end

It's verbose, but you get the idea.
And if I wanted to do anything more complicated (e.g. have an animated sprite) I'd need to find it and create a sprite with the extra data just for that tile as you described.
Thank you very much for your explenations!


TypeError: invalid IP address: localhost

Example doesn't work
const proxyAddr = require('proxy-addr');
proxyAddr.compile('localhost'); // throws error TypeError: invalid IP address: localhost

haha, good catch! fixing the docs 👍


Bar is white since a recent update.

My taffybar turned white after a recent update:

Is that a design decision? I looked at the config again, but I didn’t find a way to set the color.

It happened since #131 . I had commented this there too. I'm forced to use a theme with black title bars since then (alternatively, I used to undo that commit locally and build taffybar again locally from source).

Reverse-applying the patch worked, thanks. But it would be nice to have an official way to change the color.

The core of this problem is that xsettings managers (e.g., gnome-settings-daemon) override theme settings taken from gtkrc files.  My impression of #131 was that choosing some new names for color entries would help, but I haven't been testing thoroughly.
I'll try to take a look at it, but I haven't been running an xsettings manager, so I don't notice when these things break.

I don’t run one, too, as far as I know.

In case it helps, this just happened to me, and it turns out it that's because I accidentally forgot to change the session type back to xmonad in lightdm after some other login used Xfce (looks like lightdm doesn't remember the last session type for each user).  Switching back to an xmonad session fixed the problem.

That is probably one scenario. I for one don't use any login manager (simply do startx), yet I have this issue.

In #131 the .rc file is changed with some color names. I’m not quite sure what that file does, though, or even where the syntax comes from.

Does someone know a way to bypass this without changing the source? I do not want my system Gtk theme to be overriding what I have set in the taffybar.rc file, that's what the rc file was supposed to be for.
I have been using this patch:
diff --git a/src/System/Taffybar.hs b/src/System/Taffybar.hs
index c6665c1..3e3c1ef 100644
--- a/src/System/Taffybar.hs
+++ b/src/System/Taffybar.hs
@@ -267,8 +267,9 @@ taffybarMain cfg = do
   -- Load default and user gtk resources
   defaultGtkConfig <- getDefaultConfigFile "taffybar.rc"
   userGtkConfig <- getUserConfigFile "taffybar" "taffybar.rc"
-  rcParse defaultGtkConfig
-  rcParse userGtkConfig
+  rcSetDefaultFiles [ defaultGtkConfig, userGtkConfig  ]
+  {-rcParse defaultGtkConfig-}
+  {-rcParse userGtkConfig-}

But it is more of hassle than I'd care.

Changing "default" to "taffybar-default" in both its occurences in taffybar.rc fixes it for me.

This issue is no longer relevant since the theming system has switched to CSS as of #237


How to mapping object in 2D image to point cloud group in marged.ply

I would like to mapping object in 2D image to point cloud group in marged.ply.
For example, in case of a small box is appeared in 2D image, which is source file of openSFM.
I would like to extract dense point group corresponding to that small box from all point cloud of marged.ply
Is it possible in openSFM?
Thank you for your cooperation.
Ps) Other tools such as Metashape has these mapping function.

Hi,
You will need to write to write some custom to do this. From your bounding-box, you can get the corresponding bearings, and thus the camera frustrum (you also need to define some depth boundaries). Then you will need to intersect the frustrum with the point cloud.
Hope that helps,
Yann

No answer in a while, closing.


Fix vulnerability

Can you push now

Hi @adkumar1 ,
we had a short email with @wjost because we did not understand why this PR was merged after the discussions have not been resolved on this PR.
As he mentioned that you told him everything is adressed, i decided to revert this merge and as you to adress all discussions/conversatins on a PR.

Hi Sigi,
I have raised a new PR with the recommended correction. Please get it reviewed.
https://github.com/eclipse-tractusx/daps-registration-service/pull/14
--
Thanks & Regards,
Aditya Kumar
From: Sigi @.>
Date: Tuesday, 14 February 2023 at 4:28 PM
To: eclipse-tractusx/daps-registration-service @.>
Cc: Kumar, Aditya @.>, Mention @.>
Subject: Re: [eclipse-tractusx/daps-registration-service] Fix vulnerability (PR #12)
Hi @adkumar1https://github.com/adkumar1 ,
we had a short email with @wjosthttps://github.com/wjost because we did not understand why this PR was merged after the discussions have not been resolved on this PR.
As he mentioned that you told him everything is adressed, i decided to revert this merge and as you to adress all discussions/conversatins on a PR.
—
Reply to this email directly, view it on GitHubhttps://github.com/eclipse-tractusx/daps-registration-service/pull/12#issuecomment-1429528305, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AXAMNNO265SQKJHARWFKZL3WXNQM3ANCNFSM6AAAAAAUIX4DSM.
You are receiving this because you were mentioned.Message ID: @.***>

I reverted the commit of the triggered workflow run and deleted the released HELM Chart version 1.0.4 (never decrease the chart version) as well as the corresponding GH tag.

Please consider it for the first time the decreased version.
As the application version is 1.0.4, so our team wants to have everything in the same version
Going forward will take care of this thing

There is already a released helm chart with appVersion 1.0.4:
$ helm repo list
NAME        	URL
tractusx-dev	https://eclipse-tractusx.github.io/charts/dev
$ helm search repo daps-reg --versions
NAME                         	CHART VERSION	APP VERSION	DESCRIPTION
tractusx-dev/daps-reg-service	1.0.5        	1.0.4      	A Helm chart for Kubernetes

If you want to keep Chart version and AppVersion in sync, implement it with the next appVersion. Your Helm Chart improved, got changed. This is the reason why the Chart version should be increased, instead of decreased. No one would ever use your improved Helm Chart with the decreased helm chart version, as everyone would expect the improvements in the higher versioned helm chart.

Can't it be possible to have the application version same as the Releases ? Because people refer the version no. here in the releases and get confused with the application version .
[Releases] -> daps-reg-service-1.0.4

The Helm chart doesn't represent the product, but an installer for a product. If you look at Bitnamis Postgresql or ingress-nginx Helm chart, you can see that Chart Version and AppVersion do not match. You always have to check the Helm chart to get an idea of the application version it will install.


P24 not showing up

Hi, I have configured the module, but it does not show me P24. I have everything on. Is there anything else that needs to be configured on the stripe side? Now it is possible to pay by card only.

none of these 4 things worked

do I have to have PLN as default currency in stripe? because I have the default EUR, but I also have PLN marked as additional

during check out you need to have PLN, please check in payments options PLN are enabled too.
check in BO> modules >payments > Currency restrictions
if PLN and stripe is enabled

I cant select

Is it a fresh install? You may uninstall and install again or try some older version.

Yes, new store, but already fully configured. I reinstalled the module and nothing

what could be the reason?

This is possibly duplicate of issue #44. That issue is fixed, by not yet part of any release.
You can try to do the same fix manually, see commit efc7e60911b9806cabcfa31883468866f17a2222

work, thx :)


Opacity and Pointer events don't work as expected in Avalonia 11-Preview

Describe the bug
Assigning PointerEntered event, which assigns Opacity=0.8, and PointerExited event, which instead assigns Opacity=0.0, to a control (e.g. a panel), once the opacity is set to 0.0 in PointerExited, the control doesn't answer to PointerEntered anymore.
To Reproduce
I created a repo on Github to demonstrate the bug. It contains 2 solutions: one (cross) using Avalonia 11-preview, where the bug happens (Desktop project). The other one using Avalonia 0.10.18 where everything works as expected.
Expected behavior
11-preview should work fine as 0.10.18
Desktop (please complete the following information):

OS: Windows 10
Version 11-preview

Can you try with latest nightly build? I feel it might have been already fixed.
https://github.com/AvaloniaUI/Avalonia/wiki/Using-nightly-build-feed

It is already using the nightly build (11.0.0-preview1)

Preview1 is not a nightly build. It is a public preview.
Latest nightly is 11.0.999-cibuild0024198-beta or newer .

I upgraded Avalonia to 11.0.999-cibuild0024213-beta. Same issue.

Seems to be a bug in new compositor renderer. Workaround is to disable it:
        public static AppBuilder BuildAvaloniaApp() =>
            AppBuilder.Configure<App>()
                .UsePlatformDetect()
                .With(new Win32PlatformOptions() // or AndroidPlatformOptions ...
                {
                    UseCompositor = false
                })
                .LogToTrace();


CERES-EBAF sign error for FLNS, FLNSC

FLNS and FLNSC have the wrong sign for CERES-EBAF:

With Chris' PR #67, the error is fixed.


can't externalize "require" module with amd as intermediate module format

Bug report

What is the current behavior?
when "require" is listed in the externals, it seems to be entirely ignored.  externalizing "require" is useful for amd libaries - as importing require should give the bundle access to the AMD loader's require so it can do async loading via the amd loader it's used with.
If the current behavior is a bug, please provide the steps to reproduce.
// webpack.config.js
var path = require('path');

module.exports = {
  stats: "errors-only",

  entry: ['entry.ts'],
  externals: [
    "require"
  ],

  output: {
    filename: 'my_lib.js',
    libraryTarget: 'amd',
    library: "my_lib",
  },
  module: {
    rules: [
      { test: /\.ts$/, loader: 'ts-loader' }
    ]
  },

  resolve: {
    modules: [
      path.resolve(__dirname, "src"),
    ],
  },
};

// tsconfig.json
{"compilerOptions": {"module": "amd"}}

// src/entry.ts
/// <reference path="./require.d.ts" />
import amdRequire = require('require');

function doStuff(amdRequire) {
  amdRequire(['foo'], function() {});
}

doStuff(amdRequire);

// src/require.d.ts
declare module 'require' {
  const exports: any;
  export = exports;
}

What is the expected behavior?
the output should be an amd module with ["require"] as the dependencies.  Instead, it ends up with [] as the deps.
Other relevant information:
Interestingly, changing module: amd to module: commonjs in the tsconfig solves the problem.  So it appears that having amd as the intermediate format somehow confuses the intent of this code; the compiled AMD of src/entry.ts looks like this:
define(["require", "exports", "require"], function (require, exports, amdRequire) {
    "use strict";
    exports.__esModule = true;
    function doStuff(amdRequire) {
        amdRequire(['foo'], function () { });
    }
    doStuff(amdRequire);
});

so possibly the repro could be minimized further, but that feels like it would lose some of the motivation
webpack version:  4.23.1
Node.js version: 8.9.3
Operating System: Ubuntu 16.04
Additional tools<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Not sure, but looks like a typescript issue. Could you try what happens when using typescript only.

What do you mean "use typescript only"?
On Sat, Nov 3, 2018, 1:47 AM Tobias Koppers<EMAIL_ADDRESS>wrote:

Not sure, but looks like a typescript issue. Could you try what happens
when using typescript only.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/webpack/webpack/issues/8316#issuecomment-435571439,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABBndykOIhW0m_5-oe2UHz6LNljV6rCLks5urVgigaJpZM4YLG3o
.

Compile the module with tsc with the same options and check if the output is correct.

I already shared that above, but here it is again:
define(["require", "exports", "require"], function (require, exports, amdRequire) {
    "use strict";
    exports.__esModule = true;
    function doStuff(amdRequire) {
        amdRequire(['foo'], function () { });
    }
    doStuff(amdRequire);
});

In general, the "require" dependency in AMD is the AMD require function.  I think the problem here is that webpack assumes that all "require" deps are supposed to map to it's module loading, instead of an external loader - and doesn't treat the two "require"s differently.  When typescript compiles to AMD it always outputs the first two deps as "require" and "exports".  Perhaps webpack could treat any additional requires beyond that as potentially external?  just brainstorming.  Perhaps a valid way to parse this is that the AMD format contains insufficient information to communicate the developer intent.

I think the problem here is that webpack assumes that all "require" deps are supposed to map to it's module loading, instead of an external loader - and doesn't treat the two "require"s differently.

The AMD spec says "require" is special and maps to the require function. I think you can't have a module called require with AMD.

right, and that's not what I'm trying to do.  Perhaps I should explain my
setup: I am trying to build an amd library with webpack; I want to load my
amd library with an amd loader (say, requirejs), and I want to access
requirejs' require function within my bundle (without using a global
variable) - hence I require("require") in my typescript.  Compiling the
typescript to commonjs works, but compiling to amd makes webpack not
understand my import of "require".  My guess is that webpack assumes it's
supposed to override any "require" dependencies in an amd module when for
me that shouldn't be the case.
On Mon, Nov 5, 2018 at 11:20 PM Tobias Koppers<EMAIL_ADDRESS>wrote:

I think the problem here is that webpack assumes that all "require" deps
are supposed to map to it's module loading, instead of an external loader -
and doesn't treat the two "require"s differently.
The AMD spec says "require" is special and maps to the require function.
I think you can't have a module called require with AMD.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/webpack/webpack/issues/8316#issuecomment-436154404,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABBndwoYe5t_U5UCD2PxAlI7e6CEr6Pvks5usTg6gaJpZM4YLG3o
.

@dgoldstein0 I think that's totally possible.
There is no reason why typescript need to emit AMD modules. You can switch it to {"compilerOptions": {"module": "esnext"}}. That's actually better for other reasons too.
libraryTarget: "amd" will generate an AMD bundle in the final step.
This should enable you to use externals: "require" and access the requirejs function in this way:
const amdRequire = require("require").

If this doesn't work for any reason try this:
externals: { "amd-require": "require" }
const amdRequire = require("amd-require")
This should even work with typescript module: "amd", but I still don't recommend it.

Sorry to be clear I opened this thread not because I wanted to hear workaround suggestions (compiling to commonjs was fine for that - but thanks for the alternative ideas) but rather because I thought webpack should provide some warning or error here.
My rough understanding though is that no one piece of the system seems to have the whole picture, so the only ideas I can think of for such a warning are

warning about unused externals - which doesn't really unveil the configuration mistake
warning if trying to externalize require and all inputs are AMD

The latter would have certainly saved me some pain


crnnFP16

add two crnn quantized models

We need to add notes in the readme telling users how to use these fp16 models and compare the accuracy with fp32 models' as well.

@fengyuentau This info can be found in the merged PR #71.

Thank you but we still need notes in the readme about how to use these fp16 models with opencv.

In my opinion, we will have more fp16 models in the future, we need to add a unified note about how to load float16 in OpenCV. How about adding this info in https://github.com/opencv/opencv_zoo/tree/master/benchmark/README.md?
The main idea is to tell the user that loading float 16 ONNX model requires opencv with this patch PR in opencv.
The best solution for python is pip install opencv-python-rolling.


fix fallout from inmanta module commit command removal

Description
https://github.com/inmanta/inmanta-core/pull/8468 removed the inmanta module commit command.
Tests were adapted to use the inmanta module release instead and the version numbers in the modules_repo fixture changed
slightly.
This PR fixes 2 slowtests that were missed in the original PR and makes sure they use the updated versions for the modules in the modules_repo fixture.
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[ ] Attached issue to pull request
[ ] Changelog entry
[ ] Type annotations are present
[ ] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[ ] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )
[ ] If this PR fixes a race condition in the test suite, also push the fix to the relevant stable branche(s) (see test-fixes for more info)

Merged into branches master in f22bc87c952d6f42c7a3a6173c74474b61d6ed4c


pip install show error

Describe the bug
conda create -n xin
conda activate xin
pip install "xinference[all]"
I dont know what the problem is , and which xinference version show I use， or python version
It show errors below
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [4 lines of output]
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 15, in
import json
ModuleNotFoundError: No module named 'json'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

@JonSmall You create a new python conda env, however, the error message shows that you used python from /usr/local/lib/python3.8. Please check this.


Task/categories list

New features:

Categories admin uses the new Category tree generator
The store uses the new category tree generator with a cache wrapper
New sorter service added and order controller to receive the categories order and order them
Event launched every time that the categories are reordered
Store category tree is reloaded every time than the categories are reordered
New categories order page where you can drag & drop categories
Now we sent the full category to the navigation so it can generate a full navigation bar (With menu and submenu)

Blocked by: https://github.com/elcodi/elcodi/pull/504
ping @elcodi/owners

I don't feel comfortable having all this bunch of files in our repo, since they belong to the frontendcore project, am I right?

@tonipinel , could you help us with that? :)

@tonipinel Has to do the work of adding composer in the frontendcore project. Once this feature is done, all these files will be loaded by composer.

Travis tests are failing since we merged this, we should take a look into solving that.
https://travis-ci.org/elcodi/bamboo/jobs/49339052

Hey @xphere that's because elcodi/elcodi should be tagged, right now we are getting a version of "elcodi" that does not contain a Category tree service. That service is a requirement for the store and the admin. That's the reason why it's failing.
I asked @mmoreram to tag elcodi to solve that. It should be solved soon.
Sorry for the inconvenience.

Umm, maybe that's where the existence of composer.lock in the project may have an impact, since we can mark a dependency with a still-non-tagged version of elcodi that meets our needs… that's some food for thought.


Templates not set as service available can also be used to create services

Describe the bug

Templates not set as service available can also be used to create services
Steps to reproduce

Do not set any templates as service available template.
Create a service.

Result

All templates is available to create a service.

Expected behavior

Only templates that are set to be available to the service can be used to create the service.
Environment

Walrus version: main 9e14c25ece772fbb582b0be93a0fdb5e486fd53e
UI version: dev-d6bb36d

Additional context
Add any other context about the problem here.

Environment

Walrus version: v0.4.0-rc1  a3e5c0343d3e831ca30e4fd76a160212bc5bba7f
UI version: dev-6b82ce8

Test Result: pass


Airplay speaker devices not showing on 14.8 / 8.0.2

Describe the bug
When selecting the Airplay button in an app or on the Home Screen, the usual selection of a users AirPlay output speakers are not shown, or occasionally are shown but don't output audio when selected.
To Reproduce
Steps to reproduce the behavior:
Click on an AirPlay audio selection button in an app or in the Control Centre
Expect to see users list of local speaker devices (e.g. Sonos)
Usually only 'iPhone' is visible, or occasionally other speakers are shown but don't have an effect when selected.
Device (please complete the following information):

iOS Version: 14.8
iOS Device: iPhone 11 Pro Max
unc0ver Version: 8.0,2

Place an "x" between the brackets if true:

[X] this is a bug others will be able to reproduce
[X] this issue is present with all tweaks uninstalled(except for default packages) or disabled
[X] this issue is present after a rootfs restore
[X] this issue is present on the latest version of unc0ver

Same here on iPhone XS

Reproducilble on my iPhone Xs on 14.8 Unc0ver 6.0.2. After "Restore RootFS" it works fine again.
After reboot of the Airport Express the Airplay speakers are visible, however, once I disconnect from the Wifi network and reconnect they are gone. Sometimes shows up, but most of the time not visible.

Reproducilble on my iPhone Xs on 14.8 Unc0ver 6.0.2. After "Restore RootFS" it works fine again.
After reboot of the Airport Express the Airplay speakers are visible, however, once I disconnect from the Wifi network and reconnect they are gone. Sometimes shows up, but most of the time not visible.

By restoring the RootFS do you not effectively remove the jailbreak?
You can also get it to work similarly by rebooting the phone and not jailbreaking.

Yes, rebooting and not jailbreaking works. However, I want to have a jailbroken phone and have Airplay work properly :D

Yes, rebooting and not jailbreaking works. However, I want to have a jailbroken phone and have Airplay work properly :D

Indeed but are you daring restoring RootFS fixed it permanently after jailbreaking also?

Yes, rebooting and not jailbreaking works. However, I want to have a jailbroken phone and have Airplay work properly :D

Indeed but are you daring restoring RootFS fixed it permanently after jailbreaking also?

No sorry. Restoring RootFS fixed it as long as I do not re-jailbreak. As soon as I jailbreak the phone again, the problem returns.

This Fugu14 jailbreak is semi broken and sadly seems completely abandoned by @Linushenze. It renames the system daemon analyticsd which is why it breaks everyone's Battery Usage settings screens. It must hijack that daemon for the jailbreak presumably. It renames the original to analyticsd.back and executes it, but clearly there are iOS processes that fail due to this renaming.
PS the jailbreak also frequently randomly freezes processes causing all sorts of issues, which can only be solved by manually grepping ps aux for " T. " and "kill -CONT pid" to resume them. This is the worst jailbreak I've ever used by far. Sadly it's the only game in town for my A12X/14.4 so it's still better than nothing.

Any fix for AirPlay not showing on iOS 14.8 jailbreak? Thnx in advance


Tolino Vision 5

Hi, @Ryogo-Z. Any chance you could support Tolino Vision 5? I tried to test TWRP for Vision 4 on Vision 5 but main screen froze (where you have to swipe right).
Thanks!

Hi @wiksito.
Try to use this one: https://github.com/Ryogo-Z/tolino_shine3_twrp

thanks for the quick reply. I just got a white blank screen with shine 3 image. The Vision 4 image has better progress :).


How to add data to entities?

I apologize for the noob question, but I really want to get this to work! I come from a Rails background and vuex-orm will make it so much easier for me to work with Vuex, as well as normalizing my data structure as it's coming in deeply nested. I know Issues is not where you'd normally ask these types of questions, however I asked a question on Stack and didn't receive a response.
Since I've posted that question, I was able to add an item to the TodoItem entity as a test in the computed property of one of my components. I'm wondering though where loading in the data should actually occur? I've got a fairly extensive Vuex module system already built out, would it require me to refactor all of that into modules described in the docs, or am I able to reuse what I've got? Any help would be greatly appreciated. Thank you!

@jimmiejackson414 Hi! Thank you for the feedback!

I'm wondering though where loading in the data should actually occur?

Usually at Vuex Component's computed property. If you want to fetch all data, you could do like:
export default {
  computed: {
    users () {
      return this.$store.getters['entities/users/all']()
    }
  }
}

I've got a fairly extensive Vuex module system already built out, would it require me to refactor all of that into modules described in the docs, or am I able to reuse what I've got?

You should be able to reuse what you have. You can call your module just like you would do normally.

@jimmiejackson414 Hi! Just checking in. Did you had any progress on this?

I'm so sorry, I must've missed the initial response! I ended up going a different route (I had a lightbulb moment and realized that I don't actually need to store everything in Vuex). I would like to revisit this library though in the future as I do think it'll be immensely helpful!

@jimmiejackson414 Thank you for the response! Sorry to see you go but I'm glad you found a way! I hope to see you soon though. Good luck for you project 👍


Fix issue 1376

fix issue #1376

Hi @chuntaojun ! Thanks for the PR. Could you please apply it to branch 2.1.x ?

Hi @chuntaojun ! Thanks for the PR. Could you please apply it to branch 2.1.x ?

ok，so I close this pr？

Yes, please.


Provide simple, concrete, contained example

See #145 for what that looks like. There are currently no concrete examples unless you count the "Users" section, but those are prod crates that are big and complicated.

This example should include insert_var examples as explained in https://github.com/assert-rs/trycmd/issues/140#issuecomment-1267542273

What is the role of this example?

Why do the trycmd production cases are not sufficient as examples?
What cases do we care about covering, including

readme vs other documentation vs tests
trycmd vs toml
simple input/output, using the file system
Use of variables, wildcards, etc

How this should fit within the existing documentation

Why do the trycmd production cases are not sufficient as examples?

Why is reading the linux kernel not a great way to learn about operating systems? Why isn't it easy to learn html by just looking at the google.com source page? Why can't you just learn Rust by reading the stdlib? Because there is a massive amount of complexity in production code that completely detracts from the goals of education.
To be a little less snarky, when you're just learning something, you don't know what you're looking for. So the production examples become a game of "Can I find the trycmd relevant parts?" I think production examples actually answer a different question: why the library is useful. That is, after you've seen toy examples and understand how a thing theoretically works, now you can see how people use it in the real world.

What cases do we care about covering

README: I just have beef with the minimal example because if you don't know what a trycmd file is (which you shouldn't since it's not an industry standard) then the example is completely meaningless.  And when you open the docs you have to scroll very far before you get to a spec of the trycmd language which is not useful when you're trying to figure out what trycmd even is. I mean, imagine if the rust-lang.org website just had a link to the grammar or the reference book.

The documentation is fine as is (assuming examples aren't considered documentation) because it's a reference. Once people get the gist of how the library works, they'll want to look up specific knobs in a reference style thing (but those knobs should have examples!).
I don't see how tests are relevant. I've personally never looked at a library's tests to try and understand how to use it.

trycmd vs toml: I personally care more about trycmd because it's a friendlier way to use the lib, but toml examples could also be added as an advanced way to use the lib.
simple input/output, using the file system: the more examples the merrier! The clap examples are simply amazing, so I'm honestly kind of confused about the resistance here given that you're the same dude. :)
Use of variables, wildcards, etc: At the very least a basic ground up example is needed on how variables work. The fact that they're optional is pretty subtle, but very useful for clap tests.

How this should fit within the existing documentation

I mean, I really do think #145 is an improvement. Now that I know how variables work, I would demo that, but otherwise I think it's enough to get you started and not be left scratching your head for hours. Now I know you want everything to live in lib.rs, but that doesn't work when the example needs to be tested by the lib. Though actually, maybe we can just run trycmd on the lib.rs file? I don't really care where the example lives as long as trycmd is run on it, though putting the example in lib.rs does make it less realistic since most people won't be doing that.

To be a little less snarky,

Please refrain from the snark.  The snark, accusatory language, and combativeness have not been helpful to there being an healthy, productive dialog for improving things.  This is a large part for why I have made minimal fixes to issues and closed them out; to put a stop to the endless, draining conversation.
The question was asked in earnest, to dig into the differences and to discover requirements.   If behavior does not change, I will ask that you leave.

I'm honestly kind of confused about the resistance here given that you're the same dude. :)

See above.

when you're just learning something, you don't know what you're looking for. So the production examples become a game of "Can I find the trycmd relevant parts?"

Maybe I wasn't clear enough or I misunderstood your answer.  I was specifically referring to the trycmd's use of trycmd.  While this is trycmd testing trycmd, it neatly breaks down trycmd's features so people can see different parts of it.  There is little unrelated stuff to siphon out.  For now, this also doesn't get into the normal weird cases that crop up when code is used to test itself.
This doesn't mean its a perfect solution but to understand the resources at hand, where they might work, and where they won't.

README: I just have beef with the minimal example because if you don't know what a trycmd file is (which you shouldn't since it's not an industry standard) then the example is completely meaningless.

This is a good point and would be worth an issue on its own.

I mean, I really do think https://github.com/assert-rs/trycmd/pull/145 is an improvement.

I pointed out when I closed it why this does not fit narratively which is why I made sure to include this question.

Now I know you want everything to live in lib.rs, but that doesn't work when the example needs to be tested by the lib.

It doesn't have to all live on docs.rs but we need to be intentional about where it does live in a way that is clear to the end user.  For example, maybe we create a cookbook directory that is full of example projects that highlight major workflows.

this does not fit narratively

I guess we disagree on what constitutes a "workflow" then. To the point above, there should be one place where most of what you need will be shown and I don't count that as a workflow.

I feel there is a disconnect here as my discussion of narrative had nothing to do with covering different workflows but is more "does this fit within this specific location in the document".  We have a lib doc comment that is enumerating different features and how they work and #145 tries to insert a full example covering multiple sections into one of those sections.  This makes it harder to find if you happen to not be in that section and creates a large gap in between closely related sections, making the overall document harder to follow.

I guess? Again, I'm not thinking workflow here.

I feel this is getting stuck on the wrong point.  This is a reply to an example I gave on how things could be structured but gets hung up on the example rather than talking structure.
I'll try to be more concrete.  Say we have the following

examples/

demo_trycmd

README.md (explains the different parts, is also tested)
Cargo.toml
src/

main.rs

tests/

`cli.rs
cmd/

demo_toml

README.md (explains the different parts)
Cargo.toml
src/

main.rs

tests/

`cli.rs
cmd/

We then link out to examples/demo_trycmd and examples/demos_toml from the README and from the lib's doc comment.
My comment about workflows was we could then add examples/read_files_{trycmd,toml}, examples/write_files_{trycmd,toml}, etc for the different types of applications people are writing and want tested.  I feel like those three pretty much cover the major workflows (or styles of CLIs being tested).

does this fit within this specific location in the document

Ohhh, gotya. Yeah, I guess I've been confused because I thought you wanted the example to be in lib.rs. Regarding where the example lives, I personally have no preference or opinion, that's totally up to you. And I think you make a great point about it taking up way too much space in the lib.rs.

gets hung up on the example rather than talking structure.

Completely accurate, I think we're on the same page now, thanks! :) The layout you presented seems perfectly reasonable to me, though I don't know if the demos need to be full blown crates. Then again, I don't think it hurts to have full blown crates, so totally up to you. As you mentioned, I'm more concerned about the content than where it shows up.

I prefer a full crate, partly from the problems I saw in #145.  It was trying to provide an example but content was scatted in places that weren't actually the right place for it and hoping the user picked up on that or had to explicitly describe what was intended.  By having a full crate, we can show the user exactly how it would be and we can limit our comments in it to explaining those specific parts rather than mixing in caveats on the limitation of the documentation.

I'm onboard with that. Do you want me to give it another go or you just throw me on for content review?

Go ahead and give it another try


Vector Cluster Changes

Fixes #978
If a layer is format cluster, and has no resolution or resolution is not number, it currently fails.
This PR addresses the issue, checking for this and setting a default value and a console warning if so.

FYI this was removed in this PR.

https://github.com/GEOLYTIX/xyz/pull/950/files

A vector layer may just have a cluster.distance instead of cluster.resolution.

@dbauszus-glx Thanks for this, made some changes.

If the layer has no distance or resolution, console.error and return.
If the layer has cluster.resolution, then set the layer.params.viewport and layer.params.z to be true (needed for cluster queries).
If the layer has cluster.resolution, set layer.params.resolution to layer.cluster.resolution.
If the layer has cluster.resolution, set layer.params.template to either params.template or cluster by default.

cluster.hex_grid has been removed as unneeded, you can just pass layer.params.template="cluster_hex".
Let me know if this is all ok, and I'll make sure the config docs are up to date!
"format": "vector",
"cluster": {
  "resolution": 0.2
},
"params": {
  "template": "cluster" // "cluster_hex"
}

Added default srid of 3857 to vector format layers with layer.cluster.resolution layers, otherwise its 4326.
Added checks on srid too, updated other checks.

Thanks for the help @RobAndrewHurst !
This is now ready for re-review
@dbauszus-glx @RobAndrewHurst @eo-uk

Thank you @dbauszus-glx !
I just made one change which is to check if cluster.resolution is numeric before performing parseFloat() on it - and warn if not. (I know its a bit silly for it to be non-numeric but always useful!)

I've tried to update the config docs to explain these changes as simply as possible.
https://github.com/GEOLYTIX/xyz/wiki/Workspace-Configuration#vector-wkt-geojson-cluster


Document installation procedure for ergocub-head system

During the ICRA 2023 demo with ergoCub, one problem that hit us is that we wanted to debug a software problem on the ergocub-head, but it is not clear how the software was installed there. While the software installation on the ergocub-torso basically reflects the one tipically used in icub-head, so documented in:

https://icub-tech-iit.github.io/documentation/icub_operating_systems/icubos/installation-from-scratch/
https://icub-tech-iit.github.io/documentation/sw_installation/icub_head_superbuild/

At the moment instead the ergocub-head has some specificies that I am not sure if they are documented anywhere:

Use of robotology-superbuild compiled against conda-forge dependencies to support ROS humble on Ubuntu 20.04
Use of GPU-enabled librealsense
Something else that I may be missing

It would be great to have even a simple documentation on how to setup the system in its intendend state from scratch.

Use of robotology-superbuild compiled against conda-forge dependencies to support ROS humble on Ubuntu 20.04

This will be no longer true.

Use of GPU-enabled librealsense

This still holds, but we may simply point to an official doc for that.

First proposal available at:

https://github.com/icub-tech-iit/documentation/pull/318

The PR has been merged @martinaxgloria. Well done 🎉


add default menu bar in dioxus-desktop to resolve #1691

Feature: add default menu bar to dioxus-desktop
It looks like this on macOS (please ignore firefox underneath it):

This also resolves #1691 since, as mentioned there, macOS requires menu bar items with keybindings assigned to them to enable system default text editing and window shortcut behaviors.
Solution
The feature was implemented by adding a function fn create_default_menu_bar() -> MenuBar in webview.rs which constructs a platform specific menu bar that may be passed into window_builder if disable_default_menu_bar is false which is defined in config.rs to enable the option to opt out of having a menu bar at all. diasable_default_menu_bar is false by default, and therefore the window_builder will use the default menu bar if the user does not opt out, as implemented in webview.
I think this should be exactly what @ealmloff described in his comment.
clippy and all tests including playwright passed on master.
Note: due to tao not supporting a lot of native menu bar items on Linux, there is no edit menu on Linux yet.
Example usage
Cargo.toml:
dioxus = { path = "../dioxus/packages/dioxus/" }
dioxus-desktop = { path = "../dioxus/packages/desktop/" }

main.rs:
use dioxus::prelude::*;

fn main() {
    dioxus_desktop::launch_cfg(
        App,
        dioxus_desktop::Config::new()
            .with_disable_default_menu_bar(false)
    );
}

fn App(cx: Scope) -> Element {
    render! {
        input {
            r#type: "text",
            placeholder: "Enter smth. and use Ctrl + A / Cmd + A...",
        }
    }
}

Do we want this to be the default behavior on all platforms or only on Mac? I haven't been targeting Windows or Linux recently but if I remember correctly they weren't impacted by the keybindings issue

Do we want this to be the default behavior on all platforms or only on Mac? I haven't been targeting Windows or Linux recently but if I remember correctly they weren't impacted by the keybindings issue

Actually, I don't think it is an issue on Linux or Windows, though I haven't been able to test it either. Otherwise, I do think it won't be bad to have those very basic menus included on these platforms too. It is more consistent that way, otherwise one might wonder where the menus went when cross-compiling or similar.

Agreed, looks great, definitely something we want to support. It might be worth to make the function that builds the menubar public and then change the naming scheme to what @ealmloff mentioned. Other than that, LGTM!

So you basically want to expose the standard menu bar that was built so that one could adjust it further instead of having to re-create a new Menubar when intending to customize the existing one? I think that would be nice, but I am not too sure where to put it. I thought about exposing it and accepting a MenuBar instead of a bool, but MenuBar does not implement copy / clone. Also, I think no one would expect it to be found in webview.rs when using it from the outside. If you have an idea on that I would be really happy about adjusting it, otherwise I'd suggest keeping it the way it is with the incoming naming changes and opening an issue about exposing it where we can discuss this further.

It might be better to wait to merge this until the last 0.4 version goes out. If you already have the system menu added manually, it wouldn't be great to add a second menu even if the API isn't technically breaking


Bump eslint-plugin-react version and update webpack config

Closes #6115.
We are able to use detect instead of the obscure 999.999.999 value for the react version of the eslint-loader config after bumping eslint-plugin-react.

The webpack dev and prod files were merged into one file a while back.

What's the reason that the build fails here? I'm having the same problem on my PR.

@rovansteen looks related to https://github.com/facebook/create-react-app/issues/6099.

@Timer Travis is reporting the same warning that you experienced in https://github.com/facebook/create-react-app/pull/5043, however I don't see that locally when running yarn build. I tried clearing the master/my PR caches in Travis, but got the same result :(


Initial terraform apply fails with create_ingress_security_group = true

An initial terraform apply using  create_ingress_security_group = true fails with
╷
│ Error: Invalid for_each argument
│
│   on ../../main.tf line 2, in data "aws_lb" "public":
│    2:   for_each = var.create_ingress_security_group ? toset([for target in var.target_groups : lookup(target, "load_balancer_arn", "")]) : []
│     ├────────────────
│     │ var.create_ingress_security_group is true
│     │ var.target_groups is tuple with 1 element
│
│ The "for_each" set includes values derived from resource attributes that cannot be determined until apply, and so Terraform cannot determine the full set of keys that will identify the instances of this resource.
│
│ When working with unknown values in for_each, it's better to use a map value where the keys are defined statically in your configuration and where only the values contain apply-time results.
│
│ Alternatively, you could use the -target planning option to first apply only the resources that the for_each value depends on, and then apply a second time to fully converge.

As a workaround it's possible to apply with  create_ingress_security_group = false and then afterwards setting the variable to true.
Versions:
Terraform v1.9.0
on darwin_arm64
+ provider registry.terraform.io/cloudposse/template v2.2.0
+ provider registry.terraform.io/cloudposse/utils v1.24.0
+ provider registry.terraform.io/hashicorp/aws v5.58.0
+ provider registry.terraform.io/hashicorp/http v3.4.3
+ provider registry.terraform.io/hashicorp/null v3.2.2
+ provider registry.terraform.io/hashicorp/random v3.6.2

Not stale


Improve Testing Experience

Start setting up dockerfile that creates mssql image that contains AdventureWorksDW database loaded.
Fiddle with the concepts directory in testing since if I run tests from the root of this repo that environment fixture has a working_directory that is the root of this repo

@greenmtnboy took some work to get into a state where tests could pass.  Cleaned some stuff up and added some automation to help with that.  I don't have a windows machine handy, however. It might be good to run through the testing instructions in the README from scratch and see how it goes.


return svg text in MolVisualizer

No-compat: The returned value will change to raw svg text format.
When using on jupyter notebook, user need to write below explicitly.
from IPython.core.display import SVG
SVG(svg.replace('svg:', ''))

Codecov Report

Merging #388 into master will decrease coverage by 4.77%.
The diff coverage is 91.66%.

@@            Coverage Diff             @@
##           master     #388      +/-   ##
==========================================
- Coverage   91.42%   86.64%   -4.78%
==========================================
  Files         222      222
  Lines       10786    10786
==========================================
- Hits         9861     9346     -515
- Misses        925     1440     +515


Document Forest Change Detection use-case

Draft of this is available here https://docs.openeo.cloud/usecases/forest-change-detection/
Let me know if you have some feedbacks about it.

Looks pretty good to me, maybe the code snippets need a bit more contexts. Some variable come out of the blue...
Anyway, I've already added the corresponding JS code in the last days.
I found it interesting that the JS code is so much shorter and was wondering whether this code snippets could be simplified?
args_fit_curve = {
    "parameters": [1,1,1], # Initial guess of the parameters
    "dimension": "t",      # Fit the function along the temporal dimension
    "function": l2a_bands._get_callback(fit_function, parent_parameters=["data","parameters"])
}

curve_fitting = l2a_bands.fit_curve(**args_fit_curve)

Thanks for the input. Maybe one of the python client developers can help? @soxofaan @JeroenVerstraelen
It would be nice being able to represent the fit function as a string, but I guess it is not possible.

Indeed, the javascript code is shorter because the fit function there is encoded as a string, which is not supported in Python client. Instead you have to write this python function, which is more verbose.
a small improvement that could be done is skipping the intermediate args_fit_curve variable, like this:
curve_fitting = l2a_bands.fit_curve(
    parameters=[1,1,1], # Initial guess of the parameters
    dimension="t",      # Fit the function along the temporal dimension
    function=l2a_bands._get_callback(fit_function, parent_parameters=["data","parameters"])
)

A couple of things that could be done in the Python client:

it's unfortunate that you have to call a private method l2a_bands._get_callback like that, we should make sure that you can just do function=fit_function directly
I guess we can also add syntactic sugar so you can write parameters[0] instead of array_element(parameters, 0)

The use of _get_callback is the most confusing thing here IMHO and should eventually be fixed.
Also, I was wondering about the args_fit_curve object, which could directly be passed as parameters to fit_curve.

@clausmichele  : does that work with
l2a_bands._get_callback(fit_function, parent_parameters=["data","parameters"])

?
I think that should be
l2a_bands._get_callback(fit_function, parent_parameters=["x","parameters"])

because the parameter name "inside" the  child function is "x", not "data" (which is the argument name of "fit_curve")

Currently it works, if it should be x instead of data we can correct it after SRR2, Sophie is on holiday right now.

I already made PR for python client https://github.com/Open-EO/openeo-python-client/pull/230  so that the fit_curve calll can be further simplified to
curve_fitting = l2a_bands.fit_curve(
    parameters=[1,1,1], # Initial guess of the parameters
    dimension="t",      # Fit the function along the temporal dimension
    function=fit_function
)

But I guess we should only proceed with that after SRR2

Python client PR https://github.com/Open-EO/openeo-python-client/pull/231will make it possible to write fit_function to something like
def fit_function(x:ProcessBuilder, parameters:ProcessBuilder):
    t = 2 * math.pi / 31557600 * x
    return parameters[0] + parameters[1] * cos(t) + parameters[2] * sin(t)

side note: I think the documentation should also mention
from openeo.processes import cos, sin, array_element

somewhere, it is otherwise not obvious where these functions come from

Quick question: In the JS client examples I'm using the openEO process pi() as there it's easier to use - Any reason this is using the Python pi? Thinking about potential advantages or disadvantages...

side note: I think the documentation should also mention
from openeo.processes import cos, sin, array_element

somewhere, it is otherwise not obvious where these functions come from

You're right, I'll fix that

Any reason this is using the Python pi? Thinking about potential advantages or disadvantages...

using float pi will be marginally more efficient than openeo process pi() call because the backend doesn't need to do an additional process call.
If one is really worried about performance, they can even pre-calculate 2 * math.pi / 31557600, so that it doesn't have to be recalculated with each call of the fit function, e.g.:
_time_scaling = 2 * math.pi / 31557600

def fit_function(x:ProcessBuilder, parameters:ProcessBuilder):
    t = _time_scaling * x
    return parameters[0] + parameters[1] * cos(t) + parameters[2] * sin(t)

That being said, I think the effective performance boost of these optimizations kind will be negligible in practice.

Also for code like this:
l2a_bands.process("dimension_labels", {
    "data": THIS,
    "dimension": "t"
})

a request should be made to support those dimension_labels and load_result directly in the python client. It's not the intention that users have to work in this ugly generic manner.

It's not the intention that users have to work in this ugly generic manner.

indeed, and we also have this idea to support processes dynamically in addition to statically defined DataCube methdos, e.g.: https://github.com/Open-EO/openeo-python-client/issues/40#issuecomment-584533802

FYI: https://github.com/Open-EO/openeo-python-client/pull/230  (no need for _get_callback anymore in fit_curve and predict_curve) https://github.com/Open-EO/openeo-python-client/pull/231 (parameter[n] syntax) have been merged
also, DataCube.dimension_labels has been added (https://github.com/Open-EO/openeo-python-client/commit/227ef93b8aabb650ba382cfc8cb02d49f17a602b)

I've updated the doc based on the latest changes https://github.com/openEOPlatform/documentation/blob/main/usecases/forest-change-detection/index.md

looks a lot better now :+1:
minor remark: the fit function is currently called def fitFunction in Python, while it is more common to use snake case def fit_function here

I know, but I just wanted to align between Python and Javascript. It's anyway just a style choice, one may choose to use camelCase for functions and snake_case for variables.

I think it's fine to use language specifics best practices. Names don't need to 100% fit, so feel free to change to fit_function for Python.


🐞[Bug] Incorrect HTML Tag in register.html

Bug Report: Incorrect HTML Tag in register.html
Description
In the register.html file, there is an incorrect usage of an HTML tag that could lead to rendering issues. Specifically, on line 14, the tag <class="main-user-info"> is incorrectly written. This could potentially cause problems in the layout and styling of the user information section.
Proposed Solution
The line should be corrected to use the appropriate HTML tag. Replace:

<class="main-user-info">

with:

<div class="main-user-info">

This change will ensure that the HTML is valid and that the styles associated with the class main-user-info are applied correctly.
Issue Location

File: register.html
Line: 14

Screenshot

Additional Notes
Ensuring proper HTML structure is essential for the application to function as intended. This correction will help maintain code quality and improve the user interface.

@tushargupta1504 I would like to fix this, please assign me this issue