Investigate the opencsv engine

The current implementation of the opencsv engine is underwhelming: it has some of the worst performances, and fails most parsing tests. It fails so hard, in fact, that something might be up with my implementation rather than with opencsv itself.
This should be investigated and possibly discussed with the opencsv team. Should the issue be with opencsv itself, we might want to drop support for it, at least until it's fixed.

Turns out, the parser wasn't configured properly. With the correct configuration, only two tests fail:

\r\n within quoted strings are turned into \n (csv spectrum test)
unescaped double quotes are dealt with in an odd way, not compatible with what tabulate expects (and other engines implement).

Not sure what to do at this point, I don't really want to gimp our tests, but doubt these issues will be fixed (it's entirely debatable that they need fixing at all).


Removed weird restriction for optional pg

Changelog entry
...
Changelog category

Bugfix

Additional information
...

select FormatType(OptionalType(pgint4)) works well too


Layer 0: Replace importMeta object with importMetaHook function

ECMA-262 exposes two host hooks to initialize import.meta: HostGetImportMetaProperties and HostFinalizeImportMeta.

HostGetImportMetaProperties doesn't receives any parameter and returns a list of properties, that ECMA-262 will copy on the import.meta object
HostFinalizeImportMeta receives the import.meta object, and can modify it as it wants

The second host hook is enough to cover all the use cases of the first hook, but not the other way around.
This proposal currently implements HostGetImportMetaProperties: the importMeta parameter of the Module constructor is equivalent to the list of properties returned by the hook. However, this is not enough to replicate the behavior of the various hosts:

XS freezes the import.meta object (source: "XS is freezing import.meta today" in https://github.com/tc39/notes/blob/167155eeb708d84e1758d99c88b15670f9b81f75/meetings/2020-03/march-31.md#importmeta-for-stage-4)
Bun installs a custom [[Prototype]] on import.meta (source: run console.log(Object.getPrototypeOf(import.meta)); in Bun)

With importMetaHook, both behaviors would be possible:
new Module(source, {
  importMetaHook(importMeta) {
    importMeta.url = someURL;
    Object.freeze(importMeta);
  }
});

new Module(source, {
  importMetaHook(importMeta) {
    importMeta.url = someURL;
    Object.setPrototypeOf(importMeta, ImportMetaPrototype);
  }
});

This has the same serializability implications of importHook: modules with a non-default importMetaHook would not be serializable.

Few clarifications needed:

is the argument passed into importMetaHook an ordinary object created by the engine, empty at first, and passed into the hook?
If the answer to 1 is "yes", then what's the __proto__ of the importMeta object argument?
how many times is this hook called? once and then cached as it is today for the host hooks?

yes
I propose null, which is what is already happening with the host hook (so that by default import.meta objects have a null prototype): step 4.a of https://tc39.es/ecma262/#sec-meta-properties-runtime-semantics-evaluation
Yes, it's cached per-module

I'm fine with this proposal.


Duplicate events coming from lambda workers

Versions

Lambda runtime: al2023
Lambda extension: 11.2.3, arm64

Steps to reproduce
I have no steps to reproduce, only solid evidence that this is happening.

Invoke is the top-level span name for a lambda invocation - while there may be many of them for a given trace, there should only be one for a given span :). If I zoom into any of these, I can see that they appear to be exactly the same event - same timestamp, columns, data, etc.
Our lambda pipeline should be pretty standard, we're:

configuring beeline to write events to stdout
running the lambda extension, which points directly at the honeycomb api

Additional context
I suspect that what's happening here is the following:

logs api yeets some logs at the extension process
extension process receives them, turns them into events, and gives them to libhoney
libhoney queues the events up to be sent to honeycomb, and makes the http request to the api
because libhoney is acting asynchronously to the logs http server, the logs http server returns
lambda freezes the extension while the events are in flight
lambda wakes up the extension some time later
from the extensions POV, the upstream API just timed out (it has no way of knowing that it was frozen). So it retries!
Some of those retries work, and we get duplicate events.

If I'm right, then I think what's needed is to synchronously flush the events after each "batch", thus ensuring libhoney does it's work while the logs server is processing the event.

ℹ  FYI for oncall folks, find a bit of additional context in internal slack channel


(PUP-10324) Adapt HTTP API to puppetserver's external implementation

Adds Puppet::HTTP::ExternalClient. It implements a subset of the new HTTP API and delegates to the external http_client_class, if it's been overridden (via puppetserver).
Moves content-type from an option to the header.
DRY query parameter encoding.

CLA signed by all contributors.

amazingly there are no merge conflicts with the yardoc changes

@melissa I think this is good to go


Remove complex loops in tests

Removed complex loops in tests used to test wrong user arguments.
Replaced with sequential tests for a similar objective.

There are also lots of line breaks that does not improve the readibility

Oh  the line breaks were a result of auto reformatting code in  R. Have fixed it for better readability.


 Accessing / iterating the result -> gives you Wells, which aren't iterable!!!
> b = flat_plate.rows(0, length=1)
> b
>>> <WellSeries: <Well A1><Well B1><Well C1><Well D1><Well E1><Well F1><Well G1><Well H1>>

> b[0]
>>> <Deck><Slot C1><Container 96-PCR-flat><Well A1>

Slicing a list is kind of like setting the length. [1,2,3][0:1] gives you [1] not 1.
So it would be more consistent and easier to use if length=1 gives you a WellSeries (or list) of a single WellSeries -- [1] instead of 1.

Similarly, plate.wells([3]) returns a single Well, and plate.wells([3, 4]) gives you a WellSeries of 2 wells.
As a result, you can get weird stuff like [well.bottom() for well in plate.wells([list_of_wells)], which returns [] when list of wells has a length of 1 (because [w for w in plate[0]] returns [].
In [4]: [well.bottom() for well in plate.wells([0])]
Out[4]: []

In [5]: [well.bottom() for well in plate.wells([0, 1])]
Out[5]:
[(<Deck><Slot A1><Container 96-flat><Well A1>, (x=3.20, y=3.20, z=0.00)),
 (<Deck><Slot A1><Container 96-flat><Well B1>, (x=3.20, y=3.20, z=0.00))]

I'd expect [well.bottom() for well in plate.wells([0])] would give me [(<Deck><Slot A1><Container 96-flat><Well A1>, (x=3.20, y=3.20, z=0.00))]

Also, I'd expect plate.wells([]) would give me [] or maybe None, but instead it gives me a WellSeries of every well in the plate (so plate.wells([]) currently is the same as plate.wells() )
This means if someone is writing a customizable protocol with a variable number of wells, they have to be very careful about whether a list of wells will contain 0, 1, or more items and use those conditions to call plate.wells(list_of_wells) or plate.wells(0, length=num_of_wells) differently for each case.

This has been resolved in APIv2, but won't fix in APIv1 as it would be a breaking change


Add a slight background blur affect while the modal is active

Add a slight background blur affect while the modal is active on about.html page

@Nabzoku would you like to work on this issue?

It's done #11

Cool


491 integration test nodered

Fixes #491.
I can't get it to work. In templates/nodered-statefulset.yaml of factorycube-edge a separate container with flows exists. How can i adapt it for factorycube-server?

Superseded by #496


random choose host from provided hosts-list

supercedes #21

Also, lots of tests are failing for this PR: https://travis-ci.org/logstash-plugins/logstash-output-graphite/builds/240121828?utm_source=github_status&utm_medium=notification

thank you for feedback @jordansissel!
I tried to fix all you comments take a look please

@jordansissel ping


Don't display error messages, in the default viewer, for PDF files other than the current one

We've never attempted to limit the errors displayed in the default viewer to the current PDF file, but that's not really been a problem before. However after PR #7926, it's now possible to get password related error messages for previously opened PDF files in the default viewer.
STR:

Open a password protected PDF file, e.g. issue6010_1.pdf from the test-suite.
Cancel the password prompt.
Open any new PDF file in the viewer.

AR:
The error UI is displayed, with a No password given message.
ER:
No error displayed, since it's only relevent for a now closed PDF file.
This is obviously a minor issue, caused by us now rejecting the still pending pdfLoadingTask during the PDFViewerApplication.close call, but I don't think that it (generally) makes sense to show errors if they're not relevant to the currently displayed PDF file.

/botio-linux preview

Thank you! I think I noticed this before, but couldn't find a way to reproduce; nice that you managed to do so.

I think I noticed this before, but couldn't find a way to reproduce; nice that you managed to do so.

Yeah, I've also seen this a couple of times and decided to actually track it down now; as always git bisect was helpful. Since I broke it, it only seemed reasonable that I fix it as well :-)
Thanks for the review!


Change path + filename to os.path.join(path, filename)

Done for redccd, haven't checked for redspec, so this issue is not closed yet.

All the project was checked, so this issue can be closed.


I want control processRestoreInstanceState on SupportFragmentDelegate.class

Hi YoKey
I need control processRestore,but how to do it?
/**
* 内存重启后,是否让Fragmentation帮你恢复子Fragment状态
*/
protected boolean restoreInstanceState() {
return false;
}

This new version 1.07  cant be controled it

Hi @yangjieK
Why you need to control this method?
I think it does not need to be controlled.  Fragment state should be restored at recovery time.
If you want to beginTransaction after recovery, you can continue in onCreateView(), onViewCreated() or onActivityCreated()


List what packages are not compatible with the sonarwhal version

The following message could be improved by listing the packages that are causing problems.

@sarvaje assigning it to you for now. If I start working on this I'll let you know.

ok!

@molant I'm going to start with this

👍


[Device Support Request] TS0502B | _TZ3210_xwqng7ol | Rexlight Zigbee 3.0 Dual White LED controller

Problem description
Pairing a TS0502B does not work correctly: the device pairs, gets recognised in Home Assistant, is then correctly controllable for a few seconds, after which the device seems to disconnect again.
Related to #1333
Solution description
The device should remain controllable.
Screenshots/Video
No response
Device signature
Device signature
[Paste the device signature here]

Diagnostic information
Diagnostic information
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x010c",
      "input_clusters": [
        "0x0000",
        "0x0003",
        "0x0004",
        "0x0005",
        "0x0006",
        "0x0008",
        "0x0300",
        "0x1000",
        "0xef00"
      ],
      "output_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "242": {
      "profile_id": "0xa1e0",
      "device_type": "0x0061",
      "input_clusters": [],
      "output_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "_TZ3210_xwqng7ol",
  "model": "TS0502B",
  "class": "zigpy.device.Device"
}

Logs
No logs, let me know if they are still necessary.
Logs

Custom quirk
I started, but it doesn't seem to do anything yet.
Custom quirk
"""Tuya dimmable dual white led controller."""
from zigpy.profiles import zgp, zha
from zigpy.quirks import CustomCluster, CustomDevice
from zigpy.zcl.clusters.general import (
    Basic,
    GreenPowerProxy,
    Groups,
    Identify,
    LevelControl,
    OnOff,
    Ota,
    Scenes,
    Time,
)
from zigpy.zcl.clusters.lighting import Color
from zigpy.zcl.clusters.lightlink import LightLink

from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)

