TransactionCommand applied incorrectly

Bug Report
Current Behavior
During load testing, I found that some commands throw RedisCommandTimeoutException. When I checked the DEBUG log in io.lettuce.core.protocol, I found that the transaction was applied to an incorrect command.
Below is the log. The transactional commands of the function1 are processed as SubscriptionCommand. The first "WATCH" command of the function2 is processed as TransactionalCommand. Even though the "WATCH" command received response from redis server, it throws the RedisCommandTimeoutException.
2021-02-05 02:53:37,709 DEBUG [my-service-executor-2] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() writeAndFlush command SubscriptionCommand [type=MULTI, output=StatusOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,709 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] write(ctx, SubscriptionCommand [type=MULTI, output=StatusOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command], promise)
2021-02-05 02:53:37,709 DEBUG [lettuce-epollEventLoop-4-1] CommandEncoder: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379] writing command SubscriptionCommand [type=MULTI, output=StatusOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Received: 5 bytes, 1 commands in the stack
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Stack contains: 1 commands
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() writeAndFlush command SubscriptionCommand [type=HSET, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] write(ctx, SubscriptionCommand [type=HSET, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command], promise)
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandEncoder: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379] writing command SubscriptionCommand [type=HSET, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() done
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() writeAndFlush command SubscriptionCommand [type=EXPIRE, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] write(ctx, SubscriptionCommand [type=EXPIRE, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command], promise)
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandEncoder: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379] writing command SubscriptionCommand [type=EXPIRE, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() done
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() writeAndFlush command SubscriptionCommand [type=EXPIRE, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] write(ctx, SubscriptionCommand [type=EXPIRE, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command], promise)
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandEncoder: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379] writing command SubscriptionCommand [type=EXPIRE, output=BooleanOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() done
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() writeAndFlush command SubscriptionCommand [type=EXEC, output=MultiOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] write(ctx, SubscriptionCommand [type=EXEC, output=MultiOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command], promise)
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] CommandEncoder: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379] writing command SubscriptionCommand [type=EXEC, output=MultiOutput [output=null, error='null'], commandType=io.lettuce.core.protocol.Command]
2021-02-05 02:53:37,710 DEBUG [lettuce-epollEventLoop-4-1] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() done
2021-02-05 02:53:37,710 DEBUG [my-service-executor-2] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() done
2021-02-05 02:53:37,711 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Received: 9 bytes, 4 commands in the stack
2021-02-05 02:53:37,711 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Stack contains: 4 commands
2021-02-05 02:53:37,712 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Received: 34 bytes, 3 commands in the stack
2021-02-05 02:53:37,712 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Stack contains: 3 commands
2021-02-05 02:53:37,712 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Stack contains: 2 commands
2021-02-05 02:53:37,712 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Stack contains: 1 commands
2021-02-05 02:53:37,839 DEBUG [my-service-executor-2] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() writeAndFlush command TransactionalCommand [type=WATCH, output=StatusOutput [output=null, error='null'], commandType=io.lettuce.core.RedisPublisher$SubscriptionCommand]
2021-02-05 02:53:37,839 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] write(ctx, TransactionalCommand [type=WATCH, output=StatusOutput [output=null, error='null'], commandType=io.lettuce.core.RedisPublisher$SubscriptionCommand], promise)
2021-02-05 02:53:37,839 DEBUG [lettuce-epollEventLoop-4-1] CommandEncoder: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379] writing command TransactionalCommand [type=WATCH, output=StatusOutput [output=null, error='null'], commandType=io.lettuce.core.RedisPublisher$SubscriptionCommand]
2021-02-05 02:53:37,839 DEBUG [my-service-executor-2] DefaultEndpoint: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, epid=0x49] write() done
2021-02-05 02:53:37,840 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Received: 5 bytes, 1 commands in the stack
2021-02-05 02:53:37,840 DEBUG [lettuce-epollEventLoop-4-1] CommandHandler: [channel=0xa0e0cdc5, /<IP_ADDRESS>:59746 -> <IP_ADDRESS>/<IP_ADDRESS>:6379, chid=0x49] Stack contains: 1 commands

This issue occurs when the caller thread of the "MULTI" command runs delayed the StatefulRedisConnectionImpl.dispatch (RedisCommand <K, V, T> command)'s finally statement. You can see the "write() done" of the MULTI command logged after the "EXEC" command is done. (focus on the thread name of the log)
    @Override
    public <T> RedisCommand<K, V, T> dispatch(RedisCommand<K, V, T> command) {

        RedisCommand<K, V, T> toSend = preProcessCommand(command);

        try {
            return super.dispatch(toSend);
        } finally {
            if (command.getType().name().equals(MULTI.name())) {
                multi = (multi == null ? new MultiOutput<>(codec) : multi);
            }
        }
    }

