notification-hubs-test-app-java catches in updateInstallationLoop

When running the notification-hubs-test-app-java application, the "Installation Updated" toast is repeatedly flashing in a tight loop. Clearly, something is spamming it with requests for installation updates and the debouncer isn't doing its job somehow.

#97 will protect the service from this bug by filtering out duplicate requests. However the question, "why is the sample app spamming the Debouncer with duplicate installations?" remains open. Before this issue can be deemed fixed, we must fix that problem as well.


TF Distributed not using the full network bandwith

Hi,
I have a one ps, 4 worker setup (2 workers are in the same machine as ps), I found no matter what batch size I choose, the network usage is always around 1.3 Gbit/s, which leads to very slow performance with small batch size. However, I do have 40 Gbit network, and when I run iperf -s/c between these two machines, I can usually get over 30 Gbit/s speed.
I am not sure if the issue is in TF implementation or my network setup. but since iperf proved, I doubt it's my infrastructure problem.
Below is the configuration
ps machine: Ubuntu 14.04, TF v0.10.0
worker machine: CentOS 7, TF v0.10.0
Python 2.7
GPU is Tesla M40

Are you bottlenecked by CPU?
On Tue, Sep 20, 2016 at 1:34 PM, Jianbang Zhang<EMAIL_ADDRESS>wrote:

Hi,
I have a one ps, 4 worker setup (2 workers are in the same machine as ps),
I found no matter what batch size I choose, the network usage is always
around 1.3 Gbit/s, which leads to very slow performance with small batch
size. However, I do have 40 Gbit network, and when I run iperf -s/c between
these two machines, I can usually get over 30 Gbit/s speed.
I am not sure if the issue is in TF implementation or my network setup.
but since iperf proved, I doubt it's my infrastructure problem.
Below is the configuration
ps machine: Ubuntu 14.04, TF v0.10.0
worker machine: CentOS 7, TF v0.10.0
Python 2.7
GPU is Tesla M40
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/4498, or mute the thread
https://github.com/notifications/unsubscribe-auth/AABaHFzFkchi5igJlrx18-rAS-FSK3dNks5qsENngaJpZM4KCHMD
.

We are also seeing slowness an order of magnitude worse what's expected, and I tried to isolate the problem in a simple benchmark: https://gist.github.com/yaroslavvb/1124bb02a9fd4abce3d86caf2f950cb2
It launches 2 local tensorflow processes and tries to add 10MB vectors of in one process to variable stored in another one as fast as possible.
To run:
> python local_distributed_benchmark.py
....
Local rate:       6932.62 MB per second
Distributed rate: 161.63 MB per second

The rate of data tops out at 1.3 Gbps on my laptop, I wonder if it's a coincidence. Running on bigger machine doesn't give a speed increase, and CPU utilization stays under 20% . Same with latest nightly (GIT_VERSION='v0.10.0-1452-gdcba217-dirty')

Hi Yaroslav, I think your program is bottlenecked by this line:
sess.run(add_op)

This ensures that the entire result is copied back from the worker to the master to the client, deserialized from a protobuf into Python and discarded. A simple change to the following makes the numbers more promising:
sess.run(add_op.op)

Before (with sess.run(add_op)):

Adding data in 10 MB chunks
Local rate:       3693.02 MB per second
Distributed rate: 115.94 MB per second

* After (with `sess.run(add_op.op)`):

Adding data in 10 MB chunks
Local rate:       10565.81 MB per second
Distributed rate: 6379.86 MB per second

Indeed, I'm almost certain that the placer will put the constant in your program  on the same device as the `assign_add()` (because it has only one consumer), so this is purely measuring dispatch overhead. Changing `update` to be a `tf.Variable`, so that it is pinned to the different device gives a more realistic number that falls in between the two cases above:

* With tensors pinned to different devices (and `sess.run(add_op.op)`):

Adding data in 10 MB chunks
Local rate:       10259.25 MB per second
Distributed rate: 832.56 MB per second

This throughput obviously still isn't as good as it could be, but I haven't tried very hard to saturate the "network" (e.g. by issuing parallel transfers). @JianbangZ, there are many different reasons why your code might not be saturating your 40GbE network. Being CPU-bound is the most likely reason, if your network is doing anything non-trivial. It's also possible that there's contention on the parameter server, or in some part of the TensorFlow runtime. Without more details about the code you are running, it's impossible to pinpoint the root cause, so if you can share more details, that'd be great!

@mrry Thanks for the quick response! Haven't realized that "tf.device" was ignored here.  I'm now getting 900 MB/s which is pretty good. So it looks like deserializing gRPC into Python is extremely slow (<1 Gbps regardless of number of cores) and should be avoided. @JianbangZ are you by chance fetching large tensors in your Python client?

@mrry My code is a mimic of the inception distributed example, the code to control training op is the same as this https://github.com/tensorflow/models/blob/master/inception/inception/inception_distributed_train.py
Has the team seen data transfer slowness with this implementation?

@JianbangZ What's the duration of each step when running on a single process, and what's the size of the model that's being retrieved on each step? What batch size are you using? For Inception in the default configuration, I wouldn't expect it to saturate 40GbE, because the computation will be the bottleneck.
And just to confirm, are you running 0.10 or 0.10rc0 (because there were several performance fixes after the release candidate)?

@mrry Thank you for the quick response. I am not training on GoogleNet, I am just using the method it uses to do distributed on my own network.
My net only has 3 conv + 2 fc + 1 softmax readout layers to handle the input image size of 99*99. The total parameter count is about 9 M, which means the parameter size is 36 MB, so 40 GbE is way enough.
My training speed is around 600 images/sec on single GPU/single process. Usually I use batch_size=128. with single machine 2 GPUs, so I can get 1200 images/sec.
With distributed, no matter what batch size I try, it shows my network usage is around 1~1.3 Gbit/s, thus smaller batch size shows decreased performance.
I am using the 0.10.0 pip binary.
To make this easy, I uploaded my code to github, although it can't run b/c it's tied my with my own dataset and couple of environment variables, you can still see all my code.
The script to kick off the task is https://github.com/JianbangZ/eva/blob/master/eva/applications/facial_analysis/distributed_train.sh
and the code to control most of the training logic is https://github.com/JianbangZ/eva/blob/master/eva/platform/base_distributed_train.py
I am sorry this file has a lot of commented out multi-GPU code.
the code to define my network architect is here (I am using my own CustomNet although I implemented other nets in the same file) https://github.com/JianbangZ/eva/blob/master/eva/applications/facial_analysis/cnn_model.py#L625

The github code appears to have disappeared? Is this issue still current?

Automatically closing due to lack of recent activity, we will reopen if further information becomes available. Thanks!

#6116


Extended Event engine has been disabled by startup options

I'm using MacOS Sierra with the latest version of the mssql docker file.
I had built a database which grew to a size of ~69 GB. I started getting an error "Could not allocate a new page for database because of insufficient disk space in filegroup". I increased the size of the files.
After doing this, the container does not start and gives the following error:  "The extended event engine has been disabled by startup options. Features that depend on extended events may fail to start."
Is there a way to fix this?

Any luck on this? I'm having the same issues.


New cmake

@taketwo created a new cmake system based on OpenCV.
not completely finished yet - dependency propagation, Ceres dependency and recognition module still work in progress...
This is the first test for Jenkins

Yeah!


How to use transform() hook to transform pagination object.

I'm trying to use vuetable-pagination but I was never able to see that pagination generated on the view. I assume it's because my pagination object has different format than what this component can understand. In your docs you mention use transform(). Can show me an example please, I'm new to VueJS:
My current Pagination looks like this, due to the Dingo API package and the fractal transformer:
"meta":{"pagination":{"total":15,"count":10,"per_page":10,"current_page":1,"total_pages":2,"links":{"next":"http:\/\/api.whatever.dev\/admins?sort=&per_page=5&page=2"}}}

What is the appropriate way to convert it to:
  "total": 200,
  "per_page": 15,
  "current_page": 1,
  "last_page": 14,
  "next_page_url": "http://vuetable.ratiw.net/api/users?page=2",
  "prev_page_url": null,
  "from": 1,
  "to": 15,

@Mahmoudz Sorry, couldn't find time to document it or add this to the tutorial.
Basically, you define a transform function in the parent instance of Vuetable, it will call your transform function automatically. Inside the transform function, you just loop to create the new data (together with the pagination info) and return that transformed data. You can see the example here. Do not worry about the transformation time, it should be very quick as you're working with a very small chuck of data.
Since your pagination information lives inside meta.pagination object, it would be something like this. Please note that I haven't tested this.
transform: function(data) {
      let transformed = {}
      let pg = data.meta.pagination

      transformed.pagination = {
        total: pg.total,
        per_page: pg.per_page,
        current_page: pg.current_page,
        last_page: pg.total_page,
        next_page_url: pg.links.next ? pg.links.next : null,
        prev_page_url: pg.links.prev ? pg.links.prev : null,
        from: (pg.current_page -1) * pg.per_page +1,
        to: (pg.current_page -1) * pg.per_page + pg.count
      }

      transformed.data = []
      data = data.data
      for (let i = 0; i < data.length; i++) {
        transformed['data'].push({
          id: data[i].id,
          name: data[i].name,
          nickname: data[i].nickname,
          email: data[i].email,
          age: data[i].age,
          birthdate: data[i].birthdate,
          gender: data[i].gender,
          address: data[i].address.line1 + ' ' + data[i].address.line2 + ' ' + data[i].address.zipcode
        })
      }

      return transformed
    },

The data returned from the above transformation will in the data array and the pagination will be  in the pagination object, so you have to set the data-path and pagination-path props accordingly. Let me know if you get stuck on that.

so you have to set the data-path and pagination-path props accordingly.

example:
https://github.com/ratiw/vuetable-2/blob/master/index.html#L103
I assume data-path is left out because the path for it is already correct
(ie. data-path="data" )

@lmj0011 Yes, you're correct.

@ratiw I have my API returning data in different format. So i used transformation.But pagination is not working with transformed data.
However, if i try example where transformation is not required , pagination works fine.
I am not getting what i am missing
This is my transformed function (for testing):
transform: function (dataObject) {
        var transformed = {}
        transformed.links = {}
        transformed.links.pagination = {
            total: 200,
            per_page: 1,
            current_page: 1,
            last_page: 14,
            next_page_url: "https://vuetable.ratiw.net/api/users?page=2",
            prev_page_url: null,
            from: 1,
            to: 1,
        }
        console.log(transformed);
        transformed.data = []
      var  data = [

{
"id": 1,
"name": "Noelia O'Kon",
"nickname": "asperiores",
"email"<EMAIL_ADDRESS>"birthdate": "1978-06-28 00:00:00",
"gender": "F",
"salary": "13098.00",
"group_id": 2,
"created_at": "2017-01-01 07:21:10",
"updated_at": "2017-01-01 07:21:10",
"age": 39,
"group": {
"id": 2,
"name": "Exec",
"description": "Executives"
},
"address": {
"id": 1,
"user_id": 1,
"line1": "0888 Aniyah Locks\nLake Bridie, NJ 51086",
"line2": "Cayman Islands",
"zipcode": "92991-2805",
"mobile": "1-742-816-9238x848",
"fax": "(484)438-4697x8638"
}
},
        ];
        transformed.data =  data

        return transformed;
    },

