Request Wrapper + Handlers + Plugins

This has been something that I've been struggling to wrap my head around for some time and this is just me spit balling, so not necessarily thought through 100%, but curious of others points of view.
At the moment this is the "vague" flow we have when a fetch request is made:
fetch event > Router > Route > Handler > RequestWrapper[Wrapper calls plugins it has from constructor]
I'm been struggling with the flow between the handler, request wrapper and plugins because the plugins feel misplaced in a request wrapper and it feels unexpected to give every handler a unique request wrapper.
There are scenarios where a developer may want global logic across their service worker, for example:

Ignore specific, or all, url search parameters.
Use a specific cache by default.
Ensure all cache events broadcast a channel update.
Define a specific cache expiration for all requests and caches unless specified.

This is fiddly to do in the above flow because the plugins and variables that support these behaviors are added to the request wrapper, this means that each handler needs to have it's own request wrapper with these plugins configured (i.e. it's not global, it's duplicated for each handler).
An alternative would be to make the handlers have the plugins and have an API agreement between the handler and request wrapper (This gives us the same behavior as before):
fetch event > Router > Route > Handler[Uses plugins when request wrapper calls] > RequestWrapper[Wrapper calls handler throughout]
The benefit here is that the RequestWrapper can now be a singleton. Handlers are responsible for the extra specifics on behavior (This doesn't solve the global desires outlined above). But, by following this pattern, we can add global behaviors to the RequestWrapper singleton (i.e. the developer could have do something like self.requestWrapper.addPlugin({cacheWillUpdate: () => {}});). This would then apply to all requests.
The complication of this is that we'd need to consider the order the plugins are called. Should the Handler's plugins be called before or after the RequestWrappers plugins. My thought here is that we could decide on a precedent (i.e. globals in RequestWrapper first) or add some notion of priority to plugins.
@jeffposnick @addyosmani @jpmedley thoughts on this?

Let's chat about the current state of discussion around this at the next team API design sync.

For the most part, those scenarios are all reasonable things that a developer might want to do which are either complicated or impossible to accomplish using the current workbox-sw interfaces. So yes, let's clean it up!
The use of global state in sw-toolbox left a bad taste in my mouth, and I wanted to move away from it with Workbox.
Rather than make RequestWrapper a singleton, and then asking developers to configure the default behaviors via self.requestWrapper.*, what if we addressed the use case via getters and setters exposed under WorkboxSW#defaults.*? (I.e. each instance of WorkboxSW has its own defaults.)
This has the benefit of hiding the whole concept of RequestWrappers from most folks who consume the library. It's an implementation detail that we've mostly papered over already, via the Handler factories exposed under WorkboxSW#strategies.
It also has the benefit of not shoehorning logic into the RequestWrapper that might make more sense if it lived elsewhere. For instance, one of your scenarios is "Ignore specific, or all, url search parameters." I'd argue that this is routing configuration, rather than Handler or RequestWrapper configuration. Exposing the setting outside the context of RequestWrappers gives us the flexibility to use the setting from our router.
We currently have a number of default values assumed throughout WorkboxSW, some of which we exposed via one-off getters, like runtimeCacheName. If all those defaults were getters and setters under WorkboxSW#defaults.*, we'd end up with a consistent API.
(The question of plugin priority is still equally unanswered in my proposal, but we could deal with that as part of a follow-up discussion.)

I guess what I'm trying to achieve is an API where instead of:
const requestWrapper = new workbox.runtimeCaching.RequestWrapper({
  cacheName: 'example-cache-name',
  cacheId: 'cache-id',
  plugins: [],
  fetchOptions: {
    body: 'hello'
  },
  matchOptions: {
    ignoreSearch: true,
  }
});

const cacheFirst = new workbox.runtimeCaching.CacheFirst({
  requestWrapper
});

const requestWrapper = new workbox.runtimeCaching.RequestWrapper({
  cacheName: 'example-cache-name',
  cacheId: 'cache-id',
  plugins: [],
  fetchOptions: {
    body: 'goodbye'
  },
  matchOptions: {
    ignoreSearch: true,
  }
});

const networkFirst = new workbox.runtimeCaching.NetworkFirst({
  requestWrapper
});

We achieve the same with:
const cacheFirst = new workbox.runtimeCaching.CacheFirst({
  cacheName: 'example-cache-name',
  cacheId: 'cache-id',
  plugins: [],
  fetchOptions: {
    body: 'hello'
  },
  matchOptions: {
    ignoreSearch: true,
  }
});

const networkFirst = new workbox.runtimeCaching.NetworkFirst({
  cacheName: 'example-cache-name',
  cacheId: 'cache-id',
  plugins: [],
  fetchOptions: {
    body: 'goodbye'
  },
  matchOptions: {
    ignoreSearch: true,
  }
});

This is a minor API change on the surface, but I think it's more in tune with the expectation of how plugins affect behavior and we can pull some logic out of RequestWrapper into the Handlers (like the  effective cachaeble response plugin could be defined by the Handler base class) and we can make the reasoning of behaviors easier to follow as a result. Ultimately the RequestWrapper can be stateless,  follow a specific set of steps and push behavior alterations and features into plugins. This will also give us a concise extension story for developers as well.
The only thing that this loses is the "default" configuration for a given RequestWrapper. We can add some of this back in by utilising a "workbox-core" style module where the configuration for defaults can be stored, then either Handlers or the RequestWrapper can use them.

I'm supportive of letting developers to configure a RequestWrapper via parameters passed to the base Handler constructor. It would ideally share a lot with (or be completely identical to) the configuration currently supported by the WorkboxSW.strategies.* factory methods. So 👍  there.

Ultimately the RequestWrapper can be stateless, follow a specific set of steps and push behavior alterations and features into plugins. This will also give us a concise extension story for developers as well.

I still am 👎  on this. There's no technical reason why we couldn't adopt this, but I'm in favor a the model where the low-level foundation used inside of Handlers is a RequestWrapper instance that has been properly configured ahead of time, rather having Handlers call static RequestWrapper methods with options/plugins that were configured ahead of time.
RequestWrappers haven't (yet) seen adoption as a low-level primitive used outside of Workbox, but they could. My feeling is that treating them as self-contained objects, an instances of which fully define the state of network/cache behavior, makes it more likely that they'll eventually find use from developers who don't necessarily want to adopt our Handler classes, but do want to adopt our approach to network/cache customization..

@jeffposnick developers will still be able to use RequestWrappers, the class can still be exposed and instantiated on it's own, I just believe that plugins don't need to exist in the RequestWrapper, but instead be passed in. Main difference is we aren't creating lots of instances of a class when the behavior isn't going to change.

I'm not worried about creating multiple instances of a class if it means that each instance is self-contained and encapsulates a specific network/cache behavior. That model makes much more sense to me.
We could compromise on a hybrid approach, in which you could still instantiate a new RequestWrapper instance and provide plugins/config via the constructor, but also support passing in plugins/config directly as parameters to fetchAndCache(), fetch(), and match(). Then there could just be one "psuedo-static" instance of RequestWrapper that was used internally by workbox-sw.
This sends a mixed-message about the intended use case to developers who might read the RequestWrapper docs because they want to use it correctly, but we see confusion or developers clearly opting for one approach vs. the other, effectively deprecate the alternative approach in a future major release.

We could also do a slightly twist on the above.
We could have static functions that implement fetch() and fetchAndCache() logic which the RequestWrapper utilises and the core and expose the fetch and fetchAndCache methods as statically accessible methods.

Yup, we could. So do we have consensus on:

Support both the static and instance use cases in the v3 refactoring, using whatever seems the cleanest "under the hood" inside of workbox-sw.
Evaluate deprecation of one of those approaches depending on whether or not we hear from confused developers.

@jeffposnick I think we are in agreement. I'll touch on it early on in V3 and we can discuss further on that if that's ok with you?

👍

@jeffposnick I haven't heard anything negative about the current approach in V3, would you be happy to close this?

👍


Exclude terms in search?

I tried this search on chat.zulip.org. It still shows posts with "wire". Is there a bug / feature issue on this? Thanks..

Can you share some more details about this?

I think it is already detailed. I expect a search result as in google. Google allows you to exclude terms starting with dash symbol. Here that is not the case.

Ah! Got it. Would like to work on this one. @zulipbot claim

I believe the issue here is likely that "rewire" and "wire" have the same stem; so Zulip's stemming (https://zulip.com/help/search-for-messages#keyword-search) means that searching for messages matching "rewire" and "wire" is searching for messages that match "wire" and don't match "wire", aka the empty set.


Separate HTML files per TAB

I think it would be a good idea to offer this as an option where a separate file is linked to a new Tab or potentially to other areas (but not yet sure where). While it makes sense to keep everything in one HTML file for portability for some cases it gets really performance intensive when a lot of things are stored.
I once had Active Directory export of 500MB HTML file. It was killing my browser.

Hi,
sorry for the question.
In what example can I look at the use of this improvement?
Best regards

There are new features added. One of those is shown here:

https://github.com/EvotecIT/PSWriteHTML/blob/master/Examples/Example41-Navigation02/Example41-Navigation02.ps1

There are 3 others in examples. While it's not about tabs it's about pages attached to menus.

Thank you.
Have to improve the testimo result report.
a lot of DCs al lot of tests :-)
Or do you have a advanced report with better performance :-)
Thank you

I use another project that solves that. The idea is that you run Testimo reports, report by report and the "TheDashboard" bundles it all up. Each HTML separately.

Is this Project public too?

Not yet. I have some trouble on making it easy to use and configurable at the same time

Thanks. Have done my one top menu site.
If you click on an menu item and the page is changing the menu and is flickering.
Is that "normal"?

Not yet. I have some trouble on making it easy to use and configurable at the same time

Insperierd from your screenshot I wrote a few functions. They create on the basis of an existing folder/filestrutkur independently the appropriate navigation menu. It certainly doesn't cover all configuration possibilities PSWritehtml offers - but hey zero config is needed. Are you interested? Should I send them via mail to you?