Input Code
function1
return reactiveCommands.multi()
              .flatMap(multiResult -> {
                reactiveCommands.hset(sessionInventoryRedisKey, String.valueOf(sessionKey), sessionInventoryItem.toJson()).subscribe();
                reactiveCommands.expire(sessionInventoryRedisKey, maxSessionExpireSeconds).subscribe();
                reactiveCommands.expire(sessionRedisKey, sessionExpireSeconds).subscribe();
                return reactiveCommands.exec();
              })
              .doOnSuccess(transactionResult -> {
                // do something..
              }

function2
return reactiveCommands.watch(sessionInventoryRedisKey)
              .flatMap(watchResult -> reactiveCommands.hgetall(sessionInventoryRedisKey))
              .doOnSuccess(result -> {
                // do something..
              }

Expected behavior/code
The commands that come after the "MULTI" command must be processed by TransactionalCommand regardless of the thread order.
Environment

Lettuce version(s): 5.3.6.RELEASE
Redis version: 5.0.4

Possible Solution
How about set multi field before run super.dispatch(sentCommands); in  StatefulRedisConnectionImpl.dispatch (RedisCommand <K, V, T> command).
    @Override
    public <T> RedisCommand<K, V, T> dispatch(RedisCommand<K, V, T> command) {

        RedisCommand<K, V, T> toSend = preProcessCommand(command);

        if (command.getType().name().equals(MULTI.name())) {
            multi = (multi == null ? new MultiOutput<>(codec) : multi);
        }

        return super.dispatch(toSend);
    }

Are you using dedicated connections for each transaction or are you sharing a single connection across multiple concurrent Reactive Streams subscriptions?

I'm using dedicated connections for each transaction.

Interestingly, the multi state isn't activate after sending the MULTI command. Did you try locally moving the multi block to before calling super.dispatch? Each approach is error prone to different usages or error scenarios. Enabling multi before sending the command can leave the connection in multi state although the command was rejected.

Do you mean, did I have tried the "Possible Solution" that i suggested by myself? If the question is that, the answer is "no". Sorry.  I am very beginner, so I haven't tried modifying myself yet.
I saw public Collection<RedisCommand<K, V, ?>> dispatch(Collection<? extends RedisCommand<K, V, ?>> commands) method. That method has set multi state before super.dispatch(sentCommands). So, I thought it can be possible to modify similarly. Below is that method.
    @Override
    public Collection<RedisCommand<K, V, ?>> dispatch(Collection<? extends RedisCommand<K, V, ?>> commands) {

        List<RedisCommand<K, V, ?>> sentCommands = new ArrayList<>(commands.size());

        commands.forEach(o -> {
            RedisCommand<K, V, ?> command = preProcessCommand(o);

            sentCommands.add(command);
            if (command.getType().name().equals(MULTI.name())) {
                multi = (multi == null ? new MultiOutput<>(codec) : multi);
            }
        });

        return super.dispatch(sentCommands);
    }

If the suggested solution has a problem with an error scenario, how about setting the multi state via attachOnComplete in the preProcessCommand method? If you set the multi state of the connection before propagated to my code's onComplete(),  the race condition problem is gone.

the issue with attachOnComplete is that you then no longer can make use of pipelining because onComplete happens when Redis responds which requires awaiting completion of MULTI. Right now, we enable output collection via multi without the need to await a Redis response. That allows triggering commands right away using e.g. the async API.

OK, I understood that using attachOnComplete is not possible solution.
Today I tried to modify lettuce-core souce code, and applied it to my application manually. When I move the multi block to before calling super.dispatch, the problem was not reproduced. The solution works well for me. Maybe this modification can make side effect. But even now, the multi block is in the finally statement. Even if errors occured in the super.dispatch, the multi block will be executed. So I thought the additional issue - leave the connection in multi state although the command was rejected - is already exists, and should be treated as separate issue.

Thanks for the update. Do you want to submit a pull request?

I filed https://github.com/lettuce-io/lettuce-core/issues/1650 as follow up.


editor is still getting focused after autofocus=false

Describe the bug
<Editor autofocus={false}/>

Then also editor is getting focused after load
To Reproduce
Steps to reproduce the behavior:
Clone this repo https://github.com/ats1999/editor-no-chakra-UI and run the example.
Expected behaviour
Editor should not get focused
Screenshots
If applicable, add screenshots to help explain your problem.
https://user-images.githubusercontent.com/54087826/138985006-ef62f51f-c222-4c82-a44a-4049a346fae2.mp4
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@ats1999
Sorry for late replying. I will check it in your repo.

This is the same like: https://github.com/nhn/tui.editor/issues/1802


Beginner friendly ML from scratch

Hello, as mentioned earlier, I will be covering these following topics:
(Level 0) Basic Mathematical Tools required for ML
This section includes

Basic Linear algebra Concepts like vectors, matrix, tensors (little bit), some basic operations of matrices, and vectors like dot products, matrix multiplications. Also some code examples of numpy operations of the above concepts and operations required frequently.
Some basics of probability, like conditionals, Bayes Theorem, etc.
Very basics of differentiation.

(Level 1) Supervised ML algorithm
This section includes

Introduction to simple linear regression.
Using those earlier concepts, I will break down the concept of simple linear regression into several parts, and step by step code our own regression algorithm from scratch (using numpy only).
Once done, we will compare the results with sklearn, using one dummy datasets.

(Level 2) Logistic regression
This section includes

Classification is another important aspect of supervised learning. And I am not including that in the previous level (just to not make it overwhelming)
We will cover the basics of logistic regression, and similar to the previous level, we will code it from scratch (for both binary and multi class classification)
And finally, we will compare that with sklearn.

(Level 3) Unsupervised ML algorithm
Here we will include just one algorithm, to keep this total curriculum short, and simple. So this section includes:

Understanding K-means clustering, its theory.
Like the previous sections, here also we will break the concepts and cover those one by one.
Finally making our own algorithm using numpy.

Please review this curriculum, I thought of. I will also provide good resources for further studies. Also I will do my very best to keep things, as simple as possible. Also please check out this colab, This is just for demo purpose. I generally use latex for important equations. And also, I use my own hand drawn images for graphics. If all these seems fine, then please let me know. Thank you.

Hello,
Please remember, per my previous email, that since most of what you have mentioned in this curriculum are topics we have already covered, we are only interested in considering the addition of ONE sidecar lesson on math for ML (your first topic).
The style should match our written style, which your colab does not so far. Statements such as "Here I am assuming that the readers at least know the very fundamentals of calculus" are not inline with our style guide. I will be the one who will create the illustrations, so that part is not necessary.
A lesson template is here: https://github.com/microsoft/Web-Dev-For-Beginners/tree/main/lesson-template and our style guide is here: https://github.com/jlooper/curriculum-template/wiki
Please provide a detailed outline of the ONE sidecar lesson you intend to provide, making sure that it follows our format. I don't want to guarantee that this submission will be included in this curriculum, since as I said, the topics are fixed and completed, but I'm open to reviewing an outline as a first step of many.
thank you!

Thank you, for giving me a chance. I will do my best and follow according to the template provided.


SA1413 falsely generated

The following code:
            var model = await this.mediator.Send(
                            new GetSessionDetailQuery
                            {
                                Id = id
                            });

causes a SA1413 warning when it really shouldn't.  The warning should not happen for the last line in a multi-line initializer

Yes, this is the main goal of SA1413. Sometimes SA1413 is confused with a readability rule when people see in the first time, but it is actually a maintainability rule. Please see the documentation in SA1413.md for more information.

Duplicate of #2416

ahh, i see.  I like it.  I used the github search to try and find SA1413, but it didn't find the doc.  sorry for the dupe and thanks.

No problem 👍


How to run pre-trained model on custom data?

I need to run the pre-trained models on some custom data I have. How do I do that? Do I just replace the data in appropriate folders of Rent3D++ data set? Reading the README, I could not understand how to use this repo out of the box to generate 3d plans for custom data. Awesome work btw:)
For example:
Suppose I already have vectorised floor plan data along with photos mapped to some subset of rooms, and now want to use plan2scene using a pre-trained model for now, how can I do that?

Hi, you have to convert the floorplan vector to the scene.json format we use. It should be straightforward conversion. Ill upload a doc explaining this format shortly. You can refer to the  Rent3D++ for example scene.json files.

Hi @fomalhaut-b

The data organization of the Rent3D++ dataset is explained here. This document also explains the photoroom.csv files that we use to indicate the assignment of photos to rooms.
The scene.json format we use to specify house architecture is explained here.
An example scene.json file is provided here.

Also, you have to do some additional optional steps explained in the readme, such as extracting rectified surface crops from photos. Refer to point 1.iii here.
Let me know if you need anything else.

Hi @madhawav Thanks for the response. I understood that I have to convert to the scene.json file format.
Now, the scene.json file contains several things as you have mentioned - wall, holes, materials, textures. etc. But everything won't be known beforehand right, most of this information will be filled by the algorithm. So, do I just put the things I know, and let other thing (like texture) to be filled by the algorithm?

So, the way I understand it is.
Use (http://art-programmer.github.io/floorplan-transformation/paper.pdf) for raster-vector transformation. This will give us the wall position, wall holes, etc. But it wont give texture and materials. These things will be given by plan2scene.

Lastly, what are "CAD Objects" Didn't quite understand their role after reading your paper? Do we have to specify them as input? Or will it be in ouput?
I think adding a simple guide for custom inputs in the README would be great. I can help out it editing/making it. Thanks

Hi @fomalhaut-b

You are correct. The plan2scene code will fill in the textures. So, you don't have to specify them in the scene.json files used as the input. Strictly speaking, what's necessary for texturing stages of Plan2Scene is the 'rooms' section (we identify room type from it) and the 'rdr' section (we generate the GNN graph representation using it) of scene.json files. Also, the photoroom.csv files are necessary. The rectified crops extracted from those photos are necessary.

Your understanding is correct. Texturing is the core of what we do. But, we do provide a couple of additional scripts useful for CAD model placement given the object icon AABBs and door/window line segments from the floorplan vector (see details below).

What are CAD objects?
Raster-to-vector will provide you the object icons as axis-aligned bounding boxes (AABBs). It will provide doors/windows as line segments. To bring those into 3D, one has to place 3D shapes in place of those bounding boxes/line segments. It is those 3D shapes we call CAD models.
We developed a simple set of rules to identify suitable 3D CAD models, and their placements (position, rotation, and scale), given the door/window line segments and object icon AABBs provided by a vectorization approach. This set of rules is described in the supplemental materials.
Should you provide CAD objects in the input?
This is not required. As I mentioned above, we have devised a set of rules to identify CAD model placements. Applying these rules is optional and the instructions on how to apply these rules are described by the scripts here. These scripts require object icon AABBs specified as 'objectabb.json' files. Also, the doors/windows have to be specified as holes in the input scene.json. The output of those scripts will be scene.json files with the objects section populated.
Does our output scene.json files have CAD objects?
If you use the optional scripts above, then yes. Otherwise, No.
I agree that having a simple guide for custom inputs will be useful. Any help is much appreciated!

Hi @fomalhaut-b
I have this old project which can convert raster-to-vector outputs to the scene.json format we use. I am refactoring it these days, so it can be merged with the Plan2Scene code. I will let you know when its merged.

Hi @fomalhaut-b
Here are the instructions on how to use raster-to-vector outputs with plan2scene: https://github.com/3dlg-hcvc/plan2scene/blob/main/docs/md/plan2scene_on_r2v.md
Please let me know if you come across any issues.

@madhawav thanks for the updates. These are very useful. I kind of dropped off this work since the exact use case wasn't matching, but I am planning to try to get it running in few months. Looks very interesting. The colab is very helpful btw!


Repository URL does not work

Hi, I installed clear installation on W2012R2 IIS server (http://intranet/), creation of repository is without problem, the url on the repository http://intranet/Bonobo.Git.Server/Repository/intranet works correctly, but any attempt to go to url "General url" : "http://intranet/Bonobo.Git.Server/intranet.git" shows error 404 and in the IIS log there is row
2017-03-29 16:23:39 <IP_ADDRESS> GET /Bonobo.Git.Server/intranet.git - 80 Jan+Němec <IP_ADDRESS> Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/56.0.2924.87+Safari/537.36 http://intranet/Bonobo.Git.Server/Repository/intranet 200 0 0 0
I have no clue where to search another log error

You should not browse to the xxxxxx.git URL - it's just for use with Git clients.

This URL is for use on Git clients, not accessed via browser.

I'm having the same problem:

git clone http://<IP_ADDRESS>/CEFAG.git de
Cloning into 'de'...
fatal: unable to access 'http://<IP_ADDRESS>/CEFAG.git/': The requested URL returned error: 403

I copy the app into wwwrooot (i tried to with wwwroot\Bonobo\ "http://<IP_ADDRESS>/bonobo/CEFAG.git/")
Bonobo versión 6.0
IIS 7.5

@huchim That's not the same problem - the OP is browsing to the Git URL and getting a 404 - you're using a Git client and getting a 403 error which is some kind of permissions problem.
Can you get to any of the Bonobo pages with a browser?

Ops! That's true :smile:
I can access any pages in the browser (including http://<IP_ADDRESS>/Repository/Detail/25e99306-2e6b-44e0-b5ca-da2f928063de) ...

Make sure it is not some proxy setting.

Do you have any kind of cached credentials at the client?
Try running set GIT_TRACE_CURL=true at the command line before the git clone and have a good look through the resulting trace to see if you can see what's happening.

Thanks @willdean, after using the variable GIT_TRACE_CURL I could see that the problem as as @holiiveira said me.
Thank you so much guys!
I used the variable NO_PROXY=<IP_ADDRESS> in order to bypass my proxy.

Well, I tried the web gui client and pushed the repository with following result:
fatal: http://intranet/Bonobo.Git.Server/intranet.git/info/refs not valid: is this a git repository?
Pushing to http://intranet/Bonobo.Git.Server/intranet.git
and server log shows
2017-03-31 05:16:24 <IP_ADDRESS> GET /Bonobo.Git.Server/intranet.git/info/refs service=git-receive-pack 80 - <IP_ADDRESS> git/2.11.0.windows.1 - 401 0 0 15
2017-03-31 05:16:24 <IP_ADDRESS> GET /Bonobo.Git.Server/intranet.git/info/refs service=git-receive-pack 80 - <IP_ADDRESS> git/2.11.0.windows.1 - 401 0 0 0
2017-03-31 05:16:24 <IP_ADDRESS> GET /Bonobo.Git.Server/intranet.git/info/refs service=git-receive-pack 80 OTK\u935 <IP_ADDRESS> git/2.11.0.windows.1 - 200 0 0 15

@jannemec Do you really have a repository called 'intranet'?
I'm not really clear all the different things you've tried, but I'd suggest the following:

Make sure you're using Bonobo 6.0
Use the web interface to create a new repository
On the repository's page in the Bonobo web interface, there's a 'Git URL' with a copy button next to it
Start a command line and enter set GIT_TRACE_CURL=true
At the command line enter git clone <Git URL from the repository page>

@willdean yea I do have - I tried to reinstall bonobo git server - after some time (I hade to manualy download the the repository (I renamed to otk) and cloned it but for each push I get error 500 and on the server is  log message
2017-04-03 07:27:35 <IP_ADDRESS> GET /Bonobo.Git.Server/otk.git/info/refs service=git-receive-pack 80 OTK\u935 <IP_ADDRESS> git/2.11.0.windows.1 - 500 0 64 15

BTW cloning of repository shows following message
$ git clone http://intranet/Bonobo.Git.Server/otk.git
Cloning into 'otk'...
warning: You appear to have cloned an empty repository.
and downloaded empty repository returns zip that cannot be opened - zip error

@jannemec If you're running Bonobo 6.0, you can start a browser on the server and go to http:///home/diagnostics - this will give you/us some diagnostic information including a recent part of the Bonobo error log, which might help see what's going on.
You should also follow my instructions about set GIT_TRACE_CURL=true to you can see what's happening on the client.

Web.Config AppSettings
--AppSettings.webpages:Enabled: 'false'
--AppSettings.ClientValidationEnabled: 'true'
--AppSettings.UnobtrusiveJavaScriptEnabled: 'true'
--AppSettings.UserConfiguration: '~\App_Data\config.xml'
--AppSettings.DefaultRepositoriesDirectory: '~\App_Data\Repositories'
--AppSettings.GitPath: '~\App_Data\Git\git.exe'
--AppSettings.GitHomePath: '~\App_Data'
--AppSettings.RecoveryDataPath: '~\App_Data\Recovery'
--AppSettings.AuthenticationProvider: 'Cookies'
--AppSettings.ImportWindowsAuthUsersAsAdmin: 'false'
--AppSettings.MembershipService: 'Internal'
User Configuration:
--User config file: 'C:\inetpub\intranet\Bonobo.Git.Server\App_Data\config.xml'
--User config readable: OK
--User config saveable: OK
--User config folder: Exists, 5 files, 7 entries, writeable
Repo Directory
--Configured repo path: '~\App_Data\Repositories'
--Effective repo path: 'C:\inetpub\intranet\Bonobo.Git.Server\App_Data\Repositories'
--Repo dir: Exists, 1 files, 3 entries, writeable
Git Exe
--Git path: 'C:\inetpub\intranet\Bonobo.Git.Server\App_Data\Git\git.exe'
--Git.exe exists: OK
Federated Authentication
--Not Enabled:
Active Directory
--Not Enabled
Internal Membership
--User count: 4

Exception Log
--LogFileName: : C:\inetpub\intranet\Bonobo.Git.Server\App_Data\Bonobo.Git.Server.Errors.log
--Log File total length: 56801
--Starting log dump from : 46801
angeException: Length cannot be less than zero.
Parameter name: length
at System.String.Substring(Int32 startIndex, Int32 length)
at Bonobo.Git.Server.GitAuthorizeAttribute.IsUserAuthorized(String authHeader, HttpContextBase httpContext)
at Bonobo.Git.Server.GitAuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext)
at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor)    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__19(AsyncCallback asyncCallback, Object asyncState) Native library pre-loader is trying to load native SQLite library "C:\inetpub\intranet\Bonobo.Git.Server\bin\x64\SQLite.Interop.dll"... w3wp.exe Error: 0 : 04/03/2017 14:11:04: Error caught in GitController System.NullReferenceException: Object reference not set to an instance of an object.    at Bonobo.Git.Server.Controllers.GitController.GetInfoRefs(String repositoryName, String service)    at Bonobo.Git.Server.Controllers.GitController.SecureGetInfoRefs(String repositoryName, String service)    at lambda_method(Closure , ControllerBase , Object[] )    at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters)    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)    at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.b__3f()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.b__1c()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__1e(IAsyncResult asyncResult)
w3wp.exe Error: 0 : 04/03/2017 14:12:35: Error caught in GitController System.NullReferenceException: Object reference not set to an instance of an object.
at Bonobo.Git.Server.Controllers.GitController.GetInfoRefs(String repositoryName, String service)
at Bonobo.Git.Server.Controllers.GitController.SecureGetInfoRefs(String repositoryName, String service)
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters)    at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult)    at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)    at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d()    at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()    at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()    at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f()    at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<>c__DisplayClass2b.<BeginInvokeAction>b__1c()    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) Native library pre-loader is trying to load native SQLite library "C:\inetpub\intranet\Bonobo.Git.Server\bin\x64\SQLite.Interop.dll"... w3wp.exe Error: 0 : 04/03/2017 14:18:31: Error caught in GitController System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length    at System.String.Substring(Int32 startIndex, Int32 length)    at Bonobo.Git.Server.GitAuthorizeAttribute.IsUserAuthorized(String authHeader, HttpContextBase httpContext)    at Bonobo.Git.Server.GitAuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext)    at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback asyncCallback, Object asyncState)
Native library pre-loader is trying to load native SQLite library "C:\inetpub\intranet\Bonobo.Git.Server\bin\x64\SQLite.Interop.dll"...
w3wp.exe Error: 0 : 04/03/2017 15:13:09: Error caught in GitController System.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length
at System.String.Substring(Int32 startIndex, Int32 length)
at Bonobo.Git.Server.GitAuthorizeAttribute.IsUserAuthorized(String authHeader, HttpContextBase httpContext)
at Bonobo.Git.Server.GitAuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext)
at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor)    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__19(AsyncCallback asyncCallback, Object asyncState) w3wp.exe Error: 0 : 04/03/2017 15:20:39: Error caught in GitController System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length    at System.String.Substring(Int32 startIndex, Int32 length)    at Bonobo.Git.Server.GitAuthorizeAttribute.IsUserAuthorized(String authHeader, HttpContextBase httpContext)    at Bonobo.Git.Server.GitAuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext)    at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback asyncCallback, Object asyncState)
w3wp.exe Error: 0 : 04/03/2017 15:21:47: Error caught in GitController System.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length
at System.String.Substring(Int32 startIndex, Int32 length)
at Bonobo.Git.Server.GitAuthorizeAttribute.IsUserAuthorized(String authHeader, HttpContextBase httpContext)
at Bonobo.Git.Server.GitAuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext)
at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor)    at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.<BeginInvokeAction>b__19(AsyncCallback asyncCallback, Object asyncState) w3wp.exe Error: 0 : 04/03/2017 15:26:55: Error caught in GitController System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length    at System.String.Substring(Int32 startIndex, Int32 length)    at Bonobo.Git.Server.GitAuthorizeAttribute.IsUserAuthorized(String authHeader, HttpContextBase httpContext)    at Bonobo.Git.Server.GitAuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext)    at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList1 filters, ActionDescriptor actionDescriptor)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback asyncCallback, Object asyncState)
Native library pre-loader is trying to load native SQLite library "C:\inetpub\intranet\Bonobo.Git.Server\bin\x64\SQLite.Interop.dll"...
w3wp.exe Error: 0 : 04/03/2017 15:31:34: Error caught in GitController System.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length
at System.String.Substring(Int32 startIndex, Int32 length)
at Bonobo.Git.Server.GitAuthorizeAttribute.IsUserAuthorized(String authHeader, HttpContextBase httpContext)
at Bonobo.Git.Server.GitAuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext)
at System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass21.b__19(AsyncCallback asyncCallback, Object asyncState)
Native library pre-loader is trying to load native SQLite library "C:\inetpub\intranet\Bonobo.Git.Server\bin\x64\SQLite.Interop.dll"...

