mqtt: can't set empty value

Describe the bug
I use EVCC in combination with Homeassistant. So EVCC is connected to a MQTT broker.
I use  topic evcc/loadpoints/1/vehicle/set to set which vehicle is connected.
Before 0.123.0 I had to send:
0 = Gastfahrzeug
1 = VehicleName1
2 = VehicleName2

So far, so good. With 0.123.0 now I've to send not the ID. I must now send the vehicleName. Okay so far.
I can now send vehicleName1 and vehicleName2. But I can't set it back to "Gastfahrzeug". Nothing works. Tested with "0", "Gastfahrzeug", "Guest", "Gast", "unknown", "Default" and "NULL".
Steps to reproduce
As described. Switch between vehicles over MQTT set and try to set "Gastfahrzeug".
Configuration details
vehicles:
- type: template
  template: cupra
  title: vehicleTitle1
  user: username
  password: password
  capacity: 58
  phases: 3
  name: vehicleName1
  icon: car
  identifiers:
    - tag2
- type: custom
  name: vehicleName2
  title: vehicleTitle2
  icon: car
  capacity: 89
  phases: 3
  onIdentify:
    mode: pv
    mincurrent: 6
    maxcurrent: 16
  identifiers:
    - tag1
  soc: # battery soc (%)
    source: http
    uri: 'https://homeassistant:8123/api/states'
    method: GET
    headers:
      - content-type: application/json
    auth:
      type: bearer
      password: ...
    insecure: false
    jq: '.[] | select(.entity_id=="sensor.xyz_state_of_charge").state|tonumber'
    timeout: 10s
  range: # optional electric range (km)
    source: http
    uri: 'https://homeassistant:8123/api/states'
    method: GET
    headers:
      - content-type: application/json
    auth:
      type: bearer
      password: ...
    insecure: false
    jq: '.[] | select(.entity_id=="sensor.xyz_range_electric").state|tonumber'
  odometer:
    source: http
    uri: 'https://homeassistant:8123/api/states'
    method: GET
    headers:
      - content-type: application/json
    auth:
      type: bearer
      password: ...
    insecure: false
    jq: '.[] | select(.entity_id=="sensor.xyz_odometer").state|tonumber'

Log details
[mqtt  ] ERROR 2023/12/22 17:43:33 set evcc/loadpoints/1/vehicle/set: not found: Gastfahrzeug
[mqtt  ] ERROR 2023/12/22 17:43:34 set evcc/loadpoints/1/vehicle/set: not found: Guest
[mqtt  ] ERROR 2023/12/22 17:43:35 set evcc/loadpoints/1/vehicle/set: not found: Gast
[mqtt  ] ERROR 2023/12/22 17:43:35 set evcc/loadpoints/1/vehicle/set: not found: unknown
[mqtt  ] ERROR 2023/12/22 17:43:43 set evcc/loadpoints/1/vehicle/set: not found: Default
[mqtt  ] ERROR 2023/12/22 17:43:48 set evcc/loadpoints/1/vehicle/set: not found: NULL
[lp-1  ] INFO 2023/12/22 17:43:52 vehicle updated: vehicleName2 -> vehicleName1
[lp-1  ] INFO 2023/12/22 17:45:52 vehicle updated: vehicleName1 -> unknown
[lp-1  ] INFO 2023/12/22 17:46:30 vehicle updated: unknown -> vehicleName2
[lp-1  ] INFO 2023/12/22 17:46:44 vehicle updated: vehicleName2 -> unknown

What type of operating system are you running?
HomeAssistant Add-on
Version
0.123.0

Did you try empty name?
if payload == "" {
	lp.SetVehicle(nil)
	return nil
}

Oh, yes. Also tried empty, "" and NIL with MQTT Explorer.
I'm unsure if it sends an empty set at all. As I do not see anything in the log.
In Homeassistant I tried seting nothing, "" and NIL.

The Homeassistant MQTT config now looks like this. It was like this as before I used it to translate 0, 1, 2 to the names.
  - command_topic: "evcc/loadpoints/1/vehicle/set"
    name: evcc_vehicle
    unique_id: uniqueid__evcc_vehicle_select
    icon: mdi:car
    availability_topic: "evcc/status"
    state_topic: "evcc/loadpoints/1/vehicleName"
    value_template: >
        {% if value == '' %}
          Kein Fahrzeug
        {% elif value == 'vehicleName1' %}
          vehicleName1
        {% elif value == 'vehicleName2' %}
          vehicleName2
        {% else %}
          Kein Fahrzeug
        {% endif %}
    command_template: >
        {% if value == 'Kein Fahrzeug' %}
          0
        {% elif value == 'vehicleName1' %}
          vehicleName1
        {% elif value == 'vehicleName2' %}
          vehicleName2
        {% else %}
          0
        {% endif %}
    options:
      - "Kein Fahrzeug"
      - "vehicleName1"
      - "vehicleName2"

I tried to send an empty message with the mosquitto_pub option "-n", that also did not do the trick. This does not even trigger an error in the EVCC GUI (other values for the vehicle title do).

I tried to send an empty message with the mosquitto_pub option "-n", that also did not do the trick. This does not even trigger an error in the EVCC GUI (other values for the vehicle title do).

Exactly what I also tried now. Doesn't work for me too. :(
EVCC doesn't log any error it just does nothing. Otherwiese when sending invalid options it shows in the logs.

Here's what's happening:
// ListenSetter creates a /set listener that resets the payload after handling
func (m *Client) ListenSetter(topic string, callback func(string) error) error {
	topic += "/set"
	err := m.Listen(topic, func(payload string) {
		if err := callback(payload); err != nil {
			m.log.ERROR.Printf("set %s: %v", topic, err)
		}
		if err := m.Publish(topic, true, ""); err != nil {
			m.log.ERROR.Printf("clear: %s: %v", topic, err)
		}
	})
	return err
}

and
// listen attaches listener to topic
func (m *Client) listen(topic string) paho.Token {
	token := m.Client.Subscribe(topic, m.Qos, func(c paho.Client, msg paho.Message) {
		payload := string(msg.Payload())
		m.log.TRACE.Printf("recv %s: '%v'", topic, payload)
		if len(payload) > 0 {
			m.mux.Lock()
			callbacks := m.listener[topic]
			m.mux.Unlock()

			for _, cb := range callbacks {
				cb(payload)
			}
		}
	})
	return token
}

Problem is that the listener never calls the callback when msg is empty to avoid double-roundtrip and clearing the set value. It is logged though:
recv evcc/loadpoints/1/vehicle/set: ''

I'm not sure what's the best way to allow empty messages for setters.

Um es nicht zu kompliziert zu machen: wie wäre es mit - als Synonym für "löschen"?

Ich habe gerade ein Dejavue:
https://github.com/evcc-io/evcc/issues/4848#issuecomment-1280428142

Works for me with 0.123.1. Thanks for resolving @andig.
If anyone else needs the HA MQTT template:
  - command_topic: "evcc/loadpoints/1/vehicle/set"
    name: evcc_vehicle
    unique_id: uniqueid__evcc_vehicle_select
    icon: mdi:car
    availability_topic: "evcc/status"
    state_topic: "evcc/loadpoints/1/vehicleName"
    value_template: >
        {% if value == '' %}
          Kein Fahrzeug
        {% elif value == 'vehicleName1' %}
          vehicleName1
        {% elif value == 'vehicleName2' %}
          vehicleName2
        {% else %}
          Kein Fahrzeug
        {% endif %}
    command_template: >
        {% if value == 'Kein Fahrzeug' %}
          -
        {% elif value == 'vehicleName1' %}
          vehicleName1
        {% elif value == 'vehicleName2' %}
          vehicleName2
        {% else %}
          -
        {% endif %}
    options:
      - "Kein Fahrzeug"
      - "vehicleName1"
      - "vehicleName2"


I added the scene to a project and nothing happens...

In Unity 2020.1.6f1 I created a new project, drag this asset into the project, then added the scene from this asset and clicked play. Nothing happened. it's just a blank camera view.
What steps are needed to get this to function as a terrain generator?

Thank you for using my assets.
I have made them compatible with 2020.1.6f1 and have committed a bug fix so you can use that one.
Thanks for the report.


Fix missing headers and broken check

Resolves #83

/test-force-approve
only comments and modifies a linter script

/test-force-approve


workflow-controller memory usage increases monotonically

Summary
Opened by request of @sarabala1979 on slack here.
What happened/what you expected to happen?
workflow-controller's memory usage increased monotonically for each submitted workflow. I expected its memory usage to free up some time after the workflow transitioned to a "finished" state.
Diagnostics
👀 Yes! We need all of your diagnostics, please make sure you add it all, otherwise we'll go around in circles asking you for it:
What Kubernetes provider are you using?
GKE
What version of Argo Workflows are you running?
3.1.0-rc14
What executor are you running? Docker/K8SAPI/Kubelet/PNS/Emissary
Emissary
Did this work in a previous version? I.e. is it a regression?
Unknown
Are you pasting thousands of log lines? That's too much information.
Yes, kind of, but I was asked to in this case.
The logs are 5.4MB, so I put them on GCS here.
The workflows in question completed at around 06:55 UTC

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

I can see log Deleting TTL expired workflow so I think TTL is working. Can you provide little more information about your environment? how busy is your cluster?
Can you check your cluster whether already deleted workflow is still there?
Deleting TTL expired workflow '793fb579-caf4-49d1-a7e6-f4bb1d246095/bf14d17b-a55f-50d3-8420-f6196563b19e'"

The cluster is under pretty heavy load. This workflow bf14d17b-a55f-50d3-8420-f6196563b19e was one of 216 that a user submitted at once which created a total of 3493 nodes.

@tymokvo it means TTL is deleting. Because of Big workflows and heavy load on new workflows controller informer size is growing.
Can you try to reduce TTL time?

Yep, I will do that and follow up here. Thanks!

Memory usage should be less that 1GB in most use cases:

How many workflows are you running.
How many nodes per workflows on average?

Can we get a pprof dump please?
This is an example: https://github.com/argoproj/argo-workflows/blob/master/hack/capture-pprof.sh

We have seen it increase to ~10GB after running 215 workflows with a total of 55,492 nodes over the course of 8 hours at which point the node was OOM and killed the workflow-controller and a few of our other monitoring services.
I will get the pprof dump asap.