That's already what the dashboard does
$Configuration = @{
    HTMLPath       = "$PSScriptRoot\Reports\Index.html"
    ExcelPath      = "$PSScriptRoot\ReportExcel.xlsx"
    StatisticsPath = "$PSScriptRoot\Dashboard.xml"
    Logo           = 'https://evotec.xyz/wp-content/uploads/2021/04/Logo-evotec-bb.png'
    Limits         = [ordered] @{
        Users         = 200
        Computers     = 200
        Groups        = 200
        GroupPolicies = 100
    }
    Folders        = [ordered] @{
        GPOZaurr           = @{
            Path               = "$PSScriptRoot\Reports\GPOZaurr"
            Url                = "GPOzaurr"
            IconType           = 'IconBrands'
            Icon               = 'gofore'
            ReplacementsGlobal = $true
        }
        Testimo            = @{
            Path               = "$PSScriptRoot\Reports\Testimo"
            Url                = "Testimo"
            IconType           = 'IconBrands'
            Icon               = 'adversal'
            ReplacementsGlobal = $true
        }
        'Group Membership' = @{
            Path               = "$PSScriptRoot\Reports\GroupMembership"
            Url                = "GroupMembership"
            IconType           = 'IconSolid'
            Icon               = 'chalkboard-teacher'
            ReplacementsGlobal = $true
        }
        'Custom Reports'   = @{
            Path               = "$PSScriptRoot\Reports\CustomReports"
            Url                = "CustomReports"
            IconType           = 'IconSolid'
            Icon               = 'chalkboard-teacher'
            ReplacementsGlobal = $true
        }
        'PingCastle'       = @{
            Path               = "$PSScriptRoot\Reports\PingCastle"
            Url                = "PingCastle"
            IconType           = 'IconSolid'
            Icon               = 'podcast'
            ReplacementsGlobal = $false
            Replacements       = [ordered] @{
                SplitOn        = '_'
                BeforeSplit    = [ordered] @{
                    '-Domain-' = ' '
                }
                AfterSplit     = [ordered] @{

                }
                AddSpaceToName = $false
            }
        }
    }
    Replacements   = [ordered] @{
        SplitOn        = '_'
        BeforeSplit    = [ordered] @{
            'Testimo'          = ''
            'GPOZaurr'         = ''
            'GroupMembership-' = ''
            '_Regional'        = ' Regional'
            'PingCastle-'      = ''
        }
        AfterSplit     = [ordered] @{
            'G P O'     = 'GPO'
            'L D A P'   = 'LDAP'
            'L A P S'   = 'LAPS'
            'K R B G T' = 'KRBGT'
            'A D'       = 'AD'
            'I T R X X' = 'ITRXX'
            'I N S'     = 'INS'
        }
        AddSpaceToName = $true
    }
}

This is what the configuration looks like. The problems I'm struggling with are more dependent on the dashboard itself and mainly about the graphs, that I want to be dynamic. So some command that creates either chart or some other stuff. I 've some vision on how it's supposed to look, just not yet fully crystalized.

Ok also nice... my idea is: run different reports, copy the html to a directory/filestructure, run my module "report-master" gibe it "input directory" and have one dashboard :-) at the moment I have done some changes on your testimo module... now I can execute it once and get a nice and "mostly" smooth running webpage which shows all 7100 tests of my environment  :-)
thanks to your modules i actually don't need html knowledge :-)
I am looking forward to seeing your report generator.
Until then I will have to use mine.

That is how the dashboard works. The dashboard just takes existing HTML reports from GPOZaurr/Testimo and other HTML reports and exposes them via the dashboard, including history reports based on filenames or dates and exposes them in calendar and in the GUI and also does some tricks to display them nicely.
The tools that generate reports run on schedule on different days and are completely independent. I will release TheDashboard soon enough, as I have to finish writing docs for setting it up on IIS.

that's exactly how i do it at the moment :-)
do you know or have a good dashboard for an exchange environment?

https://microsoft.github.io/CSS-Exchange/Diagnostics/HealthChecker/ but i've not tested it myself, haven't played with Exchange for a while

i´m still very interested in your solution :-)
My own solution is now also a bit advanced.
Some features:

Scanning and copying source directories
Determine whether new files have been created in the source directories -> if so, the Top-Menu-Sites must be created again.

The menu is created based on the Directory/FileStructure - no flat structure, every directory creates a new sub-menu.
I have already created Wrapper / Executer for you Modules:

GPOZaurr (One page per Type)
PSWinReporting (SubFolders for CurrentDay, PastWeek, PastMonth, PastQuarter,....)
Testimo (Export your tabs to separated sites and create some own reports based of your provided informations)
some Custom reports (LAPS, Policy-Based-DNS-Reports, Domain-Controller-Infos)

At the moment most of the reports are running too slow for a real realtime dashboard...
GPOZaurr: 1-2 hours
PSWinReporting: Events are collected on WEC: CurrentDay some minutes, PastWeek maybe 10 minutes, PastMonth 1 hour, PastQuarter no idea
Testimo: without SysVol-Verification about 4-8 hours, big environment bad connections
Custom reports: mostly only some minutes...
Big open point: How do you get all the information from the individual reports nicely and clearly presented on one overview page :-)
Apart from creating the top menu, my solution is just a best-of your examples. But its mostly working :-)
maybe we should do a little exchange of our betas :-P
Regards
Dominik

Give me 1-2 weeks to finish my current stuff and so I can cleanit up and finalize my concepts. I run all reports from separately and dashboard can be rebuilt every 10 minutes if needed as it just reads "ready" data.

you get 4 weeks - I´m on holiday now :-)
don't worry! no hurry! my code is working but I need some quality loops :-)


Cookbook describing defining tests using scalatest

A short cookbook that will show how to define tests using ScalaTest. I should cover 2 different test files and test utils.
An example test using Munit

What this cookbook should be about? Where should it be put? Should it be with ScalaTest or MUnit?  Should it be added to MUnit documentation?

Where should it be put?

under "Introductory cookbooks", I guess

Should it be with ScalaTest or MUnit?

I'd suggest doing both. Copy-and-paste ftw.

Should it be added to MUnit documentation?

I expect they'd be happy to link to it from their doc.

re: multiple testing frameworks, I notice that the way it was handled at https://scala-cli.virtuslab.org/docs/cookbooks/test-only was to have separate sections for each framework.
I think that's unsatisfactory — it makes the page pretty hard to read. Any particular reader is only going to care about one framework at a time.
So I would suggest the copy-and-paste approach, so that part of the cookbooks list would look like:

Filter the test suites to run (with ScalaTest)
Filter the test suites to run (with MUnit)
...

But I'll mention another possibility, which is to use tabs within the cookbook. That's how we handled multiple build tools in the tutorials for the Scala Toolkit:

and it's also how we handle Scala 2 vs Scala 3 on scala-lang.org and docs.scala-lang.org:

@ganeshchand says Docusaurus has a tabs thing...?

Sure, this can be achieved in Docusaurus using the tabs feature.


Remove instructions for Node.js 10.x base image

Issue #, if available:
Node.js 10.x is End of Support in Lambda.
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

End of support phase 2 started Nov 30th, so it makes sense to remove the Node.js 10.x image from this table. Thanks again for the reminder.


Term shortcut to run script in background (without opening a terminal)?

I wrote a script that does things in the background and requires no user interaction. Is it possible to create a shortcut to run the script without opening a terminal (or in an invisible terminal)?

If you don't want a terminal screen, you can use the built-in Android classes to run your script, without any need to install Terminal Emulator for Android:
http://stackoverflow.com/questions/25199307/unable-using-runtime-exec-to-execute-shell-command-echo-in-android-java-code


Fix a number of Javadoc typos

I found some typos in the Javadocs and fixed them

Coverage remained the same at 94.455% when pulling 94e1220b036e0b7570497dcb3ba2cd7f3b360071 on bug-bulletin-forks:fix-typos into ab25f67348d4885620df86497889c1826f013a73 on apache:master.

Thanks! 👍


Add Data Boost

Thank you very much for the project, this is helping a lot.
But will you consider including an option to use Data Boost?
The fact that we can run certain queries without impacting performance is amazing.
Reference:
https://cloud.google.com/spanner/docs/databoost/databoost-overview
https://cloud.google.com/spanner/docs/databoost/databoost-applications?hl=pt-br

Yes, this is the issue for it. I'm working on it, and it should be ready sometime this month.
https://github.com/colopl/laravel-spanner/issues/113

Closing since PR for data boost was merged https://github.com/colopl/laravel-spanner/pull/131.
Please test it out if possible and let me know what you think.

Also, if this project is helping you please consider giving this repo a star. Thanks.


how much time to sync?

to cedwards' point, I think --- how much time should this take to sync to Office 365 mailboxes?  How about to Outlook clients?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: d3a862d8-4223-7bb7-42f1-9842cbeacf87
Version Independent ID: 2c3c7e9a-a44d-168e-2083-b1527ab3f61c
Content: Allow members to send as or send on behalf of a Group - Microsoft 365 admin
Content Source: microsoft-365/admin/create-groups/allow-members-to-send-as-or-send-on-behalf-of-group.md
Service: o365-administration
GitHub Login: @MikePlumleyMSFT
Microsoft Alias: mikeplum

@haggisbreath . I think it depends upon the  internet connection speed, proper DNS server, also contents of the mail attachments and size of the mails

@haggisbreath  Thank you for your feedback. While It takes immediate effect, I would suggest giving it 2-5 minutes as it does not take more time than that.
Hope this helps!
Thanks
Sri

@haggisbreath - Thank you for submitting feedback.
From our understanding, the issue you raised has been answered by @RAJU2529 and @msbemba  so we will close this issue.
Thank you for your contribution to make the docs better! Much appreciated!


react-native-device-info NativeModule.RNDeviceInfo is null

I got this error :
@react-native-community/react-native-device-info NativeModule.RNDeviceInfo is null

On iOS (not test on Android)
Someone as a solution ? I Tried a lot of things
react-native-cli: 2.0.1
react-native: 0.60.6
macOS 10.15.6