from zhaquirks.tuya import TuyaManufCluster

class DualWhiteLedController(CustomDevice):
    """Tuya dimmable dual white led controller."""

    # {
    #   "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
    #   "endpoints": {
    #     "1": {
    #       "profile_id": "0x0104",
    #       "device_type": "0x010c",
    #       "input_clusters": [
    #         "0x0000",
    #         "0x0003",
    #         "0x0004",
    #         "0x0005",
    #         "0x0006",
    #         "0x0008",
    #         "0x0300",
    #         "0x1000",
    #         "0xef00"
    #       ],
    #       "output_clusters": [
    #         "0x000a",
    #         "0x0019"
    #       ]
    #     },
    #     "242": {
    #       "profile_id": "0xa1e0",
    #       "device_type": "0x0061",
    #       "input_clusters": [],
    #       "output_clusters": [
    #         "0x0021"
    #       ]
    #     }
    #   },
    #   "manufacturer": "_TZ3210_xwqng7ol",
    #   "model": "TS0502B",
    #   "class": "zigpy.device.Device"
    # }
    signature = {
        MODELS_INFO: [
            ("_TZ3210_xwqng7ol", "TS0502B"),
            ("_TZ3210_frm6149r", "TS0502B"),
            ("_TZ3210_jtifm80b", "TS0502B"),
        ],
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=268
            # input_clusters=[0, 3, 4, 5, 6, 8, 768, 4096, 61184]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.COLOR_TEMPERATURE_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    LevelControl.cluster_id,
                    Color.cluster_id,
                    LightLink.cluster_id,
                    TuyaManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            242: {
                # <SimpleDescriptor endpoint=242 profile=41440 device_type=97
                # input_clusters=[]
                # output_clusters=[33]
                PROFILE_ID: zgp.PROFILE_ID,
                DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }
    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.DIMMABLE_LIGHT,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Identify.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    OnOff.cluster_id,
                    LevelControl.cluster_id,
                    LightLink.cluster_id,
                    TuyaManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            242: {
                PROFILE_ID: zgp.PROFILE_ID,
                DEVICE_TYPE: zgp.DeviceType.PROXY_BASIC,
                INPUT_CLUSTERS: [],
                OUTPUT_CLUSTERS: [GreenPowerProxy.cluster_id],
            },
        },
    }

Additional information
The device seems available in z2m: https://github.com/Koenkk/zigbee2mqtt/discussions/12419 / https://github.com/Koenkk/zigbee-herdsman-converters/blob/c2b34bc8e26b3224187765f1b2088bad043cd677/src/devices/tuya.ts#L1790
{
        zigbeeModel: ['TS0502B'],
        model: 'TS0502B',
        vendor: 'TuYa',
        description: 'Light controller',
        whiteLabel: [
            tuya.whitelabel('Mercator Ikuü', 'SMI7040', 'Ford Batten Light', ['_TZ3000_zw7wr5uo']),
            {vendor: 'Mercator Ikuü', model: 'SMD9300', description: 'Donovan Panel Light'},
            tuya.whitelabel('Aldi', 'F122SB62H22A4.5W', 'LIGHTWAY smart home LED-lamp - filament', ['_TZ3000_g1glzzfk']),
            tuya.whitelabel('MiBoxer', 'FUT035Z', 'Dual white LED controller', ['_TZ3210_frm6149r', '_TZ3210_jtifm80b', '_TZ3210_xwqng7ol']),
            tuya.whitelabel('Lidl', '14156408L', 'Livarno Lux smart LED ceiling light', ['_TZ3210_c2iwpxf1']),
        ],
        extend: tuya.extend.light_onoff_brightness_colortemp({colorTempRange: [153, 500], noConfigure: true}),
        configure: async (device, coordinatorEndpoint, logger) => {
            device.getEndpoint(1).saveClusterAttributeKeyValue('lightingColorCtrl', {colorCapabilities: 16});
        },
    },

https://github.com/zigpy/zha-device-handlers/pull/2639 seems to at least get detected correctly now. I will try pairing again tonight/tomorrow morning, when I have physical access to the pair button :-)

Same symptoms still appear, even when setting SKIP_CONFIGURATION to True. Moreover, I don't have the color temperature control anymore, so I probably miss an input.

I don't have the color temperature control anymore, so I probably miss an input.

