Editor scrolljump when pasting a link

When pasting a URL over the top of highlighted text to create a link, the editor scroll position jumps by a large amount, which can be very disorienting.
Example in Chrome 70, Ghost on latest Pro:

Not stale

Still not stale

Couldn't reproduce this. Is this one fixed?


[MNT] Set the app version to 0.1.0 in package.json

Closes #42

Checklist
This section is for the PR reviewer

[x] PR has an interpretable title with a prefix ([ENH], [FIX], [REF], [TST], [CI], [MNT], [INF], [MODEL], [DOC]) (see our Contributing Guidelines for more info)
[x] PR has a label for the release changelog or skip-release (to be applied by maintainers only)
[x] PR links to GitHub issue with mention Closes #XXXX
[x] Tests pass
[x] Checks pass

For new features:

[ ] Tests have been added

For bug fixes:

[ ] There is at least one test that would fail under the original bug conditions.

Release Notes
The first release of the tool refactored and reimplemented in React and TypeScript.

:rocket: PR was released in v0.1.0 :rocket:


There is on TNC_CreateRBColormap

There is on TNC_CreateRBColormap，which is important

Just pushed a dependencies directory that contains this file. Sorry about that.


Hot and cold MouseEvents?

Is my understanding correct in that there is not currently a cold-key like behaviour for mouse events? I see here that it's apparently been considered but not yet implemented for having them being bubbled up if the mouse event is not handled (returns false):
https://github.com/migueldeicaza/gui.cs/blob/52a5fccdc412367405790dd811ebf5410c1c9a39/Terminal.Gui/Core/Application.cs#L591
If so, you might ask why I want such a thing, so here I'll try to explain:
class TerminalTextView : TextView
{
    // ProcessHotMouseEvent does not yet exist, but to express the idea:
    public override bool ProcessHotMouseEvent(MouseEvent mouseEvent)
    {
        // right click
        if(mouseEvent.Flags == MouseFlags.Button3Pressed)
        {
            if (HasFocus && Selecting)
            {
                Copy();
                Selecting = false;
            }
            else
            {
                return false; // handle paste in InputTerminalTextView coldkey
            }
        }
        return base.OnMouseEvent(mouseEvent);
    }
}

class InputTerminalTextView: TerminalTextView
{
    // ProcessColdMouseEvent does not yet exist, but to express the idea:
    public override bool ProcessColdMouseEvent(MouseEvent mouseEvent)
    {
        // right click
        if(mouseEvent.Flags == MouseFlags.Button3Pressed)
        {
            SetFocus();
            Paste();
            return true;
        }
        return base.ProcessColdMouseEvent(mouseEvent);
    }
}

So what I'd be trying to accomplish here is right click copy + paste (like in a terminal).
The user would be able to select text in another (readonly) textview, right click anywhere to copy selected (assuming ProcessHotMouseEvent would occur before changing View's focus), and then right clicking again (i.e. without anything selected) would paste it into the InputTerminalTextView.
This is probably quite a niche use-case so it might not be worth a change to core repo.
FWIW I'm not entirely sure if this idea requires such functionality and maybe there's another way of doing it, it's just the first to come to mind since I'm already doing a similar thing with the hotkey/coldkeys.
But I thought I'd mention the idea since I noticed that little note in the code, so maybe it's sort of considerable?
IDK, please correct me if I'm off here - and please if any suggestions on a alternative solution to getting this idea working would be greatly appreciated.
PS: Just want to thank again for all of the time and effort in making this project, I really appreciate it, and all the fantastic help I've received getting started on my idea. :)

I think for what you need, the MouseEvent is enough, you only need to deal with the MouseEvent flags. Only the view that has the mouse pointing, will receive the event. With keys, you need the extra hot and cold events because the event can be propagate to other views if the focused view return false.
Only an advise. If you handles a mouse event and don't want it propagate to other views, besides return true you must not use the return base.MouseEvent, unless it is even necessary to return control to another view.

What about Application.RootMouseEvent? that should pick up 'right click anywhere'

What about Application.RootMouseEvent? that should pick up 'right click anywhere'

You are right, it's independent from view. But, why not use the Button3Pressed for copying and the Button3Released for pasting?

I think he wants to be able to track right clicking anywhere in his application and have that trigger the copy/paste kind of like how in powershell after dragging a selection the first right click will copy it and the second (and any subsequent right clicks) will paste.

Ah, sorry to both. So, in that case the Application.RootMouseEvent will be suffice, I think.

What about Application.RootMouseEvent? that should pick up 'right click anywhere'

So, in that case the Application.RootMouseEvent will be suffice, I think.

Thanks! This is just what I needed, here is a code sample displaying use:
Application.RootMouseEvent = (MouseEvent moueEvent) =>
{
    if (moueEvent.Flags != MouseFlags.Button3Pressed)
        return;

    var currentView = Application.Top.MostFocused;
    if (currentView is TextView textView)
    {
        if (textView.Selecting)
        {
            textView.Copy();
            textView.Selecting = false;
        }
        else
        {
            if(currentView != inputTextView)
                inputTextView.SetFocus();
            inputTextView.Paste();
        }
    }
};

Good stuff. Closing.


feat: add support for temp spike TP96x

I could not actually figure out the format before the battery died and the user who loaned me the device didn't send the charger so probably going to have to leave this as help-wanted

Hey @bdraco, I have had some success with reverse engineering my TP962R by writing some basic scripts using the bleak library.  But I'm not quite sure how to translate what I've found to the way this library works.  Hopefully this info will be helpful to you.
I am using the example code from here to parse notifications from a characteristic of the device.  In this case the characteristic I'm using has ID: 0000ff01-0000-1000-8000-00805f9b34fb which is under a service with the ID 93bb7cab-eb14-c5a9-2354-a24f4df9330f.  Here's where I found those IDs:
 venv/bin/python service_explorer.py --name TP962R
2024-01-15 19:13:18,249 __main__ INFO: starting scan...
2024-01-15 19:13:19,576 __main__ INFO: connecting to device...
2024-01-15 19:13:25,186 __main__ INFO: connected
2024-01-15 19:13:25,186 __main__ INFO: [Service] 00001801-0000-1000-8000-00805f9b34fb (Handle: 1): Generic Attribute Profile
2024-01-15 19:13:25,785 __main__ INFO:   [Characteristic] 00002b29-0000-1000-8000-00805f9b34fb (Handle: 7): Client Supported Features (read,write), Value: bytearray(b'\x01')
2024-01-15 19:13:25,785 __main__ INFO:   [Characteristic] 00002a05-0000-1000-8000-00805f9b34fb (Handle: 2): Service Changed (indicate)
2024-01-15 19:13:25,904 __main__ INFO:     [Descriptor] 00002902-0000-1000-8000-00805f9b34fb (Handle: 4): Client Characteristic Configuration, Value: bytearray(b'\x02\x00')
2024-01-15 19:13:26,025 __main__ INFO:   [Characteristic] 00002b2a-0000-1000-8000-00805f9b34fb (Handle: 5): Database Hash (read), Value: bytearray(b'\xb8I\xe4\xf0lD\xab\x96\xb9\x1aE\x10\xe4\x83\xa7R')
2024-01-15 19:13:26,025 __main__ INFO: [Service] 1d14d6ee-fd63-4fa1-bfa4-8f47b42119f0 (Handle: 27): Unknown
2024-01-15 19:13:26,025 __main__ INFO:   [Characteristic] f7bf3564-fb6d-4e53-88a4-5e37e0326063 (Handle: 28): Unknown (write)
2024-01-15 19:13:26,025 __main__ INFO: [Service] 93bb7cab-eb14-c5a9-2354-a24f4df9330f (Handle: 19): Unknown
2024-01-15 19:13:26,025 __main__ INFO:   [Characteristic] 0000ff01-0000-1000-8000-00805f9b34fb (Handle: 20): Vendor specific (notify)
2024-01-15 19:13:26,145 __main__ INFO:     [Descriptor] 00002902-0000-1000-8000-00805f9b34fb (Handle: 22): Client Characteristic Configuration, Value: bytearray(b'\x00\x00')
2024-01-15 19:13:26,145 __main__ INFO:   [Characteristic] 0000ff02-0000-1000-8000-00805f9b34fb (Handle: 23): Vendor specific (write-without-response,write)
2024-01-15 19:13:26,264 __main__ INFO:   [Characteristic] 0000ff03-0000-1000-8000-00805f9b34fb (Handle: 25): Vendor specific (read), Value: bytearray(b'V1.2.6')
2024-01-15 19:13:26,264 __main__ INFO: [Service] 0000180a-0000-1000-8000-00805f9b34fb (Handle: 14): Device Information
2024-01-15 19:13:26,385 __main__ INFO:   [Characteristic] 00002a29-0000-1000-8000-00805f9b34fb (Handle: 15): Manufacturer Name String (read), Value: bytearray(b'Hoperf')
2024-01-15 19:13:26,504 __main__ INFO:   [Characteristic] 00002a23-0000-1000-8000-00805f9b34fb (Handle: 17): System ID (read), Value: bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')
2024-01-15 19:13:26,504 __main__ INFO: disconnecting...
2024-01-15 19:13:28,903 __main__ INFO: disconnected

When I read those notifications, I get data such as the following:
b'\x10\x01:\x00\xc5\n:\x00'
Here's what I've been able to interpret from these:

Byte Index
Example Value (Dec)
Algorithm
Meaning

0
16
NA
Type: 16=Temp/Battery Update, 18=Probe Removed from Charger

1
1
NA
Probe Index (0=Black, 1=White)

2
58
N-30
Meat Temperature in Celsius (-30 to allow for negative values in an unsigned int)

3
197
?
No idea, this appears to be a countdown timer that resets when it nears zero

4
10
(N-1)*10
I think this is battery life of the probe

5
58
N-30
Ambient Temperature in Celsius (-30 to allow for negative values in an unsigned int)

For the battery byte, I'm not 100% certain yet.  That value is always 11 when the probe is freshly removed with a full charge.  Within about 30 seconds or so it drops to 10, and then it has stayed there now for a good 30 minutes.  I will leave the probe off the charger all night to see if the value decreases towards 1 as I would expect from my guess at the algorithm.
I'd love to try testing this with something closer to the way the official library works than what I'm doing with bleak but I have no idea how to set up a proper dev environment.  Is there an easy way to dump BluetoothServiceInfo objects from a real device to create proper unit tests?
I'd love to help do the work here and send you a pull request, but I'm a little lost on how to test my code.
Thanks in advance for any help!

Update to my earlier findings.  The first two values are always unsigned chars (1 byte) for event_type and probe_index.
The event types are:
16 = Probe temperature/battery update
<BBHHH => event_type, probe_index, meat_temp, battery, ambient_temp
The meat_temp and ambient_temp need -30 applied to get temperature in Celsius
I'm still investigating the battery value, so far it appears to have topped out around 2845.  I'm going to leave one probe on the charger and one off overnight to try to find min/max.
18 = Probe is activated, i.e. removed from the charger
<BB => event_type, probe_index
23 = Probe charging state change
<BBB => event_type, probe_index, charging_state (0=Not Charging, 1=Charging)
Here's my quick and dirty bleak code:
def notification_handler(characteristic: BleakGATTCharacteristic, data: bytearray):
    event_type = data[0]
    if len(data) > 1:
        probe_index = data[1]
    else:
        probe_index = None

    if event_type == 16:
        # Temperature/Battery Update
        meat, battery, ambient = unpack('<HHH', data[2:])
        meat_c = meat - 30
        ambient_c = ambient - 30
        logger.info(f"Probe {probe_index} status update: Meat: {meat_c} Ambient: {ambient_c} Battery: {battery}")
    elif event_type == 18:
        logger.info(f"Probe {probe_index} is active")
    elif event_type == 23:
        # Charging status change
        charging_state = data[2]
        friendly = "charging" if charging_state else "not charging"
        logger.info(f"Probe {probe_index} charging state: {charging_state} ({friendly})")
    else:
        logger.info(f"Probe {probe_index} event_type={event_type}: '{data[2:]}'")
    return

I'm on my phone, so I'll be brief, but if you put the device near Home Assistant and turn on debug logging for  homeassistant.components.bluetooth using the logger.set_level service in the developer tools you should get a stream of advertising data in the log which is how this library is fed data

I'm on my phone, so I'll be brief, but if you put the device near Home Assistant and turn on debug logging for homeassistant.components.bluetooth using the logger.set_level service in the developer tools you should get a stream of advertising data in the log which is how this library is fed data

Thanks @bdraco !  That seems to be pointing me in the right direction.  I think I might still be missing something because I think I have to somehow get it to subscribe to a notification on a characteristic.  Not sure if I'm using the right terminology there.
In the HA logs, I don't see the ID for the characteristic I set up a notification handler for in my bleak code, and I also don't see the byte sequences that I've been parsing show up in there anywhere.
I do see similar IDs, but not the same one.  I'll take another look at the debug logs tomorrow and see if I can glean some information from it.
Thanks again for your help!

Hey @bdraco, it looks like the Temp Spike implementation may have to be significantly different than prior Thermo Pro devices, and I'm not sure how it can be implemented with the tools in homeassistant.components.bluetooth.
I've been reading through the HA Developers documentation, and searching the source code of that component, and I don't see any equivalent to the Bleak library's start_notify functionality.  Is this something I'm missing and you can point me to?  Or is this not yet implemented in the HA bluetooth libraries?
If it's not yet implemented, would it be okay to create a custom component for this integration that uses the Bleak library to do the work?  I see there is a shared BleakScanner instance that I could get access to.
Any guidance you can share would be greatly appreciated.

The library only reads the advertisements passively.  We try not to make active connections because they are a limited resource and usually only required by devices that need to be controlled

Thank you for the clarification @bdraco.  Hopefully it's possible to get the needed data from the advertisements passively, but I suspect it may not be.
  The values I get from getting notifications on that characteristic show clear correlations with the values on the probe, but I see no such correlations within the advertisements.  Maybe you'll see a pattern that I do not?

It would help to know the mac address so I can see which one is your TP962R?

Hey @bdraco , thanks for being patient with me while I'm still learning.  The log entries I sent before are for completely different devices so they're irrelevant.
I finally managed to reverse engineer the advertisements, using a combination of the logging data you showed me how to get, and a bleak script I wrote for analyzing them in realtime.

These need to be unpacked with "<HB" on data[1:4].  This will give you only two data points:

index 0: The battery level of a probe.  Max on my device appears to be about 2880.  Minimum TBD
index 1: The ambient temperature of a probe in Celsius with a 30 degree offset (temp_c = val[1] - 30)

Unfortunately, this data has very limited utility...
There's no probe index, so no way of knowing which probe you're getting a reading from on the dual probe setup like my TP962R.  If I have both probes deployed, the temperature and battery levels would flip-flop between the two devices.
And more importantly: there's not even a reading for the meat part of the probe.  Given that most folks are going to want to use this for cooking, I'm not sure how useful just having the ambient temperature will be.
I'm rather confident that I could finish the PR for this so it could at least use what data is available for advertisements on the TP96x models, and I plan to do that soonish.
I'm assuming I could still write a custom component that used notifications to get the full data, and if folks chose to install that integration it wouldn't conflict with the official one.  Is that correct?

It looks like they might be abusing the manufacturer data field a bit.  I'm working on support for a scale that does the same thing.  You can reassemble it like this:
https://github.com/Bluetooth-Devices/xiaogui-ble/blob/ec9388c569379c89811731d47e75808fabf1638e/src/xiaogui_ble/parser.py#L80

Wow, thank you!   That was exactly it!  With that addition, the data can be decoded with "<BHHH" yielding:
0: probe_index
1: meat_val (subtract 30 for c)
2: battery (max 2880, min TBD)
3: amb_val (subtract 30 for c)

Would you mind telling me if I'm on the right track here?
https://github.com/h3ss/thermopro-ble/tree/temp_spike_h3ss
I have implemented both the internal & ambient temperatures, but I don't know if changing the key will cause problems.  The tests pass after correcting a few values.
For implementing the dual probe models like mine, would it make more sense to change the value passed in self.set_title and self.set_device_name (for example affix "_0" or "_1" to name)?  Or should I affix the index or color to the sensor's key and name?  i.e. Should it be treated as two devices, or a single device with two sets of sensors and batteries?  I think the former makes more sense.

It would be a lot easier to give you feedback if you open to PR with your branch

Good timing as the battery charger for the device I'm borrowing showed up today so I can test with the live device now

Nice!  I am curious what your battery readings will look like on your TP960R.  I'm still trying to drain the battery on one of my probes and it's only down to 2315 after a couple of days running.  The reading from your sample in the tests file was 2092, and I'm not sure my device will even get that low.  At 2315 the device displays no bars in the battery indicator.

There is no battery indicator on the device itself. I'll check the app and see

This is what I get in HA now

You'll need
diff --git a/homeassistant/components/thermopro/manifest.json b/homeassistant/components/thermopro/manifest.json
index a0a07d3cb00..78486a878f6 100644
--- a/homeassistant/components/thermopro/manifest.json
+++ b/homeassistant/components/thermopro/manifest.json
@@ -9,6 +9,10 @@
     {
       "local_name": "TP39*",
       "connectable": false
+    },
+    {
+      "local_name": "TP96*",
+      "connectable": false
     }
   ],
   "codeowners": ["@bdraco"],