And this is my vuetable :

            </div>

please have a look

hi ratiw i'm sending url's as props for different url and getting response from different tables at api mode.All functions working very good. But have to manipulate some cell data before rendering to table .
My structure is like
parent_1 => dataTable comp.=>vuetable comp
parent_2 =>dataTable comp. =>vuetable comp.
...
...
how can i use transforming data at my parent component

Basically, you define a transform function in the parent instance of Vuetable

@ratiw I cannot understand what do you mean when saying "parent instance of Vuetable". Could you please tell me where to put the transform function?

Please see this https://www.vuetable.com/guide/data-transformation.html

@ratiw Thank you for the quick response. I 've seen already this page https://www.vuetable.com/guide/data-transformation.html.
In my case, I use single file components. And I cannot understand why the transform function does not work. Here is my code:
// SomeComponent.vue
<script>
methods: {
    transform(data) {
      console.log('transform()')
      return data
    }
}
</script>

<template>
    <vuetable ref="vuetable" :api-url="'...'" fields="fields" transform="transform"></vuetable>
</template>


Support Custom Statistics For Python

Expected Behavior
Use case: we don't want to consider non-trading and/or no-holdings days in the Statistics.
Actual Behavior
Only C#.
Potential Solution
Create IStatisticsServicePythonWrapper and add PyObject overload to SetStatisticsService.
Reproducing the Problem
New feature.
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues
[x] I have provided detailed steps to reproduce the issue

Requested custom statistics in Python to better reflect the underlying characteristics of a trading strategy. For equity-based trading strategies, there is no/negligible opportunity cost during non-trading days (i.e. weekends), so their inclusion will underestimate volatility and average returns, consequently impacting metrics like the Sharpe ratio. In the presence of multiple return streams, one may be less concerned with the opportunity cost of their investment / cash positions of a single return stream - particularly those that are discreet in nature - and more concerned with capturing its behavior in absence of an opportunity cost. Custom statistics will allow users to make their own assumptions on the meaningfulness of the aforementioned concepts.

This use case will be covered by https://github.com/QuantConnect/Lean/pull/7690, where we are adding a new algorithm setting TradingDaysPerYear where the user can overwrite the default value used for calculating statistics, default to 252, except for crypto brokerages which will use 365


Allow provisioning key-pair to a GitHub organisation's secrets

Cosign generate-key-pair is able to provision secrets on a github project:
# generate a key-pair in GitHub
cosign generate-key-pair github://[OWNER]/[PROJECT_NAME]

It would be great if it was possible to generate such secrets at 'Owner' level (e.g. a GH organization):
cosign generate-key-pair github://[OWNER]

Relevant sources:
https://github.com/sigstore/cosign/blob/main/pkg/cosign/git/github/github.go

that sounds great, i can do that

Ok, that was fast one   :) thanks guys


This issue is about pages 26 and 27 of the .pdf file obtained after downloading it from "C/C++ projects and build systems in Visual Studio.pdf" which was generated using the MS corresponding site.

I have pages 26 and 27 of the alluded document in the title, copied as a .pdf document in my One Drive, containing my observations about the issue, which shows up only in a .pdf document. But I can't insert a link to this document here, neither can I copy the two pages to this write up.  How should I handle this problem?

@jabelloc
Let me guess: The issue is that you see the content for VS 2019 and later followed by the content for 2017 in the Visual Studio projects - C++ article, in the Create a Visual Studio C++ project section. In the online version, the content that's displayed depends on the setting of the Version control above the list of articles on the left. There is no such control for the PDF version, so you get everything, without any indication of which version the various content sections apply to. You just see the numbered steps start over.
I don't know how to fix this issue. It's a problem with the way the PDF files are generated, which is done separately from the content rendering in HTML. There's only one PDF file link, and it doesn't switch between versions. Adding @herohua for insight.

@jabelloc
The PDF files aren't generated after each edit to the content. It's a manual process. We usually only generate them once or twice per major release, so differences can accumulate.

Closing as part of backlog grooming. We have accrued more issues than our resources can manage.
Criteria for closing include severity of the issue, how broadly applicable it is, whether the issue enough information is provide to act on the issue, how old it is, etc.
If you think this issue should not have been closed, reopen it with a comment explaining why.


Reconcile candidate popup gets cutoff sometimes along top edge

Original author: thadguidry (December 14, 2011 18:22:14)
The Reconcile candidate popup sometimes gets cutoff along the top in both Firefox and Chrome browser when a Standard Reconcile service is setup and used, rather than Freebase Reconcile using the Suggest Widget popup.
We need to add something like margin-top: 10px or whatever works to keep the popup from never moving up past the browser screen view and no matter if they are displaying 10, 25, 50 rows, etc.
Popup should ideally be centered in view and a bit down from the top edge of browser window.
http://code.google.com/p/google-refine/source/detail?r=2414
Original issue: http://code.google.com/p/google-refine/issues/detail?id=505

@wetneb would you say this is resolved now ?

@thadguidry I can't think of a situation where I encountered something like this - I think we would need a screenshot to see exactly what the issue is. Closing as non reproducible in doubt.


Ignoring NewWithData error leads to runtime errors

With introduction of NewWithData returning error vs panic there's now a chance of runtime error if the error is ignored. Say you have an alphabet with two same characters (causes error to be thrown) and you choose to ignore the error and continue with h.Encode() it will lead to runtime error because (h *HashID) is nil. Readme example by default ignores the error.
While of course it is bad practice to ignore errors I wonder if all exported functions needs check if h == nil. Only reason why I am thinking about such an implementation is because the library is small (easy to implement such check) and because the library can play a crucial part of web application setup. Rather than dying without error message it would be nice to have message saying why something failed.

Rather than dying without error message it would be nice to have message saying why something failed.

So we're throwing an error because the user ignored the error in the first place? I'm not a fan of hand holding in libraries. I should probably fix the example though you're right that it doesn't handle errors.


Updating from ASP.NET Core 2.0 to 2.1 (net471) causes unstable Azure App Service

I wasn't quite sure where to post this issue, so please feel free to move it to the correct area if this is not appropriate.
I have a production API application deployed to Azure App Services that has been stable and running without issue on ASP.NET Core 2.0.x with .NET Framework 4.7.1.
After updating the app to ASP.NET Core 2.1.2 (still with .NET Framework 4.7.1) and deploying to Azure things have become unstable. The application is running and is usable, however, CPU is spiking up and down and application response times are all over the charts. Reverting the update and re-deploying 2.0 causes things to go back to normal and stable.
Here are some charts from a period of this deployment:
Application Response Times

CPU Percentage

The only change in these deployments was updating the project libraries from 2.0 to 2.1 following the migration from ASP.NET docs and then reverting the upgrade back to 2.0. It should also be noted that these graphs show ASP.NET Core 2.1 in a period that is normally in low demand (middle of the night) and charts are usually at their lowest levels.
App Insights does not seem to point to a single endpoint as causing these issues. Distribution of slow/spiking response times seems uniform across the application.
I took a 5 minute performance profile from Kudu during the unstable 2.1 deployment. I am not really an expert at reading these things, but from one of the performance spikes I was able to see some significant sampling coming from IISMiddleware and HostingApplication.

I am not sure if this .diagsession file contains sensitive information or not, so I have not attached it publicly here. If someone from Microsoft would like me to send it over, please let me know and I will be glad to.
After trying to debug this more, I decided to deploy using netcoreapp2.1 rather than net471 to see of that would change anything. After deploying ASP.NET Core 2.1 with netcoreapp2.1 things are now perfectly stable as was before with ASP.NET Core 2.0 and net471. So it would seem that the issue is only present when using net471.

@halter73 @sebastienros

Thanks for the report. This appears to be a duplicate of aspnet/KestrelHttpServer#2694 which we're currently looking into.


Macro-defs (and "method"-defs) inside method-defs

Is there any particular reason for not allowing macro-defs inside method-defs?
I find it a good practise for DSL'ish helpers in certain methods (like setting up gui's or whatever, where you might repeat some similar constructs a lot) - without tainting the bigger namespace.
A related issue is to also be able to define "methods", or rather "functions" - call it what you will (no closuring) - inside methods. That would of course basically serve the exact same purpose (especially after inlining in release mode), and could also be done with procs (albeit with sucky call syntax).
Still - I would find it very usable. It's a practise I'm used to that also avoids polluting bigger scopes than necessary.

@asterite You tagged this as a question but never replied.

Oh, I forgot.
You can use private def and maybe we can later add private macro inside modules. I don't think we need to make the language more complex.

ok


Always assumes the "default" issuer

If an organization does NOT have the "/default" issuer the Okta Maven Plugin will fail.
All Developer accounts have this issuer, but it could have been removed.

Maybe just check to see if it exists first


Canary Command-R refresh shows 404

When clicking around it works fine. But when I press Command-R I get a 404. Why?
Is there something I need to setup with routes for SSR?

OK It has to do with
http://localhost:3000/my-community/
vs
http://localhost:3000/my-community
The http://localhost:3000/my-community works fine. How do I use that to make both work?

I did the following and it works:
`    server.get('*', (req, res) => {
// https://github.com/zeit/next.js/issues/1189
const parsedUrl = parse(req.url, true)
const { pathname, query } = parsedUrl
  if (pathname.length > 1 && pathname.slice(-1) === '/') {
    app.render(req, res, pathname.slice(0, -1), query)
  } else {
    handle(req, res, parsedUrl)
  }
})

`

It's something that has to be handled in userland, we basically enforce without / at the end.


Partial html templates

I moved html pieces into separate files for cleaner code.

👍

👍

:+1:

cool - good to see how they are broken out.
What are paths where these are rendered from? Are they reused across
various controllers?
Lets layout controller scheme here to determine if these are necessary and
any reuse is required, others we may use just a regular view or even
template to use via angular with binding. I'm hesitant on partials if they
are just jquery templates that will now become angular template views, we
may want to consider diff architecture.
On Sun, Aug 28, 2016 at 3:59 PM, Kevin Leung<EMAIL_ADDRESS>wrote:

👍
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MachUpskillingFY17/JabbR-Core/pull/13#issuecomment-243004902,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABqPDYxsOJ7v6t5-lCpZySFZouA4WThZks5qkhLFgaJpZM4JvCdF
.