If the native device is null, you have unsuccessfully integrated the module.
It is not linked for some reason, and nothing will work.
You may examine the example app (or it's construction script https://github.com/react-native-community/react-native-device-info/blob/master/refresh-example.sh) to see how to integrate properly


don't crash when deserializing out of bound integers

Before this PR de::from_str would panic when trying to parse out of bound integers. Now it returns an error. (It would be nicer if it would parse the numbers successfully, e.g. as floats or big integers. But returning an error is definitely better than panicking.)
Please let me know if I broke any coding conventions.

Seems to be fixed by #27.


Publish 0.5.4

.

[x] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

Contribution guidelines:

See our contributor guide for general expectations for PRs.
Larger or significant changes should be discussed in an issue before creating a PR.
Contributions to our repos should follow the Dart style guide and use dart format.
Most changes should add an entry to the changelog and may need to rev the pubspec package version.
Changes to packages require corresponding tests.

Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.

What are the API leaks? Did we start exporting something we didn’t before?

https://github.com/dart-lang/native/commits/main/pkgs/native_toolchain_c Looks like we didn’t actually change anything.

What are the API leaks? Did we start exporting something we didn’t before?

Could be LinkerOptions.isClangLikeLinker. I will move it somewhere else.

coverage: 93.26%. remained the same
when pulling 088d2be424bdea1eb8d87a6d17c35da85f731f3d on publishToolchainC
into 3a12b0a17baffe60a332844b2ce361b9189d62af on main.

What are the API leaks? Did we start exporting something we didn’t before?

Could be LinkerOptions.isClangLikeLinker. I will move it somewhere else.

Does the API tool not run on publish_to none? Or why did we not see this before?

Does the API tool not run on publish_to none? Or why did we not see this before?

It does. I did add the leaking check kind of recently - maybe it was not there at the time.

Seems like that check is doing it’s job 🤓


Problems on Safari

Hi, I'm using Vidage 0.3.0 on this site.  I'm on Windows and am unable to try to debug the Safari version, but am getting reports it's not working in Safari.  It's working for me in Chrome.  I'm told the demo is working.  Any ideas?  Thanks.

Hello there,
I was able to track down the issue but I am unsure what is it about exactly. Whether Safari does not support .mp4 and instead you should also include .webm (just assumption).
But here's the current problem that shows up on your site...

Thanks, I'll try that.  Thanks for helping me isolate this.


Whitespace test

It's pretty rough, so comment away.
It catches the bug that was fixed accidentally by ad435a7

It's pretty rough, so comment away.

Rough in what sense?

Have pushed changes as per comments.
Travis CI failed with what looks like a runtime error (ie. not my fault?)


Does gui stops if you close the Powershell window?

I closed Powershell window and GUI disappeared without any warning. However it seems plotting in background. If that's true, how can bring back the gui?
Is it required to keep both PS and gui open?

Yes, if the Powershell instance that spawned the PSChiaPlotter GUI closes, the GUI will close along with it.  I ran into a crash ~1 week ago that gave similar results - even the log files for PSChiaPlotter were gone.  The GUI never re-populated itself as it wasn't aware of running jobs anymore.
Just leave both running, and if/when you want to close the PSChiaPlotter GUI, use the red X in the upper right - it'll give a safety prompt confirming it.  In the meantime, your chia.exe plots will continue until they are done with their current .plot files.

Not sure whether it's doable however may be this is something @MrPig91 wants to look into and make the gui run standalone without keeping PS window open all the time or atleast throw a prompt to user if by mistake someone tries to close the PS.
Another option could be to add some command to bring the gui back from background, may be reload the initial parameter file and current status from log?

I am working on the update to have GUI be separate from the powershell Window that started the GUI process. This also very easily solves my logging issue. I had very little logging in the application because many runspaces (threads) could try to write to the same a log file at the same time which would cause errors and missing logs. I was thinking about using the BlockCollection class to get around this, but instead starting a transcript of this new hidden powershell window makes this seamless. As far as having the a new instance of the GUI pick up where it left off... that feature is not in the near future. It is a little bit more complicated then it would seem with how the application was written.

Ended up being a little less straight forward in the end for the logging part, but I just released the latest version where you can now close the starting window. So you are less likely to accidentally close the GUI.


kube2pulumi binding types error

Given example.yaml
apiVersion: v1
kind: Pod
metadata:
  namespace: foo
  name: bar
spec:
  containers:
    - name: nginx
      image: nginx:1.14-alpine
      resources:
        limits:
          memory: 20Mi
          cpu: 0.2

Running kube2pulumi typescript -f ./example.yaml results in
2021/01/22 19:58:34 failed to bind program:
Error: binding types: type kubernetes:core/v1:ServiceSpecType must be an object, not a string
Usage:
  kube2pulumi typescript [flags]

Flags:
  -h, --help   help for typescript

Global Flags:
  -d, --directory string   file path for directory to convert
  -f, --file string        YAML file to convert

unable to run program: binding types: type kubernetes:core/v1:ServiceSpecType must be an object, not a string

The same error can be reproduced with go, python, csharp, all.
Context:
brew info pulumi
pulumi: stable 2.18.1 (bottled), HEAD
Cloud native development platform
https://pulumi.io/
/usr/local/Cellar/pulumi/2.18.1 (18 files, 183.5MB) *
  Poured from bottle on 2021-01-22 at 19:05:25

brew info kube2pulumi
pulumi/tap/kube2pulumi: stable 0.0.5
Convert Kubernetes manifests to Pulumi code
https://pulumi.io
/usr/local/Cellar/kube2pulumi/0.0.5 (5 files, 27.4MB) *
  Built from source on 2021-01-22 at 19:30:36

OS: macOS Big Sur 11.1 (20C69)

cc @komalali @viveklak  ServiceSpecType is an enum - do we need to update dependencies in kube2pulumi to add enum support?

cc @komalali @viveklak  ServiceSpecType is an enum - do we need to update dependencies in kube2pulumi to add enum support?


Recurring Events: Duplicated date in the "Recurrence Dates" field causes Event to be duplicated repeatedly in Events Listing

Description of issue
If you duplicate a date in the "Recurrence Dates" field when creating an event in Contentful, it results in the Event being duplicated endlessly in the Event Listing page. This leads to the navigation and scrolling on the Events page acting erratically, with events popping in and out of view and blank screens.
Expected behaviour
If a date is duplicated in the Recurrence Dates value, it should be ignored.
Steps to reproduce

Open Contentful, find the "Duplicated Recurring Dates Event"
Publish it
Open the app to the Events page
Refresh
Scroll down to find the event
Scroll down past it to load more events
Scroll back up to the event itself

Event begins duplicating repeatedly

Scrolling dramatically to the bottom of the events list and back up should trigger it.
Once the bug is triggered, behaviour gets weird.
Note When you are done reproducing the issue, please 'unpublish' it (change its status to Draft) so it doesn't break the app in the meantime while the bug is being fixed 😉
OS / Browser / Device model
Samsung Galaxy S8
Screenshots

This should be fixed in #313. I also think #305 will fix it. But both will be safer.


Feature/doc updates chef solo

chef-solo-automator doc updates

Bunch o' comments...

One comment. otherwise LGTM...

I've incorporated all feedback, except I'm keeping it "run-list" since that what Chef uses.  And I converted all tabs to spaces per @awholegunch , which might've thrown off github's diff/comment association.


[Bug]: Custom Printing Broke Regular; Should Be Avail. to All Units

All tests now pass. Neglected to run all tests before submitting the custom printing hook, so new test passed, but existing ones failed.
While we're at it, push up the hook into SimpleUnit so that DerivedUnits can take advantage of it; add a test for this

Pull Request Test Coverage Report for Build 83

21 of 21 (100.0%)  changed or added relevant lines in 3 files are covered.
8 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.2%) to 92.759%

Files with Coverage Reduction
New Missed Lines
%

source/Aconcagua-Core/MeasureBagFraction.class.st
8
63.64%

Totals

Change from base Build 82:
0.2%

Covered Lines:
8352

Relevant Lines:
9004

💛  - Coveralls

Thanks for the feedback, @fortizpenaloza!

I'm intrigued about what subclasses you're creating. We're have been using it heavily for years now and, I don't remember creating any single subclass. For cents i.e we'll have a base unit and cent derived from it.

I was creating a money package. I wanted to flesh it out a bit before release. Maybe I'm using it wrong (i.e. in a non-standard or inefficient way)? I have e.g.:
BaseUnit subclass: #AmDollar
	instanceVariableNames: ''
	classVariableNames: ''
	package: 'Aconcagua-Money'!

!AmDollar methodsFor: 'printing' stamp: 'SeanDeNigris 11/22/2019 22:18'!
printMeasure: aMeasure on: aStream

	aStream nextPut: $$.
	aStream nextPutAll: (aMeasure amount asFloat printPaddedWith: $0 to: 1.2).
	aStream space.
	aStream nextPutAll: self sign! !

"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!

AmDollar class
	instanceVariableNames: 'uniqueInstance'!

!AmDollar class methodsFor: 'accessing' stamp: 'SeanDeNigris 9/9/2020 15:05'!
parser
	^ RxMatcher forString: '\$(\d+(.\d+)?)'.
	"| symbol amount |
	symbol := $$ asPParser.
	amount := #digit asPParser plus, ($. asPParser, #digit asPParser, #digit asPParser) optional.
	^ (symbol, amount flatten) ==> [ :n | n second asNumber dollars ]"! !

!AmDollar class methodsFor: 'accessing' stamp: 'SeanDeNigris 9/9/2020 15:12'!
fromString: aString
	| parser amount |
	parser := self parser.
	(parser matches: aString) ifFalse: [ self error ].
	amount := (parser subexpression: 2) asNumber.
	^ amount dollars.! !

Did you evaluate adding this message to UnitBehavior?

No. SimpleUnit covered the two cases I needed. Would that be a better place?

Hi @seandenigris , thanks!
I'm intrigued about what subclasses you're creating. We're have been using it heavily for years now and, I don't remember creating any single subclass. For cents i.e we'll have a base unit and cent derived from it.

Thanks for the feedback, @fortizpenaloza!

I'm intrigued about what subclasses you're creating. We're have been using it heavily for years now and, I don't remember creating any single subclass. For cents i.e we'll have a base unit and cent derived from it.

I was creating a money package. I wanted to flesh it out a bit before release. Maybe I'm using it wrong (i.e. in a non-standard or inefficient way)? I have e.g.:
BaseUnit subclass: #AmDollar
	instanceVariableNames: ''
	classVariableNames: ''
	package: 'Aconcagua-Money'!

!AmDollar methodsFor: 'printing' stamp: 'SeanDeNigris 11/22/2019 22:18'!
printMeasure: aMeasure on: aStream

	aStream nextPut: $$.
	aStream nextPutAll: (aMeasure amount asFloat printPaddedWith: $0 to: 1.2).
	aStream space.
	aStream nextPutAll: self sign! !

"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!

AmDollar class
	instanceVariableNames: 'uniqueInstance'!

!AmDollar class methodsFor: 'accessing' stamp: 'SeanDeNigris 9/9/2020 15:05'!
parser
	^ RxMatcher forString: '\$(\d+(.\d+)?)'.
	"| symbol amount |
	symbol := $$ asPParser.
	amount := #digit asPParser plus, ($. asPParser, #digit asPParser, #digit asPParser) optional.
	^ (symbol, amount flatten) ==> [ :n | n second asNumber dollars ]"! !

!AmDollar class methodsFor: 'accessing' stamp: 'SeanDeNigris 9/9/2020 15:12'!
fromString: aString
	| parser amount |
	parser := self parser.
	(parser matches: aString) ifFalse: [ self error ].
	amount := (parser subexpression: 2) asNumber.
	^ amount dollars.! !

No, it is ok. We use formatters to print measures. I guess it didn't occur to me that it could be done this other way because I'm so used to working with the library the other way.

Did you evaluate adding this message to UnitBehavior?

No. SimpleUnit covered the two cases I needed. Would that be a better place?

Can you open an issue as @gcotelli proposed?

We use formatters to print measures. I guess it didn't occur to me that it could be done this other way because I'm so used to working with the library the other way.

I'm intrigued by this, @fortizpenaloza. Is there any publicly available code I can look at to understand this approach better?

open an issue to better think if we should move something to UnitBehavior
Done. #22