$ git clone http://intranet/Bonobo.Git.Server/otk.git
Cloning into 'otk'...
warning: You appear to have cloned an empty repository.

this warning is only a .... warning - and is expected, so it seems that you successfully cloned the empty repository? Does the folder contiain a .git folder (normally hidden) ?
About downloading a empty repository, it works fine here - using winrar to browse the zip file.
Are there any special characters in the username or password? Because it seems it fails to split the 64based encoded string which contains the supplied password and username.
What client is used? and do you enter credentials? Are you using any special characters(this shouldn't result in the argumentOutOfRangeException)

@jannemec - Thanks for posting that - as @larshg says, there is something wrong with the way your client is trying to authenticate.

@larshg  I confirm downloaded zip can be opened by winrar.
And you are right (at least I hope so) the problem is with authentication. I am using on windows 10 git 2.12.2 from git-scm.com - 64bit version
When I allowed anonymous push,, I was able to push repository to server
I can live with anonymous push (its intranet site), but I have no idea why the authentication failed.

Are you just using git bash?

And BTW, thank you all very much for this product and support.

@larshg yes i use git bash, I tried even gui and git from Netbeans environment - all same result, From git bash there was prompt for username and password - and authentication error for 1. attempt, error 500 for second attempt.

@jannemec does it fail if you use the default admin user?
How is the IIS setup with authentication?
Alternatively can you try clone bonobo and run it in debug yourself? It will launch a standard site where you can try create a repository at see if you can clone / push to this? And maybe set a breakpoint here ?

Hi guys, i'm having the same problem


AddChild throws an error if I try to pass a node that was removed from another parent

Godot version:
master / 0ffec7daf
OS/device including version:
Manjaro Linux 17.1
Issue description:
If I call RemoveChild() on a parent to remove a child node then use the node as an argument to AddChild for a different parent, I get the following error:
ERROR: get_node: Node not found: /root/Test Area/Entities/Characters/Player/Rig/Skeleton/Right Hand/Equip/Rag2
   At: scene/main/node.cpp:1277.

The node path displayed in the message refers to the child's previous path before it was removed. And I can't find much clues from the stacktrace aside from that the error was thrown from the native method that AddChild invokes.

AFAIK add_child() doesn't call get_node(). Are you sure that your script is not calling get_node() from somewhere else?

Yes, I checked that part too and I couldn't find any of my own code referencing GetNode() between those calls.
And as I mentioned in the description, the stacktrace indicates Node.AddChild so I doubt it was caused by any user level code:

AddChild itself seems to work despite the error message. I tried to add and remove the same node repeatedly and it didn't cause any serious problems apparently, even though the error message was logged each time it was added.

Upon some debugging, I found that the problem was caused by my own mistake. I assigned an absolute path to MeshInstance.Skeleton, so when the MeshInstance's parent path is changed (i.e. being dropped to the ground), it will try to restore the skeleton path upon tree_enter, thus throwing an error about failing to find the target node.


Dev

Codecov Report

Merging #20 into master will increase coverage by 29.01%.
The diff coverage is 93.44%.

@@             Coverage Diff             @@
##           master      #20       +/-   ##
===========================================
+ Coverage   47.19%   76.20%   +29.01%
===========================================
  Files          11       11
  Lines         356      374       +18
===========================================
+ Hits          168      285      +117
+ Misses        188       89       -99

Impacted Files
Coverage Δ

src/peon/comandline/project_tree.py
72.72% <ø> (ø)

src/peon/project/file/function_def/function.py
95.20% <90.90%> (+76.61%)
:arrow_up:

src/peon/lint/principles/links.py
100.00% <100.00%> (ø)

src/peon/lint/principles/principles.py
59.18% <100.00%> (+14.50%)
:arrow_up:

src/peon/project/file/class_def/classes.py
97.05% <100.00%> (+6.43%)
:arrow_up:

src/peon/project/file/file.py
64.28% <100.00%> (+30.95%)
:arrow_up:

...ject/file/function_def/expression/returned_expr.py
100.00% <0.00%> (+6.06%)
:arrow_up:

Continue to review full report at Codecov.

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


Caddyfile is accessible by default config

Just created a Caddyfile, then run a site, I am surprised that Caddyfile is accessible through https://example.com/Caddyfile .
If add browser / to Caddyfille, then Caddyfile is inaccessible https://example.com/Caddyfile through https://example.com/Caddyfile .
Does this meet expectations?
I add basicauth to Caddyfile for another site, so I think it's unsafe.

Hi @l5h5t7  - I cannot reproduce this behavior:
::1 - - [27/Apr/2017:05:38:48 -0600] "GET /Caddyfile HTTP/1.1" 404 14

Next time, please follow the issue template so we have enough information to see what you're seeing.

OK! I will follow the issue template next time.
1. What version of Caddy are you using (caddy -version)?
Web Server: Caddy 0.10.0;
PHP: <IP_ADDRESS> (In fact, in any FastCGI);
OS: Windows 2003, Windows 10.
3. What is your entire Caddyfile?
:2020 {
	fastcgi / <IP_ADDRESS>:9000 php
}

8. How can someone who is starting from scratch reproduce the bug as minimally as possible?
The Caddyfile is in webroot.
Access http://localhost:2020/Caddyfile ,then you can reproduce it.

What's your backend doing? If it's serving static files, then of course it can read the Caddyfile. Caddy can't stop your fastcgi process from reading it. You'll have to move it out of the site or change permissions to forbid it.

Caddy prevents the caddyfile from being served as a static file.
It should prevent the file from being passed to fastcgi also.

I disagree. It's not Caddy's place to meddle in what upstreams are doing on the file system. The OS and the site owner are responsible for that.

Even FastCGI backend doesn't work (close php-cgi.exe), Caddyfile is still accessible.
My backend runs PHP using fastcgi / <IP_ADDRESS>:9000 php only.

@l5h5t7 Not sure I follow. You mean you took out the fastcgi directive and you could still access the Caddyfile? (Did you restart the server after changing the Caddyfile?)

Yes, I restarted caddy after changing the Caddyfile.
Just now, I tried to reproduce it on Linux, but it doesn't work ("404 Not Found" showed).
So I think:

on Windows;
Caddyfile is in wwwroot, and fastcgi in Caddyfile;
Needn't run FastCGI backend (but if you run it, it still works).

You can access Caddyfile though http(s)://{yourdomain}/Caddyfile .

@l5h5t7 If fastcgi / ... is in your Caddyfile, then it's proxying the request to your backend app, which probably doesn't know to hide the Caddyfile.
On Windows: if you take that directive out entirely (don't just turn off your fastcgi process - but remove the directive altogether), does it still show the Caddyfile?
I don't have Windows so I can't test this. I'll need your help. ;)

If remove fastcgi / ... from Caddyfile, caddy return "404 Not Found" when access http(s)://{yourdomain}/Caddyfile .

If fastcgi is being used with the  php preset, my understanding is that fastcgi should never be called for the Caddyfile as it does not have a .php extension.
I wonder is it being mistaken for a directory?  Or perhaps there is a differnt path that means it is being served by staticfiles but not being hidden.

Sigh. Yeah, that is weird. Can somebody with Windows investigate this? @l5h5t7 if you'd like, it would be a good way for you to get familiar with the code. :) And it would speed things up!

Replicated this on Windows 10 Pro 1703 build 15063.138.
1. What version of Caddy are you using (caddy -version)?
Caddy 0.10.0
2. What are you trying to do?
Serve any website (bare minimum configuration) without also serving the Caddyfile
3. What is your entire Caddyfile?
localhost
root C:\Users\micro\Downloads\caddy_v0.10.0_windows_amd64\webroot

4.
PS C:\Users\micro\Downloads\caddy_v0.10.0_windows_amd64\webroot> .\caddy.exe
Activating privacy features... done.
http://localhost:2015

5. Please paste any relevant HTTP request(s) here.
localhost:2015/Caddyfile
6. What did you expect to see?
Error 404
7. What did you see instead (give full error messages and/or log)?
localhost
root C:\Users\micro\Downloads\caddy_v0.10.0_windows_amd64\webroot

8. How can someone who is starting from scratch reproduce the bug as minimally as possible?

Download 0.10.0 from caddyserver.com/download
Extract .exe to some path
Make a minimal Caddyfile and place in webroot
Run caddy.exe from command line
Browse to localhost:2015/Caddyfile

The FileServer.IsHidden function tries to open each hidden file with http.FileSystem which always uses / as path the separator. So \Caddyfile on windows isn't located and this is enabled to pass through.
The PR patches this issue by using the filepath.ToSlash to correct the path before saving it to the HiddenFiles.
** http.FileSystem **
https://golang.org/pkg/net/http/#FileSystem

A FileSystem implements access to a collection of named files. The elements in a file path are separated by slash ('/', U+002F) characters, regardless of host operating system convention.

** FileServer.IsHidden **
https://github.com/mholt/caddy/blob/master/caddyhttp/staticfiles/fileserver.go#L210


Any plans for standard XNA

I understand that MonoGame is XNA, but with projects that are already using the standard XNA Framework and not the MonoGame version, getting text input is a tad harder.
Unless there's some easy method I can call to catch keyboard inputs like MonoGame does but for XNA then please shoot that my way.
EDIT: Sorry for the constant asking about input, just a very key thing to have when using imgui and if I can't get it to work then its a waste of time using it imo.

Hey @Hi-ImKyle , I'll try to answer to the best of my ability, but I'm not an XNA user myself so I may have to defer to others that know more. I wasn't aware that the sample project was using a MonoGame "extension" -- I thought everything was fully compatible with XNA, but that's not the case.
Are you able to try a solution like described in this Stack Overflow post? If the framework itself doesn't support getting input characters very easily, I think you will have to build something like that on top of it. The solution described there is Windows-specific, but so is XNA.

It's completely understandable to mix up XNA and MonoGame considering they are just the same thing and you would somewhat expect them to be useable together to some degree.
With that being said, the post you suggested doesn't seem to work. Though it had me thinking, what if I just had a low level hook to the keyboard and go from there. So I did some digging around on forums and found a basic keyboard hooking class, added a method to get a char from a key enum and lo and behold it works.
Now it works, I just need to creep around this SetData issue lol
Thanks for getting my head going, honestly if you didn't suggest that post I would've never have thought about a low level keyboard hook and I'm grateful that you did :) 👍


[WIP] First cut of the tracing frontend

Very preliminary version but already useful imho.

Fist cut lol

@asim Not good with words.

Self merge when you are ready!


Updated provider dependency to pubspec.yaml

Currently the pubspec.yaml pushes this provider dependency at versions 3.2.x and above.
provider: ^3.2.0

I would like to have an update to provider for 4.x.x versions as follows.
provider: ^4.0.0

Certainly not a huge deal, but may provide to be useful for some users that are unaware of the newer version.

I solved this in PR #11
I am just waiting for @madhukesh048 to do a code review and merge.


Modify margin in PipelineResult

Hello:)
I modified the margins of title in PipelineResult component.
before

after

cheers.

Looks good and thank you!


a missing semicolon can mess up the whole diagnostics

The following example has a missing semicolon, this semicolon has broken the whole diagnostic, The Butterfly Effect makes it hard to understand what's exactly happening and give a really bad develop experience.
Code:
use std::sync::{Arc, RwLock};

async fn test(data: Arc<RwLock<usize>>) -> usize {
    *data.write().unwrap() += 2;
    *data.write().unwrap()
}

#[async_std::main]
async fn main() -> Result<(), ()> {
    let data = Arc::new(RwLock::new(1)) // missing semicolon :)
    println!("{}", test(data).await);
    println!("Hello, world!");
    Ok(())
}

What's showing as diagnostics:

The main function not found are coming from rustc. They are caused by the fact that #[async_std::main] can't be expanded due to the syntax error, which means that rustc will just completely ignore the function.

@bjorn3 great thanks on your quick reply~ I'm wondering what can be done on this? As an user it's frustrating to see this kind of meaningless information

As an heuristic if a function is called main and couldn't be parsed, then a dummy fn main() {} could be inserted by rustc without any attributes.

Also rustc's "main not found" diagnostic encompasses the entire source file for some reason

I think this is an upstream issue and we shouldn't try to do anything about it.
I filed https://github.com/rust-lang/rust/issues/77968 upstream (maybe someone can add the A-diagnostics label).


csv files

A few notes about the csv files (forms, languages, etc.)
As the first 2 characters of the csv file are "ID", Excel thinks the file is an SYLK file rather than a CSV file (changing the "ID" to something else fixes this issue).  The file still opens, but Excel gives an error while opening it.
In forms:
In the GRAPHEMES column (which I believe is formatted for lingpy in Python):
~ is the marker for combining the 2 previous symbols - this works fine, and merges the 2 previous symbols (should the tilde remain after this merger?)
example: sisx~li becomes [^ s i xs~ l i $] - shouldn't this be [^ s i xs l i $]?
$ is the marker for combining the 3 previous symbols - this doesn't seem to work - the 3 symbols are not combined in the grapheme form (it is also used for the marker for the end of the grapheme, which may be confusing, as it seems the end of the grapheme is in the middle of the word).
example: wsk$aw becomes [^ w s k $ a w $] - shouldn't this be [^ wsk a w $]?
" is the marker for an ejective - this works properly BUT wouldn't it be better to use another symbol? Quotation marks are notoriously difficult to work with in programming (and in Excel), especially as strings are usually contained within a set of quotation marks.
The asterisk is the nasal marker - this is also difficult to work with in Excel (* is a reserved symbol, which makes searching for it within text difficult)

Thanks. The csv dormat follows the standard specs. If excel causes problems, they need to adjust their software. In fact, you can tell excel what file you want to load, I am sure there is a workaround from within excel.
Graphemes is not for lingpy. It reflects our segmentation procedure. You point to errors there, with start and end symbols. They should be fixed by us.
As the symbols in Graphemes reflect Asjp, we cannot replace them by different symbols. The column more interesting for you to search is Segments, providing the results of the conversion to some reduced bzt standart IPA. Graphemes just helps us to debug, and the errors you found are a good example, why that is important.


Pass packet to host and keep Hop Limit unchanged

Since NCP and Host are single node in terms of network, this PR keeps the Hop Limit  unchanged when "forwarding" to Host side.

Codecov Report

Merging #1562 into master will decrease coverage by 0.41%.
The diff coverage is 80%.

@@            Coverage Diff             @@
##           master    #1562      +/-   ##
==========================================
- Coverage    69.5%   69.09%   -0.42%
==========================================
  Files         156      156
  Lines       19589    20121     +532
  Branches     2425     2482      +57
==========================================
+ Hits        13616    13903     +287
- Misses       5102     5321     +219
- Partials      871      897      +26

Impacted Files
Coverage Δ

src/core/net/ip6.hpp
88.88% <ø> (ø)
:arrow_up:

src/core/net/ip6.cpp
53.91% <80%> (-9.53%)
:arrow_down:

src/core/net/netif.cpp
56.97% <0%> (-4.07%)
:arrow_down:

src/core/net/ip6_mpl.cpp
92.3% <0%> (-0.77%)
:arrow_down:

src/core/thread/mle_router.cpp
79.47% <0%> (-0.49%)
:arrow_down:

examples/platforms/posix/radio.c
77.17% <0%> (-0.42%)
:arrow_down:

src/core/thread/mle.cpp
81.34% <0%> (-0.08%)
:arrow_down:

src/core/thread/mesh_forwarder.cpp
76.68% <0%> (+0.11%)
:arrow_up:

src/core/thread/lowpan.cpp
92.83% <0%> (+0.35%)
:arrow_up:

... and 5 more

Continue to review full report at Codecov.

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


"A task was canceled" exception on Dispose

Application type: WPF 4.5+
Operating system version: Windows 10
Expected behavior: Not throw exception
Actual behavior: throw exception on Dispose() of Animator
Steps to reproduce the problem: Show Hide a window with a gif many times.

I think in TimingManager.NextAsync you have simply to check for CancellationTokenSource.IsCancellationRequested so the execution is interrupted correctly.
Here is also my callstack for this error:
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task task) + 0xae bytes
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task) + 0x41 bytes
mscorlib.dll!System.Runtime.CompilerServices.TaskAwaiter.GetResult() + 0x1c bytes
XamlAnimatedGif.dll!XamlAnimatedGif.TimingManager.NextAsync() + 0x314 bytes
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.InvokeMoveNext(object stateMachine) + 0x1a bytes
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) + 0xc4 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) + 0x17 bytes
mscorlib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() + 0x5e bytes
mscorlib.dll!System.Threading.Tasks.AwaitTaskContinuation.InvokeAction(object state) + 0x2c bytes
mscorlib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback callback, object state, ref System.Threading.Tasks.Task currentTask = null) + 0x56 bytes
mscorlib.dll!System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.Run(System.Threading.Tasks.Task task, bool canInlineContinuationTask) + 0x129 bytes
mscorlib.dll!System.Threading.Tasks.Task.FinishContinuations() + 0x47d bytes
mscorlib.dll!System.Threading.Tasks.Task.FinishStageThree() + 0x1a bytes
mscorlib.dll!System.Threading.Tasks.Task.CancellationCleanupLogic() + 0x72 bytes
mscorlib.dll!System.Threading.Tasks.Task<System.Threading.Tasks.VoidTaskResult>.TrySetCanceled(System.Threading.CancellationToken tokenToRecord, object cancellationException) + 0x46 bytes
mscorlib.dll!System.Threading.Tasks.Task.DelayPromise.Complete() + 0xa6 bytes
mscorlib.dll!System.Threading.Tasks.Task.Delay.AnonymousMethod__274_0(object state) + 0x2a bytes
mscorlib.dll!System.Threading.CancellationCallbackInfo.ExecutionContextCallback(object obj) + 0x20 bytes
mscorlib.dll!System.Threading.CancellationCallbackInfo.ExecuteCallback() + 0x2a bytes
mscorlib.dll!System.Threading.CancellationTokenSource.CancellationCallbackCoreWork(System.Threading.CancellationCallbackCoreWorkArguments args) + 0x2d bytes
mscorlib.dll!System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(bool throwOnFirstException = false) + 0xf7 bytes
mscorlib.dll!System.Threading.CancellationTokenSource.NotifyCancellation(bool throwOnFirstException) + 0x54 bytes
mscorlib.dll!System.Threading.CancellationTokenSource.Cancel() + 0x1d bytes
XamlAnimatedGif.dll!XamlAnimatedGif.Animator.Dispose(bool disposing = true) + 0x9e bytes
XamlAnimatedGif.dll!XamlAnimatedGif.Animator.Dispose() + 0x25 bytes
XamlAnimatedGif.dll!XamlAnimatedGif.AnimationBehavior.ClearAnimatorCore(System.Windows.Controls.Image image = {System.Windows.Controls.Image}) + 0xae bytes
XamlAnimatedGif.dll!XamlAnimatedGif.AnimationBehavior.InitAnimation(System.Windows.Controls.Image image = {System.Windows.Controls.Image}) + 0xf2 bytes
XamlAnimatedGif.dll!XamlAnimatedGif.AnimationBehavior.Image_Loaded(object sender = {System.Windows.Controls.Image}, System.Windows.RoutedEventArgs e = {System.Windows.RoutedEventArgs}) + 0x84 bytes