Checked it in! Thanks James

All of the jQuery templates used to be in between the <head></head> tags of index.cshtml, but it took up over half the document and was pretty hard to read through.
It looks like they're loaded in <script></script> tags at the beginning of the file, and then those scripts are called on demand from more JavaScript as the templates are needed (new user, new room, etc), so it is definitely feasible that we move that logic to the controllers I think.
We could always rearchtiect with Angular later but this was also a simple example of branching, pull requests, etc. that I wanted to do to go over some of the workflow

Understood (though region collapsing makes this minimal) and moving it is a
great idea.
This is a common pattern for templates such as jquery-tmpl, angular, ember,
etc. They look for those templates in script tags.
It makes sense to move them somewhere - lets figure out a good first
location for them before this is submitted (as it requires other code
changes like Html.Partial) as a static file with cache busting url may work
and preferable over a partial view scenario (any time we can avoid server
pipeline and use hot cache is preferable)
Lets chat this week. This is all live code for us now once merged, one
change affects everyone :)
On Sun, Aug 28, 2016 at 11:13 PM, James Earle<EMAIL_ADDRESS>wrote:

All of the jQuery templates used to be in between the  tags
of index.cshtml, but it took up over half the document and was pretty
hard to read through.
It looks like they're loaded in  tags at the beginning
of the file, and then those scripts are called on demand from more
JavaScript as the templates are needed (new user, new room, etc), so it is
definitely feasible that we move that logic to the controllers I think.
We could always rearchtiect with Angular later but this was also a simple
example of branching, pull requests, etc. that I wanted to do to go over
some of the workflow
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/MachUpskillingFY17/JabbR-Core/pull/13#issuecomment-243040200,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABqPDeDbha4dxSHmszJWbhsyuEBKTMV2ks5qkningaJpZM4JvCdF
.


AxisLines: Allow them to be excluded from the legend

If an AxisLine (horizontal or vertical) has its Text property set it would always be included in any legend - both the automatic or manually built legends. The Text property is also used to display the text along the appropriate axis for the line so it is a valid use case to want the Text set but not add the line to the legend.
This change adds an ExcludeFromLegend property to the AxisLine base class which defaults to false (no change to current default behavior). Setting this property to true keeps the line out of the legend regardless of the Text property being set or not.
A cookbook recipe was added demonstrating how the AxisLines and legend work together.  The recipe code and result is shown below.
myPlot.Add.Signal(Generate.Sin());
myPlot.Add.Signal(Generate.Cos());

var axLine1 = myPlot.Add.VerticalLine(24);
axLine1.Text = "Line 1";

var axLine2 = myPlot.Add.HorizontalLine(0.75);

var axLine3 = myPlot.Add.VerticalLine(37);
axLine3.Text = "Line 3";
axLine3.ExcludeFromLegend = true;

var axLine4 = myPlot.Add.HorizontalLine(0.25);
axLine4.Text = "Line 4";

var axLine5 = myPlot.Add.HorizontalLine(-.75);
axLine5.Text = "Line 5";
axLine5.ExcludeFromLegend = true;

myPlot.ShowLegend();

I've realized there is a corollary use case that is not fixed by this change: if the Text/Label is only wanted in the legend and not at the end of the drawn line on the axis.  That is currently impossible to do and still impossible with this change.
A better, general solution to all of this may be:

Separate the Label from the Text property.  They can both be set independently.
The Text property controls the visibility of what is displayed on the axis.
The Label property controls the visibility of any legend item.

This feels more consistent with (all?) other plottables that are added to the legend.  AFAIK it is the Label property that controls legend visibility for all the rest.  I think it would be clearer if the Text property is separate and only controls the along axis annotation.  If you want both, you just set Text and Label to the same thing.  I think it is very unlikely you would want both, but there is not harm in supporting all uses cases.
If you feel this proposed solution is better I'd be happy to close this PR and put a new one together that implements what I've described above.

Hi @MCF, this looks great, thanks!
Regarding alternative approaches, I'll add a flag in the Label class to allow the legend to exclude it even if text is present.


Date picker

Date picker layout and logic

Codecov Report

Merging #128 into dev will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##             dev    #128   +/-   ##
=====================================
  Coverage   89.5%   89.5%
=====================================
  Files         18      18
  Lines        343     343
=====================================
  Hits         307     307
  Misses        36      36

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 b7d7733...22e2df2. Read the comment docs.


Add readme's to every package/directory

I think this would help with getting new starters up to speed a lot quicker...

Or add project layout description in CONTRIBUTING.md.


fix: nat sku env

这个 PR 实现什么功能/修复什么问题:

[x] 功能、bugfix描述
[x] 冒烟测试
[ ] 单元测试编写

是否需要 backport 到之前的 release 分支:

release/3.7

/area region
/cc @zexi

Codecov Report

Merging #10449 (0446859) into master (42ee375) will increase coverage by 5.94%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master   #10449       +/-   ##
===========================================
+ Coverage    5.90%   11.84%    +5.94%
===========================================
  Files         866      234      -632
  Lines      135057    26266   -108791
===========================================
- Hits         7974     3111     -4863
+ Misses     126378    22844   -103534
+ Partials      705      311      -394

Flag
Coverage Δ

aFlag
11.84% <ø> (+5.94%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/cloudcommon/validators/validators_cert.go
37.06% <0.00%> (ø)

pkg/baremetal/utils/disktool/disktool.go

pkg/multicloud/aws/imageowners.go

pkg/cloudcommon/cronman/cronman.go

pkg/compute/models/schedpolicies.go

pkg/compute/models/groupjoints.go

pkg/multicloud/aws/host.go

pkg/httperrors/httperrors.go

pkg/util/httputils/fs.go

pkg/compute/models/natgateways.go

... and 622 more

Continue to review full report at Codecov.

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


[New Feature] Data mapping

We currently added a new data mapping feature on develop branch here: 6ab60380.
For most case, the data construction we need from database is multi-dimensionally complex. We have to process the multidimensional array from we fetched and them output to the client.
But now, you can describe the column as map on select() columns argument. Medoo will automatically process the data mapping for you.
$data = $database->select('post', [
	'[>]account' => 'user_id'
], [
	'post.content',
	'post.post_id',

	// The key name - profile - will not treat as column.
	'profile' => [
		'account.user_id',
		'account.email'
	]
]);

echo json_encode( $data );

The returned data will be:
[
	{
		content: "Hello world!",
		post_id: "1",
		profile: {
			user_id: "1",
			email<EMAIL_ADDRESS>		}
	},
	{
		content: "Good day today.",
		post_id: "2",
		profile: {
			user_id: "2",
			email<EMAIL_ADDRESS>		}
	}
]

What do you think about it? Leave a comment and idea is welcome.

Awesome. I tried it  and it's awesome.
But it makes conflict when the table that i make a join with has a column the same as my table's column.
You have to implement alias in data mapping :)

Guys, have you found any solution to the @AndreiTelteu issue? Im facing it right now and I have no idea how to deal with it :(


potential dependency cycle for users

The 3 requires here could cause issues for users: https://github.com/puppet-community/puppet-unattended_upgrades/commit/886245f2cb7614a8c749d34e6f08ee17b92c970f#diff-60ae41fd0a31977447947f59940ee9a4R54
We ran into an issue where new hosts coming up couldn't find packages that were in our repo because the apt-get update wasn't running before packages were installed.  A solution would be something like this in site.pp:
Class['apt::update'] -> Package <| |>

However, the requires here cause a dependency cycle if you do that.  apt::conf notifies Exec['apt_update'] (in apt::setting), so Package['unattended-upgrades'] gets chained before the apt update, but my spaceship operator up there wants to chain it after.
We ran into this problem with our own in-house unattended-upgrades module which had the exact same dependency (probably for the same reason :)).  The only way for a user of your module in our situation to work around this would be:
Class['apt::update'] -> Package <| title != "unattended-upgrades" |>

which would work but is very hacky.
If you don't chain here, of course, you run the risk that the apt-periodic daily cron job runs after you've put down these config files but before the unattended-upgrades package is installed.  In practice, that's going to require some incredibly exact timing, and the result is just a failed cron job and not a failed puppet run.  We decided the risk was worthwhile.
It's occurred to us that perhaps we're doing something wrong with the above chaining, but we can't figure out what the "right" way to do it would be.  Any ideas?

If you do not find packages in your newly added repository, consider adding repositories (which afair triggers an apt-get update) in another puppet stage, before the main stage.
For example:
stage{ 'initialization': before => Stage['main'] }

node 'example'
{
  class{ 'something::my_repo': stage => initialization}
  include other::stuff # install packages here
}

Thanks for your suggestion!
Unfortunately, it's not just a matter of new repos.  We publish new packages to our internal repo regularly.  Hosts that have been down or have not run puppet for a long time will also need to run apt-get update run to see the new packages before they can install them.
Our EC2 hosts are spun up using an AMI that was built using packer.  The AMI contains a filesystem on which a minimal run of puppet has already been performed, so all of our internal repos are already set up.  However, the host's apt cache is inevitably old because we only build new AMIs every few weeks.
Even not considering such edge cases, we'd run into this problem fairly often.  Any time we add a package to our repo and then try to puppet out manifests that add a package resource for that package, we'd need apt-get update to run before the package resource runs.
As far as I understand it, we can't use stages to cause the apt-get update to run before all package resources, because it would create a dependency cycle in just the same way that my chaining above would.

I could be overlooking an issue, but I think you might be able to use puppetlabs/apt to work around that:
class { 'apt':
  update => {
    frequency => 'always',
  },
}

I'd try putting this in a stage before main. (code example taken from the puppetlabs/puppetlabs-apt docs)

Just for reference, I've got exactly the same problem.
I've raised a defect against the puppetlabs/apt module as they should really expose the notify_update parameter of the apt::setting resource to the apt::conf module. - not every conf file install should result in triggering an apt-get update.
See: https://github.com/puppetlabs/puppetlabs-apt/pull/551
This module could use that facility (setting notify_update to false) to avoid triggering an apt-get update for the install of the conf files - in this case it is unnecessary.
Avoiding the notify of the update class removes the dependency cycle.

We have the exactly same problem. Anyone found another workaround in the meantime until @bdellegrazie changes are merged into the apt module?

@fadenb FYI my changes were merged into the apt module upstream (master). It will be in the next release (2.1.1) whenever that is.

@bdellegrazie does that mean we can close this issue?

@igalic: as soon as puppetlabs-apt has its next release that includes the fix and the manifest here references that version, then the issue here can be closed.

@mhaskel do you know when you'll be releasing apt?

Hey @nibalizer, sorry, looks like we're trying to get an apt release out in the next week or two.