No, just this one https://github.com/ba-st/Buoy/blob/6d01b2e41caba920e1c4edd2fe4933b219234e5b/source/Buoy-Collections/CollectionFormatter.class.st
The simplest way to explain it is that printing is presentation logic. So, the #printOn: is just used in inspectors.
Printing these objects into web views or reports requires, at least for us, many ways to represent them. And since we avoid mix presentation logic into our model, we encapsulate these into formatters.
For example, a price formatter collaborates with a locale (usually the user') to decide where to put the sign. If after or before. And, you can instantiate it configured to show as many decimals as you want.
The context of these decisions is a huge financial application were classes are count by thousands.


[Question]: SD WebUI plugin -- Error Message: connect ECONNREFUSED

Contact Details
No response
What is your question?
The plugins demo for 0.5.0 is amazing, and can't wait to try it.
When I used the SD WebUI plugin, but it seems not work, when I checked the log and found out an error message about ECONNREFUSED:
Error Message: connect ECONNREFUSED <IP_ADDRESS>:7860

Wondering if there is any sepcial config need to be set in docker compose yaml file?
More Details
The SD webui has run with --api --listen arguments and hosted in host <IP_ADDRESS>:7860.
I have used the docker compose and pulled the latest images from dockerhub. For the SD_WEBUI_URL in .env file, I have tried the following values, all got the same error:

http://<IP_ADDRESS>:7860
http://localhost:7860
http://host.docker.internal:7860

I also tried to set the api service in docker compose file to use network_mode: "host", but this will cause the meilisearch error.
What is the main subject of your question?
Installation
Screenshots
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hey thanks for trying out the project!
SD_WEBUI_URL=http://host.docker.internal:7860 did in fact work for me. My docker-compose file is set to the default configuration, with nothing changed.
You're right that it shouldn't work with localhost or <IP_ADDRESS> from inside docker, and I need to update the documentation for this.
The issue you're facing is a common one when working with Docker. The IP address <IP_ADDRESS> or localhost inside a Docker container refers to the container itself, not the host machine. So when your application inside the Docker container tries to connect to <IP_ADDRESS>:7860, it's trying to connect to itself, not your host machine where the API is running.
Usually to resolve:

Use host.docker.internal - worked for me but this didn't work for you for some reason, do you have stable diffusion containerized?

Use the host machine's IP address: You can find this by running ipconfig (Windows) or ifconfig (Unix). Replace <IP_ADDRESS> with this IP in your application.

<IP_ADDRESS> or localhost inside a Docker container refers to the container itself, not the host machine. So, your application in the Docker container is trying to connect to itself, not your host machine where the API is running.

You may also try uncommenting these lines from the docker-compose file (or commenting if they are potentially creating the issue)
 extra_hosts: # if you are running APIs on docker you need access to, you will need to uncomment this line and next
 - "host.docker.internal:host-gateway"

According to ChatGPT:
The extra_hosts directive in a Docker configuration allows you to add entries to the /etc/hosts file in your Docker containers. This can be used to provide custom host-to-IP mappings.
The line - "host.docker.internal:host-gateway" is adding a mapping that resolves host.docker.internal to the IP address of the host machine's network gateway. This is essentially another way to allow a Docker container to communicate with the host machine.
This is particularly useful if you're running Docker in a Linux environment, where the host.docker.internal hostname doesn't work out of the box like it does on Docker for Windows and Docker for Mac.
By uncommenting these lines, you're telling Docker to add an entry to the /etc/hosts file in your container that maps host.docker.internal to the IP address of the host machine's network gateway. This means that from within your Docker container, you can use http://host.docker.internal:7860 to access your API running on the host machine.
However, please note that the host-gateway value for extra_hosts is only available from Docker 20.10 onwards. If you're using an older version of Docker, you might need to manually specify the IP address of the host machine.

Awesome, it works!
I have done the following:

Using SD_WEBUI_URL=http://host.docker.internal:7860 in the .env file
Uncomment the following in docker-compose.yml file

 extra_hosts: # if you are running APIs on docker you need access to, you will need to uncomment this line and next
 - "host.docker.internal:host-gateway"

Thank you so much for the quick response, and detailed explaination!


Add Delete State functionality in java sdk

This method will allow to delete the state
using state address in java sdk
Signed-off-by: Dharam Raj Sharma<EMAIL_ADDRESS>

@Ram-srini On your second point, the list of addresses returned are all of the addresses that have been deleted.  If an address include in the request is not in the response, it most likely did not exist.
As far as validity goes, that result in an Authorization Error (i.e. the user is trying to modify/access an unauthorized address). There is no status specifically for malformed addresses.
This PR is handling both correctly, as far as the protobuf messages are concerned.

This PR will be deprecated by https://github.com/hyperledger/sawtooth-core/pull/1734 and should be made against the Java SDK repo when it is ready: https://github.com/hyperledger/sawtooth-sdk-java

@dharamsh The java sdk has been moved into a separate repo: http://github.com/hyperledger/sawtooth-sdk-java. This Pr should be closed and made against that repo.

Closing due to Java SDK now existing in the other repository.


Complete day 8 exercise

#when I type the letter 't', it takes it as a input and continues when the options given are 'yes' or 'no'
Do you want to do it again? Type 'yes' or 'no' t Type 'encode' to encode a text, or 'decode' to decode it. s Write the text.
----------ex2 Type 'encode' to encode a text, or 'decode' to decode it. g Write the text. 654 Type the shift number. 3 Your gd text is 654 Do you want to do it again? Type 'yes' or 'no' g

Right, this is broken.
What do you suggest would be a good solution? Either break when the user type something wrong, or ask the same question again until the user answers correctly?


Dev/dhruvpra/k8s merge ipu target

We should keep k8s_dp.conf under k8s_dp/mev. This file is not included in P4 repos and is not generated as an artifact.

We are only keeping the source P4 file for user to understand the flow. The other files required for building/compilation are not yet being made available.

Replaced mev with es2k everywhere (within files as well as, in file and directory names)


Stack is not animating after swipe the first two cards

Hey @webraptor thank you for your effort trying to keep this library alive.
I found a weird bug where the stack stops animating (zooming the next cards) after swipe the first two cards.
Take a look to this video:
https://user-images.githubusercontent.com/10704258/132953264-65a11e59-19c2-4334-badb-e1a15bc662d7.mp4

Hey @webraptor & @mariovillamizar I have the exact same bug as you have!

hello guys, same issue here 😢

Unfortunately chances are this repo is not maintained either. Same error by the way, seems to come all the way back from the original repository

@DiegoBM if you fix the issue, please open a PR and it will be reviewed / merged. Thanks

@webraptor after checking it's internals I have decided that I won't be using this component. I'll probably create a new one if I cannot find a suitable alternative.
Regarding the issue, it seems to be related to some change in react native, probably with the introduction of concurrent mode, or the new architecture. It will work all-righ in 0.63, but will stop working in 0.64. My gut feeling tells me that it might be related to this (https://github.com/facebook/react-native/commit/c6b9cc36da4f7d190d05122048aa4ada9c152b73), but I don't know for sure. Also it's probably related to some very brittle timings used in this library, because if you introduce a minor console delay it will start failing in 0.63 as well, but unfortunately I don't have the time to pinpoint the real reason. Anyhow, for those of you who want to stick with this library, the problem is that the state values for "stackPositionN" and "stackScaleN" (N being the position number for each stack card) are not being reseted or recalculated upon stack re-renders, and instead the stack render uses the animated values which might not be final, probably because now with the new architecture and the scheduled concurrent mode, react does not render in a deterministic way, but that's just my guess, I might be wrong. In any case, you can hack your way around it if you create a function that resets those specific state values before the call to "calculateStackCardZoomStyle", then it will work again as intended (Hint: you can use "rebuildStackAnimatedValues" as reference).
Hope it helps.

For those of you who want to stick with this library, the problem is that the state values for "stackPositionN" and "stackScaleN" (N being the position number for each stack card) are not being reseted or recalculated upon stack re-renders. You can hack your way around it if you create a function that resets those specific state values before the call to "calculateStackCardZoomStyle", then it will work again as intended (Hint: you can use "rebuildStackAnimatedValues" as reference).
Hope it helps.

@DiegoBM can you create a pull request for this fix?

for some reason I didn't get the notification back then.

pushed on npm as 2.0.6


Docker swarm

I'm trying to use this plugin in a docker swarm. It works, but I'm facing issues if I move the container running the plugin to another node. The volume created is created per node and is not swarm aware. Is there a way to add swarm functionality to the plugin?

1+

1+


Wrong comments - from previous waypoint

Challenge http://www.freecodecamp.com/challenges/waypoint-generate-random-whole-numbers-within-a-range has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
"// Make myFunction return a random number between zero and nine instead of a decimal"
The above comment does not belong in this waypoint.

This is a duplicate of #1947, see that issue for updates


Add permissions for user plugin's settings

Ability to hide the settings menu items for certain groups of admins.
We needed this ability in our project and found no way of hiding the plugin setting menu while keeping the top menu user item.
So now settings permissions are independant of the user management menu permissions.

LGTM! Thanks!


Init RankLLM

Description
Integrate RankLLM (https://github.com/castorini/rank_llm) into Llamaindex
To reproduce, follow the notebook under examples, rankLLM.ipynb
Fixes # (issue)
New Package?
Did I fill in the tool.llamahub section in the pyproject.toml and provide a detailed README.md for my new integration or package?

[x] Yes
[ ] No

Version Bump?
Did I bump the version in the pyproject.toml file of the package I am updating? (Except for the llama-index-core package)

[ ] Yes
[x] No

Type of Change
Please delete options that are not relevant.

[ ] New feature (non-breaking change which adds functionality)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Added new unit/integration tests
[x] Added new notebook (that tests end-to-end)
[x] I stared at the code and made sure it makes sense

Suggested Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] I have added Google Colab support for the newly added notebooks.
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I ran make format; make lint to appease the lint gods

Thanks @xpbowler  -- do you mind pulling from main to resolve conflicts?

Thanks @xpbowler -- do you mind pulling from main to resolve conflicts?

@nerdai done! I made the changes you suggested, let me know if they are okay.


chore: cleanup set_option linter.deprecated

Remove several uses of deprecated lemmas in non-deprecated lemmas.
Also convert all set_option linter.deprecated false to set_option linter.deprecated false in, so it is easier for us to count via regex what remains.
I think
set_option linter\.deprecated false.*(?:(?:\n/--.*?-/\n(?!.*deprecated))|\n(?!.*deprecated|/--))

is the correct regex to use now: it accounts properly for intervening doc-strings. It now reports that there are only three one! files that use set_option linter.deprecated false on non-deprecated declarations, namely:

Mathlib.Data.List.Permutation (fixed by moving some List theorems earlier)
Mathlib.LinearAlgebra.CliffordAlgebra.Grading (replace AlgHom.map_zero with just map_zero; only costs 2000 heartbeats)
Mathlib.SetTheory.Ordinal.Arithmetic (which is a mess)

There are some slight import increases because I moved some List lemmas around, but these will be undone by https://github.com/leanprover/lean4/pull/6294.


Git tag for v4.1.0 appears to be missing

Hi! I can see commits relating to v4.1.0 on the v4.x branch, however, the specific commit for the v4.1.0 release appears to not be tagged, would you be able to push this git tag? Thanks!

Should be pushed now.

Thanks!


instancing_mesh example crashes with exception

When I try to run the instancing_mesh.py example I get this traceback:
❯ python instancing_mesh.py
Draw error
Traceback (most recent call last):
  File "/home/alan/.local/lib/python3.10/site-packages/wgpu/gui/base.py", line 113, in _draw_frame_and_present
    self.draw_frame()
  File "/home/alan/Documents/PyGFXTests/instancing_mesh.py", line 40, in animate
    renderer.render(scene, camera)
  File "/home/alan/.local/lib/python3.10/site-packages/pygfx/renderers/wgpu/_renderer.py", line 446, in render
    wobject_pipeline, has_changed = ensure_pipeline(self, wobject)
  File "/home/alan/.local/lib/python3.10/site-packages/pygfx/renderers/wgpu/_pipelinebuilder.py", line 36, in ensure_pipeline
    new_pipeline_infos = create_pipeline_infos(shared, blender, wobject)
  File "/home/alan/.local/lib/python3.10/site-packages/pygfx/renderers/wgpu/_pipelinebuilder.py", line 111, in create_pipeline_infos
    pipeline_infos = renderfunc(render_info)
  File "/home/alan/.local/lib/python3.10/site-packages/pygfx/renderers/wgpu/meshrender.py", line 125, in mesh_renderer
    shader.define_binding(0, i, binding)
  File "/home/alan/.local/lib/python3.10/site-packages/pygfx/renderers/wgpu/_shadercomposer.py", line 337, in define_binding
    self._define_buffer(bindgroup, index, binding)
  File "/home/alan/.local/lib/python3.10/site-packages/pygfx/renderers/wgpu/_shadercomposer.py", line 450, in _define_buffer
    fmt = to_vertex_format(binding.resource.format)
  File "/home/alan/.local/lib/python3.10/site-packages/pygfx/resources/_buffer.py", line 121, in format
    self._format = format_from_memoryview(self.mem)
  File "/home/alan/.local/lib/python3.10/site-packages/pygfx/resources/_buffer.py", line 204, in format_from_memoryview
    raise TypeError(
TypeError: Cannot convert 'T{(4,4)f:matrix:I:id:(12)B:_12_bytes_padding:}' to vertex format. Maybe specify format?

The program does not crash if I use a gfx.Mesh instead (but obviously I don't get instancing).

I can reproduce that it's broken. Thanks for reporting!


[Feature]: Add @Inherited to @UsePlaywright

🚀 Feature Request
Hi there,
Im playing around with the new Junit integration and while it works as expected we cannot use it right now within our tests.
We use some abstract super classes and also @Nested classes to group scenarios. @UsePlaywright currently is not @Inherited and therefore during extension disovery it fails at this place com.microsoft.playwright.junit.impl.ExtensionUtils#hasUsePlaywrightAnnotation
Example
No response
Motivation
@UsePlaywright
public class TestExample {
  @Nested
  class Scenario {
    @Test
    void shouldCheckTheBox(Page page) {
      page.setContent("<input id='checkbox' type='checkbox'></input>");
      page.locator("input").check();
      assertEquals(true, page.evaluate("window['checkbox'].checked"));
    }
  }
}

Thanks, @yury-s i can work on this. It's a bit more involved than just adding @inherited. Should have a fix soon.

True I was more thinking about the abstract super class case. :)
Therefore we would need @Inherited I assume based on org.junit.platform.commons.util.AnnotationUtils#findAnnotation(java.lang.reflect.AnnotatedElement, java.lang.Class<A>, boolean, java.util.Set<java.lang.annotation.Annotation>)

@otbe can your provide an example of what you need working? The example you gave above is working without @Inherited after the pull request is merged in.

For example:
@UsePlaywright
public abstract class AbstractBrowserTest {
  // .. some shared test code
}

public class TestFixturesWithNestedClass extends AbstractBrowserTest {

  @Test
  void worksWithOuterClass(Page page) {
    assertNotNull(page);
  }

  @Nested
  class NestedClass {
    @Test
    void worksWithNestedClasses(Page page) {
      assertNotNull(page);
    }

    @Nested
    class DeeplyNestedClass {
      @Test
      void worksWithDeeplyNestedClass(Page page) {
        assertNotNull(page);
      }
    }
  }
}

In our case AbstractBrowserTest has @SpringBootTest, junits @Tag and some shared test code like login(), goToPage(...). I think @Inherited is needed so that AnnotationUtils goes up the tree to our super class.

Ah ok I understand your use case now.  #1515 now also adds @Inherited to the fixture annotation.


weird alpha plume

things to try:
-- train only on the good stars, test on good+bad
-- train on bad, test on bad
-- train on partial regions of the spectrum to see if there are particular regions causing the model to break

can you show me a figure?

The [Ca/Fe] and [Mg/Fe] versus [alpha/Fe] (APOGEE) relations show a large scatter (partially there is a larger offset at lower SNR but also high SNR are offset) > Are the stars that are up in the offset alpha-plume in LAMOST also the ones that are the furthest from the 1:1 relation in the Ca/Fe v. alpha/Fe results from APOGEE (or Mg/Fe v. alpha/Fe) ? I'm wondering what the effect would be if elements dominating the overall alpha/Fe result from APOGEE are dissimilar to the elements that dominate in LAMOST - i.e a potential issue if the scale between individual alpha elements is offset. Had not considered this. Also, the stars that are in the offset alpha-plume do not correspond to the low SNR Apogee stars do they?

I remain concerned that this could be continuum.  I want to see exactly what's being done there.

convergence failure! yay!


ssh key resources

The main idea is to allow ssh key resources, and then locally assemble the cloud init metadata, wrap it into an iso and create a metadata volume for the instance resource uploading this created image.
cloud-init can use this disk as a metadata/userdata source to configure the ssh key.

I'm working on it

I think this can now be closed.


Backup frequency is deceptive

[Where backups are shown "3 times per day" is deceptive as we are keeping the three latest backups however we are performing more backups than 3 per day.]

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 68c3bc03-1207-c0ab-ddff-dc6977d57441
Version Independent ID: f08ab534-2053-89ff-9aa1-cf778abd836d
Content: Backup and restore - Azure Database for PostgreSQL - Single Server
Content Source: articles/postgresql/single-server/concepts-backup.md
Service: postgresql
Sub-service: single-server
GitHub Login: @sr-msft
Microsoft Alias: srranga

@Riflanig Thank you for your feedback. Under the backup frequency section, I am not seeing where it mentioned "3 times per day" maybe I am missing something here. Could you please clarify the ask here? Thank you

Already addressed.

@sr-msft, should this PR be closed?

Yes.

Sorry, I realized belatedly that this is not a PR. I can't close it.

Yes.

Sorry, I realized belatedly that this is not a PR. I can't close it.

#please-close

Thank you Sridhar!
I appreciate you changing it and making it more clear to the end customer!
Best regards,
Rich
From: Sridhar Ranganathan @.>
Sent: Tuesday, June 14, 2022 11:05 AM
To: MicrosoftDocs/azure-docs @.>
Cc: Rich Flanigan @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] Backup frequency is deceptive (Issue #94325)
We perform multiple backups but will retain only 3-4. We will update the doc.

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F94325%23issuecomment-1155318699&data=05|01|Richard.Flanigan%40microsoft.com|200dd9d855ea4adb7f9b08da4e1748ce|72f988bf86f141af91ab2d7cd011db47|1|0|637908159161066611|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=SzpblAN4W5SHy48%2B8EFYM4Cy30LSe2TJABvqJ7FCS34%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAQE36VPVXHDBQXXVZDBB7ULVPCNSTANCNFSM5YVRKBNA&data=05|01|Richard.Flanigan%40microsoft.com|200dd9d855ea4adb7f9b08da4e1748ce|72f988bf86f141af91ab2d7cd011db47|1|0|637908159161076572|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=DUaAsKnJ32rWs3ZP0sA9dQ8Tq4anP%2FnZ%2BRP6awmzNe0%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Yes please 😊
From: Jeff Borsecnik @.>
Sent: Monday, June 20, 2022 4:30 PM
To: MicrosoftDocs/azure-docs @.>
Cc: Rich Flanigan @.>; Mention @.>
Subject: Re: [MicrosoftDocs/azure-docs] Backup frequency is deceptive (Issue #94325)
@sr-msfthttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsr-msft&data=05|01|Richard.Flanigan%40microsoft.com|f7befc7f4ecc41adcb3c08da52fba324|72f988bf86f141af91ab2d7cd011db47|1|0|637913537979087275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=e9Pqw0VXp4a%2FTHpYh5wccsH6ytq7WdhO8vUScbcoyVY%3D&reserved=0, should this PR be closed?
—
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F94325%23issuecomment-1160824258&data=05|01|Richard.Flanigan%40microsoft.com|f7befc7f4ecc41adcb3c08da52fba324|72f988bf86f141af91ab2d7cd011db47|1|0|637913537979087275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=pU2%2FUg7el6rhY%2FhJnZnPRAkHQxLF3D1jSKLp473kVso%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAQE36VOJJFK3PG5ROJZDQ6DVQDIEHANCNFSM5YVRKBNA&data=05|01|Richard.Flanigan%40microsoft.com|f7befc7f4ecc41adcb3c08da52fba324|72f988bf86f141af91ab2d7cd011db47|1|0|637913537979087275|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=YpvXFL%2FL6hBFOYpw8moYz4GefU5TUJfR6EgUuJ0z1OU%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>


loop-watcher: allow null cb

This allows uv_check/prepare/idle_start() to accept a null cb.

I think this would be a backwards incompatible change, to it would need to land on master.
However, I'm -1 on it. What's the motivation? The only handle in which this could make sense is an idle handle, otherwise, if you don't want to run a callback before polling, just don't start a prepare handle! (likewise for check)
Also, idle handles may be going away so that would make the previous point moot.

Also, idle handles may be going away so that would make the previous point moot.

I see @saghul, and will close it. By the way, the reason that I submitted this is to fix something TODO from nodejs which wants to accept nullptr as cb for uv_idle_start() :)


Expose QdrantClient and WeaviateClient as beans

Currently, QdrantClient and WeaviateClient are not exposed as beans. Having access to those would benefit to perform operations with an already configured client.
This would be great for having a actuator module with HealthContributor for each integration.
This is a breaking change but IMHO it is fine for 1.0.0.

Thank you @eddumelendez ,
The QdrantVectorStoreCloudAutoConfigurationIT is failing for me

Thank you again @eddumelendez
I've added some documentation updates for the qdrant and weaviate stores.

Rebased, squashed and merged at 5beef21a4eca4fff54a4a8395419fbf36acf60cc
Additionally deprecate the qdrant config class and update the qdrant and weavient documentation.


straw man new protocol

It's stateless and that's a good thing.
Signed-off-by: Ronald G. Minnich<EMAIL_ADDRESS>

https://sevki.io/np.html

Sounds good Ron.  Looking forward to seeing it in action!  Just a couple of notes from a first read:

3rd para - mentions both NP and N9P - better to stick to NP I think?
Does the structure of the stat response need to be more precidely defined?  Shouldn't stat also return size?


Allow setNext if the MediaProduct subtype is different

Context
Recently we added an optimization to filter out repeated calls to setNext with the same MediaProduct
But an edge case could occur if the client calls setNext() for the same MediaProduct.productId, but offlined or viceversa.
We want to accept that setNext() call and update the next PlayerItem in the PlayerEngine.
Description
In this case, the subtype would be different (StoredMediaProduct and MediaProduct) so I added and extra check to the MediaProduct Equatable conformance to check the subtype.
I also added two new tests::

test_setNext_repeated_is_ignored()
test_setNext_same_product_but_stored()

I've just added a minor comment. Big thanks for adding related tests! 🙌
Overall I am wondering if it's good call to have the fix at the player level at all, just due to ramifications of such decision compared to keeping the responsibility to caller. Probably it's good to have such optimization in both player and caller, just not sure it outweighs the other scenarios we need to check from this point on - such as this one, not sure we could be missing any more.
Anyway, I'm approving since the bug is present.

I've gone back to this, and I think this case solved here would be weird to be handled at the caller end with our current API.
Let's say a user starts playing a collection and also starts downloading it. The next item is set, but while the current item is playing the next item is downloaded.
So, as a summary, the player engine internally has this:
currentItem = MediaProduct(1)
nextItem = MediaProduct(2)

With the current implementation, If the caller does a setNext(StoredMediaProduct(2)) it will be ignored, and the next item will still be streamed. The caller would need to do setNext(nil) && setNext(StoredMediaProduct(2)) for it to work, which I think is very weird.

With this change, If the caller does a setNext(StoredMediaProduct(2)) it will change the next item for the stored one, and play locally.


Update clients.md

Adds the Thunderbird client

I'm afraid we can't in good conscience recommend or endorse using Thunderbird as an IRC client; it has too many problematic behaviours and just isn't sufficiently functional.

too many problematic behaviours

For example?

@vitaly-zdanevich, see https://github.com/Libera-Chat/libera-chat.github.io/issues/368#issuecomment-2254675678 for an explanation.


Unable to run the package due to pandas issue. I am attaching the screenshot for the error generated.

Hi,
did you try installing pandas separately?
Were you able to install PyWGCNA without any errors?

Dear Author
I tried install version 1.4.4, 1.5.3, 2.1.0 seperately without any success.
The PyWGCNA installation does not throw any error. Currently, I am trying to install all requirements seperately.
Will update if it works.

Dear Author
I think the Python version 3.10.13 does not have any issue with installing pandas version 2.1.1. May be a bug with other python version. It would be helpful if compiling the requirements with python version 3.10.13. I have not tried other higher versions but hopefully they will work.
regards
Tanuj

Hi @tanush84 ,
Sorry, I couldn’t catch the problem here.
were you able to execute pip install PyWGCNA -U without any error? if yes which version of pandas were installed along with PyWGCNA?

Hello @nargesr ,
Yes I was able to install the PyWGCNA without any error. It worked by initially created conda environment using python version 3.10.13.
Then I installed pandas version 2.1.1 using conda install -c conda-forge pandas==2.1.0.
Then I install PyWGCNA using Pip
pip install PyWGCNA

Hi,
and you couldn’t import pyWGCNA and pandas packages in your notebook?
I feel like that is your conda environment. I tried to install PyWGCNA using Python 3.9/10/11 and everything was fine


Add installation instructions for Ubuntu 19.10 Eoan Ermine

Released on October 17, 2019.
Basically take instructions for 19.04 and replace "Ubuntu 19.04" with "Ubuntu 19.10".

Let's skip this. EOL in July, 2020.


KeyError: 'xtick.labelcolor'

matplotlib==3.3.4. Require a minimum version of matplotlib module.

sorry, this error is raising in matplotlib==3.3.4. And the minimum version of matplotlib and python is 3.4.0 and py37.


make core interface accessible from outside

This patch would enable us to integrate probe-rs into our own solution that has to manage low-level and high-level access differently that is currently possible with a Session.
Closes #1713

I think the idea is okay, but please clean up the CI failures (changelog, formatting, docs) and also remove the re-exports from the crate root that became redundant.

Can you share more info on what your use case is and why the existing public API is not solving it? I'd feel more comfortable trying to extend the public API to work for more use cases, instead of publically exposing private inner guts.

(I'm a coworker of @maxd-nordic)
We're currently using the J-Link SDK in our tools, so we need to integrate probe-rs in a way which is compatible with that. We need to use functionality from the Core interface, such as halt or reading registers, but we can't use the Session struct.
The Session tries to do too much for our use case, we need more control over the different steps. Ideally we would be able to first connect to the debug port, so we get an ArmCommunicationInterface<_>, and then we could connect to a core separately.

I think the idea is okay, but please clean up the CI failures (changelog, formatting, docs) and also remove the re-exports from the crate root that became redundant.

Could one of you maybe help me with this? I'm not sure if I understand probe-rs well enough to add the missing docs. Would removing the re-exports mean changing all over probe-rs to replace things like crate::MemoryMappedRegister with crate::core::MemoryMappedRegister? @Tiwalun @bugadani

Can you share more info on what your use case is and why the existing public API is not solving it? I'd feel more comfortable trying to extend the public API to work for more use cases, instead of publically exposing private inner guts.

I would like to intervene in the discussion, even though I am not part of the author team of this PR. The question you raised, which this PR aims to address, is much broader and more significant than just accessing the public API.
I say this based on my experience in implementing a pair of NXP ARMs, just like the author of the PR, I actually use the lower-middle level probe-rs, otherwise I get an unexpected behavior.
In my opinion, it is not possible to generalize programming methods (such as connect-attach, halt, run, etc.) across ARM controllers core. These methods are specific to families of a particular vendor and require the use of ARM core methods combined with vendor-specific register methods. The combined code will implement traits like the attach method, but this is just my opinion. Currently, this is addressed by the debug sequence, but this may not be sufficient in the near future. In other words, the attach (session) function currently performs a role that is typically handled by the connect function in flash-programmer libraries, but  is too generalized and will need to be refined as new requirements emerge, such as adding the debug sequence trait. But it will break down the moment you come across a controller vendor that requires a completely different sequence of actions.
The simplest solution, but not the fact that it is the most effective, is that at the on level the developer has an API for all tools-structs from bottom to top, implements some kind of interface trait with a set of methods for a specific family of vendor-name controllers.
There are significant architectural considerations to be made in this regard, in my humble opinion.

Can you share more info on what your use case is and why the existing public API is not solving it? I'd feel more comfortable trying to extend the public API to work for more use cases, instead of publically exposing private inner guts.

I would like to intervene in the discussion, even though I am not part of the author team of this PR.
I believe it is not possible to generalize programming techniques for ARM controllers since they are specific to specific vendor families and require vendor specific kernel and register methods. The current approach is using the Attach etc. methods and adding a debug sequence for the Attach etc specialization. family will not always work. Therefore, we need public access, ideally to everything, so that we can build a combined one (ARM core + specified vendor) at the middle-upper level.


Sessions with active transactions being reused with AsyncTransactionManager

When using AsyncTransactionManager in a multi-threaded environment, I often get the following error when calling commitAsync():
commit can only be invoked if the transaction is in progress. Current state: ROLLED_BACK

Stepping through with a debugger, it appears that this is due to invalidate() being called on the active transaction in the session when calling beginAsync() on a separate AsyncTransactionManager instance. The implication here is that the session is being reused for this new transaction despite having an existing transaction that's still active.
One interesting point is that the transaction state of the AsyncTransactionManager instance is actually STARTED at this point. It's the delegate transaction manager that has a transaction state of ROLLED_BACK.
Environment details

API: Spanner
OS type and version: Linux (Debian Trixie)
Java version: 17
version(s): 6.74.0

Steps to reproduce

Use AsyncTransactionManager as described in the example in the documentation for DatabaseClient.transactionManagerAsync() in a multi-threaded environment.

Stack trace
Caused by: java.lang.IllegalStateException: commit can only be invoked if the transaction is in progress. Current state: ROLLED_BACK
	at com.google.common.base.Preconditions.checkState(Preconditions.java:512)
	at com.google.cloud.spanner.AsyncTransactionManagerImpl.commitAsync(AsyncTransactionManagerImpl.java:118)
	at com.google.cloud.spanner.SessionPoolAsyncTransactionManager.lambda$commitAsync$1(SessionPoolAsyncTransactionManager.java:192)
	at com.google.api.core.ApiFutures$5.apply(ApiFutures.java:367)
	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:224)
	at com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture.doTransform(AbstractTransformFuture.java:211)
	at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:124)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1298)
	at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:762)
	at com.google.common.util.concurrent.AbstractTransformFuture.create(AbstractTransformFuture.java:44)
	at com.google.common.util.concurrent.Futures.transformAsync(Futures.java:453)
	at com.google.api.core.ApiFutures.transformAsync(ApiFutures.java:362)
	at com.google.cloud.spanner.SessionPoolAsyncTransactionManager.commitAsync(SessionPoolAsyncTransactionManager.java:187)
	at com.google.cloud.spanner.TransactionContextFutureImpl$AsyncTransactionStatementImpl$2.onSuccess(TransactionContextFutureImpl.java:165)
	at com.google.api.core.ApiFutures$1.onSuccess(ApiFutures.java:89)
	at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1135)
	at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
	at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1298)
	at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:762)
	at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1101)
	at com.google.api.core.ApiFutures.addCallback(ApiFutures.java:79)
	at com.google.cloud.spanner.TransactionContextFutureImpl$AsyncTransactionStatementImpl.commitAsync(TransactionContextFutureImpl.java:153)