Hi @faze79,
Thanks for the report, I'll look into it

Hi @faze69,
I haven't been able to reproduce the problem, but I think I know what's causing it.
I published a beta that should fix it, could you try it please?

@faze79 have you been able to try the beta? Please keep me posted, if it works as expected I'll publish a stable release.

@faze79 I didn't get any feedback from you, so I'll assume the issue is fixed. Please chime in if you still encounter the problem.
I just released 1.2.2 which includes the fix.


Fix test_svd_compressed comparison

test_svd_compressed has a rather odd comparison. It would be great to fix up this comparison with something more reasonable like an array to array comparison with a tolerance.

This thread is relevant for fixing the issue.

Looks like this traces back to commit ( https://github.com/dask/dask/commit/2853e1b52d3695a02d46ed4adff66cdf522d151b#diff-d7290b4980b8cd1764d1e9eabf402115R104 ). Any ideas on this test, @marianotepper?

Looks good to me today


toucahud

made a new hud and wanted to post it on here!
https://tf2huds.dev/hud/toucaHUD
posted it on here before getting to this one

i updated the hash and fixed the remaining issues

Any way I could fix the check HUD error, idk what "Error: Process completed with exit code 1" exactly is. still new to all of this

i noticed right under my hud's .json file, it had a string talking about discord tags.

Should be .touca#0

did the discord tag correctly

Sweet! all the checks passed! is there anything else I need to do?

i just made the branch up to date


httpie is broken in latest netshoot

This is not #69, but similar. With current netshoot:latest, httpie does not work anymore:
mesh-debug-pod# http
Traceback (most recent call last):
  File "/usr/bin/http", line 33, in <module>
    sys.exit(load_entry_point('httpie==3.2.1', 'console_scripts', 'http')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/httpie/__main__.py", line 8, in main
    from httpie.core import main
  File "/usr/lib/python3.11/site-packages/httpie/core.py", line 8, in <module>
    import requests
  File "/usr/lib/python3.11/site-packages/requests/__init__.py", line 147, in <module>
    from . import packages, utils
  File "/usr/lib/python3.11/site-packages/requests/utils.py", line 24, in <module>
    from . import certs
  File "/usr/lib/python3.11/site-packages/requests/certs.py", line 14, in <module>
    from certifi import where
ModuleNotFoundError: No module named 'certifi'
mesh-debug-pod#

fixed in latest/v0.10 !


FIX : replace the obsolete github repo in the deploy workflow

fix : replace the obsolete github repo with a repo with the same name but under another github username.
Closes #3

I think we just need to update mkdocs and remove that extra plugin installation.

Fixed with #10.


cross-seed autotorrent

hi,
no issue here, i just wanted to ask you if you would share your autotorrent.conf
i find more and more torrents saved by cross-seed,
that would not be imported by autotorrent.
Missing files, only 0.00% found (xx GB missing)
when i add them manually they recheck just fine.
i use scan_mode = unsplitable,normal,hash_size
any help appreciated

You might need to rebuild your auto torrent database with -r. I use “exact” and it still works.
Sent from my iPhone
On Jun 24, 2020, at 15:38, scr44tch<EMAIL_ADDRESS>wrote:

hi,
no issue here, i just wanted to ask you if you would share your autotorrent.conf
i find more and more torrents saved by cross-seed,
that would not be imported by autotorrent.
Missing files, only 0.00% found (xx GB missing)
when i add them manually they recheck just fine.
i use scan_mode = unsplitable,normal,hash_size
any help appreciated
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/mmgoodnow/cross-seed/issues/6, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ACFSOCSKNQYWEQJI4PFKKDTRYJI4JANCNFSM4OHEX2NQ.

also, cross-seed does not do any validation to make sure that the torrents are done. It just assumes every torrent in the directory is already seeding.
Let me know if this helps so I can close the issue.


KeyDB reports very low redis_version

Hello!
First I'd like to thank you for all your hard work. I've noticed that via the INFO command, KeyDB is reporting a very low redis_version. This unfortunately breaks every piece of software which tests against this value.
Is it possible that instead of yielding the version of KeyDB in that field, it'd be better for compatibility purposes, to yield a version of Redis that the build is compatible with and maintain version information for KeyDB in a separate key like keydb_version?

Hi,
KeyDB’s next major version will be 5.0 (instead of 1.0) in order to solve
these problems.
In the mean time we have the version-override configuration option to set
the required version if necessary.
On Thu, Jul 11, 2019 at 3:54 AM azazeal<EMAIL_ADDRESS>wrote:

Hello!
First I'd like to thank you for all your hard work. I've noticed that via
the INFO command, KeyDB is reporting a very low redis_version. This
unfortunately breaks every piece of software which tests against this value.
Is it possible that instead of yielding the version of KeyDB in that
field, it'd be better for compatibility purposes, to yield a version of
Redis that the build is compatible with and maintain version information
for KeyDB in a separate key like keydb_version?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/JohnSully/KeyDB/issues/53?email_source=notifications&email_token=AA5W4AUXK2SE6CYIISOCYPDP63RJ5A5CNFSM4IAZHHOKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G6RVCMQ,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA5W4AT5WA24GO6VIOYJ2PDP63RJ5ANCNFSM4IAZHHOA
.

Thanks for the tip!


HtmlAttribute.Value should use HtmlEntity.DeEntitize when setting _value

The Value of attribute data-foo=""Hello"" should be "Hello", not "Hello"
I think the fix is:
        {
            get
            {
                if (_value == null)
                {
                    _value = HtmlEntity.DeEntitize(ownerdocument.Text.Substring(_valuestartindex, _valuelength));
                }
                return _value;
            }
            set
            {
                _value = HtmlEntity.DeEntitize(value);
                if (_ownernode != null)
                {
                    _ownernode._innerchanged = true;
                    _ownernode._outerchanged = true;
                }
            }
        }

Hello @drbsoftware ,
Thank you, my programmer will look at this issue during the week.
Best Regards,
Jonathan

Hello @drbsoftware ,
The v1.5.0-beta92 now use your fix.
Let me know if that's correctly working.
Best Regards,
Jonathan

HtmlEntity.DeEntitize method should not be called when setting HtmlAttribute.Value as it must be properly encoded, see this.
As for getting the value, the property should, IMHO, return its original encoded value, and it's up to the caller whether to decode it or not.

Hello @yfayerman ,
Thank you for reporting. I will have my developer look at it and check if we must do it differently.
Best Regards,
Jonathan

<IP_ADDRESS> Attributes in https://www.w3.org/TR/html5/syntax.html would seem to suggest that the parsing is the same for attributes and for HTML text.
In our case, we are using custom data-* attributes.  The data is stored by JavaScript using the Chromium DOM.  We retrieve the attribute contents using HTML Agility Pack.  We expect the data retrieved to be the same as the data stored.
Thanks
David

Hello @yfayerman  ,
The setter does not longer use DeEntitize.
The getter however still use it in order to solve @drbsoftware first issue. To mimic what a browser does. By example data-foo=""Hello"" are parsed as data-foo="\"Hello\"" in the code source of a browser.
Please @yfayerman , @drbsoftware , let me know if we can close this issue or there is much work to do on it.
Best Regards,
Jonathan

Jonathan, I think that looks right.
Thanks
David

@JonathanMagnan, that's fine with me.

Closing Comment: Fix confirmed

Hello @drbsoftware , @yfayerman ,
Finally, we had to rollback this fix in v1.5.1. @yfayerman is right, it should be up to the caller instead to DeEntitize or not the value. We cannot automatically DeEntitize it otherwise we will break some existing code like in the issue #32.
However, to make it easier, we added a new property DeEntitizeValue which return the expected value "Hello" if you want it decoded.
Best Regards,
Jonathan

Hi Jonathan,
It seems to me that the issues here and in #32 are:

What is written out should be what is read in (unless modified by options or by external software ).
What is accessed by .NET software should be equivalent to what is accessed by JavaScript on the DOM.

I think that the problem encountered by #32 is simply that the fix to #19 was incomplete. HtmlNode.WriteAttribute also needs to be modified to use Entitize.
David
BTW: Thank you for your efforts in keeping this library maintained.

Hello @drbsoftware ,
Thank you ;) We try to do our best!
Using the WebBrowser and some other HTML parser, you are right. The value should return "Hello"
However, the SetAttribute (using a WebBrowser) doesn't DeEntitize the value. " will be instead modified as &quot; instead in the HTML so the value return "
Until we rewrite this library, I believe the best is to stay with the current behavior since a DeEntitizeValue property has been added. If you need, we can, however, add an option.
Way too much people are currently using the library with this behavior, so staying backward compatible is maybe more important in this case than doing the right thing.
Best Regards,
Jonathan


Please update to VS2022

Hello,
Can you please update this work to VS2022 and UE5 (5.1)?
Thanks and have a good day

Hello and Happy New Year,
Is there any update on this?
Thanks

Can we discuss this server in more detail?


polymorphic fields don't work

Example, Attachment.Parent
Polymorphic break the generation...  I think the best way to handle them would be to map them to a concrete implementation of SObject.  At least that way the Id's & Type can be access to query

uggh... such bad design https://developer.salesforce.com/docs/atlas.en-us.208.0.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_relationships_and_polymorph_keys.htm

https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_objects_name.htm

reafctored back to just use object generation with NAME.  Update & Insert probably don't work, but its better to not have the extra code to have to maintain for a limited feature.  Ample workarounds exists


Remove the need for reset_circus.sh

The shell script reset_circus.sh is a lazy way for me to avoid using true circus integration in Fermentrack proper. Where I currently call the script I should instead just directly interact with Circus.

I have almost finished a fermentrack-circus-handler-python-class that we could use for this (when I worked with brewpi_spawner.py. The goal is here was to keep the code duplication to a minimum.

That sounds awesome!

I have done some progress but mostly testing and everything seems to work, I will do a PR soon and maybe we should put it in a branch to test more.
The biggest change is the rewrite of brewpi_spawner.py (I have renamed it to processmgr.py so it will not interfere), and that change could wait..

Just a note about which version of brewpi_spawner.py and processmgr.py which is the "new one".
https://github.com/thorrak/fermentrack/blob/master/utils/processmgr.py#L6
It is actually processmgr.py which uses the new lib and will replace brewpi_spawner.py

I ended up testing your code as a replacement for reset_circus.sh and uh - it worked pretty much perfectly. I tweaked some of the code slightly to allow it to accept unicode and added a restart_process() function to BrewPiDevice just to make things easier, but otherwise this issue was closed by your commits two weeks back!
Good work!

Great! I hoped to get some more work done on Fermentrack this weekend but life got in the way, good to hear that it worked good.


Add kube-controllers deployment to Canal

Description
This PR modifies the Canal manifests so that kube-controllers is installed as well.
Kube-controllers is needed for auto host endpoints.

Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

Deploy preview for calico ready!
Built with commit 30e52d43eb1238fbdb2ae7a0f0ca16651b425610
https://deploy-preview-3461--calico.netlify.app

Deploy preview for calico ready!
Built with commit 0c0a76d2233e1566acffb542499636e2257d7f60
https://deploy-preview-3461--calico.netlify.app


Ignore malformed websocket message

Summary
Note: This is a client-side patch for a weird issue happening intermittently with the payloads of the websocket messages. This issue was blocking the release of 3.0.1, but we decided this morning that we will proceed without this fix.
There is a weird issue happening when we update the user defaults for instance/project. This seems to only happen on read replicas according to @DHaussermann. The websocket message seems to have a model.User structure (with blank id and username), instead of the map[string]interface{} defined here:
https://github.com/mattermost/mattermost-plugin-jira/blob/e4956f633eb6047ca39b0ee951bd9d2beb2919a5/server/user.go#L168-L174
See the "Valid Data" and "Invalid Data" sections below. cc @levb
Ticket Link
Fixes https://github.com/mattermost/mattermost-plugin-jira/issues/729
Valid Data
{
    "event": "custom_jira_connect",
    "data": {
        "can_connect": false,
        "instances": [
            {
                "alias": "",
                "instance_id": "https://mmtest.atlassian.net",
                "type": "cloud"
            }
        ],
        "is_connected": true,
        "user": {
            "connected_instances": [
                {
                    "alias": "",
                    "instance_id": "https://mmtest.atlassian.net",
                    "type": "cloud"
                }
            ],
            "default_instance_id": "https://mmtest.atlassian.net",
            "mattermost_user_id": "jzbdcspz3bf9jnrpsq64c9fi4o"
        }
    },
    "broadcast": {
        "omit_users": null,
        "user_id": "jzbdcspz3bf9jnrpsq64c9fi4o",
        "channel_id": "",
        "team_id": ""
    },
    "seq": 5
}

Invalid Data (see user property)
{
    "event": "custom_jira_connect",
    "data": {
        "can_connect": false,
        "instances": [
            {
                "alias": "",
                "instance_id": "https://mmtest.atlassian.net",
                "type": "cloud"
            }
        ],
        "is_connected": true,
        "user": {
            "id": "",
            "delete_at": 0,
            "username": "",
            "auth_service": "",
            "email": "",
            "nickname": "",
            "first_name": "",
            "last_name": "",
            "position": "",
            "roles": "",
            "locale": "",
            "timezone": null
        }
    },
    "broadcast": {
        "omit_users": null,
        "user_id": "jzbdcspz3bf9jnrpsq64c9fi4o",
        "channel_id": "",
        "team_id": ""
    },
    "seq": 14
}

Code to trace
https://github.com/mattermost/mattermost-plugin-jira/blob/e4956f633eb6047ca39b0ee951bd9d2beb2919a5/server/user.go#L210-L212
https://github.com/mattermost/mattermost-plugin-jira/blob/e4956f633eb6047ca39b0ee951bd9d2beb2919a5/server/info.go#L80-L92
https://github.com/mattermost/mattermost-plugin-jira/blob/e4956f633eb6047ca39b0ee951bd9d2beb2919a5/server/user.go#L168-L174

Codecov Report

Merging #740 (16abde8) into master (e4956f6) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #740      +/-   ##
==========================================
- Coverage   32.41%   32.39%   -0.02%
==========================================
  Files          52       52
  Lines        5359     5359
==========================================
- Hits         1737     1736       -1
- Misses       3421     3422       +1
  Partials      201      201

Impacted Files
Coverage Δ

server/subscribe.go
64.92% <0.00%> (-0.21%)
:arrow_down:

Continue to review full report at Codecov.

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

Did you track down the potential conditions that'd cause the server to produce these messages?

@levb No I haven't been able to. This issue has been happening for a while and I haven't been able to figure out any reason why this is happening. Tracing the code, it doesn't even seem possible. It may have something to do with the MM websocket system in general, though idk why it would use a user object with all blank values.

/update-branch

@mickmister After setting up a server that I am certain reproduces the issue, I deploy this PR at spent some time testing with it.
After a significant amount of testing, I can no longer reproduce this issue. This issue seem resolved 👍

The post menu options always show as Create and Attach while the user should be connected.
The post menu options always shows as Connect to Jira when the user should not be connected
There is never a need to refresh the webapp to see the correct options.
Tested many instances of changing the connect / disconnect state
Tested many instances of issue creation

Just to double check something with you... This Build shows some issues working with autolink.
{"level":"info","ts":1618184137.4260914,"caller":"product_notices/worker.go:85","msg":"Worker: Job is complete","worker":"ProductNotices","job_id":"rcjg7xe5pb86d81nhgxmawxwsc"}
{"level":"error","ts":1618188923.7956932,"caller":"mlog/sugar.go:25","msg":"ERROR: ","plugin_id":"jira","Status":"500","Error":"failed to GetProjectMetadata: Request failed. Please analyze the request body for more details. Status code: 404","Host":"dkh-ha-test3.test.mattermost.cloud","RequestURI":"/plugins/jira/api/v2/get-jira-project-metadata?instance_id=http://dkh-jira.ngrok.io","Method":"GET","query":"instance_id=http%3A%2F%2Fdkh-jira.ngrok.io"}
{"level":"info","ts":1618190624.6890638,"caller":"mlog/sugar.go:21","msg":"only cloud instances supported for autolink","plugin_id":"jira","err":"<nil>"}
{"level":"warn","ts":1618190624.9729812,"caller":"mlog/sugar.go:29","msg":"could not install autolinks for cloud instance","plugin_id":"jira","instance":"https://mmtest.atlassian.net","err":"some keys were not installed: unable to add autolinks: Unable to install autolink. Error: 304, {\"status\": \"OK\"}"}

I think this is an issue that is not directly related to this and we have an issue open to address this separately. Is this correct?

@DHaussermann I'm still not sure why the GetAllProjects error is happening. There's an issue where the error stops the install of a Jira Cloud instance, fixed with https://github.com/mattermost/mattermost-plugin-jira/pull/762


feat(TCOMP-673 TDP-4505): implement and test i18n header handling

https://jira.talendforge.org/browse/TCOMP-673
What is the current behavior?** (You can also link to an open issue here)
i18n from HTTP requests is taken in account in a complex and untested manner and the default is machine dependent.
What is the new behavior?
i18n from HTTP requests is taken in account in a simple and tested manner and the default is US locale.
Please check if the PR fulfills these requirements

[x] The commit message follows Talend standard
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[x] The code coverage on new code >75%
[x] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Pull request test result: success :star:
Sonar results


[DOC] Issue and PR templates aren't showing up as options

Summary
There are several templates in .github, but they're not showing up as options when people open new issues/PRs.

The issue ones actually appear to work, the PR ones still don't


Don't build unnecessary jars.

Checklist

[x] I have filed an issue about this change and discussed potential changes with the maintainers.
[ ] I have received the approval from the maintainers to make this change.
[x] This is not a stylistic, refactoring, or cleanup change.

Please note that the maintainers will not be reviewing this change until all checkboxes are ticked. See
the Contributions section in the README for more
details.
Discussion thread for this change
Issue number: https://github.com/bazelbuild/intellij/issues/1785
Description of this change
Don't build the class jar if source jars are available, as we can use that in conjunction with the interface jar to index the code instead.

ping @vsiva @chaoren @brendandouglas

ping @vsiva @chaoren @brendandouglas

@AlexeyGy A long time has passed since the PR was put up, so maybe it's not even the same people working on the project anymore, is there a way to ping current reviewers?

I think this might still be useful should we reopen it?

Happy to. Curious, why aren't you using the patch though? did you find it not helpful anymore?


pull request for e2e test at 12/19/2016 05:56:19

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add Resend.Webhooks assembly

Add additional library to be implemented server-side to receive webhook events.

Add WebhookEvent class (see below)
Add WebhookEventData class (see below)
Rename existing WebhookEvent Enum to WebhookEventType
Add methods to easily validate WebhookEvent (using Svix)

{
  "type": "email.sent",
  "created_at": "2023-02-22T23:41:12.126Z",
  "data": {
    "created_at": "2023-02-22T23:41:11.894719+00:00",
    "email_id": "56761188-7520-42d8-8898-ff6fc54ce618",
    "from": "Acme <[onboarding@resend.dev](mailto:onboarding@resend.dev)>",
    "to": ["[delivered@resend.dev](mailto:delivered@resend.dev)"],
    "subject": "Sending this example"
  }
}

References:

https://www.resend.com/docs/dashboard/webhooks/verify-webhooks-requests
https://docs.svix.com/receiving/verifying-payloads/how

Push to nuget added in 175b06915bab93f259b8d7937964b9dfaac5e100


Add BigQuery hook.

I've added support for Google BigQuery hooks. This allows us to connect to BQ via a hook, as well as query BigQuery from the ad hoc page. It also enables charts to generate based off of a BigQuery query.

Note I haven't written any tests for this. I did validate that it works for our BigQuery install. Was able to create both charts and ad hoc queries with it.

Latest PR uses pandas.io.gbq to create DataFrames.

I have a tweaked implementation that just uses BaseHook. It's unclear to me the relation between BaseHook and DbApiHook. I can make both work with the BQ hook, but it seems like BaseHook is actually the correct one. Is this understanding right?

Hey can we move this in airflow.contrib.hooks to make it clear that it isn't unit tested and testable by the maintainers?

Please add an entry in docs/code.rst

DbApiHook provides tons of methods provided that the database API follows the python spec defined here:
https://www.python.org/dev/peps/pep-0249/
All of the db drivers implementing that standard can share a lot of code.

Will do

bq. All of the db drivers implementing that standard can share a lot of code.
Ah, got it. The BQ connection does not implement this. I suppose we could wrap the BQ connection in our own custom PEP-0249 implementation, but I'll leave that for a separate ticket.

@mistercrunch I made the change to move the hook to contrib locally, but it makes the ad hoq connection disappear. The models.py/Connection.get_hook currently points to:
        elif self.conn_type == 'bigquery':
            return hooks.BigQueryHook(bigquery_conn_id=self.conn_id)

I could obviously update this to point to the contrib hooks directory instead, but this feels wrong. I see there's some plugin_manager stuff in the init py file. What do you recommend?

Note: I see this for the Vertica hook as well, which is in contrib:
'module' object has no attribute 'VerticaHook'

Perhaps I need to enable contribs somehow?

return contrib.hooks.BigQueryHook(bigquery_conn_id=self.conn_id) is fine by me

@mistercrunch Added code.rst update. Imported contrib.hooks in models.py. Please have another look.

Any update here?

@mistercrunch any update? This has been pending for 11 days.

Sorry about the delay, many of us took a nice break over the holidays and I wanted to stabilize a branch before letting a wave of stuff in. Reviewing now :)

:+1: looks solid, merging. Thanks for your patience :)