You have changed the DEVICE_TYPE. Is this intentional?
    signature = {
        .../...
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=268
            # input_clusters=[0, 3, 4, 5, 6, 8, 768, 4096, 61184]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.COLOR_TEMPERATURE_LIGHT,
                INPUT_CLUSTERS: [
.../...
    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.DIMMABLE_LIGHT,

You have changed the DEVICE_TYPE. Is this intentional?

No, and my pull-request actually has the correct one already.  But I definitely tested with DIMMABLE_LIGHT, I'll switch them around again.

Pairing a TS0502B does not work correctly: the device pairs, gets recognised in Home Assistant, is then correctly controllable for a few seconds, after which the device seems to disconnect again.

I'm pretty sure that's not an issue a quirk can fix.
It's possible that something is wrong with your network. It looks like you're using an EZSP coordinator. Did you migrate your network from another coordinator to this one? There might be "security issues" (with hashed link keys) which causes your device to leave.
Also, please try Home Assistant Core 2023.11.x (beta).

I'm pretty sure that's not an issue a quirk can fix.

Then I don't think a quirk will actually be needed here.

It's possible that something is wrong with your network. It looks like you're using an EZSP coordinator. Did you migrate your network from another coordinator to this one? There might be "security issues" (with hashed link keys) which causes your device to leave.

I migrated from Z2M to a Skyconnect, I followed Everything Smart Home's video for that. Would you suggest I create a clean network? I have a whole lot of devices, and some of them are really awful to pair :'-(

Also, please try Home Assistant Core 2023.11.x (beta).

I will try that first! Thanks!

I have tried 2023.11.0 (not beta), which has the same symptoms (still with my quirk).
Maybe worth noting: I'm the same person as the one in #2639, so better to deduplicate the support effort and keep everything in this issue, I suppose?
I'm not very much looking forward to re-pairing (and renaming) 40 devices; that will probably take me half a day.

Hi,
I'm also using the FUT035Z. It has two options, one for single colour with white balance and one for two led strips that you could control independently but only brightness. Can this be added as well?
If you need any information please let me know.
Nodes can be changed by double clicking the set button. In z2m it also worked, so maybe this can be done here as well :)

I have the same problem with MiBoxer FUT035Z+ (_TZB210_lmqquxus, TS0502B).
Can this be added as well?

Hi, I am also facing issues with my TS0502B. It is recognised and can be turned on/off, but neither the brightness nor the color temperature controls appear.

Just added a TS0502B to zha using skyconnect, working flawlessly (temperature and dimming) for two weeks. Using on 24v COB cw/ww strip.

Hi,
I'm also using the FUT035Z. It has two options, one for single colour with white balance and one for two led strips that you could control independently but only brightness. Can this be added as well?
If you need any information please let me know. Nodes can be changed by double clicking the set button. In z2m it also worked, so maybe this can be done here as well :)

I have the same problem with MiBoxer FUT035Z+ (_TZB210_lmqquxus, TS0502B).
Can this be added as well?

Hi, I am also facing issues with my TS0502B. It is recognised and can be turned on/off, but neither the brightness nor the color temperature controls appear.

Ensure that you have read the details on the controller box. My Miboxer FUT035Z+ states on the controller, "If the red light is on, only one color is available. If the green light is on, you can control the light temperature." In my case, I needed to press the set button on the MiBoxer twice, and the red light turned to green, allowing me to control not only the dimming and on/off functions but also the light temperature.


latest

It seems that swiftdocker/swift:latest is still pointing to 4.0.2. I expected it to be pointing to 4.0.3.
Thanks!

Whoops, looks like we didn't add back the latest tag in the automatic build.
I've added it now and triggered another.
In the meantime, FROM swift:latest should point to 4.0.3.
Let me know if the build works and we can close it.

Just tried this, and get:
Step 1/5 : FROM swiftdocker/swift:4.0.3
manifest for swiftdocker/swift:4.0.3 not found
If I use FROM swiftdocker/swift:latest, my docker build doesn't seem to pull down anything new...
I get:
MacBook-Pro:Building chris$ docker build -t swift-ubuntu:latest .
Sending build context to Docker daemon  15.87kB
Step 1/5 : FROM swiftdocker/swift:latest
---> 45b245d4bc04
Step 2/5 : LABEL maintainer "Chris Prince<EMAIL_ADDRESS>---> Using cache
---> 66c220d0ca36
Step 3/5 : LABEL Description "Docker image for building the Swift SyncServer server"
---> Using cache
---> 80000fa36415
Step 4/5 : RUN apt-get -q update && 	apt-get -q install -y 		uuid-dev     	libmysqlclient-dev     	jq     && rm -r /var/lib/apt/lists/*
---> Using cache
---> 8c644a961b10
Step 5/5 : RUN swift --version
---> Using cache
---> 63657eb6e4de
Successfully built 63657eb6e4de
Successfully tagged swift-ubuntu:latest

You'll need to smash the cache by running docker build --no-cache. Looks like we need to tag this.
However, in this case I would strongly recommend you use the official distribution: FROM swift:4.0.3


[FancyZones] - Removing "Keep windows pinned to virtual desktop location" in fancy zones

The option "Keep windows pinned to multiple desktops in the same zone when the active desktop changes", we believe the current behavior is not ideal and what people may actually behavior they would think it does.
(validating with telemetry now)
Due to this, we want to remove this setting to simplify the end user experience

A link to a video that demonstrates what the setting does would be helpful?
Also any setting that involves Virtual Desktop is hard to figure out atm, since Virtual Destops are broken and unpredictable. So any setting involving VDs is illegible by nature.
I honestly have completely forgotten what this one does.
And I remember complaining about its description being unclear myself.

We have telemetry telling if the option is on, but we don't have telemetry to know if it's actually used since having it on doesn't imply it is used.
In order to use it you have to have the same application open on two different desktops, and both windows have to be zoned.
We can add the telemetry in 0.16, but I suspect it won't produce any significant number.
It would be more interesting to have the direct feedback from someone using this feature.
My question would be, why not simply use layouts with the desired zone for the particular app that you want in the same place on all VDs? There is nothing that prevents that and I would like to understand in what type of scenario this feature is really important (I can't imagine any).

@enricogior
So observed behaviour:
I have two explorer windows open, one showing C:/ one showing D:/
With Windows+Tab, I right clicked on an explorer window and set the option "Show windows from this app on all Destkops". (or presumably do the single-setting for both windows to the same effect)
VD1 has triple Columns, VD2 has triple Rows.
We count Zones from top to bottom, left to right.
On VD1 I move C:/ to Zone 1, D:/ to Zone 2.
I change to VD2.....
scenario 1: Option turned on
C:/ will show in Zone 1 of VD2, which is the first row now.
D:/ will show in Zone 2 of VD2, which is the second row now.
scenario 2: Option turned off
On VD2, although the layout has changed, C:/ and D:/ will stay where they were shown before. In the first and second column respectively. They are now no longer in relation to VD2s layout.
First I'm going to have to ask...... is this even what's supposed to happen?
I read ambigous text, after some back & forth testing, I found the behaviour above.
With https://github.com/microsoft/PowerToys/issues/1587 and https://github.com/microsoft/PowerToys/issues/1586 still there, not to mention https://github.com/microsoft/PowerToys/issues/1236 I have no trust that I even understand what's going on.
And anybody who's been playing with multiple desktops and FancyZones will notice that it's broken and doesn't make sense. And nobody who reads this setting description will immediately understand what's meant here.
So noone can tell you whether this is a good feature or not, cause noone will be able to tell what exactly this feature does.
An ambiguous, seemingly contradictory description stacked on the core mechanics leading to unpredictable results will do that.
That doesn't mean it's a bad feature. But it's a complex feature that needs a clear descirption and only makes sense introducing, if the basic features work reliably.

And I don't even want to test whether the observed behaviour is useful, since I don't know whether this behaviour just happens to be like this, because of another bug.
And I don't want to get used to using a bug-dependent feature or look for potential usecases.

Yes, it's completely broken at the moment. And beside that, even if it was working, I wonder if it's something people would actually use.

@DavidGretzschel  as @enricogior stated, the feature doesn't work correctly due to a larger fix.  We're focused on real-world usage as well versus hypothetical usage.  Settings have large rippling effects depending on the matrix.
Pinning apps is a pretty hidden feature too

Well, I doubt that anyone would miss it. I don't think features that don't work or cause trouble should be taken out first, fixed whenever.
And possibly just left out, if noone complains or makes a suggestion for it.
I couldn't use FancyZones for months, because of the space-reenabling bug. And I really liked the idea of FancyZones, but I couldn't even recommend it to anybody, cause it was just too frustrating to use. Would it have been that difficult to simply take out the "space around zones"-feature till it behaved?
Or is it that difficult to simply take out the ctrl+win+Number-shortcut, adding a replacement later?

David, email me and let’s create a very target list of things that would make it go good to great. Then let’s post them up<EMAIL_ADDRESS>We should be crisp on the current issue and the end user real world scenario. :)

Note to dev: remove this on both new and old Settings app.

looks like this got snuck into 0.18.1

looks like this got snuck into 0.18.1

I accidentally pushed that before 0.18.1 was branched, but it was reverted.

When I click "Check for Updates" in v0.18.0 nothing happens.
Is it not enabled yet or is that a different server to which it's not been uploaded so far?

Reopening, since we rolled back the merge.

Fixed in 0.19.0, please visit https://github.com/microsoft/PowerToys/releases/ for the latest release

Is there an alternative to this setting? My intent is to have a way to pin a specific app to multiple (all would be ok as well) virtual desktops. Is this currently not possible (anymore)?

Is there an alternative to this setting? My intent is to have a way to pin a specific app to multiple (all would be ok as well) virtual desktops. Is this currently not possible (anymore)?

@ntziolis
we don't support this feature anymore, you can achieve the same result using the Windows build-in feature to pin an application on all virtual desktops.

@ntziolis
we don't support this feature anymore, you can achieve the same result using the Windows build-in feature to pin an application on all virtual desktops.

Thank you. For anyone lese finding this thread. The description works exactly as desired.

Thank you. For anyone lese finding this thread. The description works exactly as desired.


Locking Horizontal and Vertical Movement of the joystick at runtime

I can lock the button direction to an axis of my choice but when i try to do this at runtime the re-centering of the joystick button does not happen unless i touch it again.
It would be great to have an option for controlling this behavior.

Hi @pandamonium357
Indeed, I will try to have a quick look to fix or update the behavior. I'll let you know when it is done.
Thanks for your feedback!
Kindly,
Damien

has this been fixed?


New Option Proposal

First of all, I love this library and find it useful on a daily basis. However, I often find myself needing to add a "row number" column to datasets that do not natively contain an identifier.
Do you think it would be appropriate to add a parsing option that would allow spark-csv to do this for me? Perhaps something like "generateRowNumbers"?
If this is something that you feel would fit within the scope of responsibilities for spark-csv, then I will create the functionality as a PR. Please just let me know.

I guess adding new feature is discouraged as it was ported into Spark.

NOTE: This functionality has been inlined in Apache Spark 2.x. This package is in maintenance mode and we only accept critical bug fixes.

If you want a unique id, how about using monotonically_increasing_id()?

Ah yes, that is a good point. Thank you for the recommendation as well, sometimes I forget that the SQL function exists!


Fix bug in NativeIntervallDomain.Node.Create

The intersection of two constraints should have a upperbound equaling to the larger origin upperbound.

@RustanLeino : Do you know who wrote this code originally?  It would be great if the original author could take a quick look.  It is a one line change.

I'm the original author and that does appear to be a bug (and a good fix). @xurongchen , please include a test case with your pull request (something that used to be done incorrectly and that your fix corrects). Thanks!

@xurongchen : Could you provide a simple test so we can close this PR?

The modification looks simple and has been vetted by @RustanLeino .  I am going ahead and merging this PR.


Convert script to unix like doc in case of any syntax error

In my case of running the script, I had problem locating the sh file (no such file or directory) and also some syntax errors while reading it. I used dos2unix package to convert the script and it worked. So I think it might be a good idea to add this comment to readme file.
README.md

If you download the script from github directly on the machine, you should not have this issue (this has never been reported, so I assume you did something)


exception handling Meta Tests

I initially tried to work with compilation exceptions in the LibraryMetaTest but as there was already exception handling in RunMetaTestsStep I made the changes there.  I was not sure about how to alert the teacher if there was a compilation exception so I worked with console logging. Please Let me know if something else was intended with "alerting the teacher".
Another thing to note is that when I made the changes in LibraryMetaTest as errors would already be handled here, in the RunMetaTestsStep we would get failing tests that were initially meant to be there for error handling. So this was another reason for why I worked with RunMetaTestsStep folder instead.
I did not delete the other changes, just in case, only commented them out. So when we reach a final decision on where to handle errors, I will delete those commented lines.
Closes #227

Hi, @AtillaColak, this is a hard MR to review, as I can't compare the previous code with the new one. I think it's easier if you don't have all the comments there, so that git diff can do its job.
What exactly are you trying to achieve? Which issue is this about?

Hi, @AtillaColak, this is a hard MR to review, as I can't compare the previous code with the new one. I think it's easier if you don't have all the comments there, so that git diff can do its job.
What exactly are you trying to achieve? Which issue is this about?

This is an MR for the issue number #227. I've removed the unnecessary comments so it should be easier to review now.

sure I'll get to it tonight

@martinmladenov Hey Martin could you take a look at this? For some reason, the test I wrote for the exam scenario fails and returns false for the "there is genericfailure" check. I would not want to disturb you if I could have solved it myself but I tried for some hours and was still at a dead end. Maybe you have an idea of what I could be obviously missing, so that I can fix it.

@AtillaColak
Are you sure that your changes work correctly? If I'm not mistaken, in the current production version, if there's a compilation error due to a badly written meta test, Andy considers that meta test to fail (i.e. there's no generic failure raised). Your changes add an extra condition for exam mode in the part that raises a generic failure, but I don't think this part of the code gets triggered when a meta test encounters a compilation error.


Create a frame quickly with a known palette

I've added a method which can create a gif frame from a known palette and would be much faster than using color_quant.

Looks good. @nwin any comments?

I have made some of the changes. Can you review?
I am a little confused by some advice, specifically "take ownership of the pixels/palette" since the other methods (from_rgb(a)) don't take ownership. Wouldn't it be consistant to use similar signatures? (I know the from_rgb(a) does processing, which means it can't take ownership).
Also, a suggested signature (pub fn from_palette_pixels<'a, 'b>(width: u16, height: u16, pixels: &'a mut [u8], palette: &'b [u8], transparent: Option<u8>) -> Frame<'a>) isn't taking ownership. 😕
I'm happy to change it if needed.

I've also added a method to create a frame when you already have a global palette

@nwin Is this PR ready for merging?

Merging.


Fix additional NCEP Grid inconsistencies.

Testing of all 135 supported NCEP grids from https://www.nco.ncep.noaa.gov/pmb/docs/on388/tableb.html revealed some inconsistencies in their implementation in MET.  The task is to resolve those inconsistencies.

For grid number 252 (https://www.nco.ncep.noaa.gov/pmb/docs/on388/tableb.html#GRID252), Dx and Dy are defined as 20.317625.  In GRIB1 files, this is stored as 20.318.  In MET, it was stored as 20.317.  Updated the grid definition in MET to use 20.318 instead.

For grid number 240 (https://www.nco.ncep.noaa.gov/pmb/docs/on388/tableb.html#GRID240)
Dx = Dy = 4.7625.  But only 3 decimal points of precision are supported in GRIB1.
Update the grid definition in MET to use 4.763 to be consistent with copygb.

For grid number 224 (https://www.nco.ncep.noaa.gov/pmb/docs/on388/tableb.html#GRID224)
There was a typo in MET's definition of this grid.  The reference latitude should be -60.0, but we had it listed as +60.0.

For grid number 028, we had the sign of the reference longitude wrong.
For grid number 196 (https://www.nco.ncep.noaa.gov/pmb/docs/on388/tableb.html#GRID196), several grid parameters were off slightly.
For grid number 199 (https://www.nco.ncep.noaa.gov/pmb/docs/on388/tableb.html#GRID199), several grid parameters were off slightly.

Found a problem in the Gaussian grid code in the xy_to_latlon() function.  This problem was introduced during development for https://github.com/NCAR/MET/issues/847.
There's a minus sign that should be a plus sign when computing the longitude value, which results in the data appearing reverse horizontally.
This is an obvious problem to fix... but significant differences remain between the regridded output of MET and copygb.

I updated all the grid definitions in MET to match what's listed in ON388:
https://www.nco.ncep.noaa.gov/pmb/docs/on388/tableb.html
However, significant discrepancies still remain in the output of Gaussian grids.  Will resolve this issue for now, but recommend investigating Gaussian discrepancies in the future.


Error on scrollbar track tap when no controller attached

Steps to Reproduce

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

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
  debugDefaultTargetPlatformOverride = TargetPlatform.iOS;
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MyAppState();
  }
}

class _MyAppState extends State<MyApp> {
  final ScrollController controller = ScrollController();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("Test app")),
        body: Scrollbar(
          child: ListView.builder(
            controller: controller,
            itemBuilder: (context, i) => ListTile(title: Text("Item $i")),
            itemCount: 1000,
          ),
        ),
      ),
    );
  }
}

Scroll the list, and while the scrollbar is visible, tap in the scrollbar track.

Expected results: No error.
Actual results: An error indicating that the scrollController is not attached to any scroll views.

Logs
════════ Exception caught by gesture ═══════════════════════════════════════════
The following assertion was thrown while handling a gesture:
ScrollController not attached to any scroll views.
'package:flutter/src/widgets/scroll_controller.dart':
Failed assertion: line 108 pos 12: '_positions.isNotEmpty'

2

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack
#2      ScrollController.position
package:flutter/…/widgets/scroll_controller.dart:108
#3      RawScrollbarState._handleTrackTapDown
package:flutter/…/widgets/scrollbar.dart:1160
#4      TapGestureRecognizer.handleTapDown.<anonymous closure>
package:flutter/…/gestures/tap.dart:580

➜ flutter doctor -v
[✓] Flutter (Channel master, 2.3.0-1.0.pre.102, on Linux, locale en_US.UTF-8)
    • Flutter version 2.3.0-1.0.pre.102 at /home/david/fvm/versions/master
    • Upstream repository https://github.com/flutter/flutter
    • Framework revision 519c8e0649 (70 minutes ago), 2021-04-27 03:49:01 -0400
    • Engine revision dbd622cf0c
    • Dart version 2.14.0 (build 2.14.0-46.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /extra_drive/home/david/Android/Sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_SDK_ROOT = /extra_drive/home/david/Android/Sdk
    • Java binary at: /home/david/opt/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+0-b944-P17168821)
    • All Android licenses accepted.

[✓] Linux toolchain - develop for Linux desktop
    • clang version 12.0.0
    • cmake version 3.19.7
    • ninja version 1.8.2
    • pkg-config version 1.7.3

[✓] Android Studio (version 4.2)
    • Android Studio at /home/david/opt/android-studio
    • Flutter plugin version 52.2.2
    • Dart plugin version 202.8346
    • Java version OpenJDK Runtime Environment (build 11.0.8+0-b944-P17168821)

[✓] VS Code (version 1.55.2)
    • VS Code at /usr/share/code
    • Flutter extension version 3.21.0

[✓] Connected device (2 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)
    • Linux (desktop)             • linux         • linux-x64   • Linux

• No issues found!

Other gestures in the scrollbar check for a valid scroll position before interacting with it, so I'd say we just need the same check in the track tap gesture.
https://github.com/flutter/flutter/blob/519c8e064956fbb93c7caa72cc6b8b017aafdc24/packages/flutter/lib/src/widgets/scrollbar.dart#L1077
https://github.com/flutter/flutter/blob/519c8e064956fbb93c7caa72cc6b8b017aafdc24/packages/flutter/lib/src/widgets/scrollbar.dart#L1104

Hi @davidmartos96
When following your steps, I am getting the following error instead
Launching lib\main.dart on Android SDK built for x86 in debug mode...
√  Built build\app\outputs\flutter-apk\app-debug.apk.
Connecting to VM Service at ws://<IP_ADDRESS>:58834/9Kytv3vJk_A=/ws
D/EGL_emulation(13139): eglMakeCurrent: 0xeba80f00: ver 2 0 (tinfo 0xcc87e3c0)
D/eglCodecCommon(13139): setVertexArrayObject: set vao to 0 (0) 1 0

════════ Exception caught by gesture ═══════════════════════════════════════════
The following _CastError was thrown while handling a gesture:
Null check operator used on a null value

When the exception was thrown, this was the stack
#0      _CupertinoScrollbarState.handleThumbPressStart
#1      RawScrollbarState._gestures.<anonymous closure>.<anonymous closure>
#2      LongPressGestureRecognizer._checkLongPressStart.<anonymous closure>
#3      GestureRecognizer.invokeCallback
#4      LongPressGestureRecognizer._checkLongPressStart
...
Handler: "onLongPressStart"
Recognizer: _ThumbPressGestureRecognizer#d7a73
    debugOwner: _CupertinoScrollbarState#b997d(tickers: tracking 2 tickers)
    state: possible
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gesture ═══════════════════════════════════════════
Null check operator used on a null value
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gesture ═══════════════════════════════════════════
Null check operator used on a null value
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gesture ═══════════════════════════════════════════
Null check operator used on a null value
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gesture ═══════════════════════════════════════════
Null check operator used on a null value
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gesture ═══════════════════════════════════════════
Null check operator used on a null value
════════════════════════════════════════════════════════════════════════════════

flutter doctor -v
[✓] Flutter (Channel master, 2.3.0-1.0.pre.101, on Microsoft Windows [Version 10.0.19042.928], locale en-US)
    • Flutter version 2.3.0-1.0.pre.101 at C:\Users\Taha\Code\flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ff2dde2c7f (5 hours ago), 2021-04-26 22:35:45 -0700
    • Engine revision afd9c397a5
    • Dart version 2.14.0 (build 2.14.0-43.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31205.134
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.3
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.55.2)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 10 (API 29) (emulator)
    • Windows (desktop)                  • windows       • windows-x64    • Microsoft Windows [Version 10.0.19042.928]
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 90.0.4430.93
    • Edge (web)                         • edge          • web-javascript • Microsoft Edge 90.0.818.46

! Doctor found issues in 1 category.

@TahaTesser That may be a different error then. It says thumb in your error. Did you tap in the scrollbar track, outside the thumb?

@davidmartos96
I am just tapping on the thumb

@TahaTesser  Oh ok, those are not the steps I described. Sorry if they weren't clear enough.
First do a long scroll down.
Then while it is scrolling, do a single tap (no long tap) at the bottom of the scrollbar, in its track, the path that the thumb follows.
So if the scrollbar is a road + a car, tap in the road while the car moves :sweat_smile:

Hi @davidmartos96
Ah that makes sense, I can see the same logs

logs
Launching lib\main.dart on Android SDK built for x86 in debug mode...
√  Built build\app\outputs\flutter-apk\app-debug.apk.
Connecting to VM Service at ws://<IP_ADDRESS>:55535/J2vW6ABbIbE=/ws
D/EGL_emulation(17968): eglMakeCurrent: 0xf6c7fca0: ver 2 0 (tinfo 0xe3acc490)
D/eglCodecCommon(17968): setVertexArrayObject: set vao to 0 (0) 1 0

════════ Exception caught by gesture ═══════════════════════════════════════════
The following assertion was thrown while handling a gesture:
ScrollController not attached to any scroll views.
'package:flutter/src/widgets/scroll_controller.dart':
Failed assertion: line 108 pos 12: '_positions.isNotEmpty'

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

When the exception was thrown, this was the stack
#2      ScrollController.position
#3      RawScrollbarState._handleTrackTapDown
#4      TapGestureRecognizer.handleTapDown.<anonymous closure>
#5      GestureRecognizer.invokeCallback
#6      TapGestureRecognizer.handleTapDown
...
Handler: "onTapDown"
Recognizer: _TrackTapGestureRecognizer#c2bad
    debugOwner: _CupertinoScrollbarState#365c1(tickers: tracking 2 tickers)
    state: possible
    button: 1
════════════════════════════════════════════════════════════════════════════════

flutter doctor -v
[✓] Flutter (Channel stable, 2.0.5, on Microsoft Windows [Version 10.0.19042.928], locale en-US)
    • Flutter version 2.0.5 at C:\Users\Taha\Code\flutter_stable
    • Framework revision adc687823a (12 days ago), 2021-04-16 09:40:20 -0700
    • Engine revision b09f014e96
    • Dart version 2.12.3

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31205.134
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.3
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.55.2)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 10 (API 29) (emulator)
    • Windows (desktop)                  • windows       • windows-x64    • Microsoft Windows [Version 10.0.19042.928]
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 90.0.4430.93
    • Edge (web)                         • edge          • web-javascript • Microsoft Edge 90.0.818.46

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 2.3.0-1.0.pre.143, on Microsoft Windows [Version 10.0.19042.928], locale en-US)
    • Flutter version 2.3.0-1.0.pre.143 at C:\Users\Taha\Code\flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision aecd5e0302 (4 hours ago), 2021-04-28 00:53:57 -0300
    • Engine revision 92ef7b59c8
    • Dart version 2.14.0 (build 2.14.0-48.0.dev)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at C:\Users\Taha\Code\SDK
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = C:\Users\Taha\Code\SDK
    • Java binary at: C:\Users\Taha\Code\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.4)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.9.31205.134
    • Windows 10 SDK version 10.0.19041.0

[✓] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\Taha\Code\android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] IntelliJ IDEA Community Edition (version 2021.1)
    • IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.3
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.55.2)
    • VS Code at C:\Users\Taha\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 10 (API 29) (emulator)
    • Windows (desktop)                  • windows       • windows-x64    • Microsoft Windows [Version 10.0.19042.928]
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 90.0.4430.93
    • Edge (web)                         • edge          • web-javascript • Microsoft Edge 90.0.818.46

! Doctor found issues in 1 category.


CRITICAL! - Sudden +100% CPU Spikes with Arangodb

My Environment

ArangoDB Version:        3.7.3
Storage Engine:             RocksDB rocksdb-version: 6.8.0
Deployment Mode:       Single server
Infrastructure:               AWS EC2 t2.medium
Operating System:        Amazon Linux
Total RAM in your machine:        4 GB

Component, Query & Data
Affected feature:
Arangod / RocksDB
Steps to reproduce

Run the program

Problem:
I've been deploying the same program for +5 months for now at the production environment and was everything alright until very recently. Today Arangodb suddenly started to spike in CPU at higher rates than %100. It seems like some bugged processes are underneath or something consuming unnecessary CPU.
This is critical for our program.
Here are some pictures:

Expected result:
No CPU spikes at all.

Hi,
please note that ArangoDB 3.7.6 is available and you should upgrade.
There are background jobs that have to be executed now and then, like compacting the WAL files; these are system imanent and there is no way to stop it.
If you want to reduce the resource footprint of ArangoDB you can disable the internal statistics feature.
for details about resource usage please have a look at:
https://www.arangodb.com/docs/stable/tutorials-reduce-memory-footprint.html

So, a few minutes after this reply it re-stabilise to -5% CPU use. It was a weird peak with background threads.
Alright, I'll try upgrading. Is there a command to do so? (Without losing db data)

depends on your installation-mode?
apt-get update; apt-get upgrade arangodb3

would be a wild guess from what you've posted.

Amazon Linux has yum packages. I updated it. So far CPU use seems stable (but weirdly the issue was solved by waiting for those threads to end by themselves somehow).

I have the same problem here
https://stackoverflow.com/questions/66463912/random-high-cpu-usage-in-arangodb-large-database

I'd compare the wal compaction to dreaming: you need it in order to have your data structured.
However, like you can control when you go to sleep, you also know when you are idle and want to invoke it:
db.<any collection>.compact()

so you can do this at times when you're idle, and you can do it more often so (maybe) the amount of work it has to do is lower.

I setup a task to compact all DBs every 5 minutes, let's see if that fixes the problem.
tasks.register({
  id: "compaction-task",
  name: "Compaction task",
  period: 300,
  command: function () {
    require('console').log('--------------------------');
    require('console').log('Running compaction task...');

    require('console').log('Compacting access...');
    require('@arangodb').db.access.compact();

    require('console').log('Compacting users...');
    require('@arangodb').db.users.compact();

    require('console').log('Compacting logs...');
    require('@arangodb').db.logs.compact();

    require('console').log('--------------------------');
  }
});

Starting the compaction every 5 minutes doesn't sound like a good idea. Have a look at the documentation here:
https://www.arangodb.com/docs/devel/data-modeling-collections-collection-methods.html#compact

the operation will compact the document and index data by rewriting the underlying .sst files and only keeping the relevant entries.

Rewriting the files that often seems undesirable.

Starting the compaction every 5 minutes doesn't sound like a good idea. Have a look at the documentation here:
https://www.arangodb.com/docs/devel/data-modeling-collections-collection-methods.html#compact

the operation will compact the document and index data by rewriting the underlying .sst files and only keeping the relevant entries.

Rewriting the files that often seems undesirable.

Well, at least for now it seems to have fixed the issue. 2 days without freezing the server with 99.9% cpu usages.
In my case is much more undesirable having to pay for 48x vCPUs AWS when a 16x core will be enough for what i need.
Also i don't see any undesirability in it, the documentation only says it's not needed (in my case it seems to be since i have a lot of updates in the db).
What would you recommend then?

???

The upcoming version 3.8 might help to reduce the CPU spikes. From the CHANGELOG:

When dropping a collection or an index with a larger amount of documents, the
key range for the collection/index in RocksDB gets compacted. Previously, the
compaction was running in foreground and thus would block the deletion
operations.
Now, the compaction is running in background, so that the deletion operations
can return earlier.
The maximum number of compaction jobs that are executed in background can be
configured using the new startup parameter
--rocksdb.max-parallel-compactions, which defaults to 2.
Increased the default value of --rocksdb.min-write-buffer-number-to-merge in
some cases when we have allocated a sufficient amount of memory to the write
buffers for this to make sense. The increased value should help prevent
compaction-induced write stalls/stops, and should only be enabled when under
conditions such that it shouldn't greatly increase the chance of flush-induced
write stalls/stops.

Is renicing the compaction jobs until 3.8 is released with the additional control? For example, in my crontab I have */5 * * * *     root    renice 5 $(pidof firefox)
What are the conditions or rules that trigger the compaction jobs, perhaps @brunoaduarte can preempt them with less to compact or change some other condition? Add more storage to balance the number quantity of updates? Do smaller ETL batches with manually calling compact after each, etc? Ive throttled ingest with a queue architecture to avoid maxing disk io & the expensive up-size.
Can RocksDB be configured outside of ArangoDB so the compaction can be tuned prior to 3.8's release?
I'm not an operator or expert, this is just empathy triggered brain storming.

Hi guys. I have to say that I'm still facing these problems. I'm using Arangodb with this set-up:
ArangoDB Version: 3.8.8
Storage Engine: RocksDB rocksdb-version: 6.8.0
Deployment Mode: Single server
Infrastructure: AWS EC2 t2.small
Operating System: Amazon Linux
Total RAM in your machine: 2 GB
I run a front-end and micro-services with a driver on the Arangodb database. The program scraps certain data from a website each minute and then processes it creating a registry in the database. This data can be accessed through the front-end application. As the runtime of the application increases it gets to a point where ArangoDB takes 100% of the CPU.

Details of CPU consumption.

We are seeing similar issues on If this was closed as "completed" can someone document how it was resolved?

Was anybody able to make some progress on this?

No. 3.8 has long been EOLed.
Please upgrade to at least 3.11, and if you have a reliable way to reproduce this, open a new issue.


Add possibility to write data to file

While running gen_requirements_all.py I got the traceback below.
$ ./script/gen_requirements_all.py
Traceback (most recent call last):
  File "./script/gen_requirements_all.py", line 90, in <module>
    main()
  File "./script/gen_requirements_all.py", line 58, in main
    module = importlib.import_module(package)
  File "/usr/lib64/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1129, in _exec
  File "<frozen importlib._bootstrap>", line 1471, in exec_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
  File "/home/fab/Documents/repos/home-assistant/homeassistant/components/sensor/rpi_gpio.py", line 13, in <module>
    import RPi.GPIO as GPIO
RuntimeError: This module can only be run on a Raspberry Pi!

I started to rework the script a little and add the possibility to save the data direct to requirements_all.txt.

Ahhh, RPi.GPIO is no longer added...

Since this changes the output of requirements_all.txt slightly, please commit a new version.

Inside a venv I don't see the traceback.

File "", line 321, in _call_with_frames_removed
File "/home/fab/Documents/repos/home-assistant/homeassistant/components/sensor/rpi_gpio.py", line 13, in
import RPi.GPIO as GPIO
RuntimeError: This module can only be run on a Raspberry Pi!


Expose benchmarks

During your Online training talk you compare Creame to Scikit-learn in terms of speed.
Please keep a place in "tests" folder for some benchmarking scripts (you seem to have them in some place anyway).

There is an exposed benchmark; see here.


Router displays NotFoundContent without any layout

Since we changed Router to have a NotFoundContent fragment instead of referencing a "fallback page" type, we've lost the convenience of having the content rendered inside a layout. It just renders very plainly (typically, black Times New Roman on a white screen).
This might not seem super important for the "not found" message, but we're also about to add "authorizing..." and "not authorized" content here too, and those really should be rendered inside a layout or the app will look flickery and weird as it jumps between displays styles.
Possible solution:

We add an extra DefaultLayout property to Router (of type System.Type, just like we used to for FallbackComponent).

Usage in template: <Router ... DefaultLayout="typeof(MainLayout)">

We also add the same DefaultLayout property to the LayoutDisplay component, and have Router automatically pass the value through
Then we update the rendering logic for LayoutDisplay so that, when the target doesn't define any layout, we use the DefaultLayout type
Finally, we make LayoutDisplay able to receive a RenderFragment as an alternative to a page type, i.e., it supports either. Then Router can render its NotFoundContent by passing the render fragment to LayoutDisplay

This is fixed (or at least, it's no longer applicable) with #12800


Develop jupyter directive for full control option

Develop a custom Jupyter directive for sphinx that allows for full control of the notebook concept.
An example would be:
.. jupyter:: {{ language }}
    :type: in
    :no-execute:
    :label: xyz

or
.. jupyter:: {{ language }}
    :type: out
    :label: xyz

Potential to add:

test support for checking output

the downside of using a custom directive would be support for other output types such as html and pdf.

PR #84 starts this work to include a new directive to get more control over the jupyter notebooks, including the option of cell-break (e.g., when the text is too long)
Implemented:

[x] :cell-break: break jupyter input cells
[ ] :slides: include the option of each cell being a different sub-slide type. Enabling slides should probably be done at the project level in conf.py and the directive gives you control over type of slide. This option should only be available if a global slides option has been selected.

allow for explicit control of jupyter blocks

[ ] :type: output, markdown, code

Notes

markdown and raw can have cell attachments https://nbformat.readthedocs.io/en/latest/format_description.html#cell-attachments


buildPerlPackage: use LINKTYPE=static when building statically

Motivation for this change
Needed to build pkgsStatic.avahi
Things done
Tried to fix the static building of perlPackages. Couldn't test it because I ran out of disk memory.
Would appreciate a review from @alyssais.

Built on platform(s)

[ ] 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.

@GrahamcOfBorg buikd pkgsStatic.perlPackages.DBDmysql

Sorry it's taken me so long to look at this! I wasn't doing much Nixpkgs in Jan.

This causes a conflict.  And it's quite old, so redoing some review/testing would probably be appropriate, if you're still interested in getting this merged.


Incorrect(?) unfolding of abstract type

This code fails to verify:
module Test

open FStar.Ghost

abstract type t = erased int

let x :t = hide 0

let lemma (y:t{y == x}) :Lemma (True) = ()

with error:
aseemr@aseemr-dt1 ~/FStar
$ fstar.exe Test.fst
.\Test.fst(9,20-9,21): (Error) Interface of Test violates its abstraction (add a 'private' qualifier to 'lemma'?): Expected expression of type "Test.t"; got expression "Test.x" of type "FStar.Ghost.erased Prims.int"
1 error was reported (see above)

On some debugging, I saw that F* unfolds the type annotation t in the definition of x to erased int. Because of which, when checking for abstraction, the lemma fails to typecheck.
A workaround is to write x as: let x :t = let y :t = hide 0 in y.
But F* should not expand the type t in the definition of x.

I don't know what was I thinking, this is a legitimate abstraction violation. Closing the bug.


G4 Doorbell ring event triggers errors and fails to backup

Unifi Protect Backup version: 0.9.1
Unifi Protect version: 2.7.34
Python version:
Operating System:
Are you using a docker container or native?:
I have noticed with my wifi based unifi cameras (doorbell included), when the signal isn't great unifi protect will actually fail to produce video for certain time stamps

Only for doorbell presses. So the G4 doorbell records and uploads the motion event up to the press, then spits the errors when the doorbell itself is pressed, triggering a ring event.
Unifi Protect has the doorbell event, with video, OK.

Could you download the video via the UI and send it to me via<EMAIL_ADDRESS>From that logging output, it looks like ffprobe is not able to find a video feed in the file that was downloaded.
If the one from the UI is fine we might need to make some modifications to the code to save that file that was downloaded to investigate further.

Oh now that IS interesting... the video plays fine in the UI, but downloads as a 1KB MP4 which is (obviously) not playable. Looks like the error is valid...

It's not all ring events, just most - randomly one will be OK, I'm unable to work out what the differentiator is.

I have experience the same with G3 instant cameras. I attribute it (possibly incorrectly) to issues with the wifi signal dropping packets, or possibly unifi protect itself dropping frames somehow. I've never seen it on wired cameras though, only wifi ones with signal issues.


fix: modify locals for online offline registry

Signed-off-by: liuying<EMAIL_ADDRESS>
What type of PR is this?
/kind bug

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:

Does this PR introduced a user-facing change?

Additional documentation, usage docs, etc.:

/cherrypick master


Improve performance of task matchmaking trigger

By specifying the contract type that the trigger expands, we can use
heuristics to reduce unnecessary queries to the DB.
Change-type: patch
Signed-off-by: Lucian Buzzo<EMAIL_ADDRESS>

@balena-ci rebase

@balena-ci I self-certify!


Fix slack url

As @drpatelh pointed out, we're not the Near Field Core ;-)

Oops, sorry! Just noticed and fixed this myself without a PR 😞


Live.php - public $scope

Looks like Scope value inhybridauth/Hybrid/Providers/Live.php is not used correctly (or not at all) while authorization via Window Live. No matter what public $scope I declare in Live.php, WSL seems to request everything while authentication.
I'd like to limit Scope to either wl.signin if feasible or at most wl.basic.
Can you advice how to make it work?
Ref: https://msdn.microsoft.com/en-us/library/hh243646.aspx

Hello, just a follow-up on this. I've tried your code snippets option as well and it still pull all user data including email and birthdate into the WP user table.
Can you please help what is the best way to implement only wl.signin scope for Window Live? Really appreciate it. And thanks for making and continuing to develop this awesome plugin.


Error in GetGitVersion() in BuildPackage.cs on macOS/Unix/Linux

When building Poly Unity Package from Github sources (using Unity Menu Poly > Dev > build .unitypackage) , Unity throws an error from method
static string GetGitVersion()
inside the file "BuildPackage.cs".
Error: "git.exe describe exited with code 128"
On Unix machines (macOS, Linux, ...) there is no "git.exe", instead I tried using "git" but the method does not perform it's operation well.
To be able to build it, I just inserted a fixed string for the version number, then the build worked. So the error is just in this method.

It sounds like you might not have pulled tags from the repo, or you're not beyond some version-tagged commit.
That method is mostly for our use to create unity packages to put onto github, so if the engineer making them doesn't have the proper environment then we'd rather they fail.

What is the "proper" build environment?

I don't know sufficient conditions, but necessary is one in which git.exe exists and the repo satisifies #2 above


What does gf_processLayout  actually do?

I'm trying to figure out what gf_processLayout actually does. In particular when it is called does it do an autolayout? The docs are not clear on this. I assume it dopes something like:
loadSBML
if layout info found in SBML use layout
if layout not found call autoLayout

This issue was moved to sys-bio/sbnw#13


Icon packs

Adds the icon pack #feature# to the build process and the frost-icon component.  Apologies for the messy duplication in index.js, I didn't have time to clean up all of the code.
CHANGELOG
Added the icon pack feature to frost-icon, see the documentation at http://ciena-frost.github.io/ember-frost-core/#/icons for details

The documentation that will be hosted off the changelog link is in the frost-icons.md

:+1:


jack support?

hello,
first thanks for this nice project to make vcvrack work on lower spec and arm systems - this is really cool!
it looks like compared to the original vcvrack, mirack does not seem to have jack support out of the box. is this intentional or maybe part of the optimization? could it be easily brought back? it would add a lot of flexibility for the input and output of audio and midi and would make things like using the network functionality of jack possible to connect a mirack running on an arm device to some other machine midi or audio wise.
a lot of thanks in advance and best wishes - keep up this cool project
hexdump

Hello,
Some time ago I fried my Tinkerboard working on hardware controls, and while waiting to repair or replace it, switched to my other projects. Also I was a bit disappointed with the controls so need to learn and think how to proceed. Anyway, right now I'm not actively working on this, but will get get back to it once I can, at least to update modules from upstreams and make sure everything compiles on all platforms. Thank you for all your reports, but most likely I will only be able to meaningfully respond to them once I have time to work on this project again.


Minor UX improvement

Ctrl + Enter running the renderer would be a great UX addition.
PS: Killer app!

Thank you @knadh! It's currently mapped to Alt + Enter.
I should perhaps create an interface with all keyboard shortcuts.

Ah yes, that works. Cheers.


Ask product about spreading votes (different vote power for different candidates)

question about the different approaches of Voting methods that are available and what do we want to implement from prod. perspective when moving to more than one candidate per ballot.
The main options I see are:
A- Preference: not-ordered list of support-for candidate
B- Ranked:  ordered list of candidates, where all voting power count to one of them i.e. STV
C- Cumulative:  each voter is assigned a number of points to distribute on the list. i.e. 10 points given, I choose 5 to the first, 3 to the 2nd, 2 to the 3rd in the list.
D- Score: points or percentage or "value" for each position in the ordered list. Similar to cumulative, but the points are already set.
E- Vote Power distribution: the voter set how to distribute his vote-power. i.e. 40% for the first, 30% to the second,  20% to the 4th and 10% for the 5th.
F-  For/Against: voters can choose to give 1 point or -1 point to single or multiple candidates.
All has their theoretical pros and cons but I prefer the pragmatic/behavioral best options for us here. I think A, B, and E are the more natural and useful for us, but I prefer to have the product vision here.
Kain | Synthetix — Yesterday at 10:54 PM
My view is B mainly for consistency with V2x, I think that we should eventually allow V3GM to support all of these options or any other novel voting strategy, but for not our scope should be replacing v2x


Rename tagged hooks to conditional hooks in docs

Fixes #392.
Could someone please review?

Hi @stevenfranks,
Thanks for your making your first contribution to Cucumber, and welcome to the Cucumber committers team! You can now push directly to this repo and all other repos under the cucumber organization! 🍾
In return for this generous offer we hope you will:

✅ Continue to use branches and pull requests. When someone on the core team approves a pull request (yours or someone else's), you're welcome to merge it yourself.
💚 Commit to setting a good example by following and upholding our code of conduct in your interactions with other collaborators and users.
💬 Join the community Slack channel to meet the rest of the team and make yourself at home.
ℹ Don't feel obliged to help, just do what you can if you have the time and the energy.
🙋 Ask if you need anything. We're looking for feedback about how to make the project more welcoming, so please tell us!

On behalf of the Cucumber core team,
Aslak Hellesøy
Creator of Cucumber

Looks good to me! Thanks!

Looks good to me! Thanks!
And happy Hacktober!

Thank you!

Hi @stevenfranks,
Thanks for your making your first contribution to Cucumber, and welcome to the Cucumber committers team! You can now push directly to this repo and all other repos under the cucumber organization! 🍾
In return for this generous offer we hope you will:
* ✅ Continue to use branches and pull requests. When someone on the core team approves a pull request (yours or someone else's), you're welcome to merge it yourself.

* 💚 Commit to setting a good example by following and upholding our [code of conduct](https://cucumber.io/conduct) in your interactions with other collaborators and users.

* 💬 Join the [community Slack channel](http://cucumber.io/support#slack) to meet the rest of the team and make yourself at home.

* ℹ Don't feel obliged to help, just do what you can if you have the time and the energy.

* 🙋 Ask if you need anything. We're looking for feedback about how to make the project more welcoming, so please tell us!

On behalf of the Cucumber core team,
Aslak Hellesøy
Creator of Cucumber

Thank you, really appreciate the kindness!


Led Strip

I have installed the plugin successfully. I have two devices installed in smart life app, both devices show up in the cloud project.
When I run the plugin in Homebridge with debug I see the following:
Adding: TV Led (dd / bf7cfcb4d61b9a80fexknv)
Adding: Entrance Lamp (dj / bf8364dae520a89e98mhmz)
Existing Accessory found Entrance Lamp  bf8364dae520a89e98mhmz bf87eccb-295c-4cc5-9f1a-ccdd93573c02
In homebridge accessory list and HomeKit only one device shows up. (Entrance Lamp) wifi lightbulb, the led strip (TV Led) doesn't show up at all.
Thanks

Hi @Mathmxp , Thank you for your feedback.
Category "dd" is not in the Tuya standard instruction set. So Plugin don't have support yet.
Please open the log and provide device details. And try submitting a PR.

{"category":"dd","devices":["bf7cfcb4d61b9a80fexknv"],"functions":[{"code":"switch_led","desc":"switch led","name":"switch led","type":"Boolean","values":"{}"},{"code":"work_mode","desc":"work mode","name":"work mode","type":"Enum","values":"{"range":["white","colour","scene","music"]}"},{"code":"bright_value","desc":"bright value","name":"bright value","type":"Integer","values":"{"min":10,"max":1000,"scale":0,"step":1}"},{"code":"temp_value","desc":"temp value","name":"temp value","type":"Integer","values":"{"min":0,"max":1000,"scale":0,"step":1}"},{"code":"colour_data","desc":"colour data","name":"colour data","type":"Json","values":"{}"},{"code":"scene_data","desc":"scene data","name":"scene data","type":"Json","values":"{}"},{"code":"countdown","desc":"countdown","name":"countdown","type":"Integer","values":"{"unit":"s","min":0,"max":86400,"scale":0,"step":1}"},{"code":"music_data","desc":"music data","name":"music data","type":"Json","values":"{}"},{"code":"control_data","desc":"control data","name":"control data","type":"Json","values":"{}"}],"product_id":"imhcpay5gohtqjys"}

This is the log of the device, I have no idea how to create a PR sorry!

Hi @Mathmxp , Category "dd" will be supported in the next version.

Hi @Mathmxp , We already support Category "dd "in version 1.3.0, please update and try again.

Hi @Mathmxp , Since we haven't received your reply for a long time, we think our latest version should have solved your problem. We will close this issue first. If there is any problem, you can contact us at any time.


Remove UNI_OMP guards surrounding #pragma omp...

Remove UNI_OMP guards surrounding #pragma omp...
The compilers don't stop compiling if they cannot find the token
following #pragma, so we don't have to use the compile definition to
guard #pragma omp... statements.
This is a change for #517.
Remove find_package(GTest) from the root CMake file
We have used include(GoogleTest), which is the new mechanism, to discover the
tests.
Remove -fopenmp flag when only enabling MKL
We don't guard #pragam omp... statements now, so they take effects
when -fopenmp compiler flag is set. set() function only affect the
targets defined in the same scope (the same directory) and the
subdirectories after the line of set(). Setting -fopenmp flag when
the user only enable USE_MKL but not enable USE_OMP makes the user
suprised.
By default, MKL links to their own openmp (not gomp) for threading. The
build process has no problem with no setting -fopenmp compiler flag
when using MKL as the provider of BLAS and LAPACK. The above claim is
true for the MKL version later then 2023.2.0. I am not sure if it is
also true for the older version of MKL.

Seems good for now. But in #517 suggests to remove #pragma omp parallel for schedule(dynamic) everywhere, so the issue still needs some work.

Yes, all of the #pragma omp code I saw uses schedule(dynamic) in a way that makes it much slower than not using OpenMP at all.  The majority of OpenMP loops that I looked at were level-1 operations, i.e. one new memory access per loop iteration.  These don't benefit much from OpenMP, because they are saturating the memory bandwidth. Replacing the schedule(dynamic) with schedule(static) would certainly be better than the current situation, but that will at best give a few percent speedup, on code that is not a bottleneck anyway.  I  suggest simply removing all of the #pragma omp lines completely.
Perhaps try some test case with 3 benchmarks:

the code as it is
globally replace schedule(dynamic) with schedule(static)
disable OpenMP - either compiler flag or globally remove all lines #pragma omp ...

I tried (1) and (3), using C = A+B for A, B, C being 10000x10000 tensors of Double.  bench-add-noomp is linking against cytnx compiled without OpenMP, bench-add is the same code linking against an OpenMP build.
$ ./bench-add-noomp
Average time for Cytnx Tensor: 0.212623 seconds
$ OMP_NUM_THREADS=1 ./bench-add
Average time for Cytnx Tensor: 0.781158 seconds
$ OMP_NUM_THREADS=10 ./bench-add
Average time for Cytnx Tensor: 3.15877 seconds

It gets worse the more threads you add because they are all fighting each other for the same L1 cache entries.

Yes, the issue is still there. Because I cannot confirm that all #pragma omp code is redundant, I didn't remove it by meta programming. I will check them by hand, but this will take some time.

For non-complex, maybe just use std::max_element :)

For non-complex, maybe just use std::max_element :)

And for the complex case too, just need to decide what the comparison function is.


Increase success re-queue intervals

Description
Changes proposed in this pull request:

Default requeue interval for Kyma, Manifest and Watcher to 30s
Set control-plane config the actual intervals (1min)
Introduce requeue intervals for error and processing Kymas as well

Related issue(s)

https://github.com/kyma-project/lifecycle-manager/issues/643

/retest-required


feat: allows deploying specific versions of web and init

This breaks up our deployment actions into separate workflows for better reuse and neat diagrams. It also allows us to deploy specific versions for each service in each environment. I had to touch the omnibus bits because I needed the git branch in the metadata.
The best part about Github Actions is that there is sometimes no way to test changes until after you merge. Sick!

bors r+


In-line Code Block Renders Differently In MD-Formatted Lines

As the .png files show, in-line code block renders differently in several formatted lines.
They all behave great in Live-Preview Mode, but things become wierd in Reading Mode.

Ok I fixed this myself.
If you're having the same issue:

Open theme file at "\Your Vault.obsidian\themes\Typora-Vue\theme.css
Locate line ".markdown-rendered p code"
Delete 'p'

That'll fix the problem

已经注意到这个问题了，我后续有时间改一下

增加一个配置即可：
.markdown-rendered li code{
	color: var(--cus-inline-code-text);
}

效果如图：列表颜色恢复；代码块颜色仍是默认的黑色

感谢作者大大，已经完美解决了🤩再次感谢！


Minor blunder in the documentation of IndexRange.

I think that the lines in the example
for (idx in IndexRange(array)) { ... }
for (idx in IndexRange(array)) { ... }
should be something like
for (idx in IndexRange(array)) { ... }
for (idx in 0..Length(array)-1) { ... }
to actually show some relevant equivalence.

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

ID: 6e9ecdd0-7148-3c5c-dbaa-4622451e5222
Version Independent ID: bc9cffe4-9e42-c331-e8f0-fa5ed8a66cca
Content: IndexRange function - Q# reference - Microsoft Quantum
Content Source: api/qsharp/microsoft.quantum.arrays.indexrange.md
Product: qsharp
GitHub Login: @ricardo-espinoza

Thank you for reporting this! The PR with the fix is merged, so the fix should propagate to the website with the next release, some time next week.


Add plots of 10 first predictions in evalution

Add plots to evaluation script and look at the results between the truth and forecasts
Might be worth seeing the difference that #112 makes

Something like this, but would be good to get each forecast on its own plot
import pandas as pd
import plotly.graph_objects as go

df = pd.read_csv('results.csv')
df.set_index('timestamp',inplace=True)

# sort by timestamp
df.sort_index(inplace=True)

traces = []
traces.append(go.Scatter(x=df.index, y=df['forecast_power'],name='forecast'))
traces.append(go.Scatter(x=df.index, y=df['generation_power'], name='generation'))
fig = go.Figure(data=traces)

fig.show(renderer='browser')


JSON extra uses orjson instead of ujson

This is the minimum change to replace ujson. There are
additional calls to json.loads that may be modified.
The extra is renamed 'fast-json' to match 'email' and avoid further
changes.
#589

Looks good in principal,
Thoughts/questions:

should we make orjson a hard requirement rather than an optional requirement? Are there any environments where it won't work?
could we use orjson for model's .json() method? perhaps with a pretty kwarg which defaults to true and falls back to using standard json?
same for schema_json?

I'm guessing the date & datetime output format might change which could break things for lots of people. Is the performance improvement worth that?

orjson can be used to serialize as well (if not pretty-printing) but it requires outputting bytes instead of str and removing **dumps_kwargs (as incompatible between the two). I think these are both generally good changes whether orjson is used or not (bytes as it's a serialized blob and no pass-through kwargs to no leak json's details), but it's obviously breaking.
It looks like there's actually no difference in datetime output. datetime's isoformat output seems the same as RFC 3339 and pydantic's tests pass either way.
In terms of installing by default, the requirement in setup.py should be:
orjson>=2.0.6,<3;platform_python_implementation=="CPython" and platform_machine=="x86_64" and python_version<"3.8"
PyPy, ARM, and 3.8 could fall back to json. I think that would work fine. There are PyPI wheels for Linux, macOS, and Windows for 3.5, 3.6, and 3.7.

All makes sense to me.
Given that orjson doesn't work with some platforms, let's leave it as an optional dependency for now.
We should remove **dumps_kwargs, and instead have pretty=False (sorry for the mistake in my reply above). If pretty=True we should use json.dumps(..., indent=2).
I'm less sure about returning bytes vs. str - I understand there would be a performance improvement to using bytes, specially as in most contexts bytes will be required in the end.
But this would be a breaking change and very unnatural for lots of people who are used to json.dumps. What do other people think? @tiangolo @dmontagu

I mostly agree with @samuelcolvin, with the following caveats:

I think it might be nice to continue supporting fallback to json.dumps if other dumps_kwargs are used (since that allows things like custom encoders where necessary).
Whether returning bytes is supported or not, I don't think it should default to returning bytes -- that will be a source of pain for newcomers to the library and anyone with a more limited understanding of the difference in python (i.e., most python-as-a-second-language users). I think it could make sense to have a bytes argument to the .json function which defaults to False though.

Ok, well is there anything further that should be done as part of this PR?

Ok, well is there anything further that should be done as part of this PR?

Yes.
On the name of the optional dependency let's use "fast-json" that way:

it clearly demonstrates what it's for
it's not tied to a particular implementation

Let's change model.json() and model.schema_json() to use orjson if possible, as suggested above let's:

stick to returning str
remove dumps_kwargs and instead add pretty=False, if pretty=True we'd use json.dumps(..., indent=2)

Nice! I think it would be interesting to also support ORJSON.
Agree with you both. With the two concerns/caveats from @dmontagu .

I've renamed the extra to fast-json and rebased. I think the discussion has become about expanding the use of faster JSON library throughout the project, which is much larger. I only meant for this pull request to replace the existing usage of ujson with orjson

hi, I think it would be best that we fix everything at the same time on the same PR, would you be willing to implement the features requested above?

After further consideration, I have some other concerns about using orjson in pydantic:

The author of orjson, @ijl does not provide his name or any personal details on github, nor does he/she have a massive amount of github activity although the account has been active for years
@ijl privately emailed me asking me to integrate orjson into pydantic, I was surprised and somewhat worried by the hostile response I got when I made his/her request public
orjson is written in rust and distributed as a compiled binary meaning there's no way be sure what the package contains, or what is executed when you import/call it. In theory users could download the source, read the source, compile it themselves with the exact same setup then check the checksum - but I doubt anyone does that.

Individually all these things are fine and understandable but together they concern me.
Let me make it clear: I'm not accusing @ijl of anything, I'm 99% certain that his/her intentions are honourable.
However given all the pointers above, I can't help articles like this coming to mind.
I understand that (mostly through fastAPI) pydantic is used by some fairly big organisations, including Microsoft, making it a target for hackers. I don't want to be (inadvertently) responsible for a security breach, or do something which increases that possibility unduely.
I therefore won't be accepting this PR. Sorry.

I'm at a loss. That's an extravagant claim I would never have expected.

I think this decision needs to be reviewed. ujson's last release was 3.5 years ago. The fastest and better maintained python library is orjson right now. I think it would be quite beneficial to the community if there was a blessed way to use it on pydantic & FastAPI @samuelcolvin @tiangolo

I'd still be prepared to migrate to orjson but somehow my concerns above would need to be resolved.
@pablogamboa, other than a long delay since last release do you have any specific problems with ujson?

@samuelcolvin the biggest problem for me with ujson is that you cannot extend it and it has a so-or-so support for floats (you can see they have a few issues open around it).
orjson with its default hook solves the first issue. And then it has a very good support for floats and numbers. It has its own share of quirks, like the way they serialize utf-8 to bytes rather than escaped ASCII like other libraries, but I can live with them. The speed bump is definitely noticeable when you deal with large payloads!
I think that there's a very interesting synergy between the Rust and Python communities and that orjson is among the first packages that will dominate Python because of Rust's ridiculous performance.
Yes ilj is relatively unknown in the python community, but he's really onto something with orjson.

I 100% agree that orjson looks great, that's why I created #589. I'm also entirely with you on the synergy between rust and python; there was a great talk on this at euro-python this year from a core python maintainer.
If I was starting pydantic from scratch today I'd definitely use orjson.
However there's a higher threshold of confidence required to migrate to a package when it's already being downloaded 200k/mo. Many users don't have time to go through every dependency change in every package update, so they have to outsource that part of security to package maintainers and trust them to make sensible decisions.
I simply can't switch to orjson without some more openness from the maintainer or a (kind of hostile) fork which I'm not prepared to do.
In summary nothing has changed since my comment above, so neither has my decision.

Yep understood, I didn't ask you to switch tho! I asked for a blessed way to use it, i.e. make it somehow configurable to the user what json library to use. That'd be an amazing feature. For example Flask's JSONEncoder is great for an easy way to use a custom encoder in the framework (and my biggest grip with ujson!)

makes sense. That sounds like it might be possible. Perhaps using orjson if a specific environment variable is set?

An env variable would definitely work, another approach could be an api that allows you to override dumps/loads somehow. This would be a deadly addition! thanks for listening @samuelcolvin

makes more sense, perhaps we could have dump_json and load_json attributes of Config which are then used in parse_json(), json() and schema_json() (and anywhere else we use encode/decode json that I've forgotten about).


Add subscribe command to follow Secret Manager Event Notifications

This resolves #23.  That is, it enables near-realtime updates in the cluster when new secret versions are added by following
SECRET_VERSION_ADD messages under a new subscribe sub-command.
I've been running this in our development cluster for a couple of weeks now, and it seems to be working ok.
I've today added extra info to the docs and updated the  helm chart  today.

and checked the helm chart
~/src/go/gsm-controller/charts/gsm-controller (pubsub) % helm lint
==> Linting .
[WARNING] templates/cronjob.yaml: batch/v1beta1 CronJob is deprecated in v1.21+, unavailable in v1.25+; use batch/v1 CronJob

1 chart(s) linted, 0 chart(s) failed
~/src/go/gsm-controller/charts/gsm-controller (pubsub) % helm lint --set allNamespace=true
==> Linting .
[WARNING] templates/cronjob.yaml: batch/v1beta1 CronJob is deprecated in v1.21+, unavailable in v1.25+; use batch/v1 CronJob

1 chart(s) linted, 0 chart(s) failed
~/src/go/gsm-controller/charts/gsm-controller (pubsub) % helm lint --set deployment.pubsub.enabled=true
==> Linting .
[WARNING] templates/cronjob.yaml: batch/v1beta1 CronJob is deprecated in v1.21+, unavailable in v1.25+; use batch/v1 CronJob

1 chart(s) linted, 0 chart(s) failed

~/src/go/gsm-controller/charts/gsm-controller (pubsub) % helm template . --set projectID=fir-project-1fc35 --set deployment.pubsub.enabled=true --set deployment.pubsub.subscription=secrets.events  --set cron.schedule="23 */2 * * *"  | k apply -f -
role.rbac.authorization.k8s.io/release-name-gsm-controller unchanged
rolebinding.rbac.authorization.k8s.io/release-name-gsm-controller unchanged
deployment.apps/release-name-gsm-controller configured
Warning: batch/v1beta1 CronJob is deprecated in v1.21+, unavailable in v1.25+; use batch/v1 CronJob
cronjob.batch/release-name-gsm-controller configured

There's also an update to the helm chart to allow adding the --all-namespaces flag with helm install --set allNamespaces=true

/ok-to-test

The link to the run details is behind an authentication prompt

link

I wasn't able to find any mention of that on the contributing page .
Any idea why it's failing?

It didn't start at all du to too high resource request. See https://jenkins-x.io/blog/2022/04/22/kubernetes-1.22-tekton/

The reason I haven't merged this is that the release pipeline didn't go through. I have fixed the changelog step, but then the release binary step failed. As far as I can see that step is superfluous; I don't see any point at generating any artifacts other than the image and chart. So I have now removed that.
I say we first get the go upgrade done and then merge this.

Resolved!