[WIP]fix: profiler refactor

Proposed changes
Refactor some parts of the profiler according to comments from the memory leak PR:

Fix wrapper
Set counters also in the destructor
Only iterate the gc one
Use types blacklist
Get info from all objects

Fixes
N/A
Types of changes
What types of changes does your code introduce to agents-aea?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist
Put an x in the boxes that apply.

[ ] I have read the CONTRIBUTING doc
[ ] I am making a pull request against the develop branch (left side). Also you should start your branch off our develop.
[ ] Lint and unit tests pass locally with my changes and CI passes too
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have checked that code coverage does not decrease.
[ ] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

Codecov Report

Merging #130 (cbefd97) into main (054eb02) will decrease coverage by 0.16%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##             main     #130      +/-   ##
==========================================
- Coverage   96.26%   96.10%   -0.17%
==========================================
  Files         302      303       +1
  Lines       24279    24271       -8
==========================================
- Hits        23373    23326      -47
- Misses        906      945      +39

Flag
Coverage Δ

unittests
96.10% <50.00%> (-0.17%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

aea/cli/run.py
90.15% <0.00%> (+0.67%)
:arrow_up:

aea/helpers/profiling.py
44.44% <22.72%> (-55.56%)
:arrow_down:

aea/helpers/profiler_type_black_list.py
100.00% <100.00%> (ø)

aea/protocols/dialogue/base.py
99.85% <100.00%> (+<0.01%)
:arrow_up:

Continue to review full report at Codecov.

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

There's an issue with an already existing profiler test that was marked as flaky last year. The test is test_run_with_profiling and basically breaks with the slightest change to it. At first I spent quite some time looking in my code but then I found that even in main it breaks with any change, to the ridiculous point that the following fails and I cannot fathom why:
def test_run_with_profiling():
os.chdir("/tmp")
The stacktrace only shows a couple of native frames not related with our code (points to _pytest/runner.py, could it be a pytest issue?), and the error is: AttributeError: 'list' object has no attribute 'items'
Now, the test has this mark:
@pytest.mark.skipif(
sys.version_info < (3, 7),
reason="cannot run on 3.6 as AttributeError: 'functools._lru_list_elem' object has no attribute 'class'",
)
And searching on the web I found this bug (that was closed last year in py3.10): "_functools._lru_list_elem is exposed unintentionally"
https://github.com/python/cpython/issues/88422

Sample output:
file:///home/david/Capturas%20de%20pantalla/Captura%20de%20pantalla%20de%202022-04-25%2013-48-29.png

slice (present):  166
Requirement (present):  146
Specifier (present):  131
Regex (present):  117
Value (present):  117
Op (present):  117
Variable (present):  117
Marker (present):  108
FQP_corresponding_FQ_class (present):  108

These look like generic types we can add to the blacklist:

slice (present):  166
Requirement (present):  146
Specifier (present):  131
Regex (present):  117
Value (present):  117
Op (present):  117
Variable (present):  117
Marker (present):  108
FQP_corresponding_FQ_class (present):  108

Where is the test that ensures the count issue is resolved?

Since all the new test functionality that I need for that lives in the other PR, I think to avoid duplication it would be better to:

Merge the tests PR since now it has 2 positive reviews
I merge main into this PR
I improve in this PR the test to account for the count issue (that, somehow, I have not seen again)
Merge this PR

There is an issue with pydoc-markdown and yapf for which I've opened an issue. This is blocking the tests.

can these be utility functions at the top of the script instead of nested functions within the tests?
https://github.com/valory-xyz/open-aea/blob/69824620747eaff5cbeec8e20961f8c998395df1/tests/test_helpers/test_profiling.py#L73-L75
https://github.com/valory-xyz/open-aea/blob/69824620747eaff5cbeec8e20961f8c998395df1/tests/test_helpers/test_profiling.py#L97-L99
https://github.com/valory-xyz/open-aea/blob/69824620747eaff5cbeec8e20961f8c998395df1/tests/test_helpers/test_profiling.py#L161-L169
https://github.com/valory-xyz/open-aea/blob/69824620747eaff5cbeec8e20961f8c998395df1/tests/test_helpers/test_profiling.py#L204-L212


[Question] Capture permission change event

Describe your environment

React-Native version: 0.59.8
Platform: both
Device: iOS, Android models
OS version: iOS, Android
react-native-permissions version: 2.0.0-alpha.1
Devtools: Xcode, Android Studio
(Android only: buildToolsVersion): 28

How to repeat issue and example
I'd like to capture permission change performed by the user: for example, the user has switched off location permission for the app in Settings.
Can we have some callback with using this plugin?
Solution
Using setInterval to ping status of permission?

I'd love something like this, and I don't really see any (efficient) way to do it with the current API. Ideally, I'd like to make a hook like this:
function useGeoLocation() {
  const [permissionStatus, setPermissionStatus] = useState('undetermined')
  const [location, setLocation] = useState()

  useEffect(() => {
    const unwatch = Permissions.watch('location', setPermissionStatus)
    return () => unwatch()
  }, [])

  useEffect(() => {
    if (permissionStatus !== 'authorized') return

    const watchId = navigator.geolocation.watchPosition(
      setLocation,
      (error) => {},
      { enableHighAccuracy: true },
    )
    return () => navigator.geolocation.clearWatch(watchId)
  }, [permissionStatus])

  return location
}

But the only current way to make this work would be to do some sort of interval loop, which is just asking for race condition issues

@vovkind You cannot really do it. The best way to handle it might be to check permissions statuses when the app AppState get back to active.

@zoontek this not works when android users pull statusbar down, only when app is minimized


mqtt light ignores "brightness_value_template" setting

Home Assistant release with the issue:

0.79.3
Last working Home Assistant release (if known):
Never tried it on previous versions
Operating environment (Hass.io/Docker/Windows/etc.):

Official Docker image running on QNAP NAS
Component/platform:

MQTT light
https://www.home-assistant.io/components/light.mqtt/
Description of problem:
mqtt light ignores "brightness_value_template" setting and always sends the integer brightness value alone (I'm listening in on mqtt topic). I've tried multiple combination of templates and hard-coded values - seems like it's ignored completely.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):

light:
  - platform: mqtt
    command_topic: "/ESP_Easy0/cmd"
    #state_topic: "/ESP_Easy/r2/state"
    #state_value_template: "{% if value == '1' %}gpio,5,1{% else %}gpio,5,0{% endif %}"
    payload_on: "WemosMotorShieldCMD,0,Forward,20"
    payload_off: "WemosMotorShieldCMD,0,Stop"
    on_command_type: "brightness"
    brightness_command_topic: "/ESP_Easy0/cmd"
    #brightness_value_template: "{{ 'WemosMotorShieldCMD,0,Forward,' ~ value_json.brightness }}"
    brightness_value_template: '{{"5"}}'

Traceback (if applicable):
no exceptions or errors I could find

Additional information:

Same with #12533

@rohankapoorcom thanks for directing me towards MQTT Template Light - this indeed provides a way to handle custom command formats situation, although a somewhat convoluted one, so this issue is closed.
I guess the real question for the https://github.com/home-assistant/architecture would be - why do we need 3 separate versions of the same component?


OS Name and version in the azure_compute_virtual_machine table

Is your feature request related to a problem? Please describe.
I'd like to be able to get the OS Name and os Version from the azure_compute_virtual_machine table
Describe the solution you'd like
I'd like for these values to be in this table azure_compute_virtual_machine or create a new table from this API query https://docs.microsoft.com/en-us/rest/api/compute/virtual-machines/instance-view
Describe alternatives you've considered
I'd be open to other places to get the OS but as far as I can tell this information doesn't exist anywhere else

@jason1444 Appreciate using steampipe and continuous feedback. Interesting to know that OS Name and OS Version are not captured. We are taking a look to find the reason, why we could not support it or it's part of any dataset.

@jason1444 Current code does not have these columns added, sorry for the inconvenience. Good that we have found them to add, as we get these details from the VirtualMachineInstanceView function. We will work on it. Thanks for reporting it 👍
Reference


Fix printing of empty types

See https://github.com/graphql/graphql-js/pull/1707
Resolves one of the problems responsible for many test failures in #928 and #929.

Superseded by https://github.com/webonyx/graphql-php/pull/941?

Superseded by #941?

No, they are independent changes.


WIP Unify IO between different modalities

Description
I didn't get a chance to finish this, but thought I'd submit in case you have time to improve it or would still want to merge it as is. I've tested locally with tiff, png, (command-line, drag and drop, and file>open) and zarr files (command line).
One issue I'm having is that zarr files are actually directories. This means that:
(a) they don't work with drag and drop, because the default behavior of drag and drop is to list directory contents Edit: this was an easy fix; and
(b) they don't work with File > Open, because the behavior of that dialog is to drill down into directories rather than let you select one as input.
I know there's solutions to (b) in macOS, but I'm not sure they can be expanded to Linux and Windows.
Type of change

[ ] Bug-fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

@jni - does QFileDialog.getExistingDirectory instead of QFileDialog.getOpenFileNames work for (b) to open the zarr folders? I think it might, will give it a check now too

does QFileDialog.getExistingDirectory instead of QFileDialog.getOpenFileNames work for (b) to open the zarr folders?

yes, but then normal files are not selectable or even visible...


Upgrade check

Retrieve url from config service

This is because the URL is no longer present in the bundle?

It is still available via ResourceBundle bundle = ResourceBundle.getBundle("omero-common");
but it means that user will need to know which properties file the desire properties is.
We could change it for that properties since it does not require to be connected to check.

Could be worth an RFE for a property-getting gateway helper that checks all the files. If this pattern becomes the usual way to fetch configuration then clients will break whenever we move a property from one component to another. Does not block this PR though.

My preferred option is to use the IConfig service  and do service.getConfigValue("omero.pixeldata.max_plane_width"); for example
That requires to have a session.
We probably need a section on "how to access configuration option"

Staged at https://merge-ci.openmicroscopy.org/jenkins/job/OMERO-docs/lastSuccessfulBuild/artifact/omero/_build/html/sysadmins/UpgradeCheck.html.

Few things:

Getting one's own version with getImplementationVersion is probably still valid and prevents a hard-coding. Perhaps we could show both.
I keep going back and forth in my deliberations: reducing remote calls is always good, but using only the bundle means that a sysadmin can't override. (cc: @chris-allan)
:+1: for not needing to know the specific properties file (which may ultimately also be an argument for making the remote call)

Not a blocker: This seems way too low-level for the sysadmin docs section

The bundle approach does not work in Matlab even if the jar is in the classpath i.e. the properties file is not found, the other approach i.e. using session does work.

Merging since this is a fix for a bug, but I would still appreciate having String version = Yourclass.class.getPackage().getImplementationVersion(); restored as more correct than hard-coding a version if we review this code again per @manics' remarks.


Delete stackdump file from repo root.

This stack dump file was obviously merged by accident, and doesn't belong in the repo.

@drewbatgit looks like you accidentally committed this file? Can I get a review?


Can't type the letter "s"

If you go to a docs.rs page, click into the search box the letter "s" doesn't type. (I assume this has something to do with the way "S" is used as a shortcut for search. (Sometimes it just works, I haven't found the pattern, but this page is an example of it not working: https://docs.rs/yup-oauth2/1.0.7/yup_oauth2/?search=)
Tested on Firefox and Chrome on two different Windows machines.

Hi @ajgajg1134, thanks for reporting.
rustc used in docs.rs have this issue and I believe @GuillaumeGomez fixed this issue last week (https://github.com/rust-lang/rust/pull/49152). Updating nightly in docs.rs should fix this issue.

I confirm it has been fixed.

According to this comment some upgrades should be done

For people dealing with the issue: The search results page doesn't have the issue, so typing anything that isn't an s then waiting will allow you to type ss.
I can confirm that a crate released 4 hours ago's documentation on docs.rs still has this issue, so we're waiting somewhat patiently for a rustdoc update in the docs.rs pipeline (and then a rebuild for every crate's documentation that got built by the bad rustdoc...)

@CAD97 is rebuilding everything is possible? I believe just fixing the issue would be enough.
Crates documentation would be updated on new releases.

@ivanovaleksey Yeah, just updating rustdoc will fix it for new releases, but that also means that any crate that got hit by the issue would have to notice that they did and release a new minor version just to fix the docs.
Either way, for the issue to not happen on any of docs.rs' documentation, the user has to wait for a new build of the documentation, whether that's because all bad documentation was rebuilt automatically or the crate owner pushed a new version (and even then, the old version's documentation is still available).

This also happens with "-" which expands/closes description blocks.

Is rebuilding the docs for old crates a possibility? There are lots of crates that still haven't had an update since this bug was fixed.

@z2oh rebuilding automagically is #464
(also, hi Jeremy :laughing:)

Both 's' and '-' are fixed on the latest version.


Map and markers not published most of the time

Bug report
Required information:

Operating system and version:

Ubuntu20.04

OpenRMF installation type:

source

OpenRMF version or commit hash

on branch bug/full_control_starts, 57f74a3

ROS distribution and version:

ROS2 Foxy

ROS installation type:

docker ros:foxy

Description of the bug
About 4 out of 5 launches, the map will not show up in RViz, even after waiting 10+ seconds. Simply killing and restarting until it shows up. Echoing /map while launching tells me it's not getting published in the first place. Possibly the node/publisher isn't fully initialized when the map is pushed out.
Steps to reproduce the bug

launch 2 real robots using free_fleet. Location coming through and is accurate (previously showed up on the map in the right spots)
Launch RMF using ros2 launch rmf_demos ff.launch.xml, on my fork - branch free_fact.

Expected behavior
Fleet map and markers show up in RViz
Actual behavior
Nothing shows up, no markers or map.
Additional information
In either case (working vs not), the robots are not in the start_set (for to me unbeknownst reasons):
[full_control-14] [ERROR] [1616805647.037018856] [fetch_fleet_adapter]: Unable to compute a StartSet for robot [fetch26] using level_name [level_name] and location [13.990606, -22.013958, -3.158765] specified in its RobotState message. This can happen if the level_name in the RobotState message does not match any of the map names in the navigation graph supplied or if the location reported in the RobotState message is far way from the navigation graph. This robot will not be added to the fleet [fetch].

This seems to be fixed with #13


ISPN-8802 Improve client-side marshalling documentation

Add info on white listing classes and reshuffle chapter.

Merged, thanks


Create armstrong.c

What's being changed:
Added Armstrong solution in C for the given problem

@Niveshpai
Please link the issue
Example:
Closes #1
Thank you!

Issue #1237 already closed


Fix a broken link

Updates the Go SDK link to point to the top level of the repo. (It currently 404s.)
Thanks!

@dirien Resolved!


Bump the buildimages

What does this PR do?

Bump the buildimages
Motivation

Make use of:

https://github.com/DataDog/datadog-agent-buildimages/pull/575
https://github.com/DataDog/datadog-agent-buildimages/pull/574

Additional Notes

Last PR related to https://datadoghq.atlassian.net/browse/ADXT-186
Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


Add Integration Test

This adds an integration test to check different parts of the trapper are working together properly. Previously we were only testing individual components, but not whether we can execute a training experiment and confirm that it results in a model that is trained.
The new test runs a training experiment on a small model from scratch. It then saves and loads the model. Finally, it runs the loaded model on several inputs to see if the model behaves in an expected manner. The test is mostly to see if this process can be completed without any errors.

LGTM!


Modify SSE connection handling for Puma

Puma's threading model handles connections differently than Thin,
so instead of having to keep track of the connections, we let Puma
do this and we simply stream the latest event data.

Whoops, I didn't update the tests! :-1:


json Marshl misbehavior with a type pointing to a slice

using version 1.4 or 1.3 on any operating system  , this code snippet :
package main
import(
"fmt"
"encoding/json"
)
type me struct{
Name	string
Fee int64
}
type Mes []me
type base struct{
Id int64	json:"id"
Mes json:"mes"
}
func main(){
b := []base{{Id:1},{Id:2}}
b[0].Mes = append(b[0].Mes , me{Name : "n1", Fee :63}, me{Name : "n2", Fee :88})
b[1].Mes = append(b[1].Mes , me{Name : "m1", Fee :63})
if bt , err := json.Marshal(b);err !=nil{
fmt.Println(err)
} else {
fmt.Println(string(bt))
}
}
func (m Mes) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprint(len(m))), nil
}
expected result :
expected result :
[{"id":1,"mes":2},{"id":2},"mes":1]
actual result :
[2,1]
i.e. not only the Mes slice is without a variable name, but the Marshaller totally ignores the Id element .

Could you please verify this bug occurs with Go 1.6.

Just did , reconstructed on 1.6 as well .
------ Original Message ------
From: "Dave Cheney"<EMAIL_ADDRESS>To: "golang/go"<EMAIL_ADDRESS>Cc: "GuyBrand"<EMAIL_ADDRESS>Sent: 13/04/16 1:35:52 PM
Subject: Re: [golang/go] json Marshl misbehavior with a type pointing to
a slice (#15273)

Could you please verify this bug occurs with Go 1.6.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

If you remove the MarshalJSON method from your Mes type, you get the expected behaviour.

No , If I remove it I get :
[{"id":1,"mes":[{"Name":"n1","Fee":63},{"Name":"n2","Fee":88}]},{"id":2,"mes":[{"Name":"m1","Fee":63}]}]
while the requested behavior is :
[{"id":1,"mes":2},{"id":2},"mes":1]
that's the reason for using MarshalJSON , to override the default
Marshaller ....
------ Original Message ------
From: "Dave Cheney"<EMAIL_ADDRESS>To: "golang/go"<EMAIL_ADDRESS>Cc: "GuyBrand"<EMAIL_ADDRESS>Sent: 13/04/16 1:44:41 PM
Subject: Re: [golang/go] json Marshl misbehavior with a type pointing to
a slice (#15273)

If you remove the MarshalJSON method from your Mes type, you get the
expected behaviour.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

The simple fix is to add the type for Mes
type base struct{
Id int64 json:"id"
Mes Mes json:"mes"
}
The result is
[{"id":1,"mes":2},{"id":2,"mes":1}]

It's a workaround, which could be find, still, that would need some code
refactoring...
On Wed, Apr 13, 2016, 20:47 Michael Fraenkel<EMAIL_ADDRESS>wrote:

The simple fix is to add the type for Mes
type base struct{
Id int64 json:"id"
Mes Mes json:"mes"
}
The result is
[{"id":1,"mes":2},{"id":2,"mes":1}]
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/15273#issuecomment-209563264

This is totally expected behaviour. The base type implements MarshalJSON, so its MarshalJSON method is used to marshal it.

See https://golang.org/ref/spec#Struct_types especially what happens with anonymous fields and what is promoted. If your case as mentioned, the MarshalJSON is promoted and applied to your base struct.

Well , I was about to ask : "so what if I implement more than one anonymous member , and the answer "solved" my problem , watch this simple code , I only added a new type "Mes1" :
package main
import(
"fmt"
"encoding/json"
)
type me struct{
Name	string
Fee int64
}
type Mes []me
type Mes1 []me
type base struct{
Id int64	json:"id"
Mes json:"mes"
Mes1 json:"mes1"
}
func main(){
b := []base{{Id:1},{Id:2}}
b[0].Mes = append(b[0].Mes , me{Name : "n1", Fee :63}, me{Name : "n2", Fee :88})
b[1].Mes = append(b[1].Mes , me{Name : "m1", Fee :63})
if bt , err := json.Marshal(b);err !=nil{
fmt.Println(err)
} else {
fmt.Println(string(bt))
}
}
func (m Mes) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprint(len(m))), nil
}
func (m Mes1) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprint(len(m)+5)), nil
}
now this amazingly returns :
[{"id":1,"mes":2,"mes1":5},{"id":2,"mes":1,"mes1":5}]
which is what I wanted in the beginning with "a little extra" , I was already "ready to leave with a little junk in my json" , but tried this json:"-"
type base struct{
Id int64	json:"id"
Mes json:"mes"
Mes1 json:"-"
}
and abracadabra :
[{"id":1,"mes":2},{"id":2,"mes":1}]
so , this IS inconsistent , not really anticipate-able and a little awkward .

This is not a bug.
You forgot the back-quote.
json:"id" should be  json:"id"
json:"mes" should be json:"mes"
Here is the code you wrote with the back quote added and returns [2,1]
`package main
import(
"fmt"
"encoding/json"
)
type me struct{
Name string
Fee int64
}
type Mes []me
type base struct{
Id int64 json:"id"
Mes json:"mes"
}
func main(){
b := []base{{Id:1},{Id:2}}
b[0].Mes = append(b[0].Mes , me{Name : "n1", Fee :63}, me{Name : "n2", Fee :88})
b[1].Mes = append(b[1].Mes , me{Name : "m1", Fee :63})
if bt , err := json.Marshal(b);err !=nil{
fmt.Println(err)
} else {
fmt.Println(string(bt))
}
}
func (m Mes) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprint(len(m))), nil
}`

This is not a bug.
Try to wrap the back qoute in json:"id" and json:"mes", and you get the correct response of [2,1]
here is the playground code. https://play.golang.org/p/UdK00l6qgZ

Checking that groups doesn't eat back ticks
type base struct {
Id  int64 json:"id"
Mes json:"mes"
}
On 14 April 2016 at 06:22, Faisal Dirie A<EMAIL_ADDRESS>wrote:

This is not a bug.
Try to wrap the back qoute in json:"id" and json:"mes", and you get the
correct response of [2,1]
here is the playground code. https://play.golang.org/p/UdK00l6qgZ
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/15273#issuecomment-209755310

Well it does in my case .
My code is right, the GitHub's eliminates the backquotes .
Please notice the new result *IS *different .
On 14 April 2016 at 08:30, Nigel Vickers<EMAIL_ADDRESS>wrote:

Checking that groups doesn't eat back ticks
type base struct {
Id int64 json:"id"
Mes json:"mes"
}
On 14 April 2016 at 06:22, Faisal Dirie A<EMAIL_ADDRESS>wrote:

This is not a bug.
Try to wrap the back qoute in json:"id" and json:"mes", and you get the
correct response of [2,1]
here is the playground code. https://play.golang.org/p/UdK00l6qgZ
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/15273#issuecomment-209755310

—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/15273#issuecomment-209770205

From skimming the replies on the thread here, it sounds like there's no bug.
Let's move this to a forum for now (https://golang.org/wiki/Questions) and come back to the bug tracker when a bug has been identified.

does look like a bug to me .
none of answers really addressed the issue I presented .
if you do think this behavior as "as designed", then its your call :)