fix(config): don't show diagnostics warning with diagnostics: true

Summary

Fixes #3638
Test plan

Green CI
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information
N.A.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 4 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 94.017%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
1119

Relevant Lines:
1156

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

4 of 4 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 94.017%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
1119

Relevant Lines:
1156

💛  - Coveralls


using asjacobian when jacobian function is provided

I'm solving a large-scale system of nonlinear equations (F(x) returns m X 1 columns vector) for which I have the jacobian as a callable function (J_F(x) returns m X m sparse csr matrix). I'm using generic nonlin_solve and asjacobian function:
nonlin_solve(F=F,x0=x0,jacobian=asjacobian(J_F),verbose=True)
but it raises error:
update() takes 3 positional arguments but 4 were given
It works when I use jacobian-free option by passing jacobian = "krylov" , etc
also,
J_F_ = asjacobian(J_F) also does no raise any error

@saeeron without a self-contained example it's impossible to say anything here. do you have one?


Documentation is not intuitive for newcomer

I just found out about this project today, and wanted to try it out. Reading through the project README, there was not much helpful information besides "here's how to compile the documentation", and a link to an incomplete guide for developing the CRC containers.
I asked around, and it seems the project documentation is available here: https://code-ready.github.io/crc/
This is exactly what I was looking for, and I would rather not have to compile the documentation to view it locally if I'm just going to check out the project, see the requirements, etc.
Is there any chance that link could be placed in the repository's Website link in the header on GitHub?