...

Additional information
The only reason I'm using AsyncTransactionManager directly as opposed to AsyncRunner is to work around #2698. Ideally AsyncRunner would be truly asynchronous/non-blocking rather than just making blocking calls in another thread.

This turned out to be an issue in my Kotlin adapter.


move add and remove members to use wallet addresses

closes #357

slight refactor to retry_async to allow retrying functions that accept a mutable ref
remove add_members_by_installation_id and remove_members_by_installation_id
wallet_address stored on intent instead of KeyPackages
key packages are fetched while getting publish intents
simple validation of Ethereum addresses in xmtp_cryptography (Does not cover EIP-55)

I accidentally pulled some changes from #354 from proto, so this should be merged after that (just some changes to GroupMembership names/tests that need to be merged in)

I think something must have gotten miscommunicated in the goals here. We do need some mechanism to add members by installation_id. This is necessary to add new devices to a conversation, and to support revocation.
What we're hoping to achieve here is that when you are adding or removing a member by wallet address we look up the full list of installation_ids to add/remove at the last possible moment to ensure no changes slip in between the intent being created and being fulfilled.

What we're hoping to achieve here is that when you are adding or removing a member by wallet address we look up the full list of installation_ids to add/remove at the last possible moment to ensure no changes slip in between the intent being created and being fulfilled.

