Error in a code example in the Iterators document

There is an error in the code example under the text "The compiler translates the first asynchronous sample into something similar to this construct:"
Instead of GetEnumerator the correct is GetAsyncEnumerator, and instead of MoveNext the correct is MoveNextAsync.

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

ID: e8ba3a4c-1796-84b8-4152-b9806483ce86
Version Independent ID: bd878489-9a4c-6d99-6c4c-c56e0387012b
Content: Iterators
Content Source: docs/csharp/iterators.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Thanks for pointing this out @theodorzoulias
I've added it to our backlog to update when we next update this article. I've also added the "up for grabs" label for any community members that want to provide a PR before we make these updates.


Remove rewrite rule API with default assumptions about skip remaining rules

Changes an important, common use-case. When defining rewrite rules explicitly, the .Add(string regex, string replacement) API should default to setting skipRemainingRules = true.
Consider the following code and graph:
var option = new RewriteOption();
// where N is the x-axis on the graph
for(var tenant = 1; tenant <= N; tenant++)
{
   option.Add($"app/{tenant}/(.*)", "/common/$1?tenantid=" + tenant);
}

When skipRemainingRules=false, we get the the performance shown on the orange line.
This is a perf hit of -75% raw throughput for all requests, not just the rewritten ones.
With skipRemainingRules=true (proposed default), we get the the performance shown on the yellow line (only ~7% perf hit).
The overload .Add(string regex, string replacement, bool skipRemainingRules) is still available for the less-common case of wanting chained rewrite rules.
cc @Tratcher @mikaelm12

may not match customer expectations.

I don't have any data on what customers would expect by default from the API, but I think the perf pit of failure is big enough to warrant the change regardless.

Your test case also assumes the first rule matches and short circuits. On average you'll have to go through at least half of the rules.

Yeah, not sure how I feel about defaulting to skipping the remaining rules but that chart is pretty scary.

I've added the average case (green line)

Another proposal: we remove the .Add(string,string) API altogether which requires callers to explicit opt-in/opt-out to the "skipRemainingRules" behavior. Thoughts @glennc @davidfowl @muratg @Eilon ?

I like this more than skipping by default.

Removing the overload seems reasonable to me too.
I'd like to see the perf impact with 20-30 rules and see if it's impactful enough.

BTW did we already do the thing about $ and ^ in the regex? Because I suspect that could itself have a huge impact on perf and affect all other perf decisions.

Do you mean adding those characters to the regex str (if they're not already there?)

I am ok with adding an overload later if we don't know what we should be defaulting it to right now. We can look at what people say and add the overload later if people want it.

@Eilon did we already do the thing about $ and ^ in the regex?

It's the light gray line in this chart above: https://github.com/aspnet/BasicMiddleware/pull/105#issuecomment-248717373 Compare with the blue line. It makes very little difference.

@glennc I am ok with adding an overload later if we don't know what we should be defaulting it to right now. We can look at what people say and add the overload later if people want it.

:+1: I'll update this PR to just remove the overload then.

:up: :date:

Looks good to me 👍

Looks good to me.

IIS and Apache chain by default.

I think this is worth discussing again after we do more perf improvements. Opened https://github.com/aspnet/BasicMiddleware/issues/112. But i'm gonna merge this as it's easier to give API than to take away.


Shop Endpoints

Will be starting with creating the shop endpoints for the company.
This would also entail the ability to purchase from the shop.
This is here so that the team can see it is busy being done. Will be goiing with what is in the docs file. Anything added will be mentioned in here (or anything that would be required).

Will be starting with this

Created shop endpoints are uploaded. Made a PR that can be merged with the rest of the project so long (if need be).

GET /shop should have a default value that is not None

GET /shop sort params should have a default value that is not None

Fixed this.


Timer customization

Add extension points to customize the handling of the Timed annotation.

Move the logic for creating a metric from AbstractMetricMethodInterceptor subclasses to instances of MetricFactory interface.
Move the logic to get the metric name from AbstractMetricMethodInterceptor subclasses to instances of MetricNamingStrategy.
Currently only for Timer metric add extension point in MetricsConfigurationSupport to customize the metric name and the Timer creation for the @Timed annotation
Allow to register a custom annotation with the same behavior of the @Timed annotation.

By registering a custom timedFactory bean is possible for example to change the Reservoir for or the @Timed methods.
By registering multimple custom annotation is possible (for example) to have different Reservoir for different methods.

This pull request is intended to fix #149, sorry I forgot to add it in the commit message.

I just realized that my proposal is similar to the existing branch "naming-strategy" (thanks to @jarheadjred on issue #69) that seems abandoned.
Let me know if there was a reason for abandoning that branch and if I can improve this pull request in any way.

Thanks! Yea it's pretty similar, I was starting to bring that branch up to date with the changes that have happened in master since I created it.  I'd like to avoid MetricFactory for now, I want to revisit that later, since Metrics will have something similar in v4.  Also I'd like to see the MetricNameStrategy not have a type parameter.

The problem with removing the type parameter from MetricNameStrategy is that then you need to have a method for each annotation, like in the "naming-strategy" branch. This way you loose the ability to configure a custom annotation that will be handled in a similar way of the default ones.
For example in our projects we use mainly the @Timed annotation but wee need to customize the Reservoir. In addition we have a naming pattern that differentiate metrics on rest API endpoint, jpa repositories methods, external services clients etc.
Having a generic naming strategy allow us to register different annotations for each of them.
Do you think that this is a feature worth having in metrics-spring?
About the MetricFactory I'm with you: if Metrics will have something similar in v4 it's better to wait for it.

@ryantenney Hello! This PR is closed. Will it be merged in v4.0? I'm just looking for name strategy for mertics-spring.

It has been a while, could we have a solution for 3.x instead waiting 4.x?
The problem is big: http://taint.org/2014/01/16/145944a.html
For frequent invoked methods, the default exponentially decaying reservoir works ok. But for infrequent used methods (and usually slow/expensive operation), the staled max value could create confusing.
I used a customized copy of https://bitbucket.org/marshallpierce/hdrhistogram-metrics-reservoir/src/9137f6b45aa9?at=master when I could customized timer instance creation, also reset on every snapshot to have make sure that each report cycle only contains the max value since last report.
Today, my workaround is to use non negative derivative to represent the spike of value under measurement. But that's not really what I want:  max value per cycle <- https://www.infoq.com/presentations/latency-pitfalls
If the given PR is too much, is it possible to have a narrow scope. Say, add a config property to @EnableMetrics(Reservoir reservoirClass() default null) And the information could pass down to TimedMethodInterceptor via proxyConfig?

Based on article mentioned by @ShijunK  I've opened issue https://github.com/dropwizard/metrics/issues/1223
There is new type of reservoir  called SlidingTimeWindowArrayReservoir.
Is there any chance of merging this changes?


RSS parsing custom fields

Requested changes are completed.

Looks good! Aside from the one comment, I think it's ready to merge.
Thanks for the contribution!

Thank you :+1:

Thanks again, published as 2.9.0


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

create pr


add size badge

Codecov Report

Merging #116 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #116   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines         120    120
  Branches       36     36
=====================================
  Hits          120    120

Continue to review full report at Codecov.

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


response.statusCode

Hi!
My code have an strict === operators.
statusCode property in request does have the same type which i send by .reply()
case:
nock('http://www.test.com').get('/debug.log').reply(200);

request('http://www.test.com/debug.log').on('response', function(request){
    typeof request.statusCode /* number */
});

nock('http://www.test.com').get('/debug.log').reply('200');

request('http://www.test.com/debug.log').on('response', function(request){
    typeof request.statusCode /* string */
});

Maybe it must be always number/string?

Coherced into number.
Fix landed on v1.7.1.

Thanks!


Feature: Required consumables for macros

It is currently only for Crafting Lists or Endurance mode right now. But it would make more sense to have it for your macros instead, or both.
Current workflow right now if I wanna wake alot of one item that requires a tincture and food. Then I either have to go into settings, and enable, required consumables(and remember to turn it off), or I have to make a crafting list with that item and add it as many times I intend to craft it and there I can add required food/tincture.
But when you make macros you always have a certain consumable combination in mind. So it makes sense to have it there instead. Then I could just open the Crafting menu and click the Endurance mode button and it starts crafting, and the Macro makes sure I have the required consumables.

No, macros are for crafting execution only.

Yes, but either this or something similar to attach Food requirements to Macros would greatly simplify crafting.
I don't think having to go into the settings menu to enable food / tincture refreshing is a good solution. This often ends up either wasting food on crafts that dont need food, or starting a craft which needed food, but you didn't have it popped, so you end up wasting materials.
I am not saying that macros is the only way, but it would be the easiest way to implement this.


WIP: Style change follow up

Follow up to: #13654
Description:
During the last style change @kellerza suggested to rework what is passed into the HomeAccessory constructor. I think to following changes might make sense:

hass is now a class variable of HomeAccessory and HomeBridge and set during the HomeKit setup. That way it doesn't need to be passed to each accessory individually.
For the HomeAccessory I added the method update_state_callback which checks that the new state isn't None (previously done in each type) and calls the update_state method.

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] Tests have been added to verify that the new code works.

Thanks for the feedback. I wasn't home this weekend, so I haven't had the chance to do the improvements yet. Hopefully during the next few days, although I have already done a rebase.

I have update the commits to reverse the change to make hass a static var and incorporated the over feedback. Especially the change of get_accessory as suggested by @kellerza.

@kellerza What do you think about a helper function to create characteristics. I thought about something like this (example from type_lights, char_on, code):
# Class HomeAccessory

    def setup_char(self, service, char_name, char_var_name,
                   value=None, callback=None):
        char = self.__dict__[char_var_name] = \
            service.get_characteristic(char_name)
        if value:
            char.value = value
        if callback:
            char.setter_callback = callback

# Type lights (init / init_setup)

        self.setup_char(serv_light, CHAR_ON, 'char_on',
                        value=self._state, callback=self.set_state)

Regarding setup_char, can't you bake it into add_preload_service? But once again, might be adding too many helpers 😕  On how many instance can you apply this?

setup_char would be used for every char added in __init__. E.g. for lights: max 5 times. The idea behind all this is to reduce the type classes to a minimum to make adding new ones and keeping HAP-python up-to-date easier.
Regarding pylint: disable: It really doens't matter where it's defined. Unless it's tied to a statement, the scope is from the pylint till the end of the file (at least as far as I know). I personally would still favor the decorator solution. Especially to keep things short in the types files. They shouldn't worry about name, entity_id and hass. An additional argument would be that it's way to easy to swap those if no keywords are used, while adding keywords would create an overhang again.

pylint has scope.... decorator would be preferred to the current disable so rather give that a go
For characteristics, I would suggest it so you can use it as follows, This is clear you are creating self.char_on:
    self.char_on = self._get_characteristic(
        serv_light, CHAR_ON, value=self._state, callback=self.set_state)

Maybe even add it to service.get_charactristic's call in the long run. Are you sure you are returning a copy, or you ok mutating its value and callback?

@kellerza I tested the decorator. Unfortunately it as well throws a pylint error as well: super-init-not-called. Maybe it shouldn't be.
The last variant I'm going to try is:
def __init__(self, *args, config):
    super().__init__(*args)

Where *args = hass, name, entity_id, category, aid

@kellerza Thanks for the help :+1:


allow to pass in a prometheus CollectorRegistry (fixes #1181)

Added a constructor to PrometheusMetricsTrackerFactory that allows to pass in a CollectorRegistry instance.
Removed the static modifier from the collector field since with the new constructor you may theoretically have more than one instance of the factory using a different CollectorRegistry instance each.
fixes #1181

I just noticed that PR #985 already addresses this issue, however this solves it differently.

@thombergs Have you looked at #985 ?  What are the pros/cons of these changes by comparison?

@brettwooldridge I just had a little deeper look at #985.
#985 introduced a static "global" list of HikariCPCollector instances which is accessed by static methods.
I think this solution here is a little easier on maintenance since it removes any uses of static HikariCPCollector instances and thus removes the need to centrally manage a list of instances.

@thombergs Ok, fair enough.  Next question.  Is this in any way a breaking change for existing users?  Or is it backwards compatible?

@brettwooldridge this is backwards compatible.
PrometheusMetricsTrackerFactory is the only public class that was touched, I simply added another constructor.
You can still use the default constructor:
HikariConfig config = new HikariConfig();
config.setMetricsTrackerFactory(new PrometheusMetricsTrackerFactory());

and it will have the same effect as it had before (the metrics will be registered to prometheus' defaultRegistry). This is also asserted in the unit test PrometheusMetricsTrackerFactoryTest.
You can opt-in to use the following instead, to register the metrics to a custom registry:
CollectorRegistry myRegistry = ...;
HikariConfig config = new HikariConfig();
config.setMetricsTrackerFactory(new PrometheusMetricsTrackerFactory(myRegistry));


Auto Select Value

Case : I have a list and have a select a custom value by default.
OR
Provide a default value from list.

I am also looking for this solution.


Hyperload Flashing OLED progress bar animation

Hyperload is no longer the base bootloader for SJSU-Dev2. The plan is not to opt for the factory bootloader and make this an example for the sj2 platform.


Expanding Growth Hacks chapter with Reddit and Newsletters sections

Drawing from my experience with Vuestic, we found that promoting every major release (every 3-6 months) through well-crafted Reddit posts and getting featured in relevant newsletters led to quite a boost in traffic, new contributors, and valuable feedback for our projects.
Adding a couple of paragraphs about newsletters and Reddit (similar to what you did in the Product Hunt section) could really help people who are looking for more ways to get their product out there.

Thanks! Reddit is definitely one of the missing parts; the same with Hacker News (looking for someone having a success story on HN to share :))

Great, will share some thoughts on Reddit usage then. Unfortunately, I've been unsuccessful with HN so far and even stopped posting there :)


Feat/add version

Summary | Résumé
Adding version control to the application. Now if you go http://<IP_ADDRESS>:54380/en/version/, you should be able to see the last updated day and time and the git SHA.

Works! 😄 French localization not present though.

Thanks Guillaume! A new PR with a few french translations coming up shortly!


Cucumber 2.0

The new cucumber has been release since weeks so it would be great to migrate now :-)

What exactly is the issue here? Is Cucumber-Rails incompatible with Cucumber 2.0?

I'm using cucumber-rails on a client project with cucumber 2.0. Working very well so far!
On Thu, Jun 4, 2015 at 7:54 PM, Matt Wynne<EMAIL_ADDRESS>wrote:

What exactly is the issue here? Is Cucumber-Rails incompatible with Cucumber 2.0?
Reply to this email directly or view it on GitHub:
https://github.com/cucumber/cucumber-rails/issues/297#issuecomment-109008924

Oops ... sorry .. I was expecting a kind of version 2 of cucumber-rails or announcement in the README ... sorry about that.

@zedtux @mattwynne @tom025: A new release of cucumber-rails is still needed, since the latest version available (as a github release and on rubygems) is 1.4.2, which was released on 2014-10-09, and that version has a dependency on cucumber, < 2.
The change to allow cucumber 2 (cucumber, < 2.1) was done on 2015-03-28.

@Frost that can be done in the very near future.
There is a PR that is currently in progress, and when it's done we can have a new release.

@Kosmas Awesome stuff, thanks :)