@mhaskel no worries! :)

@nibalizer FYI, new apt release is out (2.2.0) that contains the necessary fix

\o/ thanks everyone!


Fixed PUT/POST section and added DELETE section

Current coverage is 100% (diff: 100%)

Merging #82 into master will not change coverage

@@           master    #82   diff @@
====================================
  Files          61     61
  Lines        1758   1758
  Methods         0      0
  Messages        0      0
  Branches        0      0
====================================
  Hits         1758   1758
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update 5e19be1...d1e374a

Looks good.  Thanks!


Refine values in gsf-data.scv in cloud-metadata plugin

Rationale
The data in gsf-data.csv was created using some assumptions about the specific locations used to represent grid regions.
We should put some additional time into checking the values in the dataset and getting coordinates and region IDs as accurate as possible.
Implementation details
Audit dataset row by row and find the most accurate data possible.
Priority
4/5
Size
1-2 days
What does "done" look like?
CSV file is audited and up to date
Does this require updates to documentation or other materials??
No
Deadline
n/a
Acceptance criteria
At least one person from team has been over the entire file, row by row

Note that this is likely being handled as part of a collaboration between IF and RTC, see https://github.com/Green-Software-Foundation/if-plugins/issues/83

Closing as this is being handled as part of the plugin migration


Invalid SPDX links for license information

The following links does not exist with the return code HTTP/1.1 404 Not Found
ERROR "https://spdx.org/licenses/Adobe-Display-PostScript.html"
ERROR "https://spdx.org/licenses/AML-glslang.html"
ERROR "https://spdx.org/licenses/BSD-Source-beginning-file.html"
ERROR "https://spdx.org/licenses/BSD-Systemics-W3Works.html"
ERROR "https://spdx.org/licenses/Caldera-no-preamble.html"
ERROR "https://spdx.org/licenses/CC-BY-3.0-AU.html"
ERROR "https://spdx.org/licenses/DEC-3-Clause.html"
ERROR "https://spdx.org/licenses/DRL-1.1.html"
ERROR "https://spdx.org/licenses/FSFAP-no-warranty-disclaimer.html"
ERROR "https://spdx.org/licenses/GCR-docs.html"
ERROR "https://spdx.org/licenses/hdparm.html"
ERROR "https://spdx.org/licenses/HPND-Kevlin-Henney.html"
ERROR "https://spdx.org/licenses/HPND-MIT-disclaimer.html"
ERROR "https://spdx.org/licenses/HPND-sell-MIT-disclaimer-xserver.html"
ERROR "https://spdx.org/licenses/ISC-Veillard.html"
ERROR "https://spdx.org/licenses/LPD-document.html"
ERROR "https://spdx.org/licenses/mailprio.html"
ERROR "https://spdx.org/licenses/Pixar.html"
ERROR "https://spdx.org/licenses/radvd.html"
ERROR "https://spdx.org/licenses/SAX-PD-2.0.html"
ERROR "https://spdx.org/licenses/TGPPL-1.0.html"
ERROR "https://spdx.org/licenses/Unicode-3.0.html"
ERROR "https://spdx.org/licenses/xkeyboard-config-Zinoviev.html"

I didn't do an exhaustive review, but it looks like at least some of these were added in version 3.23 of the SPDX license list.
The currently published version is 3.22.
This will be resolved once the new version is published.
I'll close this issue since it is not an issue for the publisher.
@kornefalk if there are any of the above which have a listVersionAdded < 3.23, please comment or add a new issue.
cc: @swinslow

@kornefalk As @goneall mentioned, all of these appear to be licenses that will be officially published in the v3.23 release later today.
In the interim, prior to each official release, licenses that were merged should become immediately visible at the preview license list site at https://spdx.github.io/license-list-data/


:seedling: patch installplan e2e

Description of the change:
This particular installplan e2e checks that updating to a package with fewer authorizations leads to an attenuated service account. Previously, the test would also check that the number secrets in the namespace wouldn't change. This PR removes that check because I don't think it is material to the test. What happens to the secrets (which I think are created by ocp?) isn't important. What is is that after the first csv is installed the SA is allowed to do something and after the upgrade it isn't.
Motivation for the change:
Reduce flakes and false negatives
Architectural changes:

Testing remarks:

Reviewer Checklist

[ ] Implementation matches the proposed design, or proposal is updated to match implementation
[ ] Sufficient unit test coverage
[ ] Sufficient end-to-end test coverage
[ ] Bug fixes are accompanied by regression test(s)
[ ] e2e tests and flake fixes are accompanied evidence of flake testing, e.g. executing the test 100(0) times
[ ] tech debt/todo is accompanied by issue link(s) in comments in the surrounding code
[ ] Tests are comprehensible, e.g. Ginkgo DSL is being used appropriately
[ ] Docs updated or added to /doc
[ ] Commit messages sensible and descriptive
[ ] Tests marked as [FLAKE] are truly flaky and have an issue
[ ] Code is properly formatted

/approve


The term 'Start-FileDownload' is not recognized

Hello,
error:
Start-FileDownload : The term 'Start-FileDownload' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.
At D:\OBJECTDETECT\ffmpeg-nuget-master\install.ps1:7 char:34