diff --git a/homeassistant/components/thermopro/sensor.py b/homeassistant/components/thermopro/sensor.py
index 107385615f8..24a4e58f8fc 100644
--- a/homeassistant/components/thermopro/sensor.py
+++ b/homeassistant/components/thermopro/sensor.py
@@ -59,6 +59,15 @@ SENSOR_DESCRIPTIONS = {
         state_class=SensorStateClass.MEASUREMENT,
         entity_registry_enabled_default=False,
     ),
+    (
+        ThermoProSensorDeviceClass.BATTERY,
+        Units.PERCENTAGE,
+    ): SensorEntityDescription(
+        key=f"{ThermoProSensorDeviceClass.BATTERY}_{Units.PERCENTAGE}",
+        device_class=SensorDeviceClass.BATTERY,
+        native_unit_of_measurement=PERCENTAGE,
+        state_class=SensorStateClass.MEASUREMENT,
+    ),
 }

The app has the battery icon for the base as well .. I wonder if thats in the adv

at first glance it doesn't look like its available

If the dual probe looks good in HA for you with this PR as-is, I think we can merge it and do a release

Hey @bdraco , I tried your test procedure but I'm not seeing the integration show up in HASS.  I made the edits you described to manifest.json and sensor.py.  I also installed this branch from git with:
pip install git+https://github.com/Bluetooth-Devices/thermopro-ble.git@temp_spike

I even tested from a python prompt in my venv importing thermopro_ble.parser to make sure it had the new content:
>>> import thermopro_ble.parser
>>> dir(thermopro_ble.parser)
['BATTERY_VALUE_TO_LEVEL', 'BluetoothData', 'BluetoothServiceInfo', 'SensorLibrary', 'Struct', 'TP96_MAX_BAT', 'TP96_MIN_BAT', 'ThermoProBluetoothDeviceData', 'UNPACK_SPIKE_TEMP', 'UNPACK_TEMP_HUMID', '_LOGGER', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'annotations', 'logging', 'short_address']

I then start HASS with:
hass -c config

