Which operator-sdk version should I use with apiextensions.k8s.io/v1beta1

Type of question

General operator-related help
Question
What did you do?

I want to use helm operator in kubernetes v1.15.9 which has apiextensions.k8s.io/v1beta1, not apiextensions.k8s.io/v1.
[root@k8s-c1 ~]# kubectl api-versions | grep apiext
apiextensions.k8s.io/v1beta1

With operator-sdk v1.2.0,
operator-sdk init command generated crd with apiVersion apiextensions.k8s.io/v1.
Then I changed apiextensions.k8s.io/v1 to apiextensions.k8s.io/v1beta1.
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: nginxes.demo.example.com
spec:
  group: demo.example.com
  names:
    kind: Nginx
    listKind: NginxList
    plural: nginxes
    singular: nginx
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Nginx is the Schema for the nginxes API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Spec defines the desired state of Nginx
            type: object
            x-kubernetes-preserve-unknown-fields: true
          status:
            description: Status defines the observed state of Nginx
            type: object
            x-kubernetes-preserve-unknown-fields: true
        type: object
    served: true
    storage: true
    subresources:
      status: {}

I got the following error.
* spec.versions: Invalid value: []apiextensions.CustomResourceDefinitionVersion{apiextensions.CustomResourceDefinitionVersion{Name:"v1alpha1", Served:true, Storage:true, Schema:(*apiextensions.CustomResourceValidation)(0xc014087bd0), Subresources:(*apiextensions.CustomResourceSubresources)(0xc012fa3eb0), AdditionalPrinterColumns:[]apiextensions.CustomResourceColumnDefinition(nil)}}: per-version schemas may not all be set to identical values (top-level validation should be used instead)
* spec.versions: Invalid value: []apiextensions.CustomResourceDefinitionVersion{apiextensions.CustomResourceDefinitionVersion{Name:"v1alpha1", Served:true, Storage:true, Schema:(*apiextensions.CustomResourceValidation)(0xc014087bd0), Subresources:(*apiextensions.CustomResourceSubresources)(0xc012fa3eb0), AdditionalPrinterColumns:[]apiextensions.CustomResourceColumnDefinition(nil)}}: per-version subresources may not all be set to identical values (top-level subresources should be used instead)

I don't understand the meaning of the log, I guess there're different between v1 and v1beta1, then I removed spec.versions[0].schemas and ``spec.versions[0].subresources as follows:
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: nginxes.demo.example.com
spec:
  group: demo.example.com
  names:
    kind: Nginx
    listKind: NginxList
    plural: nginxes
    singular: nginx
  scope: Namespaced
  versions:
  - name: v1alpha1
    served: true
    storage: true

This crd could be created with make deploy.
Though kubectl apply -f config/samples/demo_v1alpha1_nginx.yaml works, I got the following log in operator container.
the server could not find the requested resource (put nginxes.demo.example.com nginx-sample)
{"level":"error","ts":1645064177.8010716,"logger":"controller","msg":"Reconciler error","controller":"nginx-controller","name":"nginx-sample","namespace":"ychen","error":"the server could not find the requested resource (put nginxes.demo.example.com nginx-sample)","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\t/home/travis/gopath/pkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/home/travis/gopath/pkg/mod/sigs.k8s.io/controller-runtime@v0.6.3/pkg/internal/controller/controller.go:246\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/home/travis/gopath/pkg/mod/sigs.k8s.io/controller-runtime@v0.6.3/pkg/internal/controller/controller.go:218\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\t/home/travis/gopath/pkg/mod/sigs.k8s.io/controller-runtime@v0.6.3/pkg/internal/controller/controller.go:197\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1\n\t/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.18.8/pkg/util/wait/wait.go:155\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil\n\t/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.18.8/pkg/util/wait/wait.go:156\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.18.8/pkg/util/wait/wait.go:133\nk8s.io/apimachinery/pkg/util/wait.Until\n\t/home/travis/gopath/pkg/mod/k8s.io/apimachinery@v0.18.8/pkg/util/wait/wait.go:90"}

{"level":"info","ts":1645064181.3993857,"logger":"helm.controller","msg":"Reconciled release","namespace":"ychen","name":"nginx-sample","apiVersion":"demo.example.com/v1alpha1","kind":"Nginx","release":"nginx-sample"}

At this time, I couldn't cleanup nginx resources with kubectl delete -f config/samples/de mo_v1alpha1_nginx.yaml. This is also the case related to https://github.com/operator-framework/operator-sdk/issues/4383.
What did you expect to see?

How can I use operator sdk v1.2.0 to generate crds which can be used in kubernetes v1.15.9 which has apiextensions.k8s.io/v1beta1. How should I modify the crd  yaml generated by operator-sdk init? or which version should I use?
https://sdk.operatorframework.io/docs/overview/#kubernetes-version-compatibility
Though the doc states kubernetes version compatibility, I don't konw if I can use operator sdk v1.2.0 with kubernetes v1.15.9.
What did you see instead? Under which circumstances?

Environment
Operator type:

operator-sdk v1.2.0
/language helm
Kubernetes cluster type:

v1.15.9
$ operator-sdk version
helm-operator-v1.2.0
quay.io/operator-framework/operator-sdk:v1.2.0
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.3", GitCommit:"ca643a4d1f7bfe34773c74f79527be4afd95bf39", GitTreeState:"clean", BuildDate:"2021-07-15T21:04:39Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.9", GitCommit:"2e808b7cb054ee242b68e62455323aa783991f03", GitTreeState:"clean", BuildDate:"2020-01-18T23:24:23Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
Additional context

I found instructions in https://master.sdk.operatorframework.io/docs/upgrading-sdk-version/v0.18.0/#default-crd-version.
To continue generating CRDs with apiextensions.k8s.io/v1beta1, use --crd-version=v1beta1.
However, operator-sdk init --help doesn't show the flag in help.
operator-sdk init --plugins helm --help
Initialize a new project.

For further help about a specific project version, set --project-version.

Usage:
  operator-sdk init [flags]

Examples:
  # Help for initializing a project with version "2"
  operator-sdk init --project-version="2" -h

  # Help for initializing a project with version "3-alpha"
  operator-sdk init --project-version="3-alpha" -h

Flags:
  -h, --help                     help for init
      --plugins strings          Name and optionally version of the plugin to initialize the project with. Available plugins: ("ansible.sdk.operatorframework.io/v1", "go.kubebuilder.io/v2", "helm.sdk.operatorframework.io/v1")
      --project-version string   project version, possible values: ("2", "3-alpha") (default "3-alpha")

Global Flags:
      --verbose   Enable verbose logging

Hi @niaomingjian,
Also, be aware that this API (v1beta1) was deprecated with k8s 1.16 and removed on its release 1.22.
Unless are you looking to build solutions that will be distributed on clusters that are using k8s < 1.16 I would not recommend you still use the v1beta1.
Its usage will not allow you also upgrade other dependencies such as using the latest version of controller-gen (used to scaffold the files) or controller-runtime (used to provide the controller's implementation)

Closing this on since it is sorted out.
However, please feel free to re-open if you see that still needing help with


nimBLE integration application/library

Summary
This PR adds support for nimBLE host-layer stack for NuttX, for when NuttX's own stack is disabled. This will build a nimble app, which is an example shipped with nimBLE which includes a simple GATT server. An application wishing to use the stack need to add the appropriate include path.
At the moment this points to my fork of nimBLE, which is currently awaiting merge upstream. Once it is accepted upstream, I will create another PR to point to the official repo.
Impact
Add application.
Testing
Developed own application using nimBLE on top of to-be-upstream nRF52 link-layer. Also tested on sim build, using bthcisock config. A nimBLE specific config will be added in separate PR on main repo for others to test.

Sim config to test is here: https://github.com/apache/incubator-nuttx/pull/2129

Would you consider merging this even if it points to my fork? I'm sensing it will take quite some time to get my changes to nimBLE merged upstream.

@xiaoxiang781216 would you mind taking a look?

I pushed the recommended changes


Code refactoring

I started understanding this library becasue I want to improve dart-yaml. I saw that there is little improvement which will not make any changes to the library but make code more readable for the future reader.

Sorry, no opinion-based microchanges just for fun.

Sorry, due lack of time, no possibility to discuss generic programming questions.


whenAvailable callback for saveToFile(FIle file)

Hey guys, is it possible to trigger a callback when saveToFile has finished execution?  I've been trying to create a new PendingResult.Callback but can't seem to figure out the proper Callback type.
   PhotoResult photoResult = fotoapparat.takePicture();

    File f = new File(
            getActivity().getExternalFilesDir("photos"),
            "newImage.jpg"
    );

    PendingResult.Callback<?> callback = new PendingResult.Callback<Void>() {
        @Override
        public void onResult(Void v) {
            Log.d(TAG,"SAVE FILE CALLBACK");
        }
    };

    photoResult.saveToFile(f).whenAvailable(callback);

This is something I overlooked while writing saveToFile(). Fixed.
Now saveToFile expects Callback<Void> instead of Callback<?>. Moreover, I added new method - .whenDone which is exactly the same as whenAvailable but has a name better suited for Void callbacks.


Predict Status of Chronic Kidney Disease

💥 Proposal
We will build such a model which will tell us the status of a chronic Kidney Disease. It is a health care use case.
Here is the dataset.
kidney_disease.csv

Hey! @Tanya-1109  this issue already completed by me name as Chronic Kidney Disease Prediction.
If you have better approach apart from this, Explain your approach and algorithm.

Okay!!


Google Colab Bark models folder

Where exactly are the Suno Bark models placed after download in the Google Colab directories. I searched through almost every directory and for the life of me, just can't  seem to locate the models. Colab tends to delete everything after you shut down the runtime including all the models unless its also saved on google drive so I would guess it would be in a temporary folder of some sort. I know in windows, they would normally be placed in the User/.cache/ folder but not too sure for Colab. Any ideas??

Enable "hidden files" (eye icon) and check for the /root/.cache/ that's the User/.cache/ folder for this machine.

Your awesome, thanks.


[NH] Support third-party development of Liquibase

Background: https://airtable.com/tblD3oZPLJgGhCmch/viw1DKmbKhg2MIECH/recMl27xd8py3IKYX
Description: Liquibase recently added support for Postgres. This work will result in CockroachDB either working with the Postgres dialect out of the box or include a CRDB specific dialect for using with Liquibase. Either way, this work will result in a Liquibase version that works natively with CockroachDB.
It is too hard for developers to use CockroachDB with Postgres drivers and ORMs. There are three main reasons for this:

Bugs in our implementation
Missing PG functionality
Different underlying architecture

Conceptually, this is hard for developers to understand because we use the same wire protocol as Postgres. Developers will interact with CRDB and Postgres in the same manner but have different results based on bugs in our implementation, missing functionality, or the underlying differences in the architecture.
Liquibase, a popular schema migration tool like Flyway, does not work out of the box with CockroachDB due to the reasons described above.
Team: Andrew Woods, Eric Harmeling, Jordan Lewis, Rafi Shamim
Github Tracking Issue: https://github.com/cockroachdb/cockroach/issues/13991 https://github.com/cockroachdb/cockroach/issues/37460 https://github.com/cockroachdb/docs/issues/4793

https://github.com/timveil-cockroach/liquibase-example

This is close to being ready. We are awaiting two issues currently in-progress:
The first issue is https://github.com/liquibase/liquibase/issues/1021
The second is https://github.com/liquibase/liquibase/issues/1022


Add PlayerEnteringVehicleEvent Documentation

https://github.com/FabianTerhorst/coreclr-module/pull/350

It seems to have already had a PR merged for it? If so this can be closed. :)