[bug]: Ctrl-C does not send terminate signal to Invoke.bat

Is there an existing issue for this?

[X] I have searched the existing issues

OS
Windows
GPU
cuda
VRAM
8GB
What happened?
Ctrl-C doesn't send termination signal to Invoke.bat for some reason so the only way to terminate Invoke.bat is to close the Terminal Window. CMD, Powershell, Powershell 7 all use the Ctrl-C for SIGINT like all popular shells bash, zsh, and tcsh.
Screenshots

Additional context
No response
Contact Details
No response

Actually does but it takes time to receive it between the polling interval that is required to keep the socketio connection to the frontend allow.
I'm looking into ways to make make the connection threaded somehow but it hasn't been a quick solution.
At the moment its not the biggest priority but if I think of a way to fix this, I'll do it.

@blessedcoolant no rush. just putting it here. I haven't been able to kill the process in Powershell 7 with ctrl-C in 2.2.5 even if i spam ctrl-c. This is a really minor thing. Just figured I get off my behind and log this into Issues.

Could it be that you need to press CTRL+Shift+C 🤔

When I ^C it works but takes a real long time.

ok i just tested it. If I hold ctrl-c for about 20-30 secs, it works. spamming ctrl-c doesn't work (what I did before)

Another hack is, press Ctrl C and then refresh the frontend. This will reset the polling time releasing the backend and triggering the break signal.

I've experienced this issue too. It is very annoying. I'm hoping that
someone with better Windows .bat file programming skills can help out here.
On Tue, Feb 7, 2023 at 10:32 PM ShaguarWKL @.***> wrote:

ok i just tested it. If I hold ctrl-c for about 20-30 secs, it works.
spamming ctrl-c doesn't work (what I did before)
—
Reply to this email directly, view it on GitHub
https://github.com/invoke-ai/InvokeAI/issues/2570#issuecomment-1421942752,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAA3EVOGFHA4F75CPEQCRV3WWMHWJANCNFSM6AAAAAAUUE2MM4
.
You are receiving this because you commented.Message ID:
@.***>

I'm trying to isolate what is blocking it. No luck so far.

I'm trying to isolate what is blocking it. No luck so far.

I'm not sure if this will help but the Kohya_SS fork actually added text output when control-c is called in powershell and it is extremely fast to kill the process.
❯ aiko
Validating that requirements are satisfied.
All requirements satisfied.
The arguments passed to this script were: --inbrowser --server_port 7878
Load CSS...
Running on local URL:  http://<IP_ADDRESS>:7878

To create a public link, set `share=True` in `launch()`.
Keyboard interruption in main thread... closing server.

I assume looking for that "Keyboard Interupption" string might help to see how they did this?
https://github.com/bmaltais/kohya_ss

kohya uses Gradio so I guess gradio handles the exit loop.
We're moving to FastAPI in our new migration. I expect this to get resolved with that change because then the FastAPI / Socket combination should handle the exception correctly. But if it still persists even after that, I'll probably need to add in a custom API end point that forces a proper shutdown of the app on Ctrl+C


Update powershell example using Out-File.

Why:
The default for Out-File is to overwrite the file. This can cause confusion if you use the given example multiple times in the same step, as all previous entries will be lost.

What's being changed:
Add -Append to the example for PowerShell using Out-File to avoid overwriting previous entries.

Check off the following:

[x] All of the tests are passing.
[ ] I have reviewed my changes in staging.
[X] For content changes, I have reviewed the localization checklist
[X] For content changes, I have reviewed the Content style guide for GitHub Docs.

@ehuss Thanks for the pull request! I'll let @github/docs-content-ecosystem know it's ready for review 👍

Thanks heaps for this PR, @github/digital-marketing
It looks like @thboop from the Actions team already fixed this in https://github.com/github/docs/commit/4abcabba6ceb67c14f02defdba67d6e2d3372590 after a recent discussion in the community forum.

If you haven't already @ehuss, you can add yourself to the list of contributors by creating a new comment in this PR using these instructions. Thanks again! :sparkles:


Blender crash when using "Convert All Cycles to Renderman" while IPR on

Renderman version: 21.2
Blender version: 2.78a
Addon version: 2cdf5f8
Just enable IPR with the default scene, and while it is rendering, click on the cube. Then click on "Convert All Cycles to Renderman".
The following error is printed, and Blender exits:
A08021 {SEVERE}  k__write: FATAL: Write failed. (Out of disk space?) (System Error: Invalid argument)