So essentially we still want to get key_packages and the resulting installation_ids in get_publish_intents, but still want to add members by addr or installation id?
If so, we could TLS serialize an enum of WalletAddress or InstallationId that sits in the proto definition as bytes, and deserialize it in that fn to use the correct API method that gets the right KeyPackages. This way we can still add and remove members by address or installation ID


Port mapping problems when using wormhole pattern

I've encountered a couple of problems when running in a Docker-in-Docker environment when the using the 'wormhole' pattern. In this context, our test is executed inside a container, and all containers are created as siblings (alongside it).
The biggest problem is that the port mapping seems to be incorrect - get_exposed_port returns the original port when running inside a container:
https://github.com/testcontainers/testcontainers-python/blob/dc956ccd2f7ee80964201eba2f713d6b3379b74c/testcontainers/core/container.py#L89-L93
In testcontainers-java we don't have such a branch and it works well in all contexts I'm aware of. I can't really see the reason for the branch.
I'd be keen to submit a pull request, but want to check whether there's a specific reason for the current code path in case we break a usage I'm not aware of!

@rnorth Does #85 address this issue?

@rnorth, closing this issue for now. Feel free to reopen if it continues to be a problem.


MINOR: [Go] Schema: NumFields

Expose the number of fields in a schema for iteration over fields.

