Add IndexedArray and allow construction from it and Numpy array

This adds a very basic data frame class, IndexedArray, which consists of:

a (multidimensional) NumPy array values, where the first dimension corresponds to "rows" (i.e. values[0, ...] is the first row, values[1, ...] is the second, etc.)
an index of row labels, index, with one per row, so index[idx] is the label for the values[idx, ...] row.

This class is generally much more limited than a Pandas DataFrame (IndexedArray basically exists to be a nicer-to-use (values, index) tuple), but also has much less overhead. For instance, the following shows the cost of constructing the two classes with or without data:
import stellargraph as sg
import pandas as pd
import numpy as np

# empty
%timeit -n 100 sg.IndexedArray()
# 2.69 µs ± 129 ns per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit -n 100 pd.DataFrame()
# 365 µs ± 24.8 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

# data
N = 10000
idx = np.random.randint(2**63 - 1, size=N)
data = np.random.rand(N, 100)

%timeit -n 100 sg.IndexedArray(data, index=idx)
# 1.14 µs ± 40.2 ns per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit -n 100 pd.DataFrame(data, index=idx)
# 144 µs ± 4.12 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

By allowing construction from this IndexedArray type (and a NumPy array too, by assuming that the IDs are 0, 1, 2, ...), we can reduce the overhead of building a StellarGraph object (#1336). The rows correspond to nodes. Construction from a NumPy array/IndexedArray also allows for more precise control over memory usage, because the feature arrays are passed around directly, without copies.
In addition, and more importantly, it opens the possibility of multidimensional node features (#1524), where each node has an associated matrix or higher-rank object. For a specific example: multivariate time series are most naturally modelled as an array of shape (num time steps, num variates) (or vice versa).
IndexedArray supports multidimensional rows in this PR, by passing in a high-rank array. However, StellarGraph does not, because there's a few places that assume vector-per-node features. Changing these would be better handled independently of this core change because it may involve some deprecations and other changes (#1561).
General notes:

This is a more limited form of http://xarray.pydata.org/ , but I decided that (a) it was probably good to not add another dependency unless required, and (b) its overhead is similar to Pandas:import xarray as xr
%timeit -n 100 xr.DataArray()
# 17.7 µs ± 825 ns per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit -n 100 xr.DataArray(data, coords={"dim_0": idx})
# 148 µs ± 12.2 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

We should have a demo discussing this: #1559
This doesn't think about how to handle edges via NumPy at all (so we've still got Pandas overhead in any StellarGraph construction), although it will be applicable to edge features (#1327).
Rendered docs: https://stellargraph--1556.org.readthedocs.build/en/1556/api.html#stellargraph.RowFrame

See: #1524
Performance
With the benchmarks from #1558:
Construction time (test_benchmark_creation), median, in ms:

features
nodes
edges
Pandas
IndexedArray
speedup

None
0
0
3.77
1.28
3.0×

None
20000
100000
5.36
2.90
1.8×

100
20000
100000
17.3
2.86
6.0×

(It's potentially unexpected that the IndexedArray None-20000-100000 is slower than 100-20000-100000, but there's nothing that dependencies on the feature size in the IndexedArray code path, and they're well within error range of each other.)
Long-term memory usage (test_allocation_benchmark_creation), median, in KB:

features
nodes
edges
Pandas
IndexedArray
change

None
0
0
7.0
5.3
-1.7 (-24%)

None
1000
5000
64.1
58.5
5.6 (-9%)

100
1000
5000
459.6
58.5
-401.1 (-87%)

This reflects the features being guaranteed-shared with the original array, meaning that having features vs. not having features are the same. The memory cost of the StellarGraph object is just the graph structure.
Peak memory usage during construction (test_allocation_benchmark_creation_peak), median, in KB:

features
nodes
edges
Pandas
IndexedArray
change

None
0
0
9.0
7.2
-1.8 (-20%)

None
1000
5000
84.2
78.3
-5.9 (-7%)

100
1000
5000
703.5
78.3
-625.2 (-89%)

Real world datasets (using an extended form of the notebook from #1547), formatted like pandas  → numpy.

dataset
time (s)
memory (MB)
memory not shared with data (MB)
peak memory (MB)

Cora
0.020 → 0.0019
15.6 → 15.6
15.6 → 0.062
46.8 → 32.0

Reddit
3.01 → 0.55
712 → 712
712 → 151
1868 → 1682(*)

(*) This is the same as the peak memory required for for loading the data, so the true peak for just creating the StellarGraph is likely lower.
In summary, construction from a NumPy array/RowFrame is much faster (10× on Cora, 5.5× on Reddit), uses less "new" memory (i.e. doesn't duplicate feature arrays) and has lower peak memory usage.
Some questions

This IndexedArray type is reexported at the top level, like sg.RowFrame; is this appropriate?
~The RowFrame name is potentially a bit peculiar. I considered: NodeFrame, but this would be inappropriate after #1327; DataFrame, but having to be specific about sg.DataFrame vs. pd.DataFrame would be endlessly confusing. Can anyone think of better options?~ Renamed to IndexedArray.

(*) This is the same as the peak memory required for for loading the data, so the true peak for just creating the StellarGraph is likely lower.

I've suggested a fix to Python to allow us to measure the StellarGraph peak:

<EMAIL_ADDRESS>https://bugs.python.org/issue40630

It's a great idea to optional conversion from xarray! I filed https://github.com/stellargraph/stellargraph/issues/1575.

Real world datasets (using an extended form of the notebook from #1547)

I realised that #1547 landed, but I forgot to add the updated notebook that this is referring to as I intended. I've now added it. I think the changes are pretty innocuous ( https://app.reviewnb.com/stellargraph/stellargraph/pull/1556/files/ for the pretty view) so unless someone jumps in with comments in the next hour or so, I'll merge.


Fix invalid omniauth redirect

Addresses issue #285

Thanks for this PR @troggy, but we shouldn't be using File.join since the separator isn't guaranteed to be the same across environments. Can you refactor to use vanilla string concatenation instead?

:+1:

@c0mrade - between you and @troggy , whoever gets me a PR for this (without the File.join and preferably with a test) wins!  =]

Like this?

@booleanbetrayal is this good what troggy did?

Thanks! Got lost in the shuffle of a cross-country move.  =]


Fix copy/metadata problems

Because you can supply new data when copying a cube, that makes an obscure failure mode where you can supply new data but it takes _dtype and fill_value from the original cube.
More generally, this can happen any time you copy metadata from one cube to another (as most regrid code does -- e.g. here)
We can fix this by...

fixing copy to keep fill_value and _dtype when data is copied, but losing them when it is replaced.

fixing metadata setter to not assign _dtype + fill_value

#2437 relates
(this is a part of that)
... however, that now rather calls into question why they are in cube metadata at all ?
IIRC it was originally to make cube copy work !
In fact, I think we need to be clearer what "the point" of cube.metadata actually is.

presumably just so you can copy from one cube to another
I believe that it is intended to contain the identity aspects that are independent of the data
-- hence it contains cell methods, but not cell measures.
-- that makes it seem like these things shouldn't be in there IMHO

Closed by #2492


Add pop-count exercise

The exercise name (not the slug itself) was updated recently in problem-specifications so I've accounted for that here. I also moved the exercise to the correct place within the track's exercise array.

Yeah, it'd make the most sense to sort by grouped difficulty and then exercise name. That largely matches what we have already done. We can't sort by slug at the moment because the slug for this exercise is pop-count but the user-facing name is Eliud's Eggs. It seems like Jeremy will fix the slug to match the name later.

@kotp, can I get a merge?


workup input component amounts are not loaded properly

They seem to be clobbered by workup.amount (aliquot amount). If input is only expected for ADDITION workups this may not be a big problem.

@mikennel
Looks like you fixed this here, yeah?
https://github.com/open-reaction-database/ord-interface/commit/1acc8d9fcabfebb690d13367c6f30ff3db9420c0#diff-bafc58d1d386ef4394d539510d1cf470f59eb6e59cee2645c19974fa36983ead

Looks like it!

Nice, in that case let's close this one out


Labels including whitespaces are replaced with "_" which in frontend side

Note that this isssue is reproducible when the dictionary contains more than 1 label.

When a new label with whitespaces is created, the node name will be generated using the sling:key replacing the whitespaces with underscores.
Example:

The tool will show in the label list the node name of these labels instead of the sling:key. The problem comes when a new translation is added to the label. The form submission will create the node without sling:key property and in this case, the label exposed into the final json will be the node name, instead of the sling:key

Steps to reproduce the issue(adding some example of names and language code):

Create new dictionary "test" with one language "sq_al".

Enter in the dictionary and create a new label with whitespaces "this is a test" and add  a translation value "test" to "sq_al" language:

Go back to main dictionaries panel, select "test" dictonary and add a new language "en".

Enter again in the "test" dictionary. The label is now changed to "this_is_a_test".

Add a translation value to the "en" and check the resource. It does not contain the property sling:key.

Check the i18n translation json file exposed for "en", it's using node name instead of sling:key because is missing in the resource: http://localhost:4502/libs/cq/i18n/dict.en.json

The problem is that after step 3, the sling:key from the first language is no longer evaluated.


hermine: init at 0.2.1

New package: https://gitlab.com/hermine-project/hermine
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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/)
24.05 Release Notes (or backporting 23.05 and 23.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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg build hermine

@ofborg build hermine

@ofborg build hermine

@ofborg build hermine


Smooth video generation

The generated video is not temporally consistent, has flickering colours and changing backgrounds. Need suggestions  to ensure temporal consistency and style consistency for all the frames of the video...

Hi, reducing the influence of ControlNet might be one way to improve temporal consistency.
Since the estimated control signals are not quite accurate and temporally consistent, especially the depth, the ControlNet features might introduce temporal inconsistency and artifacts to the background. However, control signals help to ensure the motion. Therefore, it is a trade-off between motion accuracy and background consistency.


Git - better handle symbolic links

If we detect that the workspace folder contains a symbolic link, and the user is running git 2.31 or later, we use the --path-format flag to get the path of the repository root path relative to the workspace folder. This enables us to set the repository root to a path that matches the workspace folder.

Here is the macOS setup that I have used to validate these changes:

Open Terminal and navigate to your desktop
mkdir repro
cd repro && mkdir foo
cd foo && mkdir bar
cd bar && git init
code-insiders .
Add a new file (ex: README.md) with some content
Commit the changes
Close VS Code
Create the symbolic link in the Terminal

ln -s /Users//Desktop/repro/foo/bar /Users//Desktop/repro/bar

Navigate to the repro folder in the Termial
code-insiders bar
Open README.md and change some content

Notice that the dirty diff markers do not appear

Switch to the Source Control view and click on README.md

Notice how a second copy of the same file is opened

Issues listed in 13) and 14) are fixed with the changes from this PR.

@joaomoreno, thanks for the simplified steps and thanks for the feedback. As discussed privately, I will explore another approach where the model will continue to use absolute canonical paths to make sure that we do not open multiple git repositories pointing to the same location. Will close this PR for now and will reopen if needed.

After considering other approaches, we decided to pursue the approach implemented in this pull request.


mj-section padding issue in MS Outlook 2016

Describe the bug
Incorrect padding-right behaviour in mj-section for the MS Outlook desktop client
To Reproduce
Steps to reproduce the behaviour:
https://mjml.io/try-it-live/H1nKX8N5w
Send the rendered HTML and open it in the MS Outlook
Expected behaviour
The padding should be the same as in the test sandbox
MJML environment:
OS: Windows
MJML Version 4.6.3
Affected email clients (for rendering issues):
MS Outlook 2016 desktop version

In the web clients, such as Web Outlook and Gmail it looks correctly

Outlook is using ghost table to mimic an "inline-block"-div. Browser and "modern" email client are smart enough to handle properly inline-block with overflow, but there's no way to have this behavior in a table.
There's really no applicable use of this in a design, i'm closing it


use a simple expression parser instead of regexp to parse directive

Use a state machine based expression parser to parse the directive.
fix #3210 and #3214 #

Thanks and nice job! 👍

@defcc good job!


Configure Azure Pipelines

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

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: seanbarlow sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


kibana: adding liveness probe

[x] Chart version not bumped (the versions are all bumped and released at the same time)
[x] README.md updated with any new values or changes
[x] Updated template tests in ${CHART}/tests/*.py
[ ] Updated integration tests in ${CHART}/examples/*/test/goss.yaml

Hello, please find here a PR for enabling the liveness probe. The same command is used than readiness probe for the check.
Best regards,
Loris

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?


Realm parameter on auth::WwwAuthenticate is optional

From https://github.com/http-rs/http-types/issues/99#issuecomment-723938382:

WWW-Authenticate header: From RFC 7235#appendix-A, the "realm" parameter is optional now.

This probably also applies to ProxyAuthenticate; we should change that too if so.


fix: do not add peers to routing table during RPC handling

Description
I was having a issue where 2 docker dht nodes failed to dht ping each other on startup. The streams would abort due to a read timeout.
Also removed key from the ping tests as not required.
Notes & open questions
I don't think there needs to be a call to this.routingTable.add in onIncomingStream as it should be handled by the topology register.  Although alternatively maybe it could be moved to after the pipe?
Couldn't replicate the issue on localhost between 2 non-dockerised instances although I can provide docker files / test repo / logs if needed
Change checklist

[x] I have performed a self-review of my own code
[ ] I have made corresponding changes to the documentation if necessary (this includes comments as well)
[ ] I have added tests that prove my fix is effective or that my feature works

Makes sense, thanks for opening this.  I think we might also end up trying to add DHT clients to the routing table like this, which would later fail because they wouldn't respond to a ping so it's a waste of resources.


Item divider "color" attribute doesn't work with RC0

Before RC0, we could set the "secondary" attribute on an <ion-item-divider> and it would change the color like this:
<ion-list>
    <ion-item-group *ngFor="let division of teams">
        <ion-item-divider secondary>{{division.divisionName}}</ion-item-divider>
        <button ion-item *ngFor="let team of division.divisionTeams" (click)="itemTapped($event, team)">
            {{team.name}}
        </button>
    </ion-item-group>
</ion-list>

Per the RC0 documentation, we now use a color attribute:
<ion-list>
    <ion-item-group *ngFor="let division of teams">
        <ion-item-divider color="secondary">{{division.divisionName}}</ion-item-divider>
        <button ion-item *ngFor="let team of division.divisionTeams" (click)="itemTapped($event, team)">
            {{team.name}}
        </button>
    </ion-item-group>
</ion-list>

This no longer changes the color of the item divider correctly. Upon inspection in Chrome, the class attribute is getting: "item item-md item-md-secondary", but the .item-md-secondary CSS is getting overridden. See screen shot.

Additionally, here is a Plunker that shows the problem: http://plnkr.co/edit/w6Xqqv?p=preview

duplicate of #8376

Hello all! Thanks for opening an issue with us! I am going to close this issue as a duplicate of #8376 .


volkswagen_we_connect_id not found by HACS

Version of the custom_component
 manifest shows 1.0
Installation method (hacs / manual)
manual
Installation method of hass (venv, docker, hassio,...)
Hassio
Configuration
not possible because not found by HACS

Add your configuration here.

Describe the bug
A clear and concise description of what the bug is.
See above
Debug log

Add your logs here.

Have you tried adding the custom repository mitch-dc/volkswagen_we_connect_id in HACS and restart HA in case it doesn't appear immediately?

Hi, thanks for the help. Searching for the whole path worked and I could find the repo.
The next question is how to configure it. I modified the FIN (this is what I found for my car - I guess in your systems.yaml it's called VIM, right?). After a reboot I still don't see the entities.

You just need to add the integration in Home Assistant and enter the username and password you use to connect to WeConnectID app.
And be patient, because VW servers are not the fastest or more reliable...

didn't help... the only thing I see if I select the volkswagen_we_connect_id card in HACS is the info.md content.
I've removed the volkswagen_we_connect_id folder and cloned again the git repo. (had to copy the volkswagen_we_connect_id folder from the repo to the custom_integration folder directly).
Then I've tried to call python in the ssh shell and noticed that python might not be installed at all... Could this be possible. I'm using home assistant on a Raspi home assistant docker. I would guess that Python should be installed by default.
Any idea?

seems something is wrong in my system. I've installed the package again and rebooted. Seems reboot and everything went fine but still I only see the info.md if I select the volkswagen_we_connect_id integration icon. There is no option to enter my credential. I guess I need to give up.

You know that adding an integration is NOT done in HACS, but done in HA settings, Devices & Services, Add integration button and the searching for Volkswagen and only after that, enter username and password?

shit... that was my fault... I didn't check this again after I couldn't find the integration the firsts time. After re-installation I've found it and could connect to my ID3. Thanks a lot for your great support and sorry for the troubles!!!

Hi, thanks for the help. Searching for the whole path worked and I could find the repo.

I can't find it via HACS 30th of april.


Custom X-Auth-Hmac (and also Authorization) header

I need to implement an API that needs a custom header to work:
X-Auth-Hmac (that's the call signature)
Authorization (that's a bearer token)
I found some examples but did not succeed. I just can't see the headers on my request.
My current code is (just trying to figure out the hmac header first):
let manager = Alamofire.Manager.sharedInstance         manager.session.configuration.HTTPAdditionalHeaders = ["X-Auth-Hmac": "my-custom-key".digestHMac256()] manager.request(.POST, "https://my-url.com/oauth/access-token")         .responseJSON { response in             debugPrint(response)         }
I know there's a lot of closed issues here about custom headers, but I tried to do something like this and still not working.
What I'm missing?
Thanks!

You need to pass the headers in the request method directly, not set them on the configuration. You can also set them in the configuration if you create a custom Manager. But your best bet is to use the headers parameter in the request method.
Best of luck! 🍻


This PR is related to issue #1249. Header & footer added

Related Issue
[Cite any related issue(s) this pull request addresses. If none, simply state “None”]
Fixes:  #1249
Description
I have included the header and footer from the general theme of the website and also worked on light/dark mode.

Type of PR

[ ] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
[Attach any relevant screenshots or videos demonstrating the changes. Make sure to attach before & after screenshots in your PR.]
Before:

After:

Checklist:

[x] I have made this change from my own.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

@Priyank00007
Your pull request has been successfully merged! Don't stop here—continue contributing by addressing more issues and aiming to become a top contributor. Exclusive swag awaits for those who go the extra mile!
Great contribution ! 🎉


Why no 32px grid gutter option?

[ x] I have searched the issues of this repository and believe that this is not a duplicate.

Context
This is mostly a question. For your grid you can set gutters of 8, 16, 24, or 40 px. I agree with the philosophy that you should only set gutters at 8px intervals to follow Material Design, but why is 32px not an option? material.io even has a specific example in grid customization that refers to a 32px gutter:

This layout grid uses larger, 32dp gutters to create more separation between columns. The extra space helps each album to be perceived as an individual entity within a collection.

https://material.io/design/layout/responsive-layout-grid.html#grid-customization

The old guidelines where not referring to this value on purpose. This has changed. I agree, it would be better to support this value. Thanks for raising the problem. Do you want to work on it? :)


Battlefield 2 crash

I have all vulkan libs installed. vulkancube and vulkaninfo works, Urban Terror, Quake and Quake 3 all work with vulkan enabled (native linux x64s).
`info:  Game: BF2.exe
info:  DXVK: d9vk-0.22-kerokero
warn:  OpenVR: Failed to locate module
info:  Required Vulkan extension VK_KHR_get_physical_device_properties2 not supported
info:  Required Vulkan extension VK_KHR_surface not supported
info:  Required Vulkan extension VK_KHR_win32_surface not supported
terminate called after throwing an instance of 'dxvk::DxvkError'
abnormal program termination`

I have all vulkan libs installed. vulkancube and vulkaninfo works, Urban Terror, Quake and Quake 3 all work with vulkan enabled (native linux x64s).

You're missing 32bit Vulkan drivers.


JDl code generation and Open Close principle

Overview of the feature request
Hello,
From the JDL, JHipster generates the Entity, ServiceImpl and related interfaces
I need to write custom code, on top of the generated code - where should I keep it?
One place is to edit the generated code and insert custom code inside them.
But this defeats the Open Close principle. Also the next time the JDL is modified imported - and each time the generated classes are overwritten and my custom code will be lost.
( The JDL modification can be - a new entity is added, a column is deleted or data type is changed in an existing entity, etc.)
Another alternative can be extend generated code and write custom code in the extensions - so that it is not overwritten when modified JDL is re-imported (maximum compilation errors are introduced in custom code and they would need to be fixed manually. This way the Open Close principle is adhered too as well.
But this way my code base becomes heavy - as lot many java classes will have to be maintained (youtube url below).
So we need a middle route. Any suggestions/ comments?
thank you
Jeevan
Motivation for or Use Case
Adhere to S.O.L.I.D practices (and in specific the Open Close principle).
Related issues or PR
This feature has already been raised but could not locate any resolution.

Also described on YouTube : https://www.youtube.com/watch?v=9WVpwIUEty0
jhipster-core GitHub : https://github.com/jhipster/jhipster-core/issues/13
jhipster-core GitHub : https://github.com/jhipster/jhipster-core/issues/259

[x] Checking this box is mandatory (this is just to show you read everything)

@jnsunkersett I guess everyone forgot about this issue... the answer is simple: you keep it with your generated code and use the "side-by-side" pattern. You generate code with JHipster, but don't modify it. Instead, you extend/compose the generated classes with new ones (the custom code).
That's what the video is about, and your suggestion as well.
This is not an issue with the JDL, but with generators in general.


SDN on HCI Single Node cluster

Hi,
Do you have any supporting case scenario of running SDN on HCI Cluster single node?
i did encounter issue based on screenshot below.

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

ID: 6db0c266-9042-4171-77fe-666d43eeba15
Version Independent ID: fbce33cb-7178-5933-e35d-1f5b40af00f5
Content: Software defined networking (SDN) in Azure Stack HCI and Windows Server - Azure Stack HCI
Content Source: azure-stack/hci/concepts/software-defined-networking.md
Service: azure-stack
Sub-service: azure-stack-hci
GitHub Login: @AnirbanPaul
Microsoft Alias: anpaul

@xzrian Please help with the link of document on which above document feedback request is created.
Under this repository we want to make sure any issue is linked to a doc so we can help others that may be having the same issue.

hi @AshokPeddakotla-MSFT
sorry didnt notice the email.
below are the docs as per requested.
https://docs.microsoft.com/en-us/azure-stack/hci/concepts/software-defined-networking

Hi, can you remove the regkey on the HCI host as referenced in the below article and try again: https://docs.microsoft.com/en-us/azure-stack/hci/deploy/sdn-wizard#redeploy-sdn-network-controller

@AnirbanPaul Thanks for sharing the details.

@xzrian Can you please try the suggestion and see if that helps.

@xzrian
Hope the provided information is helpful.
We will now close this issue. If there are further questions regarding this, please tag me in a comment. I will reopen it and we will continue the discussion.

Hi Anirban
I believe we met on SDN support email.
Yes i did run the command to remove and try to add again.
did not work
Just to add on that currently I’m running azure stack hci on top of unsupported hardware( no RDMA, no 10G, unmanaged switch with no DCBX)
Do let me know if you have case scenario where the SDN running on Single node cluster.


Update INSTALL.md

Went through installation on MacOS High Sieria v. 10.13.3 and installed Go with Homebrew but the installed folder's name was not "gocode" so the export paths did not work by blindly following the instructions. Since the instructions are suggesting using Homebrew's installation, these paths should match.

Your $GOPATH can be set to anything you wish. Don't confuse the $GOATPH with where the code for Go's compiler and runtime live.


cannot move/rename an accepted shared resource outside of shares folder

Describe the bug
A clear and concise description of what the bug is.
Steps to reproduce
Steps to reproduce the behavior:

create two users uu1 and uu2
share a file lorem.txt with uu2 using uu1 with edit permission
accept the incoming share for uu2
move the /Shares/lorem.txt to /Shares/lorem-renamed.txtRequest is successful

move the file /Shares/lorem-renamed.txt to /lorem.txt

Expected behavior
FIles move should be successful with HTTP status 201

close the issue if this is not the expected behavior for ocis

Actual behavior
MOVE request fails with status 400 and no content

```console
curl -k -u uu2:uu2 -X MOVE https://localhost:9200/remote.php/webdav/Shares/SharedPostMAN.feature -H 'Destination: https://localhost:9200/remote.php/webdav/SharedPostMAN.feature' -v
*   Trying <IP_ADDRESS>:9200...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 9200 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: O=Acme Corp; CN=OCIS
*  start date: Jun  4 12:31:40 2021 GMT
*  expire date: Jun  4 12:31:40 2022 GMT
*  issuer: O=Acme Corp; CN=OCIS
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* Server auth using Basic with user 'uu2'
> MOVE /remote.php/webdav/Shares/SharedPostMAN.feature HTTP/1.1
> Host: localhost:9200
> Authorization: Basic dXUyOnV1Mg==
> User-Agent: curl/7.68.0
> Accept: */*
> Destination: https://localhost:9200/remote.php/webdav/SharedPostMAN.feature
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* Mark bundle as not supporting multiuse
< HTTP/1.1 400 Bad Request
< Access-Control-Allow-Origin: *
< Content-Length: 0
< Content-Security-Policy: default-src 'none';
< Date: Wed, 09 Jun 2021 07:10:59 GMT
< Vary: Origin
< X-Content-Type-Options: nosniff
< X-Download-Options: noopen
< X-Frame-Options: SAMEORIGIN
< X-Permitted-Cross-Domain-Policies: none
< X-Robots-Tag: none
< X-Xss-Protection: 1; mode=block
<
```

Setup
export OCIS_URL=https://localhost:9200                     6s   12:42:27
export STORAGE_HOME_DRIVER=ocis
export STORAGE_USERS_DRIVER=ocis
export STORAGE_DRIVER_OCIS_ROOT=/tmp/ocis/storage/users
export STORAGE_DRIVER_LOCAL_ROOT=/tmp/ocis/local/root
export STORAGE_METADATA_ROOT=/tmp/ocis/metadata
export STORAGE_DRIVER_OWNCLOUD_DATADIR=/tmp/ocis/owncloud/data
export STORAGE_HOME_DATA_SERVER_URL=http://localhost:9155/data
export STORAGE_USERS_DATA_SERVER_URL=http://localhost:9158/data
export STORAGE_SHARING_USER_JSON_FILE=/tmp/ocis/shares.json
export PROXY_ENABLE_BASIC_AUTH=true
export WEB_UI_CONFIG=$HOME/www/ocConfigs/config.json
export IDP_IDENTIFIER_REGISTRATION_CONF=$HOME/www/ocConfigs/idp.yml
export OCIS_LOG_LEVEL=error
export SETTINGS_DATA_PATH=/tmp/ocis/settings

curl -k -u admin:admin https://localhost:9200/status.php | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   197  100   197    0     0  13133      0 --:--:-- --:--:-- --:--:-- 13133
{
  "installed": true,
  "maintenance": false,
  "needsDbUpgrade": false,
  "version": "<IP_ADDRESS>",
  "versionstring": "10.0.9",
  "edition": "community",
  "productname": "ownCloud"
}

Additional context
Relates issue is covered in test here

The problem is not with moving outside but move in general IMO
Using the UI I cannot even rename a shared file

also Related https://github.com/owncloud/ocis/issues/2146

@dpakach renaming shared file inside the shared folder is possible if only the sharee has edit permission.

update: renaming shared file for sharee inside shares folder is only possible for ocis started with ocis storage driver

renaming does not work with owcloud storage driver

This is expected behavior in oCIS (difference to how oC 10 handles the case). Please adjust the tests and remove from expected failures.

Some of the test adjustments may have already been done. @dpakach please get someone to have a look - I remember that we recently looked at this related to other issues/discussions.

Tests have been adjusted/skipped as appropriate. The defined-correct behavior on oCIS is that received shares are "jailed" inside the "Shares" folder and cannot be moved outside the "Shares" folder.
Closing this issue.


Fix some trailing whitespace.

(My emacs is configured to follow along with ${VERIBLE_ROOT}/.editorconfig so opening and saving generated this diff.)


Clear away psbFromBytes

As observed here, this function has some severe issues with referential transparency, and is thus generally not safe. While this PR deprecates both psbFromBytes (and psbZero) using a DEPRECATED pragma, as well as removing its uses internal to cardano-base itself, this function is still used internally to cardano-crypto-class:

psbFromByteString
IsString (PinnedSizedBytes n)

While these should both be modified to not use psbFromBytes, the IsString instance is rather horrifying: much like the same instance for ByteString, is hugely problematic for mostly the same reasons. I would propose removing this IsString instance wholesale, and replacing it with a quasi-quoter.

IsString (PinnedSizedBytes n)

Holy :hankey:

I would propose removing this IsString instance wholesale, and replacing it with a quasi-quoter.

This is a very good suggestion!

I have something of a personal usability stake in this, as a task I will have soon will be adding golden tests to ensure that the SECP256k1 serializations are behaving like we expect on a fixed set of examples. Having proper literal syntax (which checks my mistakes and doesn't do things behind my back) is definitely something I would want!
Furthermore, there's also a huge problem with the IsString instance: it produces _un_pinned data. Not only is this super counter-intuitive (the type is named _Pinned_ByteString after all), it's also dangerous, as it means I can't pass such literals to the FFI and expect them to behave themselves.

There are more functions in the PinnedSizedBytes module that have referential transparency issues:

psbFromByteString (implemented in terms of psbFromBytes)
psbFromByteStringCheck (implemented separately, for some reason, but also has the potential to create surprising sharing/non-sharing behavior the same way psbFromBytes does)
pinnedByteArrayFromListN (though this one is not exposed, only used inside the module)

In a nutshell, if we want PinnedSizedBytes to be referentially safe in the face of mutations, then all construction and copying must happen in IO (or ST). psbCreate and friends already observe this restriction, so it's actually a bit strange that the offending ones don't.
So IMO the sane solution would be to:

Change the offending functions to return IO (PinnedSizedBytes n) instead of PinnedSizedBytes, and eliminate unsafe{Dupable}PerformIO from their implementations
Remove the IsString instance, and provide an alternative (psbFromString) implemented in IO, in terms of one of the fixed psbFrom... functions
Hunt down all usages of these functions and change the call sites to deal with the IO.

If you then still feel the need for a quasiquoter, it can be implemented fairly easily in terms of the new psbFromString function. It would largely be a cosmetic thing, except that you could add compile-time length checks (which isn't possible with plain string literals).

@tdammers - I mention psbFromByteString as a problem in the initial post, so 100% agreed.
psbFromByteStringCheck is actually implemented by making a copy, which should avoid the sharing behaviour. Is there something I'm missing here? The same applies to pinnedByteArrayFromListN as far as I can tell.
I'm not sure changing all of these to IO is necessarily what we want: we can still be safe as the API currently stands as long as we copy each time. psbFromByteString isn't even hard to fix in this regard, and the others, as far as I can tell, are not an issue unless I'm missing something. I'm strongly in favour of a quasiquoter, because checks on literal form (including length) are very desirable for constants in my opinion.

I do agree with @kozross , there are no problems with psbFromByteStringCheck.
I do want to point out that the description of this ticket is a little misleading psbFromBytes, psbFromByteString and pinnedByteArrayFromListN have no problems with referential transparency. It is only when the produced frozen buffer is mutated, that is when the referential transparency is violated, which is exactly the expected behavior of frozen arrays. The problem comes from the fact that the produced PinnedSizedBytes were used incorrectly, i.e. unsafeThaw (or in our cases simply casted to as Ptr and mutated) is what the actual cause of the problem. As @kozross well pointed out, this is the correct solution:

we can still be safe as the API currently stands as long as we copy each time.

In fact the whole PinnedSizedBytes API is unsafe because it does not make the distinction between mutable and frozen state and allows for the buffer to be treated arbitrarily and it is left up to the user to be very careful about what is safe and unsafe. The only defense for such API I have is that all operations have to be done on Ptrs due to FFI, while preserving purity and referential transparency.
So, @tdammers switching all to IO will not help, in fact it will make things a lot worse, because all of the functions in the cardano-crypto-class library are used from pure non-IO code, which would lead for those unsafePerformIOs to travel up into use sites, thus making the codebase a lot more unstable. As far as I can tell current uses of unsafe{Dupable}PerformIO are safe, so we should leave them alone, but we could do a bit of work on making the API safer and I do have some ideas on that front.

Right, yes. I think what it boils down to is that we need to decide whether we want to present PinnedSizedBytes with value semantics (immutable) or with mutable-reference semantics (immutable reference to mutable value).
ByteArray already provides the reference semantics, so the right thing to do here is to maintain the pure API, but make it so that in-place mutations operate on copies.


PascalCase for type names, or interfaces instead of types in models

Description
Just a copy of this feature request from the openapi-typescript-codegen project
https://github.com/ferdikoomen/openapi-typescript-codegen/issues/1893
I'm personally mostly interested in the option to change the naming to PascalCase.

Like in the title.
Is there an option to set, that will change the name of models from camelCase to PascalCase, and option that would set model to be declared as interfaces instead of types ?
By default we have types with camelCase names

I would like to get interfaces with PascalCase names.

@pawKer the types are defined based on the naming of the model in your spec. If you use PascalCase there they will be PascalCase. If you use camelCase, they will be camelCase.
Cc: @mrlubos about the ability to choose interface vs types.

Thanks for the quick response @jordanshatford, I have noticed that but was hoping I can keep the spec as is and only modify the generated code.

@pawKer sounds reasonable. I think if we added an option for this it would probably allow specifying snake_case, PascalCase or camelCase.
Let's see what @mrlubos thinks.

We could add this through optional objects, although I think we should set pascalcase for interfaces by default as that's the recommended TypeScript way. Which would in turn remove the need for this pull feature, but to avoid breaking output for others, we should offer camelcase too 😀


chore(cicd): create release triggered only on new tag creation

:tada: This PR is included in version 1.5.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Style/NumericLiterals autocorrect is not safe

Style/NumericLiterals autocorrector is not safe.
In particular, it is not safe to correct == 0 to .zero? because
nil == 0 => false
whereas
nil.zero? => NoMethodError: undefined method `zero?' for nil:NilClass
There's no way that RuboCop could differentiate cases where correction would be safe from those where it's unsafe.
Therefore, the style corrector should be tagged as unsafe. It would also make sense to add to the documentation a sentence explaining why autocorrection is unsafe.

Alternatively:

the cop could ignore zero? in the same way it ignores nonzero?
the cop could flag  == 0, but the autocorrect would leave it alone.

My preference is simply to tag the autocorrect as unsafe. Having RuboCop make the correction at the same time as it's correcting  > 0 and  < 0 is a big time saver.
If you let me know how you'd like to proceed I will try to create a PR.

@JoeCohen I'm okay with marking auto-correct as unsafe. PR greatly appreciated. 🙇

Closing the Issue. I misread the Manual: I meant Style/NumericPredicate buI was looking at Style/NumericLiterals.
Style/NumericPredicate already does exactly what I requested.
My apologies.


support http status API

It’s the same as TiKV
Jepsen uses it to check if the server is up.

@bobotu PTAL


Different result from docs with default sequence

I'm running dnds with python 2.7 installed via cloning the github repo. When I run the below command
python ~/Dropbox/programs/dnds/dnds.py
It returns the result 0.642189586115. This is different from the result of 0.86 on https://github.com/adelq/dnds
Why is this? Thanks for the nice package!

I'm glad you like it!
Yup, that value is expected for the sequences in dnds.py, the README is using the test sequences from test_dnds.py. I'll fix the README documentation to be more explicit about what sequence_1 and sequence_2 refer to. Thanks for the notice!


fix layout of navbar in job listing

Pull Request Template

Please provide all of the details below. Pull requests missing any of the information below will be closed!
Providing the issue number/url helps us identify the problem being solved and keep the issues tab clean and tidy

Summarize what this PR fixes:-
Fixes #823
Checklist
(Add an x between the brackets to check the items)

[x] I have summarize what this PR fixes above
[x] I have provided the issue ID/URL above
[x] I have not added Bootstrap or jQuery and used correct styling guide.
[x] This PR fixes only the issue mentioned above (create separate PRs for separate issues)
[x] I was the first one to claim the issue or I created the issue - I created the issue

Honestly, add an empty li tag to fix a styling issue is not a great fix. It's bad for accessibility and overall bad practice. I think we should find the problem and fix why it's happening.


Browser's Find command doesn't properly work with CodeMirror editor

When using a CodeMirror editor that is taller than the browser window (such as an auto-resizing editor) and searching for a word using the browser's built-in Find functionality (e.g., Edit > Find), if any occurrences appear in the CodeMirror editor, the browser scrolls to the very bottom of the page regardless of where the first occurrence is.
Also, the browser's Find Next command only "stops" once in a CodeMirror editor regardless of how many search match occurrences are in the editor.  I can tell that Chrome sees all the occurrences, because the Find UI that drops down from the upper right of the browser window says "1 of 40".
To see an example of these behaviors, open the Auto-resizing editor demo page and copy/paste the editor's content several times over until it becomes tall enough to cause the browser window to have a vertical scroll bar.  I have tried this in Chrome and Safari on OS X.
These are difficult behaviors to explain, but the gist of it is that CodeMirror seems to confuse the browser's Find functionality.  I know I can use CodeMirror's built-in find/replace, and I'm headed in that direction, but I thought it was worth bringing this up.
And as always, thanks for such an awesome in-browser editor!

The brokenness seems to only occur in Webkit. Removing the draggable=true from the divs makes webkit cycle properly through the elements, but it gets confused again as soon as it causes a scroll event to happen in the editor (which triggers an update to the DOM to make sure the scrolled-to elements are available). This seems to be a browser bug, more than a CodeMirror bug.
On the other hand, CodeMirror will never, even in browsers with better search implementations, be fully searchable through the browser, because it doesn't generate DOM nodes for the whole edited document, so the browser doesn't know about all the text that's available.

May be it is possible to create a hidden textarea with full text, and then track selection in it created by in-browser built-in find?

Keeping a textarea with the full text is even more expensive than just rendering the full text to the DOM, not to mention that the synchronizing would be a nightmare.

Thanks for taking a look at this.  I know browser-specific issues are always a pain, so I completely understand where you're coming from.  The good news is that the browser's find command isn't entirely broken, because the search matches are still visually highlighted.  (The brokenness is in that the browser scrolls all the way to the bottom of the page rather than to the first match.)
Anyway, I just wanted to follow up and say thanks.  If I come up with any creative ways to solve this, I'll post here again, but this is admittedly a low-priority issue, especially since it is browser-specific.

See also issue #232 . Combined with a hack that turns off draggable in Webkit and only turns it on when a mousedown event is seen, this will probably improve the situation.

This is now fixed as far as it can be fixed without moving to a completely different architecture. Documents with more than 100 lines will still cause browsers to miss matches in some cases, as the document won't be wholly rendered.

Excellent, thanks!  I tested it out a bit and it works great!

In case others get to this page via google, looks like this is the best way to do this at the moment: http://codemirror.net/2/demo/search.html

Is there an option letting you turn off the partial-render? I care more about being able to search the entire document than performance.

Never mind, found it on the Manual page:
"viewportMargin: integer
Specifies the amount of lines that are rendered above and below the part of the document that's currently scrolled into view. This affects the amount of updates needed when scrolling, and the amount of work that such an update does. You should usually leave it at its default, 10. Can be set to Infinity to make sure the whole document is always rendered, and thus the browser's text search works on it. This will have bad effects on performance of big documents."


CI against Ruby 3.1

Ruby 3.1.0 has been released and this Ruby version is available on cimg/ruby:3.1 image.

https://www.ruby-lang.org/en/news/2021/12/25/ruby-3-1-0-released/
https://hub.docker.com/r/cimg/ruby

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[ ] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[ ] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

GitHub Action is not ready yet for 3.1.0 image.

Error: Unknown version 3.1 for ruby on windows-2019
available versions for ruby on windows-2019: 2.0.0, 2.1.9, 2.2.6, 2.3.0, 2.3.1, 2.3.3, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.9, 2.4.10, 2.5.0, 2.5.1, 2.5.3, 2.5.5, 2.5.6, 2.5.7, 2.5.8, 2.5.9, 2.6.0, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, 2.7.0, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 3.0.0, 3.0.1, 3.0.2, 3.0.3, head, mingw, mswin
Make sure you use the latest version of the action with - uses: ruby/setup-ruby@v1
File an issue at https://github.com/ruby/setup-ruby/issues if would like support for a new version

Only CircleCI Ruby 3.1 matrix will be added in this PR. Windows matrix of GitHub Actions will be added after https://github.com/ruby/setup-ruby/pull/253 has been integrated.


Tawfik Yasser

Due we close new issues on PR merge and voting is still possible on closed issues I will close this one. Nice Profile btw 🚀


Translated TypeScript of standalone templates fails to compile under --isolatedModules

In a project that uses isolatedModules in its tsconfig.json, glint's translated TypeScript will fail to compile for some standalone templates that don't use any components:
app/templates/error.ts:1:1 - error TS1208: 'error.ts' cannot be compiled under '--isolatedModules'
because it is considered a global script file. Add an import, export, or an empty 'export {}'
statement to make it a module.

The fix looks like it should be as simple as adding a dummy export to the generated TypeScript code.

Looks like something odd is going on here. The intermediate representation is not actually being generated for this template, so far as I can tell. app/templates/error.ts does not get created in GLINT_DEBUG and there's only a blank entry for it in the DocumentCache.

The fix looks like it should be as simple as adding a dummy export to the generated TypeScript code.

I think that should be as straightforward as updating this: https://github.com/typed-ember/glint/blob/1a83218cf0ac79759c32da47ea1d63360bcdef62/packages/core/src/common/transform-manager.ts#L375

I think there's another bug in here, however, in that for excluded templates we're producing a blank TypeScript file instead of excluding it from the build entirely.

The contract of include/exclude is nebulous at best, but it's not obvious to me that it's a bug to represent excluded templates with an empty placeholder internally.
Either way, I've been begging the community for a while now to stop using include/exclude and switch to @glint-nocheck, updating every mention I can find in the docs and even building a script to automate that process, but it still seems to be what people reach for. If you know of resources out there that are still guiding folks to use exclude config, can you point me at them? 😅

Regarding exclude, I found it here: https://typed-ember.gitbook.io/glint/using-glint/_index
I probably skimmed right past the info box due to banner blindness and went straight to the example code.

I went to put a fix in place for this, but I wasn't able to reproduce the problem to ensure that my fix actually worked. Can you share a minimal reproduction?

@dfreeman fwiw i'm seeing this in the dummy app of an ember addon (specifically the error.hbs file, similar to OP), but not in a newly-generated ember app.

@cafreeman Thanks, it's helpful to know it's definitely not a one-off issue. I'm still stuck until I can actually see it in action and verify that I'm fixing it, though 🙂
To confirm:

the newly-generated app you tested with has a template with no backing .js/.ts module in it somewhere?
are the app and the addon on the same TS version?
what differences are there in the compilerOptions between the app and the addon?

Reproduction: https://github.com/bwbuchanan/glint-459


Implement Endorsement for Ecosystem member

Acceptance Criteria:
For Ecosystem Member:

[x] 	a. Add "Profile" and "Endorsement" option in sidebar for ecosystem
[x] 	b. Add option in Ecosystem dashboard for member and endorsement summary
[x] 	c. Implement design for Ecosystem profile page
d. Implement endorsement page with below functionality

[ ] 		    1. Implement data table
[ ] 		    2. Add filter with schema and cred-def options
[ ] 		    3. Implement search functionality
[ ] 		    4. Implement pagination
[ ] 		    5. Create card/rows to show cred-def and schema requests with status

[x] 	e. On click of endorsement card for SCHEMA:

status = requested => Show popup with only details
status = approved => Show popup with only details
status = rejected => Show popup with only details

[ ] 	f. On click of endorsement card for CRED-DEF:

status = requested => Show popup with only details
status = Signed => Show popup with details and "Submit" option
status = rejected => Show popup with only details

[ ] 	g. Add option in create schema to send schema creation request
[ ] 	h. In cred-def create option, update create cred-def option with send cred-def creation request

Implement below APIs

[ ] GET- Endorsement list of Schema and Cred-def
[ ] POST- Submit cred-def creation request
[x] GET- Ecosystem Profile details
[ ] POST- Request Schema creation
[ ] POST- Request Cred-def creation

Tested in the QA environment and working as expected.


Add open drain I/O example to rp-pico board

I am completely new to embedded programming and I want to read temperature data from a dht11 sensor using dht11-rs.
But it seems that this library needs access to a pin that both implements embedded_hal::digital::v2::OutputPin and embedded_hal::digital::v2::InputPin.
I do not know how a pin must must be initialized to meet these criteria and adding an example will help me and others who might have the same problem.

As far as I know, rp-hal currently doesn't implement an open drain pin type.
But it's not too difficult to simulate one, at least in a way sufficient for dht11:
https://github.com/jannic/rp-hal/blob/dht11_example/rp2040-hal/examples/dht11.rs#L45-L69
(Not extensively tested, I just verified that I get a temperature reading at all.)

@BrunoWallner, the ticket is still valid, I think. An example showing how to implement this would be a good thing. (Or even a ready-made implementation of such a pin mode in the HAL.)
When I find some time I'll provide a merge request from the branch I mentioned, but at least I have to update the comments, first. (The example was hastily copied from another one.)

@BrunoWallner I updated the example to use the dht-sensor crate. It seems to be more reliable than the dht11 crate.
(https://github.com/plorefice/dht11-rs/issues/3#issuecomment-941293978)


Failed assertion: line 4016 pos 12: '!_debugLocked': is not true.

Steps to Reproduce

Run flutter create bug.
Update the files as follows: ...
...


Ref: makeCleanId more generic

natural order of arguments application
more generic handling

coverage: 100.0%. remained the same
when pulling 5318a4b160857c6af98a029fcc5f7552c499f215 on ref-clean-id-generic
into e80cba8a34a808e43e0b0be70783793b40f6cb88 on prepare-v16.


fix: mpl removed from allow list

Removed MPL-2.0 license from the allow list and added the dependence into the exceptions.

Already addressed in the scope of https://github.com/affinidi/affinidi-messaging/pull/34


instructions for the live event (e.g. moderation)

We will need to give instructions to our speakers and moderators. Apart from devroom managers manual (recently updated) I found this interesting document shared in Fosdem matrix chat: instructions/fosdem2021/speakers.md

we could add a document with some instructions on moderation and what to know during live event, so that we are all on the same page

link shared by @PMunch : https://github.com/FOSDEM/moderation-docs#during-the-conference
Q&A will be like a Jitsi meeting with video streaming of both speaker and moderator!

last year event


if does not guard unkown not null correctly

Bug Report

🔎 Search Terms

if unkown null
🕗 Version & Regression Information

typescript@next
This is the behavior in every version I tried, and I reviewed the FAQ for entries about _________
⏯ Playground Link

Playground link with relevant code
💻 Code

declare const error: unknown

if (error) {
  throw typeof error === 'object' && 'message' in error ? Object.assign(new Error(), error) : error
}

🙁 Actual behavior

Object is possibly 'null'.

🙂 Expected behavior

No error, if (error) has already ensured error will never be null.

Duplicate of https://github.com/microsoft/TypeScript/issues/28131

Thanks.


concurrency manager: fix incorrect key drop when weak succeeds to upgrade

What is changed and how it works?
Previously, if a reader holds an Arc<KeyHandle> which in the lock table and a prewrite calls lock_key, lock_key will upgrade a weak in the lock table. But it also creates a useless KeyHandle which drops when lock_key returns. When dropping KeyHandle, it removes the key from the table incorrectly.
Related changes

Need to cherry-pick to the release branch

Check List
Tests

Unit test

Release note

Fix a bug that memory locks are removed incorrectly.

/auto-cc

/auto-cc

Just testing the auto-assignment, hope I'm not bothering you.

lgtm

lgtm

/merge

/merge

/merge

/merge

Forgot to link this PR to https://github.com/pingcap/tidb/issues/21900.

Forgot to link this PR to https://github.com/pingcap/tidb/issues/21900.


Add support for inlayHints settings

Describe the feature
https://scalameta.org/metals/docs/editors/user-configuration#should-display-type-annotations-for-inferred-types
Right now we get an error message:
[nvim-metals] "inlayHints" is not a valid setting. It will be ignored.

Potential ways to implement
No response

Can this be implemented before Neovim 0.10? Afaik the lsp.inlay_hint feature is not stable yet.

I've tried this in Neovim 0.10, and inlay hints already seem to be working. You can enable the inlay hints using vim.lsp.inlay_hints.enable(true). In the metals configuration, you'll have to enable some nvim-metals settings that seem to correspond with the Metals settings from the link in the OP:

settings.showInferredType = true seems to match with inlayHints.inferredTypes.enable and inlayHints.typeParameters.enable
settings.showImplicitArguments = true seems to match with inlayHints.implicitArguments.enable
settings.showImplicitConversionsAndClasses = true seems to match with inlayHints.implicitConversions.enable

There doesn't seem to be one that matches with inlayHints.hintsInPatternMatch.enable.

Included in https://github.com/scalameta/nvim-metals/pull/689.

Adding this to the config does not seem to work for me 🤔
inlayHints = {
  hintsInPatternMatch = { enable = true },
  implicitArguments = { enable = true },
  implicitConversions = { enable = true },
  inferredTypes = { enable = true },
  typeParameters = { enable = true },
}

Metals is latest.snapshot (1.3.5+118-eb2cdb82-SNAPSHOT) and scala version 2.13.12 in the build.
No errors in logs either.
Is there something else to be done for this to work?


Python Running 1/20th Speed of C# Algorithms

Expected Behavior
Python should ideally be "near parity" with C# strategies (30% performance hit maybe). "Using" the algorithm API shouldn't create exponential decay in performance...
Actual Behavior
Python algorithms take a 95% performance hit.
Potential Solutions

Remake dedicated LEAN python stack
Make AlgorithmManager in Python
Build our own bridge to replace pythonnet
Use compiled version of c-python?

Creating this thread for discussion of potential solutions
Reproducing the Problem
Run any python algorithm which crosses the C#-Py bridge a few times
Checklist

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

I don't know much about LEAN, but I like the  idea of improving the performance of the Python side, so please take my ignorance as a given.
I did some profiling and the long and short is that the performance issues seem to be, as expected, in pythonnet.  The more you interact with the QC API, the slower your algo.  I took a look at the pythonnet code and it looks like it's written to be easy to read (and debug) but perhaps it is not designed with an eye towards performance.
To elaborate on this, I saw tests and operations in pythonnet that did not seem to be optimized to reduce surface against Python itself.  I believe pythonnet could be optimized, but I've done no proper analysis.
I can't say what the most painful bits are because I really haven't exercised much of the API in my test algo, but aside from patching upstream pythonnet, the best solution I can see would be to reduce/prevent object translation between C# and Python.
One thing that would help this effort would be a test algorithm written with an eye towards exercising the API beyond what our toys might do.  In particular, it's useful to stress both the C# side that doesn't need changing as well as the Python side that does, so we have metrics on what "real world" performance impacts a change might yield and how they figure into the overall picture of performance.
One question I have as a neophyte to LEAN, pythonnet, (and even C#) is whether QC is building their own pythonnet binaries from a custom branch.  If this is already a part of the toolchain, it puts us in a better position to experiment with low-hanging fruit in pythonnet optimizations.
Based upon my (again, very limited) profiling, however, I don't see real Python algorithms achieving a mere 30% hit regardless of pythonnet optimizations:
If we say an API query like Portfolio.Invested costs 1 unit (of time) in C#, then just getting the Python GIL costs us another unit.  The pythonnet machinery to get the boolean value into python costs about 30 units.  Evaluating the Python code itself is about 1/2 unit.  So we're dealing with a pretty big delta, here.
The best idea I have for achieving that "near parity" figure is also the easiest to implement: slow down the C# algorithms
But, we really need a good representative algorithm to confirm these measurements and serve as a baseline.  For all I know, a large portion of what I've profiled is JIT compilation/caching performed by pythonnet which, over the course of a few minutes, might amortize out.  Without a long-running algorithm of even modest complexity, the profiling figures above really cannot be trusted.

Rough benchmarks of 2 years basic template algorithm on second data; -- 50% hit from doing nothing.

C# - 16.07 seconds at 119k data points per second. Processing total of 1,918,802 data points.
Py - 32.14 seconds at 60k data points per second. Processing total of 1,918,802 data points.

adding if self.Portfolio.Invested: pass

C# - 17.07 seconds at 112k data points per second. Processing total of 1,918,802 data points.
Py - 38.15 seconds at 50k data points per second. Processing total of 1,918,802 data points.

Opening up the data. bar = data["SPY"]

C# - 20.10 seconds at 95k data points per second. Processing total of 1,918,802 data points.
Py - 89.15 seconds at 22k data points per second. Processing total of 1,918,802 data points.

Placing an order and checking close: bar is not None and bar.Close > 230:

C# - 18.07 seconds at 106k data points per second. Processing total of 1,918,802 data points.
Py - 97.16 seconds at 20k data points per second. Processing total of 1,918,802 data points.

class BasicTemplateAlgorithm(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2017,1, 1)  #Set Start Date
        self.SetEndDate(2017, 5, 1)    #Set End Date
        self.SetCash(100000)           #Set Strategy Cash
        self.AddEquity("SPY", Resolution.Second)

    def OnData(self, data):

        bar = data["SPY"]

        if not self.Portfolio.Invested and bar is not None and bar.Close > 230:
            self.SetHoldings("SPY", 1);

Thanks, I will plug that in and dig deeper, but in the mean time...
I just turned my OnFrameworkData into a noop (locally, in C#) and noticed a speed increase of 2.5-3x.  The difference is so dramatic that the profile output looks like it's from a completely different application.
Of course, I cannot reproduce this in the QC IDE.  (Please confirm in your local LEAN installation?)
Maybe we check to see if methods are re-implemented by the user before grabbing the GIL and invoking them?
And maybe we make this new framework thingy opt-in?

Despite the fact that QCAlgorithm implements a noop for OnFrameworkData(), the mere fact that AlgorithmPythonWrapper calls it by name (the horror!) causes it to take 10% of the runtime; fully half of the runtime of OnData(), including the Python implementation in the algorithm itself.
Over a 6-month 1s backtest, just removing this call causes a 36k rate to jump to 50k.
The low-hanging fruit here is to make a very un-Pythonic decision to recast the managed objects passed into Python algorithms as a subclass that forgoes certain dynamic qualities of objects that Pythonistas will expect, instead granting them the performance they deserve.

@jaredbroad @disruptek @mchandschuh can you folks generate a reproducible case that is stand-alone pythonnet calls without going into the depths of quantconnect api? And if this is possible, please report it in pythonnet issue tracker. Like discussed, I'm very interested what you find here.

This avenue of research seems to've hit a dead end, but I can offer that I experienced surprising difficulty just trying to extend PyObject so I could have it cache some attributes, etc.  I had to add a class in pythonnet just to be able to remove the protections placed on the method signatures.
I offer that effort here in case it helps someone similarly challenged:
https://gist.github.com/disruptek/9479b99a5be24ef997270e1d93a8831e

Thanks to @Martin-Molinero 's work - #3111, #3122, #3100, #3090, #3085, #3077, #2982, #2958, #2899 -- Python is now about -20% from C# and onpar with Cython naitive speeds.


bowser wallet

[x] use struct
[x] use switch/case
[x] seed on display

[ ] next/prev
[ ] index

[ ] encrypt data
[ ] nice animations/images
[ ] more /help & docs
[ ] /status command
[ ] welcome: first time -> init password
[ ] support testnet (?)
[ ] support passphrase
[x] generate random seed (not hardcoded)
[ ] view PSBT -> next/prev output
[ ] show account xpub

no taproot signing yet for uBitcoin

[ ] https://bitcoinops.org/en/topics/hwi/ !!!!


HTTP2 insecure server crashes every time.

I am trying to write an insecure HTTP2 web server. However it crashes on any inputs.
I need an insecure HTTP2 server. Here's my code:
import { createServer } from 'node:http2';

import createExpressApp from 'express';
import http2ExpressBridge from 'http2-express-bridge';

// Test with: curl --insecure -v -k --http2-prior-knowledge "http://[::]:8080"
function main(): void {
  const app = http2ExpressBridge(createExpressApp);

  app.get('*', (request, response) => {
    response.setHeader('Content-Type', 'text/plain');
    response.status(200);
    response.write('Server reached');
    response.end();
  });

  const server = createServer(app);

  server.listen({ port: 8080 });

  // Triggered by CMD/CTRL + C .
  process.on('SIGINT', () => {
    server.close();
    process.exit(0);
  });
}

try {
  main();
} catch (error) {
  console.error(error);
  process.exit(1);
}

I'm testing using  curl --insecure -v -k --http2-prior-knowledge "http://[::]:8080"
Every time I execute it, the server crashes with:
> tsx src/example/http2BugRepro.ts

node:events:492
      throw er; // Unhandled 'error' event
      ^

TypeError: Cannot read properties of undefined (reading 'readable')
    at IncomingMessage._read (node:_http_incoming:214:19)
    at Readable.read (node:internal/streams/readable:547:12)
    at resume_ (node:internal/streams/readable:1048:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
Emitted 'error' event on IncomingMessage instance at:
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at errorOrDestroy (node:internal/streams/destroy:214:7)
    at Readable.read (node:internal/streams/readable:549:7)
    at resume_ (node:internal/streams/readable:1048:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

When I add an SSL certificate and use createSecureServer everything works fine. But when I use createServer it crashes.
I think it's a bug in express or http2-express-bridge because without specifying the app, and handling the stream directly produces no errors.
My info:
OS: MacOS
Node: 20.9.0
Express: I tried v5.0.0-beta and v4.18.2
http2-express-bridge: 1.0.7

Thank you.

Small correction: This fails for secure servers in express 5 as well. Different stack though:
 TypeError: Cannot read properties of undefined (reading 'readable')
    at IncomingMessage._read (node:_http_incoming:214:19)
    at Readable.read (node:internal/streams/readable:547:12)
    at resume_ (node:internal/streams/readable:1048:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
TypeError: Cannot set properties of undefined (setting 'content-security-policy')
    at ServerResponse.setHeader (node:_http_outgoing:661:45)
    at Immediate.write (/somepath/web-platform/node_modules/finalhandler/index.js:285:9)
    at process.processImmediate (node:internal/timers:480:21)

I will suggest to open an issue on http2-express-bridge, It seems that the issue might be related to the library.

Because Express.JS cannot work with HTTP/2 natively, and http2-express-bridge is no longer maintained. If you really need the extra efficiency provided by HTTP/2, then switching to something like fastify makes more sense.

i would not mind contributing to create a separate version of express that works with HTTP2, backwards compatibility be damned.
i would also not mind authoring the change if we can get about $10k-20k into a kickstarter for it.  seems suitable and would likely deliver a lot more back to the community.

It would be awesome if HTTP/2 ever gets added to express.js! Though, if you are asking for money from kickstarters to kick off the process, I guess:

Others (Springboot, Fastify, even nginx!) have done it and are available to the public for free. You might need a convincing story to get this money, good luck!
Actually, ask IBM and StrangeLoop to see if they will offer the money or simply a position at their companies! This will definitely catch their attentions!

Yeah, well, a startup I consulted for ran out of cash in December and I need a job :)
But no, I also want to see this happen.  The last company I worked at informally sponsored Matteo you could say to continue working on Fastify.  I could go to them, but this seems like it would stir some pots.  If not them, a similar organization.
This is me, inventing a job for myself.  Scratching at the food line.  This is tech.

See PR : https://github.com/expressjs/express/pull/3730
I can pick up where this one left off (6 years ago!).. speed in Express is important to me.

See PR : #3730
I can pick up where this one left off (6 years ago!).. speed in Express is important to me.

Hey! Can I join you? I'd love to work on this with you

Yes let's chat @QuantGeekDev i added you in LI


Fix extend for 3 or more inheritances (Fix #780)

Fix #780

No problem!
Another thing to add in the refactoring roadmap is to avoid all the code duplication between web and native code, it's too easy to make a change on one and forget to do in the other.
There are some Design Patterns that would fit well in the project, specially the Strategy one.

@brunolemos Do you want to open a discussion with some thoughts on that maybe? The native/web code duplication is a big problem as well, and it'd be nice to finally solve it :)


update code to newest concepts

https://github.com/SavjeeTutorials/SavjeeCoin/blob/552d7ce2d65ab6c489ef48ebb89c5e6ac77a8960/src/main-v3.js#L21
you are hashing the old "data" field, instead of the transactions field ( quite a big deal, since you have compromised your chain)
https://github.com/SavjeeTutorials/SavjeeCoin/blob/552d7ce2d65ab6c489ef48ebb89c5e6ac77a8960/src/main-v3.js#L44
also, the genesis block is initialized badly ( not so big deal )
( maybe make some unit tests next tutorial :D )

Thanks! Jeez I really messed up!
The hashing is fixed in 4c351df36c778a41b0c88de9c1ea58369f0dbe8d
And the Genesis block has been cleaned up in 9a3ca7b79450e4e423eb214831530c9c73cc75d7
Thanks for reporting this!


Failed when RootPath is relative.

If input relative dir to HU.Init(), InitFileMap() will result a wrong FileMap.
HU.Init("hotupdatelist", {"..\lua"})

What you say is exactly right.
I will try to fix it later, Thanks for your attention.


Removed: Proxied services

Description
Changes proposed in this pull request.
Test plan
Outline the test plan used to test this change before merging it.

Fixes #.

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "external-networks",
    "component": "gaia",
    "pr-id": "168",
    "commit-sha": "b7aa8734bc5bf2c1ac33509553dd27c286b5e826"
  },
  {
    "project": "external-networks",
    "component": "backend",
    "pr-id": "41",
    "commit-sha": "9038e50908a6e584ab660c7bcaae665025ec033a"
  },
  {
    "project": "external-networks",
    "component": "apoctl",
    "pr-id": "128",
    "commit-sha": "90a6b24c6552b79cc53efea3c052a19802024d50"
  },
  {
    "project": "external-networks",
    "component": "apotests",
    "pr-id": "1685",
    "commit-sha": "362fb4265e38907bf754eb919feb63b390eeead1"
  },
  {
    "project": "external-networks",
    "component": "trireme-lib",
    "pr-id": "558",
    "commit-sha": "4d35ba9e27f9918be14efcec4e94c3c05d4d205d"
  },
  {
    "project": "external-networks",
    "component": "enforcerd",
    "pr-id": "661",
    "commit-sha": "4b5c802ec9dfc13392302aa2bf1a2dd77da790d1"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "external-networks-enforcerd",
    "component": "trireme-lib",
    "pr-id": "558",
    "commit-sha": "4d35ba9e27f9918be14efcec4e94c3c05d4d205d"
  },
  {
    "project": "external-networks-enforcerd",
    "component": "enforcerd",
    "pr-id": "661",
    "commit-sha": "dc13bb5dbc7fe7bd0b5fdcfc45c4b8286eb001c6"
  },
  {
    "project": "external-networks-enforcerd",
    "component": "gaia",
    "pr-id": "168",
    "commit-sha": "b7aa8734bc5bf2c1ac33509553dd27c286b5e826"
  }
]

/build - automatically fired by gogo with following PRs and commit SHAs v1.0.0
[
  {
    "project": "external-networks-enforcerd",
    "component": "trireme-lib",
    "pr-id": "558",
    "commit-sha": "70ea086a7b1500b70d1e73a60539fa9d89b35370"
  },
  {
    "project": "external-networks-enforcerd",
    "component": "enforcerd",
    "pr-id": "661",
    "commit-sha": "dc13bb5dbc7fe7bd0b5fdcfc45c4b8286eb001c6"
  }
]


Show the electricity prices in purchasing power standard (PPS)

It would significantly improve usefulness if you show the electricity prices in purchasing power standard (PPS).
It may be useful to allow sorting the countries (by the price, country name...).
User can then copy the URL (from address bar) with parameters so he can share it and link people exactly to the view with PPS prices...

Appreciate your input! Adding PPS for the electricity prices is for sure an interesting idea. I will look into it.


Investigate AWS Draining process of nodes with respect to the PDBs

Currently with this deployment and a cluster with 2 nodes we can reproduce the issue:
apiVersion: v1
kind: Service
metadata:
  name: helloworld
  labels:
    app: helloworld
  namespace: default
spec:
  type: ClusterIP
  ports:
  - port: 8080
  selector:
    app: helloworld
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloworld
  labels:
    app: helloworld
  namespace: default
spec:
  replicas: 5
  selector:
    matchLabels:
      app: helloworld
  template:
    metadata:
      labels:
        app: helloworld
    spec:
      securityContext:
        runAsUser: 1000
      containers:
      - name: helloworld
        image: quay.io/giantswarm/helloworld:latest
        ports:
        - containerPort: 8080
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 3
          periodSeconds: 3
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 60
          periodSeconds: 3
        resources:
          requests:
            cpu: 50m
            memory: 50Mi
          limits:
            cpu: 50m
            memory: 50Mi
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: helloworld-pdb
spec:
  minAvailable: 4
  selector:
    matchLabels:
      app: helloworld

2 pods killed at same time, PDB not respected

Node-operator timeout has been increased to 60', aws-operator contains fixes for respecting pdbs - closing


Support for excluding property in nested Array

                       expect(interception.request.body).excludingEvery('streetnumber').deep.equal({                             kenmerk: KENMERK,                             aangevraagdePercelen: [                                 {                                     type: 'PERCEEL',                                     adres: {                                         straatnaam: 'street',                                         streetnumber: 'randomSomething'                                     }                                 }                             ]                         });
we would expect streetnumber to be excluded in all aangevraagdePercelen

@gertwillems It should work as expected. Can you give me a working example? What does interception.request.body look like?
Check below streetnumber is different in both objects but the test does pass as it excludes streetnumber from assertion.
expect({
        kenmerk: 'KENMERK',
        aangevraagdePercelen: [{ type: 'PERCEEL', address: { streetname: 'street', streetnumber: 'randomSomething' } }]
      })
        .excludingEvery('streetnumber')
        .deep.equal({
          kenmerk: 'KENMERK',
          aangevraagdePercelen: [{ type: 'PERCEEL', address: { streetname: 'street', streetnumber: 'yolo' } }]
        });


Inspire

-should focus on ideas and inspire the Figma template.

Good git flow
Descriptive PR request
Please try to follow semantic structure for HTML

also work hard to understand and implement the semantic html syntax appart from that your code is clean ang good to go


Headphone emulation when streaming audio

[x] I have checked that a similar feature request does not already exist.

Is it possible to emulate wired/bluetooth headphones when streaming audio? This would be very helpful when using audio modifications on your phone such as Viper/Dolby/MiSound. It's absolutely useless, but as an experiment.
I have attached a video of how the Viper behaves when plugging/unplugging the headphones.
https://user-images.githubusercontent.com/57861007/229261858-af17947b-a28d-4ce7-98c6-af5ed685f450.mp4

It will also help people who sit on the PC with headphones. When playing from the speaker, the audio is in a mono channel. That is, streaming also in theory goes in a monochannel.

need this, when using messenger/discord it turns its audio into call mode, so it would be better to have it as headphone emulation instead.


Implement the Click to Load reference tests

Implement the new Click to Load reference tests. They replace the old unit tests.
Reviewer: @ladamski
Steps to test this PR:

Ensure the unit tests pass.

Automated tests:

[x] Unit tests
[ ] Integration tests

Reviewer Checklist:

[ ] Ensure the PR solves the problem
[ ] Review every line of code
[ ] Ensure the PR does no harm by testing the changes thoroughly
[ ] Get help if you're uncomfortable with any of the above!
[ ] Determine if there are any quick wins that improve the implementation

PR Author Checklist:

[ ] Get advice or leverage existing code
[ ] Agree on technical approach with reviewer (if the changes are nuanced)
[ ] Ensure that there is a testing strategy (and documented non-automated tests)
[ ] Ensure there is a documented monitoring strategy (if necessary)
[ ] Consider systems implications

Needs lint and dep update, but tested locally and it works for me


Use BusPath to resolve dm device paths

Problem:
If multipathd is running and has taken over a device, ResolvePersistentDevPath() will end up returning a /dev/dm-* device path, which we don't want.  We want the real underyling device (e.g. /dev/sda).  If we take a /dev/dm-* path and later update the blockdevice CR with it, we lose all the interesting DeviceStatus information, like the WWN.
Happily, in this case, we can figure out the right path to use by checking /dev/disk/by-path/ + the device's bus path. This has the added advantage of also working for block devices that have no WWN.
Solution:
This PR.
Note: we're not trying to make NDM support multipath devices here, we're just trying to avoid having it corrupt the blockdevice CRs if multipath happens to be active.
Related Issue:
https://github.com/harvester/harvester/issues/6531
Test plan:

Add an extra disk that has a WWN (e.g. a scsi disk) to a harvester node
Start multipathd (this may require editing the grub command line to remove multipath=off)
Verify that the disk has been taken by multipathd:

# multipath -l
35000c50015ac3bd9 dm-0 QEMU,QEMU HARDDISK
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
  `- 2:0:0:0 sda 8:0 active undef running

Use the Harvester GUI to add the disk to the host, as described in https://github.com/harvester/harvester/issues/6531.
Note that it should now correctly show up as /dev/sda, not as /dev/dm-0 as in that bug report.
At this point, force formatting will fail, because the device has been taken by multipath. You will see an error like the following. That's fine.

Run multipath -F to flush the multipath config. This will remove the device from multipath. It should be automatically formatted shortly afterwards.

Rebased

@mergifyio backport v0.7.x


Add DeepOmit for hash and array

Description
The PR adds new functionality to enable the omission of a field recursively in an object and an array. Please refer to: https://stackoverflow.com/questions/55539387/deep-omit-with-typescript
Example:
type Input =  {
    __typename: string,
    a: string,
    nested: {
        __typename: string,
        b: string
    }
    nestedArray: Array<{
        __typename: string,
        b: string
    }>
    nestedTuple: [{
        __typename: string,
        b: string
    }]
}

type InputWithoutKey = DeepOmit<Input, '__typename'>

let s: InputWithoutKey = {
    a: "",
    nested: {
        b:""
    },
    nestedArray: [
        {b: ""}
    ],
    nestedTuple: [
        { b: ""},
    ]
}

Checklist

[x] I have added a changelog entry, prefixed by the type of change noted above (Documentation fix and Test update does not need a changelog as we do not publish new version)

@lyzhao @shopify/useful-types version 2.4.0 has been released


CF Release

Changed

capital-framework: Improve contributing docs in readme for outside contributors and documentation fixes.

Review

@cfpb/front-end-team-admin

I am a bot. If I did something wrong, blame a human.

✌


[Plot] Add a Colorbar widget

This PR proposes to add a widget displaying a colorbar synchronized with a PlotWidget displayed image or default colormap.
It wraps matplotlib colorbar in a QWidget to automate synchronisation.
TODO:

[ ] More tests
[ ] Add a button to edit the colormap
[ ] Integrate with Plot2D and ImageView
[ ] If possible rework layout to avoid having to much white space...

Closes #261

An alternative more widespread than I initially thought is to put the colorbar into the plot area.
Just for the record:
https://github.com/ppinard/matplotlib-colorbar
It works fine when there are no labels associated to the colorbar. If there are, it can be ugly

My idea was at first to simply wrap matplotlib colorbar in a dedicated widget which can connect to a silx plot in order to sync it with current plot colormap.
This also allow to reuse it in other context (e.g., with a 3D plot)

At this point is not critical, but I do not like to see a dependency on matplotlib under Colors.py
On my understanding, when the OpenGL plot backend will be ready, silx should be able to perform 1D and 2D plotting without having matplotlib installed.

Closing this PR, PR #664 supersedes it.


Remove containergroup_failedsync event definition

BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1448811

@miq-bot add_label providers/containers, bug

@simon3z @cben Please review

cc @moolitayer I think you're more familiar with how policies content (events/actions) are represented in DB.

It seems wired that we need a migration ?
@zakiva when you remove the seed line and reseed your database this relationship row is still there?

There's an enabled field on the miq_event_definitions table, can we use that?
At some point in the future we might need to enable the event again

It seems wired that we need a migration ?
@zakiva when you remove the seed line and reseed your database this relationship row is still there?

Yes, I tried it :\ both event and relationship rows still exist.

@gmcculloug Can you please take a look? We are not sure regarding the cleanest way to remove the event.

File manageiq-content/content/automate/ManageIQ/System/Event/EmsEvent/Kubernetes.class/pod_failedsync should be removed too.

@lfu I think it was removed in https://github.com/ManageIQ/manageiq-content/pull/93/files, or is there any additional file you are referring to?

I think it is better to include self.inheritance_column = :_type_disabled.
Other than that, it looks good. 👍

I think it is better to include self.inheritance_column = :_type_disabled.
Other than that, it looks good.

@lfu @gmcculloug done, PTAL.

LGTM 👍


Newer Composer versions require https by default

https://pear.php.net works just fine, so use that.

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

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;

@rmcmurray - Robert, could you review this contribution from @jj101k and let me know if we can merge?

@rmcmurray - Second notice on public PR

Sorry, I was on vacation on a remote island in the South Pacific when this PR was so I missed the notification. ;-)
This looks great to me.

NP, sounds lovely! Thanks for approving. @jj101k - merging - thank you!


CookieService does not load

I cannot load the cookie service
in chrome I get an error that looks like a json
Object { __zone_symbol__error: Error, fileName: Getter, lineNumber: Getter, columnNumber: Getter, message: Getter, name: Getter, stack: Getter, originalStack: Getter, zoneAwareStack: Getter, toString: createMethodProperty/props[key].value(), 3 de plus… }

I installed angular2-cookie with npm

here is the code of my app

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { CookieService } from 'angular2-cookie/services/cookies.service';

import { AppComponent }  from './app.component';

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent],
  providers: [ CookieService ],
  bootstrap:    [ AppComponent ]
})

export class AppModule { }

the error appears, just by adding the providers array

anyone ?

This way, you would have to import angular2-cookie/core at some point-
However, the proper way to do this would be to create a CookieModule and just import that. You could try and join forces on #37, it will solve your problem too.

I am quiet new to angular, what do you mean adding it to a module ?

Create a @NgModule https://angular.io/docs/ts/latest/guide/ngmodule.html and let it provide the CookieService.

but my main comopnent is already a module
so you mean like this ?
import 'angular2-cookie/core';
import { CookieService } from 'angular2-cookie/services/cookies.service';

I noticed that when it happened for other components/modules it's mainly becos of coding errors, so I believe this cooki lib is not compatible with angular 2.4.0, guess I'll have to use the setcookie function from javascript :-(

It is compatible actually. But I am refactoring it a little bit at the moment to work smoother. Expect an update on weekend.

Btw, you should import it like this:
import { CookieService } from 'angular2-cookie/core';;

It is in the docs.

GET http://localhost:3000/angular2-cookie/core 404 (Not Found)

Then you are not configuring your systemjs properly.

??? it's a seed I downloaded

I have uploaded that seed (it's the OFFICIAL angular 2 seed from the tutorials)
just adding the angular2-cookies lib in it
http://<IP_ADDRESS>/test.zip
can someone check it and make it work ?
thanks

Have you configured the systemjs? Please read the getting started part of this library carefully.

yes, please check the archive, it wont bite ;-)

You haven't even touch systemjs.config.js and systemjs.config.extras.js. The configuration is literally here in the documentation.

finaly I could make it work, found out I was modifying the wrong file
which was also the explanation for this one
https://github.com/salemdar/angular2-cookie/issues/49#issuecomment-283597252
if only it had been answered instead of just beeing blindly closed
thx anyway :-)


AttributeError: 'UnifiVoucherButton' object has no attribute 'self'

Hey,
First of all: Thanks for the good work. Its great to have the integration in HA.
Unfortunatly after the last update of HA, I experience the following error:
AttributeError: 'UnifiVoucherButton' object has no attribute 'self'
2024-02-08 09:32:00.756 DEBUG (MainThread) [custom_components.unifi_voucher] Finished fetching unifi_voucher data in 0.036 seconds (success: True) 2024-02-08 09:32:00.762 ERROR (MainThread) [homeassistant.components.button] Error while setting up unifi_voucher platform for button Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 344, in _async_setup_platform     await asyncio.shield(task)   File "/config/custom_components/unifi_voucher/button.py", line 71, in async_setup_entry     UnifiVoucherButton(   File "/config/custom_components/unifi_voucher/button.py", line 90, in __init__     super().__init__(   File "/config/custom_components/unifi_voucher/entity.py", line 48, in __init__     configuration_url=self.self.coordinator.get_configuration_url(),                       ^^^^^^^^^ AttributeError: 'UnifiVoucherButton' object has no attribute 'self' 2024-02-08 09:32:00.773 ERROR (MainThread) [homeassistant.components.image] Error while setting up unifi_voucher platform for image Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 344, in _async_setup_platform     await asyncio.shield(task)   File "/config/custom_components/unifi_voucher/image.py", line 50, in async_setup_entry     UnifiVoucherImage(   File "/config/custom_components/unifi_voucher/image.py", line 75, in __init__     super().__init__(   File "/config/custom_components/unifi_voucher/entity.py", line 48, in __init__     configuration_url=self.self.coordinator.get_configuration_url(),                       ^^^^^^^^^ AttributeError: 'UnifiVoucherImage' object has no attribute 'self' 2024-02-08 09:32:00.783 ERROR (MainThread) [homeassistant.components.number] Error while setting up unifi_voucher platform for number Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 344, in _async_setup_platform     await asyncio.shield(task)   File "/config/custom_components/unifi_voucher/number.py", line 56, in async_setup_entry     UnifiVoucherNumber(   File "/config/custom_components/unifi_voucher/number.py", line 77, in __init__     super().__init__(   File "/config/custom_components/unifi_voucher/entity.py", line 48, in __init__     configuration_url=self.self.coordinator.get_configuration_url(),                       ^^^^^^^^^ AttributeError: 'UnifiVoucherNumber' object has no attribute 'self' 2024-02-08 09:32:00.791 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up unifi_voucher platform for sensor Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 344, in _async_setup_platform     await asyncio.shield(task)   File "/config/custom_components/unifi_voucher/sensor.py", line 46, in async_setup_entry     UnifiVoucherSensor(   File "/config/custom_components/unifi_voucher/sensor.py", line 65, in __init__     super().__init__(   File "/config/custom_components/unifi_voucher/entity.py", line 48, in __init__     configuration_url=self.self.coordinator.get_configuration_url(),                       ^^^^^^^^^ AttributeError: 'UnifiVoucherSensor' object has no attribute 'self'
Any Idea?

I'm running a UDM Pro with UniFi OS v3.2.9
and HA Core 2024.2.0
Tried to delete and reintegrate the Hub, but still the same issue.

hey, i have the same issue after i updated to 24.2.
the version of the Networkcontroller is: Network 8.0.28
And UniFi OS is: 3.2.9

I'll have a look at it and fix it by tonight.

A new release has been published:
v1.1.3


Add a skip mechanism for failures that may caused by infra flake

As title.
b/183904821 secondary_locality_gets_requests_on_primary_failure
2021-03-29 02:23:45,958: ERROR    Test case secondary_locality_gets_requests_on_primary_failure failed
Traceback (most recent call last):
  File "tools/run_tests/run_xds_tests.py", line 2045, in <module>
    secondary_zone_instance_group)
  File "tools/run_tests/run_xds_tests.py", line 726, in test_secondary_locality_gets_requests_on_primary_failure
    raise e
  File "tools/run_tests/run_xds_tests.py", line 710, in test_secondary_locality_gets_requests_on_primary_failure
    _WAIT_FOR_BACKEND_SEC)
  File "tools/run_tests/run_xds_tests.py", line 344, in wait_until_all_rpcs_go_to_given_backends
    allow_failures=False)
  File "tools/run_tests/run_xds_tests.py", line 326, in _verify_rpcs_to_given_backends
    raise RpcDistributionError(error_msg)
RpcDistributionError: Backend test-ig-secondary-zone1616980373-nm50 did not receive load

Most likely an infra error.
We want to send load to ['test-ig-secondary-zone1616980373-nm50', 'test-ig-secondary-zone1616980373-tgzc'], but only got peer k02f and md9w. This is completely off, meaning the control plane is feeding out-of-date endpoints. If the propagation isn't completed within 1200s, I don't see there is any point waiting longer.
In cases like this, the test result is meaningless. If this pattern looks good, I can apply it to many other
CC @srini100

This change is

CC @sergiitk

Just discussed with @srini100, we can't mark TD flakes as "SKIPPED", since the xDS interop is testing the entire PSM workflow... So, even if it's not our fault, we still need the dashboard to go red (instead of making it grey).

We have to be careful with this change. First, as @lidizheng mentioned, infra errors should not include control plane issues. Even things like ssh flakiness to test clients/servers cannot be treated as infra issues because it could be due to crashed client/server. Only issues like github connectivity or log upload error etc. are infra issues. Second, if we keep skipping tests with infra errors, we have to somehow know that the rate of skipping is very low. Otherwise, we will be compromising on the testing volume.


DRILL-1942-hygiene

Formatting
@Overrides
finals
some AutoCloseable additions needed for upcoming patches
new isCancelled() abstract method on FragmentManager, implemented on subclasses;
Added missing new abstract method isCancelled(); needed for upcoming patches

Unit tests passed
Precommit suite passed (except for Windows)

+1
LGTM.