fix time behavior in tests and filter warnings for pandas 1.4

Changes

Fix failing tests due to new pandas version ->seems like pandas added own __add__ functions so that we couldn't use + with a pandas Type on the left-hand side and our Time class on the right-hand side (thanks @vhirtham )
filter warnings caused by xarray introduced with pandas 1.4

Checks

[x] updated tests

This should get rid of a few thousand warnings in tests hopefully 🚀😄
(and clean up your notebooks @marscher 😉)

Eventually it makes sense to pin to a minor of pandas, which has been tested and only upgrade it, if everything works as expected.

something like pandas>=1.0,<=1.3 ?
I think that would be ok if we have a good workflow release patch versions if new pandas releases work as expected (while still giving some safety)

Yes.
PyPI prohibits uploading patched sources, so this always renders a new micro release just for updating the dependencies. Conda does circumvent this by increasing build numbers. I guess there is no way to avoid this.
Eventually it is too much overhead.


[Request] OpenXcom

This could possibly be a port worth looking into:
https://github.com/SupSuper/OpenXcom
I haven't tried compiling it on the pi yet, so this should serve as a place-holder until someone can prove or disprove its feasibility before I do.
A quick look at the documentation shows that it will need an additional dependency to be compiled from here:
https://github.com/jbeder/yaml-cpp

I've compiled it successfully, but don't have the datafiles to try running the game itself yet. I believe it uses X11 and might also use OpenGL (which I now have working with glshim). Later on tonight, we'll see how this goes.

https://twitter.com/zerojay/status/721819395912110080

Fulfilled in https://github.com/zerojay/RetroPie-Extra/commit/769e2e622777bb6da23ef9ab5aa179a7cd688f0d


Encoding, an rtMessage structure types are incorrect

The following values are not encoded as uint values, but are being encoded as signed integers.

sequence_number: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L69
flags: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L70
control_data: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L71
payload_length: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L72
T0: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L76
T1: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L77
T2: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L78
T3: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L79
T4: https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtMessageHeader.c#L80

Also encoding of the string length is inconsistent with the decoding of string length:
https://github.com/rdkcentral/rbus/blob/6455fb817e86a4cf42ddc3af482417dfc668b3c4/src/rtmessage/rtEncoder.c#L54

Hi @schmidtw,
The method name says it as Int32 but internally its the 4 bytes that we manage.
That was the reason rtMessageHeader_Decode()  worked so far.
But I agree, we must have right Encoding and Decoding APIs used to have proper readability and understanding.
We addressed it under https://github.com/rdkcentral/rbus/pull/140


feat: support for reverse flows and trend flows

added support for showing reverse flows
added support for comparing flows across periods
improved filtering and simplification of flows

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


fix: viewWillAppear and viewWillDisappear functions calling methods d…

…isable
Summary
Describe the goal of this PR. Mention any related Issue numbers.
Requirements (place an x in each [ ])

[ ] I've read and understood the Contributing Guidelines and have done my best effort to follow them.

[ ] I've read and agree to the Code of Conduct.

[ ] I've written tests to cover the new code and functionality included in this PR.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.


"java.lang.NoClassDefFoundError" on Pet Store sample project

I downloaded the SpringBoot3 Pet-store demo project from this repository  (https://github.com/aws/serverless-java-container/tree/main/samples/springboot3/pet-store)
I opened it as a Gradle project in IntelliJ and then executed the "gradle clean build" command to generate the JAR file pet-store.jar.
Then, I uploaded the file to my Lambda on the AWS Lambda Console (without using SAM). The handler is configured to call com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler::handleRequest which is the same as specified in the template.yml file.
The project is configured to use Java 17 (corretto).
Upon invoking the function, the following error message appears in CloudWatch:
Error loading class com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler: com/amazonaws/serverless/exceptions/ContainerInitializationException: java.lang.NoClassDefFoundError java.lang.NoClassDefFoundError: com/amazonaws/serverless/exceptions/ContainerInitializationException 	at java.base/java.lang.Class.forName0(Native Method) 	at java.base/java.lang.Class.forName(Unknown Source) Caused by: java.lang.ClassNotFoundException: com.amazonaws.serverless.exceptions.ContainerInitializationException 	at java.base/java.net.URLClassLoader.findClass(Unknown Source) 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) 	at java.base/java.lang.ClassLoader.loadClass(Unknown Source) 	... 2 more
Despite the error, the function returns a 200 status code along with the following message:
{ 	"errorMessage": "Error loading class com.amazonaws.serverless.sample.springboot3.StreamLambdaHandler: com/amazonaws/serverless/exceptions/ContainerInitializationException", 	"errorType": "java.lang.NoClassDefFoundError" }
Is there anything I might be forgetting? Is deploying via SAM CLI strictly necessary?
Thanks in advance!

I builted a ZIP file using Maven, it seens to work!

You can also use Gradle but need to use the buildZip task.

That did the trick! Thank you!


Remove "Add Comment"

In many situations, "Add Comment" is not necessary. How can i remove it? Or can someone share a version without it?

ImagePickerSheet uses a delegate method to retrieve all the button titles. So in order to remove the cancel button, implement the method as follows:
func imagePickerSheet(imagePickerSheet: ImagePickerSheet, titleForButtonAtIndex buttonIndex: Int) -> String {
    let photosSelected = (imagePickerSheet.selectedPhotos.count > 0)

    if (buttonIndex == 0) {
        if photosSelected {
            return NSString.localizedStringWithFormat(NSLocalizedString("ImagePickerSheet.button1.Send %lu Photo", comment: "The secondary title of the image picker sheet to send the photos"), imagePickerSheet.selectedPhotos.count)
        }
        else {
            return NSLocalizedString("Photo Library", comment: "Photo Library")
        }
    }
}


Drive-by notes on Version

I have never used this crate. I was just reviewing it for my own edification. As such feel free to ignore and close this issue. I was looking at the definition of Version and noticed two things I wanted to understand better.
I see a lot of use of usize where I was expecting u{number}, does validity of pep440 really depend on the pointer size of the target? That seems really unexpected that a version would be valid on 64 bites os but that same version would not be valid on a 32 bites os. Although thinking about it if the canonical implementation is in Python that maybe they should all be arbitrary width integers. 🤯
There also seemed to be a number of places where we can have an arbitrary number of strings. If these strings are all taken from the original input then they could be &str or Cow<str>, but lifetimes are probably not worth the performance. I wonder whether a small string optimized crate would work well here. The one from semver is probably the most optimized for this use case, but it's not a public API. There are many other options, most of which would be very easy to drop in.

