Percentile

📝 Summary
Add percentile to the Latency Comparison
⛱ Motivation and Context
This improves the understanding of the comparison result
📚 References
https://collective.flashbots.net/t/mempool-dumpster-a-free-mempool-transaction-archive/2401/5?u=offerm
https://github.com/flashbots/mempool-dumpster/blob/ecbac1bd56f127ab2437fedfbd192822f8ed34f0/common/analyzerV2.go#L205

Old render:
------------------
Latency Comparison
------------------

### Bloxroute - Local

871,617 shared included transactions.

|         | BLOXROUTE FIRST | LOCAL FIRST |
|---------|-----------------|-------------|
|   count |         836,431 |      24,476 |
| percent |          95.9 % |       2.8 % |
|  median |           12 ms |        3 ms |
|     p90 |           32 ms |       17 ms |
|     p95 |           48 ms |       25 ms |
|     p99 |          142 ms |      490 ms |

### Chainbound - Local

869,238 shared included transactions.

|         | CHAINBOUND FIRST | LOCAL FIRST |
|---------|------------------|-------------|
|   count |          753,432 |      90,478 |
| percent |           86.6 % |      10.4 % |
|  median |            13 ms |        3 ms |
|     p90 |            32 ms |       19 ms |
|     p95 |            45 ms |       38 ms |
|     p99 |           140 ms |    5,495 ms |

### Bloxroute - Chainbound

870,648 shared included transactions.

|         | BLOXROUTE FIRST | CHAINBOUND FIRST |
|---------|-----------------|------------------|
|   count |         420,258 |          386,655 |
| percent |          48.2 % |           44.4 % |
|  median |            5 ms |             4 ms |
|     p90 |           19 ms |            10 ms |
|     p95 |           33 ms |            16 ms |
|     p99 |           89 ms |            49 ms |

### Bloxroute - Eden

873,403 shared included transactions.

|         | BLOXROUTE FIRST | EDEN FIRST |
|---------|-----------------|------------|
|   count |         865,017 |      7,504 |
| percent |          99.0 % |      0.8 % |
|  median |           19 ms |      13 ms |
|     p90 |           29 ms |     203 ms |
|     p95 |           36 ms |     376 ms |
|     p99 |           84 ms |   6,615 ms |

### Chainbound - Eden

870,707 shared included transactions.

|         | CHAINBOUND FIRST | EDEN FIRST |
|---------|------------------|------------|
|   count |          854,115 |     15,183 |
| percent |           98.0 % |      1.7 % |
|  median |            18 ms |      17 ms |
|     p90 |            29 ms |   1,785 ms |
|     p95 |            33 ms |   7,675 ms |
|     p99 |            60 ms |  41,215 ms |

New render:
------------------
Latency Comparison
------------------

### Bloxroute - Local

871,617 shared included transactions.

|                METRIC                |  VALUE  |
|--------------------------------------|---------|
|                      bloxroute First | 836,446 |
|                    % bloxroute First |  95.96% |
|                          local First |  24,476 |
|                        % local First |   2.81% |
|                                Equal |  10,695 |
|                              % Equal |   1.23% |
| bloxroute won 10% of txs by at least |   32 ms |
| bloxroute won 25% of txs by at least |   18 ms |
| bloxroute won 50% of txs by at least |   11 ms |
| bloxroute won 75% of txs by at least |    6 ms |
| bloxroute won 90% of txs by at least |    2 ms |

### Chainbound - Local

869,238 shared included transactions.

|                METRIC                 |  VALUE  |
|---------------------------------------|---------|
|                      chainbound First | 753,455 |
|                    % chainbound First |  86.68% |
|                           local First |  90,478 |
|                         % local First |  10.41% |
|                                 Equal |  25,305 |
|                               % Equal |   2.91% |
| chainbound won 10% of txs by at least |   30 ms |
| chainbound won 25% of txs by at least |   19 ms |
| chainbound won 50% of txs by at least |   11 ms |
| chainbound won 75% of txs by at least |    4 ms |
|      local won 10% of txs by at least |    1 ms |

### Bloxroute - Chainbound

870,648 shared included transactions.

|                METRIC                 |  VALUE  |
|---------------------------------------|---------|
|                       bloxroute First | 420,258 |
|                     % bloxroute First |  48.27% |
|                      chainbound First | 386,656 |
|                    % chainbound First |  44.41% |
|                                 Equal |  63,734 |
|                               % Equal |   7.32% |
|  bloxroute won 10% of txs by at least |   11 ms |
|  bloxroute won 25% of txs by at least |    5 ms |
|  bloxroute won 50% of txs by at least |    0 ms |
| chainbound won 25% of txs by at least |    4 ms |
| chainbound won 10% of txs by at least |    7 ms |

### Bloxroute - Eden

873,403 shared included transactions.

|                METRIC                |  VALUE  |
|--------------------------------------|---------|
|                      bloxroute First | 865,017 |
|                    % bloxroute First |  99.04% |
|                           eden First |   7,504 |
|                         % eden First |   0.86% |
|                                Equal |     882 |
|                              % Equal |   0.10% |
| bloxroute won 10% of txs by at least |   29 ms |
| bloxroute won 25% of txs by at least |   23 ms |
| bloxroute won 50% of txs by at least |   19 ms |
| bloxroute won 75% of txs by at least |   15 ms |
| bloxroute won 90% of txs by at least |   11 ms |

### Chainbound - Eden

870,707 shared included transactions.

|                METRIC                 |  VALUE  |
|---------------------------------------|---------|
|                      chainbound First | 854,115 |
|                    % chainbound First |  98.09% |
|                            eden First |  15,183 |
|                          % eden First |   1.74% |
|                                 Equal |   1,409 |
|                               % Equal |   0.16% |
| chainbound won 10% of txs by at least |   29 ms |
| chainbound won 25% of txs by at least |   24 ms |
| chainbound won 50% of txs by at least |   18 ms |
| chainbound won 75% of txs by at least |   13 ms |
| chainbound won 90% of txs by at least |    9 ms |

✅ I have run these commands

[x] make lint
[x] make test
[x] go mod tidy

thanks for the contribution. preferring the old render.


Improve documentation for developing the client

There should be good documentation for developing the albionmarket-client. i personally do the client development on a Mac laptop so can provide documentation for that, however documentation for getting the windows development working will be tougher.

I'd like to contribute to the project so I may contribute to this one as I get set up.
My question is where is the server hosted that the API data gets shipped off too? I would like to make an independent open source broker to host the data that other services can register hooks for, or query via a REST api. Do you feel like your current server fits that requirement?