But no integration for this shows up.
If I enable debug logging for the Bluetooth integration, I still see the advertisements in the logs:
2024-01-18 13:19:20.381 DEBUG (MainThread) [homeassistant.components.bluetooth.manager] hci0 (BC:F4:D4:40:B6:98) [connectable]: 38:39:8F:CC:D6:1F AdvertisementData(local_name='TP962R', manufacturer_data={12544: b'\x00\x17\t6\x00', 12288: b'\x00\x17\t5\x00', 12032: b'\x00\x18\t4\x00', 12800: b'\x00\x17\t6\x00', 13056: b'\x00\x17\t6\x00', 13312: b'\x00\x16\t6\x00', 13568: b'\x00\x16\t5\x00', 13824: b'\x00\x16\t6\x00', 14080: b'\x00\x17\t7\x00', 14336: b'\x00\x16\t8\x00', 14592: b'\x00\x15\t9\x00', 15104: b'\x00\x15\t9\x00', 15360: b'\x00\x15\t9\x00', 14848: b'\x00\x14\t8\x00', 15616: b'\x00\x14\t:\x00', 15872: b'\x00\x14\t<\x00', 16128: b'\x00\x12\t?\x00', 16384: b'\x00\x13\t>\x00', 16896: b'\x00\x11\t>\x00', 17152: b'\x00\x12\t>\x00', 17408: b'\x00\x12\t>\x00', 17664: b'\x00\x11\t>\x00', 17920: b'\x00\x10\t>\x00', 18176: b'\x00\x10\t>\x00', 18432: b'\x00\x0f\t>\x00', 18688: b'\x00\x0e\t>\x00', 18944: b'\x00\r\t>\x00', 19200: b'\x00\x0c\t?\x00', 19456: b'\x00\x0c\t?\x00'}, service_uuids=['72fbb631-6f6b-d1ba-db55-2ee6fdd942bd'], rssi=-43) match: set()

I really want to test this, do you see anything obvious that I'm missing?

You need to run hassfest to rebuild the generated discovery files or install as a custom component

I'll merge this and do a release and open an HA PR and give you a one liner to install
If there are any more changes we need to make, we can do a followup release

You need to run hassfest to rebuild the generated discovery files or install as a custom component

That was it!  I just had to run this before running hass -c config:
python3 -m script.hassfest

You can also install the draft PR I opened on HA as a CC
https://github.com/home-assistant/core/pull/108319#issuecomment-1899202685

Here's the TP962R with only the black probe deployed:

And then when I take the other out of the dock, it updates to:

Looks great!  But I do have recommendations with the battery:

Fresh out of the charger sometimes the value exceeds 2880, I've seen as high as 2886.  This made the battery show at 101%.  Maybe we should either nudge the constant up to 2890, or clamp the max at 1.0 when passing the value
The min value of 1600 was a rough guess.  At this point I highly doubt the value goes under 2000.  It also doesn't appear to be a linear function.  We might want to raise the min value to 2000, or we could wait till my probe dies and I'll tell you the exact value.  I really hope it doesn't differ by model...

You can also install the draft PR I opened on HA as a CC
home-assistant/core#108319 (comment)

Thanks!   I'll merge it and do another release

Done, thanks!


Externalize call site macro

Externalize call site macro to a project named callsite

Done here https://github.com/UNIVALENCE/cause-toujours


BetterAnimations

BetterAnimations
An error was encountered while trying to load this plugin.

Download the latest version
https://arg0nny.github.io/bd/download/?id=BetterAnimations


Can't set x_receipt_link_URL (should be returnUrl)

Further to #16 where the code change was made to set the x_relay_url from the notifyUrl instead of the returnUrl, a method needs to be in place to set the x_receipt_link_URL which is in effect the returnUrl for the SIM gateway.
This is a non-BC change for anyone who's currently using the returnUrl to set the x_relay_url.
References:
https://www.authorize.net/support/CNP/helpfiles/Account/Settings/Transaction_Format_Settings/Transaction_Response_Settings/Response_Receipt_URLs.htm
https://support.authorize.net/authkb/index?page=content&id=A587&actp=LIST

x_receipt_link_URL -- set to the URL where the customer should be sent after submitting payment. Parameterized URLs are not permitted.

https://support.authorize.net/authkb/index?page=content&id=A558
https://www.authorize.net/support/CNP/helpfiles/Account/Settings/Transaction_Format_Settings/Transaction_Response_Settings/Relay_Response.htm

Hrm, as per:
https://community.developer.authorize.net/t5/Integration-and-Testing/Return-url-after-payment/td-p/18552

It actually is not possible to use both a receipt link and a relay response URL, it is one or the other.

Relay Response is used if you would like to generate the receipt page that is displayed to the customer.  When using Relay Response, Authorize.Net posts the transaction results to your page and then "relays" the resulting content of that page to the customer.  It is expected that the customer will still see the Authorize.Net URL at the top of the page when they are viewing this receipt, although any links on the page should work as normal and take them away from Authorize.Net.  The page is designed to work this way in case you do not have an SSL on your own website.  If you tried to display the receipt directly to the customer from a site without SSL, it would result in security warnings popping up in the customer's browser between the time that they submit their card information and the timet hat they see the transaction results.

This is really limiting. You can have a returnUrl or a notifyUrl but not both.

The notify page can use a JavaScript redirect that gets around the SSL issue. There is an example of this in the SIM complete response message

We have thousands of deleted-and-replaced transactions in the system now, built up over the last two weeks. We should probably do a clean to remove those that are truly not changed, as they are just going to clog things up.

Do the above 2 comments relate to this issue somehow or were they added in error?  What do you mean by "thousands of deleted-and-replaced transactions in the system" and what has it to do with the use of notifyUrl / returnUrl?

Bugger. Too many git issues windows open.

@delatbabel Quick question: does the receipt method also go along with the receipt URL? It seems that if we have the URL, then we should probably also need to be able to tell the gateway how to use that URL.


Provide example code for password input

Motivation:
The code in the GIF on the website didn't work for me - it mapped over the string giving me compile errors that it wanted String not Char.

stdin is supposed to return a String already. Are you sure you're not using an outdated Almond version? It's been a String for quite some time now.


Outdated cask: tower

Outdated cask: tower.
Info:

version: 2.5.1-329-2d945c27.
appcast url: https://updates.fournova.com/updates/tower2-mac/stable.

Please do not run find_outdated_appcasts unless you are a maintainer.


role board link