Also maybe a link near the top of the README?

The documentation is also included in the archive.


Rendering breaks on minimize and unminimize

A straight out of avalonia.mvvm template basic application is not rendered after minimize and unminimize.
To Reproduce
Steps to reproduce the behavior:

Create an app from template: dotnet new avalonia.mvvm -o testapp -n testapp
Build and run the application
Minimize and unminimize the window

Expected behavior
See the normal application window after unminimize.
Screenshots

Desktop (please complete the following information):

Ubuntu 20.04.3 LTS with Xfce
TargetFramework: net6.0 or net5.0
Avalonia version: 0.10.11

xwininfo, click on your window to get window id
xev -id <your_window_id>
minimize your window, press enter multiple times in console to have a split
unminimize
send xev output

@kekekeks Just tried to reproduce this issue on my Mint machine. Here's the output.
Minimize
PropertyNotify event, serial 18, synthetic NO, window 0x4400179,
    atom 0x1bd (_NET_WM_ALLOWED_ACTIONS), time 847079, state PropertyNewValue

UnmapNotify event, serial 19, synthetic NO, window 0x4400179,
    event 0x4400179, window 0x4400179, from_configure NO

PropertyNotify event, serial 19, synthetic NO, window 0x4400179,
    atom 0x151 (WM_STATE), time 847081, state PropertyNewValue