I see a lot of use of usize where I was expecting u{number}, does validity of pep440 really depend on the pointer size of the target? That seems really unexpected that a version would be valid on 64 bites os but that same version would not be valid on a 32 bites os. Although thinking about it if the canonical implementation is in Python that maybe they should all be arbitrary width integers. 🤯

Totally! We switched to u64 now, i didn't previously consider people used versions such as<PHONE_NUMBER>4621.

There also seemed to be a number of places where we can have an arbitrary number of strings. If these strings are all taken from the original input then they could be &str or Cow, but lifetimes are probably not worth the performance.

We only store strings in LocalSegment, which is generally rare ("Local version identifiers SHOULD NOT be used when publishing upstream projects to a public index server, but MAY be used to identify private builds created directly from the project source")


cubeb: Add Darwin support

Description of changes

Makes cubeb work on macOS. Also cherry-picking a fix from @SuperSamus in #200241.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin (Rosetta 2)
[x] aarch64-darwin

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

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

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

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

[ ] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/787


DEPRECATION: ember-cli-babel 5.x has been deprecated

After installing ember-getowner-polyfill in an Ember project, following error appears when running the server:

DEPRECATION:ember-cli-babel 5.x has been deprecated. Please upgrade to at least ember-cli-babel 6.6.0

Environment
Ember Version: 2.18.2
Ember CLI Version: 2.18.2
Steps to Reproduce
In the Ember project install ember-getowner-polyfill:

ember install ember-getowner-polyfill

After that run an Ember command like:

ember -v

or:

ember s

when will this issue be fixed ?

someone clarify for me - package.json shows babel at 6.6+ and it's under devDependencies, so...what's the issue here?

Fixed by #32


Update DownloadController.php

Changed the group name according to its category , aircrafts will show icao type and registration , airports will be displayed with their icao codes names and countries. Rest will be showed with their names (exp airlines)
This will result a much better look on the downloads page for end users while looking for a specific type's files (like a repaint for a B738).