This link takes you off site. Is it possible to display an icon (e.g. https://icons8.com/icons/set/external-link) to denote that it's an external link?

/remove-lifecycle stale


Possibly add ComposeT

John Wiegley suggested a higher-order version of Data.Functor.Compose for mmorph.  I'm pasting the code that he e-mailed me here so other people can comment on it:
   newtype ComposeT (f :: (* -> *) -> * -> *) (g :: (* -> *) -> * -> *) m a
        = ComposeT { getComposeT :: f (g m) a }
        deriving (Functor, Applicative, Monad, MonadIO)

    instance (MFunctor f, MonadTrans f, MonadTrans g)
             => MonadTrans (ComposeT f g) where
        lift = ComposeT . hoist lift . lift

    instance (MonadIO (f (g m)), Applicative (f (g m)))
             => MonadBase IO (ComposeT f g m) where
        liftBase = liftIO

    instance (Applicative (f (g m)), MonadBaseControl IO (f (g m)),
              MonadIO (f (g m)))
             => MonadBaseControl IO (ComposeT f g m) where
        newtype StM (ComposeT f g m) a = StMComposeT (StM (f (g m)) a)
        liftBaseWith f =
            ComposeT $ liftBaseWith $ \runInBase -> f $ \k ->
                liftM StMComposeT $ runInBase $ getComposeT k
        restoreM (StMComposeT m) = ComposeT . restoreM $ m

I probably wouldn't do MonadBaseControl or MonadBase instances, but the other instances seem really useful.  I also wonder if ComposeT can be made an instance of MMonad.

Apologies for reviving an ancient issue, but I took notice of your comment:

It is kind of lame that there is no easy way to indicate a constraint like forall m . (Monad m) => Monad (g m).

This is actually possible using the upcoming QuantifiedContexts GHC extension! This typechecks using this GHC branch:
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE RankNTypes #-}
module Foo where

import Control.Monad.Trans.Class

newtype ComposeT (f :: (* -> *) -> * -> *) (g :: (* -> *) -> * -> *) m a
  = ComposeT { getComposeT :: f (g m) a }
  deriving (Functor, Applicative, Monad)

class MFunctor t where
    hoist :: (Monad m) => (forall a . m a -> n a) -> t m b -> t n b

instance (MFunctor f, MFunctor g, forall m. Monad m => Monad (g m))
    => MFunctor (ComposeT f g) where
  hoist f (ComposeT m) = ComposeT (hoist (hoist f) m)

Moreover, you can use QuantifiedConstraints to write a much cleaner MonadTrans instance for ComposeT:
instance (MonadTrans f, MonadTrans g, forall m. Monad m => Monad (g m))
    => MonadTrans (ComposeT f g) where
  lift = ComposeT . lift . lift

Something to look forward to. (In GHC 8.6?)

GHC 8.6 is here, along with Quantified Constraints. I'd be interested in the automatic instances and can do any grunt work needed.

@baskaransri: Yeah, go for it! 🙂

Questions:

Would you want the cleaner MonadTrans instance as well as the MFunctor instance?
(the cleaner MonadTrans instance above replaces the MFunctor constraint on f with the forall constraint)
Would this require a major version bump or a minor version bump?

@baskaransri: Yes, I would prefer the cleaner MonadTrans instance, and that would require a major version bump but I would be okay with that.

I'm jumping into this discussion somewhat late, but what is the backwards compatibility story here? #39, as it currently stands, won't work on any version of GHC but 8.6 or later, which seems unfortunate. I can see two ways around this:

Use CPP such that the QuantifiedConstraints type signature is used on GHC 8.6 or later, but fall back on the original MFunctor type signature on older GHCs. This does have the disadvantage that API would be completely different depending on which version of GHC you're using.
Provide a copy of Control.Monad.Trans.Compose (with a slightly different name) that uses QuantifiedConstraints in its MonadTrans/MFunctor instances, and only export that module on GHC 8.6 or later.

I'd personally lean towards option 2, although I'm not a maintainer of this package—I'm just some schmuck on the Internet :)

Alternatively, we could stick with the older Compose instance and move the newer instance to a separate package that is more appropriate.  If I remember correctly, the main reason that ComposeT was in this package was because it relied on the MFunctor constraint to work, but if it doesn't use MFunctor then maybe the new version using quantified constraints should reside in a different package


Crashes after enabling an aura

Describe the bug
I installed the mod and then set up an Aura of Protection for our paladin to add +Cha mod to everyone's saves (as described in the Active Auras readme). That seemed to work.
I then enabled a TokenMagic effect. I chose "save roll" in the list (I didn't know what it was). Turns out, is was very goofy animation that I wouldn't want to use.
After moving the paladin around a few spaces to see that the animation was running on allies, I went to change the TokenMagic effect. When I tried to open the Effects pane, Foundry hard crashed (I lost my connection to the server, and had to relaunch the game).
After that, every time I launched the game and logged into it with my Gamemaster user, Foundry would crash after a few seconds in the same way, even if I didn't move.  I tried removing the Aura of Protection effect entirely, but it STILL crashed after a few seconds even without the effect.
To Reproduce
I don't have a reliable, consistent repro at this time. (I am having separate(?) performance issues logging into the game in the first place, so I didn't want to spend time on that.)
Expected behavior
Active Auras should not cause performance issues or crashes.
Environment:

OS: Ubuntu
Browser Brave
Foundry Version 0.8.8
Module Version 0.3.05
All Modules Disabled: No
Module List if no:

(plus Active Auras, which I just removed)
About Time v1.0.4;
Active Token Lighting v0.2.16;
Ambient Doors v2.2.5;
Arbron's Compendium Tools v0.4.3;
Arbron's Context Menu Library v0.2.1;
Arbron’s Improved HP Bar v2.0.4;
Automated Animations v0.5.28;
Automatic Journal Icon Numbers vv1.3.3;
Better Ambient Loop by Blitz v<IP_ADDRESS>;
Better Rolls for 5e v1.6.8;
Better Text Drawings v<IP_ADDRESS>;
Cautious Gamemaster's Pack v0.2.10;
Character Actions List dnd5e v4.1.0;
Combat Enhancements v1.0.2;
Combat Utility Belt v1.6.1;
Compact DnDBeyond 5e Character Sheet v0.17.0;
Compendium Browser v0.5.0;
Compendium Folders v2.3.5;
Conditions for D&D 5e v0.4.10;
Context Convenience v2.0.0;
DFreds Convenient Effects v1.8.6;
DFreds Droppables v1.2.8;
DF Settings Clarity v3.2.1;
Disable Mouse Wheel Control for Sliders v1.1.5;
DNDBeyond NPC Sheet v1.3.3;
Dynamic Active Effects SRD v6.0.01;
Dynamic effects using Active Effects v0.8.43;
FXMaster v1.2.1;
GM Notes v0.4.1;
Health Estimate v<IP_ADDRESS>;
Illandril's Token HUD scaler v1.4.2;
Initiative Double Click v1.0;
JB2A - Patreon Complete Collection v0.2.0;
Keybind Lib v0.3.2;
Legendary Training Wheels v0.2.0;
Less Fog v0.8.5;
lib - Color Settings v2.6.1;
Library: Chat Commands v1.3.3;
libWrapper v<IP_ADDRESS>;
Magic Items v2.1.2;
Mag Roader's Journal Sorting v1.1.0;
Monk's Little Details v1.0.35;
Monk's TokenBar v1.0.49;
Move Audio Controls v0.2.0;
Multilevel Tokens v1.5.2;
Nap Time (5E) v0.1.1;
Narrator Tools v0.61;
Navbar Tweaks v<IP_ADDRESS>;
Next Up v0.1.08;
OneJournal v1.5.1;
Perfect Vision v2.8.1;
Permission Viewer v0.8.9;
Pings v1.2.12+0.8.6;
Playlist Importer v1.7.0;
Quick Insert - Search Widget v2.4.7;
Quick Status Select v1.7.0;
Scene Transitions v0.1.3;
Selective Show v1.2;
Sequencer v0.6.4;
Settings Extender v1.1.6+0.8.6;
Short Rest Recovery for 5E v0.4.2;
Show Art v1.1.4;
Show Drag Distance v2.2.3;
Show Notes v0.5;
Simple Calendar vv1.3.28;
Skill Customization for D&D5e v2.3.0;
socketlib v1.0.8;
Split Journal v1.1;
Tidy UI - Game Settings v0.1.24;
times-up v0.8.12;
Token Auras v1.14;
Token HUD Wildcard v1.4.0;
Token Info Icons v2.3.2;
Token Magic FX v<IP_ADDRESS>;
Wall Cutter v1.1.1;
Zoom/Pan Options v1.6.5;

Ive removed a copyright infringing module from your list, and I cant look into this further untill you can confirm either console errors, reproduction steps or replicate with only AA + depenacies active


Move guidelines for builder tools and showcase into docs

Checklist

[x] I have read the How to Contribute.
[x] I have run yarn build after adding my changes without getting any errors.

Updating documentation

Move guidelines for builder tools and showcase into the docs/portal-contribute and link from the comments
Add a sentence about adding NFT projects like mentioned in #1012

I didn't find a good way to add relative links to the comment section so please note that these link will only work after the PR is merged into main:
https://developers.cardano.org/docs/portal-contribute#add-tools-to-builder-tools
https://developers.cardano.org/docs/portal-contribute#add-a-project-to-showcase

Thanks for the suggestions @rphair. 🙏🏻


any plans to support export to .json?

it would be really nice to be able to work directly with .tmx files and be able to export them to json programmatically rather than having to do it from the tile gui.

why not just call JSON.stringify() on the result that this module gives you?

I tried that. It gives an error about not being able to stringify an object with cyclic dependencies.

I think I'm going to say "no" to this feature request. Export json from tiled or remove the cyclic dependencies from tmx parser output.


GitHub access method for blueprints and component descriptors

Currently it is only possible to use blueprints defined inline or in an oci registry.
Also a component descriptor can only be referenced using a ociregistry.
OCI Artifacts should be definitely used for production deployments, but for simple application or tests it should be possible to read blueprints and component descriptors from a github repository.
Blueprints:
to access blueprints from github the proposed implementation would be another component descriptor access type.
resources:
- type: blueprint
  access:
    type: github
    repository: github.com/my-org/my-repo
    revision: sha or tag or branch
    path: /path/to/blueprint

@In-Ko closed because outdated and/or copied into internal project


Add rule no-useless-snippet

Motivation
Any content inside a component tag becomes the children snippet. Thus, If you have a component with a children snippet without parameters, that's unnecessary.
Description
I'd like to add a rule that bans the children snippet if it has no parameters
Examples
<script>
</script>

<!-- ✓ GOOD -->
<Foo>
  {#snippet bar()}
    Hello
  {/snippet}
</Foo>

<Foo>
  {#snippet children(val)}
    Hello {val}
  {/snippet}
</Foo>

<Foo>
  Hello
</Foo>

<!-- ✗ BAD -->
<Foo>
  {#snippet children()}
    Hello
  {/snippet}
</Foo>

Additional comments
No response

Thank you for proposing the rule. SGTM!
Maybe the rule should be a bit clearer. For example, how about the name no-useless-children-snippet?
I think the rule name might confuse users if we later create a rule to report components like this:
{#snippet foo(value)}
  Hello {value}
{/snippet}

<!-- ✗ BAD -->
<Foo>
  {#snippet bar(value)}
    {@render foo(value)}
  {/snippet}
</Foo>

<!-- ✓ GOOD -->
<Foo bar={foo}>
</Foo>

Makes sense, renaming! Thanks :)


[PoC] Allow to programmatically plug message in the AiServices

This pull request is a variation and simplification of what I proposed here. As anticipated there instead of making the AiServices aware of the concept of a state machine I simply added the possibility of making the system and user messages configurable in a programmatic way. Currently this pull request has the same limitation of the other one: lack of the possibility of configuring messages for each user/conversation and of support of tools, but I believe that both things could be added once we agree on the main direction.
I tried this pull request and the other with the same use case that I implemented here and both produce an output similar to the following:
User: hi
Agent:  Hello! May I please have your full name for our records? And could you kindly share your age with me as well? Thank you.
User: My name is Mario Fusco and I'm 70
Extracted Customer { firstName = "Mario", lastName = "Fusco", age = 70 }
Agent:  Hello Mario, thank you for sharing your name and age. Could you please tell me which flight you recently took with us, including the flight number? Also, was there any delay in your flight? If so, could you provide the approximate duration of the delay? Thank you.
User: I was on flight 22 and it had a delay of 4 hours
Extracted Flight { number = "22", delayInMinutes = 240 }
Agent: Thank you Mario Fusco, you are eligible for a refund of $528.0

@langchain4j I updated this pull request following your suggestions. Please let me know if I'm missing something.

That said I believe that you're mixing things at 2 different levels or at least this is how it works in the integration use case that I provided with this pull request. When you use one of the 2 methods that I added to the AiServices you are not defining a complete message but only a template for it.

Yes, I do not make a clear distinction between the complete message and a template. At least for me it is kind of the same thing. If there are placeholders, replace them with values and go futher. If no placeholders - ok, just send it as-is. Maybe I am wrong and majority of users see it differently and want a clear distinction...
Currently, when you do like this, the string in the annotation is treated as a template:
@UserMessage("What is the capital of {{it}}?")
String chat(String country);

But when you do like this, the userMessage is not treated as a template, which I think is a bug.
String chat(@UserMessage String userMessage, @V("country") String country));

Some people expect that userMessage in this case should be treated as a template, and I think I agree.
So, when this bug is fixed, one can supply template directly into the method, without a need in userMessageProvider.

But when you do like this, the userMessage is not treated as a template, which I think is a bug.
String chat(@UserMessage String userMessage, @V("country") String country));

Some people expect that userMessage in this case should be treated as a template, and I think I agree. So, when this bug is fixed, one can supply template directly into the method, without a need in userMessageProvider.

I agree that what you described is a bug (or a missing feature) and has to be fixed.
I disagree (but I understand that this is more questionable and a matter of tastes and opinions) that this replaces the need of userMessageProvider. To me with the userMessageProvider I'm configuring the general behavior of the agent, that can change at a later stage when the application reaches a different state, while when I invoke agent.chat(userMessage) I'm just conveying the actual message received from the end-user to an agent that has been pre-configured to treat the user's message as she expects.
In essence I'd prefer having a clear separation between the agent configuration and its usage, as allowed by the userMessageProvider, but I understand that this introduced some additional complexity and it's up to you to decide if it is justified or not. In case you decide to keep this feature and need an help to increase its test coverage just let me know.

To me with the userMessageProvider I'm configuring the general behavior of the agent, that can change at a later stage when the application reaches a different state, while when I invoke agent.chat(userMessage) I'm just conveying the actual message received from the end-user to an agent that has been pre-configured to treat the user's message as she expects.

I see what you mean, but to configure the general behavior of the agent, system message is usually used. User message is an actual message from the user and it theory should not contain any instructions on how the agent should behave.
With this in mind, I would expect user message to be supplied directly to the agent as a method argument. And system message via @SystemMessage annotation or systemMessageProvider.

In essence I'd prefer having a clear separation between the agent configuration and its usage, as allowed by the userMessageProvider

I agree on "having a clear separation between the agent configuration and its usage", but for the "agent configuraton" I would expect system message and for "its usage" - user message.

I understand that this introduced some additional complexity and it's up to you to decide if it is justified or not.

I already see how this becomes more an more complicated, so I would prefer to reduce the complexity where possible. For now I propose to keep systemMessageProvider and remove userMessageProvider, we can always bring it back if needed. Hope you are ok with this.

In case you decide to keep this feature and need an help to increase its test coverage just let me know.

Thanks a lot, but no worries, I am already finalizing this

I already see how this becomes more an more complicated, so I would prefer to reduce the complexity where possible. For now I propose to keep systemMessageProvider and remove userMessageProvider, we can always bring it back if needed. Hope you are ok with this.

Big +1 on this! I was speaking about the user and system messages in an interchangeable way and assuming that my considerations were valid for both, but indeed they are 2 different things with different purposes and indeed what I needed to configure with the state machine in my PoC is the system message.


Explore improving UX for Welcome Page

This exploration will aim to modernize the look and feel of the Welcome page while also improving the layout for new and current users. Items we're looking to explore:

Add "privacy" section to page for better visibility
Add "recently update" section for app and extension updates
Add underline for text links on hover (consistency)

Related issues

Ability to remove recent item #22489
Ability to pin projects #63057
Don't open browser on first launch without user's action #14934
Revisit "Interface Overview" page #19491

Current Design

Research
Our research shows that new users install language & keyboard shortcut extensions the most, while current users go to recent projects or open folders. Below is a visualization of the top actions.
Top actions for new users

Top actions for current users

I will be updating this issue with explorations as they're developed.

@misolori from my issue at #56144 there was a comment about pinned projects on the welcome screen too.
And also to keep in line with thw rest of VSCode, the hyperlinks should have an underline on hover

@beastdestroyer thanks, I've updated the issue to include those two.

Should welcome page contain a link to command for git cloning a repo? IntelliJ and next Visual studio is showing that in their start/welcome page/view.

Explorations
Exploration A

Moves Start and Recents to the right
Adds option to star/remove recent item
Adds privacy section for telemetry
Condenses help links into buttons

Exploration B

Moves Start and Recents into sidebar
Adds option to star/remove recent item
Adds privacy section for telemetry
Condenses Customize, Learn, Help into tabbed content
Adds an "Updates" tab to show app & extension updates

Exploration C

Makes recents two-columns
Moves Start to the right side
Adds option to star/remove recent item
Adds privacy section for telemetry
Condenses help links into buttons
Condenses help links into buttons

Exploration D

Makes Recents and Start into two-columns
Moves Customize, Learn, Help into large buttons
Adds option to star/remove recent item
Adds privacy section for telemetry
Condenses help links into buttons
Condenses help links into buttons

I do think Playground is an important part for people to get familiar with VS Code's editing features and should be a part of the welcome experience.
Being able to try the features right in editor is much better than reading docs in a browser and come back to editor.

I like the focus of C on 'Recent' folders. Is there a good way to use that space when there are no recent folders yet, like on first startup? E.g., by using a subpage switcher like in B.

I like C and D, perhaps sort the buttons on D by category like C, lower that container down so it's centre with everything else, and center the Show welcome page on startup checkbox

Seems like the C is the best option. Focus on "Recents" is the best.

@chrmarti that's a good idea. We could move the "Help" content up to the recents location when there are no recents, since the users accessing this view would most likely be new users, and then move it back when there are recents:

I prefer D the most and here are my 2 cents. Before I'm super familiar with shortcuts of Open Recent and Open Folder, I used Welcome Page as my dashboard. I bind F2 to command Open Welcome Page and then everytime I just press F2 and then

Choose a recently opened folder
Or open a new folder

But now I no longer do that as I have to switch from the keyboard to mouse to operate on the welcome page. When I use Open Recent, I only need to press Ctrl+R, type and then pressing Enter, however with welcome page, navigating into those links is painful.
For option D, as we already focus on the Recent Folders, if we can use arrow keys to navigate between all clickable elements, it can be super helpful

@misolori I like that. 👍
@rebornix I think keyboard-centric navigation is best served by the Open Recent (Ctrl+R) command. We should still think about improving keyboard navigation on the Welcome page, but I wouldn't optimize the design for the keyboard.

Exploration C
Here's an updated exploration for Concept C. In this one I explored ways to make the first day experience (Day 0) focused on getting started. From the research above, it's very important for new users to adjust the editor to fit their workflows (via language support and keyboard shortcuts). Additionally, I wanted to make sure that current users (Day 30) we're able to easily access their recent projects while still providing for a way for those new users to access the first day content.
Day 0

Focal point is on getting started (customizing and learning) while also exploring the product
Added content tabs for app + extension updates, and help content
Entire layout is reduced for easier click targets

Day 1

Moved customize and learn content into tabbed content to reduce visual noise

Day 30

Increased layout for higher density of information
Recents turns into two columns

I need to warm up to that little page switcher. Isn’t that an indication of us putting too much information on the ‘Welcome’ page?
I like the other ideas.

It's a hard balance to make certain content the focal point for certain users, so that's the main reason for introducing the content tabs/switcher. In our current design, we definitely show a lot of content so I'm trying tidy that up while placing  a bigger emphasis for Recents and Start.

@chrmarti But can't you also argue that. being a Welcome screen, a lot of features can make it quite appealing, especially to newer users. I would say depending on the content yes there may be too much, but the page switcher with a few buttons isn't at all

After doing a bit of user testing with the various explorations above (thanks to @stevencl), we've found that Exploration C has performed the best and we'll be working on incorporating those changes. The actual changes will likely happen in the next iteration or so. I'll keep this issue open as I post higher fidelity mockups. Below are the latest iterations.
Day 0

Day 30

Below are a couple of the higher fidelity mockups:
Day 0

Day 1

Day 30

Transition (GIF)

@misolori the folders list looks really empty. can icons be added next to them? if a folder is mainly javascript maybe display javascript icon?

@Astrantia the intention is to keep it simple, any icons would add unnecessary visual noise since it would be the same icon (projects can contain multiple file types).

It’s a minor complaint, but I think the logo and header text alignment looks terrible in relation to the text below. Maybe the header could be moved up a little further to create more separation from the ‘recents’ section below, or add some background shading to the recents section, such as in exploration B (which I still prefer). It would probably even look a little better if the logo was moved to the right hand side of the text and the header text was aligned to the text left?
Are recent workspaces still identifiable by (workspace) after the title, or will there be other visual indicators of workspaces, such as a different shade of text, perhaps?

I suggest the "Add workspace folder..." text gets reworded to "Add folder to workspace..." so it matches what appears on the File menu.
And how about adding a link for "Open workspace..." as well? If yes, then I suggest putting it between "Open folder..." and "Add folder to workspace..."

Hi @misolori ,
I really liked the new mockups, specially the exploration C, but I would like to comment a different area.
Is there any chance (or had any conversation about) allow extensions to contribute to certain sections of the Welcome Page?
I mean, my Project Manager extension allows the user to define Favorite Projects and would be nice to have this list available right from the start in the Welcome Page. This could appear near the Recent section.
There are also some extension that almost makes VS Code a new IDE, like the Java/Python extension. These extensions could add their new kinds of projects/files in the Start section.
Even the Help section could receive contribution from extension.
The idea is the extension  contributes / provide additional info, not replace the VS Code contents. So the users still gets all the current help/features/support from VS Code, and after extending VS Code with new extensions, the start up would also be improved.
Thanks, and congratulations for the explorations 👍

Totally agree with @alefragnani
Really loving exploration C (maybe logo could be a little bigger) and would be wonderful if extensions could contribute to the page.
An exanple could be a GitHub extension to provide open issues or remote repositories.
Or the SSH remote cold provide some host to connect to, without opening a project.
Hope to see soon the new design! 😁

Basing off of: https://user-images.githubusercontent.com/35271042/49915404-45fc5580-fe4a-11e8-918f-473f31dd739a.png
What do you think of moving the "Create file", "Create folder", and "Add folder to workspace" buttons above the recent files/folders list? They could be represented as icons (possibly with titles underneath) stacked horizontally. That way, the "Start" section could be removed, which should provide enough space for the "Customize", "Learn", and "Help" sections to be broken out into vertically stacked sections (removing the need for a page switcher).
Thoughts?

@misolori What became of this?

@Matelasse we've got a direction for the design but this has yet to be added to a milestone. I'm hoping this happens soon though I don't have an ETA.

@misolori UX is sorted for this, right? I would love to implement the new designs.

This might be a great improvement: being a non-new VS Code user I never need many items on current Welcome screen and use  every day only Recent as show on initial design proposal as top 1 action for current users. I suppose there are many VS Code users doing the same.

👋  Hey Everyone, it's been a while since we last updated this issue. We've been busy working on a new "Getting Started" experience (https://github.com/microsoft/vscode/issues/111554) and we're ready to revive the welcome page explorations. I'll be posting updates into this issue since they are all related. A few additional items we're exploring:

Clean up the main sections (Recents, Start, Help) w/ primary actions
Show content from "Getting Started"
Show content from extensions for "Getting Started" https://github.com/microsoft/vscode/issues/116414

Empty folder

Workspace

Workspace + Recents

Workspace + Recents + Getting Started
And after some time that the user has opened multiple projects and installed multiple extensions that contribute to the getting started content

Hi, are there any methods in current extensions api to make custom welcome page (as extension)? I need to show only recents as grid (not list) and button to open folder with project for example

@kolebayev there is #119097, but just for walkthroughs. What kind of projects would you expect to see on the recent list? Feel free to ping me on my profile email for longer input.

simple is better, i choose a

Since we already shipped our new welcome page that includes the new getting started pages, closing this issue as done 🎉


[Perf] Generate performance comparison report from one-line metrics summary.

This commit adds scripts/perf_report.py, which will generate a performance comparison summary report each time we run ./test.sh to exercise the run-all-client-server-perf-tests() test-method.

Change server-code slightly to generate a one-line summary in a canonical format. This is done under new --perf-outfile cmdline flag, and invoked by ./test.sh for run-all-client-server-perf-tests method. (Manual execution of server program or executing other test-methods will -not- trigger this one-line summary output.)

Add scripts/perf_report.py - parses the one-line summary generated in the file output under --perf-outfile flag, to generate the performance comparison report.

Add tests/pytests/perf_report_test.py, to verify parsing logic.

test.sh: Cleanup messages. Add execn-timing metrics.

There is a bit of 'handshake' between the one-line summary line generated by the server program, which is parsed by the perf_report.py script. This summary-line format handshake is verified by test-methods in the newly added perf_report_test.py pytest.
Sample output:
As generated by the execution of ./test.sh run-all-client-server-perf-tests in CI Linux jobs:
   **** Performance comparison for NumClients=5, NumOps=5000 (5 K) ****
+--------------------------+-------------------+----------+-------------------+----------+
|         Run-Type         | Server throughput | S:%-Drop | Client throughput | C:%-Drop |
+--------------------------+-------------------+----------+-------------------+----------+
|  Baseline - No logging   |    993 ops/sec    |   0.0    |  ~39.16 K ops/sec |   0.0    |
|   L3-logging (no LOC)    |    994 ops/sec    |   0.1    |  ~40.67 K ops/sec |   3.84   |
| L3-fast logging (no LOC) |    993 ops/sec    |   0.0    |  ~38.18 K ops/sec |  -2.51   |
|  L3-logging default LOC  |    993 ops/sec    |   0.0    |  ~38.94 K ops/sec |  -0.57   |
|    L3-logging LOC-ELF    |    994 ops/sec    |   0.1    |  ~41.19 K ops/sec |   5.18   |
+--------------------------+-------------------+----------+-------------------+----------+

Timing messages added to test.sh
Show these output lines when running run-all-client-server-perf-tests in CI:
test.sh: Mon May 27 11:40:18 PDT 2024 Executing run-all-client-server-perf-tests ...

test.sh: Mon May 27 11:40:48 PDT 2024 Completed all client(s)-server communication test [ 0h 0m 30s ].

@gregthelaw - FYI, assigning this review for a quick-check.
I'm still checking this in as this change-set only includes new Python script and test.sh changes. No core L3 changes are done.


portfolio consumer model with recursive block definition working with generic monte carlo

This PR:

introduces a new 'new model', an unnormalized idiosyncratic shock model with (optional) portfolio share based on SolvingMicroDSOPS notes
an RBlock which can combine several DBlocks into one block.
passing smoke tests for running this model in the ATMC simulator

The model in consumer.py is an attempt to demonstrate how a value, such as R, can be either calibrated directly or set by a dynamic block (in this case, the portfolio block) while reusing the same consumption block data.
It also shows the use of a tick block to set $k_{t+1} = a_t$

[x] Tests for new functionality/models or Tests to reproduce the bug-fix in code.
[x] Updated documentation of features that add new functionality.
[x] Update CHANGELOG.md with major/minor changes.

This PR builds on #1414, which should be merged first

this is really work towards #1374

TODO: Allow nested RBlocks

TODO: Demo in a test the way that the consumption DBlock can be used with or without the RBlock

I believe this PR is ready.
Requesting final review from @alanlujan91 or @mnwhite
This PR now supports recursively defined models, and demonstrates how a model can be composed of pre-made blocks.
Specifically, it shows how the portfolio consumption model can be built from the basic consumer model by adding one more block. This block makes the R rate of return an endogenous state that's a function of the risky return and stigma, overriding the default calibration of this value.

Added normalized version of consumption block

I've added some more functionality to the DBlocks in this PR pursuant to aligning it with the recent SolvingMicroDSOPs work.
A DBlock, which represents what we might have called a 'stage' at one point, can now:

Given a continuation value function, provide a state-rule value function, which is the value of being at state $x$, with realized shocks $z$, given a decision rule $\pi$
Given a continuation value function and decision rule, provide a decision value function, which is the value of being in the (shock realized) state before the agent makes a decision. (This is the value at the 'decision' step/tac.)
Given a continuation value function, a decision rule, and arguments for discretizing shocks, provide an arrival value function, which is the value of the (pre-shock) state at the beginning-of-period/arrival 'step'/tac.

These can all be computed directly using the dynamics and reward functions provided in the DBlock, and are intended to be helpful utilities to support solution algorithms.


Use the MetadataLoadContext to restore reflection-only type discovery for mechanisms like using assembly

See #3641. Types needed in PowerShell classes must be available at parse-time (i.e. not loaded with Import-Module or Add-Type) to be able to compile classes to IL.
To be able to resolve these types, we want to support the using assembly statement. However, the most available way to do this involves loading a DLL and possibly executing some of its code, presenting a vector for arbitrary code execution.
Instead, we should analyse a DLL's metadata to discover the types it exports, using a System.Reflection.Metadata.MetadataReader. Example code for this is in PR #3169. The entry point for this analysis would be the PowerShellModuleAssemblyAnalyzer class.
The right way to do this is now to use a MetadataLoadContext

Should we thing about PowerShell classes too? I mean getting PowerShell classes at parse time from PowerShell modules.

@iSazonov

Should we thing about PowerShell classes too? I mean getting PowerShell classes at parse time from PowerShell modules.

Is not using module already do that?

I don't know.

@iSazonov when you say "getting PowerShell classes at parse time" do you mean loading?
That's basically what happens with using module. Since we have a nice PowerShell parser that we know doesn't run any code, we read in the class definitions with it and then compile them to .NET IL. So the parser is already able to resolve PowerShell-class-defined types at parse time.
The problem is that we don't have a nice .NET IL parser that we know doesn't run any code (and we only need the IL metadata anyway, to discover what types are available). corefx ships one, but it's pretty low level and documentation on it is sparse. Last time I wrote something using it, I used their tests for guidance. But it should be relatively straightforward.

@rjmholt You could look our new Add-Type cmdlet - it has a code to retrieve types from assemblies (to check duplications).

It makes sense to use MetadataReader in our TypeResolver too - it seems we load dozens of assemblies unnecessarily.

This implementation from us is no longer required, since https://github.com/dotnet/corefx/pull/33201

This might not be that useful to using assembly since using assembly needs to make the assembly actually loaded for its types to be used in IL emitting. But this will be very useful to module analysis, e.g. the PowerShellModuleAssemblyAnalyzer class which is not implemented today.

This might not be that useful to using assembly since using assembly needs to make the assembly actually loaded for its types to be used in IL emitting

I think the scenario here was to make class definition that depends on using assembly and using module still safe, so that script files can be parsed and type check successfully without the risk of running an arbitrary DLL on the filesystem.
Much of this isn't actually required, but the discussion in that issue seems to indicate a preference for going down that path.
I suspect a lot of these implementation discussions should really be had secondary to a design review of classes in some sense, but the available tooling in .NET has moved to a point that makes more things possible.


Retest only: Helper Text - 508 Issue

Context
Testing done for 2487, no issues with the new text however aria-hidden="true" is used on the tooltip image in the helper text.

Aria hidden was removed


[R]: vctrs custom class errors on roundtrip

Describe the bug, including details regarding any error messages, version, and platform.
I think that this is fallout from #41969 but when making some examples for how to make a custom vctrs class I ran into an error on round trip Error in '[<-': ! Can't convert 'value' <list> to <special>..
library(arrow, quietly = TRUE, warn.conflicts = FALSE)
#> Warning: package 'arrow' was built under R version 4.4.1

library(vctrs, quietly = TRUE, warn.conflicts = FALSE)

special <- function(n = integer()) {
  new_rcrd(
    fields = list(special = n),
    class = "special"
  )
}

frac_df <- data.frame(
  total = c(2, 2, 7, 9)
)

frac_df$special = special(frac_df$total)

as_arrow_table(frac_df)
#> Error in `[<-`:
#> ! Can't convert `value` <list> to <special>.

Created on 2024-06-20 with reprex v2.1.0
Component(s)
R

This is in the VctrsExtensionType code path, which as it turns out serializes a vec_ptype and not just a list of attributes. So that will need to be handled differently.

Issue resolved by pull request 42226
https://github.com/apache/arrow/pull/42226


Add progress bar to sentiment analysis example

Added progress bar for user-friendliness. Other examples also use this progress bar (setting).
Also, please see https://github.com/chainer/chainer/pull/7087#discussion_r282409705.

Jenkins, test this please

Jenkins CI test (for commit 3ebb825b23943468874a3fb58dcfeea2ec23d4c4, target branch master) succeeded!

Jenkins, test this please

Jenkins CI test (for commit 3ebb825b23943468874a3fb58dcfeea2ec23d4c4, target branch master) succeeded!


ByList with IN instead of concatenated ORs

Current discussion:
http://groups.google.com/group/liftweb/browse_thread/thread/c6e03492e59c0b0b
Old discussions:
http://groups.google.com/group/liftweb/browse_thread/thread/1cf5c0e153e98b47/5b60451a961ad78d
http://groups.google.com/group/liftweb/browse_thread/thread/9d68ee4182f82ef/9d3d5ffd04e3a9b3

This issue / PR is being closed because the Lift community has decided to decomission the Lift Persistence group of libraries including Mapper, Record, et al. We encourage folks to check out using some alternatives for their persistence needs. In particular the following libraries may be of interest:

ProtoQuill
slick
scalasql

There are likely others, as well! Please feel free to reach out on the Lift Mailing List if you have any questions or concerns.


EKS Options in Rancher for us-east-2

What kind of request is this (question/bug/enhancement/feature request):
Enhancement
Steps to reproduce (least amount of steps as possible):
Attempt to launch EKS Cluster.
Result:
us-east-2 is not available. It reached general availability a few days ago.
Amazon Announcement
Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): rancher/rancher:latest
Installation option (single install/HA): Single install, Ubuntu 18.04

Thanks for your report, I merged it into https://github.com/rancher/rancher/issues/17081


Template_file not compatible with M1 and terraform versions

The template provider is causing terraform initialize errors for M1 users. The data template_file resource was to be used prior to terraform .11 and now .12 and on should use templatefile instead. Please update all the GCP BIG-IP code to remove data template_file resources and use local templatefile instead.
error
│ Error: Incompatible provider version
│
│ Provider registry.terraform.io/hashicorp/template v2.2.0 does not have a
│ package available for your current platform, darwin_arm64.
│
│ Provider releases are separate from Terraform CLI releases, so not all
│ providers are available for all platforms. Other versions of this provider
│ may have different platforms supported.

similar to azure issue https://github.com/F5Networks/terraform-azure-bigip-module/issues/38

Bad blocks...
in main.tf
data "template_file" "startup_script" {
metadata_startup_script = replace(coalesce(var.custom_user_data, data.template_file
template = file("${path.module}/startup-script.tpl")


Issue reporter opens empty on Windows

Works for me

Works for me too.

@chrmarti does it help if you resize the Issue reporter's window?

No, it remains blank. I also just reinstalled insiders. I checked everything was gone in-between. And the reporter still opens blank.

From the console (Ctrl+Shift+I thanks @weinand ):
Uncaught TypeError: Cannot set property 'checked' of null
at t.handleExtensionData (/C:/Program Files/Microsoft VS Code Insiders/resources/app/out/vs/code/electron-browser/issue/issueReporterMain.js:196)
at new t (/C:/Program Files/Microsoft VS Code Insiders/resources/app/out/vs/code/electron-browser/issue/issueReporterMain.js:194)
at Object.t.startup (/C:/Program Files/Microsoft VS Code Insiders/resources/app/out/vs/code/electron-browser/issue/issueReporterMain.js:192)
at e (/C:/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/out/vs/code/electron-browser/issue/issueReporter.js:7)
at Function.t._invokeFactory (/C:/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/out/vs/loader.js:19)
at t.complete (/C:/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/out/vs/loader.js:19)
at s._onModuleComplete (/C:/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/out/vs/loader.js:30)
at s._onModuleComplete (/C:/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/out/vs/loader.js:30)
at s._onModuleComplete (/C:/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/out/vs/loader.js:30)
at s._resolve (/C:/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/out/vs/loader.js:29)

Reproduces only without extensions and on all platforms.

@RMacfarlane I found the problem and we decided to include the fix right-away. Please take a look.

@chrmarti Thanks for the fix


Using single_alias[trigger_clause] in cwt extended definition parameters does not seem to work, nor using a multiple config type work as expected.

I have in many cases the need to pass a trigger block to an inline, and analyzing cwt configs there seem to be two ways of doing it, using single_alias[trigger_clause] like
## context_key = inline_script@jobs/tec_job
    ## replace_scopes = { this = planet  root = any }
    trigger = single_alias[trigger_clause]

Or using context_configs_type = multiple like
## context_key = inline_script@jobs/tec_job
    ## replace_scopes = { this = planet  root = any }
    ## context_configs_type = multiple
    trigger = {
        alias_name[trigger] = alias_match_left[trigger]
    }

But neither of these work as expected, using the single_alias, the error is as below

Using the context_configs_type = multiple works partially, but the scope is not pushed correctly, defaulting to any, and most scopes inside (ie going to owner do not change scope either)

Unless defining a trigger block should be done differently in the cwt configs. I also tried completely omiting the type of the parameter and just using replace_scopes but that didn't do it either.

You should use single_alias_right[trigger_clause] to refer a single alias
single_alias[x] = ... is used to declare a single alias
But yet it's not tested, I'm not sure it's ok for extended_config_xxx = single_alias_right[xxx]

Tried single_alias_right and it seems to have same behaviour.


Error loading psd file created by Clip Studio Paint

Hello! I can't open a PSD file created by Clip Studio Paint with psd-tools, though I can open it in Photoshop without problems. What can be?
Thank you!
PSD file:
https://dl.dropboxusercontent.com/u/36540898/teste2.psd
Code:
from psd_tools import PSDImage
from PIL import Image
import os
import sys
from os.path import basename
psdRoot = '.'
psdFiles = []
for root, dir, files in os.walk(psdRoot):
for thisFile in files:
if (thisFile.lower().endswith('.psd')):
fullFilename = os.path.join(root, thisFile)
psdFiles.append(os.path.dirname(os.path.realpath(fullFilename)) + '' + thisFile)
for psdFile in psdFiles:
psd = PSDImage.load(psdFile)
Traceback (most recent call last):
File "C:/Projetos/DPEngine/DavisanUtils/ExportGroups/test.py", line 17, in
psd = PSDImage.load(psdFile)
File "C:\Python27\lib\site-packages\psd_tools\user_api\psd_image.py", line 239, in load
return cls.from_stream(fp, encoding)
File "C:\Python27\lib\site-packages\psd_tools\user_api\psd_image.py", line 247, in from_stream
psd_tools.reader.parse(fp, encoding)
File "C:\Python27\lib\site-packages\psd_tools\decoder\decoder.py", line 32, in parse
image_resource_blocks = image_resources.decode(reader_parse_result.image_resource_blocks),
File "C:\Python27\lib\site-packages\psd_tools\decoder\image_resources.py", line 60, in decode
return [parse_image_resource(res) for res in image_resource_blocks]
File "C:\Python27\lib\site-packages\psd_tools\decoder\image_resources.py", line 70, in parse_image_resource
return resource._replace(data = decoder(resource.data))
File "C:\Python27\lib\site-packages\psd_tools\decoder\decoders.py", line 14, in unicode_string
return read_unicode_string(io.BytesIO(data))
File "C:\Python27\lib\site-packages\psd_tools\utils.py", line 45, in read_unicode_string
num_chars = read_fmt("I", fp)[0]
File "C:\Python27\lib\site-packages\psd_tools\utils.py", line 24, in read_fmt
assert len(data) == fmt_size, (len(data), fmt_size)
AssertionError: (0, 4)

Hi, @davisan.
There is a problem with decoder. There are some PSD files which contain data blocks with zero-length data. When decoder tries to handle them, it fails.
Thanks for the report, it will be fixed in a next release.

Hi!
Just wanted to bump this thread - I hit same problem today.
Thanks!
File: test.zip
Python 3.5.1 (default, Jan  1 2016, 20:37:59) [MSC v.1900 64 bit (AMD64)] on win32
Traceback (most recent call last):
File "mhg_export_psd.py", line 33, in
export_psd_file("../../data/test/_test.mscene")
File "mhg_export_psd.py", line 13, in export_psd_file
psd = psd_tools.PSDImage.load(psd_filename)
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\user_api\psd_image.py", line 239, in load
return cls.from_stream(fp, encoding)
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\user_api\psd_image.py", line 247, in from_stream
psd_tools.reader.parse(fp, encoding)
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\decoder\decoder.py", line 10, in parse
image_resource_blocks = image_resources.decode(image_resource_blocks)
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\decoder\image_resources.py", line 60, in decode
return [parse_image_resource(res) for res in image_resource_blocks]
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\decoder\image_resources.py", line 60, in
return [parse_image_resource(res) for res in image_resource_blocks]
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\decoder\image_resources.py", line 70, in parse_image_resource
return resource._replace(data = decoder(resource.data))
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\decoder\decoders.py", line 14, in unicode_string
return read_unicode_string(io.BytesIO(data))
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\utils.py", line 45, in read_unicode_string
num_chars = read_fmt("I", fp)[0]
File "P:\tools\mblender\2.78\python\lib\site-packages\psd_tools\utils.py", line 24, in read_fmt
assert len(data) == fmt_size, (len(data), fmt_size)
AssertionError: (0, 4)

Hi again,
Here's patch that solves this particular crash. It assumes that all default types are serialized as series of 0's.
psd_tools_zero_data_fix.zip


Auto Billing- Please show only recurring service in auto billing

Auto Billing- Please show only recurring service in auto billing
In below image only 1st 2 services are recurring so only 2 services shown in auto billing

Auto Billing me sirf wahi service aani chahiye , jiska is recurring on ho service page pe


Bad openTicketChannel Handling & Translation field undefined error

My TODO list
Problem:

openTicket throws error if user deletes the openTicket message from the channel?
Incomplete translation file result in error

Solution:

[ ] 1.  Remove (ex) => console.error(ex) from catch and handling the error correctly..
[ ] 2. Create a custom translation class/module that uses main.json as fallback when it's missing

Extra:

[x] Update Dependencies
[ ] Check token environment variable to let the user know if the env is successfully injected or not

Maybe just use a basic i18n module, there are a lot of module that do the job

Maybe just use a basic i18n module, there are a lot of module that do the job

Eh, I feel like it simpler to just create our own so that way, we can customize it more (like asking user to fill in the missing translation field)

Should of used PR Draft instead lol


[Feature] Android secondary position stream for foreground notification updates

Changes summary
These changes aim to make it possible to implement a GPS track recording app with optimal battery usage in the background while also having a highly responsive UI while the app is in the foreground, without having to declare the ACCESS_BACKGROUND_LOCATION permission, essentially fulfilling the following requirements on Android:

When the app is active in the foreground, access location through a high frequency update stream (every 1 second)
When the app is inactive in the background, access location through a lower frequency update stream (every 5 seconds) to preserve battery
Avoid using the ACCESS_BACKGROUND_LOCATION permission at all

Without these changes, a limitation of this library on Android is that you can only have a single location stream active at a given time. And a new location stream cannot start when the app is in the background unless you have declared and granted access to the dangerous ACCESS_BACKGROUND_LOCATION permission. This limitation does not affect iOS since you can still start a location stream for a little while after the app has been put in the background.
If you want to change the location stream parameters (e.g. distanceFilter, intervalDuration, etc.), you have to cancel your current stream subscription and start a new one. Ideally, an app recording location in the background sets parameters to reduce the location updates frequency to preserve battery, but keeps a high frequency update while the app is in the foreground.
These changes allow to have two separate streams (started while the app is in the foreground) with different parameters, and cancel them individually:

If foregroundNotificationConfig is null, then the regular stream is started
If foregroundNotificationConfig is set, then the foreground service stream is started

When the app is put in the background, the high frequency UI stream can be canceled while the lower frequency foreground service stream remains active.
How to use this in your code today
If you want to test / use this code before it has been merged and published, you can use the following dependency overrides in your pubspec.yaml.
dependency_overrides:
  geolocator:
    git:
      url: https://github.com/androidseb/flutter-geolocator
      ref: feature/android_secondary_position_stream
      path: geolocator
  geolocator_android:
    git:
      url: https://github.com/androidseb/flutter-geolocator
      ref: feature/android_secondary_position_stream
      path: geolocator_android

Draft disclaimer
This is currently a draft, and the pre-launch checklist below is not complete, because I'm not sure if this is a direction the maintainers of this library would want to take. If so, please let me know, I'll put in the work to complete the checklist and polish this PR.
Pre-launch Checklist

[X] I made sure the project builds.
[X] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is does not need version changes.
[ ] I updated CHANGELOG.md to add a description of the change.
[ ] I updated/added relevant documentation (doc comments with ///).
[X] I rebased onto main.
[X] I added new tests to check the change I am making, or this PR does not need tests.
[ ] I made sure all existing and new tests are passing.
[ ] I ran dart format . and committed any changes.
[ ] I ran flutter analyze and fixed any errors.

Hi @androidseb I was actually looking to achieve the same thing using geolocator and posted https://github.com/Baseflow/flutter-geolocator/issues/1569 recently. I hadn't seen this PR until now.
A design question: what do you think about being able to modify the stream parameters (distanceFilter and intervalDuration) without terminating the ForegroundService as opposed to creating two position update streams?
Has this PR worked well for your? Were you able to test it IRL?
And could you say more re: iOS implementation. How do you update the distanceFilter on the iOS side?

Hi @orkun1675, I'll respond to your questions below. Note that those answers are assuming you only have the "while using the app" location permission and not the "always" location permission.

what do you think about being able to modify the stream parameters (distanceFilter and intervalDuration) without terminating the ForegroundService as opposed to creating two position update streams?

I think it would be convenient if it worked, but from my understanding, this will not work unless the app is running in the foreground: the Android SDK APIs used to subscribe to location updates only allow you to cancel your subscription, not modify it - if you want to modify your subscription settings (e.g. intervalDuration), you need to cancel your subscription and re-subscribe with the new settings, and unless your app has the "always" location permission, the Android system will deny your request to create a new subscription from the background, even if your foreground service for another subscription is already running.

Has this PR worked well for your? Were you able to test it IRL?

Yes, it works perfectly well for my use case, I use it for the tracks recording feature of my Map Marker app here (not open source):
https://play.google.com/store/apps/details?id=com.exlyo.mapmarker

iOS implementation. How do you update the distanceFilter on the iOS side?

The iOS implementation does not require those two position streams, because on iOS, it is technically possible to modify the existing subscription while the app is running in the background, or at least shortly after the app has entered background.

Thanks a lot for the pointers @androidseb !

you need to cancel your subscription and re-subscribe with the new settings

I don't think this is neccesary. Calling requestLocationUpdates with new settings replaces the params of the existing listener. Please see my post here. In that same post you will see a link to my fork that implements that approach which has been working well, even when running tests IRL.

unless your app has the "always" location permission, the Android system will deny your request to create a new subscription from the background

Great point. Right now our app DestiWake requires the "Location Always" permission. I haven't tested this approach without that permission.
We hope to remove "Location Always" in the future; I figure I'll have to revisit this then.


Update Python and Platform support

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@299115d). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #30   +/-   ##
=========================================
  Coverage          ?   97.50%
=========================================
  Files             ?        5
  Lines             ?      843
  Branches          ?        0
=========================================
  Hits              ?      822
  Misses            ?       21
  Partials          ?        0

Continue to review full report at Codecov.

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


feat: add quick-start demo

Add Instructions to run kspan.  [Issue link]: https://github.com/weaveworks-experiments/kspan/issues/4

@Belyenochi do you think you will come back to this?

@bboreham If this pr is no longer active, I'd love to help. Could I create a new pr to give a doc for deploy a demo on kind.


fix issue #757 - Folder size indicator show "k" when over 1,000

Will this PR count for Hacktoberfest?

This PR will close #769 👍

Sure I will create a pipe.
Le mar. 4 oct. 2022 à 14:12, Boris @.***> a écrit :

This PR will close #769
https://github.com/whyboris/Video-Hub-App/pull/769 👍
—
Reply to this email directly, view it on GitHub
https://github.com/whyboris/Video-Hub-App/pull/769#issuecomment-1267373948,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACXCPLAV6MSGWNHWY3GMOZLWBRXQJANCNFSM6AAAAAAQ2RLVK4
.
You are receiving this because you authored the thread.Message ID:
@.***>

@jmdagenais looks awesome! Thank you for converting the code to a pipe 🙇


Akavache.Sqlite3 3.1.1 does not pass peverify

Here are the results of running peverify on the released binaries:
***** Mono/Akavache.Sqlite3.dll
Could not load class with token 2000002
* Assertion at class.c:5594, condition `!mono_loader_get_last_error ()' not met

Abort trap: 6

***** Monoandroid/Akavache.Sqlite3.dll
Missing method .ctor in assembly /Users/loyful/Downloads/Akavache.3.1.1 (1)/Monoandroid/Akavache.Sqlite3.dll, type System.Runtime.CompilerServices.AsyncStateMachineAttribute
Error: Invalid CustomAttribute content row 268 Value field 0x00000f4a
Error: CustomAttribute: Invalid constructor
Error count: 2

***** Monotouch/Akavache.Sqlite3.dll
Missing method .ctor in assembly /Users/loyful/Downloads/Akavache.3.1.1 (1)/Monotouch/Akavache.Sqlite3.dll, type System.Runtime.CompilerServices.AsyncStateMachineAttribute
Error: Invalid CustomAttribute content row 268 Value field 0x00000f4a
Error: CustomAttribute: Invalid constructor
Error count: 2

***** Net45/Akavache.Sqlite3.dll
Could not load class with token 2000002
* Assertion at class.c:5594, condition `!mono_loader_get_last_error ()' not met

Abort trap: 6

***** WinRT45/Akavache.Sqlite3.dll
Error: AssemblyRef table row 16 has invalid Flags 00000200
Error count: 1

AFAIU, those with Abort trap: 6 are actually passing peverify since even Xamarin.Mobile.dll triggers this behavior.  Monoandroid and Monotouch, however, seem to have some genuine errors.
On a private Xamarin bug, Zoltan Varga stated that there were some bugs on mcs that caused some miscompilations, but that those bugs have since been fixed.
What Xamarin.iOS version was used to compile these binaries?  (Version 7.0.2, current stable, creates binaries with the same problems.)
If you use your current setup, do your final binaries still not pass peverify?  If so, then I guess it's time to fill a public mcs bug report.

If this is still an issue, let me know and I'll reopen this


Inline toggleDiv

Inlined the toggleDiv function to workaround that jupyterlab doesn't support script tags in html. This should solve https://github.com/cython/cython/issues/1775, unless of course jupyterlab disables this workaround as it might be a security issue, see https://github.com/jupyterlab/jupyterlab/issues/4091

seems like the some of the builds failed for no reason, but I can't restart them

I reduced the code overhead a little.


Pins which connect to multiple pads are not handled

Where a pin connects to multiple pads, which is quite common with power pins on large devices, the list of pin numbers is truncated to 4 characters and output as a single pin number. This can easily cause syntax errors in the output file if the first 4 characters contain a space (especially if the pin numbers are non-numeric as is common for BGA parts), as well as more subtle errors in the generated library.
For an example with plenty of these, try converting:
http://www.cadsoft.de/downloads/file/nxp_60_1_1.lbr

KiCad doesn't support one pin with multiple pads as far as I know, so this could be tricky as it then requires generation of new pins. Unless you want to come up with an algorithm for coming up with non-conflicting coordinates for all of the new pins, the best approach is probably to duplicate the pin, probably with the same coordinates, and make all but the first invisible.


cmd+T activates python linting when using Jedi

(moved from https://github.com/microsoft/vscode/issues/73659)
Hi,
I have a strange bug:

open a Python file in vscode with the Python extension activated and Jedi enabled
try cmd+T (I'm on macOS, maybe you can reproduce on windows) for "Go to Symbol in Workspace"
the python output pane opens and ----------Generating Tags---------- appears

It is strange because when I search in the Keyboard Shortcuts, the only command bound to "cmd+T" is workbench.action.showAllSymbols.
Note that "maj+cmd+P" and then "Go to Symbol in Workspace" yields the same behavior.
Here is a screen capture that shows what happens when I use cmd+T: https://streamable.com/ioja8
Environment data

VS Code version:  1.41.1
Extension version (available under the Extensions sidebar): not able to find it
OS and version: macOS 10.14.4
Python version (& distribution if applicable, e.g. Anaconda): multiple, including 3.6.7 from miniconda
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): venv, conda
Relevant/affected Python packages and their versions: None
Jedi or Language Server? (i.e. what is "python.jediEnabled" set to; more info #3977): Jedi

@louisabraham Generating Tags is expected, we use ctags to help navigate using symbols. Can you provide the error that you are getting in the log window. I see that it is running it some error there.

Because we have not heard back with the information we requested, we are closing this issue for now. If you are able to provide the info later on then we will be happy to re-open this issue to pick up where we left off.

Sorry about that, my computer broke and it works on my new one.