@NullSoldier Thank you very much for your interest in contributing to the project. There are 3 major components to the project. The client here, the backend (https://github.com/Regner/albionmarket-backend) and the frontend (https://github.com/Regner/albionmarket-frontend).
The backend is a Python Flask application that offers an open API that anyone can make requests to. The frontend is a VueJS application that consumes the same API from the backend that anyone else can pull from.
I would very much like to see one major ingest point for everyone. That way we get as much data as possible. To that end I have tried to keep everything as open as possible to encourage that. I am happy to reconsider the architecture of the backend or make major changes if needed.
Let me know if you have any thoughts on that and feel free to open issues on those projects to discuss them.
Again, thanks for your interest in contributing! :D

As long as you have the market JSON, I think most of the contributions that are interesting will be in the backend, as well as the frontend. I wish you chose react / django but I'm just happy that you've made it open source! Here's my list of features I'm going to look into contributing. I haven't checked what is supported or already done yet.

Donate enough accounts to run clients in every game city and run them in VMs on Azure
Historical graphs for prices of resources (save off a copy of the model of each resource when JSON is sent up), also implement front end
Most of the market optimization tools that elite dangerous has here, https://eddb.io/ such as (best place to transport your current resources to make the most money), round trip transport for resources to make money
Inflation rate calculator by looking at an index of the most commonly used resources

I'll jump into the code this week.

All of that sounds awesome! Please feel free to hit me up here or if you're in the Albion Online Discord I go by Regner there as well.
One of the things I think is going to have to change in the backend for the ingest is offloading the actual saving of information. Probably best to take an ingest request, dump it into a queue, and then process the queue async. Right now the whole request is held up while 50 orders are looked up and saved individually.
If you do work on the backend you can use the pre-built client and start it with the -i CLI flag to give it a different ingest URL. Allows you to develop the backend that is Python without having to build the Golang application from source.


future has status 'finished' even while still executing

Using dask 0.14.3
I'm looking at the 01-custom-futures.ipynb notebook where there is this sequence of operations:
zs = []
for i in range(256):
    x = c.submit(inc, i)     # x = inc(i)
    y = c.submit(double, x)  # y = inc(x)
    z = c.submit(add, x, y)  # z = inc(y)
    zs.append(z)

total = c.submit(sum, zs)

print(total)

print(total.result())

print(total)

del total

zs = []
for i in range(256):
    x = c.submit(inc, i)     # x = inc(i)
    y = c.submit(double, x)  # y = inc(x)
    z = c.submit(add, x, y)  # z = inc(y)
    zs.append(z)

total = c.submit(sum, zs)

print(total)

print(total.result())

print(total)

What is odd is that if I do del total and then execute the same sequence of operations I can see in the profiler that Dask is executing tasks, but the future total is instantly tagged as the state Finished.

then I do a del total and then execute again, starting with a bare total to make sure it isn't still, somehow, defined:

I would expect total to finish quickly because zs are already in memory.  I
would expect some futures to run because intermediate values (like the x's)
are briefly created where previously they had been released.
On Fri, May 26, 2017 at 8:54 PM, Ian Stokes-Rees<EMAIL_ADDRESS>wrote:

Using dask 0.14.3
I'm looking at the 01-custom-futures.ipynb notebook where there is this
sequence of operations:
zs = []for i in range(256):
x = c.submit(inc, i)     # x = inc(i)
y = c.submit(double, x)  # y = inc(x)
z = c.submit(add, x, y)  # z = inc(y)
zs.append(z)
total = c.submit(sum, zs)
print(total)
print(total.result())
print(total)
del total
zs = []for i in range(256):
x = c.submit(inc, i)     # x = inc(i)
y = c.submit(double, x)  # y = inc(x)
z = c.submit(add, x, y)  # z = inc(y)
zs.append(z)
total = c.submit(sum, zs)
print(total)
print(total.result())
print(total)
What is odd is that if I do del total and then execute the same sequence
of operations I can see in the profiler that Dask is executing tasks, but
the future total is instantly tagged as the state Finished.
[image: screenshot 2017-05-26 15 47 31]
https://cloud.githubusercontent.com/assets/293525/26510411/35ac8e84-422b-11e7-86fd-ce61e00e3ed6.png
then I do a del total and then execute again, starting with a bare total
to make sure it isn't still, somehow, defined:
[image: screenshot 2017-05-26 15 48 11]
https://cloud.githubusercontent.com/assets/293525/26510412/35aca266-422b-11e7-8987-eec6e33104ec.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/2392, or mute the thread
https://github.com/notifications/unsubscribe-auth/AASszImqOVodJg6w1NhAK8tT3cR0NN4aks5r9y36gaJpZM4NoAC4
.

OK, let me try to come up with a self contained example and explain better the part that surprises me.


ENH: update package version to 1.8.12

Hi! This is the friendly automated conda-forge-webservice.
I've started a version update as instructed in #16.
I'm currently searching for new versions and will update this PR shortly if I find one! Thank you for waiting!
Fixes #16

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe/meta.yaml:

No valid build backend found for Python recipe for package dagster-cloud using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.


Implement '.' operator in the aggregation pipeline

This is a feature request.
I get this error when trying to do a deep lookup:
NotImplementedError: Although '.' is valid in the 'localField' and 'as' parameters for the lookup stage of the aggregation pipeline, it is currently not implemented in Mongomock.

So I understand that this is a known issue, but I couldn't find an open issue here.
When can we expect it to work (if ever) and/or what can I do in the meantime to work around that?

For illustration, here's a pseudo query that triggers this error:
MyFirstModel.objects.aggregate({
    "$lookup": {
        "from": "my_third_models",
        "localField": "my_second_model.my_third_model_id", # This is the offending part
        "foreignField": "_id",
        "as": "my_third_model",
    }
})

Okay, so I've found a workaround which translates roughly to the following using my example:
MyFirstModel.objects.aggregate(
    {
        "$lookup": {
            "from": "my_second_models",
            "localField": "my_second_model_id",
            "foreignField": "_id",
            "as": "my_second_model",
        }
    },
    {"$unwind": "$my_second_model"},
    {
        "$project": {
            "my_third_model": "$my_second_model.my_third_model_id", # This is supported
            # ... Other fields
        }
    },
    {
        "$lookup": {
            "from": "my_third_models",
            "localField": "my_third_model", # And now this works
            "foreignField": "_id",
            "as": "my_third_model",
        }
    },
)

The idea is to do each step of the lookup manually.

I have initiated PR #686 to address this issue. If needed the original is available in my repo.


Add device support

A part of #1480 to support different device.

@merrymercy pls help to review.

@liangan1 Thanks. It is merged.


Glitch in Twitter desktop app on Windows 10

When I am scrolling down through my laptop on Twitter App of Windows 10, a glitch is occurring on the top bar where we see Home, Explore etc. written.
The issue is that the content while scrolling, is going over that bar for a second, again and again, resulting sometimes in a complete disappearance of that top bar.

This repo is for Twitter’s Open Source software website; unfortunately it is not a place to report bugs or issues in the Twitter apps. You should talk to @TwitterSupport on Twitter - there’s no formal bug tracker.

Ok thanks, I was not aware.


chore: add ksalerno as codeowner

As per https://github.com/jenkinsci/docker/issues/1559#issuecomment-1453514549, @ksalerno99 stepped-in to help to add the ppc64le architecture on this image (and also Docker agents).
This PR adds as a (co-) code owner for the debian and ubi9 images for which he worked with.
Many thanks for the contributions and help!
@jenkinsci/team-docker-packaging I need your +1 here before merging.
Once merged, i'll take care of adding @ksalerno99 in the repository as contributor (and also @saper) to fix the "CODEOWNER" issues (ref. https://github.com/jenkinsci/docker/pull/1629#pullrequestreview-1426934543), and then propagate to jenkinsci/docker-*agent repositories as well.

+1 from me.

@saper and @ksalerno99 welcome onboard :D (you got GitHub invitations)

@saper and @ksalerno99 welcome onboard :D (you got GitHub invitations)

Thank you!


Added GitHub CI action to check build on PRs and pushes

Based on PR #13 by @evanrichter, but now implements a strict check for warnings.
See example fail message: https://github.com/m1el/chocolate_milk/runs/625640403
See example PR that has a failed build: https://github.com/m1el/chocolate_milk/pull/1
URLs to workflow badge:

https://github.com/m1el/chocolate_milk/workflows/Build/badge.svg
https://github.com/gamozolabs/chocolate_milk/workflows/Build/badge.svg (after this PR gets merged)

adding windows support may be good too because in stream he was saying it should run fine on window :D

@m1el I also considered changing the calls to cargo in main.rs, but that will seriously impact development speed in my opinion. Doing it this way will not only impact the CI, but also the live development.
I think a better approach would be a patch file with these changes applied to main.rs only during the CI build.

@evanrichter this creates a separate flag for chocolate_milk that checks for warnings.  It doesn't affect the regular development flow (cargo run) at all.

oh I see it now :) I like it.

Looks awesome, thank you, merged.


Support swarm service labels when using filter.labels

If a container was started by a swarm service, this additionally checks the service labels in the MatchContainer function. It also looks at service labels when deciding whether to ignore a container based on labels. This approach doesn't require any special configuration, it should just work seamlessly whether containers are started individually or as part of a service or stack.

After submitting this, I realized that the IgnoreContainer function in pump.go should probably accept a *docker.Container and *swarm.Service instead of *docker.Container and map[string]string of labels. I think it makes more sense for them to be similar types. I made these changes in my repo and they pass the tests but I haven't pushed them yet. I wanted to see if there was any feedback on this first.


Support downloading unconfigured private device type images

Fixes #271
Change-type: minor
Signed-off-by: Trong Nghia Nguyen<EMAIL_ADDRESS>

hey @thgreasi, can I have a review for this PR please?

@balena-ci I self-certify!

Late LGTM @nghiant2710 , but it's fine to not ask for reviews for such small things that you confirm they work :+1:


docker: no matching manifest for linux/386:

Hi I wish to install Marthoc docker image, in a proxmox VE on a Intel NUC
Currently I created a Lubuntu VM and everything works well, while trying to install docker-deconz I receive this error. Is there a way to install  docker-deconz or what shall I do?

nuc-lubuntu:~$ sudo docker run -d    --name=deconz    --net=host    --restart=always    -v /etc/localtime:/etc/localtime:ro    -v ~/.local/share/dresden-elektronik/deCONZ:/root/.local/share/dresden-elektronik/deCONZ    --device=/dev/ttyUSB0    marthoc/deconz
Unable to find image 'marthoc/deconz:latest' locally
latest: Pulling from marthoc/deconz
docker: no matching manifest for linux/386 in the manifest list entries.
See 'docker run --help'.

This docker image doesn‘t support i386 architecture as you can read in the readme.
Normally on Intel NUC it should be possible to use amd64 architecture. So there should be a problem with your installation, perhaps proxmox.

@volschin is correct. You probably selected a 32 bit Lubuntu image. You will need to use 64 bit.


Restore a period

Hi,
I have about 40 000 SMS stored on my Gmail.
It will take a long time to synchronize each, and I do not need to have all SMS on my phone.
Is there a way to synchronize a period, for example
each sms since 4 months
Regards,

not directly, but you can try
https://github.com/jberkel/sms-backup-plus#how-do-i-restore-the-last-n-weeks--n-messages

HI there--- yes -- I would like to retrieve sms messages on GMAIL not on
the phone and would like to retrieve the last 6 months -- how is this done?
On Tue, Oct 13, 2015 at 4:16 AM, Marwan Rabbâa<EMAIL_ADDRESS>wrote:

Hi,
I have about 40 000 SMS stored on my Gmail http://gmail.com.
It will take a long time to synchronize each, and I do not need to have
all SMS on my phone.
Is there a way to synchronize a period, for example
each sms since 4 months
Regards,
—
Reply to this email directly or view it on GitHub
https://github.com/jberkel/sms-backup-plus/issues/602.


Allow Custom Definition YAML

Is your feature request related to a problem? Please describe.
Custom Definition YAML
Additional context
It's difficult to use this for FedRAMP when I need to show all other non-aws services.

Thank you for creating the issue!
Currently, we provide the method that you can use custom definition files as the following;
https://github.com/awslabs/diagram-as-code/blob/main/doc/introduction.md#definitionfiles-section

If you want to customize the resource definitions locally, you can specify a local file path instead:

    DefinitionFiles:
      - Type: LocalFile
        LocalFile: "<your definition file path (e.g. ~/Desktop/your-custom-definition.yaml)>"

Could you please confirm if this is the way to achieve your requirement?


Lombok annotations reduce the code coverage

Lombok annotations, especially in the classes of the api module, reduce the test coverage. Evaluate if there's some related configuration, or if they can be removed or just implement the missing tests.

Solved by commit 392e068e8bdc54fb59c7c820ede8944884272ee6


Smaller images than the set max height and width are always enlarged

When enabling the resize option in the Image Compress plugin, setting a max height and max width seems to result in that smaller images are enlarged instead of left alone.
Let's say I have an image of 800x600 and I've set the max height and max width to 1600x900, then the original image is enlarged to 1600x900, resulting in a distorted image.
The correct behaviour (I think) should be that an image smaller than the max height and width should not be enlarged but should be left alone. Or maybe this could be a setting enlarge smaller images?
What would be your viewpoint? Again thanks for the great work.

What version of the plugin are you using? 1.0.1 or 1.0.2?

At the moment 1.0.2

Thanks for investigating. Something to pick up with the October CMS crew.

Hi, I was investigating something this further. We could do something like this:
In your Plugin.php file, around line 60, could we do something like this?
                        $filePath = $model->getLocalPath();

                        // Get original width & height from filePath
                        list($originalWidth, $originalHeight) = getimagesize($filePath);

                        // Only resize if the width or height of the actual image is bigger than what we need.
                        if($originalWidth > $width || $originalHeight > $height) {
                          Resizer::open($filePath)
                              ->resize($width, $height, $options)
                              ->save($filePath);

                          clearstatcache();
                        }

What are your thoughts?

Also, I think the quality is defined in the wrong function.
Docs of the resizer
Usage: Resizer::open(mixed $file) ->resize(int $width , int $height, string 'exact, portrait, landscape, auto or crop') ->save(string 'path/to/file.jpg', int $quality);
So, using your system, the quality would always be 95, the default quality of October CMS. I think we could do:

$quality = ImageCompressSettings::get('quality');

 Resizer::open($filePath)
                              ->resize($width, $height, $options)
                              ->save($filePath,$quality);

What do you think?

Few rewrote the logic. Recent edits added to 'develop' branch. Can you check functionality new settings?

Hi, thanks so much for your work. I'm a bit swamped right now, but I'll help to check the functionality asap, probably this weekend.  Did you see my last remark of the second parameter of the save() method?

Yes I saw. I think this is not a good idea, and the save() method does not have a second parameter, in fact:
https://github.com/octobercms/library/blob/master/src/Database/Attach/Resizer.php#L404

Good call, I guess the documentation is a bit outdated there in that case.

Can I assume that this problem is solved?

Hi, haven't had the time to test it yet, but at first glance, it does look like it's fixed. The only thing I can think of is that on upload, a user might not want to upscale smaller images, but does want to compress them.
Let's think about a scenario in which we set the max width and height to 1000px and the quality to 80. When an image is for example 800x600, but 300dpi, with a big filesize, these images would be unaffected? We might want to skip resizing, but still do the compression (quality change)?

Hi, sorry for the wait. I've been testing in detail today and everything looks good. The "make enlarge" checkbox works perfectly as expected. Enabling and disabling works like a charm. When checking the "change quality" checkbox, the quality does change according to your settings. I've tested with different qualities and it does seem to behave as expected.
One small detail that I cannot get my head around is the following: when unchecking the "change quality" checkbox, the quality still gets downgraded on upload. My guess is that the save() method by October CMS still performs their standard compression (I guess it's 95%).
That's the only thing that doesn't behave as expected. Could you please have a look at it? My guess the solution would be on line 56 of Plugin.php
                        if ($isChangeQuality == true) {
                            $options['quality'] = ImageCompressSettings::get('quality');
                        } else {
                            $options['quality'] = 100;
                        }

What do you think?
Thanks again for all your nice work. Thanks to you I will save a lot of disk space in my project. If there's anything else I can do for you, please don't hesitate to let me know.

Hi, thanks for the feedback about my work, very nice.
Perhaps you should turn on image compression by 100%, instead of changing the default value? Setting the value to 100% does not give a visible improvement in quality, compared to 95% by default, but the file size increases noticeably.

Hi, maybe in such case the image processing should be skipped in such case?
If change quality is not checked and the image is smaller than the maximum
height / width, skip the save() method. What do you think?
Op di 27 mrt. 2018 17:49 schreef Alexander Shapoval <
<EMAIL_ADDRESS>
Hi, thanks for the feedback about my work, very nice.
Perhaps you should turn on image compression by 100%, instead of changing
the default value? Setting the value to 100% does not give a visible
improvement in quality, compared to 95% by default, but the file size
increases noticeably.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/PopcornPHP/oc-image-compress-plugin/issues/5#issuecomment-376575535,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADaySkmSOKnUy4mn96EOuqeWNTDNxKIOks5til-EgaJpZM4SzMJt
.

--
++
Maarten Machiels - Chocolata
0474 82 38 61

Hi, did you have the chance to look at my last comment?

@maartenmachiels In follow up of your last posts, I would implement a bool to do that. For example (simple):
if ($isChangeQuality == true) {      $options['quality'] = ImageCompressSettings::get('quality');      // Add bool (best to define it at the beginning of the function)     $saveToNewFile = true; } else {      $options['quality'] = 100;      $saveToNewFile = false; }
And then:
if ($saveToNewFile) { ...

Thanks for your comment, Wachem! @VoroninWD what are your views on this?


CSS Super Fun Happy Time

Lauren, can you please tweak a few things that bug my inner pedant?

<pre> blocks inside of list items have larger font than stand-alone <pre> blocks. Can we use the smaller font for both?

li (bigger)

stand-alone (smaller)

For <ul> list items, can we change the list style to list-style-position: outside;? Text under the bullet looks weird.

Also, can we change the first-tier <ul> list item indentation to match  <ol>'s? Again, looks kinda weird, especially when next to numbered lists.

fixed and pushed to theme


Export is null on certain conditions

For certain SAML traces it occured to me than the export return an empty file (in fact a file with "null" inside).
An error raises here:
const createFromJSON = function(obj) {
      let stringified = JSON.stringify(obj);
      return JSON.parse(stringified);
    };

    const enrichWithResponse = (req, res) => {
      let responseCopy = createFromJSON(res);
      req.responseStatus = responseCopy.statusCode;
      req.responseStatusText = responseCopy.statusLine;
      req.responseHeaders = responseCopy.responseHeaders;
    };

    let reqscopy = reqs.map(req => {
      let newRequest = createFromJSON(req);
      enrichWithResponse(newRequest, req.getResponse());

      the_filters.forEach(filter => filter(newRequest));
      return newRequest;
    });

When trying to stringify "req.getResponse()" when it returns null.
I wonder if it would be a good solution to alter this:
  'attachHeadersToRequest' : function(request) { // onBeforeSendHeaders
    let uniqueRequestId = new SAMLTrace.UniqueRequestId(request.requestId, request.method, request.url);
    uniqueRequestId.create(id => {
      let tracer = SAMLTrace.TraceWindow.instance();

      // Maybe revise the HTTP method on redirected requests
      let alterationResult = tracer.reviseRedirectedRequestMethod(request, id);
      id = alterationResult.id;

      let entry = tracer.httpRequests.find(req => req.id === id);
      if (!entry) {
        // Skip further execution if no precedingly issued request can be found. This may occur, if tracing
        // new requests is paused. Requests that were issued before pausing will be found and handled.
        return;
      }

      entry.headers = request.requestHeaders;
      tracer.addRequestItem(entry, () => entry.res);
      tracer.updateStatusBar();
    });
  },

In particular:
      tracer.addRequestItem(entry, () => entry.res);
to
      tracer.addRequestItem(entry, () => entry.res || {});
or so
So the whole trace can be exported dispite one of them acts oddly.

@bzbzh were any of the traced events blocked by Firefox due to a security warning, i.e. for a self-signed certificate which hadn't been accepted? i.e. see: https://github.com/simplesamlphp/SAML-tracer/issues/66#issuecomment-1201177744
I'm able to replicate the trace js error that causes a null export under that condition.

@kellenmurphy I have no "Accept Risk and Continue" message. The certificate is a let's encrypt one. Is there another way/thing to test?

@bzbzh Okay, no need for more testing... it is telling though that there's something odd about certain traces. I'm going to dig on the thread I have re: self-signed cert warnings to see if I can isolate why that gets the null... and maybe we'll solve your problem as well in the meantime?

I'm able to replicate the trace js error that causes a null export under that condition.

Hm... So @kellenmurphy was able to replicate this... I wasn't. I used the super-handy testing website https://badssl.com.
Clicking e.g. the expired link leads to SAML-tracer tracing the request without any response (due to the blocking by the browser).
However, this trace can still be exported without any problems. The response-less request simply does not end up in the output. Ok, that could of course also be considered an error. But that would probably be a separate topic.
What exactly do you have to do to recreate the null error?

I seem to have come across the same issue
Env/actions:

Windows 11 pro with AVG
Google Chrome 121.0.6167.140
Incognito window
trying to access https://portal.cloud.hashicorp.com/

I'm able to see the results of the SAML trace onscreen, but when I do an export I get a 4 byte file that just has the word "null" printed in it.

Unfortunately that's not reproducible for us @chris18890 ...

It would be great if someone who encounters this issue and can actually reproduce it, could see if they can debug it/find the cause.

Oddly enough though, it worked perfectly on firefox!

Unfortunately that's not reproducible for us @chris18890 ...

Is there anything I can help with in terms of reproducing it?

@chris18890 If you can reproduce it, you could try and opening the 'developer tools' in your add-on window and see if anything is being blocked why you try to export.

I believe I ran into this issue as well, and may have steps to reproduce in Firefox. You can contrive a scenario where this works in the context of a SAML exchange, but it's equally present on a visit to google.com:

Open up the Web Developer Tools in Firefox and enable Request Blocking (icon looks like 🚫).
Add google.com as a resource to block.
Open SAML Tracer
Back in Firefox, navigate to google.com
Notice in the Network tab any requests to google.com show "Blocked by DevTools"
Notice the corresponding requests in SAML Tracer are grayed out.
Attempt to Export from SAML Tracer. Note that 0 requests can be exported. (if any other entries are present and an export can be accomplished, then re-import it and notice the google.com requests are missing)

This reproduction works because, from my understanding, a bug in Request Blocking in Firefox allows the request to actually be sent but the response is ignored: https://bugzilla.mozilla.org/show_bug.cgi?id=1756770
The real-life use-case where I saw this occurred when JS in the page was cancelling the request before it could ever complete - the request went out, but it was cancelled before the response was received. However, no record of the request could be found in a SAML Tracer export even though it appeared "live" when viewing the network activity there.

@chris18890 If you can reproduce it, you could try and opening the 'developer tools' in your add-on window and see if anything is being blocked why you try to export.

Here is the error in the console log when I click on "export" (the one in the toolbar, not the one in the pop-up):
Uncaught SyntaxError: "undefined" is not valid JSON
    at JSON.parse (<anonymous>)
    at createFromJSON (SAMLTraceIO.js:180:19)
    at enrichWithResponse (SAMLTraceIO.js:184:26)
    at SAMLTraceIO.js:192:7
    at Array.map (<anonymous>)
    at SAMLTraceIO.ExportFilter.perform (SAMLTraceIO.js:190:25)
    at SAMLTraceIO.exportRequests (SAMLTraceIO.js:26:27)
    at Object.createExportResult (exportDialog.js:66:26)
    at Object.setupContent (exportDialog.js:60:8)
    at HTMLDivElement.<anonymous> (ui.js:95:44)

In the pop-up, if I hover the "export" button, this is the preview URL

Windows 10 22H2
Google Chrome Version 131.0.6778.86

I have the same setup of Windows and Chrome-version, but I cannot reproduce this at all.. I'm suspecting that this issue is related to some other add-on like a script-blocker..

I just disabled uBlock Origin and everything works fine now! Thank you.
Since it's a very popular extension, perhaps all the problems come from there, or from other ad blockers.

It must be some non-default setting @KLuK9, because I installed that add-on and SAML-tracer export keeps working.


When trying to have multiple styles the Program throws exception

Describe the bug
When I have multiple styles inside <Window.Styles> Avalonia throws and exception
To Reproduce
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
		xmlns:gif="clr-namespace:AvaloniaGif;assembly=AvaloniaGif"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
		MinWidth="800" MinHeight="450"
		Width="800" Height="450"
        x:Class="AnimationTest.MainWindow"
        Title="AnimationTest">
	<Window.Styles>
		<Style Selector="Image#intro">
			<Setter Property="Width" Value="5"/>
			<Setter Property="Height" Value="5"/>
			<Style.Animations>
				<Animation Delay="0:0:1" Duration="0:0:2">
					<KeyFrame Cue="0%">
						<Setter Property="Width" Value="800"/>
						<Setter Property="Height" Value="450"/>
					</KeyFrame>
					<KeyFrame Cue="100%">
						<Setter Property="Height" Value="5"/>
						<Setter Property="Width" Value="5"/>
					</KeyFrame>
				</Animation>
			</Style.Animations>
		</Style>
		<Style Selector="Grid#grd_test">
			<Style.Animations>
				<Animation Delay="0:0:1" Duration="0:0:2">
					<KeyFrame Cue="0%">
						<Setter Property="Opacity" Value="0.0"/>
					</KeyFrame>
					<KeyFrame Cue="100%">
						<Setter Property="Opacity" Value="1.0"/>
					</KeyFrame>
				</Animation>
			</Style.Animations>
		</Style>
	</Window.Styles>
	<Grid Name="grd_intro" MinWidth="1">
		<Image Name="intro" Grid.Column="1"
               Stretch="UniformToFill"
               gif:GifImage.SourceUriRaw="resm:AnimationTest.Assets.intro.gif" gif:GifImage.IterationCount="0"/>
	</Grid>
	<Grid Name="grd_test">
	</Grid>
</Window>

Exception
XAMLIL	Unable to find a setter that allows multiple assignments to the property Content of type Avalonia.Controls:Avalonia.Controls.ContentControl Line 1, position 2.	AnimationTest	C:\Users\user\source\repos\AnimationTest\AnimationTest\MainWindow.axaml
Desktop (please complete the following information):

OS: Windows 10
Version Avalonia v0.10.0, .NET 5

Wrap it inside  tags.

Done, sorry didn't notice I need 3 of these `

might be that in older version it didnt matter. Prob we will fix this in future... we have other issues open for that.

How would it be done in a new/current version? Inside code or?

@danwalmsley which other issues did you refer to? And is having multiple animation currently possible in code or is it just not working in XAML?

@WakanaYuki can you create another issue for animators instead updating this?

I think the problem here is that the Window has 2 children, as stated by the error.

@jp2masa Thank you so much, that was actually the issue, I totally forgot that I have 2 grids in the MainWindow. I was way too focused on the


[Backport] update delete model TransportAction to support custom model

update delete model TransportAction to support custom model

Signed-off-by: Xun Zhang<EMAIL_ADDRESS>Description
Back ported from custom model branch. Also, added a few lines to delete custom model chunks if the model metaData is not found.
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

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

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

Codecov Report

Merging #497 (a00f492) into 2.x (a246eba) will increase coverage by 0.15%.
The diff coverage is 85.71%.

@@             Coverage Diff              @@
##                2.x     #497      +/-   ##
============================================
+ Coverage     64.10%   64.25%   +0.15%
- Complexity      753      762       +9
============================================
  Files            86       86
  Lines          3257     3282      +25
  Branches        305      310       +5
============================================
+ Hits           2088     2109      +21
- Misses         1072     1073       +1
- Partials         97      100       +3

Flag
Coverage Δ

ml-commons
64.25% <85.71%> (+0.15%)
:arrow_up:

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

Impacted Files
Coverage Δ

...h/ml/action/models/DeleteModelTransportAction.java
91.11% <85.71%> (-8.89%)
:arrow_down:

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


webcrypto api (question)

Curious what the plans are with the webcrypto API given the proof needs more than simple scalar arithmetic to solve. Meaning you couldn't really construct a useful client without user-land JS to to implement Group/Scalar functions. Signing is just one small piece ?

The initial proposal (found in webcrypto.md) tries to re-purpose the signing operation under a different algorithm name. Thus, webcrypto API suffers no changes.
As the protocol got more variants (POPRF and VOPRF), the webcrypto API may not cover all of them. Then, it is desirable to have a special API to deal with the oblivious-PRF functions from the specification.
One potential solution is defining a proper API in WASI crypto, instead of in the Webcrypto API. Certainly, we want to hear more about use cases, and users to motivate its integration in WASI (cc: @jedisct1).

Designing a nice generic API may be challenging, but support for OPRFs can definitely be added to the WASI-Crypto specification.
Not as a REQUIRED module, but as an optional one. At least, this will ensure that all implementations share the same API.

Note that the module can be promoted to REQUIRED later, depending on usage.


Move AdvancedSecurityMigrationTests.java to opensearch directory

opensearch-security pull request intake form
Please provide as much details as possible to get feedback/acceptance on your PR quickly

Category: (Enhancement, New feature, Bug fix, Test fix, Refactoring, Maintenance, Documentation)
Maintenance

Github Issue # or road-map entry, if available:

Description of changes:
Move AdvancedSecurityMigrationTests.java to opensearch directory

Why these changes are required?
Fix the namespace to follow OpenSearch naming convention

What is the old behavior before changes and new behavior after changes? (Please add any example/logs/screen-shot if available)
No changes in behavior

Testing done: (Please provide details of testing done: Unit testing, integration testing and manual testing)
UT

TO-DOs, if any: (Please describe pending items and provide Github issues# for each of them)

Is it backport from main branch? (If yes, please add backport PR # and commits #)

By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1255 (644d501) into main (9adcd20) will increase coverage by 0.02%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main    #1255      +/-   ##
============================================
+ Coverage     64.71%   64.74%   +0.02%
- Complexity     3195     3197       +2
============================================
  Files           247      247
  Lines         17191    17191
  Branches       3042     3042
============================================
+ Hits          11126    11131       +5
+ Misses         4517     4513       -4
+ Partials       1548     1547       -1

Impacted Files
Coverage Δ

.../dlic/auth/ldap2/LDAPConnectionFactoryFactory.java
56.48% <0.00%> (-1.53%)
:arrow_down:

...iance/ComplianceIndexingOperationListenerImpl.java
62.31% <0.00%> (+1.44%)
:arrow_up:

...earch/security/ssl/util/SSLConnectionTestUtil.java
95.45% <0.00%> (+2.27%)
:arrow_up:

...urity/ssl/transport/SecuritySSLNettyTransport.java
73.40% <0.00%> (+4.25%)
: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 9adcd20...644d501. Read the comment docs.


Add the ability to paste in an existing CSP and have it be converted and stored.

Add a new tool that allows you to paste in an existing CSP and have update the CSP for the current site.
This should exist on the tools menu and provide a modal with the following properties:
Update Type : Merge / Replace
CSP Content : Text Area

Cancelling as this adds very little value.


Added 'Electronics' category of words

Added a new category of words with many list items.

Resolves #13


Update for ootrs format

This is preliminary changes to account for the new soundbank mods. Excluding those was the only thing necessary on this end, the .ootrs file handling is on the workflow side, and will be PR'd once this is in official release form.

The issue with Windows builds is not from this PR, fixed that in #6, so merging this one now, should build just fine.


Watcher: Automated E2E Test

Description:
Currently, the Istio gateway which is deployed with the lifecycle manager is exposing an http endpoint. We would like to change that to mTLS mode to comply with security requirements.
ACs:

[x] Another review round with the Security Team

[x] Security experts approved setup

[x] Mutual TLS termination endpoint should be configured in the Istio GW resource deployed in the KCP cluster. Pls double check if it working or something is still missing
[x] Provide an automated test for the mTLS setup (dual-cluster)

[x] Periodic job on main branch
[x] Check logs from lifecycle-manager to see if request was send; Or find a different solution without checking logs

Further information:
PoC Documentation
Dependencies:

[x] https://github.com/kyma-project/lifecycle-manager/issues/289
[x] https://github.com/kyma-project/lifecycle-manager/issues/303

For the reviewer:
Merge in the following sequence:

https://github.com/kyma-project/lifecycle-manager/pull/592
https://github.com/kyma-project/test-infra/pull/7509

To test the e2e tests on your local machine, use the README I included in the PR: https://github.com/kyma-project/lifecycle-manager/pull/592/files#diff-66bd902eae87a749489d00ef59e6315433df340bc545b0ae97423f6e05ca99b9
History of PJTester to test the pipeline: https://status.build.kyma-project.io/?job=jeremyharisch_test_of_prowjob_klm-e2e

Blocked by https://github.com/kyma-project/runtime-watcher/issues/103

Missing Part: https://github.com/kyma-project/lifecycle-manager/pull/683/files


txnbuild: SEP 10 challenge builder

PR Checklist
PR Structure

[x] This PR has reasonably narrow scope (if not, break it down into smaller PRs).
[x] This PR avoids mixing refactoring changes with feature changes (split into two PRs
otherwise).
[x] This PR's title starts with name of package that is most changed in the PR, ex.
services/friendbot

Thoroughness

[x] This PR adds tests for the most critical parts of the new functionality or fixes.
[ ] I've updated any docs (developer docs, .md
files, etc... affected by this change). Take a look in the docs folder for a given service,
like this one.

Release planning

[ ] I've updated the relevant CHANGELOG (here for Horizon) if
needed with deprecations, added features, breaking changes, and DB schema changes.
[x] I've decided if this PR requires a new major/minor version according to
semver, or if it's mainly a patch change. The PR is targeted at the next
release branch if it's not a patch change.

Summary
Goal and scope
This PR addresses #1466.
Summary of changes
A new factory method txnbuild.BuildChallengeTx() returns a SEP 10 compatible "challenge" transaction.
Known limitations & issues
This is almost finished, but not quite. It still needs testing, and the envelope currently being produced appears to be invalid according to Stellar Laboratory.
Needs adding to the Changelog. An example of use should be added to the docs.
The code will need to be reworked in v2.0. This is indicated by Action needed tags.
What shouldn't be reviewed
All to be reviewed.

@bartekn  good catch for the network passphrase. We should probably hold off on this until we get more information on that. I see that you opened an issue for it, will track there.

@poliha this has been clarified in SEP-10 so I think this PR is unblocked.

Shouldn't this be merged into the next minor release branch since it adds a feature? No point reverting it this time, but I just wanted to double check that my understanding is right.

@tomquisel Yes that would have been the case but we don't have the next minor release branch yet because we just pushed put v1.3. We will base the next release branch off master so this will be in there for sure.

Implementation for the js-sdk here


Self-hosted version ask user to login and provide API key. Completion/chat not working.

There is several problems.
1.
Self-hosted version trying to login and check API key even if Inference URL set to http://<IP_ADDRESS>:8008/)
This messages are repeated in the log:
2023-09-08 01:49:25,452 [ 451242]   WARN - check_login - call
2023-09-08 01:49:25,526 [ 451316]   WARN - check_login - recall: {
    "retcode": "FAILED",
    "human_readable_message": "The API key is not recognized (1)."
}

Steps to reproduce:

Install Refact plugin.
Click to login to RefactAI.
Click to Settings
Set Advanced - Inference URL to http://<IP_ADDRESS>:8008/ and save settings.
5 Try completion - it works. Try open chat - No chats availiable

Workaround: login to cloud, then delete API key and set Inference URL for self-hosted.

Sometimes you are not logged as self-hosted but logged as null. In this case completion and chat not working.
Steps to reproduce: First installation?
Plugin version 1.1.53

1.1.53-fixes-9-b294d942 - OK

First case fixed here https://plugins.jetbrains.com/plugin/20647-refact-ai/versions/stable/399313
2nd can't reproduce.


Fix an issue whereby System Properties were not interpolated for generate-daemons

Closes https://github.com/mojohaus/appassembler/issues/83
Previously System Properties were interpolated for assemble but not generate-daemons

Please rebase with master and change the commit message accordingly.

@khmarbaise Okay I have rebased them all.


Add a secrets option to the constructor

Similar to the events option from #36, I'd like the Toolkit constructor to have a secrets option that does exactly the same kind of thing: will exit with a failure if the required secrets are not present. This should be a declarative, clear way of saying "this action won't work without these secrets."
new Toolkit({
  secrets: ['GITHUB_TOKEN']
})

I like, great IDEA!
I think you could somewhat enforce by defining getters which would only work if the secrets are defined as shown above
toolkit.secrets.get('GITHUB_TOKEN')

I think you could also implement toolkit.secrets.GITHUB_TOKEN using Proxy

ooooooooo that's a great idea. I do want it to the secrets to be optional - so if I say:
new Toolkit({
  secrets: ['GITHUB_TOKEN']
})

I should still be allowed to access process.env.SOME_OTHER_SECRET.

good point, secrets might be optional 🤔
In these cases you’d usually check if the ENV variable is set, you could provide a method like toolkit.secrets.isProvided('GITHUB_TOKEN')
Maybe it’s overkill 🤷♂


Update arguments and names for nmt/s2t/s2s clients

looks fine. binaries can be named as riva_nmt_*


Fix shared dirs in proxy config files

@benrudolph @dannyroberts @emord

:+1: , does --check on prod return empty now?

I did not try that, but I will...

I tested on staging and zambia, which each have different values for shared_drive_enabled

Close to empty. I think fine as far as this PR is concerned. Messaging you offline with changes that I observed.


set HDF5_PLUGIN_PATH programmatically

For filters (and for Zarr?) we are using the HDF5_PLUGIN_PATH environment variable to specify where plugins should be found.
But as I just learned today, we can actually set the plugin path programmatically now.
https://docs.hdfgroup.org/hdf5/develop/group___h5_p_l.html#title3
Turns out they have had this capability for years, so we should have known this when we did the compression work. But we did not. I guess there is a good reason to go to workshops in person.
How should we use this?
We could:

Allow the builder to specify a default plugin path that will always be used whenever netCDF is run. We could do this by calling the appropriate functions on library startup. Then we don't have to care about the environment variable HDF5_PLUGIN_PATH (but would interoperate with it). This is easy and we should do this immediately.
We could put new functions in the netCDF API to allow the user to directly append to, delete, and inquire the plugin path. This would be maximally flexible. However I don't think this is a good enough reason to extend the API.

So I suggest 1 but not 2. However I defer to @DennisHeimbigner the expert on filters.

I note that there are also prepend (put at front) and insert (put anywhere in list) functions.

Allow the builder to specify a default plugin path that will always be used whenever netCDF is run.

It occurs to me that  I do not quite understand this proposal. I guess that you are proposing an option.
say --with-default-plugin-path=XXX.
Is my guess correct?

Yes, that's what I had in mind.
I think we already allow them to specify a plugin directory, right? And then they have to set the environment varialble HDF5_PLUGIN_PATH to that location before running any programs that use the filter.
Instead, netcdf-c could set that programmatically, so there would be no need for the environment var to be set. This would help a lot, since many users are sure to get confused and forget to set the environment var.

Also, we already have --with-plugin-dir to specify where to install plugins. How, if at all, should
this proposal interact with --with-plugin-dir?

I think it should just take that directory, and set it programmatically whenever netcdf starts. So the user does not have to set HDF5_PLUGIN_PATH environment variable for filters to work.

I don't follow. the --with-plugin-dir options says where to install the plugins, while --with-default-plugin-path
(my name for the option you propose) would specify from where to load plugins.
We could do, say,  the following:
1.If --with-plugin-dir is  set, and  --with-default-plugin-path is not set, we use the former as the value of the latter.
2.  If --with-plugin-dir is not set, and  --with-default-plugin-path is set, we use the latter as the value of the former.

What good can possibly come of allowing the user to install filters in one place, and then look for them in another?
Let there be zero or one directory specified at netCDF configure time. If zero, the HDF5 default plugin dir is used.
If one, then filters are installed there, and every time netcdf-c starts up, it prepends that directory to the plugin path programmatically.
I assume the HDF5 code would give the environment variable HDF5_PLUGIN_PATH the final say in the matter, so that is still available to advanced users.

What good can possibly come of allowing the user to install filters in one place, and then look for them in another?

Remember that the default is actually a path, not a single directory. So it is quite conceivable that an organization might have a directory of globally available plugins and a user might have his own directory of plugins. In this case, the local directory is for installation and the path "global;local" is the path for dynamic loading.

I would say that the netcdf installation has the global path and the user should set the HDF5_PLUGIN_PATH environment variable to include his local plugin directory.
Yes, a complete path should be allowed.

Proposal for Default Plugin Path
The plugin path list manipulation functions in HDF5 operate basically as follows.

On startup, the internal plugin path list is one path that is either the built-in default (i.e. /usr/local/hdf5/lib/plugin) or the value of HDF5_PLUGIN_PATH (if defined).
If HDF5_PLUGIN_PATH has multiple directories (e.g. dirpath1:dirpath2) then it is parsed as a list so the internal plugin path list is as follows.

element [0]: dirpath1
element [1]: dirpath2

The append and prepend operations work as expected to insert a single directory at the front or end of the internal plugin path.

So, the proposal is as follows.
Add configure option
--with-default-plugin-path=*;\<path\>;\<path\>;...;*

The * indicates where the existing default plugin path goes.
So, the sequence of <path>s is parsed to produce a list
and the list is inserted (in order) at either the front or the end of the
existing internal plugin list as controlled by the placement of the star.
The leading star (or no star) means insert at the end of the existing path.
Trailing start means insert at the beginning of the existing path.
Note that semicolon separator is always allowed even on linux machines.
The colon is also allowed on non-windows platforms, but not on
platforms that allow the "X:" windows drive letter notation in paths.
The --with-plugin-dir option is renamed --with-plugin-install-dir
but otherwise its semantics remains unchanged.
For back compatibility, the --with-plugin-dir option
is deprecated but aliased to --with-plugin-install-dir for some
period of time before removing it.
As noted above, if HDF5_PLUGIN_PATH is defined at startup, then it serves to initialize the internal path list.

This just slipped down the stack. I will put together a proposal for this and run it by
you and Unidata. May take a little while since it is not my highest priority.

I assume that the HDF5_PLUGIN_PATH is used when the HDF5 library is loaded (and later changes will be ignored, this is correct?).

Sort of. AFAIK the value of HDF5_PLUGIN_PATH is parsed when the HDF5 library is initialized. You are correct
that any changes to HDF5_PLUGIN_PATH are ignored after that point.

If a NetCDF package or the user can tell HDF5/NetCDF where to find the plugin within a julia session after the HDF5 library is loaded, this would help us a lot.

If I understand, your requirements are somewhat more extensive  than Ed's original proposal above.
It sounds like you want to be able to do the equivalent of having later changes to HDF5_PLUGIN_PATH
to be propagated to the HDF5 library plugin search immediately. As opposed to Ed's at build time.

Yes, indeed I would like a way to set the plugin path after the HDF5 and netCDF libraries are loaded via an environment variable or via an API call. A somewhat similar problem was the discovering of the SSL certificates which is possible via nc_rc_set API that you implemented (thanks again:-)). Maybe an API call would be preferable, so that we do not leave a modified HDF5_PLUGIN_PATH variable once the julia program finishes.
As I understand, HDF5 expects all plugins inside its own plugin directory per default and the NetCDF installation script copies them there automatically so that the user does not have to worry about setting the HDF5_PLUGIN_PATH variable.
In julia we currently do not ship NetCDF/HDF5 filters because we cannot modify the HDF5 package after building the HDF5 source code. Including the NetCDF filters in the HDF5 package would result that HDF5 becomes dependency on netCDF (and vice versa). So one possibility for us would be to ship the NetCDF/HDF5 plugin with the NetCDF package. But then we need to tell HDF5 where to look for the plugins.
Maybe an alternative (simpler?) approach for our problem, could be that when libnetcdf.so is loaded the path plugins or ../plugins (relative to  libnetcdf.so) is appended using H5PLappend (as in julia all libraries are installed with different path prefix unlike Linux systems when all libraries are install in a common prefix /usr for example)

OK, I am taking a look at this now.
If netcdf-c called H5PLappend() at initialization, feeding it the directory used in the configure, would that remove the need for setting HDF5_PLUGIN_PATH?
I would call H5PLappend() from the NC4_initialize() function, currently in libsrc4/nc4dispatch.c. I would move that function to its own file, with a .in ending, and then use the configure step to fill in the value of the directory specified at configure.
@DennisHeimbigner @Alexander-Barth any thoughts?

@Alexander-Barth the proposal to set the plugin path pro grammatically should be discussed as a separate issue. I'm not convinced we should expose this level of detail to netCDF users. I note however that you can easily call the HDF5 function H5PLappend() at any time and achieve this.
@DennisHeimbigner I don't think HDF5_PLUGIN_PATH should play any role at configure-time. It should be ignored. We do not want to increase use of environment variables, that brings many problems. And there can be no user expectation that HDF5_PLUGIN_PATH will have meaning at netCDF install time. It's clearly a run-time issue.
So that leaves only whatever the builder passes to configure with --with-plugin-dir= (and the CMake equivalent). I propose to append this value to the HDF5 plugin path. This will allow uses to set the plugin dir at configure, and have it work out of the box. If they wish to set multiple directories, separated by semi-colons, they can do that. If they wish to override this later with HDF5_PLUGIN_PATH, they can easily do that.
But ordinary users who don't care will just get a working installation without have to set any environment variable.
Any objections?

Ok, I will  try to use H5PLappend(). I was not aware of this function and I guess too that this should work.

There's a bunch of related functions: https://docs.hdfgroup.org/hdf5/v1_12/group___h5_p_l.html
Unlike most HDF5 functions, these do not require any file or object IDs. So they can be called without any knowledge of netCDF internals.

Thanks, this is very helpful to know :-)

Please review discussion item https://github.com/Unidata/netcdf-c/discussions/2495

See https://github.com/Unidata/netcdf-c/pull/3024


Appstudio update test-component-pac-hwgw

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-hwgw-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
17 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
1 minute
build-container

✅ Succeeded
22 seconds
deprecated-base-image-check

✅ Succeeded
25 seconds
inspect-image

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
25 seconds
clair-scan

✅ Succeeded
24 seconds
sbom-json-check

✅ Succeeded
28 seconds
optional-label-check

✅ Succeeded
28 seconds
label-check

✅ Succeeded
18 seconds
show-sbom

✅ Succeeded
24 seconds
show-summary


fix flag options

fix https://github.com/rhysd/hgrep/issues/14.
https://github.com/clap-rs/clap/blob/9aa76fa12fc71ea484f12ce68272e51876ceacf1/CHANGELOG.md#migrating

Thanks! This was mistake when migrating clap from v3 to v4. I will make a new release after fixing some other options as well.


fix waybar modules

fixes this pull request covers so far

creates the options enableRightBackColors, enableCenterBackColors, and enableLeftBackColors, that are set to false by default.
sets the font color to base00.
adds some modules i missed.
seperated some theming stuff into seperate css files.

i think this is in a suitable state to be merged now after adding padding.


Refactoring to turn single line arrow function into multi-line and back

Could not find a dup. Sorry if it is.
I find myself converting between these 2 very very often:
f(x => compute(x))

f(x => {
    return compute(x);
}

Can I please suggest an automatic refactoring for this? I guess this applies to both JS and Typescript.
Prior art: Resharper and C#
https://www.jetbrains.com/help/resharper/ConvertToLambdaExpression.html

Thanks. Duplicate of https://github.com/Microsoft/TypeScript/issues/23299


MINOR: Add unit test for internal topics

LGTM

LGTM after fixing checkstyle issues

@ewencp Checkstyle issue fixed. Local unit test pass.


Generalise data reading

Currently,
there are a number of assumptions about the data file hard-coded into the CLI,
such as the number of metadata rows,
and the order they occur in.
While some assumptions must be made to even begin the process of reading the data,
as long as the number of rows in the column metadata
and the name of the necessary metadata fields are given,
this can be generalised to accept more flexible data structures.

Closed by d5ce9f594ff338


ORDER BY time DESC breaks aggregation without explicit where condition

Bug report
System info:
InfluxDB v1.1.0
OS: Debian 64bit
Steps to reproduce:

Create a measurement, for example "mes"
Insert some data:

insert mes,org=3 total=240<PHONE_NUMBER>000000000
insert mes,org=3 total=100,errors=100<PHONE_NUMBER>000000000
insert mes,org=4 total=3<PHONE_NUMBER>000000000
insert mes,org=4 errors=100,total=100<PHONE_NUMBER>000000000

Run the following query:
select sum(total), sum(errors) as "errors" from mes where time >= '2016-12-31 17:00:00' AND time < '2016-12-31 19:00:00' group by org, time(1h) order by time DESC

Expected behavior:
I expect there to be 4 total rows in the response, corresponding with the inserted data.
Actual behavior:
What I actually get is:
> select sum(total), sum(errors) as "errors" from mes where time >= '2016-12-31 17:00:00' AND time < '2016-12-31 19:00:00' group by org, time(1h) order by time DESC
name: mes
tags: org=3
time                    sum     errors
----                    ---     ------
1483207200000000000             100
1483203600000000000

name: mes
tags: org=4
time                    sum     errors
----                    ---     ------
1483207200000000000     100     100
1483203600000000000     3

name: mes
tags: org=3
time                    sum     errors
----                    ---     ------
1483207200000000000     100
1483203600000000000     240

When I run the same thing without ordering by time descending (either with no ordering, or ordering ascending), then everything is fine. Alternatively, I can set "and org='3'" and the result will also be fine.

Let's try to reproduce this against 1.5.x


Ensure correct order of logentries when sending them to Loki

Resolves: #39

@Falco20019 I've not had much time to spend on this Sink as I'd have liked to, would you be interested in being made a co-maintainer?

@JosephWoodward Sure :) Would it also be possible to do releases?


Restoring datastore Gax exception re-mapping.

Fixes #2746.
See previous source for reference.
@lukesneeringer I don't really like doing this, but I'm not sure if there's a better way to remap the GaxError-s to our google.cloud exceptions.

@lukesneeringer I don't really like doing this, but I'm not sure if there's a better way to remap the GaxError-s to our google.cloud exceptions.

It is fine for now. I would personally prefer rethink GaxError more generally, but that is a bigger project.

:+1: Worth filing an issue to track this? DERP on not running lint locally

:+1: Worth filing an issue to track this?
Nah.

DERP on not running lint locally

My changes in #3146 should make that much easier in the workflow, since lint is moved into the individual packages.

@lukesneeringer Naw it was just a DERP by me. tox -e lint is plenty fast when you set GOOGLE_CLOUD_TESTING_BRANCH and GOOGLE_CLOUD_TESTING_REMOTE (this PR only changed 2 files so it was very quick)

Sure, but because I work inside packages, I often forget to cd .. and run lint and system tests separately.


Scorecard scores as a case study

Ask Nusrat about the Scorecard data since she collected the data for the packages I shared for a case study on a small number of packages.


docker: add possibility to use cli via docker

Now anyone can use dexios using the following command
docker build -t dexios .
docker run --rm -it -v $PWD:/data dexios -e test.txt test.enc

@brxken128 you can build and publish to the docker hub, then the image name will look like brxken128/dexios.
Might solve the problem (#103 and possibly another) for Windows users

Looks great! I could never figure dockerfiles out myself, so I really appreciate this. I'll merge but wait until v8.8.0's release before publishing on dockerhub, that way it can be in sync with crates.io.
Thank you so much!

I will continue my work on #111 as soon as I can - vscode decided to break on Void Linux and it's left me a little stranded. I need a newer version of rust-analyzer as it fixed some of my autocomplete issues, so I can't downgrade vscode version either. A nightmare for sure @pleshevskiy

I could sadly never get into vim or nvim, I use vim for editing config files and such, but I haven't gone through great lengths to configure them for anything else. Now might be a good time to give them a shot, although I am going to miss the convenience of plugins such as GitLens and stuff.
Those configs look great btw, thank you! They should be a more than good enough starting point.

GitLens

https://github.com/APZelos/blamer.nvim
You can find any plugin in nvim and even more :)

Now that is damn impressive! Thank you so much :))


Daily Pull Request (July 10th 2017)

@tensorflow-jenkins test this please.

@jhseu PTAL

Barrier ops test is b/35468214.
Jenkins, test this please.

Nits:

5d1b38d is the merge commit, but the commit message indicates something else (probably what was needed in conflict resolution?).
(Style) Please leave the original pull request title that's set when you create the pull request since it includes the CL#.

Due to some internal delays, I am going to recreate and land this in a bit.


Effect bar position wrong when A/V functionality right docked

Description
When using Foundrys A/V functionality and with the A/V Icon or Camera space docked to the right sight the whole right sidebar is moved out of the way to make the extra-space for the A/V dock on the right side by moving the menu some pixels to the left.
Unfortunately, the location of the Active Effects are not moved, too, so you end up having Effect status icons "hanging around" in the middle of the right menu bar.
To Reproduce
Steps to reproduce the behavior:

Enter world, active AV functionality
Change docking of the v10 new A/V bar to "Right".
(add/)Select actor with effects to any scene, see the Effects Panel not moving with the right sidebar menu. Instead find the effect icons in the middle of the right sidebar menu on the location where they would be correct if there wasn't a additional A/V panel added to the right side.

Expected behavior
Effect panel should move same space to left like the right sidebar menus does when setting the A/V panel to the right position docking.

Fixed in v2.1.0

@DFreds, unfortunately, now it's off when A/V is docked to the left ha.

Whoops! Thanks, will fix

Should be good in v2.1.1... Hopefully


[SPARK-36680][SQL][FOLLOWUP] Files with options should be put into resolveDataSource function

What changes were proposed in this pull request?

When reading csv, json and other files, pass the options parameter to the rules.resolveDataSource method to make the options parameter effective.
This is a bug fix for #46707 @szehon-ho
Why are the changes needed?

For the following SQL, the options parameter passed in does not take effect. This is because the rules.resolveDataSource method does not pass the options parameter during the datasource construction process
 SELECT * FROM csv.`/test/data.csv` WITH (`header` = true, 'delimiter' = '|')

Does this PR introduce any user-facing change?

No
How was this patch tested?

Unit test in SQLQuerySuite
Was this patch authored or co-authored using generative AI tooling?

No

cc @huaxingao @cloud-fan  could you review this PR? This is my first PR in the Spark community. Thank you ：）

@cloud-fan Thank you very much, I modified the code according to your suggestion, can you take a look at it again?

thanks, merging to master!


Missing/incorrect image key for tornado/tempest

https://www.opendota.com/matches/3223740175/combat (see Enchantress damage dealt)

The constant in the NPM module dotaconstants' neutral_abilities for this ability is enraged_wildkin_tornado. However the key returned from the Steam API is tornado_tempest. So you parse the img src as if it is an ability and not a neutral_ability because it fails the conditional. Renamed the constant in my local npm_modules and this solved the issue.

So just a quick pull request to dotaconstants to correct the string should fix this?

Created pull request with change.

Doesn't seem to be fixed in prod, will investigate further.

I just updated my forked repo from the master branch for the UI and after doing a fresh npm install locally to update dotaconstants the problem was resolved.

It looks like with the introduction of package-lock.json in npm5, minor/patch updates will not be updated in downstream packages.
I've run npm update to update the lockfile and the change should be reflected in the next release.
cc @Crazy-Duck


EnvironmentPlugin doesn't error if environment variable wasn't found?

Bug report

What is the current behavior?
Webpack configured to use EnvironmentPlugin will happily build code with unknown environment variables like process.env.UNKNOWN.
If the current behavior is a bug, please provide the steps to reproduce.
I have created a fork of the webpack repo and tweaked an example to demonstrate the issue at https://github.com/fasiha/webpack/tree/example-environment-plugin. You can either check out that fork and branch and then run
yarn && yarn setup && yarn add --dev webpack-cli
cd examples/multi-compiler
node build.js

or simply check out the current main branch and apply the following patch to modify one of the examples:
diff --git a/examples/multi-compiler/example.js b/examples/multi-compiler/example.js
index 7a10193a2..ac996212d 100644
--- a/examples/multi-compiler/example.js
+++ b/examples/multi-compiler/example.js
@@ -1,4 +1,4 @@
-if(ENV === "mobile") {
+if (process.env.TESTING && process.env.ENV === "mobile") {
 	require("./mobile-stuff");
 }
-console.log("Running " + ENV + " build");
\ No newline at end of file
+console.log("Running " + process.env.ENV + " build");
diff --git a/examples/multi-compiler/webpack.config.js b/examples/multi-compiler/webpack.config.js
index e7b01428c..0de1ae133 100644
--- a/examples/multi-compiler/webpack.config.js
+++ b/examples/multi-compiler/webpack.config.js
@@ -11,8 +11,8 @@ module.exports = [
 			filename: "mobile.js"
 		},
 		plugins: [
-			new webpack.DefinePlugin({
-				ENV: JSON.stringify("mobile")
+			new webpack.EnvironmentPlugin({
+				ENV: "mobile"
 			})
 		]
 	},
@@ -26,8 +26,8 @@ module.exports = [
 			filename: "desktop.js"
 		},
 		plugins: [
-			new webpack.DefinePlugin({
-				ENV: JSON.stringify("desktop")
+			new webpack.EnvironmentPlugin({
+				ENV: "desktop"
 			})
 		]
 	}

Then run cd examples/multi-compiler && node build.js.
Whether you use my branch or the above patch, building the modified multi-compiler example will happily run without any errors.
The resulting code has process.env.ENV correctly interpolated to desktop or mobile per Webpack config, but the new unknown process.env.TESTING is erroneously left intact.

What is the expected behavior?
I expect building multi-compiler in the above branch (or the current webpack main with the patch applied) to fail per EnvironmentPlugin docs:

If an environment variable is not found during bundling and no default value was provided, webpack will throw an error instead of a warning.

Other relevant information:
webpack version:  main branch 2e174de66
Node.js version: v20.18.0
Operating System: macOS and Rocky9 Linux
Additional tools:

Understood, thanks, sorry for misunderstanding! It was very surprising to see process.env.… in the built output but I now see that this is intended behavior.
If it's ok with you, I'll prepare a PR explaining this a bit more in the documentation?

@fasiha Yeah, feel free to send a pr :heart:


[SPARTA-724 FileSystem Output]

Implementation of a new output based in a HDFS-compatible API filesystem.

Coverage increased (+0.3%) to 51.027% when pulling a72a836b557f8fc37ae3ed695b18f9496e5734b5 on mtelloz:feature/fileSystemOutput into 790930d3f1f9983a2b84b53f1a64a39095c8e260 on Stratio:master.

Coverage increased (+0.3%) to 50.205% when pulling a53593a791652e506028732d9a288a4b7536a382 on mtelloz:feature/fileSystemOutput into b9e66fb1ef2b49c11d184d66b7b5a090306ddb44 on Stratio:master.

Coverage increased (+0.3%) to 50.205% when pulling 7447ee97f197dffa2fc8f09a600522e5b1de30b6 on mtelloz:feature/fileSystemOutput into b9e66fb1ef2b49c11d184d66b7b5a090306ddb44 on Stratio:master.


add spark-bigquery to zeppelin

I signed it!

Hi I work for Spotify and we already signed a company CLA.

Hi Neville,
I'll look into your CLA.
I hadn't realized https://github.com/spotify/spark-bigquery existed. I have been meaning to write something similar, but it seems pretty neat, As for adding it to Zeppelin isn't
%dep
load("spotify:spark-bigquery_2.10:0.1.0")

sufficient? It seems better to let users customize their Classpaths however they like.
-Patrick

@pmkc sounds good. Do check out spark-bigquery and let me know what you think.
Closing this for now.


Windows 10 phone network capabilities

Without this capabilites the phone will not use the network and the maps will not work.

What version of Windows are you testing this against? I've tested this with the config.xml as is and the maps work without any issues. Could you provide some reference to these settings?

Thanks for the PR! I'm going to close this as it's been awhile since there was any activity and we are going to be replacing the master branch. :smile:


Add PeerEvent to NetworkEvent enum

Closes #562
The peerEvent is based on this geth implementation:
https://github.com/ethereum/go-ethereum/blob/53d1ae096ac0515173e17f0f81a553e5f39027f7/p2p/peer.go#L94

Codecov Report

Merging #574 (6f86a7d) into main (c070e77) will decrease coverage by 0.00%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #574      +/-   ##
==========================================
- Coverage   72.92%   72.91%   -0.01%
==========================================
  Files         244      244
  Lines       24690    24692       +2
==========================================
+ Hits        18004    18005       +1
- Misses       6686     6687       +1

Flag
Coverage Δ

unit-tests
72.91% <0.00%> (-0.01%)
:arrow_down:

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

Impacted Files
Coverage Δ

crates/net/network/src/manager.rs
47.07% <ø> (ø)

crates/net/network/src/transactions.rs
0.00% <0.00%> (ø)

crates/net/rpc-types/src/eth/syncing.rs
0.00% <0.00%> (ø)

crates/net/network/src/session/active.rs
82.75% <0.00%> (-0.21%)
:arrow_down:

crates/stages/src/stages/bodies.rs
93.69% <0.00%> (+0.38%)
:arrow_up:

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


Add aggregated clusterroles for view and cluster-reader

Kyverno already ships with aggregated clusterroles for admin, but doesn't provide read-only variants for view and cluster-reader.
We possibly could extract the kinds from the upstream aggregated roles for admin, but they're not separated by cluster-scoped and namespaced resources, so we'd have to do some manual checking anyway when updating to a new minor version.
Checklist

[x] PR contains a single logical change (to build a better changelog).
[x] Update the documentation.
[x] Categorize the PR by setting a good title and adding one of the labels:
bug, enhancement, documentation, change, breaking, dependency
as they show up in the changelog.

Not sure if we should determine in more detail for which namespaced resources we aggregate read-only permissions to the view role. Also, should we add read-write for some resources to edit or is it ok that you either need admin or a custom role to have read-write permissions to the namespaced resources for a project?


cookbook_file source attribute assertion matches on name attrribute

# example resource
cookbook_file "/tmp/my_file" do
  source "file_a"  # files/default/file_a
end

# rspec example
it 'creates my_file' do
  expect(chef_run).to create_cookbook_file('/tmp/my_file').with(
    source: 'file_a'
  )
end

Failure/Error: expect(chef_run).to create_cookbook_file('/tmp/my_file').with(
       expected "cookbook_file[/tmp/my_file]" to have parameters:

         source "file_a", was "my_file"

I found an error in my recipe.  This does work!


Add SHA256 benchmark

The main purpose of this PR is to include a benchmark that matches those in the https://github.com/celer-network/zk-benchmark repository.

The expected output is T when the input hex number equals the expected hash, together with timing information for each step of the proof generation and verification.
To achieve the above goal a number of changes in the larger repository are made:

Define a SHA256 coprocessor using the bellperson SHA256 circuit.
Fix a bug with coprocessors with arity 0 not evaluating correctly.
Change the expected reduction count steps for associated tests.
Change the visibility of some modules so they can be used in an example.

The major (ongoing) change is that related to moving the public parameter and proof caching mechanism from fcomm to lurk core. This is a WIP and has not been incorporated into the example yet.
As such, it may be in your best interest to run the benchmark with reduction count 1 to minimize the setup phase until the changes are finished.
Fixes #382

Thanks, @mpenciak. I'm looking but also added @emmorais as a reviewer since this involves circuit code.


Update Failure notification button text pulls from defaultDefer instead of errorDefer

When the Update Failure notification displays the LaunchDaemon is being scheduled using the errorDefer value, however the button text on the notification is pulling from the defaultDefer value.
Example: I set the errorDefer=14400 and the LaunchDaemon was scheduled for 4 hours later, but the button on the notification showed "Defer for 1 hour" which I set the defaultDefer=3600
Attached screen shot and log
super (3).log

Thanks for this discovery... I'll resolve in next build.


Issue 1862: Update org.apache.commons:commons-collections4 from version 4.3 to 4.4

Pull Request Description
This pull request closes strongbox/strongbox#1862
Acceptance Test

[x] Building the code of the strongbox-parent with mvn clean install still works.
[x] Building the code of the strongbox project with mvn clean install -Dintegration.tests still works.
[x] Running mvn spring-boot:run in the strongbox-web-core still starts up the application correctly.
[x] Building the code and running the strongbox-distribution from a zip or tar.gz still works.
[x] The tests in the strongbox-web-integration-tests still run properly.

Questions

Does this pull request break backward compatibility?

[ ] Yes
[x] No

Does this pull request require other pull requests to be merged first?

[ ] Yes, please see #...
[x] No

Does this require an update of the documentation?

[ ] Yes, please see strongbox/strongbox-docs#{PR_NUMBER}
[x] No

Code Review And Pre-Merge Checklist

[x] My code follows the coding convention of this project.
[x] I have performed a self-review of my own code.
[ ] I have commented my code in hard-to-understand areas.
[x] My changes generate no new warnings.

Rebased to master.

Thanks for you help! :)


MultiDrawIndirect example??

Is there any example using this OpenGL feature / extension?
Also I am trying to specifically create a particle system of at least 1 000 000 (1M) particles and be able to run at least 30FPS. I have successfully implemented a Transform Feedback program and have tried to couple this with the MGL 5 render_indirect command, but get a blank screen.
Please advise..

This is the only example for now.
This feature is still experimental, it requires OpenGL 4.3+.
If all the particles have the same shape, you can use instanced rendering instead:

create a vertex buffer with the vertices of a single particle (for example a unit circle)
reuse your particle system's buffer and assign it to a vertex array:

vao = ctx.vertex_array(prog, [
  (single_particle_vbo, '2f', 'in_vert1'),
  (particle system_vbo, '2f 8x/i', 'in_vert2'),  # please note the /i in the buffer format
]

use instanced rendering

vao.render(ModernGL.TRIANGLE_FAN, instances=...)

Take a look at the instanced_rendering_crates.py

Hi Szabolcs,
I implemented the instanced rendering method but it allows me to render only 5000 particles / points and the frame rate drops to 20FPS. No where near the 1million I need. I am not even translating them at all(!).
Surprisingly I can get much better numbers (500k+) with FPS using standard VBOs, VAOs and draw commands...it's just that I thought I would achieve this and better performance (2million+? points) using instancing, but it seems to be opposite...
This is what I have in my current instancing test:
position_buffer = ctx.buffer(positions.astype('f4').tobytes())
vao_content = [
(vertex_buffer, '2f', ['vert']),
(position_buffer, '2f2f/i', ['instance_pos','velocity']),
]
vao1 = ctx.vertex_array(prog, vao_content)
...
vao1.render(ModernGL.POINTS,instances=len(positions))
Any ideas?

In your code:
vao1.render(ModernGL.POINTS,instances=len(positions))

will become:
vao1.render(ModernGL.POINTS, vertices=vertex_buffer.size//8, instances=len(positions))

vertices=vertex_buffer.size//8 is the maximum number of vertices possible to render (the default) 8 comes from the size of 2f (2 floats)

Please paste the buffer creation here, if not possilbe please print the size of each buffer, for example: print(vertex_buffer.size)

The positions buffer is created like so:
x = np.random.uniform(-0.5,0.5,pNum)
y = np.random.uniform(0.0,0.2,pNum)
shape = (pNum,4) # rows, columns
data = np.zeros(shape,dtype=float)
data[:,0] = x
data[:,1] = y
positions = data
position_buffer = ctx.buffer(positions.astype('f4').tobytes())


Bugfix install.sh path to bashrc with spaces

Currently, if username has a space, script will fail; path to bashrc/bash_profile gets broken up
$ curl -s https://raw.githubusercontent.com/imachug/win-sudo/master/install.sh | sh
Downloading win-sudo...
mkdir: created directory '/c/Users/Michael Chan/bin'
mkdir: created directory '/c/Users/Michael Chan/bin/win-sudo'
Processing /c/Users/Michael Chan/.bashrc
sh: line 28: [: /c/Users/Michael: binary operator expected
Processing /c/Users/Michael Chan/.bash_profile
sh: line 28: [: /c/Users/Michael: binary operator expected
Win-sudo successfully installed!

Have tested fix, ensures spaces in path are handled, resulting in
mkdir: created directory '/c/Users/Michael Chan/bin'
mkdir: created directory '/c/Users/Michael Chan/bin/win-sudo'
Processing /c/Users/Michael Chan/.bashrc
Appending sudo initialization to  /c/Users/Michael Chan/.bashrc
Win-sudo successfully installed!

And sudo works!

DO NOT MERGE, from testing looks like another bug, will update

Some bugs in sudo itself, also regarding spaces
sudo netsh advfirewall firewall add rule name="lolchat" dir=out remoteip=<IP_ADDRESS> protocol=TCP action=block
realpath: Chan/bin/win-sudo/s/sudobackend: No such file or directory
UAC elevation was canceled

After taking out dev/null redirection from powershell line and adding a debugging line(won't output anything if there is no error)
{noformat}
; ($Error[0]).InvocationInfo.Line
{noformat}
Start-Process : A positional parameter cannot be found that accepts argument 'Files/Git/'.
At line:1 char:1
+ Start-Process "C:\Program Files\Git\usr\bin\bash" "/c/Users/Michael C ...                                                                             + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Start-Process], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand

Start-Process "C:\Program Files\Git\usr\bin\bash" "/c/Users/Michael Chan/bin/win-sudo/s/sudobackend", "/tmp/.sudo.5526" -Verb RunAs -WorkingDirectory C:/Program Files/Git/ -WindowStyle Hidden; ($Error[0]).InvocationInfo.Line

From there, it hangs(hard to tell with all the changes to fds and pipes), but from what I can tell, isn't related to the changes I made nor spaces in paths.  Feel free to make edits/merge.
I'll open an issue regarding the hanging after the powershell command, if you have suggestions let me know.

Thank you.


Make OptimizationResult read-only (all parameters of the constructor become mandatory)

Summary
This PR makes OptimizationResult read-only.
I found that most of existing codes do not modify the internal data of OptimizationResult.
So, I removed all public setter of OptimizationResult. It makes more robust because users cannot modify it with public methods.
It also helps mypy and pylint to detect  wrong modification of results.
Related #1107, #1122
Minor changes:

Renames OptimizationResults.results with OptimizationResults.raw_results
Converts the argument x of the constructor of OptimizationResults into ndarray to set as OptimizationResult._x.
Adds the main docstring of OptimizationResults to state the order of variables.
Fixes a bug of 'MinimumEigenOptimizer'. See below.
Fixes pylint

Discussion about OptimizationResult.raw_results continues at another issue #1122.
Details and comments
I slightly modified the converters to avoid direct access of the internals of OptimziationResult.
See https://github.com/Qiskit/qiskit-aqua/pull/1131#discussion_r459457660 for details.
I also found a bug of 'MinimumEigenOptimizer'.
MinimumEigenOptimizer.solve generates str, e.g. "110", while we expect List[float], e.g. [1, 1, 0].
https://github.com/Qiskit/qiskit-aqua/blob/146bff86d486dfd73a871e7f3c000015bc872581/qiskit/optimization/algorithms/minimum_eigen_optimizer.py#L164
Due to this bug,  the following unit test fails.
https://github.com/Qiskit/qiskit-aqua/blob/146bff86d486dfd73a871e7f3c000015bc872581/test/optimization/test_grover_optimizer.py#L43
I fixed it in this PR.
I also change the name OptimizationResults.results into OptimizationResults.raw_results.

I adjusted my pullreq merging master coping with the new attribute Optimization.variables.

I have changed the followings:

change the type of the internal of OptimizationResult._x from Union[List[float], ndarray] to ndarray
added an example and a note about the order of variables in the main docstring
fix pylint warnings

Travis seems to fail with a code not related to this PR.

$ make lint
pylint -rn --ignore=gauopen qiskit/aqua qiskit/chemistry qiskit/finance qiskit/ml qiskit/optimization test tools
************* Module aqua.components.neural_networks._pytorch_discriminator_net
qiskit/aqua/components/neural_networks/_pytorch_discriminator_net.py:32:0: W0223: Method '_forward_unimplemented' is abstract in class 'Module' but is not overridden (abstract-method)

Torch issue is fixed at #1146.

The failed test it not related to this PR...
test.aqua.operators.test_pauli_expectation.TestPauliExpectation.test_pauli_expect_single
----------------------------------------------------------------------------------------
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "/home/travis/build/Qiskit/qiskit-aqua/test/aqua/operators/test_pauli_expectation.py", line 63, in test_pauli_expect_single
    self.assertAlmostEqual(sampled.eval(), matmulmean, delta=.1)
      File "/opt/python/3.7.1/lib/python3.7/unittest/case.py", line 893, in assertAlmostEqual
    raise self.failureException(msg)
    AssertionError: (-0.10546874999999996+0j) != (-2.198489195831717e-32-1.0146536357569526e-17j) within 0.1 delta (0.10546874999999996 difference)

That test passed under 3.8 but failed under 3.7. There are still one or two 'troublesome' tests that sometimes fail. I just restarted the job for 3.7 so lets see.

I hope the new build passes. Because the failed test is related to expectation value, it would be more robust if we can fix the random seed of the tests.

I have not looked at that specific test - in general seeds are set, but sometimes we still see an issue even when seeds are set. It passed after restarting. But yes if any test that seems to randomly fail can be improved we need to do it.

I see. I will also look at the test.

@t-imamichi I looked at the test and I can see its not using seeds for when its running on the backend. I will change what its doing to do that.

@t-imamichi I think this is now done right? There is not any more work that needs to be done for this specific PR? I made one small change to the docs from supposed to be, to 'should be' - maybe it should even be stronger and say 'must be' for things to work right overall though I am not sure.

Thank you for your comments. I updated the docstring. I think it's done.

When I generate html, I notice that OptimizationResult is not included in html. Should I change qiskit.optimization.algorithms.__init__ as follows?
Results
==========

.. autosummary::
   :toctree: ../stubs/
   :nosignatures:

   OptimizationResult
   ADMMOptimizationResult
   MinimumEigenOptimizerResult

I checked the classes in qiskit.optimization.algorithms module.
Which should we include in the docstring of __init__.py?

admm_optimizer.py

ADMMOptimizer(OptimizationAlgorithm)
ADMMOptimizationResult(OptimizationResult)
ADMMParameter
ADMMState

cobyla_optimizer.py

CobylaOptimizer(MultiStartOptimizer)

cplex_optimizer.py

CplexOptimizer(OptimizationAlgorithm)

grover_optimizer.py

GroverOptimizer(OptimizationAlgorithm)
GroverOptimizationResults

minimum_eigen_optimizer.py

MinimumEigenOptimizer(OptimizationAlgorithm)
MinimumEigenOptimizerResult(OptimizationResult)

multistart_optimizer.py

MultiStartOptimizer(OptimizationAlgorithm)

optimization_algorithm.py

OptimizationAlgorithm
OptimizationResult
OptimizationResultStatus

recursive_minimum_eigen_optimizer.py

RecursiveMinimumEigenOptimizer(OptimizationAlgorithm)

slsqp_optimizer.py

SlsqpOptimizer(MultiStartOptimizer)

@t-imamichi I believe all those classes are exposed via the pubic API whether directly or as part of some result e.g. ADMMState is exposed via a getter of ADMMOptimizationResult. Hence all of them should be there I think. Don't forget to tweak the GroverOptimizationResults name to drop the 's' from the end so its consistent with the other result objects

I updated the docstring of __init__.py and added a reno text. Could you take a look at it? @woodsp-ibm

Can we get docstrings on the constructors - most importantly on any that we have in the that list now which are the public API. For instance OptimizationResult, ADMMOptimzationResult to name a couple. What also seems a little odd is that ADMMOptimizationResult constructor has the same set of params as the base class, plus some, but the set that it has from the base class are in a different order.
Also GroverOptimizationResult does not extend the OptimizationResult base class despite the GroverOptimizer extending the OptimzationProblem. Rather GroverOptimizer returns a the base class Optimization result or which the GroverOptimizationResult is something in the raw_results field. The naming is just a little confusing here thats all leading one to mistakening think that GroverOptimizationResult is like the others. Maybe since this is just part of the raw results we can rename it to GroverOptimizerRawResult or something that does not make it appear to be an OptimzationResult sub-class like the others

The constructor of ADMMOptimzationResult does not have a docstring. I will add it. I also rename GroverOptimizationResult with GroverOptimizationRawResult.

Added docstrings of ADMMOptimziationResult and MinimumEigenOptimizerResult.
Renamed GroverOptimizationResult -> GroverOptimizationRawResult
Moved OptimizationResult to 'Algorithms and results' in the main docstring.

I just notice that RecursiveMinimumEigenOptimizer.solve() returns OptimizationResult whose raw_results is a tuple while other optimizers return some the corresponding result class whose raw_results is a dictionary. It might not be important, and we can ignore it.

@a-matsuo I had made a related comment earlier (copied from below from above since its getting hard to navigate things now in this PR) - the consensus seemed to be that this aspect would be looked at in another PR #1120 related to raw results
 woodsp-ibm 7 days ago Member
Should there be some structure to raw_results, as in rather than Any would Dict[str, Any] be preferable?
I see this for instance the GroverOptimizer passes in a dictionary there. Not sure for other cases.
At least the string field names give some clue to the content which might not otherwise be there if
its Any directly.

adekusar-drl 7 days ago Member
I'd suggest to keep it as is now and return to raw_result in #1120, if you don't mind.

t-imamichi 7 days ago Author Member
I'd like to keep raw_results just Any in this PR and discuss details of raw_results in #1120 too. Is it OK?

@woodsp-ibm oops. Thank you. I had not read all the comments and I wrote it right away after I noticed.

I'm working on resolving the conflicts. Stay tuned.

Thank you for your cooperation!


How do I CMD/CLI to either inherite theme or copy

This is ridiculous. Using Grav CMS. Alright, I want to either inherent the quark theme, or at least copy it.
I use warpline hosting. I can FTP into powershell, but bin command does nothing. SSH nothing, says 'connection reset'.
Really not sure what I am doing wrong. Little help. I tried to copy quark, and just upload it differently named, but it will not show up in themes.
Obviously I don't even know how to use devtools. As a gui plugin or otherwise. Little help, thank you.
And to confirm, yes I used the grav cms tuts (okay found the manual part. Will try this)(. They dont tell me how I can CLI.

well. I did it manually, I think. Haha, I mean it worked. But still. CLI?