Rationale for this change
Previously if one wanted to iterate over the fields in the schema you would call the Fields() function and just iterate over the slice. However, due to this commit there is now an allocation and copy that happens when that's called. So to iterate over the fields without allocations one now must use the Field(i int) method; however that means a user must already know exactly how many fields are in the schema which isn't possible today.
This adds a simple NumFields() int method that returns the number of fields in a schema to allow a user to iterate over all the fields without having to copy them.
What changes are included in this PR?
Single function added NumFields() int to schema
Are these changes tested?
N/A
Are there any user-facing changes?
Yes this is a new API

Could you open a new issue for non-MINOR change instead of using MINOR:  title?
See also our MINOR definition: https://github.com/apache/arrow/blob/main/CONTRIBUTING.md#Minor-Fixes

Could you open a new issue for non-MINOR change instead of using MINOR:  title? See also our MINOR definition: https://github.com/apache/arrow/blob/main/CONTRIBUTING.md#Minor-Fixes

Ah my bad, missed that. Will open

This addresses #36384


Failed to build mysql image

Got an error while building mysql container.
Building mysql
Step 1 : FROM mysql:5.6
 ---> f2e8d6c772c0
Step 2 : WORKDIR /tmp
 ---> Using cache
 ---> b2d9ee1b51c6
Step 3 : ADD registry.sql r.sql
 ---> Using cache
 ---> a9db36d6883f
Step 4 : ADD docker-entrypoint.sh /entrypoint.sh
 ---> Using cache
 ---> 38d713fa7c9c
Step 5 : RUN chmod u+x /entrypoint.sh
 ---> Running in c1a9dc53f62e
ERROR: Service 'mysql' failed to build: Container command '/bin/sh' not found or does not exist.

I tried to figure out what's going on and found that if line RUN chmod u+x /entrypoint.sh commented image builds fine.
Client:
 Version:      1.11.0
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   4dc5990
 Built:        Wed Apr 13 19:36:04 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.11.0
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   a5315b8
 Built:        Mon Apr 18 19:19:21 2016
 OS/Arch:      linux/amd64

docker-compose version 1.7.0, build 0d7bf73
docker-py version: 1.8.0
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1j 15 Oct 2014

@yurinnick  Could you run docker daemon in the debug mode and provide its logs?

@ywk253100 looks like it's host specific docker issue. A few days ago I started to use docker for mac beta and now I can't spin up mysql because docker show that all layers downloaded, but they are not. On another host with docker for mac beta it works fine.

Thanks @yurinnick , I'm closing this issue


Configuration schema generator: fix missing cref inside para tag

Description
Ported fix from https://github.com/SteeltoeOSS/Steeltoe/pull/1358 back to Aspire.
Checklist

Is this feature complete?

[x] Yes. Ready to ship.
[ ] No. Follow-up changes expected.

Are you including unit tests for the changes and scenario tests if relevant?

[x] Yes
[ ] No

Did you add public API?

[ ] Yes

If yes, did you have an API Review for it?

[ ] Yes
[ ] No

Did you add <remarks /> and <code /> elements on your triple slash comments?

[ ] Yes
[ ] No

[x] No

Does the change make any security assumptions or guarantees?

[ ] Yes

If yes, have you done a threat model and had a security review?

[ ] Yes
[ ] No

[x] No

Does the change require an update in our Aspire docs?

[ ] Yes

Link to aspire-docs issue:

[x] No

Microsoft Reviewers: Open in CodeFlow

/cc @eerhardt

/azp run

/azp run

/azp run

/azp run


tracing: Use openapi definition for service to enhance tracing information

As mentioned by @rshriram in https://github.com/envoyproxy/envoy/pull/1858#discussion_r145196231 it would be good to use an openapi description of the service to enhance the tracing information.
This could include:

setting the operation name to the operationId, or if not available, the method and path template
using any path parameters to extract the parameter values and associate them as tags with the span

Istio is starting to add support for OpenAPI. See github.com/istio/api/mixer/v1/config/client/api_spec.proto for the normalized specification which should support most any HTTP based API spec, e.g. OpenAPI2, OpenAPI3, and gRPC. To give an idea of how this is used, see the corresponding path (uri_template) matching code under https://github.com/istio/mixerclient/tree/master/api_spec.
We could consider adding the equivalent as a filter in Envoy. It would be useful for other API related features as well, e.g. quota.

@ayj Is this information going to be used to enrich the tracing span data in the mixer?


Properly close files served by debug HTTP server.

Also add mime types for files in debug HTTP server to get rid of warnings in firefox mentioning performance loss when no mime type is given for wasm files.
Fixes #35036

Thanks!


require firebase-functions throws UnhandledPromiseRejectionWarning

Environment details

OS: MacOS Mojav 10.14.3
Node.js version: v11.8.0
npm version: 6.8.0
@google-cloud/functions-emulator version: 1.0.0-beta.5

Steps to reproduce

Create a file as such
const functions = require('firebase-functions'); exports.helloWorld = (req, res) => res.send("Hello, World!"); and comment the require functions.
deploy functions start && functions deploy helloWorld --trigger-http -> deploy successful.
un-comment the require functions
deploy functions start && functions deploy helloWorld --trigger-http -> deploy Fails. throws an error

Warning: You're using Node.js v11.8.0 but the Google Cloud Functions runtime is only available in Node.js 6 and Node.js 8. Therefore, results from running emulated functions may not match production behavior.
Copying file:///var/folders/5z/r24zhntn759gj_m8ywv_m0tr0000gn/T/tmp-9639ai20X1swzyN3.zip...
Waiting for operation to finish...done.
Deploying function......(node:9640) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED <IP_ADDRESS>:8008
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1083:14)
(node:9640) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:9640) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Referencing a stack overflow issue I found
https://stackoverflow.com/questions/52897944/unable-to-deploy-firebase-functions-in-functions-emulator


WinRM upload Base64 decode memory issue