Importing flask.ext.cacheify is deprecated

First thing, thank you for an amazing library! It was so easy to set up, I just followed the instructions, ran it once, and it worked! Just reporting a few warnings I'm getting:
/app/.heroku/python/lib/python3.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cacheify is deprecated, use flask_cacheify instead.

I made that change in my app, and then got
/home/rkuykendall/.local/lib/python3.6/site-packages/flask/exthook.py:71: ExtDeprecationWarning: Importing flask.ext.cache is deprecated, use flask_cache instead.

Everything is working, but I thought you would want to know.

Just updated this! Thanks! I updated the docs and pushed a new release to PyPI.


Warning logged for deprecation of async_get_registry

Describe the bug
The use of async_get_registry to access area, device and entity registries is deprecated as of Feb 2021 and will be removed in the future.  With 2022.6 a warning will now be logged. async_get should be used instead.
To avoid a lot of the same issues being created with the release of 2022.6 might be better to address this before its release.
To Reproduce
Steps to reproduce the behavior:

Update HA Core latest 2022.6 dev version
Look at the logs for deprecation warning

System details

Home-assistant (version): core-2022.6.0.dev20220524
Hassio (Yes/No):  Yes
alexa_media (version from const.py or HA startup): 3.11.3
alexapy (version from pip show alexapy or HA startup): 1.25.5
Amazon 2FA is enabled (y/n). We will not debug login issues if unanswered: Yes

Logs
Please provide logs. We'll be most likely asking for them anyway.
2022-05-24 15:26:36 WARNING (MainThread) [homeassistant.helpers.frame] Detected integration that uses deprecated `async_get_registry` to access device registry, use async_get instead. Please report issue to the custom component author for alexa_media using this method at custom_components/alexa_media/__init__.py, line 625: device_registry = await dr.async_get_registry(hass)

Additional context
Add any other context about the problem here.

Thanks.

Can be done like this! https://github.com/IATkachenko/HA-SleepAsAndroid/commit/424bf0aeeb781f07a0c671fde03c924a6197a1b2
Had the same over at that component!

Seems like I was late to this party, anways here's the log again
2022-05-26 19:22:34 WARNING (MainThread) [homeassistant.helpers.frame] Detected integration that uses deprecated async_get_registry to access device registry, use async_get instead. Please report issue to the custom component author for alexa_media using this method at custom_components/alexa_media/init.py, line 625: device_registry = await dr.async_get_registry(hass)

In addition: This warning appeares 1 sec before the reported message:
Logger: alexapy.alexawebsocket
Source: /usr/local/lib/python3.9/site-packages/alexapy/alexawebsocket.py:232
First occurred: 08:55:04 (1 occurrences)
Last logged: 08:55:04

mac_dms not detected; websocket likely won't connect

After some research, no need to bump HACS minimum version once this is fixed. https://github.com/home-assistant/core/commit/ed31cc363b3a457ed9249f7cf0386f2ec86e1850

In addition: This warning appeares 1 sec before the reported message:

This is unrelated to this issue. Please search as you have reduced functionality when you get this warning.


Minor formatting

Awesome project, just added a minor space for asterisk

Thanks @MarvinNazari !
I don't see a big reason to make this change, since the generated code is usually just a huge block of text, but I don't mind adding it since it adds more breathing space to generated code.
You just need to update the test cases too, for tests to pass.


Object: oPlayerT Event: User Event 15 at line 53 : "move_and_collide" is read-only function in latest GameMaker monthly version

I'm getting this message when opening in latest GameMaker monthly version (2<IP_ADDRESS> runtime 2<IP_ADDRESS>)
and trying to run it.
Object: oPlayerT Event: User Event 15 at line 53 : "move_and_collide" is read-only function
Object: oPlayerD Event: User Event 15 at line 47 : "move_and_collide" is read-only function
Object: oPlayerT Event: User Event 15 at line 53 : malformed assignment statement
Object: oPlayerD Event: User Event 15 at line 47 : malformed assignment statement
GM Version

Temporary fix (at least I was able to run it) search and replace all
serach:move_and_collide
replace:_move_and_collide

Wondering if its a case where GM actually implemented the function move_and_collide in a later version

Wondering if its a case where GM actually implemented the function move_and_collide in a later version

yep

If you just rename the function to something else move_and_collide_custom, plus all the references, things should build just fine.


[Bug]: winget upgrade does not find new pgAdmin version

Brief description of your issue
winget upgrade does not report and install a new pgAdmin version.
Steps to reproduce
Run sandbox test on pgAdmin 6.3 (the second but last version):
.\Tools\SandboxTest.ps1 .\manifests\p\PostgreSQL\pgAdmin\6.3\

Within the sandbox, run winget upgrade or winget upgrade pgAdmin.
Expected behavior
winget upgrade finds and installs the newest (manifest) version.
Actual behavior
winget upgrade does not find the newest version, i.e. v6.4 currently.
--> Installing WinGet
Tip: you can type 'Update-EnvironmentVariables' to update your environment variables, such as after installing a new software.

--> Configuring Winget
Admin setting enabled.

--> Installing the Manifest 6.3

Found pgAdmin [PostgreSQL.pgAdmin] Version 6.3
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v6.3/windows/pgadmin4-6.3-x64.exe
  ██████████████████████████████   150 MB /  150 MB
Successfully verified installer hash
Starting package install...
Successfully installed

--> Refreshing environment variables

--> Comparing ARP Entries

DisplayName                                                    DisplayVersion Publisher                    ProductCode
-----------                                                    -------------- ---------                    -----------
Microsoft Visual C++ 2017 X64 Additional Runtime - 14.16.27033 14.16.27033    Microsoft Corporation        {27744187-E45F-41F3-8BC2-0DC5F9238FDB}
Microsoft Visual C++ 2017 X64 Minimum Runtime - 14.16.27033    14.16.27033    Microsoft Corporation        {65835E57-3712-4382-990A-8D39008A8E0B}
Microsoft Visual C++ 2017 Redistributable (x64) - 14.16.27033  14.16.27033.0  Microsoft Corporation        {cc3a7c63-31fb-4129-9024-63ebefd86a95}
pgAdmin 4 version 6.3                                          6.3            The pgAdmin Development Team pgAdmin 4v6_is1

PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget upgrade
[Agree to ToS]
Name           Id             Version     Available    Source
-------------------------------------------------------------
Microsoft Edge Microsoft.Edge 92.0.902.67 97.0.1072.62 winget
1 upgrades available.
PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget list pgAdmin
Name                  Id              Version
---------------------------------------------
pgAdmin 4 version 6.3 pgAdmin 4v6_is1 6.3
PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget search pgAdmin
Name    Id                 Version Source
------------------------------------------
pgAdmin PostgreSQL.pgAdmin 6.4     winget
PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget upgrade pgAdmin
No installed package found matching input criteria.