Still the same result ... Sorry about it, i do not want to be rude but this really pushes my nerves to their limits :( Will try it from gitdesktop when I reach home (prob in 30-45 mins time)


Duplicate check and assert code

Why do we need duplicate code here and here when we could make these static methods that could also be leveraged by other static methods that do the same checks, e.g., here?
I would suggest consolidating all these check and assert methods together in one place, like Util.

I suspect that because of #42, when there is no ResourceState, it won't be possible. So why refactoring back and forth. One of the goals of #49 was to make the majority of methods in Memory and Buffer to not access (textually) the state field, to make #42 transition easier. Extraction of static methods will make all methods to access state field again.

I am looking carefully at ResourceState now.  I have already removed the reference to BaseBuffer and going through all of the fields to see what can be factored out easily.  Some can, others will be more difficult.
It may be possible to remove RS from the on-heap stuff, but I am skeptical that it can/should be removed for off-heap.   The off-heap usage is quite complex with many fields. The code will be much more difficult to read and IMHO more fragile because of the complex interactions.
I thought your concern for on-heap was millions of small heap instances and their aggregate space consumption.  Is there the same issue off-heap?

It may be possible to remove RS from the on-heap stuff, but I am skeptical that it can/should be removed for off-heap. The off-heap usage is quite complex with many fields. The code will be much more difficult to read and IMHO more fragile because of the complex interactions.

Yes, possibly. If ResourceState stays around, it means that there are going to be two variants of Memory - one with ResourceState and one without. It means that refactoring proposed in this issue (#59) wouldn't work out.

I thought your concern for on-heap was millions of small heap instances and their aggregate space consumption. Is there the same issue off-heap?

No, there is no such issue for off-heap.

We can leave these as is for now.


networkmanager: network-online --wants--> NetworkManager-wait-online

Motivation for this change
Services relying on network-online.target were running before
the network was ready, every time.
Looking at why this was happening, it seems our network-online
had no actual dependency on the appropriate connectivity check
when using networkmanager, namely NetworkManager-wait-online.service.
(we get this right for configurations using networkd, I believe)
Looking at networkmanager's provided service
etc/systemd/system/NetworkManager-wait-online.service there's
a WantedBy in [Install] that should be accounted for.
Running this command before/after the included commit should
help see the difference:
(this is after:)
$ systemctl show -p Wants,After network-online.target
Wants=NetworkManager-wait-online.service
After=network.target NetworkManager-wait-online.service

Now my services don't all complain when trying to run
just a tiny bit too early in my boot :).
If there's agreement this is the correct configuration
please 'backport' to at least 19.03.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@dtzWill I've just tried this on my 19.03 system that didn't run NetworkManager and had this very same issue. Now it runs network manager with this wait online target added and it works like a charm. So I'm very much in favor of pulling this in, not sure about cc @NixOS/backports though.
Also, this same issue does exists with the regular networking.dhcpcd.enable, but yeah, that's another issue.

I feel backporting should be fine, considering this is a bugfix, unless it is expected that adding this dependency could break setups.
I'm not familiar enough with systemd to say for sure if this could cause issues for dependency chains. Though from what I know it feels alright.

(requesting review from networkmanager maintainers)

Beep boop, is lack of feedback approval or a request for more time?

Welp, here we go.  Hopefully it fixes more than it breaks overall.  LMK if you have questions/problems.

Thanks! :+1:


How to use the KDJ indicator?

Hello, I'm new to pandas/FreqTrade and want to use pandas-ta because this library provide the KDJ indicator.
But I'm really confused how to use the KDJ in my strategy - how I can measure if the KDJ is positive or negative?
Thx in advance.

Hello @Qwertzi01,

... how I can measure if the KDJ is positive or negative?

Here is an example subchart of kdj. Seems many are mostly positive, however one or more lines may dip negative from time to time.

Testing if positive or negative is fairly straightforward if testing a constant (like 0).

Additionally, please read this section on typical ways to use Pandas TA.

Finally for my future reference, please fill out the following:
Which version are you running? The lastest version is on Github. Pip is for major releases.
import pandas_ta as ta
print(ta.version)

Do you have TA Lib also installed in your environment?
$ pip list

Have you tried the development version? Did it resolve the issue?
$ pip install -U git+https://github.com/twopirllc/pandas-ta.git@development

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Provide sample code.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.
Kind Regards,
KJ

Thx for the fast answer, but I think I didn't ask the question clearly.
I'm interested in getting buy and sell signals from the KDJ as shown in the example below:

With my example above a clear sell signal is given if the J-line cross from top to bottom K- and D-line,
a clear buy signal will happen if the J-line cross from bottom to top the K- and D-line (blue marked).

@Qwertzi01,
Please install the development version if you have not already. Here is the README.
$ pip install -U git+https://github.com/twopirllc/pandas-ta.git@development

Based on your sample, it looks like the all three lines cross at the same point.

J crossing K or J crossing D is the same. The question is, which is preferable?
Or does J absolutely need to cross both K and D lines? If so, that is a bit more to setup.

For the sake of simplicity, I will assume (1.) with J crossing D.

Note ta.tsignals() returns 4 columns, I only showed the first two: Trends and Trades. The last two columns are the signal Entries and Exits which you can plot for verification.
Hope this helps
KJ

@Qwertzi01
No that is not the correct way to calculate an indicator without the DataFrame Extension Convention. What you want is the Standard Convention.
If you are having FreqTrade Issues, please post an Issue on their repo.
KJ

I figured it out how to implement the KDJ indicator into a FreqTrade strategy with the Standard Convention.
For all who are maybe interested (it's similar also applicable to other pandas-ta related indicators):
import pandas_ta as pdta

pdta_kdj = pdta.kdj(dataframe['high'], dataframe['low'], dataframe['close'], length=9, signal=3)
dataframe['kdj_k'] = pdta_kdj.iloc[:,0]
dataframe['kdj_d'] = pdta_kdj.iloc[:,1]
dataframe['kdj_j'] = pdta_kdj.iloc[:,2]

long = dataframe['kdj_j'] > dataframe['kdj_d']
short = dataframe['kdj_j'] < dataframe['kdj_d']


Ask Gold sponsors about needs for tables and equipment

make sure that we only place items the sponsors really need.
For that, we send out a request to the gold sponsors 2 months upfront

chanded end date from 5th of August to 16th of Sept


Add planned room to calendar

Add an option to add a planned room to calendar using OS features or iCal event format

In addition to this, it would be an added benefit to share an upcoming nest to nostr to let your followers know about an upcoming scheduled nest. Right now, people are just sharing screenshots. We can do better.


can we access it remotely through http?

from the name i assume this was developed using react? will it be possible to access this through a web browser using the rpi as a hotspot? why am asking? simply tesla car web browser, since this works directly without android then it should be more performant than current rpi workaround with tesla. so can we access this through web browser? that would make this project a huge hit

Not quite with this exact repo, you would need to use https://github.com/rhysmorgan134/node-CarPlay and https://github.com/rhysmorgan134/react-js-carplay to build a webhosted version. The problem with this one is it uses electron so the IPC communication won't be available

node-carplay now has this as an example in that repo


Project Wizard fails to generate the project

I ran the project wizard choosing Desktop template as mentioned in this tutorial. However it failed to generate and threw this error:
Plugin [id: 'org.jetbrains.compose', version: '0.2.0-build131'] was not found in any of the following sources.

Config:
IntelliJ IDEA 2020.3 (Community Edition)
Build #IC-203.5981.155, built on December 1, 2020
Runtime version: 11.0.9+11-b1145.21 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 10.14.6
GC: ParNew, ConcurrentMarkSweep
Memory: 725M
Cores: 4

Ok, I figured out what the issue was. The project wizard had failed to add the settings.gradle.kts file with it's contents and that is why I faced this error.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


python3Packages.meshtastic: 1.2.48 -> 1.2.50

Motivation for this change
https://github.com/meshtastic/Meshtastic-python/releases/tag/1.2.50
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

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

4 packages built:

python38Packages.meshtastic
python38Packages.pytap2
python39Packages.meshtastic
python39Packages.pytap2

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

4 packages built:

python38Packages.meshtastic
python38Packages.pytap2
python39Packages.meshtastic
python39Packages.pytap2


Fix typo, and match singular noun to verb

"indicator" is singular, followed by "is."

Thank you very much for your contribution. The typos you found are quite embarrassing ^^. We are planting again 100 trees for your contribution.


Multiple media players

When multiple players exist at the same time, only the first one will be used.
The app must check which one is playing and select that.

This was fixed on earlier commits.


Profile page disabled for developers

Date: 14/02/2024

Developer Name: @lakshayman

Issue Ticket Number
Closes #571
Description
We want to block a user from accessing the profile page and updating the data from the UI.

Documentation Updated?

[ ] Yes
[x] No

Under Feature Flag

[ ] Yes
[x] No

Database Changes

[ ] Yes
[x] No

Breaking Changes

[ ] Yes
[x] No

Development Tested?

[ ] Yes
[x] No

Screenshots

Screenshot 1

Approved this but no tests?


Attacking is broken in debug mode (sometimes)

Description

In debug mode I can attack with my fists, but not with a spear, captains sword, crowbar, welder, etc. But this doesn't happen all the time?
EDIT: Apparently none of the pre spawned items can be used to attack. If you spawn in a different item (IE crowbar) you can attack with the newly spawned crowbar but not the old one.
Reproduction

Grab any of the starting items, go into combat mode, and try clicking.
Screenshots

https://user-images.githubusercontent.com/54602815/229632875-c68ece21-2f42-4ee7-9b05-e40b393408fd.mp4
Additional context

Pinging @metalgearsloth cause its related to pause time & TimeOffsetSerializer.
The cause seems to be a combination of the fact that picking up weapons while mapping causes  the next-attack-time to be set, along with some side effects due to how TimeOffsetSerializer includes pause time.
E.g.,

pause map at t=10
at t=20 pick up weapon, starts a 1-second delay, so next-attack-time is set to t=21
at t=30 save map. Map has been paused for 20 seconds.
TimeOffsetSerializer saves next attack time as nextAttack-(curTime-pausedTime) = 21-(30-20) = 11.
The result is that when map is loaded, cannot use weapon to attack for first 11 seconds.

I don't really know of a good general fix for this other than always checking if an entity is currently paused before setting any offset-serializer fields, but there's no way of enforcing this and this will probably cause more bugs later on.

This is also https://github.com/space-wizards/space-station-14/issues/13008
Ideally mapping wouldn't do any sorts of container changes as other hidden bugs are likely happening in map files as well (occasionally I'll see random datafields get added or removed as it is to entities) and mappers would just drag the entity around. Even if melee is fixed stuff like interaction cooldown or guns or any other number of systems may have unexpected issues.
What's best is probably removing aghost hands and adding a separate system for it. If they need to change a few entities at once then let them select them for bulk movement.

It's also #15096


add owl-cli to ontology utilities

Add the useful tool owl-cli to the list of utilities.
Thanks :heart:

Sorry for the late response. It's nice, thanks!


Restyle inquiries & requests

Restyle inquiries & requests
https://app.asana.com/0/860297512787618/1113269590853597/f
Restyled inquiries and requests based on figma wireframes
Related PRs
None
Migrations
None
Tests Performed, Edge Cases
None
Screenshots

CC: @by-co

Oops I meant to mark as "requested changes" but whatever


Misha/several enhancements

This PR adds couple enhancements:

no more potentially infinite waiting for relay node
imports cleanup of cluster module (linter suppression removed)
RunResult now returns contract state even in case of failure (as state can change before the failure, and user could be potentially interested in it); couple checks for RunResult added to make tests more precise

Subsumed by #35


Question: Is it possible to change the URI of the defaultClient at run time?

Hi vue-apollo team, thanks for a lovely plugin.
In an application we use the plugin with, at runtime I'd like to be able to change the uri which is being used?
I don't want to have multiple clients, I just want to change the uri to something e.g. a test API vs a live API based on some condition in the browser.
Any ideas on if this is possible and how?
Thanks in advance

+1

client.setLink()


Resource temporarily unavailable error on linux

Error sending request: Resource temporarily unavailable is the full error, nothing else is given in the output.

I am using wayland if that helps

Thank you for the report, and I'm sorry it took so long for me to reply! Can you try RUST_LOG=trace ./hyperspeedcube > log.txt and send the log?
I'm guessing this has something to do with graphics. It's also possible that v1.0.5 will fix the issue, since I made some changes there related to requesting the graphics adapter.

hmm updating it did fix the issue, atleast using cargo run --release


Update PostgreSQL image

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.8%) to 95.428%