I'm going to assume that this is related to the other issue with PxrSurface?  As the convert script takes advantage of PxrSurface.


Incorrect displaying of exceptions in report if exceptions are thrown from steps and then catched

See description of pull request #352 for complete example.
This is unrelated to multiple failures per testcase.
Catching exceptions is useful and sometimes unavoidable. For example JUnit rules always catch and rethrow all exceptions.
Scenario that triggers incorrect behavior:

Step1 is called
Step1 calls Step2
Step2 throws exception1
Step1 catches exception1
Somewhere else exception2 is thrown and not catched

In report exception2 will be displayed as thrown from Step2.
There can be different variations:

Step1 can be simple method (not step)
exception2 can be thrown from step or simple method

В общем, не надо так делать.
Это противоречит нашей концепции построения отчета.
Не лови эксепшены и все будет хорошо.


Tidy up maven dependencies

This should also fix gh-199.

Merged into develop. Further tidying up may be required, but other specific issues should be created.


URL to documentation is wrong

The URL to documentation is wrong, this PR fixes it.

Thanks for the correction!


luci-app-dawn: Add hostname and interface to network overview

My preferred alternative to @PolynomialDivision's https://github.com/openwrt/luci/pull/4146 putting the new fields in separate columns on their own.
Signed-off-by: David Woodhouse<EMAIL_ADDRESS>

Please merge that! :)


1.5.0 release

Summary

obdiag V1.5.0
版本信息

发布时间：2023 年 12 月 14 日
版本号：V1.5.0

新版本变更功能点

新增一键全链路诊断功能
新增遥测功能
新增obproxy的版本巡检功能
新增 sysbench 压测进行时的巡检；
新增docker形态部署的OceanBase集群一键诊断功能
改造obdiag配置文件，拆分为inner_config.yml和用户侧配置文件，支持命令行指定配置文件下的一键诊断;
改造编译模式，产出obdiag二进制，解除对部署环境的python依赖。

Solution Description

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Teingi seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


In a monorepo (turborepo), Nuxt 3 app doesn't have typing for my ui package

Environment
Nuxi 3.6.3                                                                                11:20:48 PM
11:20:49 PM
RootDir: /home/etienne/development/nuxt3-turborepo-template                                                                                11:20:49 PM
Nuxt project info:                                                                                11:20:49 PM

Operating System: Linux
Node Version:     v20.3.1
Nuxt Version:     3.6.3
Nitro Version:    2.5.2
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      -
Runtime Modules:  -
Build Modules:    -

Reproduction
I made a repo to reproduce my problem: https://github.com/Suniron/nuxt3-turborepo-template
Describe the bug
In a monorepo (turborepo), my Nuxt 3 app doesn't have typing for my ui package (@nuxt/kit):

Additional context
No response
Logs
No response

Should it be a volar bug? IMO it should work now

Yep, it's a problem with recent vue-tsc / volar versions.
I'm using 1.8.1 for both now


Final Cut Pro

There's no information in this issue, so closing for now. Feel free to update and re-open.


Category names that are too long are handled poorly in iphone portrait view

You can make custom category names and those can be pretty long. If they are too long then they will not be displayed correctly on an iphone portrait view on the categories list editor
prerequisites:
vocable on an iphone
steps to reproduce:

navigate to the categories list editor
add a category with a name with around 8-10 words
view category on the category list editor in portrait orientation

expected:

category name that doesn't fit on the page either has a line break, a "..." or both in order for it to fit on screen

actual:
-categoyr name runs off the screen

Review word wrapping strategy as described in #416


api: update NEP-11 wrappers

move total_owned_by from the _NEP11Contract base class to NEP11NonDivisibleContract
deprecate balance_of and balance_of_friendly in favour of total_owned_by and total_owned_by_friendly to streamline the function names between NEP11NonDivisibleContract and NEP11DivisibleContract

coverage: 80.523% (-0.01%) from 80.533%
when pulling d3b92d3cdc50472cf75da7b056657652b04ca8e5 on nep11-deprecate
into 7a71114816a8295e06cc6b070e1ac5c0ef097a9d on master.


Perf optimization: check length/size of lists/sets/dicts/arrays in _Utils_eq

Right now there is deep recursive comparison happening even if collection1.length /= collection2.length. It seems to me that we could skip a lot of unneeded work by returning early in those cases.

Disclaimer: I'm not that knowledgeable of the kernel code.
Would this be worth it for any type but arrays? The other types are implemented in a recursive/linked list sort of way, so you'd have to traverse the collection to get the length, while the array type seems to be a thin wrapper around regular JavaScript arrays, where getting the length is a constant time operation.


Updating readme from branch example

Updates
I  updated the readme file. Please review and accept.

Thoughts
I probablly shouldn't. but okay. 👍


BUG: Installation failed on GitHub's MacOS runner

Describe your issue.
Hi SciPy team,
I am having issues in my PR that seems to be related to scipy installation in MacOS.
It seems looking for list of compilers that could not be found in the MacOS GH runner. I am unsure if scipy's installation method was updated, but I can confirm scipy 1.13.1 was previously installed successfully on MacOS GH runner in my CI.

Sample failed CI: https://github.com/openmrslab/suspect/actions/runs/11510447694/job/32043513974?pr=175
Previous succeeded CI that also used scipy 1.13.1: https://github.com/openmrslab/suspect/actions/runs/10844819607/job/30094426596

Reproducing Code Example
pip -r requirements_dev.txt # with scipy as dependency