if (!(Test-Path "$dev32.zip")) { Start-FileDownload "http://ffmpeg.ze ...

                             ~~~~~~~~~~~~~~~~~~

CategoryInfo          : ObjectNotFound: (Start-FileDownload:String) [], CommandNotFoundException
FullyQualifiedErrorId : CommandNotFoundException

The install script is now using Net.WebClient to download the files, so it should be easier to run the script locally now. Thanks again for reporting!


How to remove extra linebreak when adding an image

Checklist

[ ] This is not covered in the repository examples.
[ ] I am using the package latest version.
[ ] This is a bug report or an enhancement proposal.

Description
I am using the media control to upload an image into the editor, but the image seems to be preceded by a line break. I'd like to remove the linebreak, but when doing that the image also gets removed. How can I add an image without the mandatory preceding linebreak?

This is the expected behavior when adding a block, to enable the cursor after it is added.

Second this suggestion. There are many instances where a text block starts with an image (a logo for e.g.) and it would be nice to have the option to remove the extra linebreak.


Celltype report: Add introduction, sessioninfo, and include child celltype_qc

Stacked on #536
Closes #514 & #515
This PR adds text and other items to satisfy these issues:

#514: Update the title, add introduction text at the top, and add sessionInfo() at the bottom

Do we like the ~warning~ info alert on top? Asking both about having this alert in general (I like it!) and its placement (I can't tell if I like it! Move it down? Move in into celltypes_qc.rmd and reduce some of the if/else text there too? Keep it where it is?)

#515: Include celltypes_qc.rmd as a child report at the top

I made a few other changes along the way:

Update header levels and header text to get them to appear more nicely (with a but less repetition too!) in the TOC. Feedback on header text changes is appreciated!
I added some guiding comments throughout the document to help a little with navigation/organization
I updated one vector definition to use an existing vector (see methods_string now uses available_celltypes) for a recreational revision 🍬 to me after so many days of staring at Rmd

Report: celltypes_supplemental_report.html.zip

Now with a blue info (not yellow warning) box -

This next stage includes some rearrangements and eval tricks.
It's probably easiest to just look at the reports to get a sense of the reorg, but here are some notes on changes too:

I created celltypes_introduction.rmd which contains a chunk of introductory text that can be reused in the other reports.

This chunk could go into our existing utils/celltype_functions.rmd file (which would have to get renamed) if we want to cut down on file dependencies

I deleted the current blue text and instead made the full sentences describing which cell types are available blue. This involved reducing three chunks into one, which I think was the right call (but maybe can it up a little still?).

Currently, this not at the very top of the supplementary report, but it's close and clearly visible from the top. Since it is so blue and pops so well, that seems ok to me - what do you think?

For the one sentence we want to only appear in the main report, I defined a variable is_supplemental to eval only in the main report.

This could be changed to is_main for not having negative logic. Maybe I should have done that to begin with...

Noting once we're at a final.final stage in this PR, I plan to add a README to this directory to document all the files we are accumulating and how they relate (this can also be a subsequent PR, lmk!)

Reports
Main

main_qc_report.html.zip

Supp:

celltypes_supplemental_report.html.zip

I made some changes here so that we actually won't need a child report at all. The report still looks as it did in https://github.com/AlexsLemonade/scpca-nf/pull/539#issuecomment-1795714325, but everything is contained in just the rmd files we already had. This will also help reduce any nextflow complaints from my last implementation, and it always helps to have fewer files in the mix!
I think this hits all review points conceptually, with this exception -
https://github.com/AlexsLemonade/scpca-nf/pull/539#discussion_r1383804888
I still have the main introduction appearing after the supplemental introduction, so I kept this sentence. All in all, I really do like the order that it is now in. It feels somehow weird to me for both reports to have the same introductions in order when they present/emphasize somewhat different things. Having the supplemental intro come first, imo, helps emphasize the difference between the supplemental report and the celltype section of the main report. If there is really strong disagreement here though, I can reshuffle things again!

So in main_qc_report.rmd, we would have:

celltype_introduction.rmd
link about supplemental cell type file
celltype_qc.rmd

Then in the supplemental report, we would have:

celltype_introduction.rmd
Intro you added here/ why the supplemental report

On thinking about this overnight, I think a separate import is maybe too heavy? Having some duplicated code is fine, and the text might be enough different for the intros that trying to import it may be more trouble than it is worth...

Next round - I decided to actually use our existing utils file to hold a resuable chunk. This chunk could be a function, but since it does "two things" (defines available_celltypes and prints the info box), I decided to leave it just a chunk to evaluate at the proper time. So, we do not have a separate file - since we already had a separate file!
Here's how things look. Some of the wording could still use some love, and I think I've fully come around to removing those "extra" bullets (below, "This report therefore addresses the following questions..."). I wanted to check in first about the layout and approach before heading to the text -
supplemental

main

I'm good with this overall organization. I still am not sure we need the blue box in both the reports though. Only because in the supplemental report you then later have bullet points that describe the cell type annotation methods, but I'm happy to be over ruled on that.

I still am not sure we need the blue box in both the reports though. Only because in the supplemental report you then later have bullet points that describe the cell type annotation methods, but I'm happy to be over ruled on that.

Yeah, I left it in for now for folks to see how it looks, but I don't really disagree with you. @jashapiro , what say you?

Yeah, I left it in for now for folks to see how it looks, but I don't really disagree with you. @jashapiro , what say you?

I don't know either way... I honestly can't decide which report needs the blue box more. I think I like it right at the top of the cell type report, even if it is redundant: it is easier to scan there right at the top.
It might be that having it just the bulleted list (no box) is sufficient for the main report. If people are looking at that part of the main report, there is little enough for them to see it there, and the bullets may stand out enough on their own.

I have recruited @dvenprasad to weigh in on the placement of the 🟦 !
After some discussion, including learning context that we sometimes use yellow boxes for other kind of meta information, she has spoken:

Okay, so if we are using that box pattern to present meta information (regardless of the color) I think we should be consistent and use the box only for meta information.
If the concern is that the list of cell types is not “loud” enough, we can add a subsection title instead
I have a similar comment for the supplemental report too. Remove the blue box and make it a section instead

Given indecision over on the science team, I say we do what design team tells us :)

Almost there!!!
main

supp

@jashapiro if you want to have another look at intro text, I've incorporated reviews and made a few small changes that might address some of the uncertainty in reviews.
If you don't have any immediate "aha"s about wording, I suggest - we get this in now, take the rest of the week off from looking at this text, and then next week I will come back with fresher eyes to clean up text throughout as part of #542. Eh?


[BULK] - DocuTune remediation - Sensitive terms with GUIDs (part 56)

Applying sensitive terms with GUID changes as part of Content SFI and outlined in Overview - Writing content securely - Platform Manual. Changes are part of the Microsoft-wide SFI effort. Point of contact: @CelesteDG
DocuTune v<IP_ADDRESS>
CorrelationId: ac15aa43-4e2b-437f-ab1c-fdd7e79cd4db
#docutune

#docutune-review

LGTM


Merge some docstrings from module-components and the api

This picks off most of the very easy docstrings, include the wrapper functions that just forward to a multivector method.
A couple of methods in printer.py got proper sphinx.ext.napoleon docstrings, and a few others got docstrings for the first time.
xref gh-300

Fixed a broken :cite:.


libassert_msvc_pfunc is not defined when using Clang on Windows

For compatibility reasons, the Windows version of Clang defines _MSC_VER, meaning libassert detects the compiler as MSVC
https://github.com/jeremy-rifkin/libassert/blob/b90077a6a9e2ea178c50f5df5729873dfc3fd5fb/include/libassert/platform.hpp#L52-L58
This causes some issues. For example, ASSERT_VAL eventually calls the LIBASSERT_INVOKE_VAL_PRETTY_FUNCTION_ARG macro which in this scenario relies on a built-in that Clang doesn't support:
https://github.com/jeremy-rifkin/libassert/blob/b90077a6a9e2ea178c50f5df5729873dfc3fd5fb/include/libassert/assert.hpp#L687-L689
I think this can be fixed by just replacing the #ifdef _MSC_VER with #if defined(_MSC_VER) && !defined(__clang__). It fixes the ASSERT_VAL issue, but I'm not sure what else might change (though it should be fine since presumably it'll just switch to the clang version of libassert everywhere else as well).

Thanks for opening this, should be a quick fix!

Fixed in e55076cd03255d389c866212ecd3d937bb41946e

2.1.2 is released with a fix for this


Publish 8.9-20240612013748+0000

Publish 8.9-20240612013748+0000

@bot-gradle test and merge

The merge queue build has failed. Click here to see all failures.


Posix queue depth differs: mqueues vs sockets

Running the OSAL oscore-test unit test with mqueue vs. sockets (appropriate #define changed in osconfig.h) shows a difference with sockets that wasn't there with mqueues.
{{{
Test #4 Queue-full [FAILED]
FAILED [ ] OS_QueuePut - #4 Queue-full
}}}
Apparently the socket implementation doesn't implement queue depth checks with the same semantics.  The socket OS_QueueCreate() queue_depth arg is ignored:
{{{
int32 OS_QueueCreate (uint32 *queue_id, const char *queue_name,
uint32 queue_depth,
uint32 data_size, uint32 flags)
}}}
The socket OS_QueuePut() looks at the bytes sent, returned from sendto(), and compares them to the message data size, but this results different "depth" semantics based on the socket behavior.
The unit test fails because it is expecting the API to honor the queue depth limit and error out on OS_QueuePut(), but it doesn't.

Imported from trac issue 168.  Created by abrown4 on 2016-05-25T17:58:55, last modified: 2016-08-09T14:01:25

Trac comment by jphickey on 2016-08-02 11:55:59:
This is a limitation of sockets, as there is no controllable "depth" that correlates to mqueue depth.  The closest thing is SO_RCVBUF and SO_SNDBUF socket options, but this is IIRC a byte size and it is also not likely to invoke the same semantics as mqueue depth does.
The core of the problem is that UDP sockets are "best-effort", and it is still fundamentally a network protocol even when sending to the localhost.  As such, a "send" operation is considered successful if it is queued for //transmit//, regardless of whether there is space on the //receiver// side (the sender doesn't know).
CFS, on the other hand, treats queues as "Guaranteed delivery" i.e. when a message is queued it should be guaranteed to arrive at the destination in the same order that they were sent.  Using UDP sockets to implement queues actually guarantees neither.  This might be OK in a lab, but IMO that is not acceptable for mission-critical data.
This is one reason I never ported the socket queue implementation into the "-ng" osal.  If POSIX mqueues are not available, then I'd rather see a local implementation based purely on a shared memory with some semaphores to implement blocking read/write operations.  Such an implementation would be a benefit to all OS layers as well, not just posix.

Trac comment by abrown4 on 2016-08-09 14:01:25:
As discussed in the 8/9/2016 cFS CCB, I agree with Joe's comments. UDP sockets are hardly a good implementation.
Closing this ticket.


Build errors[E0061, E0277, E0308]

Hi! Thank you for your interesting crate!
cargo build
   ...
   Compiling reqwest v0.12.4
   Compiling ergoreq v0.1.1
error[E0277]: the trait bound `http::error::Error: From<<reqwest::header::HeaderName as TryFrom<K>>::Error>` is not satisfied
   --> src/wrappers/request_builder_wrapper.rs:154:40
    |
154 |         self.inner = self.inner.header(key, value);
    |                                 ------ ^^^ the trait `From<<reqwest::header::HeaderName as TryFrom<K>>::Error>` is not implemented for `http::error::Error`, which is required by `<reqwest::header::HeaderName as TryFrom<K>>::Error: Into<http::error::Error>`
    |                                 |
    |                                 required by a bound introduced by this call
    |
    = help: the following other types implement trait `From<T>`:
              <http::error::Error as From<Infallible>>
              <http::error::Error as From<http::method::InvalidMethod>>
              <http::error::Error as From<http::status::InvalidStatusCode>>
              <http::error::Error as From<http::uri::InvalidUri>>
              <http::error::Error as From<http::uri::InvalidUriParts>>
              <http::error::Error as From<reqwest::header::InvalidHeaderName>>
              <http::error::Error as From<reqwest::header::InvalidHeaderValue>>
              <http::error::Error as From<reqwest::header::MaxSizeReached>>
    = note: required for `<reqwest::header::HeaderName as TryFrom<K>>::Error` to implement `Into<http::error::Error>`
note: required by a bound in `RequestBuilder::header`
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.4/src/async_impl/request.rs:192:44
    |
189 |     pub fn header<K, V>(self, key: K, value: V) -> RequestBuilder
    |            ------ required by a bound in this associated function
...
192 |         <HeaderName as TryFrom<K>>::Error: Into<http::Error>,
    |                                            ^^^^^^^^^^^^^^^^^ required by this bound in `RequestBuilder::header`

error[E0277]: the trait bound `http::error::Error: From<<reqwest::header::HeaderValue as TryFrom<V>>::Error>` is not satisfied
   --> src/wrappers/request_builder_wrapper.rs:154:45
    |
154 |         self.inner = self.inner.header(key, value);
    |                                 ------      ^^^^^ the trait `From<<reqwest::header::HeaderValue as TryFrom<V>>::Error>` is not implemented for `http::error::Error`, which is required by `<reqwest::header::HeaderValue as TryFrom<V>>::Error: Into<http::error::Error>`
    |                                 |
    |                                 required by a bound introduced by this call
    |
    = help: the following other types implement trait `From<T>`:
              <http::error::Error as From<Infallible>>
              <http::error::Error as From<http::method::InvalidMethod>>
              <http::error::Error as From<http::status::InvalidStatusCode>>
              <http::error::Error as From<http::uri::InvalidUri>>
              <http::error::Error as From<http::uri::InvalidUriParts>>
              <http::error::Error as From<reqwest::header::InvalidHeaderName>>
              <http::error::Error as From<reqwest::header::InvalidHeaderValue>>
              <http::error::Error as From<reqwest::header::MaxSizeReached>>
    = note: required for `<reqwest::header::HeaderValue as TryFrom<V>>::Error` to implement `Into<http::error::Error>`
note: required by a bound in `RequestBuilder::header`
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.4/src/async_impl/request.rs:194:45
    |
189 |     pub fn header<K, V>(self, key: K, value: V) -> RequestBuilder
    |            ------ required by a bound in this associated function
...
194 |         <HeaderValue as TryFrom<V>>::Error: Into<http::Error>,
    |                                             ^^^^^^^^^^^^^^^^^ required by this bound in `RequestBuilder::header`

error[E0308]: mismatched types
   --> src/wrappers/request_builder_wrapper.rs:201:41
    |
201 |         self.inner = self.inner.headers(headers);
    |                                 ------- ^^^^^^^ expected `reqwest::header::HeaderMap`, found `http::HeaderMap`
    |                                 |
    |                                 arguments to this method are incorrect
    |
    = note: `http::HeaderMap` and `reqwest::header::HeaderMap` have similar names, but are actually distinct types
note: `http::HeaderMap` is defined in crate `http`
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/header/map.rs:45:1
    |
45  | pub struct HeaderMap<T = HeaderValue> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `reqwest::header::HeaderMap` is defined in crate `http`
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/map.rs:45:1
    |
45  | pub struct HeaderMap<T = HeaderValue> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `http` are being used?
note: method defined here
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.4/src/async_impl/request.rs:234:12
    |
234 |     pub fn headers(mut self, headers: crate::header::HeaderMap) -> RequestBuilder {
    |            ^^^^^^^

error[E0308]: mismatched types
   --> src/wrappers/request_builder_wrapper.rs:244:41
    |
244 |         self.inner = self.inner.version(version);
    |                                 ------- ^^^^^^^ expected `reqwest::Version`, found `http::Version`
    |                                 |
    |                                 arguments to this method are incorrect
    |
    = note: `http::Version` and `reqwest::Version` have similar names, but are actually distinct types
note: `http::Version` is defined in crate `http`
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/version.rs:26:1
    |
26  | pub struct Version(Http);
    | ^^^^^^^^^^^^^^^^^^
note: `reqwest::Version` is defined in crate `http`
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/version.rs:26:1
    |
26  | pub struct Version(Http);
    | ^^^^^^^^^^^^^^^^^^
    = note: perhaps two different versions of crate `http` are being used?
note: method defined here
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.12.4/src/async_impl/request.rs:372:12
    |
372 |     pub fn version(mut self, version: Version) -> RequestBuilder {
    |            ^^^^^^^

error[E0277]: the trait bound `http::HeaderName: reqwest::header::IntoHeaderName` is not satisfied
    --> src/wrappers/request_builder_wrapper.rs:285:32
     |
285  |                 headers.insert(http::header::COOKIE, cookie_header);
     |                         ------ ^^^^^^^^^^^^^^^^^^^^ the trait `reqwest::header::IntoHeaderName` is not implemented for `http::HeaderName`
     |                         |
     |                         required by a bound introduced by this call
     |
     = help: the following other types implement trait `reqwest::header::IntoHeaderName`:
               &'a reqwest::header::HeaderName
               &'static str
               reqwest::header::HeaderName
note: required by a bound in `reqwest::header::HeaderMap::<T>::insert`
    --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/map.rs:1228:12
     |
1226 |     pub fn insert<K>(&mut self, key: K, val: T) -> Option<T>
     |            ------ required by a bound in this associated function
1227 |     where
1228 |         K: IntoHeaderName,
     |            ^^^^^^^^^^^^^^ required by this bound in `HeaderMap::<T>::insert`

error[E0277]: the trait bound `http::HeaderName: reqwest::header::IntoHeaderName` is not satisfied
    --> src/wrappers/request_builder_wrapper.rs:303:36
     |
303  |                     headers.insert(http::header::COOKIE, cookie_header);
     |                             ------ ^^^^^^^^^^^^^^^^^^^^ the trait `reqwest::header::IntoHeaderName` is not implemented for `http::HeaderName`
     |                             |
     |                             required by a bound introduced by this call
     |
     = help: the following other types implement trait `reqwest::header::IntoHeaderName`:
               &'a reqwest::header::HeaderName
               &'static str
               reqwest::header::HeaderName
note: required by a bound in `reqwest::header::HeaderMap::<T>::insert`
    --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/map.rs:1228:12
     |
1226 |     pub fn insert<K>(&mut self, key: K, val: T) -> Option<T>
     |            ------ required by a bound in this associated function
1227 |     where
1228 |         K: IntoHeaderName,
     |            ^^^^^^^^^^^^^^ required by this bound in `HeaderMap::<T>::insert`

error[E0277]: the trait bound `http::HeaderName: reqwest::header::AsHeaderName` is not satisfied
   --> src/middleware/middleware.rs:49:26
    |
49  |                 .get_all(http::header::SET_COOKIE)
    |                  ------- ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `reqwest::header::AsHeaderName` is not implemented for `http::HeaderName`
    |                  |
    |                  required by a bound introduced by this call
    |
    = help: the following other types implement trait `reqwest::header::AsHeaderName`:
              &'a reqwest::header::HeaderName
              &'a std::string::String
              &'a str
              reqwest::header::HeaderName
              std::string::String
note: required by a bound in `reqwest::header::HeaderMap::<T>::get_all`
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/map.rs:828:12
    |
826 |     pub fn get_all<K>(&self, key: K) -> GetAll<'_, T>
    |            ------- required by a bound in this associated function
827 |     where
828 |         K: AsHeaderName,
    |            ^^^^^^^^^^^^ required by this bound in `HeaderMap::<T>::get_all`

error[E0277]: the trait bound `http::HeaderName: reqwest::header::IntoHeaderName` is not satisfied
    --> src/middleware/middleware.rs:64:29
     |
64   |                     .insert(http::header::COOKIE, header_value);
     |                      ------ ^^^^^^^^^^^^^^^^^^^^ the trait `reqwest::header::IntoHeaderName` is not implemented for `http::HeaderName`
     |                      |
     |                      required by a bound introduced by this call
     |
     = help: the following other types implement trait `reqwest::header::IntoHeaderName`:
               &'a reqwest::header::HeaderName
               &'static str
               reqwest::header::HeaderName
note: required by a bound in `reqwest::header::HeaderMap::<T>::insert`
    --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/map.rs:1228:12
     |
1226 |     pub fn insert<K>(&mut self, key: K, val: T) -> Option<T>
     |            ------ required by a bound in this associated function
1227 |     where
1228 |         K: IntoHeaderName,
     |            ^^^^^^^^^^^^^^ required by this bound in `HeaderMap::<T>::insert`

error[E0308]: mismatched types
    --> src/middleware/middleware.rs:64:51
     |
64   |                     .insert(http::header::COOKIE, header_value);
     |                      ------                       ^^^^^^^^^^^^ expected `HeaderValue`, found `http::HeaderValue`
     |                      |
     |                      arguments to this method are incorrect
     |
     = note: `http::HeaderValue` and `HeaderValue` have similar names, but are actually distinct types
note: `http::HeaderValue` is defined in crate `http`
    --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/header/value.rs:21:1
     |
21   | pub struct HeaderValue {
     | ^^^^^^^^^^^^^^^^^^^^^^
note: `HeaderValue` is defined in crate `http`
    --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/value.rs:22:1
     |
22   | pub struct HeaderValue {
     | ^^^^^^^^^^^^^^^^^^^^^^
     = note: perhaps two different versions of crate `http` are being used?
help: the return type of this call is `http::HeaderValue` due to the type of the argument passed
    --> src/middleware/middleware.rs:62:17
     |
62   | /                 request
63   | |                     .headers_mut()
64   | |                     .insert(http::header::COOKIE, header_value);
     | |___________________________________________________------------^
     |                                                     |
     |                                                     this argument influences the return type of `insert`
note: method defined here
    --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/map.rs:1226:12
     |
1226 |     pub fn insert<K>(&mut self, key: K, val: T) -> Option<T>
     |            ^^^^^^

error[E0277]: the trait bound `http::HeaderName: reqwest::header::AsHeaderName` is not satisfied
   --> src/middleware/auto_redirect_middleware.rs:49:22
    |
49  |                 .get(http::header::LOCATION)
    |                  --- ^^^^^^^^^^^^^^^^^^^^^^ the trait `reqwest::header::AsHeaderName` is not implemented for `http::HeaderName`
    |                  |
    |                  required by a bound introduced by this call
    |
    = help: the following other types implement trait `reqwest::header::AsHeaderName`:
              &'a reqwest::header::HeaderName
              &'a std::string::String
              &'a str
              reqwest::header::HeaderName
              std::string::String
note: required by a bound in `reqwest::header::HeaderMap::<T>::get`
   --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/map.rs:753:12
    |
751 |     pub fn get<K>(&self, key: K) -> Option<&T>
    |            --- required by a bound in this associated function
752 |     where
753 |         K: AsHeaderName,
    |            ^^^^^^^^^^^^ required by this bound in `HeaderMap::<T>::get`

error[E0308]: `match` arms have incompatible types
  --> src/middleware/auto_redirect_middleware.rs:73:22
   |
71 |               let new_method = match response.status().as_u16() {
   |  ______________________________-
72 | |                 307 | 308 => origin_method.to_owned(),
   | |                              ------------------------ this is found to be of type `reqwest::Method`
73 | |                 _ => Method::GET,
   | |                      ^^^^^^^^^^^ expected `reqwest::Method`, found `http::Method`
74 | |             };
   | |_____________- `match` arms have incompatible types
   |
   = note: `http::Method` and `reqwest::Method` have similar names, but are actually distinct types
note: `http::Method` is defined in crate `http`
  --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/method.rs:46:1
   |
46 | pub struct Method(Inner);
   | ^^^^^^^^^^^^^^^^^
note: `reqwest::Method` is defined in crate `http`
  --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/method.rs:45:1
   |
45 | pub struct Method(Inner);
   | ^^^^^^^^^^^^^^^^^
   = note: perhaps two different versions of crate `http` are being used?

error[E0308]: mismatched types
  --> src/middleware/auto_redirect_middleware.rs:85:42
   |
85 |             *new_request.headers_mut() = origin_headers.to_owned();
   |             --------------------------   ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `http::HeaderMap`, found `reqwest::header::HeaderMap`
   |             |
   |             expected due to the type of this binding
   |
   = note: `reqwest::header::HeaderMap` and `http::HeaderMap` have similar names, but are actually distinct types
note: `reqwest::header::HeaderMap` is defined in crate `http`
  --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-1.1.0/src/header/map.rs:45:1
   |
45 | pub struct HeaderMap<T = HeaderValue> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: `http::HeaderMap` is defined in crate `http`
  --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/http-0.2.12/src/header/map.rs:45:1
   |
45 | pub struct HeaderMap<T = HeaderValue> {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: perhaps two different versions of crate `http` are being used?

error[E0277]: the trait bound `reqwest::Request: TryFrom<http::Request<Vec<u8>>>` is not satisfied
  --> src/middleware/auto_redirect_middleware.rs:87:57
   |
87 |             response = inner_client.execute(new_request.try_into()?).await?;
   |                                                         ^^^^^^^^ the trait `From<http::Request<Vec<u8>>>` is not implemented for `reqwest::Request`, which is required by `http::Request<Vec<u8>>: TryInto<_>`
   |
   = note: required for `http::Request<Vec<u8>>` to implement `Into<reqwest::Request>`
   = note: required for `reqwest::Request` to implement `TryFrom<http::Request<Vec<u8>>>`
   = note: required for `http::Request<Vec<u8>>` to implement `TryInto<reqwest::Request>`

error[E0277]: `?` couldn't convert the error to `error::Error`
  --> src/middleware/auto_redirect_middleware.rs:87:67
   |
87 |             response = inner_client.execute(new_request.try_into()?).await?;
   |                                                                   ^ the trait `From<Infallible>` is not implemented for `error::Error`, which is required by `std::result::Result<reqwest::Response, error::Error>: FromResidual<std::result::Result<Infallible, _>>`
   |
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
   = help: the following other types implement trait `From<T>`:
             <error::Error as From<OutOfRangeError>>
             <error::Error as From<anyhow::Error>>
             <error::Error as From<http::Error>>
             <error::Error as From<reqwest::Error>>
   = note: required for `std::result::Result<reqwest::Response, error::Error>` to implement `FromResidual<std::result::Result<Infallible, Infallible>>`

error[E0061]: this method takes 2 arguments but 1 argument was supplied
  --> src/middleware/auto_retry_middleware.rs:44:30
   |
44 |                 match self.0.should_retry(current_retry_times) {
   |                              ^^^^^^^^^^^^ ------------------- an argument of type `SystemTime` is missing
   |
note: method defined here
  --> /home/dan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/retry-policies-0.4.0/src/retry_policy.rs:6:8
   |
6  |     fn should_retry(&self, request_start_time: SystemTime, n_past_retries: u32) -> RetryDecision;
   |        ^^^^^^^^^^^^
help: provide the argument
   |
44 |                 match self.0.should_retry(/* SystemTime */, current_retry_times) {
   |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

error[E0277]: cannot subtract `chrono::DateTime<Utc>` from `SystemTime`
  --> src/middleware/auto_retry_middleware.rs:46:61
   |
46 |                         let should_wait_for = execute_after - Utc::now();
   |                                                             ^ no implementation for `SystemTime - chrono::DateTime<Utc>`
   |
   = help: the trait `Sub<chrono::DateTime<Utc>>` is not implemented for `SystemTime`
   = help: the following other types implement trait `Sub<Rhs>`:
             <SystemTime as Sub<OffsetDateTime>>
             <SystemTime as Sub<cookie::time::Duration>>
             <SystemTime as Sub<std::time::Duration>>

Some errors have detailed explanations: E0061, E0277, E0308.
For more information about an error, try `rustc --explain E0061`.
error: could not compile `ergoreq` (lib) due to 16 previous errors

cargo 1.79.0 (ffa9cf99a 2024-06-03)

Thanks for reporting this issue! It seems that reqwest 0.12 has changed the http crate version, caused this happens. A new version will be published to solve this problem very soon.

This issue has been resolved in the latest version 0.2.0 related to #4 . You can upgrade to this version to resolve this issue. If you find that the latest version still has other problems, you are welcome to create an issue for discussion!


Beta page - better iframe sizing

Some widths and heights of the embedded instagram videos are a bit awkward to view, either on desktop, mobile, or both. Its possible that getting the post metadata could allow for better sizing, though my initial look into this wasn't very fruitful.

The Left / Right Icons are a bit off compared to the result page, at least on my Screens (mobie + desktop). Maybe this can be adresse too in with this issue.

Good catch, I fixed those though its probably not worth a deploy, will just catch it in the next deploy.
The iframe sizing is a little trickier. I'm not even sure its possible to make it consistent since instagram has a whole bunch of different sizes that it gives you. The apps don't even bother with embedding and just send you to instagram, but I like the idea of embedding, I feel like it makes it a bit smoother to navigate.

I think it's ok as it is, it differs depending on the video sizes and if it was posted as video only or video in a slideshow.
Overall its still easy to use and better to scroll throw the beta videos than using the app.


Update repository after transfer

See https://github.com/senzing-garage/garage-roadmap/issues/3

Pull requests:

https://github.com/senzing-garage/community-map/pull/8


Image support in wysiwyg

Support for image upload in editor as detailed here: https://github.com/tinacms/tinacms/issues/166

@spbyrne : after these changes we also need a loading state in editor that can be shown while images are uploaded. Can you plz share ur suggestions.

Hey, works fine in Storybook. Should we update demos in a separate PR?

@ncphillips : we can probably merge this one as its complete, I can work on drag-drop images in separate PR.


Does swagger-cli work as wrapper?

I read changelog.
The "swagger-cli" NPM package is now just a wrapper around the scoped "@apidevtools/swagger-cli" package
But I cannot install swagger-cli by npm install swagger-cli.
I got 404.
Is this right?

It fails with following dependency? cc: @JamesMessinger
  npm ERR! code E404
  npm ERR! 404 Not Found - GET https://registry.npmjs.org/@jsdevtools%2fswagger-cli - Not found
  npm ERR! 404
  npm ERR! 404  '<EMAIL_ADDRESS>is not in the npm registry.

usenpm install -g @apidevtools/swagger-cli and apidevtools/swagger-cli in package.json

usenpm install -g @apidevtools/swagger-cli and @apidevtools/swagger-cli in package.json

It works.Thank you.

Obviously npm install -g @apidevtools/swagger-cli works, but the point is that the wrapper is wrapping around the wrong package. It should be fixed regardless of the use of the scoped package directly, otherwise it's just useless.

Sorry!  This was due to a typo in the wrapper module.  It's been fixed now and released as v4.0.2

Thanks @JamesMessinger

That’s very kind of you.


⚠ TorrentLeech has degraded performance

In 9712d97, TorrentLeech ($TL) experienced degraded performance:

HTTP code: 200
Response time: 5689 ms

Resolved: TorrentLeech performance has improved in 6681178.


Semaphore Locked Workflows are shown as Running

Perhaps this is more a feature request than a bug. Anyhow, curious to hear your thoughts!
Summary
Argo Workflows show workflows that are waiting on a semaphore lock as having status "Running", whereas they are technically pending. Not only does this thus falsely report the status of the workflows, it also makes it harder to measure the efficiency of workflows as a potential delay due to locking would be incorporated.
Note, I am working with a Argo Events Github Sensor triggering workflows. Perhaps this issue is more specific to Argo Events and I should open this issue there?
What happened/what you expected to happen?
For the workflow to remain in pending.
What version of Argo Workflows are you running?
3.2.6
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

@tomkennes can you provide more details like workflow  level semaphore or template level?

@tomkennes does it still show as running instead of pending?


404 error reporting in createinvoice.php

Hi,
anytime a user uses bitpay module or when we test this module anytime we go to createinvoice.php we get re-directed to a 404 error. Which is strange all other versions of this plug-in worked we checked our cloudflare nothing is blocking us. Any suggestions please?

IS there any support for this module now? I haven't seen any activity here in sometime. The plugin is out of date and doesn't work with WHMCS anymore at least non of the times I've tried it, and now with the release of WHMCS 7.0 it for sure needs to be updated. Can someone please look into fixing this plugin for us as it really really needs it I'm sure there's many people out there that also need this plugin. This site is added as the main developer on the bitpay.com site.

Hello, we can work on this professionally. If anyone needs help on this module for WHMCS, then contact us. Thanks

We have updated the module to work with WHMCS 7. Anyone wants to test it ?

We've just committed new code that is WHMCS v7 compatible (tested against WHMCS v7.1.2)
You can download the latest code here: https://github.com/bitpay/whmcs-plugin/archive/master.zip
I will create a release next week (provided no issues are found).


does not compile in Github Codespaces

For some reason, i cannot immediately run zig build when i fork Ziglings into Codespaces. I tried another project - this one https://github.com/kxkx5150/Codespaces-Zig-template - and it was able to run zig build with no issue. Not sure if this is an issue with Ziglings or with Codespaces, but Codespaces does seem to be able to run zig if the repository is set up how it likes.
if it matters, I am running Codespaces in the latest version of Firefox on Windows 10 Enterprise LTSC.

@mxjosie What error message do you get?

@mxjosie What error message do you get?

bash: zig: command not found

@mxjosie What error message do you get?

bash: zig: command not found

You have to install Zig.
The project you mentioned installed it in the Docker file: https://github.com/kxkx5150/Codespaces-Zig-template/blob/master/.devcontainer/Dockerfile

okay, with a lot of copy-pasting and fussing around i managed to get it working. Thank you!


change constraints.txt -> requirements.txt for installing addons

Thank you, but this got fixed with other fixes in 276f7f3610c05c50833766be06ca38d845226953


Enable gemfile flag for bundle lock

What was the end-user problem that led to this PR?
bundle lock does not accept the --gemfile flag that allows to define a custom Gemfile.
What was your diagnosis of the problem?
The option is not defined as available.
What is your fix for the problem, implemented in this PR?
Adds the option to the list available options for lock command.
I wasn't sure though, in which order to display this the new option. I just added it where it felt the most natural to me, but please let me know if there is a better order.
Also do you think it would make sense to add this flag to the other commands as well?
For example: add, remove, console, outdated, clean?
For now it is available for: check, exec, install, update, package, doctor.
Why did you choose this fix out of the possible options?
I don't think there are any other options to implement this.
Closes #6735

@bundlerbot r+

Also do you think it would make sense to add this flag to the other commands as well?

Yes! it would be great if we could make the UI consistent across the commands that operate on the Gemfile


Production runtime should use a VM for isolation/security

Runners currently execute user code directly on the same host that they run on. In k8s this is not terrible, but ideally FTL would execute user code inside a VM to completely isolate it. This would also allow us to restrict inbound/outbound network, and so on.
Useful references:

Firecracker Go SDK
firectl CLI using the above SDK
Tutorial on using firectl to start a VM
QEMU vs. Firecracker (HN discussion)
QEMU MicroVM support.
Cloud Hypervisor is another option, though apparently quite immature.

I don't think this is relevant now we have moved to Kube as the primary target.

It is still relevant because the runner and the user code are seperate security domains. The user code should not have access to anything but the runner "proxy" ports.

In that case from a kube PoV you probably want the enforcement part of the runner in one container, and the actual user runtime in a different container inside the pod. AFAIK you can't really do this sort of isolation if they are all inside the same container.

That could be a good first step, and maybe sufficient long term, but we should run that past @AlexSzlavik. From everything I've read, containers are not a reliable security boundary. But perhaps now that we're all-in on Kubernetes we can combine this with other Kubernetes security approaches, like routing policies, and coupled with our own policy enforcement that might be fine.

Chatted to Alex about this earlier today and we think the Runner could be a sidecar, with the user code proxying everything through it. Presumably the user container can be locked down such that it can't access anything except for the Runner.
One issue is that because we currently route everything through the Controller, the Runner needs to be able to differentiate between traffic originating from the user module and all other traffic in order to avoid routing loops. There's code in place to do that, but it's likely bitrotted, and also requires changes to each runtime, so the JVM runtime probably doesn't support this currently. Needs testing.

One other thing that occurred to me is that we'll need to split the "runner" into two containers - the ftl-runner itself and the image that user code runs on (ie. what is currently the ftl-runner image).

I feel like, running VMs in place of containers directly would be a challenge in K8s. Some googling around seemed to indicate that it's doable, but would definitely be a specialized deployment strategy. I'd be concerned that this approach would get in the way of adoption of FTL.
If we aren't doing this, a sidecar model (a la envoy) makes sense to me. I guess this means that we'd have to split the runner image into 2 right? The "edge" runner sidecar and the main "workload" runner. The former is responsible for interfacing with the cluster while the latter is responsible for launching the user code. That component would probably also act as a bridge to the "edge" runner. The main reason to seperate these, is that we want isolation of user code from ftl cluster internal components. We wouldn't want user code to be able to assume the capabilities of an FTL component.
Have we considered what a future FTL deployment, in a common production grade K8s deployment might look like? If the state of the art involves istio or other additional components, should we design for them now? Or at least make sure that we can interoperate with them?

I feel like, running VMs in place of containers directly would be a challenge in K8s. Some googling around seemed to indicate that it's doable, but would definitely be a specialized deployment strategy. I'd be concerned that this approach would get in the way of adoption of FTL.

All the approaches out there are fairly immature, and definitly specialized. I evaluated this a couple of years ago and ended up needed to write my own VM provisioner to support multi platform builds on kube rather than using existing systems. Things may have gotten better since then, but it is still not something that we could require.

If we aren't doing this, a sidecar model (a la envoy) makes sense to me. I guess this means that we'd have to split the runner image into 2 right? The "edge" runner sidecar and the main "workload" runner. The former is responsible for interfacing with the cluster while the latter is responsible for launching the user code. That component would probably also act as a bridge to the "edge" runner. The main reason to seperate these, is that we want isolation of user code from ftl cluster internal components. We wouldn't want user code to be able to assume the capabilities of an FTL component.

This is doable. We want to avoid image building by the user so it is slightly tricky, but it is doable. If we are going to require an OCI registry for artifacts anyway once possibility is to have the controller generate the image (not via a docker build, directly through the OCI registry). Another possibility is to have a shared volume between the sidecar and the runner container, and transfer the user code over the shared volume.

Have we considered what a future FTL deployment, in a common production grade K8s deployment might look like? If the state of the art involves istio or other additional components, should we design for them now? Or at least make sure that we can interoperate with them?

We definitely will need istio, we should be thinking about this.

Looping in @tlongwell-block for his thoughts.


eBPF store APIs do not provide an inverse operation

Describe the bug
When an extension registers its characteristics using the eBPF store APIs, there is no mechanism to revert the changes when the extension is stopped or uninstalled.
OS information
N/A.
Steps taken to reproduce bug
Call ebpf_store_update* during install/start. The developer cannot find a way to revert the operation during uninstall/stop.
Expected behavior
There should be a mechanism to undo the eBPF store changes.
Actual outcome
There is no apparent mechanism to undo eBPF store changes.
Additional details
No response

This should be addressed by #3055 .

Fixed by #3055.


Try PCA on X for η_t

#82

PCA to one feature still takes a very long time to run with all annotators. I think this is either not practical or my implementation is too slow.

One option, if we want this to work, is for me to rewrite the algorithm in C or Rust once we're sure it works. This would not be very hard.

After many hours of running (with one feature) it eventually finished.
Distribution of w:

Distribution of γ:

Astoundingly, 55% accuracy with a pretty balanced confusion matrix.

Distribution of w:

Distribution of γ:

Balanced accuracy of 0.787(!) with confusion matrix
[[1396  193]
 [  47  107]]

Distribution is super weird though:


Memory leaks

I found that recent builds leak memory. Compared with non-ligature alacritty (today's master) and it also does not leak/
System
OS: Linux (Ubutnty 16.04)
Version: alacritty 0.6.0-dev (143b399)
Linux/BSD: X11 GnomeShell
Logs
Font/Terminal size: Width: 1920, Height: 1053, Font: Iosevka Term
I think recent build leak memory. Here is a build that does not leak: alacritty 0.5.0-dev (2c6f47f) - it's from a few weeks ago.
I think may be related to the caching of the rendered lines.
Experiments:

Run htop, observe alacritty memory increase:

luben    10493  1.1  0.2<PHONE_NUMBER>4 pts/13   Sl+  15:25   0:00 ./target/release/alacritty
luben    10493  0.6  0.2<PHONE_NUMBER>2 pts/13   Sl+  15:25   0:00 ./target/release/alacritty
luben    10493  0.4  0.3<PHONE_NUMBER>0 pts/13   Sl+  15:25   0:00 ./target/release/alacritty
luben    10493  0.3  0.3<PHONE_NUMBER>6 pts/13   Sl+  15:25   0:00 ./target/release/alacritty
luben    10493  0.3  0.3<PHONE_NUMBER>2 pts/13   Sl+  15:25   0:00 ./target/release/alacritty
luben    10493  0.2  0.3<PHONE_NUMBER>2 pts/13   Sl+  15:25   0:01 ./target/release/alacritty
luben    10493  0.2  0.3<PHONE_NUMBER>6 pts/13   Sl+  15:25   0:01 ./target/release/alacritty
luben    10493  0.2  0.4<PHONE_NUMBER>8 pts/13   Sl+  15:25   0:01 ./target/release/alacritty
luben    10493  0.2  0.4<PHONE_NUMBER>8 pts/13   Sl+  15:25   0:01 ./target/release/alacritty
luben    10493  0.2  0.4<PHONE_NUMBER>4 pts/13   Sl+  15:25   0:01 ./target/release/alacritty
luben    10493  0.2  0.4<PHONE_NUMBER>2 pts/13   Sl+  15:25   0:01 ./target/release/alacritty
luben    10493  0.2  0.4<PHONE_NUMBER>0 pts/13   Sl+  15:25   0:01 ./target/release/alacritty

run tree ~/rust (200k files)

$ ps axu | grep target/release/alacritty | grep -v grep
luben    10493  0.3  0.5<PHONE_NUMBER>0 pts/13   Sl+  15:25   0:03 ./target/release/alacritty
$ tree ~/rust
...
$ ps axu | grep target/release/alacritty | grep -v grep
luben    10493  0.5  0.6<PHONE_NUMBER>12 pts/13  Sl+  15:25   0:06 ./target/release/alacritty
$ tree ~/rust
...
$ ps axu | grep target/release/alacritty | grep -v grep
luben    10493  0.6  0.8<PHONE_NUMBER>04 pts/13  Sl+  15:25   0:08 ./target/release/alacritty

$ tree ~/rust
...
$ ps axu | grep target/release/alacritty | grep -v grep
luben    10493  0.7  1.0<PHONE_NUMBER>44 pts/13  Sl+  15:25   0:10 ./target/release/alacritty

I noticed the problem with a build from a few days ago that has grown to 1.5G of memory in a few days.  I have rebuilt it today with all recent commits and I still see it leaking memory.
BTW, I had to comment the call to FT_Set_Default_Properties in crossfont as my freetype does not support it (also for building master).  Nothing else is patched.

Thanks for your report and investigation.
What if you turn off the ligature? Is it still leaking?

How do I turn them off?

Leak confirmed on my side.

Should be fixed in the latest commit in ligature branch.
Can you double check and close the issue?

Yes, confirming. Thanks!


Send metadata with a Non-WatsonTcp Endpoint

I read through FRAMING.MD and I can't figure out how to include metadata from my non-WatsonTcp client.
So far I've tried these two json headers:
"{"len":1337,"status":"Normal","metadata":{"fileName":"Foobar"}}"
"{"len":1337,"status":"Normal","fileName":"Foobar"}"
In both cases, args.Metadata is not set. Is it even possible?

Hi @teoAlivanoglou please try setting it to "md":{...}.  Looks like it may be a documentation error.
        /// <summary>
        /// Metadata dictionary; contains user-supplied metadata.
        /// </summary>
        [JsonPropertyName("md")]  <----
        public Dictionary<string, object> Metadata { get; set; } = null;

Just added some more detail to FRAMING.md - thanks for bringing to my attention! Also please re-open if any issues.

Thank you very much!


Valorant stats

[ ] Link Riot ID to bot via discord user connections (/valorant link)
[ ] Unlink Riot ID (/valorant unlink)
[ ] Valorant user stats command (/valorant stats)
[ ] Valorant last match (/valorant last-match)
[ ] Valorant platform status (/valorant status [region])
[ ] Valorant incident status (/valorant incident [region])
[ ] Valorant version (/valorant version [region])

https://github.com/Eviloma/evilbot/commit/1afadb03aabb84cd15f3bffd1ae1190359e98a5e

Adde callback for link valorant connections using discord connections.
https://github.com/Eviloma/evilbot/commit/de61fa9b0354c0cb27996aad9dd3c4a6d983a79c

Plan:

4.7.0 - /valorant link
4.7.0 - /valorant unlink
4.7.0 - /valorant profile (base stats - region, card, rank, pick rank)
4.7.1 - /valorant status
4.7.1 - /valorant incident
4.7.1 - /valorant version
4.7.2 - /valorant last-match

This is an approximate schedule, it may change


Shivam Srivastava

Issue Type:
[ ] Bug Report
[ ] Feature Request
[ ] Documentaion
Describe the bug

A clear and concise description of what the bug is.

Possible solution

Describe the solution you thought of.

Screenshots

If applicable, add screenshots to help explain your problem.

@Srivastava28 add your details in event.md file on your issue number and make PR


About maskModel weight

Why is the maskModel weight = 1/16?
Like this -> netG.modules[41].weight:fill(1/16) (train.lua  Line 152)
Thank you for your patient answer.

Hi, in fact it is a trick to define the masked region in feature space. Always, the simplest way is directly resize the mask. However, in fact the border of masked and unmasked region is blur as convolution makes information spread from outside into inside. As we use convolutions with 44 kernels. We process the mask with the similar operation(with 44 convs) as what we process the input image.  So we need to fill them with '1/16'. In this case, if the window of the conv falls in the masked region, it gets '1' everywhere.
If the window falls partly in the masked region, it gets a decimal number. A threshold is set to figure out the border.


Add netbench runner

This little script helps running netbench.
I am not sure if we would even want such a thing upstream. The amount of RAM and the arguments for netbench has still to be debated about.
What do you think?

Cool, can you remove RUSTFLAGS="-Clinker-plugin-lto" in your script. It isn't longer supported (see #125). If you use KVM, you can use the flag -cpu host`. It should work.

I updated the PR but faced #128.

I just rebased on latest master and added a short usage comment on top of the script.

bors r+

bors retry


Feature/darkjaguar91/star field generation

Add new field to TableDefinition write method for STAR
Add NameAlias to ClassNames

thanks for contribution. instead of generating this for every class, I will provide static + extension methods for calling it ,since itl require adding a field to every generated _Table.


[framework] make Image.scale select asset variant

Perhaps I'm misunderstanding the intent of the API, but I must admit I have no idea what this argument should have done before.
Based on my read of the intention of the ExactAssetImage image provider, it was intended to allow users to declare an image should be drawn with a particular scale. I don't know what else this could mean besides selecting an asset variant with a dpr that is close to the scale.
Without this functionality, users could instead specify the exact path to a particular asset variant perhaps? That plus the scale would work, but feels odd.
With this change Image.asset('some_path.png', scale: 4.0) would select 4.0x/some_path.png if it exists, or the closest DPR image. Before this change it would always select the base asset variant.
Fixes https://github.com/gskinnerTeam/flutter-scifi/issues/9

Fixes https://github.com/gskinnerTeam/flutter-scifi/issues/9

FYI, this link 404s. Maybe it's a private repository?

Guess its private!

After looking at this I share your assessment that ExactAssetImage in its current form doesn't make too much sense and this change likely represents what it should do. @Hixie may have some additional historical context. He introduced this in https://github.com/flutter/flutter/commit/2dfdc840b1b10342cecd2c89292e2f4bf6003948, describing it as "a variant of AssetImage that doesn't do anything clever".

(triage) @jonahwilliams Do you still have plans for this PR?