PropertyNotify event, serial 19, synthetic NO, window 0x4400179,
    atom 0x130 (_NET_WM_STATE), time 847081, state PropertyNewValue

Unminimize
PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x1bd (_NET_WM_ALLOWED_ACTIONS), time 854669, state PropertyNewValue

MapNotify event, serial 21, synthetic NO, window 0x4400179,
    event 0x4400179, window 0x4400179, override NO

VisibilityNotify event, serial 21, synthetic NO, window 0x4400179,
    state VisibilityUnobscured

PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x151 (WM_STATE), time 854674, state PropertyNewValue

PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x130 (_NET_WM_STATE), time 854674, state PropertyNewValue

FocusIn event, serial 21, synthetic NO, window 0x4400179,
    mode NotifyNormal, detail NotifyNonlinear

KeymapNotify event, serial 21, synthetic NO, window 0x0,
    keys:  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x130 (_NET_WM_STATE), time 854675, state PropertyNewValue

FocusOut event, serial 21, synthetic NO, window 0x4400179,
    mode NotifyNormal, detail NotifyNonlinear

PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x130 (_NET_WM_STATE), time 859801, state PropertyNewValue

Just tried to reproduce this issue on my Mint machine.

Did you manage to reproduce on said Mint machine? Mint has a different window manager.

