Add columns based on delta metadata

Added new Request and Action to perform ADD COLUMN based only on diff and don't copy existing mapping data such as primary keys, checks, not-null constraints, existing columns.
Column details (bit/varhar length, analyzer and so on, columnstore flag) comes in properties field
copy-existing-mapping code hasn't removed yet as we need it for BWC. Changes in Plan are mostly re-organazing code - we still need validation, so I introduced new validate method and grouped checks there  - validate is used in both pre/post 5.1.0 plans.

retest this please

retest this please

Hi @mfussenegger, could you take a look?
On the last fixup:
Before https://github.com/crate/crate/pull/12754 it was not necessary but now it's needed to ensure that we don't publish negative positions, otherwise tests fail with "Duplicate column position assigned to" because:

master updates mapping and publishes new state with negative positions
IndicesClusterStateService on other nodes reacts and calls merge with recovery
incoming state has pos = -1 as supposed to be (comes from master like this)
parsed version makes real computation and thus -1 != computed
update = true and sends node refresh to master
node refresh gots computed position > 1 but it's already exists on master and fail in assert !takenPositions.containsKey(position) : "Duplicate column position assigned to "

to avoid this I do RECOVERY. - which is basically same behavior like it used to be in AlterTableClusterStateExecutor

master updates mapping and publishes new state with negative positions

I thought the negative positions are only used in the request classes, but that when the cluster state is applied it gets converted to positive positions before it is saved/published.
@jeeminso can you clarify? If there are really negative positions in an applied cluster state I think we need to change the approach

I thought the negative positions are only used in the request classes, but that when the change is applied to the cluster state, they get converted to positive positions before it is saved/published.

This was the intention. I will see if I missed something.

I thought the negative positions are only used in the request classes, but that when the change is applied to the cluster state, they get converted to positive positions before it is saved/published.

This was the intention. I will see if I missed something.

I thought the negative positions are only used in the request classes, but that when the change is applied to the cluster state, they get converted to positive positions before it is saved/published.

This was the intention. I will see if I missed something.

just in case, how I spot this: enabled logging and saw that this line is printed on a non-master node.
output was like:
[[mkhacawolgoxc.t/Z5xrIx2RTP-_O6Ok47_96w]] parsed mapping, and got different sources
original:
{"default":{"dynamic":"true","_meta":{"primary_keys":["id"]},"properties":{"id":{"type":"integer","position":1},"name":{"type":"keyword","position":-1}}}}
parsed:
{"default":{"dynamic":"true","_meta":{"primary_keys":["id"]},"properties":{"id":{"type":"integer","position":1},"name":{"type":"keyword","position":2}}}}

where original with negative position is incomingMappingSource

unrelated test_deleted_and_recreated_partition_is_also_deleted_and_restored_on_subscriber
retest the please


Issue 151220/add current timezone offset variable

Solves #151220

Please also add tests, or update these ones.  Thanks.
https://github.com/microsoft/vscode/blob/4acf2d9b46b75748ae687cf3b2952a0799679873/src/vs/editor/contrib/snippet/test/browser/snippetVariables.test.ts#L293-L339

@mattjohnsonpint I've add the new variable to the tests

LGTM, but I'm not a maintainer of this repo.

@jrieken Any chance we could get this PR approved? Would love to see this in VS Code.

Yeah, this slipped my inbox.


[HomeKit Controller] Error configuring Hue Bridge

Home Assistant release with the issue:
0.68.0.dev0
Last working Home Assistant release (if known):
N/A
Operating environment (Hass.io/Docker/Windows/etc.):
Virtualenv, Debian 9.4.0, x86_64
Component/platform:
HomeKit Controller
Description of problem:
Trying to connect to a Hue Bridge as a first test, but hitting configure in the frontend and entering the code from the bottom of the bridge (both with dashes and without) results in:
Error executing service <ServiceCall configurator.configure: configure_id=140564616230840-3, fields=code=72785369>
Traceback (most recent call last):
  File "/root/home-assistant/homeassistant/core.py", line 1002, in _event_to_service_call
    await service_handler.func(service_call)
  File "/root/home-assistant/homeassistant/components/configurator.py", line 224, in async_handle_service_call
    call.data.get(ATTR_FIELDS, {}))
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/root/home-assistant/homeassistant/components/homekit_controller/__init__.py", line 137, in device_config_callback
    self.conn, code, pairing_id)
  File "/root/home-assistant/lib/python3.5/site-packages/homekit/protocol.py", line 89, in perform_pair_setup
    assert response_tlv[TLV.kTLVType_State] == TLV.M4
AssertionError

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
discovery:
  enable:
    - homekit

Traceback (if applicable):
See above.
Additional information:
@mjg59

I fixed that, there is a bug in the code that reconstitute a message.
You can find it here, I'll send a PR Monday I am AFK this weekend.
https://github.com/MatMaul/homekit_python/commit/063f3b417d9186ff33c8b85cdb788c98f01f9791

@MatMaul - I’ve installed homekit using your repo at that commit and the same exact error above is raised when I try to pair the Hue Bridge.

I think you should try unpairing whatever device is connected to the bridge via homekit, I had the same problem. You can only pair one at a time. You should have another error afterwards and my patch fixes it.

@marthoc Could you hack homekit/protocol.py at line 89 in order to dump what the TLVs in the response are? Ideally we're getting a reasonable error back from the device that we can use to provide useful feedback.