Totals

Change from base Build<PHONE_NUMBER>:
-1.8%

Covered Lines:
1148

Relevant Lines:
1203

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-1.8%) to 95.428%

Totals

Change from base Build<PHONE_NUMBER>:
-1.8%

Covered Lines:
1148

Relevant Lines:
1203

💛  - Coveralls


Expand Selection in function and arrow function skips body block

Issue Type: Feature Request (maybe Bug)
Reproduce
Given these code examples, run Expand Selection a few times:
const func = () => {
  |<-- put caret here
};
// or...
const func = () => {|<-- put caret here

};
// or...
function func(params) {
  |<-- put caret here
}

Actual

Expected
In WebStorm:

Should be able to select the function or arrow function body block (the code between the {}, including the {}).
I find myself updating the body of an arrow function dozens of times a day, usually to inline the return expression as an implicit return.
Of course there are extensions and ESLint rules that can help with that, but Expand Selection should respect the function body block regardless.
System Details
VS Code version: Code - Insiders 1.40.0-insider (c58aaab8a1cc22a7139b761166a0d4f37d41e998, 2019-10-22T05:25:41.549Z)
VS Code version: Code 1.42.1 (c47d83b293181d9be64f27ff093689e8e7aed054, 2020-02-11T14:44:27.652Z)
OS version: Darwin x64 18.7.0

What language is that?

Also, please no animated gifs for actual/expected behaviours. Looking at them looping over and over until I understand what you mean takes way more time than you writing down your expectations.

Also, please no animated gifs for actual/expected behaviours. Looking at them looping over and over until I understand what you mean takes way more time than you writing down your expectations.

The code is in vanilla javascript, first experienced while writing in javascriptreact.
I understand what you mean regarding the GIFs. I wish GitHub wouldn't auto-play them and provide a Play/Pause button.
I've updated the description:

Removed one GIF
Added more examples, including when the expansion works as expected.


Do not use fsspec filesystem cache in the board

fsspec automatically uses a Dircache object to cache paths that come of e.g. its .ls() method. This is not a good fit for a pin board, since multiple users could be writing pins, and you want pin_list to show all the content currently in the bucket. We should...

code this into the constructors
test it by having multiple fs sessions writing content
include a comment somewhere relevant

Addressed in https://github.com/rstudio/pins-python/pull/130