This works according to the spec.
As @rogpeppe mentioned, in your first example MarshalJSON method is promoted to base from Mes and is used to encode an instance of base type.
In your second example (with Mes1 type) MarshalJSON is not promoted. Relevant parts of Go spec:

A field or method f of an anonymous field in a struct x is called promoted if x.f is a legal selector that denotes that field or method f.

and

The following rules apply to selectors:

For a value x of type T or *T where T is not a pointer or interface type, x.f denotes the field or method at the shallowest depth in T where there is such an f. If there is not exactly one f with shallowest depth, the selector expression is illegal.

So how does that explain that when I set json:"-" I get the required format?
On Fri, Apr 15, 2016, 04:42 kostya-sh<EMAIL_ADDRESS>wrote:

This works according to the spec.
As @rogpeppe https://github.com/rogpeppe mentioned, in your first
example MarshalJSON method is promoted to base from Mes and is used to
encode an instance of base type.
In your second example (with Mes1 type) MarshalJSON is not promoted.
Relevant parts of Go spec:
A field or method f of an anonymous field in a struct x is called promoted
if x.f is a legal selector that denotes that field or method f.
and
The following rules apply to selectors:

For a value x of type T or *T where T is not a pointer or interface
type, x.f denotes the field or method at the shallowest depth in T where
there is such an f. If there is not exactly one f with shallowest
depth, the selector expression is illegal.