Just tried to reproduce this issue on my Mint machine.

Did you manage to reproduce on said Mint machine? Mint has a different window manager.

Yes, just tried in MATE and Cinnamon edition.

Not sure if this can be helpful, if I set UseGpu to false, after unminimize, the window content becomes transparent.
Resizing the window will fix the glitch.
https://user-images.githubusercontent.com/57059775/147652309-78a09958-e91d-4966-89cf-b84b54a91691.mp4

same serial code fails for me too, normally it's assigned to synthetic yes event. (in the output you can see the opposite behavior acted as synthetic no event)
Previously I deleted the xmodmap hotkey for serial 34 (i guess?) by hand and it was randomly assigned to synthetic yes as I saw in the terminal output before.
it was assigned to multiple random keystrokes like up-down etc.
@kekekeks Just tried to reproduce this issue on my Mint machine. Here's the output.
Minimize
PropertyNotify event, serial 18, synthetic NO, window 0x4400179,
    atom 0x1bd (_NET_WM_ALLOWED_ACTIONS), time 847079, state PropertyNewValue

UnmapNotify event, serial 19, synthetic NO, window 0x4400179,
    event 0x4400179, window 0x4400179, from_configure NO

PropertyNotify event, serial 19, synthetic NO, window 0x4400179,
    atom 0x151 (WM_STATE), time 847081, state PropertyNewValue

PropertyNotify event, serial 19, synthetic NO, window 0x4400179,
    atom 0x130 (_NET_WM_STATE), time 847081, state PropertyNewValue

Unminimize
PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x1bd (_NET_WM_ALLOWED_ACTIONS), time 854669, state PropertyNewValue

MapNotify event, serial 21, synthetic NO, window 0x4400179,
    event 0x4400179, window 0x4400179, override NO

VisibilityNotify event, serial 21, synthetic NO, window 0x4400179,
    state VisibilityUnobscured

PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x151 (WM_STATE), time 854674, state PropertyNewValue

PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x130 (_NET_WM_STATE), time 854674, state PropertyNewValue

FocusIn event, serial 21, synthetic NO, window 0x4400179,
    mode NotifyNormal, detail NotifyNonlinear

KeymapNotify event, serial 21, synthetic NO, window 0x0,
    keys:  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x130 (_NET_WM_STATE), time 854675, state PropertyNewValue

FocusOut event, serial 21, synthetic NO, window 0x4400179,
    mode NotifyNormal, detail NotifyNonlinear

PropertyNotify event, serial 21, synthetic NO, window 0x4400179,
    atom 0x130 (_NET_WM_STATE), time 859801, state PropertyNewValue

Originally posted by @luthfiampas in https://github.com/AvaloniaUI/Avalonia/issues/7278#issuecomment-1002420858
Now, technically when everything is going well, this triggers an output like below:

Again, technically, I know the spot I deleted in edit file and if I try I can paste the assigned yes value and the problem would no longer occur. Not sure, I'll post an update if it works.


Allow haystack 2.5.0.dev1

This will finally allow us to release a Django 1.9 compatible version

[Current coverage][cc-pull] is 81.16%

Merging [#2054][cc-pull] into [master][cc-base-branch] will increase coverage by 0.49%

@@             master      #2054   diff @@
==========================================
  Files           322        323     +1
  Lines         15452      15994   +542
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits          12463      12981   +518
- Misses         2989       3013    +24
  Partials          0          0

Powered by Codecov. Last updated by [c7956eb...d680c51][cc-compare]
[cc-base-branch]: https://codecov.io/gh/django-oscar/django-oscar/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/django-oscar/django-oscar/compare/c7956eb6adc315c88c780d8c28535eb3118d32f1...d680c5177bed6ddd13a79880f1070b0f644ad11c
[cc-pull]: https://codecov.io/gh/django-oscar/django-oscar/pull/2054?src=pr

This requires pip install --pre

Perhaps we should add this flag into Makefile too.

Fixed in master


Map tiles return 410 as Studio Classic styles are deprecated

:clipboard: Steps

Open the map.

:bug: Actual result

:mag: Expected result
Map tiles are loaded for both "light" and "dark" modes.
Reason
Old tiles are deprecated.
How to fix
Migrate to another static raster tileset.

cdf965ba2331682963f1dcbb9168b56665915f7e

cdf965ba2331682963f1dcbb9168b56665915f7e


Issue with the parsing of emails.

As you probably know, in the email folder all emails can exist in separate folders.
I faced with an issue when your package does delete of all emails inside the email folder, but the package.xml file generates correctly: with folder prefix before an email name.

fixed !