Add support for node v6 (fixes #316)

Attempt to support NodeJS6 support, so far it looks like to be working (trying locally by linking puppeteer globally on machine with my NodeJS v6.11 ).
Would be great if other with working suites could check that everything is fine.
Had to move ./utils into ./src/utils so it can be easily compiled along the source. Since it is required at some point by the lib (in launcher.js), I guess it also makes sense to ship it along the lib as a subfolder.

Doing this is more complicated than just adding the babel plugins because we do some crazy toString magic on our functions. I have been working on a potential solution.

Thanks @mgcrea for the PR
Indeed, babel is not going to work out of the box since we have parts of code evaluated in  browser, and babel knows nothing about it. @JoelEinbinder did a bunch of prototypes and is currently working on a solution which should address this.

Indeed it was a bit naive! Many test do fail, but it somehow does work properly for simple screenshots (my use case). I'll use my fork waiting for an official solution, great to know this is being worked on, will track #316 for an update. Thanks.


Error Domain=NSCocoaErrorDomain Code=4865 "Expected String but found null instead."

Received this error in catch (NSError) when parsing the worksheet
if filemgr.fileExists(atPath: dataFileURL.path) {
let file = XLSXFile(filepath: dataFileURL.path)
do {
for path in try file!.parseWorksheetPaths() {
let worksheets = try file!.parseWorksheet(at: path)
Printing description of self.error:
▿ Optional

some : Error Domain=NSCocoaErrorDomain Code=4865 "Expected String but found null instead." UserInfo={NSCodingPath=(
"CodingKeys(stringValue: "sheetData", intValue: nil)",
"CodingKeys(stringValue: "row", intValue: nil)",
"XMLKey(stringValue: "10", intValue: 10)",
"XMLKey(stringValue: "10", intValue: 10)",
"CodingKeys(stringValue: "c", intValue: nil)",
"XMLKey(stringValue: "8", intValue: 8)",
"XMLKey(stringValue: "8", intValue: 8)",
"CodingKeys(stringValue: "f", intValue: nil)"
), NSDebugDescription=Expected String but found null instead.}

I have sent a copy of xlsx. Can't really do anything beyond this.

Hi @swainwri, sorry for the delay caused by blocking issues in the main dependency: XMLCoder. Now those issues are fixed and I've added a separate Formula model type in #61. As soon as that PR is reviewed by the co-maintainer, it's ready to use in master branch, but for a super-urgent fix you can use the temporary formula-fix branch too. 0.6 is going to contain this fix and will be released very soon. Thank you very much for reporting the issue!

Max
Appreciate your quick response
Thanks
Steve Wainwright

On 3 May 2019, at 01:08, Max Desiatov<EMAIL_ADDRESS>wrote:
Closed #59 https://github.com/MaxDesiatov/CoreXLSX/issues/59 via #61 https://github.com/MaxDesiatov/CoreXLSX/pull/61.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/MaxDesiatov/CoreXLSX/issues/59#event-2315290600, or mute the thread https://github.com/notifications/unsubscribe-auth/AE45RSGHAOLDTXT2AHLS5ULPTMUZ7ANCNFSM4HJC4JPQ.

Max
Just to follow up, the new CoreXLSX 0.6.0 works without fault on a iOS Simulator.
And even on the actual iPad, parses in the sharedStringItems without error,
when I browser through sharedStringsItems I observe many 'unable to read data’ in the text variable.
private func cellText(_ cell: CoreXLSX.Cell) -> String? {
var returnString: String?
if cell.type == "s" {
if let value = cell.value {
if let string = sharedStringsItems[Int(value)!].text {  // Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
returnString = string
}
}
}
else {
if let value = cell.value {
returnString = value
}
else if let formula = cell.formula?.value {
returnString = formula
}
}
This causes me issues as I can’t provide a route out of this error.
I use CocoaHTTPServer to upload files from laptop to iOS device, so don’t know if issues there,
but I know xls files passed this way can be parsed with PSXLSReader
rgds
Steve Wainwright

On 3 May 2019, at 01:08, Max Desiatov<EMAIL_ADDRESS>wrote:
Closed #59 https://github.com/MaxDesiatov/CoreXLSX/issues/59 via #61 https://github.com/MaxDesiatov/CoreXLSX/pull/61.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/MaxDesiatov/CoreXLSX/issues/59#event-2315290600, or mute the thread https://github.com/notifications/unsubscribe-auth/AE45RSGHAOLDTXT2AHLS5ULPTMUZ7ANCNFSM4HJC4JPQ.

sorry the 2 joel files don’t get past the parseStringItems routine, whereas the L5 file
fails as I explained in previous email
All 3 files parse perfectly(?) on Simulator

On 3 May 2019, at 01:08, Max Desiatov<EMAIL_ADDRESS>wrote:
Closed #59 https://github.com/MaxDesiatov/CoreXLSX/issues/59 via #61 https://github.com/MaxDesiatov/CoreXLSX/pull/61.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/MaxDesiatov/CoreXLSX/issues/59#event-2315290600, or mute the thread https://github.com/notifications/unsubscribe-auth/AE45RSGHAOLDTXT2AHLS5ULPTMUZ7ANCNFSM4HJC4JPQ.

@swainwri do you run exactly same code on the simulator and the device?
I'd avoid using a force unwrap there, you could avoid the crash this way:
private func cellText(_ cell: CoreXLSX.Cell) -> String? {
    if cell.type == "s",
    let value = cell.value,
    let index = Int(value),
    let string = sharedStringsItems[index].text {
        return  string
    }  else {
        return cell.value ?? cell.formula?.value
    }
}

Or something along those lines.

As confirmed by the OP, this issue is no longer reproducible.


build: add CI files for template

Closes #2933
This PR:

[x] Removes the old Travis and Appveyor .yml files
[x] Adds a new GitHub Actions build.yml file, which supports bundling and generating the installers.
[x] Adds supported files for codesigning on Mac and Windows

See a sample successful run of the GH Action here: https://github.com/VerteDinde/electron-forge-demo123/actions/runs/3357216442
Note: flatpak, snapcraft, and pkg installers require additional dependencies to run in Actions. Issue to implement these here: https://github.com/electron/forge/issues/3027

✋ Requesting changes on my own PR - need to remove the generate identity script and ask users to bring their own cert, rather than generating a test cert for them.


:bug: Framework image contains optional components

Kairos version:
v1.5.0
Describe the bug
The Kairos framework images contain  the following dracut modules which are optional and not present in all OSes. Consequently kernel initrd builds fail in specific systems. These files either need to be removed or omitted using other packages
./etc/dracut.conf.d/90-kairos-resolved.conf
./etc/dracut.conf.d/90-kairos-sysext.conf
To Reproduce
Install framework package without systemd-sysext ,systemd-resolved and sytemd-networkd. The initrd compiles fail.

Thanks for filing up the issue @venkatnsrinivasan !

This should be now fixed by https://github.com/kairos-io/kairos/issues/755. Next releases will have framework images per-flavor.
Meanwhile, framework images from master should be published as well, so we can use that for testing. Closing this in favor of specific issues after trying the flavor-specific images (I think fedora ones would fit your case here).


Non-"Square" Maps Can't be Loaded

As the title says.  I tried loading a save from Civinator's German Conquests compilation, expecting a terrain error.  Instead, I got an error that I traced to the map not being "square".  Later duplicated with an English Napoleonic Europe save.
Too tired to fix now.  But we probably should as a lot of scenarios have non-"square" maps.

This has been fixed and merged.


feat: Allow plugins to overwrite the cachedRead function (close #402)

feat: Allow plugins to overwrite the cachedRead function #402

Make sure to build and test locally before pushing the PR.

thanks for reply , local test always timeout and It confuses me


0.107.6 Incompatable?

HA-OUR-GROCERIES VERSION: 1.3.0
worked in ha 0.107.5 no problems... soon as i upgrade to 0.107.6:
3/24/2020 10:52:39 AM    ERROR: Command errored out with exit status 1:
3/24/2020 10:52:39 AM     command: /usr/local/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-hr04q8wo/lxml/setup.py'"'"'; __file__='"'"'/tmp/pip-install-hr04q8wo/lxml/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-t94b_9sw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7m/lxml
3/24/2020 10:52:39 AM         cwd: /tmp/pip-install-hr04q8wo/lxml/
3/24/2020 10:52:39 AM    Complete output (88 lines):
...
...
3/24/2020 10:52:39 AM  ERROR: Failed building wheel for lxml
3/24/2020 10:52:39 AMERROR: saltbox 0.1.3 has requirement beautifulsoup4==4.8.2, but you'll have beautifulsoup4 4.7.1 which is incompatible.
3/24/2020 10:52:39 AMERROR: saltbox 0.1.3 has requirement idna==2.8, but you'll have idna 2.9 which is incompatible.
3/24/2020 10:52:39 AMERROR: saltbox 0.1.3 has requirement requests==2.22.0, but you'll have requests 2.23.0 which is incompatible.
3/24/2020 10:52:39 AMERROR: saltbox 0.1.3 has requirement soupsieve==1.9.5, but you'll have soupsieve 2.0 which is incompatible.
3/24/2020 10:52:39 AMERROR: saltbox 0.1.3 has requirement urllib3==1.25.7, but you'll have urllib3 1.25.8 which is incompatible.
3/24/2020 10:52:39 AMERROR: motorparts 1.1.0 has requirement beautifulsoup4==4.5.1, but you'll have beautifulsoup4 4.7.1 which is incompatible.
3/24/2020 10:52:39 AMERROR: gearbest-parser 1.0.7 has requirement beautifulsoup4==4.6.0, but you'll have beautifulsoup4 4.7.1 which is incompatible.
3/24/2020 10:52:39 AMERROR: ourgroceries 1.2.3 has requirement aiohttp==3.5.4, but you'll have aiohttp 3.6.1 which is incompatible.
...
...
3/24/2020 10:52:39 AMERROR: Command errored out with exit status 1: /usr/local/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-hr04q8wo/lxml/setup.py'"'"'; __file__='"'"'/tmp/pip-install-hr04q8wo/lxml/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-t94b_9sw/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7m/lxml Check the logs for full command output.
3/24/2020 10:52:39 AM2020-03-24 10:52:39 ERROR (MainThread) [homeassistant.setup] Setup failed for ourgroceries: Requirements for ourgroceries not found: ['ourgroceries==1.2.3'].

Same issue.  Broke after the update to .107.6

Me too:
Setup failed for ourgroceries: Requirements for ourgroceries not found: ['ourgroceries==1.2.3'].

May not be 0.107.x related as people were getting similar error messages back in December 2019:
https://github.com/ljmerza/ha-our-groceries/issues/7

On startup or attempting to restart it gives the error "Component error: ourgroceries - Requirements for ourgroceries not found: ['ourgroceries==1.2.3']."

same error for me from 0.107.6
Setup failed for ourgroceries: Requirements for ourgroceries not found: ['ourgroceries==1.2.3']. 24 marzo 2020, 22:31:36 – setup.py (ERROR) Unable to install package ourgroceries==1.2.3: ERROR: Command errored out with exit status 1: command: /usr/local/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-25tpx2kw/lxml/setup.py'"'"'; __file__='"'"'/tmp/pip-install-25tpx2kw/lxml/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-q3wdan2f cwd: /tmp/pip-install-25tpx2kw/lxml/ Complete output (89 lines): Building lxml version 4.3.4. Building without Cython. ERROR: b'/bin/sh: xslt-config: not found\n' ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-3.7 creating build/lib.linux-x86_64-3.7/lxml copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/__init__.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/builder.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/sax.py -> build/lib.linux-x86_64-3.7/lxml creating build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-3.7/lxml/includes creating build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.7/lxml/html creating build/lib.linux-x86_64-3.7/lxml/isoschematron copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-3.7/lxml/isoschematron copying src/lxml/etree.h -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/etree_api.h -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/__init__.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.7/lxml/includes creating build/lib.linux-x86_64-3.7/lxml/isoschematron/resources creating build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/rng copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/rng creating build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl creating build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 running build_ext building 'lxml.etree' extension creating build/temp.linux-x86_64-3.7 creating build/temp.linux-x86_64-3.7/src creating build/temp.linux-x86_64-3.7/src/lxml gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc/lxml/includes -I/usr/local/include/python3.7m -c src/lxml/etree.c -o build/temp.linux-x86_64-3.7/src/lxml/etree.o -w unable to execute 'gcc': No such file or directory Compile failed: command 'gcc' failed with exit status 1 creating tmp cc -I/usr/include/libxml2 -c /tmp/xmlXPathIniti4c1dstc.c -o tmp/xmlXPathIniti4c1dstc.o unable to execute 'cc': No such file or directory ********************************************************************************* Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed? ********************************************************************************* error: command 'gcc' failed with exit status 1 ---------------------------------------- ERROR: Failed building wheel for lxml ERROR: saltbox 0.1.3 has requirement beautifulsoup4==4.8.2, but you'll have beautifulsoup4 4.7.1 which is incompatible. ERROR: saltbox 0.1.3 has requirement idna==2.8, but you'll have idna 2.9 which is incompatible. ERROR: saltbox 0.1.3 has requirement requests==2.22.0, but you'll have requests 2.23.0 which is incompatible. ERROR: saltbox 0.1.3 has requirement soupsieve==1.9.5, but you'll have soupsieve 2.0 which is incompatible. ERROR: saltbox 0.1.3 has requirement urllib3==1.25.7, but you'll have urllib3 1.25.8 which is incompatible. ERROR: motorparts 1.1.0 has requirement beautifulsoup4==4.5.1, but you'll have beautifulsoup4 4.7.1 which is incompatible. ERROR: gearbest-parser 1.0.7 has requirement beautifulsoup4==4.6.0, but you'll have beautifulsoup4 4.7.1 which is incompatible. ERROR: ourgroceries 1.2.3 has requirement aiohttp==3.5.4, but you'll have aiohttp 3.6.1 which is incompatible. ERROR: Command errored out with exit status 1: command: /usr/local/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-25tpx2kw/lxml/setup.py'"'"'; __file__='"'"'/tmp/pip-install-25tpx2kw/lxml/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-764eo5m7/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7m/lxml cwd: /tmp/pip-install-25tpx2kw/lxml/ Complete output (88 lines): Building lxml version 4.3.4. Building without Cython. ERROR: b'/bin/sh: xslt-config: not found\n' ** make sure the development packages of libxml2 and libxslt are installed ** Using build configuration of libxslt running install running build running build_py creating build creating build/lib.linux-x86_64-3.7 creating build/lib.linux-x86_64-3.7/lxml copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/cssselect.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/__init__.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/builder.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/sax.py -> build/lib.linux-x86_64-3.7/lxml creating build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-3.7/lxml/includes creating build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/diff.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/defs.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/clean.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/builder.py -> build/lib.linux-x86_64-3.7/lxml/html copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-3.7/lxml/html creating build/lib.linux-x86_64-3.7/lxml/isoschematron copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-3.7/lxml/isoschematron copying src/lxml/etree.h -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/etree_api.h -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-3.7/lxml copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/__init__.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-3.7/lxml/includes copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.7/lxml/includes creating build/lib.linux-x86_64-3.7/lxml/isoschematron/resources creating build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/rng copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/rng creating build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl creating build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-3.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 running build_ext building 'lxml.etree' extension creating build/temp.linux-x86_64-3.7 creating build/temp.linux-x86_64-3.7/src creating build/temp.linux-x86_64-3.7/src/lxml gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -DTHREAD_STACK_SIZE=0x100000 -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc -Isrc/lxml/includes -I/usr/local/include/python3.7m -c src/lxml/etree.c -o build/temp.linux-x86_64-3.7/src/lxml/etree.o -w unable to execute 'gcc': No such file or directory Compile failed: command 'gcc' failed with exit status 1 cc -I/usr/include/libxml2 -c /tmp/xmlXPathInitt3duiwuz.c -o tmp/xmlXPathInitt3duiwuz.o unable to execute 'cc': No such file or directory ********************************************************************************* Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed? ********************************************************************************* error: command 'gcc' failed with exit status 1 ---------------------------------------- ERROR: Command errored out with exit status 1: /usr/local/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-25tpx2kw/lxml/setup.py'"'"'; __file__='"'"'/tmp/pip-install-25tpx2kw/lxml/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-764eo5m7/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7m/lxml Check the logs for full command output. 24 marzo 2020, 22:31:36 – util/package.py (ERROR)

I think what's happening here is that HA is trying to install the python dependency "ourgroceries" which is the actual Python module this component uses:
https://github.com/ljmerza/py-our-groceries
In that module, though, in the setup.py the lxml version is set as lxml==4.3.4
Now for me, using python 3.8.2, lxml version 4.3.4 cannot compile at all.  See here that there was an issue with that version https://bugs.launchpad.net/lxml/+bug/1835492 which was then fixed in version 4.3.5
So, since pip can't install the dependency for the ourgroceries python module which is a requirement for the ourgroceries component, the whole thing fails.  Note the line @pironic posted of the error:

3/24/2020 10:52:39 AM         cwd: /tmp/pip-install-hr04q8wo/lxml/

Also, the ourgroceries python module specifies a version of aiohttp which does not work with HA.  I think this is also a problem, though I'm not 100% sure.
That sort of confirms that's what's going on here, I think.  What needs to happen is for py-our-groceries to get a new release with an updated setup.py, and then a new ha-our-groceries release with the requirements updated to specify the new version of the ourgroceries python module.
As a workaround, I fixed this by using pip to install the ourgroceries python module while using a constraints.txt file containing the following:
lxml==4.4.0
aiohttp==3.6.1

Then I just ran pip install -c constraints.txt ourgroceries==1.2.3 (from inside the virtualenv I run HA in) and then installed the custom_component and the lovelace card normally, and added the authentication settings in configuration.yaml.
Then, everything works fine.

Thank you for the explanation.  I'm not sure if Leonardo Merza is still supporting the card.  Is it possible that you make a branch that fixes it for the others of us that are not as fluent in coding?

Still doesn't work for me.

HA changed docker images and the new one removes some dependencies lxml needs.

See broken on .108 update.

Unless this is rewritten to not use lxml I don't think this can be fixed. Since version 106 HA used a different docker container base that doesn't contain the dependencies needed for the under lying python library to work. The only way to get this working now is to extend the HA dockerfile and add the dependencies needed to get this working again.

@ljmerza What are the dependencies needed? I'm using a customized Docker container already so this would be a viable solution for me.


setting up a mouse up handler on the checkboxes

#4 not sure if this is the best pattern. there's some difficulty in this procedure since there are nested components instead of the outer component yielding and letting the developer fill in how they want the option components to be used.

Thanks a lot for making a pull request!
There's a bit of a problem with going with the mouseUp event for this: it kind of breaks keyboard interaction (tab + space bar) with the checkboxes. The solution to that would be to use the change event instead. That has a downside to, in that now also "programmatic changes" to the checkbox value will send the event. You could also consider that a feature though, and in any case, I think the fact that it works with keyboard as well would make that worth it anyway.
If that is an acceptable solution though, I think we can simplify things a lot, because listening for individual checkbox changes is basically equivalent to observing the selection itself for a change. Something like this on the container component might work:
watchSelection: function () {
  this.sendAction('action',  this.get('selection'));
}.observes('selection').on('init')

Curious what your thoughts on all this are and would this work for your use-case?

Nice thoughts on keeping the keyboard interaction intact. I had originally
set up a click handler but it fires twice so I switched over to a mouseUp
and that alleviated the problem.
The problem with observing the selection is now your action doesn't receive
the item you just clicked on and instead gets the entire collection which
would be easy to get without it being a parameter. I think there's a
structural problem to the way this is set up with having the template of
the selection component reference the item components instead of yielding
and letting the developer plug in the item components where they could put
an action handler directly on it.  But in order to pull that off, the
developer now has to set up his own each loop so why use this addon at all?
Maybe something like block params gets it one step closer.
On 4:19AM, Thu, Mar 12, 2015 Roland<EMAIL_ADDRESS>wrote:

Thanks a lot for making a pull request!
There's a bit of a problem with going with the mouseUp event for this: it
kind of breaks keyboard interaction (tab + space bar) with the checkboxes.
The solution to that would be to use the change event instead. That has a
downside to, in that now also "programmatic changes" to the checkbox value
will send the event. You could also consider that a feature though, and in
any case, I think the fact that it works with keyboard as well would make
that worth it anyway.
If that is an acceptable solution though, I think we can simplify things a
lot, because listening for individual checkbox changes is basically
equivalent to observing the selection itself for a change. Something like
this on the container component might work:
watchSelection: function () {
this.sendAction('action',  this.get('selection'));
}.observes('selection').on('init')
Curious what your thoughts on all this are and would this work for your
use-case?
—
Reply to this email directly or view it on GitHub
https://github.com/RSSchermer/ember-multiselect-checkboxes/pull/5#issuecomment-78439343
.

I think the "observing the selection" way of doing it is good to add to the component anyway, in light of ember 2.0 philosophy of "data down, actions up" (even though using mut for these kinds of form elements is probably more convenient, the option to rely only on actions should be there), so I'll look into adding that anyway as the primary action of the parent component.
As to customizing the individual items, I think that block params and htmlbars may provide a solution. I think the main way of using the addon should remain using just the container component like so:
<multiselect-checkboxes options=users labelProperty='name' selection=selectedUsers>

But perhaps an alternative way of use can be achieved that allows more customization of the individual options, something like this perhaps:
<multiselect-checkboxes options=users labelProperty='name' selection=selectedUsers as |value label|>
  <label>
    <multiselect-checkbox value=value>
    {{label}}
  </label>
</multiselect-checkboxes>

You could then add actions to any element you like.

I like the idea of having that variability.
With regards to your second example, do you think multiselect-checkbox's tag should be label by default to encourage proper use of checkboxes?

Perhaps you could do both:
<multiselect-checkboxes options={{users}} labelProperty='name' selection={{selectedUsers}} as |value label|>
    <multiselect-checkbox-option value={{value}}>{{label}}</multiselect-checkbox-option>
</multiselect-checkboxes>

As sugar for:
<multiselect-checkboxes options={{users}} labelProperty='name' selection={{selectedUsers}} as |value label|>
  <label>
    <multiselect-checkbox value={{value}}>
    {{label}}
  </label>
</multiselect-checkboxes>

That's a little more messy to document though.

This feels like a stylistic decision that I'll leave up to you. Both are viable to me.

As of Ember 1.13, it finally became possible to implement this in a nice way. I just published 0.4.0 which implements passing custom template blocks as discussed. The final syntax has become:
{{#multiselect-checkboxes options=users labelProperty='name' selection=selectedUsers as |label isSelected|}}
  <li>
    <label>
      {{input type="checkbox" checked=isSelected}}
      {{label}}
    </label>
  </li>
{{/multiselect-checkboxes}}

Closing this for now. I think being able to pass a custom block as of 0.4.x should address this. If there are still issues I'd be happy to reopen.


Use GitHub API for push operations

Primary change here is replacing website.Push with a combination of client.Git.CreateTree + client.Git.CreateCommit + client.Git.UpdateRef, as the latter set of operations uses the authenticated context for our bot as opposed to simply shelling out, which does not have the necessary access.

🎉 https://github.com/vitessio/website/pull/1672

@frouioui this is ready for review whenever you get some time!


TCP/vsock sockets allow a user to DoS a ACON TD belonging to a different user

Currently, we are forwarding a host TCP port to the acond TCP port on the guest. But TCP ports don't have access control, so any user logged in the host can connect to the TCP port of any ACON TD without its owner's permission. Vsock doesn't have access control either. That means some intrusive commands such as aconcli shutdown -f could allow one user to shutdown other users' ACON TDs.
A simple fix is to forward acond TCP port to a UNIX socket on the host. QEMU supports that option but we will need corresponding changes in aconcli. acond is NOT affected.

@binxing Hi Cedric, I agree that the TCP port or Vsock are open so another user can utilize that to talk to acond.  Of course, acond has many verification steps to possibly detect it, but this is still a possible DoS attack.
However, as for totally shutting down the VM, a user other than the one created the VM is not able to kill the VM. In the code of aconcli, VM shut down logic is currently implemented by sending the SIGTERM signal to the VM process. So if the user attempting to kill the VM is not the one who created it, he is not permitted to shutdown the VM or even list the status of this VM.

Anyway, by forwarding host UNIX socket to guest TCP port, we can solve this problem cleanly.

QEMU doesn't look like supporting this option. Let's delay the fix until we have OpenID authentication.

This issue has been addressed by OpenID authentication added in v0.2.0.


Implementing filters directly on a controller works only for some filters

Not sure if it's a bug, it might be as designed. But in the latter case, it's a weird design, and I haven't seen it documented anywhere...
Describe the bug
In some situations, I need a filter that is only applicable to a specific controller. In this case, making it as a standalone filter doesn't really make sense, so I implement the filter directly on the controller, as explained in this article.
It works fine for some filters (e.g. IAsyncActionFilter). But for others (e.g. IAsyncExceptionFilter), it doesn't: the filter is never invoked.
To Reproduce

Implement a controller like this:

    [ApiController]
    [Route("[controller]")]
    public class DummyController : ControllerBase, IAsyncActionFilter, IAsyncExceptionFilter
    {
        private readonly ILogger<DummyController> _logger;

        public DummyController(ILogger<DummyController> logger)
        {
            _logger = logger;
        }

        [HttpGet]
        public IActionResult Dummy(bool @throw = false)
        {
            if (@throw)
                throw new Exception("Boom");
            return Ok(new { id = 123, value = "hello world" });
        }

        [NonAction]
        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            _logger.LogInformation("OnActionExecutionAsync: before");
            await next();
            _logger.LogInformation("OnActionExecutionAsync: after");
        }

        [NonAction]
        public Task OnExceptionAsync(ExceptionContext context)
        {
            _logger.LogInformation("OnExceptionAsync: " + context.Exception.Message);
            return Task.CompletedTask;
        }
    }

Call the Dummy endpoint with ?throw=true.
Notice that OnActionExecutionAsync is executed, but OnExceptionAsync is not.

Further technical details

ASP.NET Core version : 3.1
Include the output of dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.18362
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.1.100\

Host (useful for support):
  Version: 3.1.0
  Commit:  65f04fb6db

.NET Core SDKs installed:
  1.0.4 [C:\Program Files\dotnet\sdk]
  2.1.802 [C:\Program Files\dotnet\sdk]
  2.2.402 [C:\Program Files\dotnet\sdk]
  3.1.100 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

The IDE (VS / VS Code/ VS4Mac) you're running on, and it's version : VS 2019 16.4.1

Controllers specifically supports action filters, which would explain  why exception filters do not work. You could however annotate the controller with a filter attribute:
[ApiController]
[Route("[controller]")]
[MyExceptionFilter]
public class DummyController : ControllerBase
{
   ...
}

public class MyExceptionFilterAttribute : Attribute, IAsyncExceptionFilter
{
    public Task OnExceptionAsync(ExceptionContext context)
    {
        _logger.LogInformation("OnExceptionAsync: " + context.Exception.Message);
        return Task.CompletedTask;
    }
}

@pranavkm thanks.

Controllers specifically supports action filters

Is this documented somewhere?

You could however annotate the controller with a filter attribute

Yes, that's what I did

The way we expect users to use it is by overriding methods on Controller which is documented to an extent-
https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.controller.onactionexecutionasync?view=aspnetcore-3.1#Microsoft_AspNetCore_Mvc_Controller_OnActionExecutionAsync_Microsoft_AspNetCore_Mvc_Filters_ActionExecutingContext_Microsoft_AspNetCore_Mvc_Filters_ActionExecutionDelegate_
The fact that implementing action filters on controllers works isn't specifically called out, but we'd be happy to accept an update to the documentation https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters?view=aspnetcore-3.1#action-filters if that's something you'd be interested in.

The way we expect users to use it is by overriding methods on Controller

Yes, but if you use the ControllerBase class, there's no such method to override...
Anyway, since it's not a bug, I'll close this issue.

A few details for anyone curious....

Yes, but if you use the ControllerBase class, there's no such method to override...

These methods are present on Controller but not ControllerBase on purpose. There is overhead in the framework simply because these methods exist, we have to call them and allocate extra objects. For this reason we put them on Controller for compat, and elided them from ControllerBase.

It works fine for some filters (e.g. IAsyncActionFilter). But for others (e.g. IAsyncExceptionFilter), it doesn't: the filter is never invoked.

We support action/result filters because they are the most commonly used filter types. Legacy MVC supports exception filters here, but we didn't do it because they are really rarely used in core (we recommend middleware).
We also don't support resource filters here, because that wouldn't make sense. Resource filters execute before the controller is created.

@rynowak thanks for the explanations!