—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/15273#issuecomment-210242950

Probably better to ask this question on a forum (https://golang.org/wiki/Questions), but here is a short explanation: http://play.golang.org/p/Ka2cqCnYzW

This sample IS working according to spec, and therefore, the solution is
simple, you just:
y, _ := b2.M1.MarshalJSON() (or M2).
When I json:"-" I am telling the system to ignore Mes1.
Probably, reflection resolved "how many anonymous public members are there"
first, and then ignores (ad suggested by the "-") the Mes1.
I don't mind this "dirty trick" at all, as long as I know it is according
to spec, and will not be changed in the future, leaving me with a broken
program.
I can still down the json package, and see if that's the case, but that
will not promise me future comparability either.
So a maybe this is not a "bug", but rather :
"A HOLE IN THE SPEC"
AND I don't know if those are entitled to be here, do you?
On Fri, Apr 15, 2016, 10:24 kostya-sh<EMAIL_ADDRESS>wrote:

Probably better to ask this question on a forum (
https://golang.org/wiki/Questions), but here is a short explanation:
http://play.golang.org/p/Ka2cqCnYzW
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/golang/go/issues/15273#issuecomment-210326501

Also note that if I make a minor change in your code :
remark on of the M's and json:"-" the other , it will surprisingly still return a value :
http://play.golang.org/p/QVHWcVwfc0
meaning if M1 has a jsonMarshaller , and I have various structs having it as an anonymous member none of them can "-" it , or in other words "-" does not work :
type dog struct{
Animal
BlaBla
....
}
type cat struct{
Animal  json:"-"
BlaBlaX
....
}
simply will make no change .
I guess the method selector in this case "skips" the json package parsing for "-", and that may give me some "non official promise" this behavior will be consistent on the next versions


Output always wrapped in  tags

Even if I enter the content without the WYSIWYG editor, as soon as I save the CMS page, it gets wrapped in
...
. It would be very useful to remove these tags before output, because they are not very helpful in files like robots.txt
Using Magento CE <IP_ADDRESS>

I'm not able to reproduce this.  If you use the "show/hide editor" button and you place your plain text in the content is saved in the database without the
...
 tags.  Can then be confirmed by visiting the newly created page from the frontend and not seeing the tags there either.  I do see that if you go back and load the CMS page in the admin and click "show/hide editor" again it's possible to see
...
 tags again but those are just put there by the WYSIWYG editor on load and are not saved to the DB.
We can't just strip the HTML tags either because it's possible someone may want to use this functionality to create an HTML snippet.


Wind pruf

Changes:

Windpower

Wind Resource Distribution model and page

p50p90, PXX, loss diagrams, graph changes for Uncertainties results page

Update defaults for wind pruf inputs

simulation.cpp

more error reporting

CMakeLists

ssc libraries are copied into the SAM deploy folder and the export_config folder during ssc' build process

Changes in api_autogen

add Sco2 compute modules to PySAM

closes #188
closes #189


JetBrains: Cody icon is missing from context menu in IntelliJ IDEA editor.

Cody Version
v5.5.1-nightly
IDE Information
IntelliJ IDEA 2023.3.3 (Community Edition)
Build #IC-233.14015.106, built on January 25, 2024
Runtime version: 17.0.9+7-b1087.11 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 14.3
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Metal Rendering is ON
Registry:
ide.experimental.ui=true
Non-Bundled Plugins:
idea.plugin.protoeditor (233.13135.65)
DevKit (233.14015.152)
gherkin (233.11799.165)
cucumber-java (233.11799.196)
PythonCore (233.14015.106)
com.sourcegraph.jetbrains (5.5.1-nightly)
Kotlin: 233.14015.106-IJ
Describe the bug
Platform: MacOS
Steps to reproduce:

Have Cody plugin installed in your JB PyCharm & IntelliJ IDEA editors
Login to Cody with Free/Pro/Enterprise user
Open any source code and right click to open Context menu
Check the "Cody" menu item

Observed behavior:
Cody icon is missing in the context menu for IntelliJ IDEA ediror.
Expected behavior
Cody icon should appear correctly.
Additional context
Screenshots:
IntelliJ IDEA :

PyCharm:

The actual difference is probably the old vs the new UI.

Most likely, but still other icons are

It is something from the newer versions of IntelliJ. Note that it affects all action groups e.g. Diagrams:


Fairsharing links

Adding fairsharing links to https://www.openmicroscopy.org/about/ 👍

Please see https://snoopycrimecop.github.io/www.openmicroscopy.org/about/#fairsharing for evaluation.
cc: @sbesson @jrswedlow @jburel

Longer-term, this page likely needs to be broken up. I'd move most sections to their own sub-item under the About drop-down:

Consortium
Standards
Resources
(possibly) Funding, Goals

Having looked at the sitemap, I think this is also my preferred location on the website. At least that is the one location which references 3d party projects and how we integrate with them.

Updated, now with #fairsharing anchor.

The OME collections link does not bring anything ome related

The OME collections link does not bring anything ome related

Weird. Thanks. Pushed.

Looks great.  I'd agree with @joshmoore  that we need sub-items. Linking to FAIRsharing doesn't provide good thumbs etc, which they might think about solving.  Lots of white space-- possible to get all 5 OME items in one horizontal line?  Other than that, is fine to push as  it is.

I'm not seeing a quick way to get 5-wide, but I've fixed some of the whitespace (and updated the screenshot in the PR description). Follow-ons recorded in https://trello.com/c/mmJr2c2n/158-split-about-page


Better handling for shutdown cancel request

This commit tries to fix the issue regarding listening task,
getting continued after cancellationToken has already been set
and the TorGuard object is disposed which causes ObjectDisposedException
on sslStream

Can you run this 60 times in a loop in CI, just to make sure?


TP2000-923 Edit workbasket title and description

TP2000-923 Edit workbasket title and description
Why
Users are unable to update a workbasket's title and description after creation.
What

Adds view to allow changing a workbasket's title and description
Displays in the workbasket summary tab the workbasket's current title and description with a link to update them
Adds and updates tests

Codecov Report
Patch coverage: 96.41% and project coverage change: +0.03 :tada:

Comparison is base (5e77873) 92.52% compared to head (b24c5e7) 92.55%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #951      +/-   ##
==========================================
+ Coverage   92.52%   92.55%   +0.03%
==========================================
  Files         432      432
  Lines       30201    30382     +181
  Branches     2306     2311       +5
==========================================
+ Hits        27942    28119     +177
- Misses       1802     1804       +2
- Partials      457      459       +2

Impacted Files
Coverage Δ

commodities/tests/test_templates.py
100.00% <ø> (ø)

commodities/urls.py
100.00% <ø> (ø)

common/forms.py
88.13% <ø> (+0.20%)
:arrow_up:

workbaskets/urls.py
100.00% <ø> (ø)

common/models/utils.py
94.73% <60.00%> (-3.45%)
:arrow_down:

common/widgets.py
83.78% <82.35%> (-1.22%)
:arrow_down:

measures/tests/test_buinsess_rules/test_ME67.py
92.30% <92.30%> (ø)

commodities/views.py
97.80% <95.91%> (-0.76%)
:arrow_down:

commodities/forms.py
88.52% <100.00%> (+7.96%)
:arrow_up:

commodities/models/orm.py
90.60% <100.00%> (+0.60%)
:arrow_up:

... and 8 more

... and 1 file with indirect coverage changes

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


Need a pip release

aba0a5fb0afc677ae69aa4cad429237988e91e9f fixes a bug where the warn package isn't imported.
Without this, users get unhappy errors like:
NameError: name 'warn' is not defined

The current pip version, 0.6.1, does not incorporate this fix. A new bugfix version should be released, if possible.

Fixed in #49

Fixed in #49


Popup tracker don't show full option

Hi Nick Fox!
I don't undestand why i drag the tracker and they only show "name" and "time".
Please helps me!
Thank you so much!

When you do a mouse-over it will show only the name and time.  If you click the marker it will show more info.


fn modifier

the following is a list of keys that is not properly working with the fn modifier, for unknown reasons.
fn - return
fn - backspace

fn - backspace is the delete key on mac keyboards and fn - return is enter. Pretty sure you can't override these.

Caused weird issues again so I'm gonna be removing these changes.

@koekeishiya fn - <key> doesn't work for me. I've tried it with several letters.

Oops, missed your last reply.
I would really like to see this modifier. Should I open a new issue, or have you decided not to implement it?

I would really like to see this modifier. Should I open a new issue, or have you decided not to implement it?

I never managed to figure out why it seems to break other functionality, so for now, no plans.
Sorry!

@koekeishiya what did it break? I just reimplemented 48d8030 and it seems to work fine.

I don't remember exactly, but this was the 2nd attempt and it still broke.
First time was when Kwm had a keybinding systme.
Ref: https://github.com/koekeishiya/kwm/issues/288

Well, if I find something broken with the fn modifier enabled I'll document it here, but thus far everything seems working.


[eslint-plugin] should ts-name-options rule allows OperationOptions?

Current API design guidelines require that method options bag type name should be <MethodName>Options
https://azure.github.io/azure-sdk/typescript_design.html#ts-options
However, in many cases, those methods only need a OperationOptions without any further customizations.  Should we allow this special case?

Allowing OperationOptions directly feels like a reasonable exception here; we're not minting a new type with a bad name (which is what the rule exists to prevent) and it won't hurt anything if consumers continue to use that type after we implement operation-specific options that extend OperationOptions


Theme Switching With Styles [multi-dimensional]

Describe the bug
After releasing multi-dimensional themes, in the settings tab under the Prefix styles with active theme name feature we mention the following:

Note: Using this with multi-dimensional themes will lead to unexpected results.

So there is currently an issue with creating styles with a multi-dimensional setup and wanting to then theme switch. The way we achieved this before multi-dimensional is by creating let's say:

Light mode in one library
Dark mode in one library

Publishing both of them
Enabling them in a third library
Switch modes

Currently this does work in a singular dimension. So if you were to only create and publish the group with modes and enabled a mode in a third library it works, but it does not work with a multi-dimensional setup. So if you now add a brand group to this case it breaks. You can't get both the modes and themes to successfully switch and it's often the latter that causes an error with theme switching as it always overrides all frames to one brand instead of independently like with modes.

Added to FeatureBase Roadmap- ❖ ❇ Non-local support of variables and styles

Added to Featurebase Roadmap-	💚 Theme management enhancements - QOL

Closing this issue as not planned as its been migrated to featurebase - 💚🪄 Theme management enhancements
Please click the link to create a free account and upvote the request so we can notify you when we start working on it. 🚀


Brokers received from metadata overwrite initially configured brokers

Before I start, I'm not sure if this is actually a bug, or indeed a feature hence feel free to close as you see fit!
My situation is that I wish to connect to a Kafka broker on a machine which I've only got SSH access to. I 'enable' this connection through the use of an SSH tunnel, exposing the broker port on my local machine where I'm running a kafkajs consumer on localhost (i.e. I've exposed the remote broker port locally in order to be able to connect to something that I otherwise wouldn't be able to connect to directly).
I've configured kafkajs to use this broker as;
const kafka = new Kafka({
  clientId: 'my-app',
  brokers: ['<IP_ADDRESS>:9092']
})

and then establish a connection as shown in the examples. But what happens is that after the initial attempt to connect to the broker at <IP_ADDRESS>:9092 it then attempts connection again to a different IP - one that I believe corresponds to data returned by the initial connection to the Kafka broker. My Kafka knowledge isn't limited but I'm guessing it first returns metadata about the broker or something, and part of that happens to be a list of brokers or something? The problem for me though is that that IP isn't resolvable from where I'm running my application - I've got an SSH tunnel in place as my means of access and the actual IP of the broker isn't useful for me.
After adding some logging to the library I see that the function returned from refreshMetadata in cluster/brokerPool.js is being called which in turn calls connectionBuilder.build(..) with a host parameter extracted from this.metadata.brokers (this code is all in a reducer loop). The value of host in this.metadata.brokers happens to be the real IP of the broker but sadly one I can't access directly. I've hacked my way around this for now by changing the parameter passed to the connection builder to be seedHost instead of host to ensure that the new connection that is established also uses my initially configured broker which works but is obviously a big hack!
Is it correct for the library to be picking up and overwriting the initially configured broker details by values returned from the initial connection to Kafka?
Is there some configuration I'm missing that will force the library to not use the returned metadata for subsequent requests and simply rely on the set of brokers configured to start with?
Cheers,
Tim

Kafka does indeed return a list of brokers to connect to, and it is intentional that this overwrites the statically specified broker(s) that you have configured. This is because brokers can be removed from the cluster over time, which would mean that your initially configured ones may no longer be valid.
I'm actually working on something related, where I need to make the configuration to the broker through a proxy.
What you can do to enable this is to provide your own SocketFactory. The default one looks like this: https://github.com/tulios/kafkajs/blob/343947a10f00a155417f43b267f9cf5afc6d43e7/src/network/socketFactory.js#L3-L22
In your case, you would want to overwrite the host. Something like:
const net = require('net')
const tls = require('tls')
const KEEP_ALIVE_DELAY = 60000 // in ms

module.exports = ({ host, port }) => {
  return ({ ssl, onConnect }) => {
    const socket = ssl
      ? tls.connect(
          Object.assign({ host, port }, ssl),
          onConnect
        )
      : net.connect(
          { host, port },
          onConnect
        )

    socket.setKeepAlive(true, KEEP_ALIVE_DELAY)

    return socket
  }
}

You would then specify that socketFactory when instantiating your client:
const CustomSocketFactory = require('./customSocketFactory')
const { Kafka } = require('kafkajs')

const client = new Kafka({
  clientId: 'my-app',
  brokers: ['<IP_ADDRESS>:9092'],
  socketFactory: CustomSocketFactory({ host: '<IP_ADDRESS>'. port: 9092 })
})

Note that this means that you'll always connect to a single machine. If you only have a single broker, that might be fine, but in most scenarios you'd have more than one broker, and specific requests would need to go to one broker or another.

Hi @tim-mit, the seed brokers are just that, seed. They are only used to load metadata once when the library boots. I know that this makes your use-case harder, but that's the correct behavior. I have seen some libraries offering a function to map the hosts, that's a much simpler approach than having a custom socket factory, we could consider that.

Thanks for the pointers guys, I'll have a go at the custom socket for now.
@tulios do you have an example of the sort of thing you would consider as an appropriate API/config for mapping? If you do have a proposal I may be able to find time to try and contribute something back.

So here's one of those things where Tulio and I will violently disagree. 😄 My proposal is that this belongs outside of KafkaJS core, and that we should just provide powerful primitives. The way I think a mapping should be implemented is to have KafkaJS export the default socket factory, and then just wrap that in something that replaces the host and port and delegates back to the default socket factory. Something like:
const { SocketFactory, Kafka }  = require('kafkajs')

const MappedSocketFactory = (mapping = {}) => {
  const defaultSocket = SocketFactory()

  return ({ host, port, ...rest }) => {
    const mappedDestination = mapping[`${host}:${port}`] || { host, port }
    return defaultSocket({ host: mappedDestination.host, port: mappedDestination.port, ...rest })
  }
}

const client = new Kafka({
  socketFactory: MappedSocketFactory({
    '<IP_ADDRESS>:1234': { host: '<IP_ADDRESS>', port: 9092 }
  })
})

Tulio tends to have a different philosophy, so we'll see what he says. 😉

I agree with you @Nevon, I always advocate on the developer experience, but my question was more to highlight that this is a requested feature. I think we fully cover the needs of a mapper function with the socket factory.

I'm gonna go ahead and close this issue. Feel free to open up a new one if you feel that the current capabilities don't adequately solve your issue, @tim-mit


[windows] make fails

Environment info
Operating System:
windows 8.1
Compiler:
i386-pc-mingw32 (from git shell)
The commit hash (git rev-parse HEAD)
b9a9d2bf45010bd267a870df9ec02874385378e0
Logs will be helpful (If logs are large, please upload as attachment).
...

cp make/mingw64.mk config.mk
make
g++ -m64 -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude -DDMLC_ENABLE_STD_THREAD=0  -Idmlc-c
ore/include -Irabit/include -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
0 [main] sh 4172 sync_with_child: child 1728(0x160) died before initialization with status code 0xC0000142
373 [main] sh 4172 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
make: *** [build/learner.o] Error 128

Seems like this is a windows and system specific issue:
http://stackoverflow.com/questions/7767573/git-8728-fork-child-1-died-waiting-for-longjmp-before-initial#8476532
There seems to be an issue with the msys/mingw from git. Apparently replacing the msys-1.0.dll fixes it ... http://web.archive.org/web/20130523160129/http://code.google.com/p/msysgit/issues/detail?id=122
Possibly updating the git installation will fix it. Or continue the discussion on git bug tracker ?


Order of components in views

Home Assistant release (hass --version):
0.23.1
Component/platform:
UI
Description of problem:
I have the following configuration in a groups section:
Garage:
  view: yes
  icon: mdi:car
  entities:
  - camera.garage
  - group.garage_switches

I would expect that the camera is the first entry on the page, and the switches are positioned below that. That isn't the case however, it seems the specified order is ignored and the order of configuration in the file is used.
This makes it impossible to re-use groups or components on other pages where I would like to have a different order.
Expected:
Follow the order of the entities as specified.

One way around this is to use the undocumented order: ## feature.
Example:
group:
  Garage:
    view: yes
    icon: mdi:car
    entities:
      - camera.garage
      - group.garage_switches

customize:
  camera.garage:
    order: 1
  group.garage_switches:
    order: 2

Order is only for groups, is determined by the place in configuration.yaml and only matters for when it is sorting multiple group cards.
The view always renders groups first, then separate entities. So in your case your view contains a camera and a group, so it will render the group first. You can make the camera part of it's own group and add that to your view if you want it to appear above the other group.

That's true, but when I want to reuse that group (or individual entries) in a different view (say a view with all my cameras, besides views based on the locations in my house), I have no control over the order in that view, since the order in the file will be used.

👍 Would like to see more control over ordering of all entities.

Why not just order entities based on what order they are listed in the yaml file for each group/view? Seems like that would give you the most control.

👍 - I, too, want to be able to set the order in the view so that I can set the order of "bubbles". In addition, I would like to be able to insert a break or a separator to those entities. I envision something like this:
default_view:
  view: yes
  entities:
    - sun.sun
    - sensor.yr_symbol
    - <SEPARATOR>
    - device_tracker.phone1_s5
    - device_tracker.phone2_s5
    - <SEPARATOR>
    - binary_sensor.motion_detector1
    - binary_sensor.motion_detector2
     - etc

Would this affect the ordering of entities in the History view, too? It's not clear to me how HA determines the order in that view.

Would love to see this as well. Currently it seems that groups, or items in the default_view are added at random. Would be nice if the default_view (or other views), had some consistency.

It's not random, if I remember.
The system puts entities in a column, and keeps on adding  in the same column untill there are 5 entries (a group itself doesn't count, only it's children ). Next items will go to the next column. If all columns are taken the column with the smallest amount of entities is picked next. This is continued until all items are placed.
I agree that this system seems quite random, and maybe a more simple placing algorithm can be used...

Ordering is still an issue in the latest version

There are a few things that need to be addressed in relation to ordering of components, groups and views. Right now the only ordering that is confirmed working is the order of components in groups.

I have found today that I can change the order in a view by changing the physical order of groups in the groups.yaml.

this may be related, but i'm not sure - is there a way to specify order of badges?  it seems that no matter where i put them in the yaml file, it is always loading them in what appears to be alphabetical order...it follows the order they appear in the yaml file if i create a group, but the badges always seem to go in alphabetical order no matter how i place them.

I also would like to have more control over the ordering of entities in group and badges in a view.

You can arrange groups via the order in group file. But for sensors... Nothing can be done?

I found out that they are order alphabetically by friendly name (if set) or by name. I then tried a workaround by putting spaces at the beginning of the name. 6 items to order, put 5 space at the begining of the first, 4 spaces at the beginning of the second...
Try and get the nice surprise to see that apparently, HASS center the name without taking care of the heading spaces 👍

Thanks Memes11 for the hint, it's still the only working workaround I found.
A small addition in case someone else is looking for a solution: add ' ' around the friendly_name or the space wont have influence on the ordering.
For example:
  media_player.tv:
    friendly_name: '    Chromecast'
  media_player.living_room_speaker:
    friendly_name: '   Google Home'
  media_player.bedroom_speaker:
    friendly_name: '  Google Home Bedroom'


react-virtuoso support

Does this support react-virtuoso ?
I have created a little demo. It renders properly, but when I try to enter in the input/search field, it fires an error Node.appendChild: Argument 1 is not an object.
https://stackblitz.com/edit/stackblitz-starters-nekqj6?file=src%2FApp.tsx

Hi, it's not react-virtuoso but https://github.com/inokawa/virtua will work with cmdk. It has similar functionality to react-virtuoso and 3x lighter.
https://inokawa.github.io/virtua/?path=/story/advanced-with-cmdk--default
https://github.com/inokawa/virtua/blob/main/stories/react/advanced/With cmdk.stories.tsx

You can use it with Virtuoso. you need to disable the default filtering (shouldFilter={false}) and provide a custom filter.
See here.

@kristofdombi would be nice if the filtering is exported from this package

Agreed, I'll add an export for the defaultFilter. A future version may not ship with a default filter at all, to reduce bundle size.


Add collection short name to granule search

https://docs.maap-project.org/en/latest/access/accessing_data.html#Accessing-Data-from-the-MAAP
running this code generates an error because no provider_id has been provided, could we modify it to the following:
results = maap.searchGranule(site_name=SITENAME, provider_id='NASA_MAAP')

closing as stale


Compile error in ViewEntity

By default, assigning a value back to a lambda variable is valid syntax. I guess the reason is a different compiler setting in your IDE.


Finalize AttributedText API

AttributedText has some mutable and some immutable behaviors. It's a conflicting API.
Either AttributedText should commit to be mutable, or immutable, or 2 classes should exist; one for each use-case.

Maybe related to this:
When there is an AttributedText with only bold or italic in a paragraph, a person can not make an adjustment to the text and it throws the following exception.
Exception: Another AttributedSpans can only be appended after the final marker in this AttributedSpans. Final marker: [SpanMarker] - attribution: italics, offset: 0, type: SpanMarkerType.end
STR:

Create a sentence in a paragraph with Bold (or italic, up to you) characters.
Save it (serialize it)
Remove all the words/characters except the bold one
Save it again.
Try to add characters to the start (or end) of the bold word, it does not work.


Consolidate constant values

Currently, some constant values like system namespace or wire protocol version are defined as plain string literals at random places all over the code base.  Thus it's a good idea to consolidate these values into one/few places (think of the error_definitions.h for example).

I changed most of the places to use constants instead of same string literals via https://github.com/FoundationDB/fdb-document-layer/pull/109


Conditional compilation/inclusion of Svelte components based on features

Describe the problem
Currently, Svelte has great conditional handling of components as such:
{#if <condition>}
  <MountComponent />
{/if}

However, if the following where to happen:
{#if false}
  <MountComponent />
{/if}

Then the above code would still make it into the final deployment artifact. This means it is currently not possible to perform conditional compilation/inclusion of code based on some static variable, or some other means.
I was originally inspired to propose such a feature after missing it a lot from the Rust programming language. In Rust, one can declare "features" for the app that can be easily enabled/disabled and the resulting executable would only contained enabled features. Such a feature would make a profound impact for projects that would like to conditionally include/exclude large portions of code from being deployed to specific environments, such as Desktop apps written with Electron or Tauri only including those relevant sections of code when those feature sets were enabled, where otherwise the rest of the code would be shared between platforms. In the context of SvelteKit, this would also open the door for providing conditionally compiled code targeting specifically SSR, or static, if one so desired, for whichever reason.
Describe the proposed solution
My current proposed solution could be implemented in such a way:
Inside of svelte.config.js, one could include something like the following:
const config = {
  /* config stuff */
  kit: {
    features: ["namedFeatures", /* more feature names */]
  }
}

And then used in a such manner:
{#if $$featureName}
  <MountComponent />
{/if}

In the above example, the code would only get included if the named feature(s) were enabled. These features could also be able to be combined where multiple features are needed to enable compilation of that code.
For JavaScript/TypeScript side, one could do something like the following:
import {feature} from "$app/features";

if ($feature.featureName) {
  /* everything inside this block would be conditionally included if the feature is present, or enabled */
}

This would also open a world of possibilities for including other components where you pay for the size you need, and nothing more. By this I mean something like the following:
Inside of an authored library, one could have the following in their package.json:
{
  /* package stuff */
  "svelte": {
    "features": [/* list of documented features */]
  }
}

Then, inside of the dependee package.json, one could have:
{
  /* package stuff */
  "svelte": {
    "features": {
      "package-name": [/* feature list one wishes to be included */]
    }
  }
}

Alternatives considered
No response
Importance
would make my life easier
Additional Information
Please let me know what you all think of such a feature, and perhaps the implications and/or complexity of such a feature.
Perhaps the easy part would be the exclusion of components inside #if blocks, since those would just be parsed and removed before passing the rest of the file off to the svelte compiler, however, looking for the same tokens inside of JS might be more tricky. Regardless, I think this would be a pretty revolutionary feature for the web in general!

I think this already works. If you were to literally do:
{#if false}
  <MountComponent />
{/if}

I expect that would work. If instead of false you were to put a condition dynamically calculated at runtime that would be impossible (halting problem amongst other difficulties). But if you'd like a boolean flag set at runtime you can use Vite's define: https://vitejs.dev/config/#define

Although the dynamic condition would make sense to work (though haven't seen documentation on it), there's still the case of #if <static> && ..., which I don't believe works, and doesn't face any of the shortcomings you mentioned.
There's also the second half of the proposal, which would include defining feature sets that can be applied where needed for the current package and also for Svelte dep packages.
Regarding Vite's define, wouldn't this get injected after Svelte processes the file, and therefore wouldn't be able to optimize that code away?

Regarding Vite's define, wouldn't this get injected after Svelte processes the file, and therefore wouldn't be able to optimize that code away?

It's not the Svelte compiler that optimizes it away. It's Vite/Rollup

Yeah, this basically already works for any expressions that can be statically evaluated by Rollup:
{#if dev}
  <ThisComponentWillNotBeImportedInDevMode/>
{/if}

The one caveat is that the component will still be imported for its side-effects, which means that its CSS will get included. It's possible to disable that at an app-wide level by passing some config to Rollup:
// svelte.config.js
export default {
  kit: {
    vite: {
      build: {
        rollupOptions: {
          treeshake: {
            moduleSideEffects: false
          }
        }
      }
    }
  }
};

That does carry a small risk of introducing bugs if you have side-effecty imports elsewhere in your app, but the risk is small. Perhaps in future there'll be a way to tweak that configuration further, but for now I'm going to close this as 'close enough'.


screenfetch: fix darwin execution

Fixes #31790
Things done

Built on platform(s)

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

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build screenfetch


feat(create-mud): use solhint-plugin-mud in templates

needs the plugin to be published to work correctly

if you add this, it should release automatically via CI
https://github.com/latticexyz/mud/blob/d38232032b86d3dbccc00ffc23f6eee4e93c7732/packages/dev-tools/package.json#L55-L57


Other amount field for donation custom sum

Which area(s) of Podkrepi.bg are affected? (leave empty if unsure)
No response
Describe the feature you'd like to request
Please allow users to enter sum in the exact filed which they entered so that they are not confused by adding separate field
Describe the solution you'd like
on click  this field

should transform to active state of the field which they can enter a sum

Describe alternatives you've considered
No response

I can work on this :)

@dphilipov Great! The ticket is assigned to you.


PHOENIX-6286 Extend syscat RegionSplitPolicies from the default Polic…

…y for the HBase branch

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 29s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
7m 35s
the patch passed

+1 :green_heart:
compile
0m 56s
the patch passed

+1 :green_heart:
javac
0m 56s
the patch passed

-1 :x:
checkstyle
0m 27s
phoenix-core: The patch generated 2 new + 13 unchanged - 2 fixed = 15 total (was 15)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
javadoc
0m 47s
the patch passed

+1 :green_heart:
spotbugs
4m  1s
the patch passed

_ Other Tests _

-1 :x:
unit
125m 49s
phoenix-core in the patch failed.

-1 :x:
asflicense
0m 31s
The patch generated 1 ASF License warnings.

162m 33s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1041/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/phoenix/pull/1041

Optional Tests
dupname asflicense javac javadoc unit spotbugs hbaseanti checkstyle compile

uname
Linux f806947cd084 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev/phoenix-personality.sh

git revision
master / 2adee98

Default Java
Private Build-1.8.0_242-8u242-b08-0ubuntu3~16.04-b08

checkstyle
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1041/1/artifact/yetus-general-check/output/diff-checkstyle-phoenix-core.txt

unit
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1041/1/artifact/yetus-general-check/output/patch-unit-phoenix-core.txt

Test Results
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1041/1/testReport/

asflicense
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1041/1/artifact/yetus-general-check/output/patch-asflicense-problems.txt

Max. process+thread count
6546 (vs. ulimit of 30000)

modules
C: phoenix-core U: phoenix-core

Console output
https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1041/1/console

versions
git=2.7.4 maven=3.3.9 spotbugs=4.1.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


1.15.X/1.14.X Toggle Sprint and Controller Button Options Menu

So I apologize in advance for the mess I made with all the PR's I made and not following proper PR behavior. But I hope I can finally make it up to you with a PR that will actually make sense and is appealing. With that said, here are the features and information.
The 1.14.X branch (1.14.X-action-mapping-standalone) is virtually identical to this branch with support for 1.14.X

Fully supported locales:

en_us
es_es

Migrated ButtonBindings old system to a new Controller Button System. The new system has a simple to use but strict API which can be managed when mods are initialized. It also includes a GUI that is easily manageable.  The mod loads the action registry file once FML has called FMLLoadCompleteEvent or in other words Minecraft finishes loading and enters the main menu. This allows mods to register buttons in mod initialization and since Controllable should be expected to be the last mod to handle button registration, it should load and save the default buttons without mods adding their actions after it does this.

ButtonBinding class is now mutable and contains a defaultButtonId int property.
ButtonActions can still be used from ButtonRegistry.ButtonActions.ACTION.getButton();
This was achieved using an extra dependency, specifically one of my own projects, which is my config manager. It can be found here and it uses Gson and Okio

Sprint toggle

To find pre-compiled jars, you may go here in my repo
As of writing, the latest release with the pvp features removed is here
I've done my best to comply with the codestyle and add comments to help understand the code, though I am open to criticism of the code quality and feature implementation as always.
Note however that there are new translation keys that have yet to be added to other languages. For now, English and Spanish are the main languages supported in this PR.
To use the API, it is quite simple:
// Action is used to refer to an action that is set to a button.
// ActionData is just a data class that refers to two translation keys: the action's description such  as Jump and the action's category, such as "Gameplay" or "MyMod"
ButtonRegistry.getButton("action"); // Returns the ButtonBinding instance. Throws exception if registerButton has not been called.
ButtonRegistry.registerButton("action", actionData, buttonBinding); // Registers the action in the registry. Throws an exception if the action is already registered.
ButtonRegistry.getAction(String action); // Get's the action translation keys.
ButtonRegistry.getButtonBindings(); // Return's a copy of the registry which will not modify the orginal
ControllerProperties.saveActionRegistry(); // Saves the current controller action registry as a JSON file. Theoretically it should only overwrite settings that are registered in memory, as is the case when a mod registers an action, saves it but then the next time the game starts the mod is no longer present to avoid resetting it. This has not been tested however.
ControllerProperties.loadActionRegistry(); // Loads the action registry from the file.

The code implementation may look messy but it works for remapping actions to different buttons.
The GUI looks like this:

(This picture is outdated and shows a bug that was fixed. The bug made categories split due to the order of the button registration)
A more optimal design choice might be making replacing the text showing what buttons are assigned to icons. It can also be linked to the Icon Preference. I would have done it if I knew how to use OpenGL but unfortunately I don't.
Sorry in advance if the code and this PR seem sloppy.
I'm open to criticism of code quality and features' implementation.

Added icon support as shown here


Step Into A Block Without going thru the detail code? Is this possible.

In the image below, I want to go directly to the code in the block without stepping into the implementation of #should:raise:. Is this possible. It would be very handy.

Believe I have support added for debugger step through in 3.0.81

Oops, hit wrong button

I think I understand the feature, and I believe it's working.
But it does need a better icon.  While cute, I don't think the little apple is appropriate here.

Speaking of icons, I also still have the blue circle question mark in the upper left of the SUnit browser.

Yes, I sent email on the icon. The apple is temporary.  I'll have it fixed up in the next few days.
If you have an issue with the SUnit browser, please open a new issue.

The Sunit issue has been open a long time, it's issue #346.

New icon will appear in 3.0.82.

Working!  and with Icons!


Debug impl cleanups

DebugStruct::field takes &dyn Debug. For primitive types it should give same result as Display.

cc @Emilgardis


chore: add renovate

close #6

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:


chore(package):fix badges in readme after org rename.

@helfer :)
i suggest to do it for the reset of the repos.
also i think a fix for package.json is needed as well..

Thanks!


Evaluating with autom8

I'm getting this error when trying to evaluate with autom8.
AxisError: axis 1 is out of bounds for array of dimension 1

Can you post the whole trace, and the commands you are running.

Here is my model. I've splitted my dataset in to train, validate and used SMOTE oversampling strategy due to an imbalanced dataset.
Model
def binary_classifier(x_train, y_train, x_val, y_val, params):
model = Sequential()
model.add(Dense(params['first_neuron'], kernel_initializer = params['kernel_initializer'], input_dim=x_train.shape[1], activation=params['activation']))
model.add(Dropout(params['dropout']))

#hidden layers
for i in range(params['hidden_layers']):
    print (f"adding layer {i+1}")
    model.add(Dense(params['hidden_neuron'], activation=params['activation']))
    model.add(Dropout(params['dropout']))

model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer=params['optimizer'](lr=lr_normalizer(params['lr'], params['optimizer'])), metrics=['acc'],loss=params['losses'])

out = model.fit(x_train, y_train,
                epochs=params['epochs'],
                batch_size=params['batch_size'],
                validation_data=[x_val, y_val],
                verbose=0)

return out, model

p = {
'lr': (0.1, 1, 10),
'first_neuron': [34],
'activation': ['relu'],
'hidden_layers': [1,2],
'hidden_neuron': [34,68],
'batch_size': [10,20,30],
'kernel_initializer': ['uniform', 'glorot_uniform'],
'epochs': [100],
'dropout': (0, 0.5, 10),
'optimizer':[Nadam, Adam],
'losses': ['binary_crossentropy']
}
#Scan
scan_object = ta.Scan(x=x_train, y=y_train, params=p, model=binary_classifier, dataset_name = 'exp_3', experiment_no= '3', grid_downsample=.01)
scan_object_with_eval = ta.Autom8(scan_object, x_val, y_val)
scan_object.data.to_csv('results.csv')

Thanks, please post the full trace for the error as well.

Icing this as information is missing, and no updates. Feel free to reopen if still relevant.


Spring 2022 Pre-enroll Release

Summary
This pull request pushes the course data for next semester (Fall 2022) before Spring 2022 pre-enroll, in addition to new features merged this semester. 🥳

[x] #677 (@noschiff)
[x] #639 (@benjamin-shen)
[x] #661 #663 #667 (@jerrry1123 @andxu282 @noschiff)
[x] #655 (@noschiff)
[x] #647 (@willespencer)
[x] #664 (@willespencer)
[x] #668 (@noschiff)
[x] #618 (@zachary0kent @willespencer)
[x] #673 (@willespencer)
[x] #676 (@benjamin-shen)
[x] #666 (@noschiff)
[x] #681 (@noschiff)

Other features merged that are gatekept and thus will not show for real users

[x] #659 (@willespencer)
[x] #621 (@willespencer)

Test Plan
Confirm everything works as expected on all pages of CoursePlan site, especially related to new features, with no console log errors. Examples...

[x] Add a class with new Fall 2022 course data
[x] Confirm warning icons show on compact courses.
[x] Confirm onboarding has entrance grad seasons, and the year dropdowns populate correctly.
[x] Confirm A&S works as expected, and reqs switch if entrance sem goes before/after Fall 2020.
[x] Confirm AP/IB code and new conflict code is not accessible unless the feature flag is turned on.

Talked offline, but adding here so we don't forget.
We're switching on the feature flag for AP/IB from PR #676, even if we are running into AP bugs as we don't have the opt in/out feature ready yet so users wouldn't have a workaround for adding AP courses if we temp disabled them.
For now, we'll also just add a warning msg about transfer credits during onboarding alerting users we are working on it. Designers are also working on a more visible way to notify users of new updates


Create mechanism to hook plugins from outside

Also to think. Shall we move plugins outside to their separate repos?

The current implementation of Plugin allows to easily write plugins and register them from outside.
module.exports = function(Janus) {

  function CustomPlugin() {
    CustomPlugin.super_.apply(this, arguments);
  }

  CustomPlugin.NAME = 'janus.plugin.custom';
  Janus.Helpers.inherits(CustomPlugin, Janus.Plugin);
  Janus.Plugin.register(CustomPlugin.NAME, CustomPlugin);

  return CustomPlugin;
};

var Janus = require('janus-gateway-js');
var CustomPlugin = require('custom-plugin')(Janus);

@zazabe @tomaszdurka What do you think about this approach?

By custom plugin you mean something like rtpbroadcast plugin or extension of abstract plugin?
I understood that in janus-gateway-js plugin is something abstract, a resource registered in janus. Or you mean to have a custom-abstract-plugin?

By custom plugin you mean something like rtpbroadcast plugin or extension of abstract plugin?

like rtpbroadcast plugin

you mean to have a custom-abstract-plugin?

no
I just want to give an opportunity to the community. The opportunity to write their own plugins or write janus plugins that we haven't implemented yet. For example the videocall plugin. We don't have the need to write it cause we don't need it in our projects but someone might need it! So we ought to give a way to write it in a separate repo.

BTW, VideoRoom plugin is also not implemented? Any plans to support it or it will also be added as a custom plugin?

VideoRoom plugin is also not implemented?

not implemented :(

Any plans to support it

no :(
Currently we have 4 plugins: audiobridge, videostreaming, rtpbroadcast and audioroom. I propose to move them out of this repo so each of them has its own repo. Also I propose to never add plugins to this project. Some common abstracts as MediaPlugin can be kept in this repo still.

Also I propose to never add plugins to this project.

While it's definitely a good idea I would propose to postpone extracting plugins.
Keeping them in the same repo will make development faster, which is worthwhile especially while this code is still young and moving fast.
How about allowing to load plugins from external sources and documenting how to do it, but keeping the four existing plugins in the same repo for now?

How about allowing to load plugins from external sources and documenting how to do it, but keeping the four existing plugins in the same repo for now?

I can live with that until release 1.0.0. @tomaszdurka ? @zazabe you have not said anything.

/nod

@zazabe please review

lgtm, just a small note, here https://github.com/cargomedia/janus-gateway-js/pull/52/files#diff-04c6e90faac2675aa89e2176d2eec7d8R15, we should also pass the connection id.

where pass connection id?

janus.createConnection(<here>)

@zazabe please review

lgtm!


prisma-zod-generator deletes the entire output folder!

Bug description
I changed the output parameter to drop the files inside my src folder just to learn the generator deleted my entire day of work.
Can you please review this behavior? If the output is different from the default, DO NOT WIPE THE OUTPUT FOLDER!
How to reproduce
Change the output option in the generator to:
generator zod {
  provider = "prisma-zod-generator"
  output = "../src"
}

Expected behavior
Lose a full day of work if you did not commit anything yet.
Prisma information
generator zod {
provider = "prisma-zod-generator"
output = "../src"
}
Environment & setup

OS: Windows
Database: PostgreSQL
Node.js version: v18.12.1

Prisma Version
4.5.0

There was definitely a reason why this happens, I don't remember exactly why. But if it doesn't cause any other issues, we may change it to overwrite instead.
Also, usually generators outputs go into a folder inside where the prisma schema resides. It's always a good idea to commit early and commit often. It's a bad practice doing it like you describe.
Anyway, I should work on this maybe this weekend. Feel free to work on it if you like.


Cyclic circuit produced during Badger optimisation

#200 is now fixed, but more bugs remain...
Translating this qasm file into a hugr and applying the badger optimisation generates a cyclic graph. (Which causes the hashing code to panic).
OPENQASM 2.0;
include "qelib1.inc";

qreg q[5];
cx q[4],q[1];
cx q[3],q[4];
cx q[1],q[2];
cx q[4],q[0];
u3(0.5*pi,0.0*pi,0.5*pi) q[1];
cx q[0],q[2];
cx q[3],q[1];
cx q[0],q[2];

The failing example is here:
https://github.com/CQCL/tket2/blob/9f752895c649d6e22f6f190efe77d1187046b7c6/tket2/examples/non_dag.rs
Checkout debug/non-dag-example and cargo run --features portmatching --example non_dag.

The problem comes from an erroneous invalidation set definition for the rewrite composition.
It's simpler to see it in this simpler (failing) circuits:
OPENQASM 2.0;
include "qelib1.inc";

qreg q[4];
cx q[0],q[1]; # a
cx q[2],q[3]; # b
h q[1];
h q[3];
cx q[2],q[1]; # c
cx q[0],q[3]; # d
h q[0];
h q[1];
h q[2];
h q[3];

(hadamards added for padding, so the immediate neighbours do not overlap).
In that circuit, two possible rewrites are:

swap a and d
swap b and c
on their own they are valid CNOT swaps.

But if both are applied simultaneously, they create a loop in the circuit.
Original circuit:

After swapping b and c:

After swapping a and d:

(Notice the loop in nodes $7 \to 3 \to 6 \to 13 \to 14 \to 4 \to 7$)

Just a restatement that made it clearer for me, at the risk of being obvious to everyone already.

This could be resolved by introducing the concept of "convex set of (convex) patterns". Checking that a set of patterns is convex is quite similar to how we are checking convexity at the moment, and we could reuse the precomputed convex checker data structure that we are already using.
Convex set of patterns: For every pair of patterns $P_1$, $P_2$ in the set, there are no nodes $b_1, a_1 \in P_1$ and $b_2, a_2 \in P_2$ such that $b_1$ is in the past of $a_2$ and $b_2$ is in the past of $a_1$. In other words: all nodes in $P_1$ are either in the past or spacelike-separated from all nodes in $P_2$, or they are all in the future or spacelike-separated.
This checking isn't free, unfortunately:

for two patterns with $q$ qubits ($q$ is always small), you could check whether the $q$ smallest of $P_1$ are in the past of the $q$ largest in $P_2$ XOR whether the $q$ largest of $P_1$ are in the future of the $q$ smallest of $P_2$. For a set of $n$ patterns, this would take time $q^2 \cdot n^2$. The $n^2$ here will be expensive :/
Enumerate patterns in a topsort order (this would be a simple and rather cheap change to make) and require conservatively that you can only add patterns to a set of patterns if it is in the future or spacelike-separated from any pattern in the set. This can be checked cheap-ish-ly by keeping an array of the $Q$ largest vertices (the largest vertex for each qubit) of the patterns already in the set, where $Q$ is the total number of qubits in the input (may be large). Then for each of the $q$ qubits in the pattern, check that the smallest in the pattern is larger than the one in the stored array. Worst case this would take time $\sim Q \cdot n$ (might be possible to make this faster), but at the cost of missing some valid cases.

On top of this checking not being free, there is the argument that we should only check this once it's been filtered and is actually about to be applied, instead of computing this for sets that might well be discarded later on.

I'm not convinced any of what I'm saying is useful for a quick fix... Maybe we should turn this into a github discussion.

Nice! Yes, I'm worried about the exploding complexity.
Let's move your comment to a discussion, and I'll implement a quick-but-not-optimal fix in the meantime.


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-30-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 4880

Questions ?
Please refer to the Backport tool documentation


[Feature request] Is there any plan to support STARTTLS and TLS in some future ?

Every thing is in the title.
Is there any plan to support STARTTLS and TLS in some future ?

Hi @doekia ,
No, there is no such plan right now. Why do you need this?

The application I use is enforcing TLS/STARTTLS, been able for test purposes to capture / assert mail content will be a big plus.


python310Packages.fsspec: 2022.3.0 -> 2022.5.0, python310Packages.dask: 2022.02.1 -> 2022.05.0

Description of changes
https://github.com/fsspec/filesystem_spec/blob/master/docs/source/changelog.rst#202250

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.

dask-xgboost is no longer maintained: #174242

spacy-transformers failure will be addressed with #175086

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

8 packages marked as broken and skipped:

intensity-normalization
python310Packages.caffe
python310Packages.caffeWithCuda
python310Packages.intensity-normalization
python310Packages.napari
python310Packages.rl-coach
python39Packages.intensity-normalization
python39Packages.rl-coach

1 package failed to build:

python310Packages.sunpy

161 packages built:

dvc
dvc-with-remotes
home-assistant-component-tests.environment_canada
napari (python39Packages.napari)
parquet-tools
python310Packages.aplpy
python310Packages.asdf
python310Packages.astroquery
python310Packages.batchgenerators
python310Packages.boxx
python310Packages.bpycv
python310Packages.casa-formats-io
python310Packages.clifford
python310Packages.dask
python310Packages.dask-gateway
python310Packages.dask-gateway-server
python310Packages.dask-glm
python310Packages.dask-image
python310Packages.dask-jobqueue
python310Packages.dask-ml
python310Packages.dask-mpi
python310Packages.dask-yarn
python310Packages.datafusion
python310Packages.datasets
python310Packages.datashader
python310Packages.db-dtypes
python310Packages.devito
python310Packages.distributed
python310Packages.env-canada
python310Packages.fastparquet
python310Packages.fsspec
python310Packages.gcsfs
python310Packages.glymur
python310Packages.google-cloud-bigquery
python310Packages.handout
python310Packages.ibis-framework
python310Packages.image-match
python310Packages.imagecorruptions
python310Packages.imageio
python310Packages.imgaug
python310Packages.intake
python310Packages.intake-parquet
python310Packages.locket
python310Packages.mask-rcnn
python310Packages.moviepy
python310Packages.napari-console
python310Packages.napari-svg
python310Packages.partd
python310Packages.pims
python310Packages.pyarrow
python310Packages.pyfftw
python310Packages.pyregion
python310Packages.pytest-astropy
python310Packages.pytest-astropy-header
python310Packages.pytorch-lightning
python310Packages.pyvo
python310Packages.qiskit
python310Packages.qiskit-machine-learning
python310Packages.reproject
python310Packages.runway-python
python310Packages.s3fs
python310Packages.scikitimage
python310Packages.scmrepo
python310Packages.slicedimage
python310Packages.spacy-transformers
python310Packages.sparse
python310Packages.spectral-cube
python310Packages.streamz
python310Packages.stumpy
python310Packages.stytra
python310Packages.tensorly
python310Packages.test-tube
python310Packages.tifffile
python310Packages.tokenizers
python310Packages.transformers
python310Packages.zcs
python39Packages.apache-beam
python39Packages.aplpy
python39Packages.asdf
python39Packages.astroquery
python39Packages.batchgenerators
python39Packages.boxx
python39Packages.bpycv
python39Packages.caffe
python39Packages.caffeWithCuda
python39Packages.casa-formats-io
python39Packages.clifford
python39Packages.coqui-trainer
python39Packages.dask
python39Packages.dask-gateway
python39Packages.dask-gateway-server
python39Packages.dask-glm
python39Packages.dask-image
python39Packages.dask-jobqueue
python39Packages.dask-ml
python39Packages.dask-mpi
python39Packages.dask-yarn
python39Packages.datafusion
python39Packages.datasets
python39Packages.datashader
python39Packages.db-dtypes
python39Packages.devito
python39Packages.distributed
python39Packages.elegy
python39Packages.env-canada
python39Packages.fastparquet
python39Packages.flax
python39Packages.fsspec
python39Packages.gcsfs
python39Packages.glymur
python39Packages.google-cloud-bigquery
python39Packages.handout
python39Packages.ibis-framework
python39Packages.image-match
python39Packages.imagecorruptions
python39Packages.imageio
python39Packages.imgaug
python39Packages.intake
python39Packages.intake-parquet
python39Packages.locket
python39Packages.mask-rcnn
python39Packages.moviepy
python39Packages.napari-console
python39Packages.napari-svg
python39Packages.optax
python39Packages.partd
python39Packages.pims
python39Packages.pyarrow
python39Packages.pyfftw
python39Packages.pyregion
python39Packages.pytest-astropy
python39Packages.pytest-astropy-header
python39Packages.pytorch-lightning
python39Packages.pyvo
python39Packages.qiskit
python39Packages.qiskit-machine-learning
python39Packages.reproject
python39Packages.runway-python
python39Packages.s3fs
python39Packages.scikitimage
python39Packages.scmrepo
python39Packages.slicedimage
python39Packages.spacy-transformers
python39Packages.sparse
python39Packages.spectral-cube
python39Packages.streamz
python39Packages.stumpy
python39Packages.stytra
python39Packages.sunpy
python39Packages.tensorflow-datasets
python39Packages.tensorly
python39Packages.test-tube
python39Packages.tifffile
python39Packages.tokenizers
python39Packages.transformers
python39Packages.treex
python39Packages.zcs
streamlit
tartube
tartube-yt-dlp
tts

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

8 packages marked as broken and skipped:

intensity-normalization
python310Packages.caffe
python310Packages.caffeWithCuda
python310Packages.intensity-normalization
python310Packages.napari
python310Packages.rl-coach
python39Packages.intensity-normalization
python39Packages.rl-coach

162 packages built:

dvc
dvc-with-remotes
home-assistant-component-tests.environment_canada
napari (python39Packages.napari)
parquet-tools
python310Packages.aplpy
python310Packages.asdf
python310Packages.astroquery
python310Packages.batchgenerators
python310Packages.boxx
python310Packages.bpycv
python310Packages.casa-formats-io
python310Packages.clifford
python310Packages.dask
python310Packages.dask-gateway
python310Packages.dask-gateway-server
python310Packages.dask-glm
python310Packages.dask-image
python310Packages.dask-jobqueue
python310Packages.dask-ml
python310Packages.dask-mpi
python310Packages.dask-yarn
python310Packages.datafusion
python310Packages.datasets
python310Packages.datashader
python310Packages.db-dtypes
python310Packages.devito
python310Packages.distributed
python310Packages.env-canada
python310Packages.fastparquet
python310Packages.fsspec
python310Packages.gcsfs
python310Packages.glymur
python310Packages.google-cloud-bigquery
python310Packages.handout
python310Packages.ibis-framework
python310Packages.image-match
python310Packages.imagecorruptions
python310Packages.imageio
python310Packages.imgaug
python310Packages.intake
python310Packages.intake-parquet
python310Packages.locket
python310Packages.mask-rcnn
python310Packages.moviepy
python310Packages.napari-console
python310Packages.napari-svg
python310Packages.partd
python310Packages.pims
python310Packages.pyarrow
python310Packages.pyfftw
python310Packages.pyregion
python310Packages.pytest-astropy
python310Packages.pytest-astropy-header
python310Packages.pytorch-lightning
python310Packages.pyvo
python310Packages.qiskit
python310Packages.qiskit-machine-learning
python310Packages.reproject
python310Packages.runway-python
python310Packages.s3fs
python310Packages.scikitimage
python310Packages.scmrepo
python310Packages.slicedimage
python310Packages.spacy-transformers
python310Packages.sparse
python310Packages.spectral-cube
python310Packages.streamz
python310Packages.stumpy
python310Packages.stytra
python310Packages.sunpy
python310Packages.tensorly
python310Packages.test-tube
python310Packages.tifffile
python310Packages.tokenizers
python310Packages.transformers
python310Packages.zcs
python39Packages.apache-beam
python39Packages.aplpy
python39Packages.asdf
python39Packages.astroquery
python39Packages.batchgenerators
python39Packages.boxx
python39Packages.bpycv
python39Packages.caffe
python39Packages.caffeWithCuda
python39Packages.casa-formats-io
python39Packages.clifford
python39Packages.coqui-trainer
python39Packages.dask
python39Packages.dask-gateway
python39Packages.dask-gateway-server
python39Packages.dask-glm
python39Packages.dask-image
python39Packages.dask-jobqueue
python39Packages.dask-ml
python39Packages.dask-mpi
python39Packages.dask-yarn
python39Packages.datafusion
python39Packages.datasets
python39Packages.datashader
python39Packages.db-dtypes
python39Packages.devito
python39Packages.distributed
python39Packages.elegy
python39Packages.env-canada
python39Packages.fastparquet
python39Packages.flax
python39Packages.fsspec
python39Packages.gcsfs
python39Packages.glymur
python39Packages.google-cloud-bigquery
python39Packages.handout
python39Packages.ibis-framework
python39Packages.image-match
python39Packages.imagecorruptions
python39Packages.imageio
python39Packages.imgaug
python39Packages.intake
python39Packages.intake-parquet
python39Packages.locket
python39Packages.mask-rcnn
python39Packages.moviepy
python39Packages.napari-console
python39Packages.napari-svg
python39Packages.optax
python39Packages.partd
python39Packages.pims
python39Packages.pyarrow
python39Packages.pyfftw
python39Packages.pyregion
python39Packages.pytest-astropy
python39Packages.pytest-astropy-header
python39Packages.pytorch-lightning
python39Packages.pyvo
python39Packages.qiskit
python39Packages.qiskit-machine-learning
python39Packages.reproject
python39Packages.runway-python
python39Packages.s3fs
python39Packages.scikitimage
python39Packages.scmrepo
python39Packages.slicedimage
python39Packages.spacy-transformers
python39Packages.sparse
python39Packages.spectral-cube
python39Packages.streamz
python39Packages.stumpy
python39Packages.stytra
python39Packages.sunpy
python39Packages.tensorflow-datasets
python39Packages.tensorly
python39Packages.test-tube
python39Packages.tifffile
python39Packages.tokenizers
python39Packages.transformers
python39Packages.treex
python39Packages.zcs
streamlit
tartube
tartube-yt-dlp
tts

Can we split this PR up?

I already moved some commits to separate PRs. Perhaps one or two commits could be moved out but the rest is pretty much a dep chain.

That should go into python-updates

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

8 packages marked as broken and skipped:

intensity-normalization
python310Packages.caffe
python310Packages.caffeWithCuda
python310Packages.intensity-normalization
python310Packages.napari
python310Packages.rl-coach
python39Packages.intensity-normalization
python39Packages.rl-coach

8 packages failed to build:

python310Packages.ibis-framework
python39Packages.apache-beam
python39Packages.elegy
python39Packages.flax
python39Packages.ibis-framework
python39Packages.optax
python39Packages.tensorflow-datasets
python39Packages.treex

154 packages built:

dvc
dvc-with-remotes
home-assistant-component-tests.environment_canada
napari (python39Packages.napari)
parquet-tools
python310Packages.aplpy
python310Packages.asdf
python310Packages.astroquery
python310Packages.batchgenerators
python310Packages.boxx
python310Packages.bpycv
python310Packages.casa-formats-io
python310Packages.clifford
python310Packages.dask
python310Packages.dask-gateway
python310Packages.dask-gateway-server
python310Packages.dask-glm
python310Packages.dask-image
python310Packages.dask-jobqueue
python310Packages.dask-ml
python310Packages.dask-mpi
python310Packages.dask-yarn
python310Packages.datafusion
python310Packages.datasets
python310Packages.datashader
python310Packages.db-dtypes
python310Packages.devito
python310Packages.distributed
python310Packages.env-canada
python310Packages.fastparquet
python310Packages.fsspec
python310Packages.gcsfs
python310Packages.glymur
python310Packages.google-cloud-bigquery
python310Packages.handout
python310Packages.image-match
python310Packages.imagecorruptions
python310Packages.imageio
python310Packages.imgaug
python310Packages.intake
python310Packages.intake-parquet
python310Packages.locket
python310Packages.mask-rcnn
python310Packages.moviepy
python310Packages.napari-console
python310Packages.napari-svg
python310Packages.partd
python310Packages.pims
python310Packages.pyarrow
python310Packages.pyfftw
python310Packages.pyregion
python310Packages.pytest-astropy
python310Packages.pytest-astropy-header
python310Packages.pytorch-lightning
python310Packages.pyvo
python310Packages.qiskit
python310Packages.qiskit-machine-learning
python310Packages.reproject
python310Packages.runway-python
python310Packages.s3fs
python310Packages.scikitimage
python310Packages.scmrepo
python310Packages.slicedimage
python310Packages.spacy-transformers
python310Packages.sparse
python310Packages.spectral-cube
python310Packages.streamz
python310Packages.stumpy
python310Packages.stytra
python310Packages.sunpy
python310Packages.tensorly
python310Packages.test-tube
python310Packages.tifffile
python310Packages.tokenizers
python310Packages.transformers
python310Packages.zcs
python39Packages.aplpy
python39Packages.asdf
python39Packages.astroquery
python39Packages.batchgenerators
python39Packages.boxx
python39Packages.bpycv
python39Packages.caffe
python39Packages.caffeWithCuda
python39Packages.casa-formats-io
python39Packages.clifford
python39Packages.coqui-trainer
python39Packages.dask
python39Packages.dask-gateway
python39Packages.dask-gateway-server
python39Packages.dask-glm
python39Packages.dask-image
python39Packages.dask-jobqueue
python39Packages.dask-ml
python39Packages.dask-mpi
python39Packages.dask-yarn
python39Packages.datafusion
python39Packages.datasets
python39Packages.datashader
python39Packages.db-dtypes
python39Packages.devito
python39Packages.distributed
python39Packages.env-canada
python39Packages.fastparquet
python39Packages.fsspec
python39Packages.gcsfs
python39Packages.glymur
python39Packages.google-cloud-bigquery
python39Packages.handout
python39Packages.image-match
python39Packages.imagecorruptions
python39Packages.imageio
python39Packages.imgaug
python39Packages.intake
python39Packages.intake-parquet
python39Packages.locket
python39Packages.mask-rcnn
python39Packages.moviepy
python39Packages.napari-console
python39Packages.napari-svg
python39Packages.partd
python39Packages.pims
python39Packages.pyarrow
python39Packages.pyfftw
python39Packages.pyregion
python39Packages.pytest-astropy
python39Packages.pytest-astropy-header
python39Packages.pytorch-lightning
python39Packages.pyvo
python39Packages.qiskit
python39Packages.qiskit-machine-learning
python39Packages.reproject
python39Packages.runway-python
python39Packages.s3fs
python39Packages.scikitimage
python39Packages.scmrepo
python39Packages.slicedimage
python39Packages.spacy-transformers
python39Packages.sparse
python39Packages.spectral-cube
python39Packages.streamz
python39Packages.stumpy
python39Packages.stytra
python39Packages.sunpy
python39Packages.tensorly
python39Packages.test-tube
python39Packages.tifffile
python39Packages.tokenizers
python39Packages.transformers
python39Packages.zcs
streamlit
tartube
tartube-yt-dlp
tts

Maybe we should throw this also onto python-updates. I am not sure tbh.

Maybe we should throw this also onto python-updates.

Would make sense as some of the failures seem jaxlib-related (missing CPU support while running nix-review locally) and could mask other issues.

I'm cherry-picking it into #175805.