Error message
Collecting scipy==1.13.1 (from -r requirements_dev.txt (line 34))
  Downloading scipy-1.13.1.tar.gz (57.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.2/57.2 MB 84.2 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [459 lines of output]
      + meson setup /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65 /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=/private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-python-native-file.ini
      The Meson build system
      Version: 1.6.0
      Source dir: /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65
      Build dir: /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t
      Build type: native build
      Project name: scipy
      Project version: 1.13.1
      C compiler for the host machine: cc (clang 15.0.0 "Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)")
      C linker for the host machine: cc ld64 1053.12
      C++ compiler for the host machine: c++ (clang 15.0.0 "Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)")
      C++ linker for the host machine: c++ ld64 1053.12
      Cython compiler for the host machine: cython (cython 3.0.11)
      Host machine cpu family: aarch64
      Host machine cpu: aarch64
      Program python found: YES (/Library/Frameworks/Python.framework/Versions/3.13/bin/python)
      Found pkg-config: YES (/opt/homebrew/bin/pkg-config) 0.29.2
      Run-time dependency python found: YES 3.13
      Program cython found: YES (/private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-build-env-ezyoot0c/overlay/bin/cython)
      Compiler for C supports arguments -Wno-unused-but-set-variable: YES
      Compiler for C supports arguments -Wno-unused-function: YES
      Compiler for C supports arguments -Wno-conversion: YES
      Compiler for C supports arguments -Wno-misleading-indentation: YES
      Library m found: YES

      ../meson.build:78:0: ERROR: Unknown compiler(s): [['gfortran'], ['flang-new'], ['flang'], ['nvfortran'], ['pgfortran'], ['ifort'], ['ifx'], ['g95']]
      The following exception(s) were encountered:
      Running `gfortran --help` gave "[Errno 2] No such file or directory: 'gfortran'"
      Running `gfortran --version` gave "[Errno 2] No such file or directory: 'gfortran'"
      Running `gfortran -V` gave "[Errno 2] No such file or directory: 'gfortran'"
      Running `flang-new --help` gave "[Errno 2] No such file or directory: 'flang-new'"
      Running `flang-new --version` gave "[Errno 2] No such file or directory: 'flang-new'"
      Running `flang-new -V` gave "[Errno 2] No such file or directory: 'flang-new'"
      Running `flang --help` gave "[Errno 2] No such file or directory: 'flang'"
      Running `flang --version` gave "[Errno 2] No such file or directory: 'flang'"
      Running `flang -V` gave "[Errno 2] No such file or directory: 'flang'"
      Running `nvfortran --help` gave "[Errno 2] No such file or directory: 'nvfortran'"
      Running `nvfortran --version` gave "[Errno 2] No such file or directory: 'nvfortran'"
      Running `nvfortran -V` gave "[Errno 2] No such file or directory: 'nvfortran'"
      Running `pgfortran --help` gave "[Errno 2] No such file or directory: 'pgfortran'"
      Running `pgfortran --version` gave "[Errno 2] No such file or directory: 'pgfortran'"
      Running `pgfortran -V` gave "[Errno 2] No such file or directory: 'pgfortran'"
      Running `ifort --help` gave "[Errno 2] No such file or directory: 'ifort'"
      Running `ifort --version` gave "[Errno 2] No such file or directory: 'ifort'"
      Running `ifort -V` gave "[Errno 2] No such file or directory: 'ifort'"
      Running `ifx --help` gave "[Errno 2] No such file or directory: 'ifx'"
      Running `ifx --version` gave "[Errno 2] No such file or directory: 'ifx'"
      Running `ifx -V` gave "[Errno 2] No such file or directory: 'ifx'"
      Running `g95 --help` gave "[Errno 2] No such file or directory: 'g95'"
      Running `g95 --version` gave "[Errno 2] No such file or directory: 'g95'"
      Running `g95 -V` gave "[Errno 2] No such file or directory: 'g95'"

            A full log can be found at /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-logs/meson-log.txt
==== CI platform detected, click here for meson-log.txt contents. ====
        Build started at 2024-10-25T01:54:02.356048
        Main binary: /Library/Frameworks/Python.framework/Versions/3.13/bin/python
        Build Options: -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=/private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-python-native-file.ini
        Python system: Darwin
        The Meson build system
        Version: 1.6.0
        Source dir: /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65
        Build dir: /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t
        Build type: native build
        Project name: scipy
        Project version: 1.13.1
        -----------
        Detecting compiler via: `cc --version` -> 0
        stdout:
        Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)
        Target: arm64-apple-darwin23.6.0
        Thread model: posix
        InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
        -----------
        Running command: -x c -E -dM -
        -----
        -----------
        Detecting linker via: `cc -Wl,--version` -> 1
        stderr:
        ld: unknown options: --version
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        -----------
        -----------
        Detecting Apple linker via: `cc -Wl,-v` -> 0
        stderr:
        @(#)PROGRAM:ld PROJECT:ld-1053.12
        BUILD 10:15:51 Mar 29 2024
        configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
        will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
        LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
        TAPI support using: Apple TAPI version 15.0.0 (tapi-15<IP_ADDRESS>)
        -----------
        Sanity testing C compiler: cc
        Is cross compiler: False.
        Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe
        Sanity check compile stdout:

        -----
        Sanity check compile stderr:

        -----
        Running test binary command:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/sanitycheckc.exe
        C compiler for the host machine: cc (clang 15.0.0 "Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)")
        C linker for the host machine: cc ld64 1053.12
        -----------
        Detecting archiver via: `llvm-ar-15 --version` -> [Errno 2] No such file or directory: 'llvm-ar-15'
        -----------
        Detecting archiver via: `llvm-ar --version` -> [Errno 2] No such file or directory: 'llvm-ar'
        -----------
        Detecting archiver via: `ar --version` -> 1
        stderr:
        usage:  ar -d [-TLsv] archive file ...
            ar -m [-TLsv] archive file ...
            ar -m [-abiTLsv] position archive file ...
            ar -p [-TLsv] archive [file ...]
            ar -q [-cTLsv] archive file ...
            ar -r [-cuTLsv] archive file ...
            ar -r [-abciuTLsv] position archive file ...
            ar -t [-TLsv] archive [file ...]
            ar -x [-ouTLsv] archive [file ...]
        -----------
        -----------
        Detecting compiler via: `c++ --version` -> 0
        stdout:
        Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)
        Target: arm64-apple-darwin23.6.0
        Thread model: posix
        InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
        -----------
        Running command: -x c++ -E -dM -
        -----
        -----------
        Detecting linker via: `c++ -Wl,--version` -> 1
        stderr:
        ld: unknown options: --version
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        -----------
        -----------
        Detecting Apple linker via: `c++ -Wl,-v` -> 0
        stderr:
        @(#)PROGRAM:ld PROJECT:ld-1053.12
        BUILD 10:15:51 Mar 29 2024
        configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
        will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
        LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
        TAPI support using: Apple TAPI version 15.0.0 (tapi-15<IP_ADDRESS>)
        -----------
        Sanity testing C++ compiler: c++
        Is cross compiler: False.
        Sanity check compiler command line: c++ sanitycheckcpp.cc -o sanitycheckcpp.exe
        Sanity check compile stdout:

        -----
        Sanity check compile stderr:

        -----
        Running test binary command:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/sanitycheckcpp.exe
        C++ compiler for the host machine: c++ (clang 15.0.0 "Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)")
        C++ linker for the host machine: c++ ld64 1053.12
        -----------
        Detecting compiler via: `cython -V` -> 0
        stdout:
        Cython version 3.0.11
        -----------
        stderr:
        Cython version 3.0.11
        -----------
        Running compile:
        Working directory:  /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmp1u96ci0h
        Code:
        print("hello world")
        -----------
        Command line: `cython /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmp1u96ci0h/testfile.pyx -o /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmp1u96ci0h/output.exe --fast-fail` -> 0
        stderr:
        /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-build-env-ezyoot0c/overlay/lib/python3.13/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmp1u96ci0h/testfile.pyx
          tree = Parsing.p_module(s, pxd, full_module_name)
        -----------
        Cython compiler for the host machine: cython (cython 3.0.11)
        -----------
        Detecting compiler via: `cc --version` -> 0
        stdout:
        Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)
        Target: arm64-apple-darwin23.6.0
        Thread model: posix
        InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
        -----------
        Running command: -x c -E -dM -
        -----
        -----------
        Detecting linker via: `cc -Wl,--version` -> 1
        stderr:
        ld: unknown options: --version
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        -----------
        -----------
        Detecting Apple linker via: `cc -Wl,-v` -> 0
        stderr:
        @(#)PROGRAM:ld PROJECT:ld-1053.12
        BUILD 10:15:51 Mar 29 2024
        configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
        will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
        LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
        TAPI support using: Apple TAPI version 15.0.0 (tapi-15<IP_ADDRESS>)
        -----------
        Sanity testing C compiler: cc
        Is cross compiler: False.
        Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe
        Sanity check compile stdout:

        -----
        Sanity check compile stderr:

        -----
        Running test binary command:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/sanitycheckc.exe
        C compiler for the build machine: cc (clang 15.0.0 "Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)")
        C linker for the build machine: cc ld64 1053.12
        -----------
        Detecting archiver via: `llvm-ar-15 --version` -> [Errno 2] No such file or directory: 'llvm-ar-15'
        -----------
        Detecting archiver via: `llvm-ar --version` -> [Errno 2] No such file or directory: 'llvm-ar'
        -----------
        Detecting archiver via: `ar --version` -> 1
        stderr:
        usage:  ar -d [-TLsv] archive file ...
            ar -m [-TLsv] archive file ...
            ar -m [-abiTLsv] position archive file ...
            ar -p [-TLsv] archive [file ...]
            ar -q [-cTLsv] archive file ...
            ar -r [-cuTLsv] archive file ...
            ar -r [-abciuTLsv] position archive file ...
            ar -t [-TLsv] archive [file ...]
            ar -x [-ouTLsv] archive [file ...]
        -----------
        -----------
        Detecting compiler via: `c++ --version` -> 0
        stdout:
        Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)
        Target: arm64-apple-darwin23.6.0
        Thread model: posix
        InstalledDir: /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
        -----------
        Running command: -x c++ -E -dM -
        -----
        -----------
        Detecting linker via: `c++ -Wl,--version` -> 1
        stderr:
        ld: unknown options: --version
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        -----------
        -----------
        Detecting Apple linker via: `c++ -Wl,-v` -> 0
        stderr:
        @(#)PROGRAM:ld PROJECT:ld-1053.12
        BUILD 10:15:51 Mar 29 2024
        configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
        will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
        LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
        TAPI support using: Apple TAPI version 15.0.0 (tapi-15<IP_ADDRESS>)
        -----------
        Sanity testing C++ compiler: c++
        Is cross compiler: False.
        Sanity check compiler command line: c++ sanitycheckcpp.cc -o sanitycheckcpp.exe
        Sanity check compile stdout:

        -----
        Sanity check compile stderr:

        -----
        Running test binary command:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/sanitycheckcpp.exe
        C++ compiler for the build machine: c++ (clang 15.0.0 "Apple clang version 15.0.0 (clang-15<IP_ADDRESS>)")
        C++ linker for the build machine: c++ ld64 1053.12
        -----------
        Detecting compiler via: `cython -V` -> 0
        stdout:
        Cython version 3.0.11
        -----------
        stderr:
        Cython version 3.0.11
        -----------
        Using cached compile:
        Cached command line:  cython /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmp1u96ci0h/testfile.pyx -o /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmp1u96ci0h/output.exe --fast-fail

        Code:
         print("hello world")
        Cached compiler stdout:

        Cached compiler stderr:
         /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-build-env-ezyoot0c/overlay/lib/python3.13/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/tmp1u96ci0h/testfile.pyx
          tree = Parsing.p_module(s, pxd, full_module_name)

        Cython compiler for the build machine: cython (cython 3.0.11)
        Build machine cpu family: aarch64
        Build machine cpu: aarch64
        Host machine cpu family: aarch64
        Host machine cpu: aarch64
        Target machine cpu family: aarch64
        Target machine cpu: aarch64
        Program python found: YES (/Library/Frameworks/Python.framework/Versions/3.13/bin/python)
        Searching for 'python-3.13' via pkgconfig lookup in LIBPC
        Pkg-config binary missing from cross or native file, or env var undefined.
        Trying a default Pkg-config fallback at pkg-config
        Found pkg-config: YES (/opt/homebrew/bin/pkg-config) 0.29.2
        Determining dependency 'python-3.13' with pkg-config executable '/opt/homebrew/bin/pkg-config'
        env[PKG_CONFIG_LIBDIR]: /Library/Frameworks/Python.framework/Versions/3.13/lib/pkgconfig
        env[PKG_CONFIG_PATH]:
        env[PKG_CONFIG]: /opt/homebrew/bin/pkg-config
        -----------
        Called: `/opt/homebrew/bin/pkg-config --modversion python-3.13` -> 0
        stdout:
        3.13
        -----------
        env[PKG_CONFIG_LIBDIR]: /Library/Frameworks/Python.framework/Versions/3.13/lib/pkgconfig
        env[PKG_CONFIG_PATH]:
        env[PKG_CONFIG]: /opt/homebrew/bin/pkg-config
        -----------
        Called: `/opt/homebrew/bin/pkg-config --cflags python-3.13` -> 0
        stdout:
        -I/Library/Frameworks/Python.framework/Versions/3.13/include/python3.13
        -----------
        env[PKG_CONFIG_LIBDIR]: /Library/Frameworks/Python.framework/Versions/3.13/lib/pkgconfig
        env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
        env[PKG_CONFIG_PATH]:
        env[PKG_CONFIG]: /opt/homebrew/bin/pkg-config
        -----------
        Called: `/opt/homebrew/bin/pkg-config --libs python-3.13` -> 0
        stdout:
        -L/Library/Frameworks/Python.framework/Versions/3.13/lib
        -----------
        env[PKG_CONFIG_LIBDIR]: /Library/Frameworks/Python.framework/Versions/3.13/lib/pkgconfig
        env[PKG_CONFIG_PATH]:
        env[PKG_CONFIG]: /opt/homebrew/bin/pkg-config
        -----------
        Called: `/opt/homebrew/bin/pkg-config --libs python-3.13` -> 0
        stdout:
        -L/Library/Frameworks/Python.framework/Versions/3.13/lib
        -----------
        Run-time dependency python found: YES 3.13
        Program cython found: YES (/private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-build-env-ezyoot0c/overlay/bin/cython)
        Running compile:
        Working directory:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp7f69akmt
        Code:
        extern int i;
        int i;

        -----------
        Command line: `cc /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp7f69akmt/testfile.c -o /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp7f69akmt/output.obj -c -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -Wunused-but-set-variable -Wno-unused-but-set-variable` -> 0
        Compiler for C supports arguments -Wno-unused-but-set-variable: YES
        Running compile:
        Working directory:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmpo8ddzgh7
        Code:
        extern int i;
        int i;

        -----------
        Command line: `cc /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmpo8ddzgh7/testfile.c -o /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmpo8ddzgh7/output.obj -c -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -Wunused-function -Wno-unused-function` -> 0
        Compiler for C supports arguments -Wno-unused-function: YES
        Running compile:
        Working directory:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmpjwz9bm1b
        Code:
        extern int i;
        int i;

        -----------
        Command line: `cc /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmpjwz9bm1b/testfile.c -o /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmpjwz9bm1b/output.obj -c -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -Wconversion -Wno-conversion` -> 0
        Compiler for C supports arguments -Wno-conversion: YES
        Running compile:
        Working directory:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp0kybr4to
        Code:
        extern int i;
        int i;

        -----------
        Command line: `cc /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp0kybr4to/testfile.c -o /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp0kybr4to/output.obj -c -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -Wmisleading-indentation -Wno-misleading-indentation` -> 0
        Compiler for C supports arguments -Wno-misleading-indentation: YES
        Running compile:
        Working directory:  /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp6l3hc3j1
        Code:
        int main(void) { return 0; }

        -----------
        Command line: `cc /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp6l3hc3j1/testfile.c -o /private/var/folders/q5/6nls1_g145s2fl1lbvx2zby40000gn/T/pip-install-rt8vmlzu/scipy_6573b4f16dd14d0b8b06dc16bbc28b65/.mesonpy-u6ns4m4t/meson-private/tmp6l3hc3j1/output.exe -O0 -Werror=implicit-function-declaration -lm -Wl,-undefined,dynamic_lookup` -> 0
        Library m found: YES
        -----------
        Detecting compiler via: `gfortran --help` -> [Errno 2] No such file or directory: 'gfortran'
        -----------
        Detecting compiler via: `gfortran --version` -> [Errno 2] No such file or directory: 'gfortran'
        -----------
        Detecting compiler via: `gfortran -V` -> [Errno 2] No such file or directory: 'gfortran'
        -----------
        Detecting compiler via: `flang-new --help` -> [Errno 2] No such file or directory: 'flang-new'
        -----------
        Detecting compiler via: `flang-new --version` -> [Errno 2] No such file or directory: 'flang-new'
        -----------
        Detecting compiler via: `flang-new -V` -> [Errno 2] No such file or directory: 'flang-new'
        -----------
        Detecting compiler via: `flang --help` -> [Errno 2] No such file or directory: 'flang'
        -----------
        Detecting compiler via: `flang --version` -> [Errno 2] No such file or directory: 'flang'
        -----------
        Detecting compiler via: `flang -V` -> [Errno 2] No such file or directory: 'flang'
        -----------
        Detecting compiler via: `nvfortran --help` -> [Errno 2] No such file or directory: 'nvfortran'
        -----------
        Detecting compiler via: `nvfortran --version` -> [Errno 2] No such file or directory: 'nvfortran'
        -----------
        Detecting compiler via: `nvfortran -V` -> [Errno 2] No such file or directory: 'nvfortran'
        -----------
        Detecting compiler via: `pgfortran --help` -> [Errno 2] No such file or directory: 'pgfortran'
        -----------
        Detecting compiler via: `pgfortran --version` -> [Errno 2] No such file or directory: 'pgfortran'
        -----------
        Detecting compiler via: `pgfortran -V` -> [Errno 2] No such file or directory: 'pgfortran'
        -----------
        Detecting compiler via: `ifort --help` -> [Errno 2] No such file or directory: 'ifort'
        -----------
        Detecting compiler via: `ifort --version` -> [Errno 2] No such file or directory: 'ifort'
        -----------
        Detecting compiler via: `ifort -V` -> [Errno 2] No such file or directory: 'ifort'
        -----------
        Detecting compiler via: `ifx --help` -> [Errno 2] No such file or directory: 'ifx'
        -----------
        Detecting compiler via: `ifx --version` -> [Errno 2] No such file or directory: 'ifx'
        -----------
        Detecting compiler via: `ifx -V` -> [Errno 2] No such file or directory: 'ifx'
        -----------
        Detecting compiler via: `g95 --help` -> [Errno 2] No such file or directory: 'g95'
        -----------
        Detecting compiler via: `g95 --version` -> [Errno 2] No such file or directory: 'g95'
        -----------
        Detecting compiler via: `g95 -V` -> [Errno 2] No such file or directory: 'g95'

        ../meson.build:78:0: ERROR: Unknown compiler(s): [['gfortran'], ['flang-new'], ['flang'], ['nvfortran'], ['pgfortran'], ['ifort'], ['ifx'], ['g95']]
        The following exception(s) were encountered:
        Running `gfortran --help` gave "[Errno 2] No such file or directory: 'gfortran'"
        Running `gfortran --version` gave "[Errno 2] No such file or directory: 'gfortran'"
        Running `gfortran -V` gave "[Errno 2] No such file or directory: 'gfortran'"
        Running `flang-new --help` gave "[Errno 2] No such file or directory: 'flang-new'"
        Running `flang-new --version` gave "[Errno 2] No such file or directory: 'flang-new'"
        Running `flang-new -V` gave "[Errno 2] No such file or directory: 'flang-new'"
        Running `flang --help` gave "[Errno 2] No such file or directory: 'flang'"
        Running `flang --version` gave "[Errno 2] No such file or directory: 'flang'"
        Running `flang -V` gave "[Errno 2] No such file or directory: 'flang'"
        Running `nvfortran --help` gave "[Errno 2] No such file or directory: 'nvfortran'"
        Running `nvfortran --version` gave "[Errno 2] No such file or directory: 'nvfortran'"
        Running `nvfortran -V` gave "[Errno 2] No such file or directory: 'nvfortran'"
        Running `pgfortran --help` gave "[Errno 2] No such file or directory: 'pgfortran'"
        Running `pgfortran --version` gave "[Errno 2] No such file or directory: 'pgfortran'"
        Running `pgfortran -V` gave "[Errno 2] No such file or directory: 'pgfortran'"
        Running `ifort --help` gave "[Errno 2] No such file or directory: 'ifort'"
        Running `ifort --version` gave "[Errno 2] No such file or directory: 'ifort'"
        Running `ifort -V` gave "[Errno 2] No such file or directory: 'ifort'"
        Running `ifx --help` gave "[Errno 2] No such file or directory: 'ifx'"
        Running `ifx --version` gave "[Errno 2] No such file or directory: 'ifx'"
        Running `ifx -V` gave "[Errno 2] No such file or directory: 'ifx'"
        Running `g95 --help` gave "[Errno 2] No such file or directory: 'g95'"
        Running `g95 --version` gave "[Errno 2] No such file or directory: 'g95'"
        Running `g95 -V` gave "[Errno 2] No such file or directory: 'g95'"

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Error: Process completed with exit code 1.

SciPy/NumPy/Python version and system information
# This is installation error in the runner, so I copy-pasted from pip install prior to error

Collecting numpy==1.26.4 (from -r requirements_dev.txt (line 17))
  Downloading numpy-1.26.4.tar.gz (15.8 MB)
Collecting scipy==1.13.1 (from -r requirements_dev.txt (line 34))
  Downloading scipy-1.13.1.tar.gz (57.2 MB)

gday Darren.
I think the issue lies in your CI setup somewhere.  You need to use python-version not version to specify which python you want to install.
I think this causes CPython3.13 to be used in the Install Dependencies step. There is then no version of numpy 1.26.4 available for Python 3.13, so it tries to compile it. Similarly for scipy 1.13.1, no cp313 wheel is available, so it has to be built.
If you fix the Python version things will become unstuck. I noticed from the requirements file that there were a lot of packages being pinned. Is there a specific reason why all packages are pinned in CI?

Hi @andyfaff ,
Good catch, thank you! I certainly missed that since that section was collapsed and I was focused on the error message itself. 😄
I pinned the requirements_dev.txt to record the actual versions that works across the dev environments. I did not pin the requirements.txt that is actually used in the installation, though.
Do you recommend leaving the requirements_dev.txt unpinned as well?

Pinning versions makes sure that everything works together, but only for a single set of versions. If you'd like a package to be useful across a version range of upstream dependencies, then presumably testing should occur across that version range. This is what you're already doing by testing on Py 3.9, 3.10, 3.11, 3.12. Presumably 3.9 is the oldest version of Python you're wanting to support.
It's a similar thing for other dependencies. e.g. For scipy you might want to support back to 1.13, so you'd have a test matrix that would check 1.13, as well as an unpinned version (the last release). In that way you're more sure that your packages works over a greater scope.

@andyfaff That makes sense, thank you for the suggestion! I will do that.


Enhancing the dark mode toggle button

Describe the bug
Currently the dark-mode button is very basic, i would enhance it by adding some styling of switching between these two modes.
Expected behavior
I want it to make the dark mode toggle button to somewhat look like this.

Screenshots (Mandatory)
Currently it is very basic and i would enhance it to make it attractive to user.

Additional Context (Mandatory )
Are you contributing under any open-source program ?
Yes under JWOC'24

@Aashi19234  can i work on it
assign me under JWOC

@AftabMankapure Currently i am working on it.

ok best luck


Replace Map with Object for chatMessages

Why
Map are not serializable. They don't play well with Redux.
How Tested

rush build
rush test
Local storybook
Local Chat sample.

Process & policy checklist

[x] I have updated the project documentation to reflect my changes if necessary.
[x] I have read the CONTRIBUTING documentation.

Is this a breaking change?

[x] This change causes current functionality to break.

Lgtm ✔
Can we mention this as a Breaking Change in the next release's changelog?

Yep, @JamesBurnside added the breaking-change bot to label our PRs that should be included in release notes.


Request rosbag-inspector exe for checking the frame number of bag file capturing via L515

Issue Description
Not a issue,  I just want the rosbag-inspector exe to checking the frame number of bag file capturing via L515.  So please send a .exe to me,  email<EMAIL_ADDRESS>Thanks in advance.

Hi @erwangccc  There is not a pre-built exe version of the rosbag-inspector tool available.  You can though check the frame number of frames in a bag file by drag-and-dropping the file into the center panel of the RealSense Viewer tool, pausing playback with the keyboard space bar key and then browsing through frames manually with the slider in the options side-panel and reading the frame number on the information overlay at the top of the stream panel.

Thanks for your quick response!
But the viewer i use doesn't show the frame number, the viewer I use is v2.50.0.

If it's caused by diffierent version of Viewer, maybe i should use other version Viewer

If the 'i' option on top of each stream panel is left-clicked on then it should overlay the stream information at the top of the panel.

OK, i saw the frame counter, but it's the frame id from we open the depth sensor or RGB camera, i want to know the depth\IR\RGB frame recorded in the bag file.

For example, we record a bag file on 30fps for 10s, it will have 300 frames for depth or IR data respectively. I hope it will show 300.

Yes, that's right.  End - start = total frame count for that stream.  Thanks very much for the update!


Update CHANGELOG.md

Harrison I don't have merge permissions, so wondering if you can help merge this?


Default title meta-tag value does not display in the admin

If title value is not set for a Page instance, it has to be pre-populated by value of <title> tag.

There is not way to show default value in CMS, inverters _page_title works as a way to override title set in the template or default in the layout. Also showing this value in CMS might be not good idea, as it could be very long for SEO purpose and include website title and category title. Maybe we should add some HTML comment helper to set page title in the template, like:


Improve 403 Forbidden page when user doesn't have access to Dashboard

Is your feature request related to a problem? Please describe.
If we enable Dashboard RBAC and user doesn't have access to it, the plain text returns to user.
We would have a page to handle this kind of response.

Describe the solution you'd like
Create an 403 page similar to 404 or 500 page

Thanks for the PR on this! Trying to get it some renewed attention!

@duynguyenhoang is there still a need for this? The PR seems to have failing tests and merge conflicts, but this is also the only report I've heard of this problem.

Closing this as stale since it's been silent for so long, and we're trying to steer toward a more actionable Issues backlog. If people are still encountering this in current versions (currently 3.x) please re-open this issue, open a new Issue with updated context, or raise a PR to address the problem. Thanks!


Removing python 3.9 testing

Description
Removing python 3.9 testing from our testing flow.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Akshay Gupta seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Calculated SI 2detectors variance apportioning num & den

Variance apportioning in the Computed Spectral Index computed as ratio of two Serpent detectros. The variance is apportioned between numerator and denominator.


process CoffSymbol error

Describe the bug
run PortableExecutableRichPrintScript error
Screenshots

Attachments
msxml2.zip
Environment (please complete the following information):

OS: win10
Java Version: openjdk 11
Ghidra Version: 10.1.2
Ghidra Origin: official ghidra-sre.org distro

I'm looking into it.  Our ability to parse PE's from memory instead of from file seems a bit incomplete.

NOTE: The same issue happens with the sample provided in #1267.

There are a couple of issues:

When we reparse the PE from memory, we aren't properly treating the symbol table offset from the file header as a file offset.
If we did treat it correctly, it still would not be in memory so we would not be able to recover the long section names.

Now that we have the FileBytes API, it may be better to get rid of the SectionLayout.MEMORY concept and just reparse the original FileBytes when we want to recreate the PE header java objects.


Update mangled Swift class+function names for CF

Fixing:
ld: warning: undefined base symbol '__TMC15SwiftFoundation19_NSCFConstantString' for alias '___CFConstantStringClassReference'
Undefined symbols for architecture x86_64:
  "__T015SwiftFoundation21__CFSwiftGetBaseClassyXlXpyF", referenced from:
      ___CFInitialize in libCoreFoundation.a(CFRuntime.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Split from https://github.com/apple/swift-corelibs-foundation/pull/988 (this has somewhat higher risk of breaking on some Macs, maybe)

Just to be clear on this: this is the mangled name produced by the top of tree Swift compiler right?

Hello Tony,
Thanks for asking - I use snapshots on macOS, and when checking with swift-DEVELOPMENT-SNAPSHOT-2017-05-23-a, only the string warning appears:
ld: warning: undefined base symbol '__TMC15SwiftFoundation19_NSCFConstantString' for alias '___CFConstantStringClassReference'

Looks like the AnyObject part of the class name isn't in the Swift 4 branch.
So, I've dropped the CFRuntime init name change, but kept the SymbolAliases change.
As I mentioned in #988, I think it would be better to have a script determine these mangled names at build time.

I think we're actually going to be ok for the long term once Swift 4 ships - changing mangling is a big deal and I'm hoping it calms down now.


Null safety

Package maintainers are now encouraged to migrate packages to use null safety even though the feature is in beta.
Migration guide: https://dart.dev/null-safety/migration-guide
Checklist:

[X] Wait for dependencies to publish a null safe version

[X] js
[X] pedantic
[X] test

[ ] Decide on version number. Guide says it should be considered a breaking change, bringing this package to 2.0.0... this will however take it out of line with msal.js... 😕

Applications should be using an exact version number anyway to make sure it matches their install of msal.js, releasing it with a normal version (ex. 1.4.0) may not cause problems.

[ ] Migrate
[ ] Test

kinda have it here, but review would be appreciated
@Francessco121 if you would have time to pinpoint the changes necessary then I'll apply 'em. all unit-tests are currently passing

@nyarian Really appreciate the contribution! Could you open a pull request to make this easier to review?
The biggest issue I see right now with your changes is that almost everything is now marked as nullable. There's definitely a good amount of fields from msal.js that are never null/undefined. This package should limit the number of nullable values exposed publicly for ease-of-use where possible. Ideally, package:js would provide runtime null checking for anything marked as non-nullable on the Dart side but I'm not sure how that behaves yet.
Unfortunately, this really comes down to either keeping everything nullable and letting the user check it (be quite painful to use the library, but safe), or look very carefully at msal.js and determine which methods/properties are guaranteed to never be null and reflect that.
There's also a couple spots where we could make better use of null safety, such as:
factory UserAgentApplication(Configuration? configuration) {
    if (configuration == null) throw ArgumentError.notNull('configuration');
// ...

could just be:
factory UserAgentApplication(Configuration configuration) {
// ...

Lastly is still the concern about the version number. Given that MSAL 2.x would be nice to support (#19) and keeping this package's version inline with MSAL is ideal, it may be better to mark this release as 1.4.0-nullsafety.0. It would break semantic versioning however since this is a breaking change. Keeping MSAL 1.x null safety as a prerelease version only may help?

stating that this migration is naive would be an understatement :)
I'll do a proper refactoring pass this evening and will open the MR after. the thing that keeps me behind here is that I'm not much in TS and web in general, so it's a bit tricky to define which things are non-nullable by design in the original msal-js library.
concerning versioning - yeah, that's reasonable, I tend to agree. I believe it should be as close as possible to the upstream msal-js versions. I would suggest to just postfix the version that's currently mirrored by the library with -nullsafety.0, then, so that it's 1.3.2-nullsafety.0. what do you think?

Current version is msal.js 1.4.5, so given that msal.js 1.4 didn't add anything and is compatible with 1.3 of this package, I think jumping to 1.4.0-nullsafety.0 makes sense.

yessir

Null safety is (finally) tested and published as version 1.4.0-nullsafety.0!


BUG: UPPERCASE can't be written in the search bar.

Description
On the search bar on the home page any text written in the search box turns to lowercase.
Is this desired?
Screenshots
No response

I don't see why you would want to use uppercase. The search bar only using lowercase avoids confusion by end users which is why I think it's an intentional feature.

Hello @Rohan-Nair Yes, this is done intentionally. It makes searching strict and easier, since we don't have start handling use cases such as when a user enters all caps or an abbreviation starting with caps, etc

Like some abbreviations people see could be in all caps right? And they would try searching that way too. just a thought.  so this could be converted to lowercase later and let the user type whatever?

Again, I don't think people would try to search for abbreviations, that include capital letters. And personally it would be very annoying when my keyboard constantly autocorrects me to a capital letter when I start typing.

Again, I don't think people would try to search for abbreviations, that include capital letters.

Why not? Aren't there many words which are abbreviated with all caps?
ASAP
AFK
I didn't get the other half of your comment but I'll close this issue now.


export function instead of value also for AMD

AMD export doesn't work,false/true is returned instead of function. define() should get factory function which should return module itself (isWindows function in this case).
Invoking factory function only when exporting for Common.js or Browser environments should be used instead of IIFE.
Proposed change is compatible with http://ifandelse.com/its-not-hard-making-your-library-support-amd-and-commonjs which looks like an inspiration of your solution.

If you kindly accept this PR, update is-absolute package to new version of is-windows then please 🙂


Subscriptions

Can this plugin be used to set up subscriptions with Stripe?

@jjacobs33589 Maybe yes. Difference of payment once or subscription looks like on backend only.
This plugin can paymentIntent and setupIntent. Please try to implement.

Hello @jjacobs33589 & @rdlabo,
I'm trying to setup the backend in this way but I encounter blocking.
The backend is a WordPress Website so a PHP function in an API route.
I arrive to create the customer and the subscription but, I don't arrive to return the same value as indicated for this component.
For example: I have the customer ID but I don't have the ephemeralKey and I don't see anything about it in the documentation of Stripe (https://stripe.com/docs/api). I don't have the paymentIntent in the payload returned by the subscription too.
I'm a new user of Stripe and this component, could you maybe help me to better understand what I have to setup for the subscriptions?
Thanks and have a nice day,
Loïc

Done on your server where you have implemented your other stripe code.
Stripe.ephemeralKeys.create(
    { customer: customerId },
    { stripe_version: api_version }
});

You have to create your paymentIntent as well.
Stripe.paymentIntents.create({
    amount: cart.value.total_after_tip,
    currency,
    payment_method_types: ['card']
})

Not sure if that helps.

Hi @stickypages,
Thank you for your reply :)
Ok but I don't have to link the paymentIntents with the subscription object?
In fact, I have precise the amount, currency and payment_method_types in the subscription ans so, this are duplicate here.
Kind regards

Also, this is possible that the "ephemeralKey" doesn't exist anymore?
I don't see anything in the API documentation about this :-/

Have you tried stripe.ephemeralKeys.create ?
You can see the example code -> https://github.com/capacitor-community/stripe/blob/master/demo/server/src/app.controller.ts#L23-L26

FYI
The type information is here -> https://github.com/stripe/stripe-node/blob/master/types/2020-08-27/EphemeralKeys.d.ts#L68-L71

Hi @hideokamoto,
Thank you for your reply :)
I use the PHP library of Stripe. I have seen some examples with the ephemeralKey but when I try to implement it, I have an error. Also, in the API documentation, I see anything about it (https://stripe.com/docs/api?lang=php).
On the other hand, by looking in the code of the PHP library, I see that there is indeed a class which manages this:
https://github.com/stripe/stripe-php/blob/master/lib/EphemeralKey.php
I will try to test without the API documentation. Thanks!
Do you maybe have an idea for the "paymentIntents" combined with the subscription?
Kind regards

Do you maybe have an idea for the "paymentIntents" combined with the subscription?

Probably we can get the payment intent of the subscription by the following code.
via: https://stripe.com/docs/billing/subscriptions/build-subscription?ui=elements#create-subscription
    const subscription = await stripe.subscriptions.create({
      customer: customerId,
      items: [{
        price: priceId,
      }],
      payment_behavior: 'default_incomplete',
      expand: ['latest_invoice.payment_intent'],
    });

    res.send({
      subscriptionId: subscription.id,
      clientSecret: subscription.latest_invoice.payment_intent.client_secret,
    });

It's just an example of Node.js, but I believe we can develop the same behavior in any other lang.
I hope this information will help you.

Hi @hideokamoto,
Yes, it helps me a lot, thanks!
So this is similar in PHP:
$subscription = $stripe->subscriptions->create([
  "customer" => $customer->id,
  "payment_behavior" => "default_incomplete",
  "items" => [
    [
      "price" => $subscription_price,
      "quantity" => "1"
    ]
  ],
  "expand" => ["latest_invoice.payment_intent"],
]);

$payment_intent_id = $subscription->latest_invoice->payment_intent->id;

Have a nice day


chore(ci): Upload build artifacts on releases

Description
This currently uploads the static libraries (WASM, linux, Mac) , the dest folder which contains the transpiled javascript and a barretenberg.wasm file.
What we want long term is:

No static libraries (instead we have binaries)
No dest folder, we upload to NPM (this is pending an NPM token and a modification to change the npm version when releases are made)
Barretenberg.wasm (We still want to keep the barretenberg.wasm binary being upload)

Please provide a paragraph or two giving a summary of the change, including relevant motivation and context.
Checklist:

[ ] I have reviewed my diff in github, line by line.
[ ] Every change is related to the PR description.
[ ] The branch has been merged with/rebased against the head of its merge target.
[ ] There are no unexpected formatting changes, superfluous debug logs, or commented-out code.
[ ] There are no circuit changes, OR a cryptographer has been assigned for review.
[ ] New functions, classes, etc. have been documented according to the doxygen comment format. Classes and structs must have @brief describing the intended functionality.
[ ] If existing code has been modified, such documentation has been added or updated.
[ ] No superfluous include directives have been added.
[ ] I have linked to any issue(s) it resolves.
[ ] I'm happy for the PR to be merged at the reviewer's next convenience.

The workflows are dependent, so we do not upload to github unless both MacOS and Linux build. We also don't build unless a release was successfully made. See the needs field in the yaml file.
The linux runner builds for both linux and WASM which is why we require WASI for Linux and not for Mac. Since we don't care too much about when the artifacts are uploaded right now, I'm using the free github version, they take about 30-40 minutes to build and publish to GitHub.
A c5ad.16xlarge AWS machine can put this down to 1 minute of build time, but it also costs about $2.7 an hour. Note that we can also take advantage of github caching which would mean that build times may only be bad if you modify code in field arithmetic for example (From conversations, I think its actually not this optimistic)

token name: NPM_TOKEN


[Bug] D100: Module Containing Single Leading Underscore Considered Public

Issue: Receive "D100: Missing docstring in public module" error for module containing single leading underscore.
pydocstyle version: 5.0.2
python version: 3.8.4
From How publicity is determined:

Publicity for all constructs is determined as follows: a construct is considered public if -

Its immediate parent is public and
Its name does not contain a single leading underscore.

How to Reproduce
Consider the following simple example.
publicpackage/
├── __init__.py
└── _privatemodule.py  # D100: Missing docstring in public module

Within publicpackage/__init__.py:
"""Some docstring."""
from ._privatemodule import public_function_in_private_module

__all__ = ['public_function_in_private_module']

Within publicpackage/_privatemodule.py:
def public_function_in_private_module():
    """Public function in private module docstring."""
    pass

$ pydocstyle publicpackage
publicpackage/_privatemodule.py:1 at module level:
        D100: Missing docstring in public module

Expected Behavior
_privatemodule contains single leading underscore, and would be considered private, not public.
Related Issues

[#199] D100 claims module is public when it is prefixed _
[#323] Publicity and privacy derived from modules seems wrong

related pr https://github.com/PyCQA/pydocstyle/pull/470

related pr #470

Opened #494 as a continuation of work in #470.

I just had the same error.


ionic serve fails on 1.4.1 with TypeError: Object 1.4.1 has no method 'contains'

I updated to 1.4.1 (npm update -g ionic) and got following error:
/Users/ilkkanisula/.nvm/v0.10.33/lib/node_modules/ionic/lib/cli.js:22
  if (settings.version.contains('dev') || settings.version.contains('beta') ||
                       ^
TypeError: Object 1.4.1 has no method 'contains'
    at Object.dev (/Users/ilkkanisula/.nvm/v0.10.33/lib/node_modules/ionic/lib/cli.js:22:24)
    at reportExtras [as prerequestMethod] (/Users/ilkkanisula/.nvm/v0.10.33/lib/node_modules/ionic/lib/cli.js:442:11)
    at process._uncaughtExceptionListener (/Users/ilkkanisula/.nvm/v0.10.33/lib/node_modules/ionic/node_modules/opbeat-ionic/index.js:124:22)
    at process.emit (events.js:95:17)
    at process._fatalException (node.js:272:26)

I patched cli.js with following change:
Cli.dev = function dev() {
  if (typeof settings.version === 'string' ) { return true; }
  if (settings.version.contains('dev') || settings.version.contains('beta') || settings.version.contains('alpha')) {
    return true;
  }

  return false;
};

This resulted in exception:
An error occured and was reported to Opbeat undefined

/Users/ilkkanisula/.nvm/v0.10.33/lib/node_modules/ionic/lib/cli.js:449
    console.log(err.stack);
                   ^
TypeError: Cannot read property 'stack' of undefined
    at reportExtras [as prerequestMethod] (/Users/ilkkanisula/.nvm/v0.10.33/lib/node_modules/ionic/lib/cli.js:449:20)
    at process._uncaughtExceptionListener (/Users/ilkkanisula/.nvm/v0.10.33/lib/node_modules/ionic/node_modules/opbeat-ionic/index.js:124:22)
    at process.emit (events.js:95:17)
    at process._fatalException (node.js:272:26)

My environment:
$ ionic info

Your system information:

Cordova CLI: 4.3.0
Gulp version:  CLI version 3.8.10
Gulp local:
Ionic Version: 1.0.0
Ionic CLI Version: 1.4.1
Ionic App Lib Version: 0.0.18
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Mac OS X Lion
Node Version: v0.10.33
Xcode version: Xcode 4.6.3 Build version 4H1503

Greetings @ilkkanisula!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

This issue was moved to driftyco/ionic-cli#424


Install failed - unsupported node version ?

Installation of libxmljs fails on my machine ; I get many errors, including things like this when node-gyp runs
../src/libxmljs.cc:137:19: error: ‘NewSymbol’ is not a member of ‘v8::String’
       target->Set(v8::String::NewSymbol("libxml"), target);

Extract from report :
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/phtrivier/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1046:12)
gyp ERR! System Linux 3.11.0-12-generic
gyp ERR! command "node" "/home/phtrivier/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/phtrivier/prj/platform/git/av-ui/av-accounts/node_modules/node-recurly/node_modules/js2xml/node_modules/libxmljs
gyp ERR! node -v v0.11.13
gyp ERR! node-gyp -v v0.13.0

This looks like I don't have a supported version of node, which one should I downgrade / upgrade to ?
Thanks

Does libxmljs support Node 4.2.2? I'm having the same problem.


Set background color

Can we set a default background color instead of a random color ?

Why can't we just create another constructor to pass a default background color instead of generating a color from the name ?


Pass correct PCI bus/device/function to fpgaconf

Partially helps with #148

WIP, but as first iteration it works.

@rojkov updated based on comments and also simplified code.

Codecov Report

Merging #179 into master will decrease coverage by 1.49%.
The diff coverage is 30.23%.

@@            Coverage Diff            @@
##           master     #179     +/-   ##
=========================================
- Coverage   81.22%   79.72%   -1.5%
=========================================
  Files          11       11
  Lines        1438     1480     +42
=========================================
+ Hits         1168     1180     +12
- Misses        240      268     +28
- Partials       30       32      +2

Impacted Files
Coverage Δ

cmd/fpga_crihook/main.go
82.35% <30.23%> (-11.53%)
:arrow_down:

Continue to review full report at Codecov.

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


An issue has been solved, and a minor update

Yeah, no. There's no need to be modifying SDL.
The portability issue lies in using this structure directly in the first place, which we use because we're using DirectX directly.
Modifying SDL here like this doesn't solve anything; it merely causes more issues with compatibility (updating SDL becomes out of the question, when its headers are customised in this manner) and problems with defines overriding Windows' typedefs... more headaches down the track.
If you want to address this issue, it should be with moving away from needing to use DX, not hacking away at 3rd party libraries.

One minor point with this is that I believe you might have forgot to pull before you submitted this pull request because the "" I added to some of the include files (had to help someone fix this earlier because it wouldn't let him compile) are missing.

Closing this because it doesn't really address anything in particular. Also, the latter issue with HP showing in the target bar is resolved in the current branch.

@srmeier Actually, I first pull from the repo, but there was some problems with VS2017, so I reverted it, but then I forgot to pull it again, lol.

@twostars I'm new to SDL, so I will try to do it when I understand the system completely.

@twostars  About the first option, I have search the documentations on SDL, but couldn't find anything about pure SDL implementation of windows messages, so could you give some direction or explain what you mean by "complete SDL implementation" ?

@onurcanbektas If you take a look here (https://github.com/srmeier/KnightOnline/blob/master/Client/WarFare/LocalInput.cpp) and search for "WndProcMain" - we need to eventually get rid of that, which means writing SDL implementations that achieve the same result as the WinAPI.
Also search for "SDL_SYSWMEVENT" in that cpp file. This is where SDL is passing the messages received from the WinAPI to the "WndProcMain" function.


Design issue for metrics update

There are a number of issues relating to basic behavior of Metrics in refinery:

#562
#581
#446 and #351
#346

The recent change to metrics in #593 gives us the structure that makes it possible to resolve all of these, since there is now a single metrics instance that can be wrapped.
The plan is:

Create a wrapper class, multi-metrics, that can duplicate metrics calls to multiple implementations of metrics
Add the ability to specify multiple metrics implementations in the config (and allow different implementations to specify different refresh intervals)
Remove the requirement to specify info about the honeycomb metrics if it's not in use
Add a new otel metrics type, which can send metrics via OpenTelemetry
Make it so metrics sent via the honeycomb type will convert histograms into gauges

This enables:

Sending metrics to multiple destinations -- Honeycomb would very much like to see metrics in Honeycomb, but some users are collecting their metrics via the Prometheus data.
Easier management of Honeycomb metrics
Supporting OTel metrics, either to Honeycomb or elsewhere
Reduction of technical debt

:wave: Would the addition of labels to metrics be helpful at large, and relate to this design issue?
For example, being able to apply type labels to error metrics, particularly those related to
upstream_enqueue_errors upstream_response_errors and peer_response_errors would help raise the fidelity of those metrics. The conspicuous absence of this feature from the metrics package makes me wonder if cardinality or other concerns blocked any previous implementation.
(FWIW our particular use case atm involves being able to detect specifically related to 429 rate-limit occurrences)


[request] Jetty

https://www.eclipse.org/jetty/
https://www.eclipse.org/jetty/download.html
https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.17.v20190418/jetty-distribution-9.4.17.v20190418.zip

+1

This issue belongs in the Main bucket. Unfortunately, we cannot move this issue on this end, so it is being closed.
If this is still an issue, please create a new issue in the Main bucket via https://github.com/ScoopInstaller/Main/issues/new?body=Moved+from+https%3A%2F%2Fgithub.com%2Flukesampson%2Fscoop%2Fissues%2F3420


Animate DataArrays

Hi, this is my first a feature request here. I've been using xarray for a while but it always comes somewhat short when I'm trying to do animations. It always ends up being a big hassle.
Is there a good way to provide some functionality to make animations easier? I really like the way xarray sets up the plots by default, but I always end up re-writing it when setting up an animation, which I always feel like is kind of a shame.
Cheers

What's an example of an animation?

Unfortunately I don't have any example with DataArray right now. Since I never could take advantage of DataArray's plotting capabilities for animations, I always did animations using pure Numpy. However, I'm talking about the standard matplotlib animations. Here's an example taken from here:
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def update_line(num, data, line):
    line.set_data(data[..., :num])
    return line,

# Set up formatting for the movie files
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='Me'), bitrate=1800)

fig1 = plt.figure()

data = np.random.rand(2, 25)
l, = plt.plot([], [], 'r-')
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.xlabel('x')
plt.title('test')
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
                                   interval=50, blit=True)
line_ani.save('lines.mp4', writer=writer)

@tomchor Note that holoviews supports xarray objects.
You can find an example of an animation made using holoviews and xarray here:
http://nbviewer.jupyter.org/gist/benbovy/e9d4f3d3be076de24b8842dae109d6e7

I didn't know holoviews existed, thanks for pointing that out to me. The fact that it can't create an animation file (as far as I could tell so far) does mean I can't use it, though. So I'll still try to pursue the matplotlib animation option, although maybe for most users holoviews+xarray might already be enough (I don't know).

The fact that it can't create an animation file (as far as I could tell so far) does mean I can't use it, though

You can create animation files using the matplotlib backend, as a simple example:
ds = hv.Dataset(air.isel(time=range(100)))
images = ds.to(hv.Image, ['lon', 'lat'])

To display it in the notebook:
%%output holomap='mp4'
images.options(fig_size=200)

To save it to file:
renderer = hv.renderer('matplotlib')
renderer.save(images, 'hv_anim', 'mp4')

@philippjfr Thanks for the comment. I hand't found anything like that. For me, %%output isn't a recognized magic command, and the renderer.save command fails for me with a tkinter-related error (can't invoke "wm" command), so I really couldn't see anything yet. But I believe I'll be able to solve that eventually.

I hand't found anything like that.

Yes, the Plotting with Matplotlib section in the user guide should cover it but it appears to be broken in the last website build.

For me, %%output isn't a recognized magic command

That will only work in the notebook after you have run hv.extension('matplotlib').

fails for me with a tkinter-related error (can't invoke "wm" command), so I really couldn't see anything yet.

You might have to switch to a different matplotlib GUI toolkit or forego one entirely and use agg, either by declaring it in your matplotlib.rc or by setting the backend before importing holoviews, e.g.:
import matplotlib
matplotlib.use('Agg')

In the example above I had to change this line:
images = ds.to(hv.Image, ['lon', 'lat']).options(fig_inches=(10, 5), colorbar=True, cmap='viridis')

to
images = ds.to(hv.Image, ['lon', 'lat']).options('Image', fig_inches=(10, 5), colorbar=True, cmap='viridis')

in order to avoid
ValueError: HoloMap type not found, could not apply options.

(Holoviews version 1.10.0a2)

@benbovy Yes that's right, my apologies, I always work with the bleeding edge and forget what was merged before the last release. What I posted will be valid in 1.10.0, due to be released next week.

@philippjfr Even with the alteration I still get a HoloMap type not found error. I can still see the animation, though. And switching to 'Agg' did allow me to save the animation in mp4, which is good. All workarounds aside, this works pretty well. Thanks a lot to all.

@philippjfr
How do you change the fps in the code that you posted above
Thanks for your help!

Small update in the syntax, which also happens to make it easier to set fps:
import xarray as xr
import holoviews as hv
hv.extension('matplotlib')

air = xr.tutorial.open_dataset('air_temperature').load()
ds = hv.Dataset(air.isel(time=range(100)))
images = ds.to(hv.Image, ['lon', 'lat']).options(fig_inches=(10, 5), colorbar=True, cmap='viridis')
hv.save(images, 'hv_anim.mp4', fps=4)

Closing as stale, some interesting ideas here though. I think best pushed forward by external libraries such as holoviews


Anaconda4.4.0访问被拒绝。

[Window Title]
devenv.exe
[Main Instruction]
发生意外错误
[Content]
请按 Ctrl+C 复制此对话框的内容并向我们的问题跟踪程序报告此错误。
[^] 隐藏详细信息(D)  [关闭(C)]
[Expanded Information]
Build: 3.0.17208.1

System.UnauthorizedAccessException: 对路径“C:\Program Files\Anaconda3\Anaconda 4.4.0\”的访问被拒绝。
   在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   在 System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
   在 System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
   在 System.IO.Directory.CreateDirectory(String path)
   在 Microsoft.PythonTools.InterpreterList.InterpreterListToolWindow.EnsureScriptDirectory(String path)

So this is partly a problem where we are assuming we can create the scripts path, and partly a problem in that the scripts path is not supposed to be the interpreter path - by default it should be in your Documents folder. Did you change the default location? Or did this happen by itself?

We've decided that this issue is not important enough to continue to pursue. The workaround is to use a user-writable directory for this setting, such as the default value.