Environment
PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget --info
Windows Package Manager v1.1.12653
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.19041.1466
Package: Microsoft.DesktopAppInstaller v1.16.12653.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Posting here, since there might be something wrong with the manifest? Please move to winget-cli if appropriate.
I updated the manifest for the latest versions 6.4 (https://github.com/microsoft/winget-pkgs/pull/40719) and 6.3 (https://github.com/microsoft/winget-pkgs/pull/38461) with wingetcreate update <PackageIdentifier> --version <version> --interactive.

I just checked the above for all available manifests (versions 4.30, 5.7, 6.0 - 6.3) and winget upgrade pgAdmin does not find newer versions for any of them.

cc @dpprdan: It should be back up and running now:

@ItzLevvie Looking good on my end, thanks!
Should we make the change for the other manifests, too?

I have a similar problem with RStudio (#41629).
PS C:\Users\Daniel> winget search RStudio
Name                                 ID                           Version       Quelle
---------------------------------------------------------------------------------------
RStudio Desktop Professional Edition RStudio.RStudio.Professional 1.4.1717-3    winget
RStudio Desktop Open Source Edition  RStudio.RStudio.OpenSource   2021.09.2+382 winget
PS C:\Users\Daniel> winget list Rstudio
Name    ID      Version
-----------------------------
RStudio RStudio 2021.09.0+351

Do I understand correctly that theNames have to match for winget to find the update, @ItzLevvie? I.e. I need to change PackageName: here to RStudio?
https://github.com/microsoft/winget-pkgs/blob/cb61d362a6ca7eb1cbbb2fd89d5529bd76e59ecd/manifests/r/RStudio/RStudio/OpenSource/2021.09.2%2B382/RStudio.RStudio.OpenSource.locale.en-US.yaml#L11

Should we make the change for the other manifests, too?

It should be fine.

I.e. I need to change PackageName: here to RStudio?

That PackageName was done by purpose since both packages, OS and Pro, have the same name in Control Panel so it becomes a unambiguous package if you ran winget upgrade which is why there's Desktop Open Source Edition and Desktop Pro Edition.
It does break winget list's mapping but adding ProductCode there will fix it. You can take a look at https://github.com/microsoft/winget-pkgs/pull/41884.
I was waiting for future winget-cli versions to see how the new 1.1.0 schema fields will work for ARP entries.

RStudio should now be fixed in the latest commits:

Yes, it is, @ItzLevvie, thank you! 🎉


Added tree-view node removal, as requested on #1269

Also put the id in the title prop for node identification.

I was also giving this a shot. However it looks like you're not really removing the (child)nodes, just remove the node id from it parent's childIds list... right?

No, I'm removing the node, too. It's maybe a little counterintuitive to follow in the code, but that happens here. By just falling through to return accumulator, the node for that key is removed.

Oh! Yes, you're right.

I think it would be easier to pass { childId, nodeId } to the action where nodeId is the ID of the parent. The Node component can pass parentId to its child Node components as a prop, and children will use that when the fire the action. Then we don't need to search for the parent.

My take on this in #1275, however I don't like the heavy binding... plus I'm also not removing the node. Anyway bedtime for me so maybe I'll continue tomorrow. Unless you finish it first which is more likely :wink:

@gaearon Does the Node component have its parent's id, though? I guess it could be made to.

#1275 is more like what I had in mind. Thanks!

I guess it could be made to.

Yeah, if we make Node pass it.


Something weird with Efab tanks

Something weird is happening with Efab tanks on the Continuum test server.
The multiblock consists of the crafting grid, a tank with 800mb lava on the east side of the crafting grid and a gear box on the south side of the crafting grid.
Steps I did to cause the crash:

Place another tank on top of the lava tank
Break the tank
Place it on top of the crafting grid
Break the tank
Place it on the west side of the crafting grid, Crashlog
Relaunched, tank is still in inventory.
Try placing it again, same crash.
Relaunched, tank is now placed, and I have a tank in my inventory. Duped the tank
Place the tank south of the gear box, same crash.
Place the tank without connection to the multiblock, same crash.
Place the tank on the same block as step 10, same crash, no dupe

Fixed in next update. Thanks for the detailed description


Update bluebird and lodash to their latest versions

Cool stuff! I guess this needs to be rebased now that https://github.com/jviotti/rindle/pull/4 got merged.

Yep, done

Check 1.3.1 on npm.


ipad air 1 wifi fail log

sysname: Darwin
nodename: iPad-cua-chaustark
release: 16.3.0
version: Darwin Kernel Version 16.3.0: Tue Nov 29 21:40:09 PST 2016; root:xnu-3789.32.1~4/RELEASE_ARM64_S5L8960X
machine: iPad4,1
2017-01-29 10:40:54.155778 yalu102[202:3792] found corruption 38203
2017-01-29 10:40:54.999849 yalu102[202:3792] found kernel text at fffffff00a204000
2017-01-29 10:40:55.002451 yalu102[202:3792] got tfp0 -> d07
2017-01-29 10:40:55.003007 yalu102[202:3792] found procs at fffffff10d2e8890
2017-01-29 10:40:55.007449 yalu102[202:3792] seg: __TEXT
2017-01-29 10:40:55.007521 yalu102[202:3792] seg: __DATA_CONST
2017-01-29 10:40:55.007559 yalu102[202:3792] seg: __TEXT_EXEC
2017-01-29 10:40:55.007595 yalu102[202:3792] seg: __KLD
2017-01-29 10:40:55.007629 yalu102[202:3792] seg: __LAST
2017-01-29 10:40:55.007722 yalu102[202:3792] seg: __DATA
2017-01-29 10:40:55.007758 yalu102[202:3792] seg: __PRELINK_TEXT
2017-01-29 10:40:55.007792 yalu102[202:3792] seg: __PLK_TEXT_EXEC
2017-01-29 10:40:55.007826 yalu102[202:3792] seg: __PRELINK_DATA
2017-01-29 10:40:55.007861 yalu102[202:3792] seg: __PLK_DATA_CONST
2017-01-29 10:40:55.007895 yalu102[202:3792] seg: __PLK_LINKEDIT
2017-01-29 10:40:55.007929 yalu102[202:3792] seg: __PRELINK_INFO
2017-01-29 10:40:55.007962 yalu102[202:3792] seg: __LINKEDIT
2017-01-29 10:40:55.007994 yalu102[202:3792] fffffff009394000 - fffffff00aa9c000
2017-01-29 10:40:55.069309 yalu102[202:3792] ffffffff03f70000
2017-01-29 10:40:55.109814 yalu102[202:3792] fffffff00a2655a0
2017-01-29 10:40:55.147699 yalu102[202:3792] pmap: fffffff00a714850
2017-01-29 10:40:55.148144 yalu102[202:3792] got phys at 80bd26000 for virt fffffff002f5f000
2017-01-29 10:40:55.148248 yalu102[202:3792] found cpu 0
2017-01-29 10:40:55.148281 yalu102[202:3792] found physz: fffffff00a287000
2017-01-29 10:40:55.148328 yalu102[202:3792] found cpu 1
2017-01-29 10:40:55.148358 yalu102[202:3792] found physz: fffffff00a287000
2017-01-29 10:40:55.148410 yalu102[202:3792] fffffff00a38733c - fffffff00a38719c
2017-01-29 10:40:55.150142 yalu102[202:3792] ttbr0: 8020bd000 fffffff00a265590
2017-01-29 10:40:55.150690 yalu102[202:3792] got a cpacr
2017-01-29 10:40:55.150829 yalu102[202:3792] level fffffff01642a000 - 810cac000
2017-01-29 10:40:55.150992 yalu102[202:3792] level fffffff019aac288 - 80671a000
2017-01-29 10:40:55.151091 yalu102[202:3792] level fffffff00f51a420 - 81072d000
2017-01-29 10:40:55.151282 yalu102[202:3792] level fffffff01642a000 - 80d32e000
2017-01-29 10:40:55.151445 yalu102[202:3792] level fffffff01612e288 - 82e6af000
2017-01-29 10:40:55.151586 yalu102[202:3792] level fffffff0374af020 - 80cd30000
2017-01-29 10:40:55.280356 yalu102[202:3792] level fffffff01642a000 - 80749f000
2017-01-29 10:40:55.280519 yalu102[202:3792] level fffffff01029f280 - 807120000
2017-01-29 10:40:55.280618 yalu102[202:3792] level fffffff00ff209f8 - 8341a1000
2017-01-29 10:40:55.330808 yalu102[202:3792] level fffffff01642a000 - 805c24000
2017-01-29 10:40:55.330981 yalu102[202:3792] level fffffff00ea24288 - 8063a5000
2017-01-29 10:40:55.331076 yalu102[202:3792] level fffffff00f1a50f8 - 8062a6000
2017-01-29 10:40:55.340528 yalu102[202:3792] level fffffff01642a000 - 81b5b2000
2017-01-29 10:40:55.340706 yalu102[202:3792] level fffffff0243b2280 - 817533000
2017-01-29 10:40:55.340843 yalu102[202:3792] level fffffff020333418 - 835027000
2017-01-29 10:40:55.354731 yalu102[202:3792] fref at fffffff00a384fd0
2017-01-29 10:40:55.368643 yalu102[202:3792] amfistr at fffffff00a084510
2017-01-29 10:40:55.368875 yalu102[202:3792] level fffffff01642a000 - 80692e000
2017-01-29 10:40:55.368974 yalu102[202:3792] level fffffff00f72e280 - 8069af000
2017-01-29 10:40:55.369142 yalu102[202:3792] level fffffff00f7af420 - 814234000

Is iPad Air supported yet?

@CrypticGit its experimental support. seems to be a lot of random issues. so, if you cant risk the device version , avoid it.

@CrypticGit ipad air is 4k

I'm not sure but I don't think 4K devices are supported

@CrypticGit it was added to the git version about an hour or two ago

@CrypticGit ip6 alrd support

Oh sick I haven't checked the commits yet


[Bug Report] Accessibility: DateTime picker must be keyboard and VoiceOver reachable

Element UI version
2.4.9
OS/Browsers version
MacOS Mohave / Safari
Vue version
2.5.17
Reproduction Link
https://jsfiddle.net/5n1sf9L4/1/
Steps to reproduce
Try tabbing between in and out of input fields and picking date and time using only keyboard. For voice over try enabling VoiceOver feature in Mac.
What is Expected?
DateTimePicker should be keyboard and voice over accessible
What is actually happening?
Three accessibility issues:

Focus is totally lost in safari while focus outline doesn't show up in chrome & firefox when the date-picker closed.
For VoiceOver users the date-time picker is completely inaccessible.
Timepicker should receive focus after selecting date

PR welcome


Bug: Avalanche won't install on new reduced size docker image because GCC doesn't exist in python-slim [APE-707]

issue: https://github.com/apeworx/ape/pull/1334#issuecomment-1466864443
fix: https://github.com/apeworx/ape/pull/1334#issuecomment-1467023659

alternatively could add avalanche to recommended-plugins and it would work then out of the box.

@fubuloubu @unparalleled-js let me know your thoughts and if so I will make sure this works and then make a PR to add avalanche to recommended-plugins.

Maybe we should make an ape-slim versus a bigger, more dev friendly ape

Maybe we should make an ape-slim versus a bigger, more dev friendly ape

Yeah, this was my thought too. Have ape and ape-slim. Perhaps there is a better way of creating images that support additional plugin installation though

@fubuloubu @unparalleled-js one issue that I'm having is that ape-avalanche is on an old version and doesn't have the right pins so I'm getting stuck in dependency hell
https://pypi.org/project/ape-avalanche/
ape-avalanche 0.1.0a3
pip install ape-avalanche

In the meantime @PoCk3T-SPAI please use the workaround I posted until we resolve this issue.

I think there are still also some dependency issues, even without ape-avalanche, one example:
INFO: pip is looking at multiple versions of eth-hash to determine which version is compatible with other requirements. This could take a while.
Collecting eth-hash[pycryptodome]<1.0.0,>=0.2.0
  Using cached eth_hash-0.4.0-py3-none-any.whl (9.0 kB)
  Using cached eth_hash-0.3.3-py3-none-any.whl (8.9 kB)

Yes I don't think that ape-avalanche is up to date. I haven't had time to work on it, but I do think we have access now

@fubuloubu we have our own version but the one in pypi is the old version:
https://github.com/albertocevallos/ape-avalanche

working on release here:
https://github.com/ApeWorX/ape-avalanche/pull/2

release has been made, just need pypi updated to point to our repo. I don't think I have the ability to do this because I am not a maintainer. https://pypi.org/project/ape-avalanche/

pypi has been updated with new release.

Thanks a lot @sabotagebeats , I tried to give a try to the latest Docker image with the updated PyPi pointing to the new Avalanche release, but I can't ape compile anymore as part of my build process since my smart contracts rely on accessing the Github of OpenZepellin -> it looks like "git" is not included in the latest/trimmed Docker image?
As a fallback, I tried to install it myself, but I can't seem to run sudo apt-get install git in my own Dockerfile as it looks like Ape Docker image is using a user without sudo access (trying without sudo gives me permission error)
Should users like myself try to workaround git missing or is it a package worth adding in Ape Dockerfile?

@PoCk3T-SPAI is you use the USER in your dockerfile you should be able to install it. In addition you should be able to include it when you're installing gcc:
FROM apeworx/ape:latest

USER root

RUN apt-get update \
    && apt-get install -y \
    --no-install-recommends -o \
    APT::Immediate-Configure=false \
    gcc g++

RUN ape plugins install \
    polygon \
    bsc \
    avalanche \
    arbitrum \
    optimism \
    fantom \
    starknet \
    solidity \
    alchemy \
    infura \
    etherscan \
    --upgrade

USER harambe

let me know if this works for you in the meantime and we will discuss how to best add those functionalities back to the docker image in the long term without bloating it.

@unparalleled-js @fubuloubu if we add the apt-get for git and gcc as mentioned above back to the docker image it increases size to 739MB from 446MB

Thank you once again @sabotagebeats for the prompt feedbacks/actions
RE your last comment https://github.com/ApeWorX/ape/issues/1336#issuecomment-1469039420 : thanks to your work on https://github.com/ApeWorX/ape-avalanche/pull/2 it looks like we do not need GCC (I'm able to use Avalanche plugin on latest Docker image without GCC)... so... maybe only GIT to maintain compatibility with the doc on dependencies ?
RE your suggestion https://github.com/ApeWorX/ape/issues/1336#issuecomment-1469019048: I'm not sure how our environments differ between you and I but I had to add a chown in the mix to make it work, see working example below, in case it helps the next newbie like myself coming here:
FROM apeworx/ape:latest

USER root

RUN apt-get update \
    && apt-get install -y \
    --no-install-recommends -o \
    APT::Immediate-Configure=false \
    git

RUN chown -R harambe /home/harambe/project

USER harambe
...
RUN ape compile

Related: #1340

Since we have resolved the gcc issue by updating the avalanche plugin, I'm going to close this. If it is still an issue please let me know!


[Bug] TVMError: The output probabilities are all NaNs, can not sample from it

🐛 Bug
Seeing TVMError: The output probabilities are all NaNs, can not sample from it while using mlc_chat
Model Used: gpt_bigcode-santacoder
Model weight conversion, config generation, and compilation are being done successfully. The issue is seen while chatting with the model.
To Reproduce
Steps to reproduce the behavior:
mlc_chat convert_weight models/gpt_bigcode-santacoder/ --quantization q4f16_1 -o compiled_models/gpt_bigcode-santacoder-q4f16_1-MLC/
mlc_chat gen_config models/gpt_bigcode-santacoder/ --quantization q4f16_1 --conv-template gpt_bigcode -o compiled_models/gpt_bigcode-santacoder-q4f16_1-MLC/
mlc_chat compile compiled_models/gpt_bigcode-santacoder-q4f16_1-MLC/ --device metal -o model_libs/gpt_bigcode-santacoder-q4f16_1-metal.so

Error is seen when running the command
mlc_chat chat compiled_models/gpt_bigcode-santacoder-q4f16_1-MLC/ --device "metal:0" --overrides context_window_size=1024 --model-lib-path model_libs/gpt_bigcode-santacoder-q4f16_1-metal.so
Error
Prompt: Give the code to design a simple calculator
Code:
, that takes two numbers, and shows the result,
 * where the user can add, subtract, multiply, and divide numbers.
 */
public class Calculator {

	private static String calculate(String num1, StringTraceback (most recent call last):
  File "/opt/homebrew/bin/mlc_chat", line 33, in <module>
    sys.exit(load_entry_point('mlc-chat', 'console_scripts', 'mlc_chat')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/Desktop/mlc-llm/python/mlc_chat/__main__.py", line 36, in main
    cli.main(sys.argv[2:])
  File "/Users/Desktop/mlc-llm/python/mlc_chat/cli/chat.py", line 41, in main
    chat(
  File "/Users/Desktop/mlc-llm/python/mlc_chat/interface/chat.py", line 159, in chat
    cm.generate(
  File "/Users/Desktop/mlc-llm/python/mlc_chat/chat_module.py", line 861, in generate
    self._decode(generation_config=generation_config)
  File "/Users/Desktop/mlc-llm/python/mlc_chat/chat_module.py", line 1147, in _decode
    self._decode_func(generation_config_str)
  File "/Users/Desktop/tvm-unity/python/tvm/_ffi/_ctypes/packed_func.py", line 239, in __call__
    raise_last_ffi_error()
  File "/Users/Desktop/tvm-unity/python/tvm/_ffi/base.py", line 481, in raise_last_ffi_error
    raise py_err
  File "/Users/Desktop/tvm-unity/src/runtime/relax_vm/lm_support.cc", line 489, in tvm::runtime::relax_vm::SampleTopPFromProb(tvm::runtime::NDArray, double, double)
    LOG(FATAL) << "The output probabilities are all NaNs, can not sample from it";
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
tvm._ffi.base.TVMError: Traceback (most recent call last):
  5:
  4:
  3:
  2:
  1:
  0: tvm::runtime::relax_vm::SampleTopPFromProb(tvm::runtime::NDArray, double, double)
        at /Users/Desktop/tvm-unity/src/runtime/relax_vm/lm_support.cc:489
  File "/Users/Desktop/tvm-unity/src/runtime/relax_vm/lm_support.cc", line 489
TVMError: The output probabilities are all NaNs, can not sample from it

Expected behavior
Answer to the prompt should be generated.
Environment

Platform (e.g. WebGPU/Vulkan/IOS/Android/CUDA): M2 Pro, 16 GB
Operating system (e.g. Ubuntu/Windows/MacOS/...): MacOS
Device (e.g. iPhone 12 Pro, PC+RTX 3090, ...): Macbook Pro
How you installed MLC-LLM (conda, source): From source
How you installed TVM-Unity (pip, source): From source
Python version (e.g. 3.10): 3.11.8
GPU driver version (if applicable): N/A
CUDA/cuDNN version (if applicable): N/A
TVM Unity Hash Tag: 59c3556043abdc88f3ed98e07aa6176ac9a3f0cd

#1870 should fix this issue. Please note that you might need to recompile the model after fetching these changes.

#1870 fixes the mixed precision attention computation issue for the attention kernels used by PagedKVCache. But given our GPTBigCode model definition hasn't switched to use PagedKVCache, #1870 doesn't effectively fix the issue here.
To fix this issue, my guess is that we need to add a qk_dtype="float32" kwarg here https://github.com/mlc-ai/mlc-llm/blob/bd2fb42f17db829b0dce150bce8441aec2f186ee/python/mlc_chat/model/gpt_bigcode/gpt_bigcode_model.py#L130
Perhaps I can quickly test this fix..

Hmmmm I just tried on both CUDA (RTX 4090) and Metal (M2 Ultra) with q4f16_1 quantization, but was not able to reproduce the NAN issue. @MBadriNarayanan could you try the fix above and see if it works? Given you build MLC from source I think the trying it would be very fast -- just pass in the qk_dtype="float32", and recompile the model with mlc_chat compile ...... Then see if it works.
I also noticed that the TVM hash you use (59c3556043abdc88f3ed98e07aa6176ac9a3f0cd) is a bit old.
commit 59c3556043abdc88f3ed98e07aa6176ac9a3f0cd
Author: Ruihang Lai<EMAIL_ADDRESS>Date:   Mon Dec 11 13:45:55 2023 -0500

    [MLC] CI Tweaks

    - Revert "[CMake][MSVC] Disable permissive mode for MSVC builds (#16343)"
    - Skip MSC tests
    - Disable NNPack and TFLite
    - Tweak CMAKE_CUDA_ARCHITECTURES

 CMakeLists.txt                           |  5 -----
 cmake/modules/CUDA.cmake                 | 24 ++++++++++++++++++++++++
 tests/scripts/task_config_build_cpu.sh   |  6 +++---
 tests/scripts/task_config_build_gpu.sh   |  2 +-
 tests/scripts/unity/task_python_relax.sh |  2 +-
 5 files changed, 29 insertions(+), 10 deletions(-)

So if possible, could you try to checkout a latest commit, rebuild TVM, and try run the chat again? I'm not 100% sure that TVM version is the cause, but it is just good to checkout to the latest one. Perhaps it can fix.

Hey @MasterJH5574 Just now tried the model. This fix does solve the problem. Seeing no errors currently. Can resolve the issue, thanks!

@MBadriNarayanan Awesome, glad that it works!


sw.js and manifest.json

Hi Vincent
I am hosting my App on one of APEX Hosting companies. I have bought a domain from them (Let's say https://mydomain.com) They gave me FTP Access to public_html
I have followed your nice guide. Now, I have the following files in public_html:

sw.js --> https://mydomain.com/sw.js
manifest.json --> https://mydomain.com/manifest.json
firebase.json --> https://mydomain.com/firebase.json
pushNotification.js --> https://mydomain.com/pushNotification.js

My APEX App URL is
https://mydomain.com/ords/f?p=myAppID
Regarding the file locations, am I going at the right way?

// THESE FILES (sw.js and manifest.json)
// HAVE TO BE SERVED FROM ORDS DOC ROOT. MORE INFO:
// https://github.com/vincentmorneau/apex-pwa/blob/master/doc/part2.md

Regards
Mahmoud

Any idea?

Sorry for the delayed response. The location of your files is exactly right. Do you have any problems with it?


fail if the unix socket length will be too long

Signed-off-by: Tycho Andersen<EMAIL_ADDRESS>

I'd much rather we fix the hashing stuff in LXC if needed rather than have this workaround in LXD.

Closing this, as I've sent a liblxc patch to lxc-devel.


Post release automated changes for healthinsights releases

Post release automated changes for azure-rest-health-insights-radiologyinsights

API change check
API changes are not detected in this pull request.


Pull/Push components does not sync the component_group_whitelist correctly since 3.33.0

Current behavior:
When using version 3.33.0 or higher and syncing components via the pull/push components command, the component_group_whitelist does  not get updated, resulting in an user not being able to select any block.
Expected behavior:
When using the pull/push components commands to sync blocks, they keep the component_group_whitelist
Steps to reproduce:

Create a block folder blockFolder1
Create one block of type universal

create a block called block1  with 1 Blocks  field called field1, whitelist blocks fromt he blockFolder

Create one block of type nestable block

create a block called block2 and put it in the blockFolder1

Create a story based on block1 and in field1 try to create a new block
Run the following script between multiple spaces (use the correct source/target)

DEV=1
PRD=2

storyblok pull-components --space $DEV
storyblok push-components --space $PRD ./components.$DEV.json --presets-source ./presets.$DEV.json

Go

Other information:

Related commit

https://github.com/storyblok/storyblok-cli/commit/c05e64483b399e7437e2612a753e85a3c485a0e1

Related Code

https://github.com/storyblok/storyblok-cli/blob/master/src/tasks/push-components.js#L21C7-L21C22

in the old version source_uuid was added during sync to correctly map the block (Using the getGroupByUuid) but source_uuid is now never generated/mapped anymore

+1

@alvarosabu, hello, Alvaro! Any news on that?

We noticed this about a month ago as well and raised a support ticket about it ( #13844).  We were told they are currently working on a refactor of the CLI that should fix the issue, but it probably won't be available until 2025.


ENH: Add support for URL loading in open_file(s)

This PR adds the necessary code so open_file and open_files can load data from a URL, cache is supported through CacheControl. This module is MIT licensed, built directly on-top of python-requests and recommended on the python-requests website.
There's a two remaining bits:

Where should this behaviour be documented, currently the only docstring that's complete is the one for open_file, but IIRC this function is going to be deprecated soon. The docstring for open_files is empty, so not sure what I should do.

A mention in the changelog is pending from the previous point.

That's awesome!!! Can't comment inline right now, but there are PyCogent
mentions
On Apr 24, 2015 8:55 PM, "Yoshiki Vázquez Baeza"<EMAIL_ADDRESS>wrote:

This PR adds the necessary code so open_file and open_files can load data
from a URL, cache is supported through CacheControl
https://cachecontrol.readthedocs.org/en/latest/. This module is MIT
licensed, built directly on-top of python-requests and recommended on the
python-requests website
http://docs.python-requests.org/en/latest/community/recommended/.
There's a two remaining bits:

Where should this behaviour be documented, currently the only
docstring that's complete is the one for open_file, but IIRC this function
is going to be deprecated soon. The docstring for open_files is empty, so
not sure what I should do.
A mention in the changelog is pending from the previous point.

You can view, comment on, or merge this pull request online at:
https://github.com/biocore/scikit-bio/pull/903
Commit Summary

ENH: open_file now supports loading from a URL
TST: Add tests for file_open with URLs

File Changes

M setup.py
https://github.com/biocore/scikit-bio/pull/903/files#diff-0 (2)
M skbio/io/tests/test_util.py
https://github.com/biocore/scikit-bio/pull/903/files#diff-1 (32)
M skbio/io/util.py
https://github.com/biocore/scikit-bio/pull/903/files#diff-2 (18)

Patch Links:

https://github.com/biocore/scikit-bio/pull/903.patch
https://github.com/biocore/scikit-bio/pull/903.diff

—
Reply to this email directly or view it on GitHub
https://github.com/biocore/scikit-bio/pull/903.

@wasade good catch!

@ebolyen can you review?

@ElDeveloper The logic of this code looks really straight forward. Tested it locally with Wireshark and it is doing everything you would expect! Regarding the documentation. I actually am not super sure either. Some description of this capability should probably be in the module level docs for IO and the input params for read write and sniff could be updated (including the metaprogrammed methods). @jairideout Thoughts on the documentation side of things?

Good to hear that. Sounds good, just let me know where I should be
adding the notes and I'll do that. Although this is a bit unrelated,
what's the reasoning to deprecate open_file? I find that function to be
rather useful. Also, will the docstring in open_files be added once
open_file is deprecated?
On (Apr-27-15|12:14), Evan Bolyen wrote:

@ElDeveloper The logic of this code looks really straight forward. Tested it locally with Wireshark and it is doing everything you would expect! Regarding the documentation. I actually am not super sure either. Some description of this capability should probably be in the module level docs for IO and the input params for read write and sniff could be updated (including the metaprogrammed methods). @jairideout Thoughts on the documentation side of things?

Reply to this email directly or view it on GitHub:
https://github.com/biocore/scikit-bio/pull/903#issuecomment-96784229

@ebolyen regarding the docs, I think the spots you mentioned are sufficient.

@ElDeveloper Actually it looks like with_open is used for the sniffers, so it likely won't be deprecated. As far as the docstring goes for with_opens I think that was just an oversight. If you would like to add them, please feel free! For the rest of the documentation, a note about this feature where it makes sense in the io/__init__.py would be good. The dosctring templates in _registry.py can be updated (you will find them at the bottom of the file). Finally read, write, and sniff should be updated in the same way.

@ebolyen this should be ready for review/merge.

Thanks @ElDeveloper I will have some time tomorrow to look at this!

Merged, thanks @ElDeveloper. Let's create a new issue to improve this feature for streaming URLs.


Allow clients to customize status bar styling

@mattczech Great call; just fixing it as a bug instead of introducing new public API for backwards compatibility has resulted in the SDK-side changes being pretty thin 😄
I've included a demo of the reference app changes as well:
https://user-images.githubusercontent.com/16855664/181350718-199802a4-d654-40b5-9a11-fa0f525510c7.mov


pnp.exe

[Enter feedback here]

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

ID: 18777b73-5898-9e38-c074-5d5ec1572d80
Version Independent ID: d08c4303-6dee-049a-1c69-620b5bcb68f9
Content: PnPUtil - Windows drivers
Content Source: windows-driver-docs-pr/devtest/pnputil.md
Product: windows-hardware
Technology: devtest
GitHub Login: @DOMARS
Microsoft Alias: domars

[Enter feedback here]

GitHub just want say i star LOVE you

@Li77-22oR, thanks for reaching out. I don't see a question or doc issue, so I'm going to close this out.


Allow skip properties to add_source_dataset

Add inherit_skip_properties list to add_source_dataset().
Some properites should not be inherited directly from source datasets in odc-stats. E.g. gqa:mean_x.
We add this inherit_skip_properties list to allow the users to skip some properties.

Give me moment to fix lint.


Fix for "Wrong parameters for SnapshotException"

DB error codes may be (and in PostgreSQL they are) strings (instead of required long).
It solves following error:
Error: Wrong parameters for Apitte\Core\Exception\Runtime\SnapshotException([string $message [, long $code [, Throwable $previous = NULL]]]) in ...

...but not only integer in string - for example code: HV00K (see PostgreSQL Error Codes)

Thanks @Vlczech

You are welcome :-)


Explicit OpenCV flavor requirement conflicts with existing installs of OpenCV

The current practice of specifying a requirement for opencv-python-headless causes conflicts for other installations of OpenCV. For example, if a user requires modules from opencv-contrib-python that are not available in opencv-python-headless but they install imgaug, pip will install both versions and thusly have conflicting versions of OpenCV with different features. To do this, I have to do:
pip install imgaug
pip uninstall -y opencv-python-headless
pip install opencv-contrib-python-headless

It seems this problem was contemplated in https://github.com/aleju/imgaug/pull/324 so I suppose I'm just here to confirm those fears are well-founded.
From what I can tell, imgaug supports any of the four opencv-*-python-* flavors. In light of that, I humbly propose the following as options (with a preference for the first):

Removing opencv-*-* from the install_requires in setup.py. This is the simplest option and is compatible with the current installation instructions in the README which ask the user to install OpenCV on their own first. It is at this point that the user could choose the OpenCV flavor that makes sense for their application.
Implementing more logic to check for existing OpenCV versions. I think this will be kind of a pain but is what scikit-image seems to do and it may create problems for people who use package management systems like pipenv or poetry where package installation sequence is ill-defined. It also will have sequencing issues for users who build their own customized versions of opencv-python in order to use non-free algorithms in OpenCV.

I will gladly submit a PR for this if the relevant folks agree this is okay. Thanks!

There is now a new release online in which setup.py accepts opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless -- if they are already installed. Otherwise it will fall back to opencv-python-headless as its dependency. This improves compatibility with libraries that use other opencv flavors than headless.
This change does not fix the issue that imgaug might end up being installed first, chooses its default opencv flavor (headless) and later on installed libraries are then incompatible with that flavor. At least in some cases that can be handled by installing the other libraries first and then in a separate command imgaug.
I'm rather reluctant currently to remove opencv from the dependencies list. For professional users that would probably be the most convenient choice. I suspect however that the majority of all users is rather inexperienced and would encounter problems if the library did not fully install itself, even if there was a seemingly clear error message. There is also the issue that removing the opencv dependency would probably break many existing builds that rely on opencv being auto-installed via imgaug.

I can support reasoning that helps inexperienced users. Experienced users can typically find workarounds like those suggested in this thread. I do wonder under what circumstances a user would rely on imgaug without also relying on OpenCV directly in their codebase, but that may just be a failure of my imagination. Bottom line, I'm okay closing this issue. Thanks for carefully considering the relevant tradeoffs.

As far as I can tell, the modification to setup.py works great when installing imgaug from source but doesn't help when installing the the pypi wheel. I'm guessing this is because the wheel METADATA for imgaug 0.4.0 has Requires-Dist: opencv-python.
Specifically, if I run pip install opencv-python-headless imgaug, I end up with both opencv-python and opencv-python-headless:
> pip install opencv-python-headless imgaug

Collecting opencv-python-headless
  Using cached opencv_python_headless-<IP_ADDRESS>-cp36-cp36m-macosx_10_9_x86_64.whl (40.1 MB)
Collecting imgaug
  Using cached imgaug-0.4.0-py2.py3-none-any.whl (948 kB)
...
Collecting opencv-python
  Using cached opencv_python-<IP_ADDRESS>-cp36-cp36m-macosx_10_9_x86_64.whl (47.9 MB)
...
Installing collected packages: numpy, opencv-python-headless, Shapely, Pillow, imageio, scipy, opencv-python, pyparsing, six, cycler, kiwisolver, python-dateutil, matplotlib, PyWavelets, decorator, networkx, scikit-image, imgaug
Successfully installed Pillow-7.0.0 PyWavelets-1.1.1 Shapely-1.7.0 cycler-0.10.0 decorator-4.4.1 imageio-2.6.1 imgaug-0.4.0 kiwisolver-1.1.0 matplotlib-3.1.3 networkx-2.4 numpy-1.18.1 opencv-python-<IP_ADDRESS> opencv-python-headless-<IP_ADDRESS> pyparsing-2.4.6 python-dateutil-2.8.1 scikit-image-0.16.2 scipy-1.4.1 six-1.14.0

I couldn't find a way list alternative dependencies in a wheel, and it appears the idea was considered and rejected in PEP 426.

Doesn't a virtual env resolve the issue?

Doesn't a virtual env resolve the issue?

No, this doesn't give us a way to pip install imgaug==0.4 without it installing opencv-python (which we don't want). We've pinned our package to require imgaug==0.3.0 so that we can use opencv-python-headless.

I have also encountered this issue where we are trying to break the dependency on opencv-python (i.e. the non-headless version), but it makes its way in due to albumentations==0.4.6 -> imgaug==0.4.0.
I'm no Python packaging expert, but It seems like the wheel was made in an environment where opencv-python was installed so it made its way into the wheel dependencies. Can we get a new wheel with opencv-python-headless, please?

Same issue here - @aleju what can be done about this?

Does anyone know if pyproject.toml (replacing setup.py) could help us, or is this really a wheel-building issue?

I'm no Python packaging expert, but It seems like the wheel was made in an environment where opencv-python was installed so it made its way into the wheel dependencies. Can we get a new wheel with opencv-python-headless, please?

I second that.
As a workaround (besides holding at 0.3.0) one can simply avoid the binary/wheel method for imgaug, as in:
pip install --no-binary imgaug imgaug # ... other deps

...or in a requirements.txt file...
# ... other deps
imgaug --no-binary imgaug
# ... other deps

And there is yet another option: I have created a pseudo-package re-branding opencv-python-headless as opencv-python (and trying to re-export its install-time version number, too). Thus, you could install this package prior to installing some dependency chain to avoid dragging in opencv-python proper (and thereby replacing headless).
I wonder, though, why the OpenCV Python bindings did not decide to solve the contrib and X11 options via the extras mechanism. So packages which depend on these features could depend on opencv-python[contrib] or opencv[contrib,x11], or in turn make them conditional in extras of their own (e.g. extras_require={'plot':['opencv-python[x11]']})...

Just spent a whole morning getting bit by this. There should at least be a section in the README about how to install with different opencv flavors, and even better an officially supported way of making it happen.

@aleju, I can also confirm that the uploaded wheel triggers the opencv-python dependency (as opposed to opencv-python-headless). I think this could be resolved by either of the following two things:

re-upload the wheel, making sure that the correct library (opencv-python-headless) is referenced in it
do a new release and then upload again

Would that be feasible?

pip install --upgrade pip
Have a try.

pip install --upgrade pip
Have a try.

Can you quickly elaborate what changed?

Can you quickly elaborate what changed?

re-upload the wheel, making sure that the correct library (opencv-python-headless) is referenced in it

IINM, that could be as simple as:
pip download imgaug
wheel unpack imgaug*.whl
sed -i s/opencv-python/opencv-python-headless/ imgaug-0.4.0/imgaug-0.4.0.dist-info/METADATA
wheel pack --build-number 2 imgaug-0.4.0
twine upload imgaug-0.4.0-2-py2.py3-none-any.whl

Anyone with the credentials for imgaug on PyPI could do that.

do a new release and then upload again

Yes, a true post-release according to PEP 440 (like 0.4.0.post1) would probably be better.

re-upload the wheel, making sure that the correct library (opencv-python-headless) is referenced in it

IINM, that could be as simple as:
pip download imgaug
wheel unpack imgaug*.whl
sed -i s/opencv-python/opencv-python-headless/ imgaug-0.4.0/imgaug-0.4.0.dist-info/METADATA
wheel pack --build-number 2 imgaug-0.4.0
twine upload imgaug-0.4.0-2-py2.py3-none-any.whl

Anyone with the credentials for imgaug on PyPI could do that.

do a new release and then upload again

Yes, a true post-release according to PEP 440 (like 0.4.0.post1) would probably be better.

On Windows, this creates another interesting error if you are trying to install imgaug while having an open Python process that is using OpenCV.
ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: <REDACTED>\\.venv\\Lib\\site-packages\\cv2\\cv2.cp38-win_amd64.pyd'
Consider using the `--user` option or check the permissions.

I worked around this using --no-dependencies.

@patzm Could you, being German, try to write/call @aleju ? :) Here are his contact details: http://www.ajung.name/impressum.html

It seems like @aleju stopped working on GitHub around June last year. If he doesn't intend to (exclusively) continue maintaining this repo, maybe someone can offer a helping hand :thinking:. I opened #764 for that matter. Let's discuss over there. If Alex doesn't respond in say a month, I can for sure give him a call :wink:.

Yo apparently the recent release v1.0.0 of albumentations avoids this issue. Check out the release notes: https://github.com/albumentations-team/albumentations/releases/tag/1.0.0


Implement NestedScrollView Widget in the Widget Catalog

NestedScrollView Widget needs to be added to the Widget Catalog. Make sure to include the description of the widget in the Description tab and add an argument to include link to the official docs of the widget (Refer to any example in widgetList.dart for better understanding. Also add an argument for category of the widget and give it a category accordingly. Try to implement all the properties of the widget.
Please attach a screen recording of the same once done in your PR.

can you assign me this?

Sure, good luck!


Implement cat related operations in the AysncOSSFileSystem

fix: #96

Add cat_file to the AioOSSFileSystem
Add modified to the AioOSSFileSystem
Make tests passed related to cat and modified

Codecov Report
Patch coverage: 100.00% and project coverage change: +0.10 :tada:

Comparison is base (adbff11) 92.50% compared to head (e5e4e42) 92.61%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #113      +/-   ##
==========================================
+ Coverage   92.50%   92.61%   +0.10%
==========================================
  Files          13       13
  Lines        1694     1719      +25
  Branches      344      349       +5
==========================================
+ Hits         1567     1592      +25
- Misses         85       86       +1
+ Partials       42       41       -1

Impacted Files
Coverage Δ

src/ossfs/async_oss.py
83.94% <100.00%> (+0.96%)
:arrow_up:

src/ossfs/core.py
83.14% <100.00%> (+0.26%)
:arrow_up:

tests/test_file.py
100.00% <100.00%> (ø)

tests/test_object.py
99.50% <100.00%> (+<0.01%)
:arrow_up:

... and 1 file with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


PAT-1403 fix overlap step views

Fixed Location step to show maps in all task steps.
In this PR I've just added a function to TaskActivity that returns the current step fragment, and I'm using that in Axon's RSLocationBody

-https://jira.devops.medable.com/browse/PAT-1403
Fixes PAT-1403

👍


Rename remove to delete?

What do you think?
It would be compatible with Map API and we could easily swap caches without any huge rewrites. Not only that, we could use this library with other libraries that use Map as default cache, e.g wonderful dataloader.
Required methods are get, set, delete and clear.
PS! I haven't had time to test modified tiny-lru with dataloader yet but same API is still awesome IMO.

Oopsie, I was too hasty this time. LRU class has delete method but it's undocumented. Is it safe to use?
Im going to keep this issue open until I get confirmation. There must be a reason it's undocumented..

@adjourn i think it was added for interop with lowdash a while a go. I'll add it to the README next time a change lands.


Example bug?

In the doc, it's described as below:
tags[<tagName>]
Example: tags.[Acct.CostCenter] where Acct.CostCenter is the name of the tag.
But it looks like that example has extra ".". Will you confirm? Is it supposed to be "tags[Acct.CostCenter]"?

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

ID: d956852a-d98e-c022-d6f2-c2910afe6e93
Version Independent ID: 8107b348-d2b4-214e-2b18-bf813f1fe1e8
Content: Azure Policy definition structure
Content Source: articles/azure-policy/policy-definition.md
Service: azure-policy
GitHub Login: @DCtheGeek
Microsoft Alias: dacoulte

Good catch, @fhryo-msft. looks like the bracket syntax is missing a preceding "." which may have caused the confusion. AFAIK, the doc should read like this: adding @DCtheGeek to confirm.
tags.[]
Example: tags.[Acct.CostCenter] where Acct.CostCenter is the name of the tag

@DCtheGeek happy to initiate a PR if you can confirm the above.

@femsulu I'll validate with engineering, and then update the doc.  I have other changes pending, so would prefer not to have a merge conflict.

@femsulu @fhryo-msft Checked with engineering, it is:
tags[]  - no period
I'll have the docs updated Monday.  Thanks for catching this!
@MicrosoftDocs/azure-cxp-triage #please-close


Shows no background even when theme is applied

First of all, the README was very confusing to me so it must be my mistake but I can't get it to work.
tailwind.config.js
plugins: [
	themeVariants({
		group: 'colors',
		themes: {
			red: {
				selector: '.red-theme',
			},
			blue: {
				selector: '.blue-theme',
			},
			yellow: {
				selector: '.yellow-theme',
			},
			pink: {
				selector: '.pink-theme',
			},
			indigo: {
				selector: '.indigo-theme',
			},
			orange: {
				selector: '.orange-theme',
			},
			green: {
				selector: '.green-theme',
			},
		},
	}),
],

Button.tsx
<button
	className={clsx(
		'inline-flex items-center px-4 py-2 text-sm font-medium text-white indigo:bg-indigo-600
		 red:bg-red-500 border border-transparent rounded-md shadow-sm select-none hover:indigo:bg-indigo-700
		 red:hover:bg-red-500 focus:outline-none focus:ring-2 focus:ring-offset-2 indigo:focus:ring-indigo-500
		 red:focus:ring-red-500',
	)}
	onClick={() => {
		downloadImage(image)
	}}
>
	Download Image
</button>

I have used indigo & red in the button above. I've also tried using indigo-theme & red-theme but it still gives no background.
Also, I don't know how to use it with hover: & focus: because Idk if I've to put indigo:focus: or focus:indigo:.
Do let me know if it's a mistake on my part, thanks.

First of all, the README was very confusing to me so it must be my mistake but I can't get it to work.

No, it's not your fault! I'm planning a revamp of the documentation but time limitations / other obligations and priorities have prevented me from doing so.

Also, I don't know how to use it with hover: & focus: because Idk if I've to put indigo:focus: or focus:indigo:.

It's indigo:focus: and indigo:hover:.
plugins: [
	themeVariants({
		group: 'colors',
		themes: {
			red: {
				selector: '.red-theme',
			},
			blue: {
				selector: '.blue-theme',
			},
			yellow: {
				selector: '.yellow-theme',
			},
			pink: {
				selector: '.pink-theme',
			},
			indigo: {
				selector: '.indigo-theme',
			},
			orange: {
				selector: '.orange-theme',
			},
			green: {
				selector: '.green-theme',
			},
		},
	}),
],

Note that because baseSelector was omitted that it defaulted to :root. This means you need to put the indigo-theme class on the root element (almost certainly the html tag) to activate the indigo theme. And so on for the other colors:
<html class="indigo-theme">
  <button class="text-white indigo:bg-indigo-700 indigo:hover:bg-indigo-800">Indigo on the indigo theme, no color otherwise</button>
</html>

Also, make sure you've enabled the ["colors", "colors:hover", "colors:focus"] variants for the backgroundColor and textColor utilities!

Thank you that looks well-explained. I just went back to theming with Mobx like:
<Listbox.Button
	className={clsx(
		'relative w-full py-2 pl-3 pr-10 text-left bg-white border border-gray-300 rounded-md shadow-sm cursor-default select-none focus:outline-none focus:ring-1 sm:text-sm',
		{
			'focus:ring-red-500 focus:border-red-500': sidebar === 'red',
			'focus:ring-blue-500 focus:border-blue-500': sidebar === 'blue',
			'focus:ring-yellow-500 focus:border-yellow-500': sidebar === 'yellow',
			'focus:ring-pink-500 focus:border-pink-500': sidebar === 'pink',
			'focus:ring-indigo-500 focus:border-indigo-500': sidebar === 'indigo',
			'focus:ring-orange-500 focus:border-orange-500': sidebar === 'orange',
			'focus:ring-green-500 focus:border-green-500': sidebar === 'green',
		}
	)}
>

Which in my opinion looks more cleaner thanks to clsx. I'd probably jump back on this later :)

Thank you that looks well-explained. I just went back to theming with Mobx like:
<Listbox.Button
	className={clsx(
		'relative w-full py-2 pl-3 pr-10 text-left bg-white border border-gray-300 rounded-md shadow-sm cursor-default select-none focus:outline-none focus:ring-1 sm:text-sm',
		{
			'focus:ring-red-500 focus:border-red-500': sidebar === 'red',
			'focus:ring-blue-500 focus:border-blue-500': sidebar === 'blue',
			'focus:ring-yellow-500 focus:border-yellow-500': sidebar === 'yellow',
			'focus:ring-pink-500 focus:border-pink-500': sidebar === 'pink',
			'focus:ring-indigo-500 focus:border-indigo-500': sidebar === 'indigo',
			'focus:ring-orange-500 focus:border-orange-500': sidebar === 'orange',
			'focus:ring-green-500 focus:border-green-500': sidebar === 'green',
		}
	)}
>

Which in my opinion looks more cleaner thanks to clsx. I'd probably jump back on this later :)

@deadcoder0904 Have you seen the "Semantics" section of the documentation? It's meant to make theming like this more maintainable (by collecting it all into one spot):
plugins: [
	themeVariants({
		group: 'colors',
		themes: {
			red: {
				selector: '.red-theme',
                                semantics: {
                                        colors: {
                                                "sidebar-ring": "red-500",
                                                "sidebar-border": "red-500",
                                        },
                                },
			},
			blue: {
				selector: '.blue-theme',
                                semantics: {
                                        colors: {
                                                "sidebar-ring": "blue-500",
                                                "sidebar-border": "blue-500",
                                        },
                                },
			},
			yellow: {
				selector: '.yellow-theme',
                                semantics: {
                                        colors: {
                                                "sidebar-ring": "yellow-500",
                                                "sidebar-border": "yellow-500",
                                        },
                                },
			},
			pink: {
				selector: '.pink-theme',
                                semantics: {
                                        colors: {
                                                "sidebar-ring": "pink-500",
                                                "sidebar-border": "pink-500",
                                        },
                                },
			},
			indigo: {
				selector: '.indigo-theme',
                                semantics: {
                                        colors: {
                                                "sidebar-ring": "indigo-500",
                                                "sidebar-border": "indigo-500",
                                        },
                                },
			},
			orange: {
				selector: '.orange-theme',
                                semantics: {
                                        colors: {
                                                "sidebar-ring": "orange-500",
                                                "sidebar-border": "orange-500",
                                        },
                                },
			},
			green: {
				selector: '.green-theme',
                                semantics: {
                                        colors: {
                                                "sidebar-ring": "green-500",
                                                "sidebar-border": "green-500",
                                        },
                                },
			},
		},
	}),
],

I know it's marked as experimental but I have no intention to change this ^ configuration.
So that makes the HTML like this:
<button class="relative w-full py-2 pl-3 pr-10 text-left bg-white border border-gray-300 rounded-md shadow-sm cursor-default select-none focus:outline-none focus:ring-1 sm:text-sm
               focus:ring-sidebar-ring focus:border-sidebar-border"
>

    Button
</button>

@JakeNavith I haven't but that looks really great. However, it's another abstraction but I think it will make the classNames more compact. Maybe I'll give this project a shot in my next project. For now, it'll be too much unnecessary work :)


Emit documentation for typed constants

I posted https://github.com/kubernetes-sigs/service-apis/pull/173 to generate documentation for service-apis, and I noticed that no documentation is generated for constants of an aliased type.
For example, in the CRD definition, we have:
// GatewayConditionType is a type of condition associated with a Gateway.
type GatewayConditionType string

const (
	// ConditionNoSuchGatewayClass indicates that the specified GatewayClass
	// does not exist.
	ConditionNoSuchGatewayClass GatewayConditionType = "NoSuchGatewayClass"
	// ConditionGatewayNotScheduled indicates that the Gateway has not been
	// scheduled.
	ConditionGatewayNotScheduled GatewayConditionType = "GatewayNotScheduled"
	// ConditionListenersNotReady indicates that at least one of the specified
	// listeners is not ready. If this condition has a status of True, a more
	// detailed ListenerCondition should be present in the corresponding
	// ListenerStatus.
...
)

Documentation is generated for GatewayConditionType, but not for any of the constants that are defined for this type.

GatewayClassConditionType
(string alias)

(Appears on:
GatewayClassCondition)

GatewayClassConditionType is the type of status conditions.

GatewayClassSpec

At least in the way this particular API is written, the doc comments for specific condition types contain information that is useful for API consumers and implementers, so it would be great if these cold be emitted too.

gengo omits comments for constants https://github.com/kubernetes/gengo/issues/186

I agree that this would be nice.


⚠ Jenkins Plugins Artifactory has degraded performance

In 31c29b9, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1319 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 9074de8 after 12 minutes.


Feature/daef 298 Japanese terms of use for the mainnet

This PR introduces Japanese terms of use for the mainnet.

@darko-mijic please also give this update a view - I want to make sure nothing is missed ;)


fix: casbin v2 support

Signed-off-by: closetool<EMAIL_ADDRESS>Fix: #1

@hsluoyz @kuchaguangjie @maxwellhertz plz review

@maxwellhertz

Hi @closetool sorry I'm late. I've merged your pr already. Thanks for the fix! 😃


Cleanup the code to remove lint warnings

This is just a quick code cleanup to remove some of the warnings from the linters, things got a little dirty lately, so we needed to do some spring cleaning.
Signed-off-by: Ken Cochrane<EMAIL_ADDRESS>

Coverage decreased (-0.6%) to 90.56% when pulling 765172b57b0bab189ddc27a2066b84858788f0d5 on code_cleanup into b985d17beba86269963697db32072e06906e1e44 on master.

Coverage remained the same at 91.15% when pulling 765172b57b0bab189ddc27a2066b84858788f0d5 on code_cleanup into b985d17beba86269963697db32072e06906e1e44 on master.


Update azure-storage-limits.md

Remove duplicate description

Hi @tsubasaxZZZ, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (tsubasa.nomura). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

@tsubasaxZZZ - Thanks for your contribution to the Azure docs. On November 16th, we announced the availability of our Azure technical documentation in a new location on docs.microsoft.com. You can read about it on our team blog. This change means the article source lives in a new GitHub repository. Because there are some changes in the source markdown as a result of the move, we can’t pull your contribution over to the new repo without creating a ton of merge conflicts. We invite you to resubmit the change (if you are willing) to the new version of the article at https://github.com/Microsoft/azure-docs-pr/blob/master/includes/azure-storage-limits.md. Thanks for your understanding.


Setting up a sparse matrix is incredibly slow

Hi,
I want to solve a 2D poisson equation Ax=b (to solve for pressure for some fluid dynamics simulation), but I realized that even setting up the matrix is strangly incredibly slow. I'm trying to set 5.242.880 values into a 1.048.576x1.048.576 sparse matrix which takes staggering 40 minutes in release mode on my 3.5GHz 16GB RAM PC.
How is just writing to the matrix so slow ? Can this be done any faster ? (For comparison, writing the same number of elements into an array takes less than a second).
Here's the code:
private const int Width = 1024;
private const int Height = 1024;
private void Test() {
      var A = CreateMatrix.Sparse<double>(Width * Height, Width * Height);
      for (var y = 0; y < Height; y++)
      {
        for (var x = 0; x < Width; x++)
        {
          var mi = MatrixIndex(x, y);
          // neighbors
          var numNeighbors = 0;
          if (x > 0)
          {
            A.At(mi, MatrixIndex(x - 1, y), 1);
            numNeighbors++;
          }
          if (x < Width - 1)
          {
            A.At(mi, MatrixIndex(x + 1, y), 1);
            numNeighbors++;
          }
          if (y > 0)
          {
            A.At(mi, MatrixIndex(x, y - 1), 1);
            numNeighbors++;
          }
          if (y < Height - 1)
          {
            A.At(mi, MatrixIndex(x, y + 1), 1);
            numNeighbors++;
          }
          // diag
          A.At(mi, mi, -numNeighbors);
        }
      }
}

private int MatrixIndex(int x, int y) {
  return y * Width + x;
}

The Internal storage of the sparse matrix is SparseCompressedRowMatrixStorage, which uses Compressed Sparse Row(CSR) format. To add a new non-zero element into the matrix, it will check to increase the size of the internal arrays - Values and ColumnIndices.  It is very time-consuming work.
I met the same issue and could solve it by:
(1) Prepare CSR arrays with the "connectivity" info of the FEM elements. For example, if an FEM element consists of node0,  node1, and node5, the matrix can have non-zero values at [0, 0], [0, 1], [0, 5], [1, 1], [1, 5], and [5, 5]. Here, I don't count lower triangular elements because the matrix would be symmetric.
(2) Create a sparse matrix with the CSR arrays. To do this, I added new method to the MatrixBuilder class(#695): Matrix<double>.Build.SparseFromCompressedSparseRowFormat(NodeCount, NodeCount, nnz, rowPointers, colIndices, values)
(3) Solve the sparse matrix. It is also really time-consuming operation. In #695, I added direct sparse solver of Intel MKL.
I am waiting for the PR to be merged.

@XorTdsc The CoordinateStorage class of my mathnet-extensions project might be interesting for you. Also, if you're looking for direct sparse solvers, take a look at CSparse.NET.
@diluculo I think the current coordinate format implementation has some problems with duplicate and non-sorted entries. The following code fails and - even worse - when you comment out the two duplicate entries, C = A - B throws an exception.
static void TestCoo()
{
    int size = 2;

    var ix = new List<int>(); // row indices
    var jx = new List<int>(); // column indices
    var ax = new List<double>(); // values

    Add(0, 0, 1.0);
    Add(1, 0, 2.0);
    Add(0, 1, 3.0);
    Add(1, 1, 4.0);
    Add(0, 0, 1.0); // duplicate entry
    Add(1, 0, -2.0); // duplicate entry

    var A = Matrix<double>.Build.SparseFromCoordinateFormat(size, size, ax.Count, ix.ToArray(), jx.ToArray(), ax.ToArray());

    // Reversing all arrays shouldn't change the represented matrix.
    ix.Reverse();
    jx.Reverse();
    ax.Reverse();

    var B = Matrix<double>.Build.SparseFromCoordinateFormat(size, size, ax.Count, ix.ToArray(), jx.ToArray(), ax.ToArray());

    var C = A - B; // should be zero matrix

    foreach (var item in C.EnumerateIndexed())
    {
        if (Math.Abs(item.Item3) > 1e-12)
        {
            Console.WriteLine("Ooops, entry ({0}, {1}) is {2}, but should be zero ...", item.Item1, item.Item2, item.Item3);
        }
    }

    void Add(int i, int j, double a)
    {
        ix.Add(i);
        jx.Add(j);
        ax.Add(a);
    }
}

@wo80 I naively assumed that input entries are ordered and not duplicated. Thanks. Non-sorted entries can be solved by simply using Normalize method. How to handle the duplicated entries? Are they added together?
If then, can anybody let me know how to add two T generic types. Can I use dynamic type in the Numerics? Can I add Microsoft.CSharp package to the Numerics?
public class SparseCompressedRowMatrixStorage<T>
{
        ...
        internal SparseCompressedRowMatrixStorage(int rows, int columns, int[] rowPointers, int[] columnIndices, T[] values)
            : base(rows, columns)
        {
            RowPointers = rowPointers;
            ColumnIndices = columnIndices;
            Values = values;

            // ColumnIndices may be not sorted.
            Normalize();

            // sum duplicates entries
            SumDuplicates();
        }

        public void SumDuplicates()
        {
            int nnz = 0;
            for (int i = 0; i < RowCount; i++)
            {
                int index = RowPointers[i];
                int last = RowPointers[i + 1];
                while (index < last)
                {
                    var col = ColumnIndices[index];
                    var val = Values[index];
                    index++;
                    while (index < last)
                    {
                        if (ColumnIndices[index] == col)
                        {
                            //val = val + Values[index]; // Exception: CS0019
                                                // Operator '+' cannot be applied to operands of type 'T' and 'T'
                            // or Add method by using dynamic
                            //val = Add(val, Values[index]);
                            index++;
                        }
                        else
                        {
                            break;
                        }
                    }
                    ColumnIndices[nnz] = col;
                    Values[nnz] = val;
                    nnz++;
                }
                RowPointers[i + 1] = nnz;
            }
        }

        private T Add(T x, T y)
        {
            dynamic dx = x, dy = y;
            return dx + dy; // Exception: CS0656
                   // Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'
        }
        ...

You might as well just document that duplicate entries are not supported :)
Though it would be really useful. If you think of FEM and assembling the system matrix, using coordinate storage without having to care about order or duplicates is really useful. If you want to support this, at some point you will have to check the data type, see CoordinateStorage.cs#L124.

@wo80  Thanks for kind comment.

Your missing the Type T ....
internal SparseCompressedRowMatrixStorage(int rows, int columns, int[]
rowPointers, int[] columnIndices, T[] values)
: base(rows, columns)
{
T* RowPointers = rowPointers;
T ColumnIndices = columnIndices;
T Values = values;*
        // ColumnIndices may be not sorted.
        Normalize();

        // sum duplicates entries
        SumDuplicates();
    }

Brian
On Mon, Aug 10, 2020 at 5:06 AM Jong Hyun Kim<EMAIL_ADDRESS>wrote:

@wo80 https://github.com/wo80 I naively assumed that input entries are
ordered and not duplicated. Thanks. Non-sorted entries can be solved by
simply using Normalize method. How to handle the duplicated entries? Are
they added together?
If then, can anybody let me know how to add two T generic types. Can I
use dynamic type in the Numerics? Can I add Microsoft.CSharp package to
the Numerics?
public class SparseCompressedRowMatrixStorage
{
...
internal SparseCompressedRowMatrixStorage(int rows, int columns, int[] rowPointers, int[] columnIndices, T[] values)
: base(rows, columns)
{
RowPointers = rowPointers;
ColumnIndices = columnIndices;
Values = values;
        // ColumnIndices may be not sorted.
        Normalize();

        // sum duplicates entries
        SumDuplicates();
    }

    public void SumDuplicates()
    {
        int nnz = 0;
        for (int i = 0; i < RowCount; i++)
        {
            int index = RowPointers[i];
            int last = RowPointers[i + 1];
            while (index < last)
            {
                var col = ColumnIndices[index];
                var val = Values[index];
                index++;
                while (index < last)
                {
                    if (ColumnIndices[index] == col)
                    {
                        //val = val + Values[index]; // Exception: CS0019
                                            // Operator '+' cannot be applied to operands of type 'T' and 'T'
                        // or Add method by using dynamic
                        //val = Add(val, Values[index]);
                        index++;
                    }
                    else
                    {
                        break;
                    }
                }
                ColumnIndices[nnz] = col;
                Values[nnz] = val;
                nnz++;
            }
            RowPointers[i + 1] = nnz;
        }
    }

    private T Add(T x, T y)
    {
        dynamic dx = x, dy = y;
        return dx + dy; // Exception: CS0656
               // Missing compiler required member 'Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create'
    }
    ...

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mathnet/mathnet-numerics/issues/721#issuecomment-671269443,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD5OGFPO63O4RCKAI6ZURDR77BB7ANCNFSM4PV3TXYA
.

--
Brian Preston
<EMAIL_ADDRESS>home:<PHONE_NUMBER>


Use 'go run' instead of building a binary for local development test data

Description
Fix this so that the binary doesn't have to be compiled every time.
Setup
make db_dev_e2e_populate

Thanks! Removed a test case from e2ebasic.go and confirmed change was reflected after running make db_dev_e2e_populate. 🚢


Update the Lifecycle of a PR section

This paragraph was written before the advent of reviewers.

The base of the PR needed to be lean4 rather than master, and when I changed it Github closed the PR and won't let me reopen. I will make a new copy now and merge. :-(


Open-Source Version

@IvarK
Can you add a OPEN-SOURCE VERSION of The Reality Update?

I do not have any access to the Reality update source code at all. I am not a tester nor a developer of the original Antimatter Dimensions game and creating this issue doesn't help matters at all. Development takes a while to finish so you cannot expect the source code to be public right away. Please do not mention any more people and be patient. I can imagine this is a priority but it is not possible to always expect fast and smooth development. Thank you

i love you victor

@IvarK

@IvarK
@earthernsence @dan-simon @usavictor210 @aarextiaokhiao @Jacorb90 @mrredshark77
@1234abcdcba4321 @e666666 @qq1010903229
@Naruyoko
@PatcailMemer
WHAT CAN YOU DO FOR THAT??????????

Again, there is nothing I can do to help you. Please stop mentioning people, for they are not likely going to answer you. I am aware the final official update was released very recently, so the game being open source is coming soon. This is my final message to you concerning this matter.


DEV:FsR: Modify underlying architectural elements dependent upon WitsmlObject

Now that we have the converter in the WitsmlObjects Library, we need to modify the underlying architecture elements that support the FluidsReport object in Drillflow.

ETA is 7/24 (AM)  @TessForGithub2
The associated card #642
DEV:FR:Finish Fluids Report Converter #642

Update: All fluids report objects are now funneling through end-to-end in DrillFlow. Closing the card.


What does the game code look like?

Created a new branch 'jpgamebranch' to begin drafting code for the game platform

Shell for the game UI is now in master.  It is capable of creating quests and guilds, and navigating inside the guild; if you are a guild member, or owner/leader, you can navigate inside the game room, which, for now, awaits the RT conversation widget.  There is an apps/models/rpg_model.js sitting there as an empty shell. It will be booted by apps/models/guild_model.js when it is time to start wiring the game API into the guild platform.


Build and release wheels for all supported python versions

The PyPI releases only have wheels for python 3.7, but 3.7-3.11 are supported and tested. This updates CI to build wheels for all of these versions, which should ease installation for users (and may help some of the other installation issues).

You don't need to create a wheel for all versions. The released wheels are compatible with newer versions of Python as well due to abi3-compatibility: https://docs.python.org/3/c-api/stable.html
They will install and work in Python 3.7 and all versions above that.

Hmm, I think you're right, but it looks like the newer x86-64 wheels were built with a newer macos version, so if you're on an older macos version, it'll pull the .tar.gz (or an old opencv version, if you force installing from wheels), eg:
$ pip3 install opencv-python-headless
Collecting opencv-python-headless
  Downloading opencv-python-headless-<IP_ADDRESS>.tar.gz (91.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.8/91.1 MB 498.0 kB/s eta 0:03:02
ERROR: Operation cancelled by user
$ pip3 install opencv-python-headless --only-binary=:all:
Collecting opencv-python-headless
  Downloading opencv_python_headless-<IP_ADDRESS>-cp37-abi3-macosx_10_13_x86_64.whl (51.7 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 51.7/51.7 MB 14.5 MB/s eta 0:00:00
Requirement already satisfied: numpy>=1.17.3 in /Users/jamesoswald/.virtualenvs/dyno-cbd5d54a-py3.10.9/lib/python3.10/site-packages (from opencv-python-headless) (1.23.5)
Installing collected packages: opencv-python-headless
Successfully installed opencv-python-headless-<IP_ADDRESS>

Eg: v...68 for x86_64 uses 10_13

while v...72 for x86_64 uses 10_13

Happy to close this since it should probably be fixed as folks upgrade mac versions.

Yes, that's documented in the README file. GitHub Actions deprecated support for MacOS 10, so only version 11 and above is supported in the latest releases.


fails to load main class in git-bash for Windows

Which version and edition of Flyway are you using?
7.5.4
Which client are you using? (Command-line, Java API, Maven plugin, Gradle plugin)
CLI
Which database are you using? (Type & version)
none - flyway -v
Which operating system are you using?
Windows
What did you do? (Please include the content causing the issue, any relevant configuration settings, the SQL statement(s) that failed (if any), and the command you ran)
PS C:\Users\Matt\opt\flyway\flyway-7.5.4> flyway -v
Flyway Community Edition 7.5.4 by Redgate

PS C:\Users\Matt\opt\flyway\flyway-7.5.4> bash

Matt@DESKTOP-C7GV3UB MINGW64 ~/opt/flyway/flyway-7.5.4
$ flyway -v
Error: Could not find or load main class org.flywaydb.commandline.Main

Matt@DESKTOP-C7GV3UB MINGW64 ~/opt/flyway/flyway-7.5.4
$ ls
README.txt  conf  drivers  flyway  flyway.cmd  jars  jre  lib  licenses  native  sql

Matt@DESKTOP-C7GV3UB MINGW64 ~/opt/flyway/flyway-7.5.4

What did you expect to see?
same behavior in Bash as in PS
What did you see instead?
failure to execute.  This looks very similar to #1642 #735 and #562

using a full path to the executable, rather than putting it in $PATH, does work though

This issue does not effect version 7.5.3

I'm unable to reproduce this
You could first try ensuring no other version of Flyway is on your PATH, and when adding to PATH that the entire installation folder is on the path (i.e. flyway-7.5.4)
If that doesn't work could you provide a reproduction, including exact steps and any modifications made to PATH or other variables

Closing until further activity

after re-downloading and changing my path back to 7.5.4, I'm also not able to reproduce the issue anymore.  Not sure what was up.


Creating boilerplate repository files

[ ] A CONTRIBUTING.md file with instructions on contributing to the project that must include at least the minimum required information. That minimum information includes that contributions to Microsoft projects are subject to our Contributor License Agreement.
Additionally, consider providing technical guidance like build instructions, coding conventions, or a project roadmap in the CONTRIBUTING.md file.
[ ] A SECURITY.md file using the repo-templates/SECURITY.md template.
[ ] A CODE_OF_CONDUCT.md file using the repo-templates/CODE_OF_CONDUCT.md template.
[ ] Consider a SUPPORT.md file using the repo-templates/SUPPORT.md template

@david-risney I will start with adding the security, code of conduct and support file.
I can also start with a draft for the contributing file, but would need your help to add the following build instructions, coding conventions, or a project roadmap

https://github.com/david-risney/WebView2Utilities/pull/90 this addresses the last three items.

https://github.com/david-risney/WebView2Utilities/pull/93 this addresses the first


Can you fix the problem of relative path?

==>
![](/test.png) won't display.

after convert to markdown, please add domain in the configuration add domain and then insert the domain to make it abs path?

See extensions...

See extensions...

You mean this one?
https://github.com/mixmark-io/turndown-plugin-gfm


[WIP] Add experimental go module support

Closing for now as this branch is already too far from master. Will track the issue in #14


CMS 5 beta regression: setter method not called when saving field through edit form

Affected Version
5.0.0-beta3
Description

I have set up my Page with a basic text field
I then create a setter method for that field
Saving a value for this field through a CMS edit form should trigger the setter method(?)

Is Silverstripe 4 it does, but in Silverstripe 5 it does not.
Set up
Page.php:
class Page extends SiteTree
{
    private static array $db = [
        'MyTestField' => 'Varchar',
    ];

    public function setMyTestField($val)
    {
        $this->setField('MyTestField', strtolower($val));
    }

    public function getCMSFields()
    {
        $fields = parent::getCMSFields();

        $fields->insertAfter('Title', TextField::create('MyTestField'));

        return $fields;
    }
}

Silverstripe 4
Input value into field:

Value after page is saved:

Silverstripe 5
Input value into field:

Value after page is saved:
[no change to field value]
Working in both Silverstripe 4 and 5
Interestingly, if I create a test that explicitly sets a value to my field, then this correctly call my setter in both Silverstripe 4 and 5.
class PageTest extends SapphireTest
{
    public function testSetMyTestField(): void
    {
        $page = Page::create();
        $page->MyTestField = 'Uppercase Words Here';

        Debug::dump($page->MyTestField);
    }
}

Output in both major versions:
====================================================
PageTest.php:16 - App\Tests\PageTest::testSetMyTestField()

uppercase words here
====================================================

PRs

https://github.com/silverstripe/silverstripe-framework/pull/10708

Linked PR has been merged


Weird consistent cursor name bug in Firefox

(firefox) there is noticeable behavior where the cursors tend to resize themselves when the name element overlaps with the edge of the window


python3Packages.python-http-client: 3.3.3 -> 3.3.4

Motivation for this change
Update to latest upstream release 3.3.4
Change log: https://github.com/sendgrid/python-http-client/releases/tag/3.3.4
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 148401 run on x86_64-linux 1

4 packages built:

python38Packages.python-http-client
python38Packages.sendgrid
python39Packages.python-http-client
python39Packages.sendgrid

@ofborg eval


Is there a Ternary Search Tree?

Hello,
Is there a Ternary Search Tree implementation here by a different name?
I tried to look for TST or Ternary and didn't see one.  Was wondering if it appears under a different name.
Thank you.

No there isn't one, yet. It's been on my todo list for a while now.
-Justin

@isapir I've added my first pass at a ternary search tree. Update your repository.
https://github.com/phishman3579/java-algorithms-implementation/blob/master/src/com/jwetherell/algorithms/data_structures/TernarySearchTree.java