@MatMaul: I'm not sure what you mean - unpair the devices (lights, remotes) from the Hue Bridge? Or remove the Hue Bridge from the iOS Home app? This bridge is currently not connected to a Home app through that pairing code if that's what you mean, but there are several devices paired to it.
@mjg59: Not sure I understand you exactly (haven't looked at the protocol in-depth); but I added this just before the asserts to print what's contained in response_tlv:
    for key, value in response_tlv.items():
        print('{}: {}'.format(key, value))

Which, when I attempt pairing, prints this before the traceback above:
6: bytearray(b'\x02')
7: bytearray(b'\x01')

Huh. Ok, that seems to be TLVError_Unknown, which is, well, unhelpful.

(It's worth noting that the Hue is one of the devices we probably don't want to use HomeKit with, since the native API offers more functionality)

I wasn’t sure what functionality was possible, tbh. Since hue remotes are available in HomeKit now I thought this was potentially a way to support them easily in HA (eventually, I realize there’s only support for lights and switches at the moment).

@mjg59 @marthoc I was investigating event support to handle remotes & motion sensors.
I'll resume my work soon and let you know.
For people having iOS devices, can you see and react to a Hue remote in HomeKit ? So I don't try to figure out why I don't see events if it is not even supported...

@MatMaul Did you ever open a PR for Homekit with this patch?

Nope because I couldn't test anymore, cffi seems broken with fedora 27.
I'll have a look again soon.

Sorry for the double-post if this is the same issue, but this looks like this could be related to something I just posted:
[HomeKit Controller] Unable to pair with Lightwave Link Plus hub #14369

Ok I can reproduce this bug now, on a bridge that has no devices paired. It happens with the pure upstream code, so this isn't restricted to Home Assistant. I'll open a bug upstream.

https://github.com/jlusiardi/homekit_python/issues/35

Ok I have a couple of PRs up for the upstream project that should fix this - once that's merged I'll bump the dependency.

@mjg59 Was this issue ever resolved? Thinking about purchasing a HomeKit device that acts as a hub and I'm trying to gauge if it will work out of the box or if I will need to make some PRs to support it. I've not seen any evidence of Home Assistant working with a HomeKit hub via the HomeKit Controller component.

Ah yup support for other Homekit device types will definitely need to be added. Please Cc: me on any PRs you file and I'll take a look!

Is this still an issue you are experiencing? Can you please try upgrading to the latest version of Home Assistant (0.90) and report back if this is still a problem? Thanks!


There is a bug present

There are a lot of errors in the code, and tensor operations are also incorrect

The dimensionality of tensor operations is also incorrect

代码中有很多错误，张量操作也不正确

这个问题有解决吗？我发现很多tensor的操作都是大小不匹配的


feat: Add method for exporting and importing notes

In order to register notes that can be passed through a side channel, we need a method to import/export them

I'd prefer Client::import_note() instead of Client::insert_input_note().
Renamed
In the future, we'd probably want to enable importing of both pending and committed notes (i.e., Note vs. RecordedNote). ?>So, we might have to create a separate struct where note authentication info is optional.
Created an issue for this, also related to #68 that implements an enum for Note/RecordedNote

For CLI command structure, I wonder if it would be better to have import and export be top level commands. So, we'd say miden-client import note to import a note.

Created an issue for this as well. I don't think it's necessary right now but as the project takes form we might want to do that.


Verify Mantra $OM

Description
To set Mantra $OM as verified
Checklist

Upgrading Asset to Verified

If upgrading an Asset to Verified, please see the requirements specified at LISTING, and ensure the following:

[x] Asset is defined thoroughly at the Cosmos Chain Registry.

[x] A meaningful description (and extended_description, unless: meme, variant, or non-primary chain token).
[x] Associated socials, including website and twitter (unless: meme, variant, or non-primary chain token).
[x] Logo Image has a square Aspect Ratio, < 250 KB file size, and appropriate visual contrast with Osmosis Zone colors.

[x]  Liquidity: This pool contains contains at least $1k USD-worth of liquidity of the asset (Provide Pool ID): ______ (Skip if alloy constituent)

'Verified' Status Validation Checklist (to be completed by Osmosis Zone maintainers):

[x] Verify appearance and metadata
[x] Accurate Price
[x] Trading and routing functionality
[ ] Withdraw and Deposit

[ ] Deposit Transaction URL (if in-app)

https://app.osmosis.zone/assets/OM
Pools 2262 and 2263

Pending SQS routing issue


merge package from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>chore(scripts): cover@#overwrite c8 --temp-directory build/coverage ava && c8 report -r lcov --temp-directory build/coverage
chore(package): add nyc from template
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/-test.js,tests/-test.mjs' as in template
chore(package): set $.ava.extensions='js,mjs' as in template

Codecov Report

Merging #389 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #389   +/-   ##
=======================================
  Coverage   83.56%   83.56%
=======================================
  Files           1        1
  Lines         213      213
=======================================
  Hits          178      178
  Misses         35       35

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 76933b4...594cd6c. Read the comment docs.

Coverage remained the same at 84.322% when pulling 594cd6c33d495010a4dcec143540cc6b14529ed1 on template-sync-1 into 76933b4bad67dbeffade9cf4604c8cef101ea766 on master.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[examples] Self Calibration in C++

I added a self calibration example that

Looks for a single RealSense device connected to a host PC.
Extracts the current calibration tables.
Runs self calibration (with a fixed set of params).
Shows the calibration to the user on a separate Window
Prompts the user for following actions (write, repeat, reset or exit).

My idea was to implement self calibration in a way that is easy to follow and that has a friendly interaction with the user. I used std lib and librealsense functions and divided the code in different functions for better understanding.
I remain attentive to your feedback, and would gladly apply any changes required from your side.

This effort goes in the direction of https://github.com/IntelRealSense/realsense-ros/issues/1205 and corresponds to the process of getting familiar with the API from my side. I hope this example can be useful to others.

Sorry, haven't had a sensor at hand to test fix the build issue and test again. Will do over the weekend.


Addon dropping events more than 50%

Hello Guys,  Observed that Addon is dropping events more than 50% in Log Analytics KQL. Is there any limitation that was configured in any script ?
The KQL query was running fine on Log analytics and giving the results but only few logs gets ingested into Splunk
Example: 10000 logs returned on Log analytics with KQL query. Only 5500 logs ingested into Splunk with same query configured on Add-on.
Would anyone please help here ?

KQL inputs have moved to the Splunk Add-on for Microsoft Cloud Services.


refactor(Loans): extend positions

Interbtc UI Pull Request Template
Description
Instead of computing each time each position amountUSD and all apys, we can extend the current positions and just compute these fields once.
Current behaviour (updates)

Please describe the current behaviour that you are modifying

New behaviour

Please describe the behaviour or changes this PR adds

Reproducible testing steps:

Please list all testing steps required for the reviewer to test this specific issue. Consider regressions and edge cases.

Let me know what you think @peterslany


ADU configured to be used as a module

[Enter feedback here]
We have created a number of Linux images using Yocto, which contains ADU. ADU (with swupdate) is used to update the image on the device using a A-B update scheme. As far as I'm aware we do not configure ADU to be used as a module anywhere.
In our first test our service uses a connection string from a device in the IoT Hub to enable it to connect to the IoT device. We tried using the SAME connection string for ADU as well. Which resulted in a strange timeouts for our service.
Our assumption is that two services, in this case our service and ADU, cannot share the same connection string. Is that assumption true? We are not able to find anything about this in the documentation.
In our second test we created a module on the device in the IoT hub. We connected to the device from our service using the devices connection string and ADU with the modules connection string. This seems to work well, as we have been able to do a number of updates this way. Is this a good approach to work with?
The documentation says "If Device Update agent is configured as a module copy the module's primary connection string.", we have used the same build and the same configuration when we tested to use:

The device primary connection string
The modules primary connection string
And it seems to work fine.

We have been unable to find any way to configure ADU to be used as a module in its git repos and this documentation.
I have a very vague recollection of there was a build flag for ADU if one wanted the module version or not. A while back, but I may be mistaken.

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

ID: d4f4520a-f352-6318-d524-828a60a6ec2f
Version Independent ID: 7e15e3b9-ca42-d37f-71c4-f9cee857b765
Content: Provisioning Device Update for Azure IoT Hub Agent
Content Source: articles/iot-hub-device-update/device-update-agent-provisioning.md
Service: iot-hub-device-update
GitHub Login: @eshashah-msft
Microsoft Alias: eshashah

@FinitelyFailed
Thanks for your feedback! We will investigate and update as appropriate.


Slow bootup (5s)

How to use it?

[ ] kwok
[ ] kwokctl --runtime=docker (default runtime)
[ ] kwokctl --runtime=binary
[ ] kwokctl --runtime=nerdctl
[ ] kwokctl --runtime=kind

What happened?
Based on this blog article I was told to report the startup time.
Essentially I use kwok for testing and TDD. It is faster than Minikube and that's why I stuck with it. Still however it's nowhere near "near instant" as advertised in that blog post. It takes at best 5s just to bootstrap when running my test-suite (way better than 20-60s for Minikube) but still quite slow for rapid TDD.
benchmark.sh
#! /bin/bash

# Start daemon
container_id=$(docker run --rm -d -p 8080:8080 registry.k8s.io/kwok/cluster:v1.26.0)

# Count time taken to bootstrap
start=$(date +%s.%N)
while true; do
    kubectl -s :8080 get service
    if [ $? -eq 0 ]; then
        break
    fi
    sleep 0.1
done
end=$(date +%s.%N)
runtime=$(python -c "print(round($end - $start, 2))")
echo "Time taken to bootstrap: ${runtime}s"

# Kill daemon
docker stop $container_id

This gives about 5 seconds. Is this the expected time?
What did you expect to happen?
<1-2s to be near instant
How can we reproduce it (as minimally and precisely as possible)?
Run the script on a modern machine with i7 CPU.
Anything else we need to know?
No response
Kwok version

$ kwok --version
kwok: command not found

$ kwokctl --version
kwokctl: command not found

OS version

```console
On Linux:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
$ uname -a
Linux firefly 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
</details>

I've tried it and it's only slow in the all-in-one image, I've found the cause and will optimise the bootup speed in future.

Currently, kwokctl does preparation and version checking when creating a cluster, which causes a speed drop. After trying to hardcode off the various checks, I did manage to get just etcd and apiserver to start in less than 2 seconds.
If you are so sensitive to speed, perhaps we could add a flag to make apiserver available immediately after startup without having to wait for readiness, but this could lead to erratic behaviour.

#359 This is a change that skips all checks, just as fast as the original version without any checks, although fast but many things are not really ready, mainly waiting for components like Apiserver to be ready.
I tried it with your script.

v0.1.0
#359

my mac m1
4s
1.6s

my old mac
10s
4s

If you are interested you can try to build it based on that PR make build-cluster-image

/area performance

Just thought uI'll share that for testing I've managed to speed things up by instead of re-creating the kwok cluster for each test, to simply re-use the same and then clear it for each test. Should work for most use-cases.
pytest pseudocode
@pytest.fixture(autouse=True, scope="function")
def kwok_cluster_reset(kwok_cluster):
    """ Reset cluster on each test """
    yield
    kwok_cluster.run("delete all --all --now --ignore-not-found")

@pytest.fixture(scope="session")
def kwok_cluster():
    # start cluster with initial nodes
    ....

    yield Kube()

Cool, if there is more data in the cluster, re-creating may be faster than emptying. However, emptying is indeed a very effective method in simple scenarios

I tried the image based on kwok 0.3.0 and the boot time is already down to 2s on my laptop
registry.k8s.io/kwok/cluster:v0.3.0-k8s.v1.27.3
https://kwok.sigs.k8s.io/docs/user/all-in-one-image/

v0.3 startup speed is now under 2 seconds, feel free to open it if you have any other questions
/close


Resource references to contained resources get corrupted when posting

When posting a Resource with an internal #anchor in a resource reference (to a contained resource), the resource reference gets converted to a url with just "/"

This issue seems to be resolved.

Spark now adds its fhirbase to the url, so if you post
<Patient xmlns="http://hl7.org/fhir">
    <contained>
        <Organization>
            <id value="myManagingOrganization"/>
            <name value="Just testing this"/>
        </Organization>
    </contained>
    <managingOrganization>
        <reference value="#myManagingOrganization" />
    </managingOrganization>
</Patient>

Spark will convert the reference to:
    <reference value="http://spark.furore.com/fhir/#myManagingOrganization"  />


Reusing outputs

Hi @mattcieslak,
I'm running qsiprep and I want to test out a couple of options for our lab (namely, RPE vs. Syn). I'm curious if there is a way to either:

Reuse anat outputs from fmriprep -OR-
Reuse anat outputs from qsiprep runs

That would help streamline my processing if I can just change the flags for how SDC is handled without having to fully re-run the anat workflow.
Thanks

Hi @araikes! You can't re-use anat outputs from fmriprep because qsiprep orients images differently and ac-pc aligns the T1w. You can definitely re-use the anatomical workflow for multiple different versions of the dwi workflow, though. My approach to this would be

Run the whole workflow using fieldmaps
Copy the working directory elsewhere if you want a backup
Delete the dwi_preproc_wf directory from the working directory used in (1)
Run the SyN version of the pipeline specifying the same working directory from (1)

Unless you have terrible fieldmaps, I'd definitely recommend using them over SyN though. We've found that SyN gets the displacement directoin wrong in orbitofrontal sometimes.

That workflow makes sense and I will give it a shot.
The main motivation for my thought was comparing groups that have fieldmaps (a current dataset) with a similar one collected several years ago with fieldmaps. It's all single-shell, so SDC and HMC come down to TOPUP/EDDY but being able to run TOPUP on one group and not on the other and then trying to compare FA (for example) or tractography seems less than ideal.

Did this work out? If so I'd like to close the issue

Hi @mattcieslak,
I have been able to use this method to restart failed processing runs (cluster disconnected) but I haven't gotten around to testing this specific use case. Feel free to close it and I will reopen if I run into an issue when I do test it.


remove reserved introspection query name check

resolves #278
IntrospectionQuery as a query name is used by Apollo Rover.

fixed with https://github.com/TykTechnologies/graphql-go-tools/pull/178


Questions about development workflow

In your readme you describe an ideal development workflow:
https://github.com/dustinlyons/nixos-config?tab=readme-ov-file#development-workflow
This is a beginner question, but how can I inspect and verify the results of a build prior to applying it via switch?
I can see the results directory is cleaned up on completion, but I am having a hard time finding docs on how to analyze the actual diff being applied.

I think I can answer this in two ways.
The first way, is that Nix helps some of this traditional problem of needing to verify changes before applying them go away.
How does it do this?
With Nix, it's (almost) symlinks all the way down. What I mean by this, is it replaces all of your packages and other software it manages with a simple symlink. This symlink points to your current generation of whatever software it is. Generations change when you run nix run .#build-switch and Nix detects changes it needs to make live.
So "applying" a build in Nix, is just installing a new package in the Nix Store and updating the symlink. You're never actually "mutating" your system outside of swapping the symlink to another installation in the store. The new package sits right next to the previous one, so if something doesn't work, you just rollback to the last generation.
On macOS, this is
darwin-rebuild list-generations
darwin-rebuild switch --rollback --generation <generation>

if you want to move to a specific generation, otherwise to just rollback to the last one:
darwin-rebuild switch --rollback

I will say, however, some of the nix-darwin stuff is imperative. I think that's just by design given how macOS works in some cases. For example, this configuration manages homebrew and Mac app store apps, which are installed and managed imperatively.
Now, say you still want to see a diff. Generally, I just git for this and trust the Nix daemon. I can see the diff in what I'm telling Nix to do, which is good enough. There are other methods, though, like this project: https://github.com/Gabriella439/nix-diff
Hope this is helpful.
I'm also moving to use less packages in my main configuration, and more packages as part of projects I work on using devenv, direnv, and nix-direnv. You may check those out.
This keeps any "damage" to a smaller blast radius.

@dustinlyons great answer, this helps with my mental model a lot.
what are some additional resources for learning about nix internals that you would recommend to someone just getting started who has a lot of experience managing linux but coming from tools like ansible?


Cannot change accessTokenAcceptedVersion other than via manifest

Per the doc the change of accessTokenAcceptedVersion  from null (the default value) to 2.0 can be made only via the app manifest.
The problem is: none of the blades on the UI neither display the value nor allow to change it. How come?
Not setting to the correct value causes my service to fail at 403 without explanation.

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

ID: 2471c08b-befe-8e1a-df08-f13e116c231e
Version Independent ID: 0d827d33-2906-6352-9398-13863def9354
Content: Microsoft identity platform access tokens reference
Content Source: articles/active-directory/develop/access-tokens.md
Service: active-directory
Sub-service: develop
GitHub Login: @rwike77
Microsoft Alias: ryanwi

@abatishchev Thank you for your feedback. We will investigate and get back to you shortly.

@abatishchev We were not able to replicate the issue on our end. We would suggest you to open a Technical Support Ticket so our engineers can work with you on the same.

Please reopen. If you were unable to replicate it doesn't matter it doesn't exist.
Steps to reproduce:

Go to https://www.microsoft.com/en-us/sql-server/sql-server-downloads#
Click Developer -> Download now
Launch, choose Custom
Installation -> New SQL Server stand-alone installation
Specify edition: Developer, Next, Next, Next
At the Feature Selection step observer no option for LocalDB:

Start over, this time specify edition: Standard
Repeat, be able to select LocalDB


Improve GroupBy object constructors

I'm not pretty sure, but may I think we can just
-    def __init__(self):
-        """A constructor for attribute type hints."""
-        self._kser = cast(Series, None)
-        self._kdf = cast(DataFrame, None)
-        self._groupkeys = cast(List[Series], None)
-        self._as_index = cast(bool, None)
-        self._dropna = cast(bool, None)
-        self._column_labels_to_exlcude = cast(Set[Tuple], None)
-        self._agg_columns_selected = cast(bool, None)
-        self._agg_columns = cast(List, None)
+    def __init__(
+        self,
+        kser: Series = None,
+        kdf: DataFrame = None,
+        groupkeys: List[Series] = None,
+        as_index: bool = False,
+        dropna: bool = False,
+        column_labels_to_exlcude: Set[Tuple] = None,
+        agg_columns_selected: bool = False,
+        agg_columns: List = None,
+    ):
+        self._kser = kser
+        self._kdf = kdf
+        self._groupkeys = groupkeys
+        self._as_index = as_index
+        self._dropna = dropna
+        self._column_labels_to_exlcude = column_labels_to_exlcude
+        self._agg_columns_selected = agg_columns_selected
+        self._agg_columns = agg_columns

     @property
     def _groupkeys_scols(self):
@@ -2652,7 +2661,7 @@ class SeriesGroupBy(GroupBy):
             return kser

     @property
-    def _kdf(self) -> DataFrame:
+    def _kdf(self) -> DataFrame:  # type: ignore[override]
         return self._kser._kdf

??
Since the initializer we added to GroupBy is just for type checking for now, I don't think we need to make much change right now.

In order to reuse GroupBy's constructor, SeriesGroupBy might have to add a setter to the property _kdf.
Now, the PR follows what @itholic suggested.
FYI @itholic @ueshin

Shall we use a constructor as a constructor first? I submitted a PR to your branch xinrong-databricks/koalas#1.

Thank you @ueshin, your approach is so clean!

Codecov Report

Merging #1920 (fcbe1b5) into master (07b4eeb) will decrease coverage by 2.69%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1920      +/-   ##
==========================================
- Coverage   94.08%   91.38%   -2.70%
==========================================
  Files          41       41
  Lines       10022     9927      -95
==========================================
- Hits         9429     9072     -357
- Misses        593      855     +262

Impacted Files
Coverage Δ

databricks/koalas/groupby.py
91.34% <100.00%> (+0.90%)
:arrow_up:

databricks/koalas/usage_logging/__init__.py
25.66% <0.00%> (-66.65%)
:arrow_down:

databricks/koalas/usage_logging/usage_logger.py
47.82% <0.00%> (-52.18%)
:arrow_down:

databricks/koalas/__init__.py
68.75% <0.00%> (-21.88%)
:arrow_down:

databricks/conftest.py
89.83% <0.00%> (-10.17%)
:arrow_down:

databricks/koalas/spark/functions.py
88.88% <0.00%> (-7.41%)
:arrow_down:

databricks/koalas/accessors.py
86.43% <0.00%> (-7.04%)
:arrow_down:

databricks/koalas/namespace.py
78.17% <0.00%> (-6.07%)
:arrow_down:

databricks/koalas/generic.py
88.37% <0.00%> (-4.78%)
:arrow_down:

databricks/koalas/frame.py
93.47% <0.00%> (-3.14%)
:arrow_down:

... and 14 more

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 07b4eeb...fcbe1b5. Read the comment docs.

Thanks! merging.


Fix typo in the Python system install balloon message

For #2868

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR)
[x] Title summarizes what is changing
[x] Has a news entry file (remember to thank yourself!)
[x] ~Unit tests & system/integration tests are added/updated~
[x] ~Any new/changed dependencies in package.json are pinned (e.g. "1.2.3", not "^1.2.3" for the specified version)~
[x] ~package-lock.json has been regenerated by running npm install (if dependencies have changed)~

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

Thanks!


[T4A4][F10-B1] Calvin Yang JiaWei

Ready for review

Some comments added. Please close the PR after reading comments.
Hi Hi, great effort! Do take a look @ the comment above ~


[Issue-9946][Pulsar Functions]Fix: Deleting a Pulsar Function with a name that includes a colon character crashes the pulsar broker

Fixes #9946
Motivation
I'm able to successfully deploy in Pulsar a Pulsar function that includes a ':' as part of its function name. When I later try to delete the function deployment, the Pulsar broker ends up crashing with an IllegalArgumentException in its log stating "Invalid format for fully qualified instance name: :". If the KubernetesRuntime is configured, this prevents deletion of the function's statefulset.
Since pulsar accepts a function name that includes ':' during creation, it should support it during deletion as well.
Modifications

Changed org.apache.pulsar.functions.utils.FunctionInstanceId constructor to split on the last colon in the function name, so that it both retrieves the instanceId and tolerates the presence of colons in the function name
Added unit test org.apache.pulsar.functions.utils.FunctionInstanceIdTest to validate parsing

Verifying this change
This change added tests and can be verified as follows:
pulsar-functions/utils/src/test/java/org/apache/pulsar/functions/utils/FunctionInstanceIdTest

Added test to verify parsing of / delimiters
Added test to verify parsing of instanceId
Added test to verify successful parsing of function names that include colons

Documentation

Does this pull request introduce a new feature? no

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


Remote repository not found due to hardcoded filter

Using a custom installation of Github does not work because there is a hard-coded filter that excludes custom domains:
https://github.com/fabiospampinato/vscode-open-in-github/blob/92aebc8183323697c29f36baf8b6a78dd360525b/src/utils.ts#L106
Removing this string filter for github.com makes the filter work. This should not be a hardcoded string and instead a reference to the setting openInGitHub.github.domain.

PR welcome to add exactly that setting.

fixed in v1.2.4.


Automator: update common-files@master in istio/istio@master

Generated by Automator - 2020-11-01T19:44:49+00:00

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
c1b9368e045c530a6419c7cec13b30ef48deba16
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
c1b9368e045c530a6419c7cec13b30ef48deba16
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
c1b9368e045c530a6419c7cec13b30ef48deba16
link
/test integ-pilot-k8s-tests_istio

integ-security-k8s-tests_istio
c1b9368e045c530a6419c7cec13b30ef48deba16
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
c1b9368e045c530a6419c7cec13b30ef48deba16
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-pilot-k8s-tests_istio


Heltec Wireless Tracker

Hello
I have an issue with the Heltec wireless tracker, if it is in power-off mode, it doesn't power-on after power-supply is connected, the orange led turn on but the board no .
Is it possible to force the power-on of the board after supply connected ?
thank you

Hello IW9GRL & Ricardo
I am using the Heltec wirless tracker and it powers on and off by removing/reconnecting USB power as long as you do NOT have a battery connected.  I use it this way in my vehicle and it works perfectly.
I hope this help.
73 John GW4BVE

Hello IW9GRL & Ricardo
I am using the Heltec wirless tracker and it powers on and off by removing/reconnecting USB power as long as you do NOT have a battery connected. I use it this way in my vehicle and it works perfectly.
I hope this help.
73 John GW4BVE

Hi
thank you for your answer, do you mean if I remove the 18650 battery inside it power-on when power come from usb ?
I'm using Heltec Wireless tracker in my motorcycle and it is very annoying every time remove the seat to press the reset button .
Waiting a better solution from Ricardo ( that I thank a lot for his huge job ) I will proceed in this way, changing powering from my motorcycle , avoiding power not shutdown when I remove starter-key !
have a nice day
73 de IW9GRL

Good morning IW9GRL
This is the board I use:
https://www.aliexpress.com/item/1005006966037417.html
I have it powered by USB in my vehicle with no battery connected to the board.   It powers on when I start the vehicle and off when I stop, which is as I think you want to operate.
Have you tried removing the battery and just using USB power?
73 John GW4BVE

there is no way to have a physical or code switch to turn it completely on and off with this board
so unless we have a pin checking for voltage there is no way to make it on after deep sleep

Same Heltec Xireless tracker board here.
After some bootloop issues ( which were solved by re-uploading file system) i have now the issue that this board does not appear on my bluetooth list on my phone.
Any suggestions ?

Same Heltec Xireless tracker board here. After some bootloop issues ( which were solved by re-uploading file system) i have now the issue that this board does not appear on my bluetooth list on my phone. Any suggestions ?

on Apple Phones you add boards in the app, not on BT over configuration of the iPhone
aprs.fi apps and others on IOS have the search for BLE devices inside it

Heltec Wireless Tracker V1.1
I have loaded current version into 2 of these.
They work well (after also uploading SPIFFS;), but no Bluetooth on either.
Load same config onto T-Beam, BT is fine?
How to find the problem?
BTW: Thanks so much for bringing APRS into 21st Century:)

If have the same problem as greghall-au. No Bluetooth with Heltec wireless tracker V1.1
vy 73 de Klaus, DL7AIR

@greghall-au and @DL7AIR ,
Heltecs have BLE (not classic BT) so (for now) APRSDROID does not have a serial protocol to work with BLE modules
it works for BLE Terminal App in Android. And also APRS.fi app on iOS APPLE phones


Incorrect rendering code samples in docs

I found a problem in docs https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-items all code samples has incorrect style.

I check Github page by edit button all looks gook.

I see the same in multiple browsers. @Sarabeth-Jaffe-Microsoft can you check with our doc colleagues about a) if this is something we're doing wrong and b) what the best place to report this sort of issue is?

Thanks for letting us know, @mfilippov! The docs team is looking into the cause of this issue now.

Documentaion fixed, thank you.


No License specified

Hannes:
I am thinking of evaluating sqlbrite for my work project. You seem to have not specified licensing terms. Without that I cannot use this project. Can you add a LICENSE.md/txt in the root folder? Normally the Apache and MIT licenses are blessed license. Anything other than that would create a hassle especially for mobile development.

jep, apache 2 license ... I m currently updating to sqlbrite 0.3.0 and will
add the missing license file
harinair<EMAIL_ADDRESS>schrieb am Sa., 5. Sep. 2015 08:19:

Hannes:
I am thinking of evaluating sqlbrite for my work project. You seem to have
not specified licensing terms. Without that I cannot use this project. Can
you add a LICENSE.md/txt in the root folder? Normally the Apache and MIT
licenses are blessed license. Anything other than that would create a
hassle especially for mobile development.
—
Reply to this email directly or view it on GitHub
https://github.com/sockeqwe/sqlbrite-dao/issues/7.


MemcachED?

Any chance on updating it so it will work with Memcached?
Memcache is no longer used or suppoprted.

https://github.com/akirk/php-ratelimiter/pull/6


Please invite me to the GitHub Community Organization

Name
Kaustubh
Discord Username (if applicable)
Kaustubh#6641
Additional Context
I am interested in Open source. I would like to ask for help to guide me on how to start with Open source contribution.

Welcome to the community!


Ecto.Query.preload with module name is not working as expected

Environment

Elixir version: Elixir 1.4.2
Database: PostgreSQL 9.6
Ecto version (mix deps): 2.1.4
Database adapter and version (mix deps): postgrex 0.13.2
Operating system: macOS 10.12.6

Current behavior
Code sample:
defmodule App.Story do
  use App.Web, :model

  alias App.{Card, Placement}

  schema "stories" do
    has_many :placements, Placement
    has_many :cards, through: [:placements, :card]

    timestamps()
  end
end

defmodule App.Placement do
  use App.Web, :model

  alias App.{Card, Story}

  schema "placements" do
    belongs_to :card, Card
    belongs_to :story, Story

    timestamps()
  end
end

defmodule App.Card do
  use App.Web, :model

  alias App.Placement

  schema "cards" do
    has_many :placements, Placement

    timestamps()
  end
end

query = from(s in App.Story)
cards_query = from(c in App.Card) # works
cards_query = App.Card # doesn't work
query = preload(query, cards: ^cards_query)

App.Repo.all(query)

in second case it trows an error: schema App.Card does not have association App.Card
Expected behavior
Expected (according to @ericmj) both cases to behave the same.

The preloader should call Ecto.Queryable.to_query/1 on all passed queryables instead of expecting them to already be %Ecto.Query{}.

@ericmj the issue is that we also allow it to be an atom which is the association name and we can't call Ecto.Queryable on that (at least not for atoms). I think our best option here is to improve the error message if the atom starts with "Elixir.". Thoughts?

Can we check if the atom is an association and then call the protocol?

This means a typo in the association name will now become a much worse error message, no?

We can still special handle the error message by checking Elixir. like you
suggested/
On Tue, Oct 17, 2017 at 8:17 PM, José Valim<EMAIL_ADDRESS>wrote:

This means a typo in the association name will now become a much worse
error message, no?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/elixir-ecto/ecto/issues/2279#issuecomment-337321127,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AATV2hLDIf7BgYde4Fo3Z0YzRrrjU2Y9ks5stO9UgaJpZM4P8SdY
.

--
Eric Meadows-Jönsson


Added Hover effect Issue no #146

Hover effect added in testimonial section

@HK853 hover colors aren't matching with the website theme

@Priyaaa1  So should I try another color for successfully merging the branch
and also do you have any suggestion related to color so i work on that

@HK853 kindly add a comment mentioning your issue here.


name of server in configuration can't contain blank/Chinese character

Bug Report
Name of server in configuration can't contain blank, or a error output will display when save.
Steps to reproduce the behavior:
    "abapfs.remote": {

        "TEST 100": { "Contain blank here
            "url": "http://s4dev01.****.com:8000/",
            "username": "****",
            "password": "****",
            "client": "100",
            "language": "EN",
            "allowSelfSigned": false,
            "sapGui": {
                "server": "***.***.***.***",
                "systemNumber": "00"
            }
        }

open program file and then save.
output:
Message: Request vscabap.readConfig failed with message: Cannot destructure property 'sapGui' of 't' as it is undefined.
Code: -32603

Sorry for the delay, fix should come later today. Didn't try chinese character, but does work with a space and a cat face :)
    "TEST 🐱100": {
      "url": "https://localhost:50001",
      "username": "developer",
      "password": "",
      "allowSelfSigned": true,
      "client": "001",
      "sapGui": {
        "server": "localhost"
      }
    },


Keyboard navigation state is triggered when user types in an input field

Repro: https://codesandbox.io/s/mutable-https-bcgblb?file=/example.tsx

focus input field
type inside input field
hover over menu items
there is a focus ring on menu items 🚨

The above is caused because keyborg detects keydown events on input fields as keyboard interaction

Closed by #27


Fix project dependency resolution when isolated projects enabled

Fixes #?
Context
Replace some uncontrolled access to project state with access coordinated by ProjectState. This removes some problems that were being reported during project dependency resolution when isolated projects is enabled.
Also adds validation for projects accessed via Project.findProject().
Contributor Checklist

[ ] Review Contribution Guidelines
[ ] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[ ] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[ ] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[ ] Provide unit tests (under <subproject>/src/test) to verify logic
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[ ] Ensure that tests pass sanity check: ./gradlew sanityCheck
[ ] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

@bot-gradle test and merge

Your PR is queued because #17064 is being built.

OK, I've already triggered a build for you.

@bot-gradle test and merge

Your PR is queued because #17093 is being built.

Pre-tested commit build failed.

OK, I've already triggered a build for you.


Make language metadata more complete

See https://github.com/glottobank/grambank-cldf/issues/8

Now that the data in question is available as CLDF dataset, we shouldn't include this data in the Grambank release anymore, but just require the Glottolog CLDF dataset as additional data source.
@SimonGreenhill @HedvigS this will require changes in the data processing code.

Right, terrific. Now to figure out how the best incorporate that into the workflow. I'll get on that when I have time.


Add option to wait for cert files before starting Envoy

Resolves https://github.com/istio/istio/issues/11495
This is a feature required by our customer for release 1.1.

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests.sh
c429a72d326920901d3e7e8f28169335447e248f
link
/test e2e-simpleTests

prow/istio-pilot-multicluster-e2e.sh
c429a72d326920901d3e7e8f28169335447e248f
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-simpleTests.sh
c429a72d326920901d3e7e8f28169335447e248f
link
/test e2e-simpleTests

prow/istio-pilot-multicluster-e2e.sh
c429a72d326920901d3e7e8f28169335447e248f
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
c429a72d326920901d3e7e8f28169335447e248f
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test e2e-simpleTests

/cc @serathius

@myidpt: GitHub didn't allow me to request PR reviews from the following users: serathius.
Note that only istio members and repo collaborators can review this PR, and authors cannot review their own PRs.

In response to this:

/cc @serathius

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s secret mounts can be marked as non-optional. Would that work instead of this PR, or does that cause issues with app readiness?

@ayj That doesn't work, the customer requires the pod to be up without Envoy being started. They have traffic not going through the Envoy so Envoy may not be hard-dependency.

@myidpt: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
3dea187e08d8c352a93dd88d27875de0f8da78c2
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
3dea187e08d8c352a93dd88d27875de0f8da78c2
link
/test istio-pilot-multicluster-e2e

prow/e2e_pilotv2_auth_sds.sh
3dea187e08d8c352a93dd88d27875de0f8da78c2
link
/test istio_auth_sds_e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
3dea187e08d8c352a93dd88d27875de0f8da78c2
link
/test istio-pilot-multicluster-e2e

prow/e2e_pilotv2_auth_sds.sh
3dea187e08d8c352a93dd88d27875de0f8da78c2
link
/test istio_auth_sds_e2e

prow/istio-integ-k8s-tests.sh
fa8b90758de9b3cf87aea3bba97a05bcef7bebef
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
fa8b90758de9b3cf87aea3bba97a05bcef7bebef
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
fa8b90758de9b3cf87aea3bba97a05bcef7bebef
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: myidpt
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: nmittler
If they are not already assigned, you can assign the PR to them by writing /assign @nmittler in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pilot/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-multicluster-e2e.sh
fa8b90758de9b3cf87aea3bba97a05bcef7bebef
link
/test istio-pilot-multicluster-e2e

prow/istio-integ-k8s-tests.sh
d0bedd75d9d665865d938f366b79bfaf6c1431cd
link
/test istio-integ-k8s-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@myidpt: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-integ-k8s-tests.sh
d0bedd75d9d665865d938f366b79bfaf6c1431cd
link
/test istio-integ-k8s-tests

prow/istio-pilot-multicluster-e2e.sh
d0bedd75d9d665865d938f366b79bfaf6c1431cd
link
/test istio-pilot-multicluster-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@myidpt: PR needs rebase.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@myidpt Given the 1.1 schedule, it doesn't seem like this will make it into release 1.1.
I think this is (partially?) resolved on master by PR #12129.
The code in master is not providing the exact same behavior:

it waits in the main thread, not a goroutine
isn't based on a new command line (waits only in cases Envoy would require certs due to MUTUAL_TLS being required)
attempts to start Envoy after the additional wait even if the certs aren't there (falling back into current behavior)

Perhaps it makes sense to combine the two on master for release 1.2? This could involve:

adding the command line switch instead of current heuristics in condition; and
waiting infinitely, instead of fixed time, to return from the wait loop

I think these two changes are sufficient to give the same user behavior.


local firebase config move to env.local

Hi, now I'm trying to execute this project at my local environment.
I found that it is not good writing firebase config to application code ( which is under the control of git)  for security reason.
So this PR is moving firebase config to .env.local(this file is gitignored) .
There is no contributing guide, and this is a first time pull request to this project, so please tell me if the contributing method is wrong.

@ebiryu

Could you review this?

Sure!
@daisuke-fukuda
LGTM! Thank you for your PR.


apply-changes now exists

code review welcome

going to go ahead and merge this and then make the timeout change.


Use importmulti descriptor support

Depends on (don't merge before, because there's no unified fully functional branch):

https://github.com/bitcoin/bitcoin/pull/14491 (descriptor imports with importmulti)
https://github.com/bitcoin/bitcoin/pull/14075 (import watch only pubkeys to the keypool if private keys are disabled)
https://github.com/bitcoin/bitcoin/pull/14021 (import and use origin info)

Also gets rid of bip32 dependency.
Usage:
./hwi.py --testnet --device-type ledger getkeypool --keypool --bech32 "m/84'/1'/0'" "0/*"  0 10
[{"desc": "wpkh([01234567/84h/1h/0']tpub_for_account/0/*)", "range": [0, 10], "timestamp": "now", "internal": false, "keypool": true}]

./hwi.py --testnet --device-type ledger getkeypool --keypool --internal --bech32 "m/84'/1'/0'" "0/*"  0 10
...

light tACK 97e4e369a2b34e7b36506a7dbdd73f16a0758f87

Before merging this, I would like to have rebased versions of the mentioned Bitcoin Core PRs so that there is actually working code that people can use. I'll be updating (and probably rewriting) my two PRs (the import to keypool and import key origin data) soon (hopefully). Then I will review this.

I have a work in progress branch here: https://github.com/Sjors/bitcoin/commits/2018/11/watch-only-keypool
It still can't create a valid psbt though, see my comment: https://github.com/bitcoin/bitcoin/pull/14021#issuecomment-436193667

@Sjors just noting that your WIP branch, when importing keys to keypool, seems to enter keys into the keypool in a random-looking order. First key being index 216, then 307, etc.

@instagibbs I noticed that too. Wasn't sure if I screwed something up during manual rebase.

It might be related to how descriptors are expanded and entered, versus the separate key entries. Still... already a nicer experience otherwise. Was easily able to do 1000 keys internal and external in a few seconds.
If I get some time today I can take a deeper dive.

I've rebased all of my PRs and updated my hww branch which has them all merged.

Ok I think I know what is happening: ImportData is just a std::set structure, which means when you Expand your descriptor, they're added in some sort of sorting order, rather than insertion-order.
Probably too cute, but we could make a custom comparator that sorts based on the range?

Using your new hww branch, I'm still getting an error when trying to parse the BIP32 paths. Here's my steps:
export RECEIVE=`./hwi.py --device-type=ledger --testnet getkeypool --bech32 --keypool "m/84h/1h/0h" "0/*" 0 100`
export CHANGE=`./hwi.py --device-type=ledger --testnet getkeypool --bech32 --keypool --internal "m/84h/1h/0h" "1/*" 0 100`
export DESTINATION=`bitcoin-cli -rpcwallet=A getnewaddress`
bitcoin-cli createwallet "HWW" true
bitcoin-cli -rpcwallet=HWW importmulti '$RECEIVE'
bitcoin-cli -rpcwallet=HWW importmulti '$CHANGE'
bitcoin-cli -rpcwallet=HWW walletcreatefundedpsbt '[]' '[{"$DESTINATION": 0.01}]' 0
bitcoin-cli decodepsbt "the above psbt"
error code: -22
error message:
TX decode failed Size of key was not the expected size for the type BIP32 keypath: unspecified iostream_category error

Nice! BIP-compat as default is a good idea.

With an earlier wallet I'm noticing walletcreatefundedpsbt ... true no longer adds bip32 derivation, even though that info is present when you do getaddressinfo. Don't we need some sort of change to the PSBT function to use the new hdmasterkeyid field?

IIRC with watchonly type stuff often PSBT stuff would require the private key in the wallet in order to generate various path information. With my branches I had to support pubkey-only.

I've been able to create PSBTs with derivation info in the past without private keys in the wallet.

Ok then I'm thinking of much older branches

The underlying provider there m_provider is the actual CWallet.

Looks like the fingerprint hex chars, within each byte, are reversed, not the actual bytes themselves?
./hwi.py -f ad4c1514 getkeypool 0 1
[{"timestamp": "now", "range": [0, 1], "internal": false, "desc": "pkh([dac45141/44h/0h]xpub6ATogMCQsGJsht8SBGFTNmafpVpprv5eWF1nVKYqgRrNaRCNrMTwL87N6SdTiEC4ZPf6VfcjUxdjxLj3iRMBTkQDEVYwtKiEZtZdutZUFVr/0/0/*)", "keypool": false}]

Fixed the fingerprint and removed the fancy python 3.7 syntax.

I'm still getting the above error. I updated the commands to use the latest syntax. One thing that's perhaps worth noting about the wallet I'm importing is that the PSBT ends up spending from a change address m/84'/1'/0'/1/0 (and sends change to m/84'/1'/0'/1/98, but that's random).
We also still need to deal with the randomised order for the keypool, as that violates the gap limit rule for other wallets.

Stray thought for future possibly: Would be nice to have it return  both internal and external descriptors in one shot, especially if using a BIP standard derivation path.

pkh([14154cad/m]tpubD6NzVbkrYhZ4WcK3ZNuDevuPvG1r2h9svYa6UkzdbtSKNRoyH9wopTnKUFbRPJH23roz2g4rfLSRreVkatdw8wfNsgMd1xdUARiFGHhk2Et/44/0/0/*)

the /m] part where there's no hardened derivation to the xpub is considered invalid by Core fwiw.

Make sure you arent using testnet. It gives very vague error for version
byte of xpub.
On Wed, Nov 7, 2018, 5:27 PM Andrew Chow<EMAIL_ADDRESS>wrote:

I tried to import [{"timestamp": "now", "keypool": false, "desc":
"pkh([73111820/44h/0h/0h]xpub6CDBnE2h1S9tur4TYcAtK5njSAeSVnPYzDfq9svGa4oyvDBXK7ezyLCGRW83UTBWFEUa2YJJCuarEDPfxQFJgE3a4Uo6GtPwqQGFDwTQh6N/0/*)",
"range": [0, 100], "internal": false}] and I got a Descriptor is invalid
error.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/achow101/HWI/pull/47#issuecomment-436800857, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFgC0_Yk7EK9ZMCyb3ul1gnhqnTCJwnSks5us144gaJpZM4YOvUl
.

@Sjors I am still unable to replicate your issue. I am able to create a psbt, sign it with ./hwi.py signtx, finalize it, and send it.

Weird. Did you use testnet, bech32 and import a previously used wallet? Was the destination an address from a different wallet?
Spending from a freshly funded address vs. spending from an imported address doesn't make a difference for me.
If I send to an inside the wallet it works fine.
@instagibbs I fixed the m with no hardened derivation issue.

@Sjors https://github.com/bitcoin/bitcoin/pull/14689 should fix the problem you were having. I've also updated the hww branch with it.

Indeed it does. Also note that generatenewaddress created a bech32 address on my system due to the defaults.

tACK 44b4496dcd7b383b3cfe24c73b9ed9948053bb4e

tACK https://github.com/achow101/HWI/pull/47/commits/44b4496dcd7b383b3cfe24c73b9ed9948053bb4e
Did a few different round-trips on ledger, checked all other commands as well as sanity check.


Logs documentation in Developer Portal

Creating a PR for discussion with interested parties.

Merged into development directly to avoid some conflicts.


Images from Docker Modules are not properly updated

The current implementation of the update Script only checks the images of our main docker compose. All images from added modules like exliquid are not updated:
https://github.com/samply/bridgehead/blob/3236128ca186cc109ada5ac69e371d26300df5d7/lib/update-bridgehead.sh#L84

@torbrenner Has this been fixed by a6975e3?

yes, the issue is resolved with this commit.


[HOLD for payment 2023-06-12] [$1000]  IOU threads don't have pin options

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open app
Select chat
Observe the pin icon at the right top corner
Open IOU thread
Observe there is no pin icon option

Expected Result:
There should be a pin to top button for IOU threads
Actual Result:
There is no pin to top button for IOU thread
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/f8a38b7d-7593-4e5e-b5f3-1e1693f0a3ad

Expensify/Expensify Issue URL:
Issue reported by: @sofoniasN
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1684491850346359
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~013d2843b51576b6af
Upwork Job ID:<PHONE_NUMBER>572973568
Last Price Increase: 2023-05-30

Hi @strepanier03 - apologies, I'm going to be traveling soon so I want to make sure this has its due attention ASAP. Thanks for jumping in <3

Able to recreate this:

This is an interesting one because those threads should be pinned by default. @trjExpensify can you confirm? If so, should users be able to unpin these?
In case these are pinned by default, I think that we need to update the default value here when we create these

Proposal

Please re-state the problem that we are trying to solve in this issue.
Right now no pin option is there in IOU threads.
What is the root cause of that problem?
HeaderWithCloseButton does not contain a PIN option in it like the other header have example HeaderView.
What changes do you think we should make in order to solve the problem?
So we need to add the pin option to the HeaderWithCloseButton. if you always wanted that then we can have it hardcoded or else we can enable it with the help of prop if it is TRUE only then it will enable the PIN option in IOU threads
Also, I think we need to make some UI changes to manage the PIN option alongside the green dot.
You can have a look at the video attached to this.
https://github.com/Expensify/App/assets/55981820/776e1f50-5250-4e86-8073-0378bc79dee2

@trjExpensify is out until tomorrow so we can wait for them to get back online to weigh in.

Sorry for the delay, folks! We seem to be using some terminology interchangeably in this issue to refer to iou/expense reports, and the individual requests on said reports.

This is an interesting one because those threads should be pinned by default. @trjExpensify can you confirm? If so, should users be able to unpin these?

An iou/expenseReport is pinned by default when it has an outstanding amount and can't be unpinned until it's paid. As such, no pin icon should exist to control pin/unpinning. Additionally, to avoid "doubling" the icons in the LHN, the pin icon is replaced with the green dot instead of showing both. So what we see here is correct:

With regards to the view of each individual request on an iou/expense report, they do not get pinned to the LHN by default and additional then, they do not have a green dot in the LHN. The action to settle up is at the iou/expense report level, so that's where the GBR (green brick road) leads to. I can see the argument to allow individual requests to be freely pinned/unpinned by members in the app though if they want, so we can add the pin icon to the header alongside the overflow menu in this view:

It would function just like pinning/unpinning any other chat in the app.

That makes sense @trjExpensify. So the pin/unpin icon should only be visible in the header for a single transaction view.

Yup, I'd say so!
CC: @JmillsExpensify for vis when you're back.

Thanks for confirming! @Ollyws since you posted the proposal first, would you mind updating it to reflect @trjExpensify's comment above?

Hey all,
just saw the issue being worked on here and wanted to share that I had reported the same issue in past to which I was told that its expected behavior. Also, the reporter in this issue had reported the same and what I see from @trjExpensify 's explanation above (the difference between IOU report and individual report view), I think my report was the actual valid one. My expected behavior suggested for a pin icon in NOT IOU reports which aligns with the explanation above while the bug report of this issue suggested icon in IOU report which isnt the expected behavior according to the comment above.
Slack thread for my bug report: here

Please look into this @strepanier03

@chiragxarora  - The bug report for this GH was done on May 19th and your's was posted May 20th. I don't think we need to make any change to the payment or bug reporter.

You're right about the dates but my query was regarding the content of the bug report. The issue we have solved here matches more with my report and expected results than the OP.

Thanks for the patience @chiragxarora, I raised this internally to get a sense check before proceeding.

To start, thank you so much for being on the ball and actively engaged with the bugs and fixes being rolled out. We really appreciate the time, care, and effort you're putting into being part of the Open Source community. It's awesome that you were able to come up with the proper expected results prior to the discussion about what it should be.
However, in this case, we have decided to not make a change to the bug reporter or payment.
The main factor in receiving a bug report payment is reporting the bug, not suggesting an expected result, which is more in line with a proposal to fix the issue.
Additionally, in this GH we had to discuss the expected results and come to a consensus on what the expected result was. This would have happened if your bug report had gone to a GH as well and it could have gone either way because no one was 100% sure what the expected result was until we talked about it.
For the bug report payment, we care about the bug being reported with reliable recreation steps. The expected result is an extra data point that is handy to kick-start the fix but in most cases, we hammer out the expected results through discussion after the bug has been reported.
I hope this explanation makes sense and that you continue to be actively involved in our community.

@SofoniasN  - I cannot confidently find your profile in Upwork, can you apply for the bug reporting job here.
@eVoloshchak and @Ollyws - I have hired you both for the job in Upwork. I'll check this GH and the job later this afternoon to see if I can pay it out. @eVoloshchak feel free to post the checklist items and I'll update it and make the reg test if applicable.

This does make sense to me and I'm okay with the decision the team made. And thankyou so much for looking deep into this quickly on my request 😊

You're welcome @chiragxarora, I appreciate you raising it and feeling comfortable pushing back to get a deeper explanation 🙌

@Ollyws - I have paid you via Upwork. I'll check in tomorrow to see if I can move this along further.

@SofoniasN  - I cannot confidently find your profile in Upwork, can you apply for the bug reporting job here.
@eVoloshchak and @Ollyws - I have hired you both for the job in Upwork. I'll check this GH and the job later this afternoon to see if I can pay it out. @eVoloshchak feel free to post the checklist items and I'll update it and make the reg test if applicable.

Hey @strepanier03  Thank you for the swift response on the raised issue. I couldnt apply to the job on upwork using the link, it says only invited people can apply for the job. Here is a link to my upwork profile to make it easier, https://www.upwork.com/freelancers/~01af126bea0cac3ae8.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01af126bea0cac3ae8

Thank you @SofoniasN - I have hired you to the job.

@eVoloshchak feel free to post the checklist items and I'll update it and make the reg test if applicable.

@strepanier03, I don't think BZ checklist is applicable here, this was a feature request, not a bug

Thank you @eVoloshchak, that is what we've done on other feature request GHs so I think you're right.
I'm working on payout now @eVoloshchak and @SofoniasN, I was out yesterday due to the loss of a beloved pet but I'll wrap this up asap for both you. Sorry for the delay.

All set! I've paid everyone and closed contracts with feedback. Thank you everyone!


Feature Request: Allow Parameters to Pass to mintty

I would like to be able to pass --tabbar to mintty from the launcher. Currently it doesn't appear possible to do so. So I edited launcher.c & added it to the command string. An option to pass custom parameters would be helpful I think.

I think I already talked about this elsewhere, but the blocker (at least in my head) for such a feature is the command line parsing. I'm really trying to avoid having any arguments to the launcher itself in order to keep the parsing simple. I'll try to think about it.

I must have forgotten about this, because I'm pretty sure I was able to do what I was requesting here. But it has been a while since I used MSYS2, so I don't remember how of the top of my head. I'll look it up when I get back on my Windows machine.


metadata: Detach slaves without deleting them

Coverage remained the same at ?% when pulling 5d26779620fed9f447bc6d684da000f7b5576dfe on EdDev:detach-slave-without-deletion into 10688dead995231478001f333672cf6df598c042 on nmstate:master.

I miss information as to why this is needed, and problem it solves in the commit msg.

IMO the subject says it all, but if a longer story makes it clearer, hope the updated one does the job.

@cathay4t , I have added the test.


Try to reduce wasm size/loading time using go-wasm-bake

https://github.com/cretz/go-wasm-bake

Obsolete since move to GopherJS


Create VS Code extension

Create an extension for VSC for syntax highlighting and debugging.

Overall extension is done, jar just needs to be updated and published


[web] Multiview management JS API.

Document Link
https://flutter.dev/go/web-multiview-js-api
What problem are you solving?
Flutter Web only supports rendering to a single "view". This used to be limited to the body tag, but now it can be any hostElement.
Multi-view support is coming to desktop platforms, and for the web it's a good match to render an app split across multiple hostElements.
This design document proposes a JS API that would enable an external application (JS) to add/remove views to a running Flutter Web app.

I understand this is all work in progress, but is it necessary for addView/removeView functions to return Promise? As I see in implementation, dart functions return Future, but this is not needed currently
https://github.com/flutter/engine/blob/da3d49c30bccfbe0573d539d0aac55356b58e00e/lib/web_ui/lib/src/engine/app_bootstrap.dart#L71-L74
From the design doc:
let viewId1 = (await flutterApp).addView({
  hostElement: document.querySelector('#flutter_view_1');
});

but currently two awaits are needed:
let viewId1 = await (await flutterApp).addView({
  hostElement: document.querySelector('#flutter_view_1');
});

Having async functions make it unsafe to use the functions in lifecycle methods of other frameworks. For example, React doesn't support async lifecycle methods.

Hm, I understand what you're saying.
The two awaits shouldn't be a problem, it just happens that it's very convenient to leak the Promise of a FlutterApp, rather than the FlutterApp itself. (The JS code could be changed to await for the resolved promise).
I originally made those methods async, because I wasn't sure how "expensive" it was going to be to register/deregister views on the engine. It seems pretty unnecessary now.
WDYT @mdebbar, should add/removeView JS methods be sync?

@ditman @mdebbar I've created a PR so it will be easier to discuss proposed change there

Also @jacobsimionato! I'll ping you later tonight!

I personally think that some goals (in order of priority) for this API are:

Make it possible to create and destroy Flutter views within the host site without any visual glitches. I.e. you should be able to show a loading screen or spinner during any asynchronous parts of the bootstrap process and then hide the loading UI and show Flutter in the same frame.

Ensure creating and destroying Flutter views has minimal or no jank impact on the host app. E.g. if there is (regrettably)  heavy work to do when creating or destroying Flutter views, it's preferable to spread it out asynchronously vs doing it in one blocking chunk that causes the browser to block frames. I'm not even sure if there are choices to make here given the constraints of the browser environment, event loop etc.

Make addView and removeView APIs synchronous which would make it much simpler for developers to work with.

So I agree with @p-mazhnik that these APIs would be much more user friendly if they were synchronous, but I was just curious that we aren't going to negatively impact goals 1 and 2 above in the long term if we make this change. E.g. if we switch to a synchronous API, I think it's important that we can guarantee we'll draw actual Flutter content in the next frame after addView returns.

I mostly agree with what you're saying. I think the real issue with the current async API is that there is no way to cancel what addView is doing until it is completed – you have to wait for it to get the viewId, which is then needed for removeView. I wanted to solve this by making it synchronous (because it is synchronous internally) – this way view can be cleaned up in the same external synchronous process that initialized addition of the view, without any side-effects. Otherwise, in case of asynchronous api, i don't think we currently can guarantee that a view can be added and immediately removed before the next repaint? If it is true, I think it also breaks goals 1 and 2?

Something that we don't have yet, but could be added, is some internal support for views that are "yanked" that means, removed from the DOM externally, but not with removeView. I think that'd solve @p-mazhnik's problem.
In any case, I don't know if it can be guaranteed that adding a view is always going to be fully sync, hence why the method is async. In every other platform AFAIK, adding a view is certainly async.

The desktop team is OK with our API being sync, let me give it a shot, and see how it goes in our test apps!

Sounds good re trying it out! Is there any reason the behavior will be different right now? The future returns synchronously anyway, so I assumed marking the API synchronous will be a no-op and the question here is more about future changes to the implementation that may need to be asynchronous.
Re yanked views: Even if this became a synchronous API, it would be really nice if this could be supported in the same API layer without wrapping it in another layer of hideable DOM. Another possibility is an API that returns some object that contains the viewId synchronously, but could potentially have a promise on it that resolves when the view is fully loaded. E.g.
// Create a view
let myView = flutterApp.addView(hostElement: someElement);

// Remove a view, which can be done synchronously after creation.
flutterApp.removeView(myView.id);

// Alternative API for removing a view?
myView.remove();

// Wait for view to load
await myView.loadingPromise;

I'm just bouncing some ideas around, but overall I'd be thrilled to have synchronous APIs as @p-mazhnik is requesting as long as there is no major risk of glitchy behavior!

That API looks interesting Jacob. The yanking support is needed anyways, just to build some resilience into the Flutter App when views go missing outside of its control (not because the API to remove the view is lacking).
I like returning something more than a viewId to the JS code, and we can definitely explore that in the next version, or if we decide that we want to add some asynchronicity in the API without really making the methods async!
I will definitely add the "return something other than a viewId" proposal to the API, as a possible future addition, especially if at some point the API needs to be more asynchronous.

As of the behavior now: I don't think that much would change. We'd start returning a straight viewId rather than a Promise(viewId), but in JS you can await NotAPromise and it'll immediately return NotAPromise, so there's probably no changes needed in current user apps (only to clean up the unneeded awaits, of course)

I like @jacobsimionato's idea with API that returns some object. Here are some examples from web frameworks that could be used for inspiration:
// Angular
const app = await createApplication();
app.bootstrap(AngularComponent, document.getElementById('root'));
app.destroy();

// React
const root = React.createRoot(
  document.getElementById('root') as HTMLElement
);
root.render(<ReactApp />);
root.unmount();

// Vue
const app = createApp(VueApp);
app.mount('#root');
app.unmount();

So potentially we could have something similar in Flutter
// sync view object creation
const view = flutterApp.createView();
// async mount function
await view.mount({hostElement: document.getElementById('root')});

view.remove();

The reason I don't want to remove hostElement from Flutter is that it is not created by Flutter, so JS should own its complete lifecycle

Completely agree, this is reasonable and aligns with how react/vue/angular behave as well.

Should addView/removeView be called something like mount(config) and unmount(viewId)

flutterApp.mount sounds like flutter app itself is rendered on the screen, and not the flutter view. For example, from the two calls in a row:
flutterApp.mount()
flutterApp.mount()

I would expect that something is trying to mount twice, rather than two independent views being mounted.
flutterApp.addView seems to make more sense... Maybe if JS object is ever needed, it can be returned using naming flutterApp.createView?

flutterApp.mount sounds like flutter app itself is rendered on the screen, and not the flutter view. For example, from the two calls in a row:
flutterApp.mount()
flutterApp.mount()

I mean, you'd never call mount without any parameters, it'd be more like:
flutterApp.mount({
  hostElement: document.querySelector('#view_id_1'),
});
// or
flutterApp.mount(anotherViewConfig);

Maybe it looks weird because every other framework only supports a single root? 😎

you'd never call mount without any parameters

Yeah, so by providing new parameters to mount function, it feels like you're trying to re-mount the same object with the new parameters...
I think mount in linux should have a source and target that need to be specified: what drive is mounted and where.
If we apply this to the flutterApp.mount({ hostElement: document.getElementById('view_root')}), it seems that flutterApp is mounted to hostElement, which is not what we expect. For the mount naming, flutterView.mount({ hostElement: document.getElementById('view_root')}) seems more appropriate to me :)
btw Vue has support for multiple roots:
const app1 = createApp({
  /* ... */
})
app1.mount('#container-1')

const app2 = createApp({
  /* ... */
})
app2.mount('#container-2')

They also have a restriction that for each app instance, mount() can only be called once.

They also have a restriction that for each app instance, mount() can only be called once.

Right, in flutter web, that restriction doesn't exist, because one single app instance can render to multiple "roots".

I am not strictly against mount, but I think it might be confusing for the developers, although I could be mistaken

Nope, let's find a better name. I'd like for it to not have view in the name. Something like connect/disconnect or attach/detach or similar.
Connect sounds good too, because it reminds me of isConnected.
(Also: maybe addView is the way to go, but I'd like to reserve it for the later methods that return a View object, if we ever add them)

If you're quite convinced that we need a view object eventually, I think you may as well add it now. I quite like the idea of moving removeView to a method on the view object because it eliminates a category of errors - trying to call removeView with an invalid viewId (obviously there is still the error of trying to call removeView twice).
If if you don't want to go down that path, maybe it's fine to just keep calling the current version addView? Otherwise I don't mind attach/detach.

If you're quite convinced that we need a view object eventually, I think you may as well add it now.

Definitely not convinced that we'll need that object in the future, but it's a good extension point if we want to add more view-related APIs to the embedder.
If addView sounds good to everybody, I can revert the renaming pretty easily. Here's some code that I've written applying @p-mazhnik's PR + renaming to mount:

https://github.com/ditman/flutter-experimental/blob/c7cc2c4b06f8cf1b8bd8439607e40bf9b8d59515/multi_counter/web/index.html#L56-L118

(That's the source for this app)

OK, you guys convinced me to not rename the methods. If you're not concerned with addView not returning a view right away, I'm not either. I'll take a look at the performance implications of the change to sync, and if it'll hurt us in the future.
For example, right now there's a couple of white frames between adding a view and having flutter take over and start rendering, and it'd be nice to have a way to reduce that lapse of unrendered content (or have a way to tell HTML: the view is not fully rendered yet, don't show it).

Awesome - thanks for looking deep into this! Helping avoid those white frames would be fantastic - I think that's the top priority see https://github.com/flutter/flutter/issues/138930#issuecomment-1979854244 above.
If we can't get Flutter to reliably paint in the next frame after addView is called, I think the ideal chain of events is something like:

Browser calls Flutter's requestAnimationFrame callback to tell it to render a frame.
If Flutter is truly ready to layout and paint the first frame for a given view, it resolves the loading Promise for that view.
The host framework then hides any loading spinners and ensures that the Flutter view has the correct size etc.
Flutter performs the actual layout and paint logic, based on the size of the host elements and constraints etc which may have been updated in step 3.
The frame is rendered by the browser. User sees a clean transition from DOM-based loading UI to Flutter UI.

OK, I think I understand the white frames better now. Flutter is removing whatever HTML tricks the programmer writes into the flutter view right as the view gets registered here, but then that has an async gap where we trigger an event so the app is aware that the views have changed calls setState, which then causes the tree to recompose.
One way of removing the gap between HTML and Flutter may be to postpone the injection of the DOM of the Flutter view into the hostElement until we've started painting frames there, so the handoff is more immediate.

Okay, I know I've been pushing for having an async API based on the assumption that rendering the first frame will likely always need to occur after an async gap. But it sounds like I was wrong about that based on the conversation today with @ditman and @yjbanov , so sync sounds great. Much easier for the developer if we can get to the point where they call synchronous addView and then Flutter renders real content ready for the next frame. Apologies for the noise!

Great investigation @ditman!
Just in case, attaching the demo of the issue so that others can better understand what we are discussing.
In the demo, loading spinner is displayed in the hostElement provided to the addView function (I used current async version for the recording, if it matters (it doesn't)), then Flutter removes child dom elements and renders its ui after the gap.

demo

loading spinner is displayed in the hostElement provided to the addView function

Correct, and it only shows for a few frames, until flutter takes control of the view and erases its contents (before it's ready to render).
We're thinking of (maybe) delaying the injection of the Flutter View into the DOM, until the renderer is going to do something with it.

The addView/removeView methods have been made sync in the code.
I've tweaked the docs to reflect this better. I've also tweaked some types because the JS-interop that we're actually using is less wishy-washy than what I knew about when I originally wrote the document!

what is the status of this now?

@wanjm this should be available in Flutter 3.22 stable, but we're still polishing some bits of the embedding (like wheel scrolling, text inputs, and things like that). Expect a somewhat public announcement (alongside proper documentation) when this is ready to be tested!

@ditman  thanks for your reply;
as been told in multi-window, flutter raster views that has not been changed for it raster all the views when it need to refresh;   does web version has the problem?

flutter raster views that has not been changed for it raster all the views when it need to refresh

Hm, as far as I know, multi-view is implemented with Widgets, so I guess it depends on how your state propagates to your different views and your repaint boundaries. When I tested with my "multi-apps" I don't think it was re-rendering more than one "scaffold" at a time, but of course that's also not the typical layout...
This is a very long way of saying: the web engine has no opinion about what needs to be re-rendered, if the framework says that a certain widget tree needs to be re-rendered, it'll do that.

@ditman I noticed that current implementation of ui_web.views.getHostElement API only returns hostElement when multi-view embedding is used. I believe we need to support implicit view case as well, so this API can be independent of the different embedding strategies. I created a PR to support implicit view case: https://github.com/flutter/engine/pull/53296

This has landed, and is part of the Flutter framework now.
See:

https://docs.flutter.dev/platform-integration/web/embedding-flutter-web


The requested URL has no service assigned.

https://:****/openxpki/cgi-bin/webui.fcgi?page=bootstrap%21structure&baseurl=%2Fopenxpki%2F&_=1704788191083
https://:****/openxpki/cgi-bin/webui.fcgi?page=welcome&_=1704788191042
{
    "status": {
        "level": "error",
        "message": "The requested URL has no service assigned."
    }
}

Thank you!

Please use the Mailinglist for support, not the issue tracker: https://www.openxpki.org/#resources

Thanks!


(FACT-3441) improve reliability of uname resolver

In the case that the uname command fails to return expected content, this adds validation to the output looking for both an empty result, or missing results.
Logging is added to help identify the condition.

Note that in testing, we are seeing occasional failures with puppetserver failing to start because of nil dereferences related to this code.

@joshcooper done!

@jonathannewman could you rebase to pick up this change https://github.com/puppetlabs/facter/pull/2625?

Sorry @joshcooper didn't see your ping.  rebased.

Thanks for this @jonathannewman !


Drop the unused clients in the repo.

The first two clients to be removed are the easiest since they're not directly used at all.
The projectshare client will be replaced with a new one targeted at the new iTwin Platform APIs once they're fully available. However, it will not live in this repository and will be somewhere else to be determined.
There will be no replacement for rbac client as all of the iTwin Platform APIs are expected to handle the access control within each API group directly.

@Mergifyio update


A click doesn't trigger the AutoSuggestBox.SuggestionChosen Event

Describe the bug
The chosen item doesn't show in AutoSuggestBox.
Also see https://learn.microsoft.com/en-us/answers/questions/1374937/why-autosuggestbox-need-click-more-than-1-time-to
Steps to reproduce the bug
<AutoSuggestBox x:Name="Control1" TextChanged="AutoSuggestBox_TextChanged"
SuggestionChosen="AutoSuggestBox_SuggestionChosen" Width="300"
AutomationProperties.Name="Basic AutoSuggestBox"
QuerySubmitted="AutoSuggestBox_QuerySubmitted"
QueryIcon="Find"
GotFocus="AutoSuggestBox_GotFocus"/>
private void AutoSuggestBox_GotFocus(object sender, RoutedEventArgs e)
{
AutoSuggestBox box = (sender as AutoSuggestBox);
box.ItemsSource = Cats;
box.IsSuggestionListOpen = true;
}
1.click the find icon
2.choose a suggested item
3.there is nothing in the AutoSuggestBox
Expected behavior
No response
Screenshots
https://imgur.com/a/nYGgkNE
NuGet package version
None
Windows version
No response
Additional context
No response

Thanks for reporting this. Have you tried the QuerySubmitted event work as a workaround?

Please reactivate if Query Submitted does not work for you.


prototype with classes

New Py file with an example like "how to start refactoring"

You can merge this pull request for future re-engineering of your application.
Move your code step-by-step from main.py to weatherApp.py


Fix quickmenu retaining focus after being closed

This fixes a bug introduced in #914 where closing the menu in any way other than pressing Esc would retain focus, and therefore not forward input to libvim. This is a known bug in revery-ui/revery#412, which had a workaround that was only partly removed and not replaced.

Merging this immediately since it's just a bugfix

Thanks for catching this and the quick fix, @glennsl !


Make Knative Health Ports Configureable

Expected Behavior
The health port should be configureable. https://github.com/knative/pkg/blob/7051d301e7f40b15ae9c37ebdf1d36051d326eb1/injection/sharedmain/main.go#L319
Actual Behavior
Our team would like to utilize the knative health port, but we are limited to port 8080, and wanted to the port to be configurable
Additional Info

Hey - do you have context on why you are limited to port 8080?


merge package template from Kronos-Tools/npm-package-template

Updated standard to latest version

Codecov Report

Merging #278 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #278   +/-   ##
=======================================
  Coverage   88.42%   88.42%
=======================================
  Files           1        1
  Lines         216      216
=======================================
  Hits          191      191
  Misses         25       25

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 87add49...8bab17c. Read the comment docs.


Bug in Graham Scan Convex Hull.cpp

I guess there is a bug in the implementation of Graham's Scan algorithm.
Try the following testcase:
Input:  { 0, 0 }, { 1, 1 }, { 2, 2 }, { 1, 4 }
output: { 1, 4 }, { 2, 2 }, { 1, 1 }, { 0, 0 }
correct output: { 1, 4 }, { 2, 2 }, { 0, 0 }
I believe the problem is in line 70: points[1] is not necessarily a vertex of convex hull if points[1] and points[2] have the same direction.
Btw: thank you for your wonderful blogs and readable code!

Yeah, the convex hull code doesn't even pass on CSES, like bruh.


convert meshfunction -> meshtags

fix to build against current dolfinx master

Not sure I understand what the index vector is meant to be. So I guessed :-D


Outdated OCaml version for recent glibc

Hello,
I tried to install Melange on a Manjaro Linux machine and got the following error on the esy step:
...
      signals_nat.c:184:13: error: variably modified 'sig_alt_stack' at file scope
      184 | static char sig_alt_stack[SIGSTKSZ];
          |             ^~~~~~~~~~~~~
...

It seems to be a well known error: https://github.com/ocaml/ocaml/issues/10250\
I tried to update all dependencies:
{
  "name": "melange-project",
  "dependencies": {
    "ocaml": "4.14.x",
    "melange": "melange-re/melange#d9d1fac2124b4c20c6f48089461b17dcb534f496",
    "@opam/cmdliner": "1.1.1",
    "@opam/reason": "3.8.0",
    "@opam/ocaml-lsp-server": "*"
  },
  "esy": {
    "buildsInSource": "unsafe",
    "build": [
      "ln -sfn #{melange.install} node_modules/bs-platform",
      "bsb -make-world"
    ]
  },
  "resolutions": {
    "@opam/reason": "reasonml/reason:reason.opam#4f6ff7616bfa699059d642a3d16d8905d83555f6"
  },
  "installConfig": {
    "pnp": false
  }
}

But then bumped into this new error:
info esy 0.6.12-dev (using esy.json)
bsb: This command was removed in favor of `mel`
error: command failed: 'bsb' '-make-world' (exited with 1)
esy-build-package: exiting with errors above...
error: build failed with exit code: 1

There seems to be various dependencies and commands to update so that this template work on an up to date Linux distribution.
Thanks a lot

Could you try giving current master a spin and seeing if it fixes your issues?

I just tried. It does work.
Thanks


Implemented to_list to Index/MultiIndex

Added to_list - tolist as an alias - to the Index and MultiIndex.
This implementation idea is basically inspired from Series.to_list.
>>> idx = ks.Index([1, 2, 3, 4, 5])
>>> idx.to_list()
[1, 2, 3, 4, 5]

>>> tuples = [(1, 'red'), (1, 'blue'), (2, 'red'), (2, 'green')]
>>> midx = ks.MultiIndex.from_tuples(tuples)
>>> midx.to_list()
[(1, 'red'), (1, 'blue'), (2, 'red'), (2, 'green')]

FYI: This implementation idea is basically inspired from Series.to_list.
https://github.com/databricks/koalas/blob/138c7b834b5f00d4d96c8ffb272bc1b1e025bd9c/databricks/koalas/series.py#L1497-L1515

Codecov Report

Merging #1948 (d2df72f) into master (e598f44) will decrease coverage by 3.30%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1948      +/-   ##
==========================================
- Coverage   94.50%   91.19%   -3.31%
==========================================
  Files          45       49       +4
  Lines       10682    10712      +30
==========================================
- Hits        10095     9769     -326
- Misses        587      943     +356

Impacted Files
Coverage Δ

databricks/koalas/missing/indexes.py
100.00% <ø> (ø)

databricks/koalas/indexes.py
96.94% <100.00%> (+0.09%)
:arrow_up:

databricks/koalas/usage_logging/__init__.py
25.66% <0.00%> (-66.65%)
:arrow_down:

databricks/koalas/usage_logging/usage_logger.py
47.82% <0.00%> (-52.18%)
:arrow_down:

databricks/koalas/__init__.py
68.75% <0.00%> (-21.88%)
:arrow_down:

databricks/conftest.py
89.83% <0.00%> (-10.17%)
:arrow_down:

databricks/koalas/spark/functions.py
88.88% <0.00%> (-7.41%)
:arrow_down:

databricks/koalas/accessors.py
86.43% <0.00%> (-7.04%)
:arrow_down:

databricks/koalas/namespace.py
78.17% <0.00%> (-6.07%)
:arrow_down:

databricks/koalas/generic.py
87.89% <0.00%> (-5.03%)
:arrow_down:

... and 24 more

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 e598f44...d2df72f. Read the comment docs.

I'll merge this  for now. Let's address https://github.com/databricks/koalas/pull/1948#discussion_r535805836
cc @ueshin

ref https://github.com/databricks/koalas/issues/1929