As requested by Matt Wrock on Chef Discourse (https://discourse.chef.io/t/winrm-transport-decode-base64file-outofmemoryexception/7683), this is to flag a memory issue with the base64 decode process in winrm-fs, to ensure it's "on the radar" for investigation.

I keep encountering a Powershell OutOfMemoryException when trying to converge a node.  The error message is:
   Creating the scheduled task.
   SUCCESS: The scheduled task "chef-tk" has successfully been created.
   Transferring files to <SQL-windows-2012r2>

------Exception-------
Class: Kitchen::ActionFailed
Message: Failed to complete #converge action: [[WinRM::Transport::FileTransporter] Upload failed (exitcode: 1)
Exception of type 'System.OutOfMemoryException' was thrown.
At line:3 char:66

function Decode-Base64File($src, $dst) {folder (split-path $dst);sc -force
-Enco ...

    + CategoryInfo          : OperationStopped: (:) [], OutOfMemoryException
    + FullyQualifiedErrorId : System.OutOfMemoryException

]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

The Chef run (using chef_zero_scheduled_task) transfers a 21MB base64-encoded file to the node and the error occurs when the file is decoded.  The file contains all the cookbooks required for the Chef run.

The memory exception occurs in both v1.0.2 and v1.0.3 of winrm-transport.  The node's Powershell MaxMemoryPerShellMB setting is 1024MB (the default) and the node has 2GB of memory allocated.  I've monitored the memory usage during the run and observed that the available memory decreases rapidly when the Powershell decode process runs.

Same issue here transferring a 67MB file.
I would guess it has more to do with the memory allocated to the WinRM service on the destination box than the powershell remote settings, but I could be totally off-base here. That said @mwrock is more of an expert here.

Seeing this one as well

Seeing this consistently when trying to converge on a Windows 2012 server instance. I've attempted adding more memory to the VM and increasing MaxMemoryPerShellMB, but neither seem to suffice.

@rmulley we have made significant changes to how this all works in v1.0 of winrm-fs. So answers to the following would be very helpful:

Are you running winrm-fs 1.0?
Is the node 2012 or 2012R2? If 2012, which WMF are you running (3 is the default)
Have you made any change to the max memory per shell on the node?
Whats the payload size of the files being copies? Are these public cookbooks?

Thanks!

Thanks for responding, here's the requested info:

Yes running winrm-fs 1.0.0.
Node is 2012R2.
I increased max memory per shell to 4096 with Set-Item wsman:localhost\Shell\MaxMemoryPerShellMB 4096
These are private cookbooks. The pwd is being copied to a Windows machine in Google Compute Engine from TravisCI. The pwd is about 250mb, but I've also added files to my chefignore file to make this smaller.


This page can't be opened => https://create-react-app.dev/

This page can't be opened

@yangjinlin-ops It opens as expected for me 🤔


Check that doc exists before calling doc.mozHidden

Gee sorry, was supposed to create the PR on my repo..


mapping host ip to host name

fetch host_name tag value
mapping host ip to host name

update anomaly

update forecast


Retrieving phonegap-template-hello-world using npm

C:\myapplication>phonegap create helloworld
Creating a new cordova project.
Retrieving phonegap-template-hello-world using npm...
C:\myapplication>

Not sure what your issue is as the hello world template is supposed to be fetched using npm when creating a new project.
Can you clarify what is not working as expected?
Is it not fetching the template and creating the app?

Morning,
Creating the app is the one which is not working, have note that the folder
will be created but certain folder called cordova  is  not there from the
folder. The below are the screen short of the command and the folder
created .
[image: Inline image 1]
C:\helloword>phonegap create helloworld
Creating a new cordova project.
how should be successfully message  look like.
thanks
On Sep 5, 2016 7:00 AM, "tommy-carlos williams"<EMAIL_ADDRESS>wrote:

Not sure what your issue is as the hello world template is supposed to be
fetched using npm when creating a new project.
Can you clarify what is not working as expected?
Is it not fetching the template and creating the app?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/phonegap/phonegap-cli/issues/645#issuecomment-244659137,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AS4MuI7vDbHiiL3wZSQRKISAxc4-n-QQks5qm6H4gaJpZM4J0ixi
.

@makondemwale I am not seeing the image, but this is what a basic hello world app folder structure should look like:

Morning,
OK, after project is created I cant  see the folder called Cordova in my
project folder. if Cordova  folder is not there is it not problem ??
On Sep 6, 2016 4:25 AM, "tommy-carlos williams"<EMAIL_ADDRESS>wrote:

@makondemwale I am not seeing the image, but this is what a basic hello
world app folder structure should look like:
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

There should not be a folder called Cordova. The directory structure shown above is what you should see once you add this template.

There used to be a hidden folder called .cordova once upon a time, but it has been phased out.

Looks like there is no actual issue in here. Closing.


Datetimepicker sample not working as expected?

Hi guys!
I have been locking at the datetimepicker sample
http://angular-formly.com/#/example/other/date-time-picker
If you set a datetime model at startup the Date part of the model is not updated on the UI, only until you make a change on the UI (change the time) the date part is reflected.
Do anyone know if if is a formly problem or a angular-datetimepicker problem?
Thanks!

Seems to be more angular-datetimepicker issue.

Bug description:
Initial value is not populating when load be modal (ng-modal)
Link to minimally-working plunker that reproduces the issue:
http://jsbin.com/yesayiwowi/edit?html,js,output
Try giving initial value to model e.g.
vm.model = {"datetime": "2016-07-04T14:00:00.000Z"};
#####Fix (ui.bootstrap.datetimepicker) -> template -> controller after line 178
if ($scope.ngModel) {
// convert from ISO format to Date
if (!($scope.ngModel instanceof Date)) $scope.ngModel = new Date($scope.ngModel);
}


Tengine Reshape offset_re_shape has incorrect value

Tracking OAID/Tengine#261

netron_issue_466.tmfile.zip

detect_tflite_issue_466.zip


Use PSRule security audit tool and only test new bicep

This changes the security testing to only test infra/main.bicep because at the moment it's picking up the ARM-compiled files in the project root and the ones in infra/PrevVersion.
It will close half of the active security issues on this project (which are duplicates)

Thanks @tonybaloney will merge this. @sajeetharan please pull this latest into your branch before submitting PR on your changes.


Fixes hanging on sleep_ms() after deep sleep

As documented in this repo for example: https://github.com/ghubcoder/PicoSleepDemo

A simple modified hello_sleep.c to reproduce the original problem and test this fix:
/**
 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <stdio.h>
#include "pico/stdlib.h"
#include "pico/sleep.h"

#include "hardware/rtc.h"

static bool awake;

static void sleep_callback(void) {
    printf("RTC woke us up\n");
    awake = true;
}

static void rtc_sleep(void) {
    // Start on Friday 5th of June 2020 15:45:00
    datetime_t t = {
            .year  = 2020,
            .month = 06,
            .day   = 05,
            .dotw  = 5, // 0 is Sunday, so 5 is Friday
            .hour  = 15,
            .min   = 45,
            .sec   = 00
    };

    // Alarm 10 seconds later
    datetime_t t_alarm = {
            .year  = 2020,
            .month = 06,
            .day   = 05,
            .dotw  = 5, // 0 is Sunday, so 5 is Friday
            .hour  = 15,
            .min   = 45,
            .sec   = 10
    };

    // Start the RTC
    rtc_init();
    rtc_set_datetime(&t);

    printf("Sleeping for 10 seconds\n");
    uart_default_tx_wait_blocking();

    sleep_goto_sleep_until(&t_alarm, &sleep_callback);
}

int main() {
    while(1)
    {
        stdio_init_all();
        printf("Hello Sleep!\n");

        printf("Switching to XOSC\n");

        // Wait for the fifo to be drained so we get reliable output
        uart_default_tx_wait_blocking();

        // UART will be reconfigured by sleep_run_from_xosc
        sleep_run_from_xosc();

        printf("Switched to XOSC\n");

        awake = false;

        rtc_sleep();

        // Make sure we don't wake
        while (!awake) {
            printf("Should be sleeping\n");
        }

        printf("Gonna go sleep_ms for 5 sec\n");
        sleep_ms(5000);
        printf("Done, restart!\n");
    }
}


COM Send example needed

Suggestion
First of all I love windows-rs and have been using it successfully for a while. But I find myself needing to send a COM object to another thread and am a bit puzzled. I apologize if I'm missing something obvious.
The ability to safely send COM objects across thread or even process boundaries seems to be a heavily advertised feature of COM going way back to before rust even existed.
If I just try to send the IUri from the COM example I get an error:
error[E0277]: `NonNull<c_void>` cannot be sent between threads safely
    --> src/main.rs:39:41

I vaguely recall something about marshalling COM objects, so I marshal the object (see the crate code from the form), but I get the same error. Now it's just an IStream that contains the IUnknown. Should IStream be Send? It seems like Marshaled COM object IStreams are safe to send but arbitrary IStreams are not.
Is there an example of sending a COM object to another thread in rust somewhere? I wound up wrapping marshal / unmarshal in my own abstraction here and declaring that as Send. Is that the way to go?
Main.rs below:
use windows::core::*;
use windows::Win32::System::Com;
use windows::Win32::System::Com::IStream;
use windows_result::Result;

struct MarshalledComPtr<T: windows::core::imp::CanInto<IUnknown> + Interface> {
    stream: IStream,
    phantom: std::marker::PhantomData<T>,
}

impl<T: windows::core::imp::CanInto<IUnknown> + Interface> MarshalledComPtr<T> {
    fn new(iface: &T) -> Result<Self> {
        unsafe {
            Ok(Self {
                stream: Com::Marshal::CoMarshalInterThreadInterfaceInStream(&T::IID, iface)?,
                phantom: std::marker::PhantomData,
            })
        }
    }
    fn take(self) -> Result<T> {
        unsafe { Com::Marshal::CoUnmarshalInterface(&self.stream) }
    }
}

unsafe impl<T: windows::core::imp::CanInto<IUnknown> + Interface> Send for MarshalledComPtr<T> {}

fn main() -> windows::core::Result<()> {
    unsafe {
        Com::CoInitializeEx(None, Com::COINIT_MULTITHREADED).unwrap();

        let uri = Com::CreateUri(
            w!("http://kennykerr.ca"),
            Com::URI_CREATE_FLAGS::default(),
            0,
        )?;
        // error: uri is not Send due to IUnknown
        //let joiner = std::thread::spawn(|| my_thread(uri));

        // error: stream is not send due to IUnknown
        //let stream =
        //    Com::Marshal::CoMarshalInterThreadInterfaceInStream(&Com::IUri::IID, &uri).unwrap();
        //let joiner = std::thread::spawn(|| my_thread_marshalled(stream));

        // okay
        let muri = MarshalledComPtr::new(&uri).unwrap();
        let joiner = std::thread::spawn(|| my_thread3(muri));

        _ = joiner.join();

        let domain = uri.GetDomain()?;
        let port = uri.GetPort()?;

        println!("{domain} ({port})");
        Com::CoUninitialize();
        Ok(())
    }
}

fn my_thread(uri: Com::IUri) {
    unsafe {
        Com::CoInitializeEx(None, Com::COINIT_MULTITHREADED).unwrap();
        println!("domain from the other side {:?}", uri.GetDomain());
        Com::CoUninitialize();
    }
}

fn my_thread_marshalled(stream: Com::IStream) {
    unsafe {
        Com::CoInitializeEx(None, Com::COINIT_MULTITHREADED).unwrap();
        let uri: Com::IUri = Com::Marshal::CoUnmarshalInterface(&stream).unwrap();
        println!("domain from the other side {:?}", uri.GetDomain());
        Com::CoUninitialize();
    }
}

fn my_thread3(stream: MarshalledComPtr<Com::IUri>) {
    unsafe {
        Com::CoInitializeEx(None, Com::COINIT_MULTITHREADED).unwrap();
        let uri = stream.take().unwrap();
        println!("domain from the other side {:?}", uri.GetDomain());
        Com::CoUninitialize();
    }
}

Thanks for the kind words. The AgileReference helper exists for this purpose.
https://docs.rs/windows-core/0.58.0/windows_core/struct.AgileReference.html
You can do it manually but that's a lot harder. Note also that some COM interface pointers cannot be marshaled. On the other hand, if an object implements IAgileObject then it doesn't need to be marshaled at all. The nice thing about AgileReference is that it goes through all the possibilities and picks the most efficient path. Here's an example:
[dependencies.windows]
version = "0.58"
features = [
    "Foundation",
    "Win32_System_Com",
]

use windows::{core::*, Foundation::*, Win32::System::Com::*};

fn main() -> Result<()> {
    unsafe {
        println!("primary thread: {:?}", std::thread::current().id());
        CoIncrementMTAUsage()?;
        let uri = Uri::CreateUri(h!("http://kennykerr.ca"))?;
        let agile = AgileReference::new(&uri)?;
        std::thread::spawn(|| other_thread(agile)).join().unwrap();
        Ok(())
    }
}

fn other_thread(agile: AgileReference<Uri>) {
    println!("other thread: {:?}", std::thread::current().id());
    let uri = agile.resolve().unwrap();
    let domain = uri.Domain().unwrap();
    let port = uri.Port().unwrap();
    println!("{domain} ({port})");
}


Video CORS issue

Trying this code:
source.crossOrigin = 'anonymous';
let texture = new PIXI.Texture.from(source);
video = new PIXI.Sprite.from(texture);
app.stage.addChild(video);

where source is a HTML video element already present on the page i get a CORS error.
The video is loaded from a cdn (Akamai).
I tried with solutions from older threads but nothing solved. I need to load the video from the HTML element to control it with the player.
There is something I can do?
Thank you very much

maybe related to #5920

i discovered that in my case the problem was setting the crossOrigin attribute AFTER the video src setting.
Because i was using jwplayer as video player, i've customized jwplayer in order to add the attribute before loading the video. Not tested with every browser yet

Useful to know, thanks for posting your solution!