pprof output files 1, 2, and 3. (I don't know what these are :grimacing: )

For the same duration as the log file linked above 2021-08-10T06:50:00 to 2021-08-11T17:30:00 (~10.5hrs) we ran 452 workflows. These were started in groups of related workflows that we call "jobs"
Here's a table of how the load over time breaks down:

job_id
started_at
finished_at
workflow_count
nodes

9b0feb31
2021-08-10 07:10:08
2021-08-10 07:17:32
1
1102

07084fdd
2021-08-10 07:20:05
2021-08-10 07:39:21
4
4408

27bfa22a
2021-08-10 07:22:12
2021-08-10 07:25:39
1
71

8c7d1f83
2021-08-10 08:11:15
2021-08-10 08:13:41
1
122

b50d9c33
2021-08-10 08:11:16
2021-08-10 08:14:05
1
122

64c3714e
2021-08-10 08:11:17
2021-08-10 08:14:02
1
122

c8d6a157
2021-08-10 08:30:24
2021-08-10 08:31:58
1
122

5f20fee0
2021-08-10 10:13:55
2021-08-10 10:27:48
1
2602

5bc52074
2021-08-10 11:54:06
2021-08-10 12:16:37
1
2602

b5cd4ac1
2021-08-10 12:17:03
2021-08-10 12:23:20
1
202

3d92c52d
2021-08-10 17:06:29
2021-08-10 17:13:20
1
485

fd8391df
2021-08-10 17:18:27
2021-08-10 17:24:30
1
468

88f43ad7
2021-08-10 17:18:35
2021-08-10 17:22:27
1
399

db98f1a7
2021-08-10 17:20:18
2021-08-10 17:23:15
1
400

98a90a6e
2021-08-10 18:13:43
2021-08-10 18:21:42
1
468

a7db6e70
2021-08-10 18:13:53
2021-08-10 18:19:01
1
399

6776dea9
2021-08-10 18:14:04
2021-08-10 18:18:38
1
400

b4309ad5
2021-08-11 06:37:28
2021-08-11 06:39:22
216
3493

25eecca4
2021-08-11 06:45:19
2021-08-11 06:55:13
216
4321

pprof output files 1, 2, and 3. (I don't know what these are 😬 )

The heap dump is missing, and allows appears to be attached twice? It's the heap I want to see most.

It might be good to set-up 30m: https://bit.ly/book-30m-with-argo-team

Ok, I will try to find some time. I ran it again and captured the heap dump svg here.

I though I'd jump in - but I didn't see anything out of the ordinary in the pprof dumps.
Can I ask you to review https://argoproj.github.io/argo-workflows/running-at-massive-scale/
Additionally, you didn't state if this is a regression or not, is this is a brand new installation?

It's hard to tell if it's a regression, it's the first time that we've experienced this specific issue. We weren't running this kind of load before upgrading to Argo 3 and we've been using 3.1.0-rc14 for a while now (though we had to fork and patch to mitigate #6276 )
Re: running at massive scale, we've implemented parallelism limits, and we're using the emissary executor, and the k8s cluster can handle the load (the good thing about the issue that we've been having is that the workflows have all been completing successfully). But, the memory consumption by workflow controller is starving all the other infrastructure services (fluentbit, prometheus, some custom eventing services, etc.)
I will look into implementing rate limiting and the reque time, though.

Try the re-queue setting, if that works great, if not - lets get on a call.

Code - you really should be running the latest version which will be v3.1.5 (or v3.1.6 if that is released today). If needs be, fork and re-apply your patch.

Ok, I'll start there.

One thing I forgot to mention: we are using per-user namespaces with resource limits to prevent users starving each other of CPU/memory. This and our resource allocation settings amount to each namespace being able to run ~66 pods simultaneously.
In order to test the suggested changes appropriately, I've been trying to replicate the memory consumption behavior on our test cluster and have gotten similar behavior by running jobs that create >200 workflows in two different user namespaces simultaneously.
In the monitoring screenshot below, the spike in activity between 12:15 and 12:30 is in the same user namespace and the memory usage doesn't appear to increase.
In the spike in activity between 12:40 and 12:55, the workflows are the same two as the previous spike, but in separate namespaces. Here, the memory consumption does seem to increase.

pprof heap dump 1, 2, 3.
workflow-controller logs.

Did you try the newer version? I'm not clear.

Yeah, sorry for the delay. We have been doing a lot of testing in addition to fixing our own systems. I just ran the latest test over night.
We've upgraded to 3.1.6, increased the requeue time to 30s, and reduced the TTL time to 1200 seconds for all finished states. We're still seeing memory consumption by the controller exceed 10GB for some of our workflows.
This is the memory consumption reported by GCP metrics for the one I ran last night:

We're still seeing memory consumption

So generally reduced?

Yeah, initially it seemed to be resolved until I ran this test case again last night.

So we're making progress.
Can I request dumps when the memory usage is high again?

Sure thing, it's still over 10GB so I can do it now.

Dump 1, 2, 3

So this is the current kubectl top output:
POD                                    NAME                  CPU(cores)   MEMORY(bytes)
workflow-controller-7f7bd4cdc9-tf4qb   argo-dumpster         2m           127Mi
workflow-controller-7f7bd4cdc9-tf4qb   workflow-controller   89m          7733Mi

Here's the pprof allocs, heap, and profile.
The pprof calls were taking so long over HTTP that kubectl port-forward kept timing out so I had to make a pod in the cluster to generate them. If anyone else needs an image to do this, I made one here.

Hotspots

util.MergeTo
WorkflowSemaphoneKeyIndexFunc

Can you run you controller with INDEX_WORKFLOW_SEMAPHORE_KEYS=false? Note that this will disable semaphores.


Added LocalStrorage Profile Data Security

Motivation
Sensitive worker information (eg. messages, email addresses) are being stored in plaintext format in localstorage on a device. This information can be extracted from a device very easily. Recoverable under /data/data/com.app.name in Android.
The Profile Data is being encrypted using AES-256 in CBC mode with the secret key being a SHA256 of the users current session key when they login. The profile data is wiped when the user logs out. The security functionality is broken out into separate files under /security so it can be reused again for other uses in the future. If the session key or profile data returned in the auth response is null, the profileData will be set to null in localstorage, as before.
The users messages which come from sync are not being encypted as part of this change as Sync is handling the storage/retrieval of the messages itself and can't be changed from raincatcher-user. Similarly, the session token is not being encrypted as this will be stored in a cookie in the future.
JIRA Ticket
https://issues.jboss.org/browse/RAINCATCH-409

@TommyJ1994 Sorry about this, had closed the feature branch on 0.2.0 release. Reopening to preserve discussion.


Integration with selenium grid

Hello, we are trying to test web navigation in mobile devices. We've setup everything but the grid can't find the right node capabilities to send the request.
Selenium grid hub up and running:
java -Dfile.encoding=UTF-8 -cp "selendroid-grid-plugin-0.16.0.jar;selenium-server-standalone-2.47.1.jar" org.openqa.grid.selenium.GridLauncher -capabilityMatcher io.selendroid.grid.SelendroidCapabilityMatcher -role hub -host <IP_ADDRESS> -port 4444
Selendroid standalone started:
java -jar selendroid-standalone-0.16.0-with-dependencies.jar -port 5556
(/wd/hub/status):
{"status":0,"value":{"supportedApps":[{"appId":"io.selendroid.androiddriver:0.16.0","mainActivity":"io.selendroid.androiddriver.WebViewActivity","basePackage":"io.selendroid.androiddriver"}],"os":{"arch":"amd64","name":"Windows 8.1","version":"6.3"},"build":{"browserName":"selendroid","version":"0.16.0"},"supportedDevices":[{"platformVersion":"19","emulator":true,"apiTargetType":"google","avdName":"Nexus_4_API_19"},{"platformVersion":"22","emulator":true,"apiTargetType":"google","avdName":"Nexus_5_API_22"}]}}
Node registered:
curl -H "Content-Type: application/json" -X POST --data @selendroid-nodes-config.json http://<IP_ADDRESS>:4444/grid/register
Where I have the two emulators defined in selendroid-nodes-config.json :
{
"capabilities": [{
"browserName": "android",
"platform": "ANDROID",
"version": "19",
"emulator": true,
"maxInstances": 1
}, {
"browserName": "android",
"platform": "ANDROID",
"version": "22",
"emulator": true,
"maxInstances": 1
}],
"configuration": {
"maxSession": 1,
"register": true,
"hubHost": "<IP_ADDRESS>",
"hubPort": 4444,
"remoteHost": "http://<IP_ADDRESS>:5556",
"proxy": "io.selendroid.grid.SelendroidSessionProxy"
}
}
I try to launch the Android 22 emulator:
DesiredCapabilities caps = DesiredCapabilities.android();
caps.setVersion("22");
caps.setCapability(SelendroidCapabilities.EMULATOR, true);
caps.setBrowserName("android");
mDriver = new RemoteWebDriver(new URL("http://<IP_ADDRESS>:4444/wd/hub"), caps);
mDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
But it can't find it (I launch the maven Project from Jenkins):
... Caused by: org.openqa.selenium.WebDriverException: Error forwarding the new session cannot find : Capabilities [{platform=ANDROID, browserName=android, emulator=true, version=22}]
Can you help me in configuring and choosing different emulators?
Or what is the recommended configuration or architecture for testing in several emulators?
Same questions with real devices, can I plug more tan one device? How would I define the node configuration for the selenium grid?
Thanks very much.
Lucia.

If I delete the:
caps.setCapability(SelendroidCapabilities.EMULATOR, true);
and I have two emulators started, it uses the first one in the "adb devices" list, not the one that matches the android version.
Besides, if I have no emulators started, it starts the one he wants, also...

The browserName should be selendroid, unless you are testing against a browser.  You're also missing screenSize and aut arguments.


Fixing Egress Firewall Rule Source & Destination Types

For egress firewall rules the source type can only be global and the destination type can be global or CIDR.
@maksimov @andylyall Please review.

:+1:


[DOCFIX] ALLUXIO-1998 Update "Browse File System" to "Browse" in docs/cn/Running-Alluxio-on-EC2-Mesos.md to be consistent with the Web UI navigation barBrowse File System to Browse

Update "Browse File System" to "Browse" in docs/cn/Running-Alluxio-on-EC2-Mesos.md to be consistent with the Web UI navigation barBrowse File System to Browse
The links is: https://alluxio.atlassian.net/browse/ALLUXIO-1998?filter=-4&jql=assignee in (EMPTY) order by created DESC

Can one of the admins verify this patch?

Thanks for submitting a patch to Tachyon!
We found your commits on GitHub aren't linking to a valid Github account yet.
For us to properly credit your contributions, would you spend a minute or two to set up your Github account by (1) following the Github instructions here, (2) closing this PR, and (3) creating another PR?
Thank you again for your contribution!


Fix CI

Closes: #438

Can you briefly explain why you are doing this change in the description, and fix the summary as well please


Optional Port and Protocol parameters

This PR introduces the option to pass a protocol other than https: and a port other than 443 to the get function. This will allow users of the package to use local authorization servers during development mode that aren't running on port 443 or https.

Related to issue #19

Coverage remained the same at 100.0% when pulling b70f9c7c8fce5ba017461649026aa8c5ebf1fdba on plambhsa:master into<PHONE_NUMBER>d8c4a7a13937c4f02c4cf05f64a4f2 on johncrisostomo:master.

Coverage remained the same at 100.0% when pulling b70f9c7c8fce5ba017461649026aa8c5ebf1fdba on plambhsa:master into<PHONE_NUMBER>d8c4a7a13937c4f02c4cf05f64a4f2 on johncrisostomo:master.

Coverage remained the same at 100.0% when pulling b70f9c7c8fce5ba017461649026aa8c5ebf1fdba on plambhsa:master into<PHONE_NUMBER>d8c4a7a13937c4f02c4cf05f64a4f2 on johncrisostomo:master.

Thanks again for the contribution @plambhsa ! Already reviewed this change and will publish it shortlly.


How does molecule find the role that it is going to apply during a test run?

Issue Type

Question

Background
I have a standard ansible role (standard structure) and am implementing molecule to test it.
I have noticed that there appears to be a convention when calling the role through the molecule playbook that allows you to call the role via the name of the directory that you are calling molecule from.
IE Given the below playbook if the directory that you called molecule from was called ansible-role-myrole then molecule would be able to find and apply the role ok.
- name: Converge
  become: true
  hosts: all
  roles:
    - ansible-role-myrole

Issue
This works great when running locally but when running CI in Jenkins, Jenkins has a nasty habit of renaming the repos when it clones them IE it will clone the role ansible-role-myrole and call it something like ansible-role-myrole-PR-24 which then the molecule playbook is then unable to find the role for.
Are there any other options in molecule on how to tell molecule where the role is that we want it to apply?

Actually I found a neat workaround. If you use the Docker in Docker testing method you can rename the directory when the volume is mounted.


[Chore] Split background tasks on develop branch

This PR changes the operation of the background tasks.
Previously, the background task only triggered once every 4 hours minimum. On triggering the task, the fetch-test-results API call is executed, and on completion, the exposure-detection API call is executed, effectively executing the two API asynchronous calls in series.
This change splits the execution of the API calls into two separate tasks. This allows the exposure detection call to maintain the higher priority, and adhere to the minimum timing specified by the ExposureNotification framework.
No changes have been made to the logic to determine whether to bypass the API calls, which are still driven by the RiskProvider class (for the exposure-detection API call) and the ENAExposureSubmissionService class (for the fetch-test-results API call)

Looks awesome! Thanks a lot! 🎈 🥳


Transient import error

I'm encountering a strange error using dask with scikit-allel v1.0.0 installed via conda-forge. I have a function in scikit-allel which internally imports a cython function. This function imports just fine if I import directly. However, if called within a dask multi-threaded execution, I sometimes get import errors. This may be no fault of dask but any help resolving this would be greatly appreciated. Minimal example here.

StackOverflow claims that imports in Python are threadsafe: http://stackoverflow.com/questions/12389526/import-inside-of-a-python-thread
So there goes my first guess. There still might be something else about importing the Cython module that isn't threadsafe, so I would still try a threading.Lock().

Thanks Stephan. I've moved the imports outside of the function and things
are working now, but I'm not sure that was the root of the problem, very
strange.
On Tuesday, November 1, 2016, Stephan Hoyer<EMAIL_ADDRESS>wrote:

StackOverflow claims that imports in Python are threadsafe:
http://stackoverflow.com/questions/12389526/import-
inside-of-a-python-thread
So there goes my first guess. There still might be something else about
importing the Cython module that isn't threadsafe, so I would still try a
threading.Lock().
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/1739#issuecomment-257486881, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAq8Qp5m2NeFlwNAVT2PZ12gBS2IWUniks5q5sF0gaJpZM4Klteu
.

--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Email<EMAIL_ADDRESS>Web: http://purl.org/net/aliman
Twitter: https://twitter.com/alimanfoo
Tel: +44 (0)1865 287721


wip beam support

WIP
TODO:

[x] (Rebase; it's quite behind)
[x] Test that it works; build a few scenarios
[ ] ~Maybe change the DB structure to be a bit less stateful and track history more?~ (n/a?)
[x] ~Check if it's faster than eventful~ ( it's not faster, but it uses less memory and db is smaller; further investigating to be done in a different issue)
[ ] ~Add a benchmark for this?~ ( todo in a later issue )
[ ] ~Remove specialisation to Sqlite in DbStore effect?~
[x] Clean up todo notes/errors
[x] ~Make the migrate command use the settings from the config file ( revert this - https://github.com/input-output-hk/plutus/pull/3158/files ?? )~
[x] ~Delete all eventful code~

Pre-submit checklist:

Branch

[x] Commit sequence broadly makes sense
[x] Key commits have useful messages
[x] Relevant tickets are mentioned in commit messages
[ ] Formatting, materialized Nix files, PNG optimization, etc. are updated

PR

[ ] Self-reviewed the diff
[ ] Useful pull request description
[ ] Reviewer requested

Pre-merge checklist:

[ ] Someone approved it
[ ] Commits have useful messages
[ ] Review clarifications made it into the code
[ ] History is moderately tidy; or going to squash-merge

hey @j-mueller ; there's one warning hanging around that i left in to remind myself of one fact:
i noticed in the original code we had a handling for in-memory (not via eventful) storage of the contracts and instances; but, i noticed that it only happened for the instances (the contract definitions were always stored in eventful)
i silently dropped anything to do with the in-memory part ( https://github.com/input-output-hk/plutus/pull/3294/files#diff-591cd2da7d1bea2816b5c929fb9b77e9206f30e5a4ccf33c0f333234903414acL101 )
i think i should add this back in, and add in a step to store the contract definitions in memory as well? or should i just put it back as it was?

We can't store the contract definitions in-memory because they are installed using separate CLI invocations (in separate processes) and the memory isn't preserved between them.
So I'd just put it back as it was.
Also note that when we have fully switched to the Builtin way of running contracts, as opposed to ContractExe, then we won't need to store the definitions at all because they are defined as a Haskell datatype. We could drop that table completely then.

Ah okay, fair enough, that makes total sense, thanks @j-mueller ! :)


Ease maintainability by merging into main yew repo

Question
What do you think about making the main yew repo more of a monorepo? We can still ship separately to crates.io if needed but I think it would be easier to keep yew-router updated if it depended on yew directly.

Agree, or at least  release yew and yew-router in the same pace,  currently I usually have to wait a few days for yew-router when a new release of yew came out.

IMHO organizing official Yew stack components as optional features of the primary repo is indeed preferable.

Yeah, I'm finding it difficult to keep this repo in sync with the main project, usually lagging a week or more behind.
The alternative to a monorepo would be to release beta versions of Yew with a week notice before the actual release. But I'm not in favor of imposing a more complicated release schedule on you just to accommodate what I would consider laziness on my part.
I would like to add support for storing state properly in the history api before letting others edit modify the router, but after that point, I'd happily give you full discretion to make changes as you (or other contributors) see fit.
I'll try to just do a version bump tonight to keep up with Yew.
Beyond that, how do you want to proceed?

I would like to add support for storing state properly in the history api before letting others edit modify the router, but after that point, I'd happily give you full discretion to make changes as you (or other contributors) see fit.

What about using the CODEOWNERS feature in Github?

That seems like a fine solution.
Additionally, I think creating a router label for Issues related to that sub-project might be a good idea so that issues that might concern me don't get lost in the noise of Yew-only issues.

Additionally, I think creating a router label for Issues related to that sub-project might be a good idea

Agreed, 👍


Add StringHelper::extractLines()

Q
A

Is bugfix?
❌

New feature?
✔

Breaks BC?
❌

Fixed issues
-

StringHelper::extractLines() split a string to array with non empty lines. Whitespace from the beginning and end of a each line will be stripped by using trim().

Overall it looks like the case is quite specific about splitting by newline. How about adding ability to specify delimiter?

Overall it looks like the case is quite specific about splitting by newline. How about adding ability to specify delimiter?

Done. Only need help with phpdoc for parameter $separator: need add info about string is specific for use into regular expression...

\R also use not only CR, NL, and CR+LF: https://bugs.php.net/bug.php?id=65890
Maybe in some cases this is can be problem...

👍


What should we name the document?

According to the Microsoft Docs, we should name it "StoreManifest.xml."   Does it matter what we name the document?  Are there downstream repercussions if it is named something else?

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

ID: b048525e-5b60-18fc-4bdb-7222027769ea
Version Independent ID: 54dbad6e-c837-7901-0e21-e9ec29433997
Content: StoreManifest schema - Windows UWP applications
Content Source: winrt-related-src/schemas/storemanifest/storemanifestschema2015/schema-root.md
Product: uwp
Technology: winrt-reference
GitHub Login: @mcleanbyron
Microsoft Alias: mcleans

Thanks for taking the time to submit an issue. Though the scope of our feedback channel here on GitHub covers specific documentation fixes, I can help redirect you to the right support channel to get an answer to your question. The community of experts and Microsoft Engineers over at Microsoft Q&A offer timely answers to questions like this.
If you do create a thread over at Microsoft Q&A, it would be fantastic if you could share that link here so I can track the progress and potentially incorporate the technical details into our documentation. Though I'm marking this Issue as closed, please treat this thread as an open thread for follow-ups. Thanks!


Add TodoMVC to showcase section

TodoMVC - a TodoMVC app based on innerself.

This is super well done, thanks @Cweili!


What is the training/testing datasets?

Hi,
I'm pretty interested in this project, and trying to run it myself.
However I noticed that in the "model_data.py", the DataReader is reading non-existing files.
class DataReader:
    def __init__(self):
        self.train_files = glob(os.path.join(OUTPUT_DIR_TRAIN, '**.pkl'))
        print('training files =', len(self.train_files))
        self.test_files = glob(os.path.join(OUTPUT_DIR_TEST, '**.pkl'))
print('testing files =', len(self.test_files))

But what I get for ESC-50 in raw .wav file.
I'm wondering where can I get these training files?
Thanks!

The .pkl files will be created by running 'process_data.py'. Before you do so, edit the paths in 'constants.py'. The sounds used (as described in the paper) are coming from the UrbanSound8k dataset.

You can download the dataset here: http://urbansounddataset.weebly.com/urbansound8k.html
@durkadurk thanks for the guidance :)


GATING -- Ensure how to contribute knowledge documentation is up to date

Not needed at launch

Done, multiple places.


Roll engine 07aab98212cb..fdaa7cf12175 (2 commits)

git@github.com:flutter/engine.git/compare/07aab98212cb...fdaa7cf12175
git log 07aab98212cb..fdaa7cf12175 --first-parent --oneline
2019-12-04<EMAIL_ADDRESS>Roll fuchsia/sdk/core/mac-amd64 from OSk8h... to XCAOU... (#14128)
2019-12-04<EMAIL_ADDRESS>Roll src/third_party/skia 75368c3a0290..ccca30aad770 (12 commits) (#14129)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

Auto-roller completed checks. About to merge.

Looks like this was merged even though tree was closed because Github API for some reason stopped returning flutter-build as a check..


J and K repeats are not blocked

H and L repeats are being blocked as expected but J and K repeats are being allowed.
Using Neovim 0.9.0 and Ubuntu 22.04.
{
"m4xshen/hardtime.nvim",
opts = {},
}
Config is here

I just added gk and gj to the restricted_keys. Update the plugin and the problem should be solved.

Despite gk and gj being added to the restricted_keys, I am still able to spam those keys with neovim. Do you know what could cause this or how I could investigate this problem ? Thx

Hi @PeretEtienne, have you tried https://github.com/m4xshen/hardtime.nvim/issues/31#issuecomment-1685762701?

Just tried it and it looks like the colon in "v:count" is interpreted and all it does is launching me a command with "count || mode(1)[0:1] == "no" ? "j" : "gj"' as content. I am on Lazyvim btw, I don't know if it makes a difference


Anytime the blue text link color #2f7aba is used against any background color other than white, it does not meet contrast requirements.

Anytime the blue text link color #2f7aba is used against any background color other than white, it does not meet contrast requirements.
•	Table rows: Element has insufficient color contrast of 4.32 (foreground color: #2f7aba, background color: #f9f9f9, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1
•	warning alert: Element has insufficient color contrast of 4.25 (foreground color: #2f7aba, background color: #f6f6f4, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1
•	WCAG 1.4.3 Contrast (Minimum)

Do I want to just darken the color for all of our components that has a theme="link"? What about the native HTML  elements?


Document response code when quota-by-key policy triggers

The rate-limit-by-key policy documents a response code 429 when it triggers but the response code for the quota-by-key is missing.

@rwwilden : Thanks for your contribution! The author, @vladvino, has been notified to review your proposed change.


Add 3den custom composition for mission template

No more steam workshop, now direct from the mod!
This is a temporary fix until something like #1 can be implemented.

Example via
https://community.bistudio.com/wiki/BIS_fnc_exportCfgGroups
Unless this works: https://community.bistudio.com/wiki/Eden_Editor:_Custom_Composition#Modding_Compositions ?

The thing I originally looked at for this was like the example, didn't see BIS_fnc_exportCfgGroups though.  May as well try out the seemingly simpler Custom Composition thing first though.

Neither support multiple sides by the looks of it. Back to the drawing board :(


Hook support for post download

Is there a plan to support post download hooks so that completed files can be moved to a specific directory please?

AriaNg does not need to support this, because aria2 has already supported. You can go to aria2 document https://aria2.github.io/manual/en/html/aria2c.html for more information.


chore: add substra-backend-22.1.2-1 chart

This chart uses patched substra-backend images 0.31.1 containing a bugfix backported from https://github.com/Substra/substra-backend/pull/491.
See the diff here: https://github.com/Substra/substra-backend/compare/0.31.0...0.31.1
This chart will be useful to:

Upgrade substra-backend images to 0.31.x in production.
Be a part of the upcoming 0.22 Substra release (currently pre-release / under test)

Could you explain why you need this chart ?

@AlexandrePicosson the PR description was updated.

There is no need to publish a new chart for that, you can just update the values.

If values have changed (even if only image tag version) in the chart we need to publish a new version no ?

But the main issue I see is that based on semver you are issuing a new pre-release and that does not make much sense. IMO you can still use the chart version 22.1.2 as it is compatible with the version 0.31.x of the backend. Maybe we should change our versioning  scheme if that is not satisfying.


Update jenkins to currently recommended version(2.346.3).

Require jenkins 2.346.3 or later.

[X] Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
[X] Ensure that the pull request title represents the desired changelog entry
[X] Please describe what you did

Thanks, @LegendRegent!


Does not properly calculate events

Have tried using package with very basic implementation, but is seems always gets data wrong to 3 hours. I think it doesn't calculate UTC + hours. Do i need to do it myself and if so, how better achieve this?

It is hard to provide dates with timezones offsets specially because timezones keep chaging. To convert a UTC datetime to a lozalized datetime, I would sue the timezones package.


[live-test-cleanup] Reduce timeout from infinite to default (60 minutes)

Pipeline normally runs in 15 minutes, so 60 minutes is plenty of time
We should not use infinite timeouts, to avoid blocking build agents indefinitely

I believe in the past we were timing out on large back to back purge operations. But as long as the queue is kept healthy we shouldn't need that (and can always increase timeouts temporarily).

I believe in the past we were timing out on large back to back purge operations. But as long as the queue is kept healthy we shouldn't need that (and can always increase timeouts temporarily).

I would even be fine with increasing the timeout permanently to something reasonable like 4 hours or however long you think we might need.  Just not infinite.

/check-enforcer override


feat(forecast): Forecasting plugin system

SUMMARY
Allows users to use any ML model for forecasting as long as the package is installed. Also provides a numpy based forecasting solution for users that do not want/have prophet installed
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
prophet

numpy

random example with xgboost

new model dropdown in predictive analytics tab

TESTING INSTRUCTIONS
Added several unit and integration tests
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[x] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[x] Introduces new feature or API
[ ] Removes existing feature or API

cc: @villebro @bkyryliuk

@exemplary-citizen this is a great PR, but need s a big rebase if we're to pick it up and get it in. Let us know if you still have interest in pursuing this.

Checking in here to see if anyone has the intent to rebase this and/or otherwise carry this forward.

Hi. We also like this patch, and would like to join @rusackas in his question how to carry this forward?


Parsing Issue with Coverage Under ExplanationOfBenefit FHIR resource

Hi,
I am using ExplnationOfBenefit resoruce version 1.4.0 and HAPI version 1.4.
I am facing a strange issue. We are using coverage as a contained resource under ExplanationOfBenefit. The HAPI parser is working well if we use the following (please note this is incorrect as per FHIR spec):
"coverage": {
"coverage": {
"reference": "#cvg-1"
},
"relationship": {
"system": "http://hl7.org/fhir/relationship",
"code": "1",
"display": "self"
}
}
This is failing if we use 'coverageReference' instead of 'coverage', We are getting parsing error: Unknown element 'coverageReference' found during parse. However as per the FHIR spec, we have to use it as 'coverageReference'. Can you please let me know if I am missing something.
"coverage": {
"coverageReference": {
"reference": "#cvg-1"
},
"relationship": {
"system": "http://hl7.org/fhir/relationship",
"code": "1",
"display": "self"
}
}

Hi there,
I've committed a unit test that test this issue and it seems to be working for me, see here: https://github.com/jamesagnew/hapi-fhir/commit/f29cda00d01e89fa63fbe0a3ddc2e360a691e164#diff-9b02e9c32507879cd0c108a50074ad74R824
Can you confirm that this is still an issue for you in HAPI 1.5, and if so can you provide a complete code sample illustrating the issue?

Thanks James,
We are using HAPI 1.4.
I will take the 1.5 version and see how it goes. Meanwhile I would like to check with you if 1.5 version is production ready? can we use it for live system?
Regards,
Shovan

Hi Shovan,
I would certainly say that 1.5 is production ready. Naturally we always recommend running as many tests as you can before a new release, but we recommend keeping up to date as much as possible.

Hi James,
coverage resource is working fine with HAPI version 1.5. We are now doing extensive testing. Thanks you very much for the help.
Regards,
Shovan

Closing this issue, as it seems to be fixed. Please feel free to re-open if your testing uncovers any issues!


passing metadata

is it possible to pass metadata?

Yes, this library just passes the parameters on to the AWS SDK, so anything you can set via the AWS SDK you can set via the function call in this library.


Removing unused _EMPTY sentinel from base Connection.

I noticed this during the discussion in #639.
This change is borderline not requiring a PR, but I figured it couldn't hurt as an FYI.

Coverage remained the same at 100.0% when pulling 73650fd30d6bf32b795a4c90788e233383b63d4f on dhermes:remove-unused-empty into c6718f334555046d92cf0e1715d9701c36607e45 on GoogleCloudPlatform:master.


Compatibility with PHP 7

Heya!
as I'm integrating your package into Bref, we are seeing failed pipelines as PHP 7 is not supported and thus, composer fails to install.
Is there a reason to not support PHP 7?
https://github.com/brefphp/bref/pull/1437
https://github.com/brefphp/bref/actions/runs/4325550160/jobs/7564117373

Oh… We're dropping support for PHP 7.4 in Bref 2.0, which is a few days away.
Maybe what we could do is change https://github.com/brefphp/bref/pull/1437 to target Bref's v2 branch instead? I don't think supporting PHP 7 makes sense.

Ah, thx for stepping in @mnapoli
I agree that it's probably best to target Bref v2 instead as PHP 7.4 is already end of life and the package is also already using PHP 8 features like union types. Hope that's OK for you.

Makes total sense 👍


Research deployment methodologies

Research different ways we could deploy our projects. Focus on time-saving, manual steps, rolling back to previous versions, time-to-deploy a change.

Helm
Kustomize
ArgoCD
Grafana Tanka & Jsonnet
Skaffold
Our current approach

Talk to other teams in our organization and check how they are doing, esp. those working with the SRE team.
Definition of done: we have data to make a decision about the way we deploy our services and can make a commitment to change it.

Do we want to have a plan (steps for the implementation) prepared as a part of this epic?

Do we want to have a plan (steps for the implementation) prepared as a part of this epic?

I'd say no so that it's easier to complete.
For me, the outcome of this research is to decide which solution we want to use and then form a plan.
Does that work for you?

After spending some time creating Helm Charts and Continuous Deployment (CD) for our two cron-jobs (packit-service-validation, import-images) I have a better understanding of what it is useful for and can better understand the differences between the other technologies.
Helm vs. Kustomize: I went through several comparisons (e.g. 1, 2 (czech)) and none of them look like a better fit four our use-case.
You can actually use a combination of both, which is what most of the articles suggest in the end.
For example, Kustomize can be used as post-rendering in Helm. GitHub runner also contains both tools.
I'd definitely start with Helm and then look at whether adding Kustomize into the process can simplify things for us.
Tanka & Jsonnet - looks similar to Helm and Kustomize but works with JSONs instead of YAMLs. It has many benefits (jsons are better for machines, yamls are better for people), but to me, it looks like it starts to pay off when you have many applications on many clusters, which is not our case. It's not included in GitHub runner.
Skaffold (and others): I checked only Skaffold and it looks like a newer kid on the block, trying to ease the whole development process (building, tagging and deploying). We can revisit it later once we have Helmized the whole deployment because it can work with Helm as well. It's not included in GitHub runner.
GitHub Actions/workflows vs. ArgoCD: ArgoCD is (as I see it) actually only the last step of the deployment; it's checking a git repo (with Helm Chart for example) and syncs changes to k8s/OpenShift clusters. We can do the same with GHA, just from the other (the git repo) side. So I'd start with implementing the CD with GHA and then later check if adding the ArgoCD would simplify anything for us. (ArgoCD needs additional resources on the cluster, which might be a blocker)
So the steps for our next-gen Continuous Deployment would be:

Helmize our deployment

Create a Helm Chart for secrets - that will be the most interesting part
Create a GitHub workflow for installing/upgrading the Helm release (deployed chart instance)
Add the rest of the resources to the Helm chart - should be easier

Research whether Kustomize would help us in any way?
Research whether ArgoCD would help us in any way?

Closing, see #419

works with JSONs instead of YAMLs

lol, not 2022

I'd start with implementing the CD via GHAs and if we move to MP+, we can research ArgoCD, which is available there.

agreed!
well done with going with helm, based on your research it looks like a right thing to do


Error in integration

Hi..
I have been getting the following error for the last few hours
This error originated from a custom integration.
Logger: custom_components.blitzortung.mqtt
Source: custom_components/blitzortung/mqtt.py:233
Integration: Blitzortung (documentation, issues)
First occurred: 11:00:07 (102 occurrences)
Last logged: 14:02:41
Unable to connect to the MQTT broker: Connection Refused: not authorised.

Have also started seeing this today

I logged a similar error (Error #26) back in June 2021, and the owner asked me to use dig blitzortung.ha.sed.pl
I did run this when I first saw the error an it wasn't resolving
However, I ran it again and it appears to be resolving the DNS
See the screenshot below

The intergration appears to be working again now.  So not sure if it was an issue with DNS or the MQTT server which it connects to

Managed to check on DNS. You have right! It was resolving <IP_ADDRESS>
adblocker thought it is ads
i whitelisted it and it appears again.
thx for the tip

Looks like it's sorted itself, I use AdGuard but without whitelisting the DNS name it's started working again so maybe it found it's way onto a filter list and subsequently got removed


Nothing interesting

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/hold


refactor(gateway): remove mutex from cluster

The cluster used to wrap it's HashMap<u64, Shard> in a Mutex, this is no longer necessary (was included in the initial cluster release).

Thanks


Required type for "instrument"

I keep getting an error that says that the required type for instrument is an int. In uv.py, I see that instrument is set to be a string, and that's what I've been assigning to it, but the checker still tells me it should be an int:
ValueError: UVProperty instrument is not the appropriate type. Is: <type 'str'>. Should be: <type 'int'>

I was able to fix this -- The expected_type attribute wasn't set for "instrument", so it defaulted to int.

@aelanman: Did you fix it in pyuvdata, or just in how you were using it? This should not be the default behavior, but it's easy to fix.

I fixed it in pyuvdata. Line 250 of uv.data, I added expected_type=str to the definition.

Ok, I will also put a check in the defaults. Right now there are options to set "form" (ie, size), and type, but the defaults can contradict.

I'm getting a new error now, with the polarization array. It looks like it's not calculating the expected_size correctly. The array has four elements and Npols is 4, but it's telling me they don't match.

Could you print a couple things for me (assuming your UVData object is called uv_object):
print uv_object.Npols
print uv_object.polarization_array.value.shape
print uv_object.polarization_array.value.dtype
print uv_object.polarization_array.expected_size(uv_object)
Also, could you copy-paste the exact error message?

Okay, I found and fixed one problem with my code. The polarization_array was a list, not a numpy array, in my version.
Fixing that, this is what I get:
4
(4,)
float64
()
Traceback (most recent call last):
File "./uvfits_zeros_gen.py", line 201, in
uvd.write_uvfits(ofile)
File "/users/alanman/pyuvdata/uvdata/uv.py", line 927, in write_uvfits
self.check()
File "/users/alanman/pyuvdata/uvdata/uv.py", line 644, in check
raise ValueError('UVProperty ' + p + 'is not expected size.')
ValueError: UVProperty polarization_arrayis not expected size.

Offline back-and-forth revealed that @aelanman is setting the polarization_array.value using setattr. Somehow the code is changing polarization_array.form (maybe somewhere else in the code?) because before the setattr, polarization_array.form = ('Npols,'), as it should. Needs more troubleshooting.

It turns out that I was overwriting the polarization_array object with another UVProperty object. The form was being lost as a result. It's not an issue with pyuvdata.


iOS Support

Hi @thomasforth,
I'm willing to make the iOS support, do you have more information about that? How long it could take?

Hi Atu,
We have a very early version of the Moodstocks plugin working on iOS. I will try and finish it this week. If you could help with the beta testing that would be great.
Tom

Awesome.
I would love to help ;)

Great news, the beta is ready -- I sent you an email.
We'll be live on Github within a week, hopefully much sooner.


Remove handle_handshake and accept from Service's API

r? @vinipsmaker
(maidsafe_highfive has picked a reviewer for you, use r? to override)


Provide changelog for >0.5.0

Please provide a changelog for >0.5.0 versions of the DTR

Hi @florianrusch ,
We listed in the changelog the changes for app.
The newest app version for the DTR is 0.5.0 and is available in the changelog.md.
The chart version is 0.5.2.
Can we close this issue?


Block preview request error after upgrade to 3.0

I upgraded to 3.0. When editing an existing page in the admin, and looking in the content editor, some blocks are not rendered (and some are). When looking in the developer console, I see these errors:
TWILL - [CONTENT]: Request failed with status code 500
TWILL - [CONTENT]: Block preview request error.
The request that gives the error gives this output:
{
    "message": "__clone method called on non-object",
    "exception": "Error",
    "file": "(path to project)vendor\\area17\\twill\\src\\Helpers\\BlockRenderer.php",
    "line": 77,
    "trace": [
        {
            "file": "(path to project)vendor\\area17\\twill\\src\\Helpers\\BlockRenderer.php",
            "line": 93,
            "function": "getNestedBlocksForData",
            "class": "A17\\Twill\\Helpers\\BlockRenderer",
            "type": "::"
        },
        {
            "file": "(path to project)vendor\\area17\\twill\\src\\Helpers\\BlockRenderer.php",
            "line": 67,
            "function": "getNestedBlocksForData",
            "class": "A17\\Twill\\Helpers\\BlockRenderer",
            "type": "::"
        },
        {
            "file": "(path to project)vendor\\area17\\twill\\src\\Http\\Controllers\\Admin\\BlocksController.php",
            "line": 32,
            "function": "fromCmsArray",
            "class": "A17\\Twill\\Helpers\\BlockRenderer",
            "type": "::"
        },
        {
            "file": "(path to project)vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php",
            "line": 54,
            "function": "preview",
            "class": "A17\\Twill\\Http\\Controllers\\Admin\\BlocksController",
            "type": "->"
        },
        {
            "file": "(path to project)vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php",
            "line": 45,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "(path to project)vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 262,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "(path to project)vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 205,
            "function": "runController",
            "class": "Illuminate\\Routing\\Route",
            "type": "->"
        },
        (etc...)
    ]
}

The blocks did show up in the editor in 2.x.
When I create a new page and add the same block, everything works, so seems like the database somehow isn't correct.
Update: I was mistaken, as soon as I add a repeater item it fails again, also on a new page.
Any clues?
(Laravel 8, php 8.1, Twill 3.0)

Update:  I looked into \A17\Twill\Services\Blocks\Block::getForComponent, and it looks like it cannot find the block because it incorrectly thinks it isn't a repeater.
The $data['is_repeater'] used in $class = clone Block::getForComponent($data['type'], $data['is_repeater'] ?? false); is empty, while the field actually is a repeater.
The full $data outputs:
array(7) {
  ["id"]=>
  int(1005)
  ["type"]=>
  string(24) "a17-block-accordion-item"
  ["editor_name"]=>
  string(7) "default"
  ["content"]=>
  array(2) {
    ["title"]=>
    string(6) "Item 1"
    ["content"]=>
    string(15) "
Inhoud 1
"
  }
  ["medias"]=>
  array(0) {
  }
  ["browsers"]=>
  array(0) {
  }
  ["blocks"]=>
  array(0) {
  }
}

Update 2: turns out I am running version 3.0.0-beta1, because Laravel was still at version 8. Will upgrade Laravel and Twill to see if the issue goes away.

Definitely check with the latest version of Twill 3 and let us know.

I am now on Twill 3.0.1 (according to composer, although backend displays 3.0.0), and laravel 10. The error changed, but it still doesn't work:
I created a new page and added a new accordion block to it. The data sent with the request now is:
{
	"blocks": {
		"accordion-item": [
			{
				"blocks": {},
				"browsers": {},
				"content": {
					"content": "
Hi...
",
					"title": "Test item..."
				},
				"id":<PHONE_NUMBER>461,
				"medias": {},
				"type": "a17-block-accordion-item"
			}
		]
	},
	"browsers": {},
	"content": {
		"header": "Test",
		"theme": "geel"
	},
	"editor_name": "default",
	"id":<PHONE_NUMBER>648,
	"medias": {},
	"type": "a17-block-accordion"
}

The error is:
{
    "message": "Call to a member function newInstance() on null",
    "exception": "Error",
    "file": "(path to project)vendor\\area17\\twill\\src\\Helpers\\BlockRenderer.php",
    "line": 88,
    "trace": [
        {
            "file": "(path to project)vendor\\area17\\twill\\src\\Helpers\\BlockRenderer.php",
            "line": 105,
            "function": "getNestedBlocksForData",
            "class": "A17\\Twill\\Helpers\\BlockRenderer",
            "type": "::"
        },
        {
            "file": "(path to project)vendor\\area17\\twill\\src\\Helpers\\BlockRenderer.php",
            "line": 78,
            "function": "getNestedBlocksForData",
            "class": "A17\\Twill\\Helpers\\BlockRenderer",
            "type": "::"
        },
        {
            "file": "(path to project)vendor\\area17\\twill\\src\\Http\\Controllers\\Admin\\BlocksController.php",
            "line": 32,
            "function": "fromCmsArray",
            "class": "A17\\Twill\\Helpers\\BlockRenderer",
            "type": "::"
        },
        {
            "file": "(path to project)vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php",
            "line": 54,
            "function": "preview",
            "class": "A17\\Twill\\Http\\Controllers\\Admin\\BlocksController",
            "type": "->"
        },
        {
            "file": "(path to project)vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php",
            "line": 43,
            "function": "callAction",
            "class": "Illuminate\\Routing\\Controller",
            "type": "->"
        },
        {
            "file": "(path to project)vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php",
            "line": 260,
            "function": "dispatch",
            "class": "Illuminate\\Routing\\ControllerDispatcher",
            "type": "->"
        },
(etc)

Since you upgraded from Twill, am I correct to assume you are still using the twill config file to register your blocks and repeaters? If that's the case, is accordion-item in your twill.block_editor.repeaters array?

No, I don't think so. I have blade files for them in resources/views/twill/repeaters

Listing all blocks it is actually defined as a repeater.
php artisan twill:list:blocks -s
+-----------------+----------------+-----------------+----------+---------------+---------+-------+------+------+----------+--------+-----------+------+-----------+-----+-------------+
| Title           | TitleField     | HideTitlePrefix | Trigger  | SelectTrigger | Name    | Group | Type | Icon | Compiled | Source | NewFormat | File | Component | Max | Block class |
+-----------------+----------------+-----------------+----------+---------------+---------+-------+------+------+----------+--------+-----------+------+-----------+-----+-------------+
| Accordion (FAQ) | accordion      | app             | block    | text          | default |       |      |      |          |        |           |      |           |     |             |
| Accordion item  | accordion-item | app             | repeater | text          | default |       |      |      |          |        |           |      |           |     |             |

I think all your issues may be due to the fact that you're using old JS with new PHP code. Please make sure to have the latest version of the compiled assets (php artisan twill:update)

Indeed, that fixed it. Thanks for your help! 😊


Move to 2021 Rust #137

Closes #137
Tested with rustfix, i.e. cargo fix --edition, as well as cargo test --all-targets --all-features. Removed unnecessary code for 2021 edition.
Trying to look around all the repos to see how stuff works before I can make any useful contributions lol

Thanks for your contribution @tedbyron!


Feature Selection

Resolution for #26

The current approach to selecting feature importance requires generating lots of permutations of the model to produce a null distribution of feature inclusions.  At the moment, there's no way to run models in parallel because joblib can't be nested.  It would be nice to expose the chains to an external runner, so that all chains from all models can be run at once

Having played around with the current implementation, two things strike:

There's definitely a need for a light weight version for bigger data sets
Restricting to run models sequentially is punishingly slow - the Sklearn model needs to expose a List[Delayed] for the different chains that other processes can use

Still to do - wrap the logic up into an Sklearn BaseFilter

Added to the PR:

Sklearn wrapper for null distribution based feature selection
Sklearn wrapper for simple proportion of splits feature selection for bigger data sets
Ability for external clients to directly access the delayed chain methods to run multiple permutations of the model at once.  I think this would allow trivial scaling across a dask cluster, but at the very least it allows big speep up from using chunkier machines


Unmute is a touch early at the end of games

Problem
When the last impostor is being eliminated by the vote, all players are unmuted at the end of the elimination screen.
With the setting "Confirm Ejections" set to false, the player unmute is early and it spoils the game result.
Current behaviour
Players unmute happens before the victory/defeat splashscreen on last impostor's ejection vote.
Expected behaviour
Players unmute should happen on the victory/defeat splashscreen.

Is this something that can be fixed by updating the default delay value from DISCUSS phase to the LOBBY phase? You can set this setting in the bot.


⚠ ID Card Portal has degraded performance

In b843f06, ID Card Portal (https://idcard.epcc.edu) experienced degraded performance:

HTTP code: 200
Response time: 2973 ms

Resolved: ID Card Portal performance has improved in 1e2dddc after 9 minutes.


Support BFQ compression

FASTQ files could be compressed in BFQ format (see fastqutils for more information). In picard, there is a BamToBfqWriter, that is not general but we can use it to understand the format better. We can implement a GATKReadWriter that will be more general.
In addition, we can generate a reader for this kind of input to allow another source of reads detected by the extension. I don't know if the FastqReader for htsjdk could read from this kind of reads, but it will be useful for some people Edited: this is not going to happen, because it seems that this input is just for MAQ or some tools that are pretty old
This is related with #52, because we can use the enum in FastqConstants.FastqExtensions to decide the extension (although this does not support other compression algorithms. Because MAQ is using this format, I think that it could be a good idea to implement it for the output format of the tool to convert to FATSQ all the raw reads stored in BAM (or other) formats.

This is not going to be done. BFQ is not used and if so users should use Picard instead. Maybe that tool is a candidate for #71 once GATK/Picard is integrated.


closure: Fix uri query parameter encoding

This fixes handling of URIs with special characters. Without this patch, segment URIs such as e.g. http://example.com/0.webm?param=%26 may be translated to http://example.com/0.webm?param=&.
Fixed in shaka-player: https://github.com/google/shaka-player/pull/40

I'm pretty sure this is working as intended. If someone tries to resolve a relative URI that contains encoded query data, this will create a new absolute URI with the encoded params exactly as they are. Then, if someone tries to call a method like getEncodedQuery later on the absolute URI, it will double encode the query data.

@joeltine Sorry for the late response.
"If someone tries to resolve a relative URI that contains encoded query data, this will create a new absolute URI with the encoded params exactly as they are." - This is what this patch set is supposed to fix. Currently, the resolve() function willl decode the query data, which seem like a strange behavior to me.
I would have expected that both of the expressions below would do the same thing:
goog.Uri.parse('http://www.google.com/search')
  .resolve(goog.Uri.parse('?q=%26')).toString());
goog.Uri.parse('http://www.google.com/search?q=%26').toString();

This is not the case in the current version of the library.

Thanks for the code snippet, I see the issue now. Unfortunately, I can't reopen the PR. It looks like the branch changed.
My concern is that this change could be hard to land internally. People may have been coding based on the current behavior for resolve.
I'm going to run some tests on the change to get a sense for the breakages.

Moved the issue to https://github.com/google/closure-library/issues/585


Internet not working in a multi-host setup

It seems that when I have the eNB an CN on two different hosts (and networks), the UE's are unable to connect to the internet.
Doing a quick trace on the eNB machine shows requests going to DNS over GTP. However, not being received on the CN machine.

Please send a trace/pcap of the scenario where UE attaches to network and then does the ping.


Prevent plugin dependencies in "omit" from causing already-imported warnings

I came across the same bug noted in this comment when using django plugin  alongside both source/include and omit would cause a bunch of already-imported warnings for the plugin's dependencies:
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/__init__.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/engine.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/base.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/context.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/exceptions.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/library.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/utils.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/defaulttags.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/defaultfilters.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/template/smartif.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/templatetags/__init__.py (already-imported)
Coverage.py warning: Already imported a file that will be measured: .../venv/lib/python3.7/site-packages/django/templatetags/i18n.py (already-imported)

I tried to fix this from the plugin side, but the only place the plugin gets an opinion is in the plugin's file_tracer() method, and we can't disable tracing for the core django templates, otherwise we can't trace the templates themselves.
Every other omit_match check is used too late, after plugins have already imported their dependencies

Codecov Report

Merging #1044 into master will decrease coverage by 0.01%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master    #1044      +/-   ##
==========================================
- Coverage   93.97%   93.96%   -0.02%
==========================================
  Files         179      179
  Lines       25140    25146       +6
  Branches     2613     2615       +2
==========================================
+ Hits        23626    23628       +2
- Misses       1210     1212       +2
- Partials      304      306       +2

Impacted Files
Coverage Δ

coverage/inorout.py
73.33% <33.33%> (-0.45%)
:arrow_down:

inorout.py
69.62% <0.00%> (-0.41%)
:arrow_down:

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 3274cba...1146de7. Read the comment docs.

Sorry, this has taken a while to get to.  Thanks for providing a test!  But I tried running the test without your fix, and it didn't fail.  Does it fail for you?

Sorry, this has taken a while to get to.  Thanks for providing a test!  But I tried running the test without your fix, and it didn't fail.  Does it fail for you?

Sorry about that, I was probably blindly chasing coverage 😄
I've added a new failing test case, you can see it fail with the already-imported warning in CI https://github.com/nedbat/coveragepy/runs/1851303652#step:7:108

Ugh, I'm sorry, I forgot you had fixed this problem.  I fixed it in a different way for https://github.com/nedbat/coveragepy/issues/1150.  Does it solve the problem for you?

Since there has been no response, are we good to close this?

Apologies for keeping this open, if I recall correctly I think I had found a different workaround by changing which options I was using and forgot to test the new fix. I'll close now


White screen after setting .env on fresh install

Hello!
Really looking forward to trying bedrock out but for some reason i cant get it to work.
Just sat everything up running git clone and then composer install. Tried browsing the URL and got a standard "Wordpress cant connect to database" message, nothing strange.
But when i configure the variables in the .env file i only get a blank white screen, both at the regular and wp-admin url. Im not particularly new to wordpress but i just can't figure this one out.
When i remove the .env file i get the same database error message again. It's no trouble connecting to the database since i have multiple other local installations working fine. The web root path is pointed to the "\bedrock\web" folder as instructed.
The content of my .env is as below
DB_NAME=SageDemo
DB_USER=SageDemo
DB_PASSWORD=xxxxxxxx
DB_HOST=www.xxxxx.com
WP_ENV=development
WP_HOME=http://localhost:1020
WP_SITEURL=http://localhost:1020/wp
If it matters my hosting environment is IIS on windows.
Please help me, would love to try bedrock out this week and if i like it, use it on a client's site that i will be building next week.

If you're getting a blank screen then you're getting a PHP error. You'll need to figure out how to properly display those errors or find your error logs and fix the problem.
Since you don't know the error there's nothing we can do to help unfortunately. Closing since this is a setup issue and not a Bedrock bug.

Ok, thanks, totally forgot about php errors. This is the error im getting.
( ! ) Fatal error: Uncaught exception 'RuntimeException' with message 'One or more environment variables failed assertions: DB_NAME is missing' in C:\NotSourceControl\SageDemo\bedrock\vendor\vlucas\phpdotenv\src\Validator.php on line 102
( ! ) RuntimeException: One or more environment variables failed assertions: DB_NAME is missing in C:\NotSourceControl\SageDemo\bedrock\vendor\vlucas\phpdotenv\src\Validator.php on line 102
Call Stack
Time	Memory	Function	Location
1	0.0003	138088	{main}( )	...\index.php:0
2	0.0007	139800	require( 'C:\NotSourceControl\SageDemo\bedrock\web\wp\wp-blog-header.php' )	...\index.php:5
3	0.0011	148936	require_once( 'C:\NotSourceControl\SageDemo\bedrock\web\wp\wp-load.php' )	...\wp-blog-header.php:12
4	0.0016	150616	require_once( 'C:\NotSourceControl\SageDemo\bedrock\web\wp-config.php' )	...\wp-load.php:42
5	0.0042	212248	require_once( 'C:\NotSourceControl\SageDemo\bedrock\config\application.php' )	...\wp-config.php:8
6	0.0074	265680	Dotenv\Dotenv->required( )	...\application.php:11
7	0.0080	276680	Dotenv\Validator->__construct( )	...\Dotenv.php:83
8	0.0080	276992	Dotenv\Validator->assertCallback( )	...\Validator.php:44

"One or more environment variables failed assertions: DB_NAME is missing"
Seems pretty obvious.

Indeed, but as you can see in the .env i posted above it's there and the .env file is located directly in the bedrock folder.

Debugging and support discussion belongs over at https://discourse.roots.io

Thanks and sorry for bothering your here, just posted a topic there. https://discourse.roots.io/t/fresh-bedrock-install-php-error-db-name-missing-in-validator-php/4578

Just solved it, leaving a reply here aswell if anyone finds this issue.
The problem for me was not having a blank row at the very top of the .env file. Seems like the first row isn't read for some reason...really strange. Maybe add a blank row to the .env.example to avoid this happening to others?

@petterannerwall you seems to be using windows. It could be worth it to try running the test units from php dotenv and check if they pass.
I never had the problem you encountered. It could be a Windows related problem, or it could be related specifically to your setup.


C++ Client compile error beacaus of keyword optional is redundant in PaddingDemo.proto

Describe the bug
C++ Client compile error beacaus of PaddingDemo.proto‘s optional is redundant
Expected behavior
No compile error when use c++ client
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS]
centos7，protobuf version 3.6.1
Additional context
Can I delete optional directly of PaddingDemo.proto ?

Suggest delete optional keyword directly of PaddingDemo.proto


Fixed 0 value causing falsy scrollTopOffset

Setting scrollTopOffset to 0 would not scroll user back to the top of the page when changing route because when checking for scrollTopOffsets value, 0 would imply there wasn't one (falsy).

Yep, it would be nice to have this fix merged.

@jthoms1 can we get this merged?

looks like a legit fix


Parallel media sync

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

72 of 72 (100.0%)  changed or added relevant lines in 9 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1204

Relevant Lines:
1204

💛  - Coveralls


esp32c3: missing _image_ram_start section in linker script

Enabling the CONFIG_DEBUG_COREDUMP for boards like xiao_esp32c3 or esp32c3_devkitm (using samples/net/wifi) causes the linker to complain about:
undefined symbol `_image_ram_start' referenced in expression collect2: error: ld returned 1 exit status
To Reproduce
Steps to reproduce the behavior:

nano samples/net/wifi/prj.conf
add "CONFIG_DEBUG_COREDUMP=y" at the end of file
west build -b xiao_esp32c3 samples/net/wifi/
See error

Expected behavior
Should compile or show that this feature is not supported
Impact
I tried to debug other crashes with wifi module and wanted to take a look at this feature and try it
Environment (please complete the following information):

OS: Linux
Toolchain: Zephyr SDK
Commit SHA: b702c8e8f01f09cb73ef554b129db0773f9f98a5

Looks like something like this fixes the issue:
diff --git a/soc/riscv/espressif_esp32/esp32c3/default.ld b/soc/riscv/espressif_esp32/esp32c3/default.ld
index 0884e3d7d3..168f8f2411 100644
--- a/soc/riscv/espressif_esp32/esp32c3/default.ld
+++ b/soc/riscv/espressif_esp32/esp32c3/default.ld
@@ -283,6 +283,7 @@ SECTIONS
   } GROUP_LINK_IN(RAMABLE_REGION)

  /* Shared RAM */
+  _image_ram_start = .;
   SECTION_DATA_PROLOGUE(_BSS_SECTION_NAME,(NOLOAD),)
   {
     . = ALIGN (8);
@@ -357,6 +358,8 @@ SECTIONS
   #include <snippets-ram-sections.ld>
   #include <zephyr/linker/cplusplus-ram.ld>

+  #include <zephyr/linker/ram-end.ld>
+
   /* logging sections should be placed in RAM area to avoid flash cache disabled issues */
   #pragma push_macro("GROUP_ROM_LINK_IN")
   #undef GROUP_ROM_LINK_IN

But I am not sure if these are the proper locations for the ram beginning and end.
Is the esp32c3 arch so different from 'basic' riscv, that it isn't using the common linker file at all?


Allow plugins to be served without hardcoding URLs

Currently user is required to specify URL for the plugin config, so the URLs are hardcoded to use one given port. This is an issue when running the app in a docker container with a mapped port. Then the assigned port can differ from the port that's specified in the app config.
When running hawtio in a docker container with mapped ports everything works fine except for the plugins. So it should be possible to omit the URL for it to be served from the same endpoint as the hawtio app is running.

It is possible to omit the URL currently by specifying empty string as the URL parameter - we should make sure this is documented or add a constructor without URL for the HawtioPlugin to document this:
        HawtioPlugin plugin = new HawtioPlugin(
            "",
            "samplePlugin",
            "./plugin");

This is not possible to do in Quarkus, at least I haven't found any way to specify an empty value (because it is marked as mandatory). - this is causing the plugin scenarios to be disabled on quarkus E2E tests.

What if you specify like this?  Isn't it even possible?
quarkus.hawtio.plugin.sample-plugin.url = ""


first commit

first commit for fedmsg role

Let's merge and review both together now through cloud.cico environment and we'll commit reviewed changes directly in staging branch after. Thanks !


opengl-2 cherry-pick: Remove internal build support

Cherry-pick of #1000 into opengl-2.

This is now more of a prototype cherry-pick to the opengl-2 branch.
I want to ask @ovivoda and @louvers on how to handle this with the least overhead. The cleanest would be ine direct PR per original PR?
Note that I'll also enable Qt CI, the rest is up to individual platform maintainers.

@ntadej maybe we can experiment on another branch then merge into main one?

Not sure I understand the comment. Everything that will get here should be merged into main first and then we selectively pick PRs that may be relevant. The question is just how do you prefer to do it?

@ntadej ah sorry, I think I understood the question wrong.

Will still open PRs for CI to run, but will merge them directly then.


xtask: Drop command-run dep

Codecov Report

Merging #33 (b5148b6) into main (7b1081d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #33   +/-   ##
=======================================
  Coverage   87.23%   87.23%
=======================================
  Files           7        7
  Lines         478      478
=======================================
  Hits          417      417
  Misses         61       61

Thanks @N0fix for pointing out this dep doesn't compile on Windows.


Ability to disable SSL in splunk forwarders

Thanks @scottjpack for the original code, CC @mew1033
An updated pillar would look like this for Nova:
nova:
  returner:
    splunk:
      token: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
      indexer: splunk-indexer.domain.tld
      sourcetype: hubble_audit
      index: hubble
      hec_ssl: False

Would you like me to update the pillar.example file with the new additions?

I was able to test this with the three possible situations:

hec_ssl defined in pillar as False
hec_ssl defined in pillar as True
hec_ssl not defined in pillar

All three of the scenarios worked as expected.

I think it'd be good to also have proxy support. Do we want to do that here, or just file a separate issue?

I vote for a new issue for proxy support, but I do think that's a very good suggestion

I think @dmcteer wants to discuss this with your team before we merge. So we're going to hold off for the moment.


Clojure instarepl doesn't remove all intermediate results

Possibly related to #1324. When my lets involve multiple values, such as a for, map and so on, every evaluation creates more intermediate results. These do not go away with Editor:Clear inline results.

Running LT 0.7.2 on Windows 7.

Thanks for the screenshot. This is a duplicate of #1230


Missing word-break: break-word

Currently there is only word-breaks for
normal
break-all
keep-all

all named
.word-normal { word-break: normal; }
.word-wrap { word-break: break-all; }
.word-nowrap { word-break: keep-all; }

but there is one missing: break-word;
I propose calling it .word-wrap and changing the current one to .word-wrap-all or something like that. That might be breaking changes, so I'm not sure about the names. What do you guys think?

+1!

Also, the word-break classes are not listed in the table of styles

Both are omitted intentionally.

@mrmrs, speaking for myself I'm keen to know the why because tachyons is so well considered I'm sure I'll learn from the team's thinking.
So why create the ruleset, but not include it or  document it?
And why not include break-word in the ruleset?
It's questions like these that, if left unanswered, become conspiracy theories!  :)


Syntax error, script doesn't work

When I include the file in .gdbinit I get the following message:
File "/home/allopis/.gdb/gdb-colour-filter/colour_filter.py", line 21
    def __init__(self, *args, depth=0, **kwargs):
                                  ^
SyntaxError: invalid syntax

Regards!

Looks like *args must be after depth parameter. After fixing that, I get a new error:
  File "/home/allopis/.gdb/gdb-colour-filter/colour_filter.py", line 158
    def __init__(self, frames: Iterator[Frame]):

Does this script require python3? my system uses python2 by default. If that's the issue, how can I tell gdb which python interpreter to use?

Yes, the script requires python 3.5+. It has internally used type hinting. The main reason why I prefer to use the latest python is that python 2 is deprecated and will not be supported since 2020. I highly recommend you to migrate from python 2 to 3.
Unfortunately, python embedded to gdb as a shared library (check with ldd /usr/bin/gdb). It means that you could not change version of interpreter without recompilation of gdb. Try to apply the patch below. It should solve your issue.
diff --git a/colour_filter.py b/colour_filter.py
index 3de0a5b..fbd7deb 100644
--- a/colour_filter.py
+++ b/colour_filter.py
@@ -2,10 +2,8 @@
 #   encoding: utf8
 #   file: colour_filter.py

-from typing import Iterator, Text
-
 from gdb import parameter as get_parameter
-from gdb import Frame, frame_filters, execute
+from gdb import frame_filters, execute
 from gdb.FrameDecorator import FrameDecorator

@@ -18,10 +16,10 @@ class FrameColorizer(FrameDecorator):
     Notes: There is not special support Frame.elided() property.
     """

-    def __init__(self, *args, depth=0, **kwargs):
+    def __init__(self, *args, **kwargs):
         super(FrameColorizer, self).__init__(*args, **kwargs)

-        self._depth = depth
+        self._depth = kwargs.get(depth, 0)
         self.frame = super(FrameColorizer, self).inferior_frame()

     def __str__(self):
@@ -93,7 +91,7 @@ class FrameColorizer(FrameDecorator):
             # Here we have something like
             # > raise + 272 in section .text of /usr/lib/libc.so.6
             # XXX: gdb.find_pc_line
-            symbol = gdb.execute('info symbol 0x%016x' % func, False, True)
+            symbol = execute('info symbol 0x%016x' % func, False, True)

             # But here we truncate layout in binary
             # > raise + 272
@@ -154,7 +152,7 @@ class FilterProxy:
     properly on the first and the sole call.
     """

-    def __init__(self, frames: Iterator[Frame]):
+    def __init__(self, frames):
         self.frames = (FrameColorizer(frame, depth=ix)
                        for ix, frame in enumerate(frames))

@@ -189,7 +187,7 @@ class ColourFilter:
         # dictionary.
         frame_filters[self.name] = self

-    def filter(self, iters: Iterator[Frame]) -> Iterator[Frame]:
+    def filter(self, iters):
         return FilterProxy(iters)

After applying the patch, it looks like some color is there... for example $gdb prompt is shown in red, but when I try to show a backtrace I get this:
Python Exception <type 'exceptions.TypeError'> instance has no next() method:
And I cannot see the frames unfortunately :/

Sorry for so long delay. Try to apply the patch below. The reason is that iterator protocol differs between Python 2 and Python 3.
diff --git a/colour_filter.py b/colour_filter.py
index 2970f2a..bddf1d0 100644
--- a/colour_filter.py
+++ b/colour_filter.py
@@ -163,6 +163,9 @@ class FilterProxy:
         return self

     def __next__(self):
+        return self.next()
+
+    def next(self):
         self.unroll_stack()
         raise StopIteration

Sorry for so long delay. Try to apply the patch below. The reason is that iterator protocol differs between Python 2 and Python 3.
diff --git a/colour_filter.py b/colour_filter.py
index 2970f2a..bddf1d0 100644
--- a/colour_filter.py
+++ b/colour_filter.py
@@ -163,6 +163,9 @@ class FilterProxy:
         return self

     def __next__(self):
+        return self.next()
+
+    def next(self):
         self.unroll_stack()
         raise StopIteration

hi Dan, after apply this patch, the bt also got an error:

Python Exception <type 'exceptions.TypeError'> init() got an unexpected keyword argument 'depth':

GDB Python API was changed a bit. So, this patch should be usefull if you have applied the previous two.
diff --git a/colour_filter.py b/colour_filter.py
index d5b070d..74f5b92 100644
--- a/colour_filter.py
+++ b/colour_filter.py
@@ -16,10 +16,10 @@ class FrameColorizer(FrameDecorator):
     Notes: There is not special support Frame.elided() property.
     """

-    def __init__(self, *args, **kwargs):
+    def __init__(self, *args, depth=0, **kwargs):
         super(FrameColorizer, self).__init__(*args, **kwargs)

-        self._depth = kwargs.get(depth, 0)
+        self._depth = depth
         self.frame = super(FrameColorizer, self).inferior_frame()

     def __str__(self):

Also, it would be better to use Python 3 with GDB since Python 2 is deprecated.

I was facing some issues with Python 2 even after all these patches, but I fixed them and got colored backtrace to work with the file below, for those still facing issues.
#!/usr/bin/env gdb
#   encoding: utf8
#   file: colour_filter.py

from gdb import parameter as get_parameter
from gdb import frame_filters, execute
from gdb.FrameDecorator import FrameDecorator

class FrameColorizer(FrameDecorator):
    """FrameColorizer repeats all actions to get all common frame attribute and
    then spices a bit output with colours. Format of output string is following.

    #<depth> <address> in <function> (<frame_args>) at <filename>[:<line>]

    Notes: There is not special support Frame.elided() property.
    """

    def __init__(self, frame, depth=0):
        super(FrameColorizer, self).__init__(frame)

        self._depth = depth
        self.frame = super(FrameColorizer, self).inferior_frame()

    def __str__(self):
        is_print_address = get_parameter('print address')

        part1 = self.depth()
        part2 = self.function() + ' \033[1;37m(' + self.frame_args() + ')\033[0m'
        part3 = self.filename() + self.line()

        if is_print_address:
            part1 += '  ' + self.address() + ' in '
        else:
            part1 += ' '

        parts = part1 + part2 + ' at ' + part3

        screen_width = self.get_screen_width()
        if screen_width is not None and len(parts) > screen_width:
            shift_width = int(self.length(part1)) - 1
            shift_width -= 3 * int(is_print_address)  # compensate ' in ' part
            value = part1 + part2 + '\n'
            value += ' ' * shift_width + ' at ' + part3
        else:
            value = parts

        return value

    def address(self):
        address = super(FrameColorizer, self).address()
        return '\033[1;30m0x%016x\033[0m' % address

    def depth(self):
        return '\033[1;37m#%-3d\033[0m' % self._depth

    def filename(self):
        filename = super(FrameColorizer, self).filename()
        return '\033[0;36m%s\033[0m' % filename

    def frame_args(self):
        try:
            block = self.frame.block()
        except RuntimeError:
            block = None

        while block is not None:
            if block.function is not None:
                break
            block = block.superblock

        if block is None:
            return ''

        args = []

        for sym in block:
            if not sym.is_argument:
                continue;
            val = sym.value(self.frame)
            arg = '%s=%s' % (sym, val) if str(val) else str(sym)
            args.append(arg)

        return ', '.join(args)

    def function(self):
        func = super(FrameColorizer, self).function()

        # GDB could somehow resolve function name by its address.
        # See details here https://cygwin.com/ml/gdb/2017-12/msg00013.html
        if isinstance(func, int):
            # Here we have something like
            # > raise + 272 in section .text of /usr/lib/libc.so.6
            # XXX: gdb.find_pc_line
            symbol = execute('info symbol 0x%016x' % func, False, True)

            # But here we truncate layout in binary
            # > raise + 272
            name = symbol[:symbol.find('in section')].strip()

            # Check if we in format
            # > smthing + offset
            parts = name.rsplit(' ', 1)
            # > raise
            if len(parts) == 1:
                return name

            try:
                offset = hex(int(parts[1]))
            except ValueError:
                return name

            return '\033[1;34m' + parts[0] + ' ' + offset + '\033[0m'
        else:
            return '\033[1;34m' + str(func) + '\033[0m'

    def get_screen_width(self):
        """Get screen width from GDB. Source format is following
        """
        return get_parameter('width')

    def line(self):
        value = super(FrameColorizer, self).line()
        return '\033[0;35m:%d\033[0m' % value if value else ''

    @staticmethod
    def length(colored_string):
        """This function calculates length of string with terminal control
        sequences.
        """
        start = 0
        term_seq_len = 0

        while True:
            begin = colored_string.find('\033', start)

            if begin == -1:
                break

            end = colored_string.find('m', begin)

            if end == -1:
                end = len(s)

            term_seq_len += end - begin + 1
            start = end

        return len(colored_string) - term_seq_len

class FilterProxy:
    """FilterProxy class keep ensures that frame iterator will be comsumed
    properly on the first and the sole call.
    """

    def __init__(self, frames):
        self.frames = (FrameColorizer(frame, ix)
                       for ix, frame in enumerate(frames))

    def __iter__(self):
        return self

    def next(self):
        self.unroll_stack()
        raise StopIteration

    def unroll_stack(self):
        output = (str(frame) for frame in self.frames)
        print('\n'.join(output))

class ColourFilter:

    def __init__(self, name='backtrace-filter', priority=0, enabled=True):
        """Frame filter with the lower priority that consumes every frame and
        colouring output.

        :param name: The name of the filter that GDB will display.
        :param priority: The priority of the filter relative to other filters.
        :param enabled: A boolean that indicates whether this filter is enabled
        and should be executed.
        """
        self.name = name
        self.priority = priority
        self.enabled = enabled

        # Register this frame filter with the global frame_filters
        # dictionary.
        frame_filters[self.name] = self

    def filter(self, iters):
        return FilterProxy(iters)

ColourFilter()  # register colour filter forcibly


[Bug]: Footer expands and UI distort when Menu button has lot of menu item

Is there an existing issue for this?

[X] I have searched the existing issues

Description

Steps To Reproduce

Drag and drop a Menu button widget
Add around 20 menu item
Click on Menu widget
Observe that the footer expands and UI do not look good

Public Sample App
No response
Version
Cloud

Also, on deploy, the menu dropdown functionality is improper on click to close- focus goes to the menu items, instead of the menu getting closed.
https://www.loom.com/share/40d22812c22b4532af0c60730308f84d
Please check #14518 when fixing this

Hello Sir, I am a beginner looking forward to contribute to appsmith.
Could you please explain what tech stack is required and where can I find the code in the repository where I need to fix it.

@dilippitchika Can i work on this issue?

Hello to fix this issue, we have to limit the number of items and show a scrollbar. We can show a total of 6 items post which we can show a scrollbar.
Greetings @VividhPandey003 @Naveen-Nair thanks for showing interest 🎉 , This is all yours. Assigning this to both of you for now. Based on the PRs received we will figure out whose code to merge.
Please don't forget to read the Contribution Guidelines. Would appreciate if you can open a PR within the next 2 days. let us know here

Hi @dilippitchika @dhruvikn. Could I please work on this issue?

Sure @Tallon66, please take a shot at it. Please don't forget to read the Contribution Guidelines. Would appreciate if you can open a PR within the next 2 days. Let us know here.

Can't reproduce this issue anymore. I think this issue has been fixed.


⚠ Bofrost.lu has degraded performance

In 3ae8db3, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1177 ms

Resolved: Bofrost.lu performance has improved in e3e393f after 7 minutes.


Shona6134

_ No description provided. _

This is my node

I'm trying to recommended my account

"ok"


Add more ruby versions to the Travis CI test plan

Add more Ruby version to the Travis CI test plan
Relates to #36

The more test plans that get added, the more 'assurance' that I can / will support these various environments.   In and of itself isn't a big deal, but what happens if a dependency gets in a situation where it fails.
By only listing MRI, I'm also saying I'm only interested in bug reports and issues from MRI.
I'll think about extending that, but I am not likely to do so, sorry.

That makes sense, and I understand your reasoning.
Personally, I would want to know if my gem breaks in a specific version of ruby, or with a particular combination of dependencies. If some users think that entitles them to free support... well that's their problem :)

Obsolete


Geodiff is failing to compare two files and keeps creating conflict files

I have a geopackage, which users edit in QGIS/Input. When they try to submit their changes, it cannot determine the changes and creates conflict.
The changes are to data (add/remove/edit features) and there is no schema change.

does it have connected tables by foreign keys?

Probably yes

This is caused by SpatiaLite database with some extra tables (and triggers on top of them). Geodiff reject to do a automatic rebase for databases with unknown triggers (right now it only accepts geopackage triggers)

We could investigate if we can relax the current rules a bit without compromising user data, e.g.:

ignore tables / triggers that are specific to SpatiaLite - https://www.gaia-gis.it/fossil/libspatialite/wiki?name=metadata-4.0
ignore triggers on views (?)
ignore triggers on tables that are not modified (?)