regression with global values in Helm 3.7.0

Given a chart with a subchart as visible here: https://github.com/bcollard/helm-3.7.0-global-values-issue
When I use a global value in a parent-level template that exists in the subchart values but not in the parent values,
I expect the subchart value to be used
That doesn't work anymore with Helm v3.7.0

Template example:
{{- $menu := merge $.Values.menu $.Values.global.menu -}}
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-cfgmap2
data:
  dessert: {{ $menu.dessert }}

parent values:
global:
  menu:
    main: salad

menu: {}

subchart values:
global:
  menu:
    dessert: choco-subchart

Helm 3.6.4:
$ /usr/local/bin/helm3.6 template foo . -s templates/myconfigmap.yaml

Output:
---
# Source: foo/templates/myconfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: foo-cfgmap2
data:
  dessert: choco-subchart

Helm 3.7.0:
helm template foo . -s templates/myconfigmap.yaml

---
# Source: foo/templates/myconfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: foo-cfgmap2
data:
  dessert:

The value for dessert is empty.

Output of helm version:
version.BuildInfo{Version:"v3.7.0", GitCommit:"eeac83883cb4014fe60267ec6373570374ce770b", GitTreeState:"clean", GoVersion:"go1.17"}
Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-19T08:38:20Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"20+", GitVersion:"v1.20.9-gke.701", GitCommit:"5f13de0910e4eb40c1c6b3b44704b25313a2c80c", GitTreeState:"clean", BuildDate:"2021-08-18T17:05:42Z", GoVersion:"go1.15.13b5", Compiler:"gc", Platform:"linux/amd64"}
Cloud Provider/Platform (AKS, GKE, Minikube etc.):  GKE

Sign... It seems like a regression with coalescing values is introduced every other point release. Someone identifies an issue with how helm coalesces values for their chart, then a "fix" is introduced that happens to break it for someone else. This has occurred multiple times in the past.
I'm considering whether we should stop attempting to address any further coalescing issues until Helm 4 because I'm tired of regressions being (re)introduced every other point release.
@bcollard are you able to identify which commit caused the regression?

Looking for commits about "subcharts" and "coalesce", I can see this particular commit: https://github.com/helm/helm/commit/3b68afc1c820d456e8281a6e6911af59c4b661c8
But I'm not sure at all!

Thanks for looking into that. I pinged the author of #9756 to look into this.
Based on #9749, the author was looking fixing into a "potential bug". I cannot tell whether this was an actual fix or a theoretical one, introducing a regression in the process.
I even mentioned this could introduce bugs during review... https://github.com/helm/helm/pull/9756#pullrequestreview-672437719
I would definitely investigate that commit further by reverting it and re-compiling Helm to see if that fixes your issue.

so yeah, I switched to tag 3.7.0, reverted this commit and now I have the expected result.

Adding to the 3.8.0 milestone so we don't lose track of this.

@bcollard @bacongobbler
Indeed this is what #9756 aims fixing : the ConfigMap template is at parent chart level whereas the dessert global value is only set at sub chart level.
With Helm 3.6 sub chart global values would have "leaked" upstream affecting any other sub chart (as if the value had been explicitly set at parent level) and I'm not sure this is the expected behaviour.
Helm 3.7 make sure that global values are only propagated downstream.
To provide more context: in my case I had many sub charts some of which needed DB access.
With helm 3.6 behaviour setting the value global.database: true in one of the sub charts was enough to have it propagated everywhere else - including the sub charts that didn't actually need it !
With helm 3.7 behaviour the value global.database: true can be activated specifically for the sub charts that actually need it without affecting the rest of the hierarchy.
Hope this helps, let me know If you need further details.

While I understand and appreciate what you were fixing, it does appear that a regression was introduced.
Can you please investigate this further and either come up with a fix. Otherwise we will have to revert the change. As per our contributing policy on semantic versioning we do take regressions quite seriously.
From the policy:

Any chart that worked on a previous version of Helm 3 MUST work on a new version of Helm 3 (barring the cases where (a) Kubernetes itself changed, and (b) the chart worked because it exploited a bug)

I don't think the use case @bcollard provided above can be construed as "exploiting a bug". Rather an expectation that the system worked in a certain way, and indeed it did until Helm 3.7.0.

I don't think the use case @bcollard provided above can be construed as "exploiting a bug".

I respectfully disagree. IMHO the above use case is exploiting a bug.
One of the reasons why it qualifies as a bug is simply that, if you have multiple sub charts defining the exact same global parameter - but with different values, a single child value will win and will be propagated everywhere else.
It  doesn't seem like an healthy behaviour to me and it can get extremely dangerous as well as tricky to investigate when you have a complex chart hierarchy.
Is the example clear or shall I back it up with a sample chart ? (do not hesitate to ask if that can help)

Can you please investigate this further and come up with a fix?

There is no fix I can come up with: we have to stick with one behaviour or the other, it is a mere functional choice.
I fully trust your judgement here and will thereby accept the revert of the change.
That being said it seems to me that reverting the change is simply the the easiest thing to do (being the coalesce values an historically regression-prone module etc etc) rather than being the right thing to do.
How many issues - that could be linked with my change - have been raised since its release ?

Okay, I think I understand where the confusion is coming from. Sorry about that.
I thought the template @bcollard suggested was in the subchart. However looking at the example more closely, it is in the parent chart. The code samples in the OP were not clear with this distinction.
I would expect the value to be null because a child's values should not influence how a parent's templates are rendered. In other words, Helm 3.7's behaviour is correct.
@bcollard why would you expect values from a subchart take precedence when a parent's templates are being rendered? I'm curious why you think it should work that way.
In other words I am starting to agree with @codeJack here. This does appear to qualify as an exploitation of a bug. Which in this case would mean we should close this out as intentional behavior.

FYI I have extended @bcollard example with another subchart that sets the global.menu.dessert value to vanilla-subchart. Visible here : https://github.com/codeJack/helm-3.7.0-global-values-issue
This is how the ConfigMap renders now with helm 3.6
$ helm template foo . -s templates/myconfigmap.yaml

Output:
---
# Source: foo/templates/myconfigmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: foo-cfgmap2
data:
  dessert: vanilla-subchart

@bcollard why would you expect values from a subchart take precedence when a parent's templates are being rendered? I'm curious why you think it should work that way.

That was not exactly the point. It was useful when the parent chart was missing this particular value. Then it was picked from the subchart.
Anyway, I also agree with @codeJack's reasoning.
So I think we will change our Helm charts without this exploit.

Is there an alternative to share globals between subcharts ?

Is there an alternative to share globals between subcharts ?

I used import of values from subcharts into umbrella chart under a specific global key (https://helm.sh/docs/topics/charts/#importing-child-values-via-dependencies).
However, I have some hard to understand behavior - I am able to loop over the global dictionary from some subcharts but the result is not the same in all subcharts - some of them have incomplete view of the modified global dictionary.


Undo and Redo

This adds the option to Ctrl+Z to undo and Ctrl+Y to redo a few types of actions.
It is built State modifiers, so there are some unrelated commits included.
The change can be broken into 4 categories:

Undo and Redo has been added to the shortcut menu
Command stack, class has been added
Undo and Redo handlers has been added the can reverse the user actions
The clickhandlers for the commands have been modified to fit into the undo and redo handlers

Command stack
The command stack is a custom circular buffer that can handle 32 elements. In such a way that overflow overrides old elements. However it is also possible to pop items of the stack (REDO) and further it is possible to pop_back items (UNDO) reusing the items on it.
Not included
This only observes ADD, DELETE, CHANGE, MOVE UP, and MOVE DOWN for the steps grid.
Which means MOVE 5, import steps, colouring, no-order modifier, everything template, etc. Is not included.

Your save shortcut can be set through the shortcut changer. Ctrl+S is just the default.

It looks like the first issue you found is related to auto-put. As the extra step matches the recipe. So i have made a fix for it.
I can't seem to replicate the issue with mining, even though your explanation is good. Perhaps it was fixed with one of the other changes?

True it isn't often, but would be nice if new players were able to add their first step without the tool crashing. :D
Fair point - I am just pretty sure that I haven't changed the shortcut - is it because you have changed it on the branch and it spills over to my "config"?
Well spotted. I think you are right that it is due to the recipe. It could very well be a side effect solved by one of your changes.

I have added a stack reset on open file, as that left stack in an obviously wrong state. Which i think fixes the first issue you highlighted.
I can reproduce the other error. Correcting it may take a while.

It solves by correcting the underlying data structure StepGridData. The issue you found was just a symptom, of the gui not representing the data correctly while the real issue was that the underlying structure was updated incorrectly.
Because you deleted all steps you ended in a situation where no rows were selected in the steps grid. When redo'ing steps these steps would not exclusively be added at the end of the steps list. However as there was no selection, the redone step was added correctly in steps_grid but at the end of StepGridData.
So if you ran a generate steps you'd see that the steps were different from what was in the GUI.


Force using parens around single argument on arrow functions?

I kinda like it more. It says more that this thing is a function.
force using
const foo = (abc) => 123

instead of
const foo = abc => 123

Currently, both styles are allowed. The reason I want that is, because it seems that ESLint fix does not remove them if you set them, but prettier seems to respect the second style more.
I'm kinda trying to start using Atom. And I have maybe kinda strange config:

Atom Linter
Atom Linter-ESLint
standard as devDependency
npm lint script that use that standard cli (mainly for contributors that dont have such editor config)

mainly for contributors that dont have such editor config, because that config flow just does not allow me to push wrong code at repo, hehe

eslingConfig field in package.json that has extends: standard to allow LinterESLint to do autofix

yea it may looks kinda strange that you have standard cli and also have eslintConfig field
another cool benefit from that is that contributors can use their global eslint cli if they want

Atom Prettier-ESLint plugin - that respects that eslintConfig and formats the code with it.

I kinda think that it is okey to do that change since v9 is upcoming. Not sure for the impact on the community, but please @feross at least try the tests to see the results - i'm curious :) Or maybe it can land for v10.

Previous related discussion: #414, #309

Thanks.
Hm. It seems it was landed, but later remove? Because I can't see it in the config currently?

NACK

Closing this, as this was previously decided in #414. I don't think there's a compelling reason to revisit this discussion at this time.


Client-side collection.findOneById() does not return result when passed a string

Describe the bug
When doing a findOneById  client side, it accepts a string as id, without me having to cast it as an objectid (just like it does when i updateOne), but I get no result. When I cast it as an objectid, it works though.
Expected behavior
As described in the doc / typings, both string and ObjectId should work, just like when passing an id to a updateOne

This is how it should be. If you choose to work with _id as strings, this behavior can be bad.

Yet the typings allows it, and I can pass a string successfully in collection.updateOn, which is not isomoprh


Support for Tuya Carbon Dioxide/Air Quality Sensor -- _TZE200_8ygsuhe1

Support for Tuya Air Quality Sensor
Device Signature:
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.0: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0051",
      "in_clusters": [
        "0x0000",
        "0x0004",
        "0x0005",
        "0xef00"
      ],
      "out_clusters": [
        "0x000a",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TZE200_8ygsuhe1",
  "model": "TS0601",
  "class": "zigpy.device.Device"
}

This PR also targets to establish a more universal Tuya Manufacturer Cluster, where you can just create handlers for Tuya command, instead of overloading handle_cluster_request() method.
For example, instead of checking the hdr.command_id in (0x0001, 0x0002) we just define handle_get_data() method, which corresponds to the previous command_id==1. handle_get_data() in turn just maps each datapoint (specific for each device) to a cluster and sends the attribute update to that cluster, using an optional "converter". Converter is a callable, which gets the datapoint value/payload and converts it to a corresponding ZCL attribute value.

Codecov Report

Merging #942 (bf6c1c4) into dev (b6cbdf1) will increase coverage by 0.23%.
The diff coverage is 90.90%.

@@            Coverage Diff             @@
##              dev     #942      +/-   ##
==========================================
+ Coverage   82.54%   82.78%   +0.23%
==========================================
  Files         186      188       +2
  Lines        4601     4739     +138
==========================================
+ Hits         3798     3923     +125
- Misses        803      816      +13

Impacted Files
Coverage Δ

zhaquirks/tuya/__init__.py
72.74% <88.49%> (+4.73%)
:arrow_up:

zhaquirks/tuya/air/__init__.py
100.00% <100.00%> (ø)

zhaquirks/tuya/air/ts0601_air_quality.py
100.00% <100.00%> (ø)

zhaquirks/tuya/valve.py
95.52% <0.00%> (ø)

zhaquirks/tuya/ts0041_zemismart.py
100.00% <0.00%> (ø)

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 b6cbdf1...bf6c1c4. Read the comment docs.

Pull Request Test Coverage Report for Build 975349486

130 of 143 (90.91%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 82.781%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

zhaquirks/tuya/init.py
100
113
88.5%

Totals

Change from base Build 967913299:
0.2%

Covered Lines:
3923

Relevant Lines:
4739

💛  - Coveralls

The sensor itself is meh, here's what CO2 measurement looks like

It does go up if you breathe onto sensor, so it does measure something. For camparison, here's output from MH-Z19B sensor from the same location:

Hi @Adminiuga,
Any chance these changes could be implemented for the following device handler as well?
Tuya Smart Air Box
TS0601
by _TZE200_ryfmq5rl
which uses the device handler _TZE200_ryfmq5rl instead of _TZE200_8ygsuhe1 from this PR.
I believe the hardware is basically the same.

Add that manufacturer and model to existing quirk and try.

How can I do that?
I only have a a home assistant setup, so I am not sure if there is any way I can modify anything and try it out.

The device is added in ZHA dev but i think its not being added in HA then its between the main releases of HA https://github.com/zigpy/zha-device-handlers/pull/1013, https://github.com/zigpy/zha-device-handlers/releases/tag/0.0.61.
You can using the dev branch of ZHA in HA and you is getting the support or downloading the changed files and adding it in your local quirk folder after congratulating that in HA.

The device is added in ZHA dev but i think its not being added in HA then its between the main releases of HA #1013, https://github.com/zigpy/zha-device-handlers/releases/tag/0.0.61.
You can using the dev branch of ZHA in HA and you is getting the support or downloading the changed files and adding it in your local quirk folder after congratulating that in HA.

Thank you very much @MattWestb, good to know that the change is already merged. I will wait for the next HA release to check.
Thanks,


Fixed issue #45

Test evidence:
Startup Bug: Settings form Player box is disabled

@ajTronic
Thanks to your help, I could find the bug before the next release test.
It was hard to find these startup bugs because I already saved the settings.
I merged this PR.
Thank you.


login from mobile device using registered contact number and otp only (without password)

Hi,
I appreciate the effort you put into this. I would like to know if there is a feature that allows user to bypass password authentication with otp. Idea is to login with otp only if the user is signing in from a registered mobile device as the registered contact number will be auto populated.

This is not a feature of this package. The reasoning is that the token is considered the second factor, the first factor being the password. Skipping the password would effectively mean that there's only a single factor.


Require image for ARM64 architecture

Hi Team,
I am trying to use “gliderlabs/registrator” over ARM64v8 but it seems it does not have an arm64 supported tag in the docker hub.
I have successfully built the image using the command docker build -t <image_name> . on arm64 platform.
I have used Travis-ci to build and push the image on docker hub.
Commit Link: https://github.com/odidev/registrator/commit/f9f599c3af62577d27ad8b77fe642cd3edcfa975
Dockerhub Link: https://hub.docker.com/repository/docker/odidev/registrator
Do you have any plans for releasing an ARM64 image?
May I know how the amd64 image is getting published on Dockerhub?
If interested, I will raise a PR.

Hello! You can try this: https://hub.docker.com/r/hypolas/registrator

@xelatirdan it seems it behaves a lot differently to amd64 one from gliderlabs, i even tried to build from source and also the same issue, it picks a lot of garbage services like ecs agent and consul-8500,8100, etc which somehow interferes with the x64 one when run in conjunction ,
is this the same for you

If someone makes a PR switching CI to github actions, I'd take a follow-up PR adding docker hub support.


Eslint consistent type import

The recent incidents where we've imported types from Sequelize into files subsequently used in the front end have caused Dust to fail to load. One way to mitigate this is by utilizing import type, which ensures type imports are stripped out at runtime. This PR introduces a rule enforcing this practice and corrects all the associated errors until we find a more robust linter rule.

Closing in favor of https://github.com/dust-tt/dust/pull/3248.


Error in Coverlet.Console 1.4.0

I just started getting this on my build server. Seems like you just pushed an update.
fake : An exception occurred while invoking executor 'executor://xunit/VsTestRunner2/net': The type initializer for
'Coverlet.Core.Instrumentation.Tracker.xunit.runner.visualstudio.testadapter_72850aea-b6e0-4804-a443-564a9e718190' threw an exception.
At line:1 char:1
+ fake run Build.fsx
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (An exception oc...w an exception.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Could not l
oad file or assembly 'System.Runtime.Extensions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Test Run Failed.

HI @StanleyGoldman, what .NET runtime are you running on?

Same issue here:
Host (useful for support):
  Version: 3.0.0-preview-27218-01
  Commit:  d40b87f29d

Error Message:
 System.TypeInitializationException : The type initializer for 'Coverlet.Core.Instrumentation.Tracker.gfoidl.Base64_ca953f4c-294c-4af4-87e9-cce811fc9369' threw an exception.
  ----> System.IO.FileNotFoundException : Could not load file or assembly 'System.Runtime.Extensions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Stack Trace:
   at Coverlet.Core.Instrumentation.Tracker.gfoidl.Base64_ca953f4c-294c-4af4-87e9-cce811fc9369.RecordHit(Int32 )
   ...

coverlet.console 1.3.0 works fine.
coverlet.console 1.4.0 throws the above exception.

Hi,
I've got the same problem with coverlet.msbuild, when downgrading to the previous version the problem disappeared. Hope it helps.
Regards


Next.Js auth

Backend: Express
Frontend: React
Database: Mongodb
Status: Working
Backend: Express
Frontend: Next.Js
Database: MongoDB
Status: Not working

React auth can also work in next.js.


[Event Request] codeunit 7301 "Whse. Jnl.-Register Line". - Add parameter to function OnAfterInsertWhseEntry

Dear ALAppExtensions Team,
Is it possible to add a parameter to function OnAfterInsertWhseEntry in codeunit 7301?
-OnAfterInsertWhseEntry(WhseEntry);
+OnAfterInsertWhseEntry(WhseEntry, WhseJnlLine);

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Builders should have occam smoke tests

Currently, we test new versions of the builder.toml in the full builder and (soon) base builder with smoke tests that pack create-builder and then pack build a set of sample apps. These smoke tests are slow, not parallelized, and do not cover all of the language families the builders support.
Each builder should have smoke tests that test each of the language families within the builder. The tests should check that the expected buildpack is the one that passed detection (e.g. Ruby buildpack detects on a rackup sample app).
By implementing the tests with occam, we get the benefit that the tests can be run in parallel so we'd end up with better test coverage without slowing down our workflows.
Defining a parameterized github action that accepts a list of buildpacks/language families andpack builds would make it simpler to keep this testing consistent across the different builders.

Closing in favor of issues on specific builder repos.


How-to: Correctly setup issuer - how does it work with well-known ?

It would be nice to get a guide on how the issuer works and gotchas to look out for. Eg not clear to me if the issuer actually reads from the given url's well-known location?
Related: https://github.com/spring-projects/spring-authorization-server/issues/499

@colin-riddell This seems more of a question that a guide. Can you please provide more details on what you are looking for?

Perhaps it is more of a question.
I've had to figure out what the effect of configuring the issuer is just by trying it out and slowly finding out that, for example,  the resource server tries to match its issuer against the authorization server's configured issuer and if they mismatch then it doesn't allow the resource server to start.
On reflection this is maybe more of a suggestion to include something in the documentation on the issuer. Unless this is already documented somewhere ?

@colin-riddell There is no documentation at the moment but we're starting it. I'll leave this open and we'll document it.

It would be great, if the location of the metadata could be configured.
I am aware that the "/.well-known" path is indeed named that way for a reason. I have a scenario where I need to decide to either change the servlet context-path or use a reverse proxy to work around the currently hardcoded metadata location in OAuth2AuthorizationServerMetadataEndpointFilter and OidcProviderConfigurationEndpointFilter

@colin-riddell I still feel the comments you provided are more questions than a How-to guide.
We have documented OpenID Connect 1.0 Provider Configuration Endpoint and OAuth2 Authorization Server Metadata Endpoint. Each of the sections reference the relevant specifications so you can review them further to gain a deeper understanding of issuer.
I'm going to close this but if you have something more specific that needs documenting please comment here and we can discuss further.


Misplaced comment in https://foundation.zurb.com/

Go https://foundation.zurb.com/
1)Hover Tutorials tab
2)After all the sub menus you can find the misplaced comment --->(Dev forget to remove end cmt)

Hi @moorthyptm,
I can not see it anymore. I guess this is fixed now.


Command + X is not working.

code-server version: 3.11.1
OS Version: Ubuntu 18.04

Description
Ctrl+x seems not to work like in vs code. When nothing is selected the whole line gets cut in vs code. In code server, it seems like nothing happens unless some code is marked.
https://github.com/cdr/code-server/issues/533
I found same issue in the past. Can anyone confirm is it work on latest version.
Steps to Reproduce
Set the cursor somewhere in the editor
Press Ctrl+x

Are there any logs in the browser console or the server? (Can you fill out the entire bug report?)
Cmd + x works for me in 3.11.1
https://user-images.githubusercontent.com/3806031/131376140-84f14a7a-58e1-491b-8ebe-654f1924a037.mov

@jsjoeio I mean Command + X without select any text. That's mean Cut single line.
Below video is working function from Original VS Code.
http://g.recordit.co/9GOLLAI2jl.gif

@jsjoeio I had fresh install and it's working as expected. I'm not sure what i did in previous install.
Sorry for bothering. Thanks you so much.

No worries - glad it was an easy fix! :)


[All Hosts] Update manifest reference article to add link to child element article.

Fixes #1461

Docs Build status updates of commit 1b9016c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/manifest/group.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[Question] 句柄数超两千，这个现象正常吗？

Checklist

[X] I have already read docs/Tips.md, but my question is not solved.
[X] My question was not mentioned by others, and it is not a duplicate question.

Description
电脑开机7天，句柄数干到了20w+，所以突发奇想问问这样的软件多少句柄数是比较正常的？

Starward Version
0.11.0
Windows Version
19045.3930
Log
No response
Additional Context
No response

确实挺多的，不过对正常使用没有影响。

我就这么说吧，Windows资源管理器有4K左右的句柄


⬆<EMAIL_ADDRESS>

Bumps vscode-ripgrep from 1.5.7 to 1.8.0

Closing in favour of https://github.com/atom/atom/pull/21282


clientv3: added test for client metrics

#6711

@xiang90 @gyuho PTAL, if this is what you expected for tests or something else?

@xiang90, @heyitsanthony ,@gyuho :  I am facing an issue with this test case. The test cases are failing for a leak in go-routine due to the http.ListenAndServe i am starting as it won't close until the entire test case execution completes.
I tried doing the custom way by creating my own customized call to handle the server. The below is the code for this:
// listen for all prometheus metrics
	go func() {
		http.Handle("/metrics", prometheus.Handler())
		srv := &http.Server{Addr: ":27989", Handler: nil}
		addr := srv.Addr
		if addr == "" {
			addr = ":http"
		}
		ln, err = net.Listen("tcp", addr)
		if err != nil {
			log.Fatalf("Error : %v occured while listening on addr : %v", err, addr)
		}
		log.Fatal(srv.Serve(ln.(*net.TCPListener)))
	}()

And before exiting i was doing:
if ln != nil {
		ln.Close()
	}

But now the issue is once the listener is closing the entire test case ends and before the next test case execution it exits :-(
Will be glad if you could help on this.
Thank you!

@xiang90 I don't know why the semaphore build is failing for integration, in my local machine i have tested it almost 50 times now and its passing all the time :-(.
 What am i supposed to do with this. If its not useful enough shall i close it?

We will take a look today

@xiang90 Thank you!

Let's clean this up. ping me when it is ready for the next round of review. sorry for the delay.

@xiang90 I have done the changes. PTAL.
Thank you!

@sinsharat
CI failed with
panic: http: multiple registrations for /metrics

goroutine 31279 [running]:
panic(0xf66840, 0xc4242b0cf0)
	/usr/local/golang/1.7.1/go/src/runtime/panic.go:500 +0x1ae
net/http.(*ServeMux).Handle(0x15a6020, 0x10d3187, 0x8, 0x1570ca0, 0xc4224faf50)
	/usr/local/golang/1.7.1/go/src/net/http/server.go:2038 +0x78b
net/http.Handle(0x10d3187, 0x8, 0x1570ca0, 0xc4224faf50)
	/usr/local/golang/1.7.1/go/src/net/http/server.go:2076 +0x73
github.com/coreos/etcd/clientv3/integration.TestV3ClientMetrics.func1.1(0xc42425c0d0, 0xc42425c0e0, 0xc422b81200)
	/home/runner/workspace/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/metrics_test.go:52 +0x94
created by github.com/coreos/etcd/clientv3/integration.TestV3ClientMetrics.func1
	/home/runner/workspace/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/metrics_test.go:69 +0x65
exit status 2

You need to create a customized mux instead of using the default http.Handle.

@xiang90 i have done the changes PTAL.
Thank you!

ok will do it with customized mux.

@xiang90 I have done all the changes. PTAL.
Thank you!

Fix the unix socket thing, then LGTM

@xiang90 I am trying the unix socket thing only. But the only problem i am facing is on how to use prometheus.Handler() which is an http handler with unix. since unix is file based.

@xiang90 I tried making it work. But by making direct calls to prometheus its not providing the correct results. Please let me know if i am doing something wrong here:
I did the below changes:
// listen for all prometheus metrics
	go func() {
		ln, err = transport.NewUnixListener(addr)

		if err != nil {
			t.Fatalf("Error : %v occured while listening on addr : %v", err, addr)
		}

		for {
			conn, err := ln.Accept()
			if err != nil {
				if !strings.Contains(err.Error(), "use of closed network connection") {
					t.Fatalf("accept error: %v", err)
				}
				return
			}

			fetchPrometheusLines(t, conn)
			conn.Close()
		}

	}()

wrote a new function to fetch Prometheus data directly without using http:
func fetchPrometheusLines(t *testing.T, c net.Conn) {

	mfs, err := prometheus.DefaultGatherer.Gather()
	if err != nil {
		t.Errorf("An error has occurred during metrics collection:%v\n", err.Error())
		return
	}

	contentType := expfmt.FmtProtoText
	var buffer bytes.Buffer
	writer := bufio.NewWriter(&buffer)
	enc := expfmt.NewEncoder(writer, contentType)
	var lastErr error
	for _, mf := range mfs {
		if err := enc.Encode(mf); err != nil {
			lastErr = err
			t.Errorf("An error has occurred during metrics encoding:%v\n", err.Error())
			return
		}
	}

	if lastErr != nil && buffer.Len() == 0 {
		t.Errorf("No metrics encoded, last error:%v\n", err.Error())
		return
	}

	fmt.Println("=========================================================")

	_, err = c.Write(buffer.Bytes())
	fmt.Println(buffer.String())
	fmt.Println("=========================================================")
	if err != nil {
		t.Errorf("Write: %v\n", err)
		return
	}
}

Also modified the code of getHTTPBodyAsLines as below:
func getHTTPBodyAsLines(t *testing.T, url string) []string {
	c, err := net.Dial("unix", url)
	if err != nil {
		t.Fatalf("error fetching: %v", err)
	}
	defer c.Close()

	reader := bufio.NewReader(c)

	lines := []string{}
	for {
		line, err := reader.ReadString('\n')

		if err != nil {
			if err == io.EOF {
				break
			} else {
				t.Fatalf("error reading: %v", err)
			}
		}
		lines = append(lines, line)
	}
	return lines
}

With these changes i am able to fetch the prometheus data but its not providing expecte values.
Please take a look.
Thank you!

you can use https://github.com/coreos/etcd/blob/master/pkg/transport/transport.go#L26. it understands how to dial unix socket.

@xiang90 I am able to achieve the unix client-server behaviour, also i am able to fetch prometheus metrics with it. The only issue i am facing is prometheus metrics is not providing correct data as it was doing with http. May be some problem with my code to fetch metrics which i am not able to figure out.

@xiang90 I was able to achieve the unix implementation the way you wanted. But the client transport is giving error as transport leaked. I tried closing it but its still leaking it. Request you to PTAL.
Thank you!

@sinsharat What is leaking? Any log?

@xiang90 Sure will post the logs here.

@xiang90 Please find attached the logs for the same:
--- FAIL: TestV3ClientMetrics (0.70s)
	leak.go:96: Test appears to have leaked a Transport:
		net.runtime_pollWait(0x7f295da8a3a8, 0x72, 0x413233)
			/usr/local/golang/1.7.1/go/src/runtime/netpoll.go:160 +0x5e
		net.(*pollDesc).wait(0xc4222801b0, 0x72, 0x40fae8, 0xfd4500)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:73 +0x5b
		net.(*pollDesc).waitRead(0xc4222801b0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:78 +0x42
		net.(*netFD).Read(0xc422280150, 0xc422282000, 0x1000, 0x1000, 0x0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_unix.go:243 +0x1d9
		net.(*conn).Read(0xc420033600, 0xc422282000, 0x1000, 0x1000, 0x15a8300, 0xc420ae6558, 0xc420ae6548)
			/usr/local/golang/1.7.1/go/src/net/net.go:173 +0x97
		net.(*UnixConn).Read(0xc420033600, 0xc422282000, 0x1000, 0x1000, 0xc420ae6550, 0xc422ea1798, 0x10)
			<autogenerated>:111 +0x73
		net/http.(*persistConn).Read(0xc420155800, 0xc422282000, 0x1000, 0x1000, 0x0, 0x4d8, 0x1)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1261 +0x239
		bufio.(*Reader).fill(0xc422ea18c0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:97 +0x197
		bufio.(*Reader).Peek(0xc422ea18c0, 0x1, 0xc420041b24, 0x1, 0x1, 0xc422ea1920, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:129 +0x132
		net/http.(*persistConn).readLoop(0xc420155800)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1418 +0x2c1
		created by net/http.(*Transport).dialConn
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1062 +0xa25

		net.runtime_pollWait(0x7f295da8a5e8, 0x72, 0x413233)
			/usr/local/golang/1.7.1/go/src/runtime/netpoll.go:160 +0x5e
		net.(*pollDesc).wait(0xc422280290, 0x72, 0x40fae8, 0xfd4500)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:73 +0x5b
		net.(*pollDesc).waitRead(0xc422280290, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:78 +0x42
		net.(*netFD).Read(0xc422280230, 0xc422284000, 0x1000, 0x1000, 0x0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_unix.go:243 +0x1d9
		net.(*conn).Read(0xc420033608, 0xc422284000, 0x1000, 0x1000, 0x0, 0x1000, 0x0)
			/usr/local/golang/1.7.1/go/src/net/net.go:173 +0x97
		net.(*UnixConn).Read(0xc420033608, 0xc422284000, 0x1000, 0x1000, 0x0, 0x1000, 0x150)
			<autogenerated>:111 +0x73
		net/http.(*connReader).Read(0xc422dfde40, 0xc422284000, 0x1000, 0x1000, 0x0, 0xf99, 0x1)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:586 +0x2ee
		bufio.(*Reader).fill(0xc422ea1b60)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:97 +0x197
		bufio.(*Reader).ReadSlice(0xc422ea1b60, 0xc4223bda0a, 0x0, 0x0, 0x200000007, 0x22, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:330 +0x1b5
		bufio.(*Reader).ReadLine(0xc422ea1b60, 0xc420ae7770, 0xf0, 0xc425215818, 0x41234c, 0xc420066000, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:359 +0x56
		net/textproto.(*Reader).readLineSlice(0xc420158120, 0xc425215848, 0x6d82c9, 0xc420158120, 0xc425215848, 0x412948)
			/usr/local/golang/1.7.1/go/src/net/textproto/reader.go:55 +0x8e
		net/textproto.(*Reader).ReadLine(0xc420158120, 0xc420ae7770, 0xc, 0x0, 0x42ec0c)
			/usr/local/golang/1.7.1/go/src/net/textproto/reader.go:36 +0x3d
		net/http.readRequest(0xc422ea1b60, 0x0, 0xc420ae7770, 0x0, 0x0)
			/usr/local/golang/1.7.1/go/src/net/http/request.go:793 +0xbf
		net/http.(*conn).readRequest(0xc4214da480, 0x157aa60, 0xc426be51c0, 0x0, 0x0, 0x0)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:765 +0x244
		net/http.(*conn).serve(0xc4214da480, 0x157aa60, 0xc426be51c0)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:1532 +0x410
		created by net/http.(*Server).Serve
			/usr/local/golang/1.7.1/go/src/net/http/server.go:2293 +0x541

		net.runtime_pollWait(0x7f295da93580, 0x72, 0x413233)
			/usr/local/golang/1.7.1/go/src/runtime/netpoll.go:160 +0x5e
		net.(*pollDesc).wait(0xc423496140, 0x72, 0x40fae8, 0xfd4500)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:73 +0x5b
		net.(*pollDesc).waitRead(0xc423496140, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:78 +0x42
		net.(*netFD).Read(0xc4234960e0, 0xc426b8d000, 0x1000, 0x1000, 0x0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_unix.go:243 +0x1d9
		net.(*conn).Read(0xc420033bd8, 0xc426b8d000, 0x1000, 0x1000, 0x15a8300, 0xc422d51098, 0xc422d51088)
			/usr/local/golang/1.7.1/go/src/net/net.go:173 +0x97
		net.(*UnixConn).Read(0xc420033bd8, 0xc426b8d000, 0x1000, 0x1000, 0xc422d51090, 0xc421d8b258, 0x10)
			<autogenerated>:111 +0x73
		net/http.(*persistConn).Read(0xc420072b00, 0xc426b8d000, 0x1000, 0x1000, 0x0, 0x4b7, 0x1)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1261 +0x239
		bufio.(*Reader).fill(0xc421d8b3e0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:97 +0x197
		bufio.(*Reader).Peek(0xc421d8b3e0, 0x1, 0xc422154b24, 0x1, 0x1, 0xc421d8b440, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:129 +0x132
		net/http.(*persistConn).readLoop(0xc420072b00)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1418 +0x2c1
		created by net/http.(*Transport).dialConn
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1062 +0xa25

		net.runtime_pollWait(0x7f295da93c40, 0x72, 0x413233)
			/usr/local/golang/1.7.1/go/src/runtime/netpoll.go:160 +0x5e
		net.(*pollDesc).wait(0xc4202a56b0, 0x72, 0x40fae8, 0xfd4500)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:73 +0x5b
		net.(*pollDesc).waitRead(0xc4202a56b0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:78 +0x42
		net.(*netFD).Read(0xc4202a5650, 0xc422150000, 0x1000, 0x1000, 0x0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_unix.go:243 +0x1d9
		net.(*conn).Read(0xc420033218, 0xc422150000, 0x1000, 0x1000, 0x0, 0x1000, 0x0)
			/usr/local/golang/1.7.1/go/src/net/net.go:173 +0x97
		net.(*UnixConn).Read(0xc420033218, 0xc422150000, 0x1000, 0x1000, 0x0, 0x1000, 0x150)
			<autogenerated>:111 +0x73
		net/http.(*connReader).Read(0xc422e2b1c0, 0xc422150000, 0x1000, 0x1000, 0x0, 0xf99, 0x1)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:586 +0x2ee
		bufio.(*Reader).fill(0xc42152b020)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:97 +0x197
		bufio.(*Reader).ReadSlice(0xc42152b020, 0xecd60a, 0x0, 0x0, 0x200000007, 0x22, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:330 +0x1b5
		bufio.(*Reader).ReadLine(0xc42152b020, 0xc420ae62d0, 0xf0, 0xc4256c7818, 0x41234c, 0xc420034c00, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:359 +0x56
		net/textproto.(*Reader).readLineSlice(0xc420aa9b00, 0xc4256c7848, 0x6d82c9, 0xc420aa9b00, 0xc4256c7848, 0x412948)
			/usr/local/golang/1.7.1/go/src/net/textproto/reader.go:55 +0x8e
		net/textproto.(*Reader).ReadLine(0xc420aa9b00, 0xc420ae62d0, 0xc, 0x0, 0x42ec0c)
			/usr/local/golang/1.7.1/go/src/net/textproto/reader.go:36 +0x3d
		net/http.readRequest(0xc42152b020, 0x0, 0xc420ae62d0, 0x0, 0x0)
			/usr/local/golang/1.7.1/go/src/net/http/request.go:793 +0xbf
		net/http.(*conn).readRequest(0xc420152a80, 0x157aa60, 0xc420ab4480, 0x0, 0x0, 0x0)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:765 +0x244
		net/http.(*conn).serve(0xc420152a80, 0x157aa60, 0xc420ab4480)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:1532 +0x410
		created by net/http.(*Server).Serve
			/usr/local/golang/1.7.1/go/src/net/http/server.go:2293 +0x541

		net.runtime_pollWait(0x7f295da99278, 0x72, 0x413233)
			/usr/local/golang/1.7.1/go/src/runtime/netpoll.go:160 +0x5e
		net.(*pollDesc).wait(0xc423496290, 0x72, 0x40fae8, 0xfd4500)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:73 +0x5b
		net.(*pollDesc).waitRead(0xc423496290, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:78 +0x42
		net.(*netFD).Read(0xc423496230, 0xc42349c000, 0x1000, 0x1000, 0x0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_unix.go:243 +0x1d9
		net.(*conn).Read(0xc420033be8, 0xc42349c000, 0x1000, 0x1000, 0x0, 0x1000, 0x0)
			/usr/local/golang/1.7.1/go/src/net/net.go:173 +0x97
		net.(*UnixConn).Read(0xc420033be8, 0xc42349c000, 0x1000, 0x1000, 0x0, 0x1000, 0x150)
			<autogenerated>:111 +0x73
		net/http.(*connReader).Read(0xc420a615e0, 0xc42349c000, 0x1000, 0x1000, 0x0, 0xf99, 0x1)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:586 +0x2ee
		bufio.(*Reader).fill(0xc421d8b620)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:97 +0x197
		bufio.(*Reader).ReadSlice(0xc421d8b620, 0xc4223bda0a, 0x0, 0x0, 0x200000001, 0x22, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:330 +0x1b5
		bufio.(*Reader).ReadLine(0xc421d8b620, 0xc420a782d0, 0xf0, 0xc42456d818, 0x4122b8, 0xc420034c00, 0xf0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:359 +0x56
		net/textproto.(*Reader).readLineSlice(0xc4220fbe30, 0xc42456d848, 0x6d82c9, 0xc4220fbe30, 0xc42456d848, 0x412948)
			/usr/local/golang/1.7.1/go/src/net/textproto/reader.go:55 +0x8e
		net/textproto.(*Reader).ReadLine(0xc4220fbe30, 0xc420a782d0, 0xc, 0x0, 0x42ec0c)
			/usr/local/golang/1.7.1/go/src/net/textproto/reader.go:36 +0x3d
		net/http.readRequest(0xc421d8b620, 0x0, 0xc420a782d0, 0x0, 0x0)
			/usr/local/golang/1.7.1/go/src/net/http/request.go:793 +0xbf
		net/http.(*conn).readRequest(0xc423494e80, 0x157aa60, 0xc42348e940, 0x0, 0x0, 0x0)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:765 +0x244
		net/http.(*conn).serve(0xc423494e80, 0x157aa60, 0xc42348e940)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:1532 +0x410
		created by net/http.(*Server).Serve
			/usr/local/golang/1.7.1/go/src/net/http/server.go:2293 +0x541

		net.runtime_pollWait(0x7f295da99578, 0x72, 0x413233)
			/usr/local/golang/1.7.1/go/src/runtime/netpoll.go:160 +0x5e
		net.(*pollDesc).wait(0xc4202a55d0, 0x72, 0x40fae8, 0xfd4500)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:73 +0x5b
		net.(*pollDesc).waitRead(0xc4202a55d0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:78 +0x42
		net.(*netFD).Read(0xc4202a5570, 0xc421d6c000, 0x1000, 0x1000, 0x0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_unix.go:243 +0x1d9
		net.(*conn).Read(0xc420033208, 0xc421d6c000, 0x1000, 0x1000, 0x15a8300, 0xc4201af098, 0xc4201af088)
			/usr/local/golang/1.7.1/go/src/net/net.go:173 +0x97
		net.(*UnixConn).Read(0xc420033208, 0xc421d6c000, 0x1000, 0x1000, 0xc4201af090, 0xc42152a958, 0x10)
			<autogenerated>:111 +0x73
		net/http.(*persistConn).Read(0xc420155300, 0xc421d6c000, 0x1000, 0x1000, 0x0, 0x4fe, 0x1)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1261 +0x239
		bufio.(*Reader).fill(0xc42152ac00)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:97 +0x197
		bufio.(*Reader).Peek(0xc42152ac00, 0x1, 0xc420040b24, 0x1, 0x1, 0xc42152acc0, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:129 +0x132
		net/http.(*persistConn).readLoop(0xc420155300)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1418 +0x2c1
		created by net/http.(*Transport).dialConn
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1062 +0xa25

		net.runtime_pollWait(0x7f295da9fbd0, 0x72, 0x413233)
			/usr/local/golang/1.7.1/go/src/runtime/netpoll.go:160 +0x5e
		net.(*pollDesc).wait(0xc421d1d330, 0x72, 0x40fae8, 0xfd4500)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:73 +0x5b
		net.(*pollDesc).waitRead(0xc421d1d330, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:78 +0x42
		net.(*netFD).Read(0xc421d1d2d0, 0xc422e69000, 0x1000, 0x1000, 0x0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_unix.go:243 +0x1d9
		net.(*conn).Read(0xc420033910, 0xc422e69000, 0x1000, 0x1000, 0x15a8300, 0xc420ae7bd8, 0xc420ae7bc8)
			/usr/local/golang/1.7.1/go/src/net/net.go:173 +0x97
		net.(*UnixConn).Read(0xc420033910, 0xc422e69000, 0x1000, 0x1000, 0xc420ae7bd0, 0xc426bdb7f8, 0x10)
			<autogenerated>:111 +0x73
		net/http.(*persistConn).Read(0xc420155d00, 0xc422e69000, 0x1000, 0x1000, 0x0, 0x4cb, 0x1)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1261 +0x239
		bufio.(*Reader).fill(0xc426bdb920)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:97 +0x197
		bufio.(*Reader).Peek(0xc426bdb920, 0x1, 0xc422da6b24, 0x1, 0x1, 0xc426bdb9e0, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:129 +0x132
		net/http.(*persistConn).readLoop(0xc420155d00)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1418 +0x2c1
		created by net/http.(*Transport).dialConn
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1062 +0xa25

		net.runtime_pollWait(0x7f295da9fe10, 0x72, 0x413233)
			/usr/local/golang/1.7.1/go/src/runtime/netpoll.go:160 +0x5e
		net.(*pollDesc).wait(0xc421d1d410, 0x72, 0x40fae8, 0xfd4500)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:73 +0x5b
		net.(*pollDesc).waitRead(0xc421d1d410, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_poll_runtime.go:78 +0x42
		net.(*netFD).Read(0xc421d1d3b0, 0xc421d23000, 0x1000, 0x1000, 0x0, 0x15737e0, 0xc4200960b0)
			/usr/local/golang/1.7.1/go/src/net/fd_unix.go:243 +0x1d9
		net.(*conn).Read(0xc420033918, 0xc421d23000, 0x1000, 0x1000, 0x0, 0x1000, 0x0)
			/usr/local/golang/1.7.1/go/src/net/net.go:173 +0x97
		net.(*UnixConn).Read(0xc420033918, 0xc421d23000, 0x1000, 0x1000, 0x0, 0x1000, 0x150)
			<autogenerated>:111 +0x73
		net/http.(*connReader).Read(0xc425388260, 0xc421d23000, 0x1000, 0x1000, 0x0, 0xf99, 0x1)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:586 +0x2ee
		bufio.(*Reader).fill(0xc426bdbb00)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:97 +0x197
		bufio.(*Reader).ReadSlice(0xc426bdbb00, 0xc4223bda0a, 0x0, 0x0, 0x200000007, 0x22, 0x0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:330 +0x1b5
		bufio.(*Reader).ReadLine(0xc426bdbb00, 0xc422d50e10, 0xf0, 0xc425315818, 0x4122b8, 0xc420034c00, 0xf0)
			/usr/local/golang/1.7.1/go/src/bufio/bufio.go:359 +0x56
		net/textproto.(*Reader).readLineSlice(0xc4228b0cc0, 0xc425315848, 0x6d82c9, 0xc4228b0cc0, 0xc425315848, 0x412948)
			/usr/local/golang/1.7.1/go/src/net/textproto/reader.go:55 +0x8e
		net/textproto.(*Reader).ReadLine(0xc4228b0cc0, 0xc422d50e10, 0xc, 0x0, 0x42ec0c)
			/usr/local/golang/1.7.1/go/src/net/textproto/reader.go:36 +0x3d
		net/http.readRequest(0xc426bdbb00, 0x0, 0xc422d50e10, 0x0, 0x0)
			/usr/local/golang/1.7.1/go/src/net/http/request.go:793 +0xbf
		net/http.(*conn).readRequest(0xc421d1b980, 0x157aa60, 0xc421d1ebc0, 0x0, 0x0, 0x0)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:765 +0x244
		net/http.(*conn).serve(0xc421d1b980, 0x157aa60, 0xc421d1ebc0)
			/usr/local/golang/1.7.1/go/src/net/http/server.go:1532 +0x410
		created by net/http.(*Server).Serve
			/usr/local/golang/1.7.1/go/src/net/http/server.go:2293 +0x541

		net/http.(*persistConn).writeLoop(0xc420072b00)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1646 +0x506
		created by net/http.(*Transport).dialConn
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1063 +0xa4a

		net/http.(*persistConn).writeLoop(0xc420155300)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1646 +0x506
		created by net/http.(*Transport).dialConn
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1063 +0xa4a

		net/http.(*persistConn).writeLoop(0xc420155800)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1646 +0x506
		created by net/http.(*Transport).dialConn
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1063 +0xa4a

		net/http.(*persistConn).writeLoop(0xc420155d00)
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1646 +0x506
		created by net/http.(*Transport).dialConn
			/usr/local/golang/1.7.1/go/src/net/http/transport.go:1063 +0xa4a

		testing.(*T).Run(0xc4201d8fc0, 0x10df549, 0x13, 0x118d848, 0x557a01)
			/usr/local/golang/1.7.1/go/src/testing/testing.go:647 +0x56e
		testing.RunTests.func1(0xc4201d8fc0)
			/usr/local/golang/1.7.1/go/src/testing/testing.go:793 +0xba
		testing.tRunner(0xc4201d8fc0, 0xc42027fd98)
			/usr/local/golang/1.7.1/go/src/testing/testing.go:610 +0xca
		testing.RunTests(0x1190078, 0x15a2e20, 0x45, 0x45, 0xc42013d5c0)
			/usr/local/golang/1.7.1/go/src/testing/testing.go:799 +0x4bb
		testing.(*M).Run(0xc42027fef0, 0x0)
			/usr/local/golang/1.7.1/go/src/testing/testing.go:743 +0x130
		github.com/coreos/etcd/clientv3/integration.TestMain(0xc42027fef0)
			/home/runner/workspace/src/github.com/coreos/etcd/gopath/src/github.com/coreos/etcd/clientv3/integration/main_test.go:15 +0x39
		main.main()
			github.com/coreos/etcd/clientv3/integration/_test/_testmain.go:188 +0x1b6

@xiang90 from my point of view the client call to the server is causing the leak as its giving the leak for http.Transport which we are using the client side. Also i had tested by removing the client side call and server having to close listener at the end was not causing the leak. Hence i am pretty sure that the client call to server using http.Transport is causing the leak and i am not getting any option to close the connection.

@sinsharat Can you try to use Transport directly instead of wrapping it with a HTTP client?

@xiang90 Do you mean using round trip?

@sinsharat Yes. Use that directly.

@xiang90 ok will try it out and check. Thanks for the suggestion!

@heyitsanthony I have done the changes as per your suggestion, but as i had judged earlier without channels as well the server was closing, and the problem of leak still persists. Will try doing what @xiang90 had suggested on top of your suggested changes.
Thank you!

@sinsharat Can you push your recent changes to github?

@xiang90 sure will do it.

@xiang90 @heyitsanthony I have pushed the changes. PTAL.
Thank you!

@xiang90 @heyitsanthony PTAL.
Thank you!

LGTM. defer to @heyitsanthony and @gyuho

lgtm. Defer to @heyitsanthony
Thanks @sinsharat !

@xiang90 @heyitsanthony @gyuho Thank you so much for your support!

@xiang90 To be honest i am thankful to you and @heyitsanthony for helping me out on this.
Thanks again!


Introduce changesets

This PR contains scripts and workflows for changeset changes and automatic releases. I have added Discord webhook and new channel where users should be notified about releases.
This PR is probably candidate for pair review

related to #71


Callstack not show

I deployed pinpoint on windows 8 using pinpoint-1.5.2.  The whole project worked well except for call stack( shows in the panel named CallTree), It shows nothing when I select a trasaction.  Anyone know why?

Hi @ecamy
Please check your web log for exceptions when you select a transaction. If nothing seems to be wrong, please check your collector log (DEBUG level) to see if spans and span events are received/handled without error.


How to get list transaction with fromBLock-toBlock of the list address

Hi, how to get list/query transaction with fromBLock-toBlock of the list address.
Thanks!

I'm pretty sure that NEAR indexer is more suitable for this. Other than that, for loop and query blocks & traverse transactions I guess?


Add key bindings for various actions

The actions for copying/opening urls should be accessible via customizable key bindings.

Implemented in version 2.4.0


Unable to reach Microsoft OAuth endpoint within Docker

Version
Microsoft Windows [Version 10.0.19042.1288]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
Linux <IP_ADDRESS>-microsoft-standard-WSL2 x86_64
Distro Version
Ubuntu 20.04 LTS
Other Software
Docker Desktop (Windows), version 4.1.1 [69879]
Python 3.9
Repro Steps

Set up new Docker container with Python 3.9
Install MSAL for Python: https://github.com/AzureAD/microsoft-authentication-library-for-python
Import ConfidentialClientApplication in .py script
Call ConfidentialClientApplication(          client_id,          client_credential=client_secret,          authority=API_OAUTH_AUTHORITY )

Expected Behavior
Receive the following prompt: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code XXXX to authenticate.
Actual Behavior
Exit out to tracebacks, all of which cite Failed to establish a new connection: [Errno -5] No address associated with hostname' at terminus. Full traceback logs attached below.
Diagnostic Logs
error_text.txt
error_traceback.txt

Also please note that this issue only occurs within a Docker container; when running the same script within a Python venv, there is no issue reaching the endpoint.

Hi @spencerericfong, thanks for reporting this.
This looks like a DNS issue, can you share the content of /etc/resolv.conf, and the output of nslookup login.microsoftonline.com ?


Reconnect Option - Ignore Discovered Urls

some context: When connecting, server returns list of URLs to other servers in the cluster.
Client should store them and use when reconnecting, but users need to be able to disable this option, meaning that client ignores the returned additional URLs and use only the ones passed by a the user.


bugfix in removeRundownFromCache: make sure all data that belong to Rundown is removed

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Bug fix

What is the current behavior? (You can also link to an open issue here)
Some data is not removed from db when removing a rundown, due to the cache only contains pieceInstances from the current, next and previous partinstances, so we end up leaving behind any pieceinstances from any other/earlier partinstances

Also some collections that had data owned by rundowns was not handled.

What is the new behavior (if this is a feature change)?
All data is removed

Other information:

This is targeted to R22, but we should also merge it into R23+.
Status

[ ] The functionality has been tested by the PR author
[ ] The functionality has been tested by NRK

Note: I've merged this into R23 & R24 as well


Import error

from broadlink.helpers import calculate_crc16 is no longer present.
[...]
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <lambda>
  File "/nix/store/k0z9n599k02hab8qjjp3ljw065iwjcvg-python3-3.9.6/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/nix/store/4zpbnvfx8gi6azw8bdz6wbhvknlybkdi-python3.9-hysen-0.4.11/lib/python3.9/site-packages/hysen/__init__.py", line 3, in <module>
    from .hysenheating import (
  File "/nix/store/4zpbnvfx8gi6azw8bdz6wbhvknlybkdi-python3.9-hysen-0.4.11/lib/python3.9/site-packages/hysen/hysenheating.py", line 6, in <module>
    from .hysendevice import HysenDevice as hysen
  File "/nix/store/4zpbnvfx8gi6azw8bdz6wbhvknlybkdi-python3.9-hysen-0.4.11/lib/python3.9/site-packages/hysen/hysendevice.py", line 5, in <module>
    from broadlink.helpers import calculate_crc16
ImportError: cannot import name 'calculate_crc16' from 'broadlink.helpers' (/nix/store/64l7b1krdsvr9kyy85dym0bgkg642fsb-python3.9-broadlink-0.18.0/lib/python3.9/site-packages/broadlink/helpers.py)

You're right, thank you. I forgot to update the github repo. It is done now. The hysen release 4.12 could be found on pyPI.
If one instals hysen2pfc or hysenheating in Home Assistant, it is taken from there.


Upgrading to Angular 15 results in build errors (TypeError: Cannot read property 'forEach' of undefined)

Command
build
Is this a regression?

[X] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
v14
Description
After updating to Angular 15, running ng build will result in the error of TypeError: Cannot read property 'forEach' of undefined.
This issue isn't present when generating a new project from scratch. I tried a new project from scratch, moved all my source code in there, then back to my original project (so they are identical except location of files), but the error still remains.
The problem can be seen on the repository here:
https://github.com/Kareadita/Kavita (develop branch)
The following build logs are produced:
./node_modules/css-loader/dist/runtime/sourceMaps.js - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

./node_modules/css-loader/dist/runtime/sourceMaps.js - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

./node_modules/webpack-dev-server/client/index.js?protocol=auto%3A&username=&password=&hostname=<IP_ADDRESS>&port=0&pathname=%2Fng-cli-ws&logging=info&overlay=%7B%22errors%22%3Atrue%2C%22warnings%22%3Afalse%7D&reconnect=10&hot=false&live-reload=true - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

./node_modules/zone.js/fesm2015/zone.js - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

./src/styles.scss?ngGlobalStyle - Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
HookWebpackError: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

<EMAIL_ADDRESS>- Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

Minimal Reproduction

Clone the repo at https://github.com/Kareadita/Kavita, develop branch
Cd into UI/Web/
Run npm install (assumes Angular 15 cli globally installed)
Run ng build

Exception or Error
./node_modules/css-loader/dist/runtime/sourceMaps.js - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

./node_modules/css-loader/dist/runtime/sourceMaps.js - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

./node_modules/webpack-dev-server/client/index.js?protocol=auto%3A&username=&password=&hostname=<IP_ADDRESS>&port=0&pathname=%2Fng-cli-ws&logging=info&overlay=%7B%22errors%22%3Atrue%2C%22warnings%22%3Afalse%7D&reconnect=10&hot=false&live-reload=true - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

./node_modules/zone.js/fesm2015/zone.js - Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

./src/styles.scss?ngGlobalStyle - Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
HookWebpackError: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

<EMAIL_ADDRESS>- Error: Module build failed (from ./node_modules/@angular-devkit/build-angular/src/babel/webpack-loader.js):
TypeError: Cannot read property 'forEach' of undefined

Your Environment
Angular CLI: 15.1.3
Node: 14.20.1
Package Manager: npm 6.14.17
OS: win32 x64

Angular: 15.1.2
... animations, cdk, common, compiler, compiler-cli, core, forms
... localize, platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1501.3
@angular-devkit/build-angular   15.1.3
@angular-devkit/core            15.1.3
@angular-devkit/schematics      15.1.3
@angular/cli                    15.1.3
@schematics/angular             15.1.3
rxjs                            7.8.0
typescript                      4.9.4

Anything else relevant?
Windows 10

I tried with node 16 as well, completely fresh and I run into the same issues. I'm not sure what exactly, but it seems to be something within the package and from the logs, it feels like it's angular related (webpack) and not something I can control.

Can you try deleting both the node_modules directory and the package-lock.json file within the project and then re-installing?  This issue may be due to package manager installation behavior.

I literally just did that moments ago and have the same issue. I also tried deleting node_modules and keeping package-lock and using npm ci, but same.
I was thinking it must be node_modules as well, as my ng new app that I copied code over to worked. But I have npm installed on that in debugging and it no longer works.

I just re-attempted (after switching back to node 14, last try was on 16) and indeed, it did fix itself.
It's very strange that it crops up, but I have switched my CI pipeline to use npm ci to ensure now that it keep working.
Sorry to have opened the issue, I've been battling for 6 hours today and didn't find any issues around this.


[FLI-944] Flipt Client Browser: Module not found: Can't resolve '../pkg'

In trying to get a wasm version of the clients working for browser workflows, we have created  flipt-client-browser
I based it's filesystem layout off of this blog post: https://rybicki.io/blog/2023/06/27/rust-crate-into-typescript-library.html
Unfortunately, I cannot get it to load correctly in a JavaScript application (see: https://github.com/flipt-io/flipt/compare/nextjs-clientside?expand=1)
As when I try to visit a page that includes this new SDK, I get the error Module not found: Can't resolve '../pkg'
I can see that the wasm/javascript/typescript files that are expected to be in pkg are there:

If anyone with more experience/knowledge can help us package our wasm client in an NPM module that can be installed via NPM that would be greatly appreciated!!
From SyncLinear.com | FLI-944

Thanks to @erka I think we have this figured out. See the fix-wasm branch


[Bug/Suggestion] When deploying multiple galera CRs with same name to same cluster, only one is working (without overrides)

Describe the bug
when deploying multiple galera CRs with the same name to same cluster, only one is working (without applying specific overrides).
This is caused by the fact, that the role binding is using the CR name - so when the same CR name exists e.g. in multiple namespaces, only one works properly, the otheres do not.
This scenario is not uncommon, when e.g. depoloying multiple environments to different namespaces.
This known problem can be workarounded by overriding the authDelegatorRolename in the spec - but the current default behaviour of the operator will run into problems and a user has to look deep into documentation and troubleshooting guide to find this requirement.
I would suggest to include the namespace into the role name in addition to the CR name as default - as this would avoid such conflicts and allow the operator to work as intended without the user requiring to set specific overrides.

Hey there!
Neat suggestion! I think it would be very benefical.
To be included in v0.0.20


[v6] types for react-router and react-router-dom

Version
6.0.0-beta.0
Test Case
n/a
Steps to reproduce

create a typescript project with create-react-app
try to install<EMAIL_ADDRESS>(fails because types haven't been updated)

Expected Behavior

yarn add<EMAIL_ADDRESS>works without errors because there's a version for v6 on the npm registry
I can import and use the new props and elements from v6, such as Routes

Actual Behavior

the installation of types fails
because I don't have the v6 types, I can't implement the prop rename from component to as (fortunately element is available)
because I don't have the v6 types, I can't import Routes because typescript thinks Switch still exists

The types are included in v6. You don't need the separate @types package.

Thanks for the quick reply. I'll comment here because I think it's related:
Do you know why yarn run start results in the following?
Module '"../.yarn/cache/@types-react-router-dom-npm-5.1.5-b0a728cc6d-3.zip/node_modules/@types/react-router-dom"' has no exported member 'Routes'. Did you mean 'Route'?  TS2724

    1 | import React, { Suspense, lazy } from "react";
    2 |
  > 3 | import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
      |                                   ^
    4 |

Oh, this is a simple fix. Just yarn remove @types/react-router-dom. @timdorr should I add create a PR to add this to the upgrade guide doc?


Update NU1105

Looking at newest telemetry, @nkolev92 noticed that NU1105 has dropped in frequency since the 16.0 feature supporting Solution Filters and unloaded projects.  I've improved the doc page here so people know about the new feature and how to get out of this problem.

Docs Build status updates of commit f51c319:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs/reference/cli-reference/cli-ref-pack.md
:warning:Warning
View
Details

docs/reference/errors-and-warnings/NU1105.md
:bulb:Suggestion
View
Details

docs/reference/cli-reference/cli-ref-pack.md

Line 17: [Warning] Invalid file link:(~/consume-packages/package-references-in-project-files).

docs/reference/errors-and-warnings/NU1105.md

Line 31: [Suggestion] Link 'https://docs.microsoft.com/en-us/nuget/release-notes/nuget-5.0-rtm' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites. NOTE: This Suggestion will become a Warning on 12/20/2019.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@rrelyea - ready to merge?

@rrelyea doing this work totally slipped my mind.
I made some changes to NU1105 and added some of these improvements a little bit differently than this change.
So if you want to further improve on top of that change, you should rebase.

Closing this PR since @nkolev92 already made changes to improve this doc in a different PR.


On device out of ~10 does not support on / off fuction according to Alexa.

One device out of about 10 does not support on / off function according to Alexa.
All devices are configured identically in HA Bridge.
All devices were deleted from Alexa and re-discovered.
Trying to change Unique ID to see if specific ID number has somehow been corrupted by Alexa.  But this field can not be edited.  Is there a way to change the ID number in the HA Bridge web interface?

When you renumber the ID is updated as well.

...don't quite understand your post.  Are you asking if ID values change when I ask ha-bridge to renumber devices -or- are use saying this will solve the problem?

Asking Alexa to forget all device, re-numbering the HA Bridge devices then asking Alexa to discover all devices results in errors.  The problematic device is now listed twice.
Later, after a repeating the above steps a number of times, a different device appeared twice and the original problematic device did not show up on the alexa.amazon.com SmartHome/Device web page.
Later, after arbitrarily deleting one of the duplicate devices and several more discovery commands w/o any forget commands, the list of devices appeared to include all HA Bridge devices w/no duplicates.
While there might be a bug in how HA Bridge reports devices to Alexa, It is assumed that Alexa caches device information which obfuscates subsequent Alexa discovery commands.  If true, any information regarding flushing any and all Alexa device information would be appreciated.

Do you have more than one Alexa device?
I have been have recently been having discovery issues from alexa, that are now temporarily resolved. During my diagnosis I noticed that when you say 'Alexa discover devices' ALL the Alexa's on the network will send SSDP discover multicast, and it appears that habridge will respond to all of them.
I am wondering if you repeat the discovery with only one alexa on network if you still see duplicates?

Thank you for you response.
There are 3 echo dot (earlier version) devices on the network.  If all devices were accounted for there would also be a Fire TV Stick and a Bar Code Scanner.  There are about 10 controllable devices on the HA Bridge.  But only 1 had a duplicate.  And that was only after I gave up trying to fix the on / off control of the original device ("living room") on the HA Bridge, renamed it to "does not work living room", created a new "living room" with a new ID number, told Alexa to forget all devices then told Alexa to discover.  At this point Alexa reported 2 devices called "living room" and no device called "does not work living room".  Guessing, Alexa was caching old data.   Which seems wrong.
As I said above, at this point I arbitrarily deleted 1 of the duplicates and ran several discoveries.  It is not a good solution as there was no clear set of steps or reason for all the HA Bridge devices to eventually work as expected.  Hence the post to if discuss if Alexa has a bug, HA Bridge has a bug or this was due to "pilot error".

I appear to be getting the same issues.
I even tried Forgetting all devices, Renumbering and re discovering .
it is now just chaos.
Some devices discovered again, some not
some respond to different names to what is set.
it is a major muck up on my part.

Sorry to hear that @npaisnel.
Alexa is currently working for me.  But as I never got to the bottom of the problem here are some notable features about my network & what I did.  Possibly you may have similar features and manage to reach a working state.  Or, possibly the best outcome, figure out why some of us are having problems.
I have several devices running Sonoff software with the Hue feature enabled.  So when Alexa discovers devices, not only does Alexa find the HA Bridge devices, Alexa also finds these Sonoff devices.  I believe I have never seen where any of the Sonoff devices show up twice.  I think I have seen Sonoff devices show up when I know those devices are not powered up.  This hints that Alexa keeps a cache of devices even if asked to forget.  During multiple forget / discovery sessions I have reset all my Alexa Dot devices (very time consuming), re-numbered my HA Bridge devices (several times - this appears to assign a new (random?) range of hex ID values to the HA Bridge devices each time) and tried to rename problematic devices in the HA Bridge settings.  Again, I suspect Alexa caches information as occasionally renamed HA Bridge devices show up with their old names.  Also, when having problems, I tend to use the Alexa web interface to Forget and Discover devices.  One last thing.  I have written my own ESP8266 code using the Arduino SDK which included writing my own JSON like responses to Alexa inquires.  I found this to be very frustrating as Alexa may or may not work as expected.  To the extent I believe Alexa would not work consistently even if Alexa was given the same JSON response for a given device.  Adding to the confusion, Alexa would still report devices that I had removed from the code or should not be "seen" as the device was powered down.  Again hinting that Alexa has a tendency of caching device information.

Yes, it is a totally unusable mess at the moment
I have been sat here doing pretty much what you say since 8 o'clock this morning and it is now 7 in the evening
Forgot all devices individually , re set Alexa , re installed the 5.3.0 jar to make sure I was uptodate,
Deleted Harmony Hub, skills, deleted lots of other skills, turned off a NAS4Free music server as that was responding to the upnp calls, turned off backup NAS, disconnected all telephones, turned off iPad/ iPhones , restarted everythgin ..
Alexa instantly discovers, some devices..but not all..
although they are all the same. X10 types running via heyu.  they all respond to manually typed in heyu on a1 etc types commands.
Yet Alexa can't see them on the bridge
standard port 80, it always has been
When you press the 'Link ' button.. there is that cryptic message about 30 seconds...do you know if that means you must start discovery in 30 seconds time, or you only have 30 seconds to do the discovery.  The message is a bit unclear on what it means.
As soon as I turn on mother devices, like Yamaha Music Cast amps, or the Sonos speakers..it (Alexa) instantly find all of them..
What ever the problem is with the ha-bridge at th moment..or what ever Amazon has done, has made it totally unusable.
When it does discover devices, it then sees them and the iPhone app gives the  Device is unresponsive or Device Does not Support Requested Value messages.
Does seem to be some time required between creating  new device and it being discovered..
I added one device..no not discovered...
rebooted the Pi and tried discovery again..still not discovered the new device.  after adding two or three more...and rebooting again ..then the first device is discovered.
Seems to need almost two reboots beforre new devices get discovered.
I am going to stop now, as if I try and more , then only thing I will likely discover is how far a raspberry pi travels when chucked out a second story window  :)

The Logitech Harmony Elite 'My Harmony' desktop app instantly sees all the devices I have on the ha-bridge GUI devices page..so some software can see and control the devices instantly...  So does seem Amazon has made it hard for the ha-bridge to work

The Logitech Harmony Elite 'My Harmony' desktop app instantly sees all the devices I have on the ha-bridge GUI devices page..so some software can see and control the devices instantly...  So does seem Amazon has made it hard for the ha-bridge to work

That sounds frustrating.
I wonder if there is a utility, windows or Linux, which would reenact an Alexa Discovery but  for the specific purpose of compiling a report of all the Discovery responses from all devices. In this way we could instantly see what Alexa sees and act upon any discrepancies between what we expect from Alexa and what Alexa does.  Also, it would be good to compare the responses not only from different vendors but from different open source projects.
I would set up your network as normal as possible and let Alexa just sit there among the smart home devieces over night.  Then tomorrow try another Discovery.  If that doesn't work try a forget all, let it soak for hours then another Discovery.

Well I gave up last night, after Inthrrw the Harmony Elite hard across the room and it boinced and took out a row of three wine glasses. Just levt the broken glass there and went to bed. Alexa won’t talk to Harmony, just keeps telling me to link two skills that are like already linked. I deleted and re linked them, but still no joy.
About midnight I deleted all devices from Alexa.
I then went back to sleep
7 hours later,
I did not check. Alexa app on phone, but I told Alexa, Discover new Drvices... nothing found
I logged in to the Ha bridge gui from phone, Hit the link button and another Discovery.
Still nothing.. No Devices Found
But now about ½ hour later after clearing up last nights broken glass and finding the undamaged Harmony Elite remote, I come back to the phone, and check the Alexa App.
It has re populated the Lights Section with all the deleted items.. And they work via voice control
If only I had checked Alexa this morning BEFORE I did the discovery, to find out if it added them automatically overnight.
The app still gives the
Device Does Not Support Requested Value.
For the first two power cycles, then the messsge dissapears.
So at a total loss.
The plan this morning was going to be to rip out all the Alexa drvices, the Harmony IR blasters , hubs and all the x-10 devices and give up... Now the #^^ stuff ‘seems’ to be working.   Maybe the thump I gave the Amazon Echo Dot last night finally got my message through 😁😁😁

I had the exact same issue this morning after adding a 37th device, I couldn't discover the new device - or any for that matter.  I deleted another device that was not key and viola Alexa discovered my devices, so I went from 37 to 36 devices and I can discover.    So this leads me to my question, how many configured devices do you have in HA-Bridge?  Are we reaching some character limit  in the response?
If it is character limit, my "/api/devices" response has a bunch of triple escapes for my MQTT devices that I'd like to purge.  Example:
{"id":"119","uniqueid":"00:17:88:5E:D3:77-00","name":"office","mapId":"Murn-Blinds/Office-Blinds1-Murn-Blinds/Office-Blinds1","mapType":"mqttMessage","deviceType":"mqtt","targetDevice":"Murn-Blinds/Office-Blinds1","offUrl":"[{\"item\":\"{\\\"clientId\\\":\\\"Murn-Blinds/Office-Blinds1\\\",\\\"topic\\\":\\\"Murn-Blinds/Office-Blinds1\\\",\\\"message\\\":\\\"100\\\",\\\"qos\\\":\\\"1\\\",\\\"retain\\\":\\\"true\\\"}\",\"type\":\"mqttMessage\"}]","dimUrl":"[{\"item\":\"{\\\"clientId\\\":\\\"Murn-Blinds/Office-Blinds1\\\",\\\"topic\\\":\\\"Murn-Blinds/Office-Blinds1\\\",\\\"message\\\":\\\"${intensity.percent}\\\",\\\"qos\\\":\\\"1\\\",\\\"retain\\\":\\\"true\\\"}\",\"type\":\"mqttMessage\"}]","onUrl":"[{\"item\":\"{\\\"clientId\\\":\\\"Murn-Blinds/Office-Blinds1\\\",\\\"topic\\\":\\\"Murn-Blinds/Office-Blinds1\\\",\\\"message\\\":\\\"56\\\",\\\"qos\\\":\\\"1\\\",\\\"retain\\\":\\\"true\\\"}\",\"type\":\"mqttMessage\"}]","inactive":false,"noState":false,"offState":false,"description":"Office Blinds MQTT","comments":"blinds","deviceState":{"on":true,"bri":142,"alert":"none","reachable":true},"onFirstDim":false,"onWhenDimPresent":false,"lockDeviceId":false}


bluecam support removed?

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2019.11.22
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log

Microsoft Windows [Version 10.0.18362.476]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Utilities\youtube-dl>youtube-dl --version
2019.11.22

C:\Utilities\youtube-dl>youtube-dl -v https://bluecam.com/siswet19/
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://bluecam.com/siswet19/']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2019.11.22
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.18362
[debug] exe versions: ffmpeg 4.2.1, ffprobe 4.2.1
[debug] Proxy map: {}
[generic] siswet19: Requesting header
WARNING: Falling back on generic information extractor.
[generic] siswet19: Downloading webpage
[generic] siswet19: Extracting information
ERROR: Unsupported URL: https://bluecam.com/siswet19/
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpwnp2jh33\build\youtube_dl\YoutubeDL.py", line 796, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpwnp2jh33\build\youtube_dl\extractor\common.py", line 530, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpwnp2jh33\build\youtube_dl\extractor\generic.py", line 3363, in _real_extract
youtube_dl.utils.UnsupportedError: Unsupported URL: https://bluecam.com/siswet19/

Description

bluecam.com is an ad-free derivative/copy of chaturbate.com. Used to work before recent chaturbate break https://github.com/ytdl-org/youtube-dl/commit/f0f6a7e73f55b6227c40af17c6fcab44b5a2df79 . Urls are identical to chaturbate EG https://bluecam.com/sia_siberia/ (fails) vs https://chaturbate.com/sia_siberia/ (downloads).

https://bluecam.com/siswet19/ does not work. Nothing to do with commit mentioned.

Well, that said, it wasn't all that difficult to just detect and replace the domains in my script.
Perhaps I should've mentioned it's a livestream or just filed under new site support request since it seems to have been altogether removed.


Update Anthropic SDK to 0.5.7

Addresses the following issues:

crash when importing Anthropic SDK to non-NextJS Edge Functions
Inconsistencies with CJS and ESM version of Anthropic SDK (we can remove the previous workaround)

Thank you!


Start working on our own version of cfg(target_has_atomic)

I've been unhappy with our vague guessing of what atomics are available, and the #3 issue shows a target completely outside the scope of our temporary patch.
This branch uses a build script to inspect the TARGET environment variable, which Cargo helpfully sets to the value of the --target ARCH flag. This will be one of the targets enumerated in rustup target list.
I am running this commit through the bitvec cross-compile suite. Given that this suite is extremely slow, I expect that I will update with new targets as I discover their failures.
In the meantime, I would like review on whether we think this is an appropriate solution to the problem, and how we can make the script easily accessible to users to update with their architectures as needed.

My just cross task has completed successfully with these commits. I don't feel like searching out the rest of the targets.

This is driving me insane. I think I may actually bite the bullet and implement available() in the compiler just so I can throw all of this work away.


Add min_peaks config option

Casanovo should have a configuration option that specifies the minimum number of peaks that are required to be in a spectrum before it will make a prediction.  Currently, Casanovo will happily make a prediction (sometimes with a high score) even if the spectrum has only a handful of peaks.  The default value for the analogous parameter in Tide is 20 and in Comet is 10. For de novo, I think we should use a default of 20.  This is the minimum in the 9-species benchmark.
Note that, ideally, Casanovo would track and then report something like "Info: XXX spectra skipped because they have fewer than XX peaks."

Postponed until functionality from DepthCharge v0.3 has been integrated, which will make this very easy to implement.


feat: use images from same directory level

Description
FEAT: able to use images available at the same directory level as the markdown file.
Requirements:

allow to embed images that are stored in the same folder or its subfolders by using the markdown image syntax

same folder - :heavy_check_mark:
subfolders - :x: (Follow up in next PR)

not allowing to embed files from a folder of higher levels

:heavy_check_mark:

require the whole folder be publicly shared if the public viewer should see the images

:heavy_check_mark:

if only the markdown file is publicly share the viewer should not be able to access the images

:heavy_check_mark:
Test Cases:

local images (image from current directory level)
large local images
multiple small images (if images are large then only one might be visible)
uploaded image (upload into markdown)
external image url
audio/video (doesn't work - not supported by the md parser)

Related Issue

Part of #27

Screenshots (if appropriate):
Owner:

Folder Link - Viewer:

MD File link -  Editor:

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Tests only (no source changes)
[ ] Documentation only (no source changes)
[ ] Maintenance (e.g. dependency updates or tooling)

Checklist:

[x] Code changes
[ ] Unit tests added
[ ] Acceptance tests added
[ ] Documentation updated

@grgprarup @S-Panta I have updated the comments. Please re-check if it works


Updating Library dosen't work

Device information

Neko version: <IP_ADDRESS>
Android phone & version: Samsung A01 Android 10

Steps to reproduce
Refresh library
Expected behavior
To download new chapters or tell there are no new chapters
Actual behavior
The notification pops up, but the bar doesn't move and no new chapters show up in recents
Other details
I have tried logging out and back in, but it just doesn't work
Here is the logs
App version: <IP_ADDRESS> (standard, bb37f43, 134, 2021-11-30T11:22:39.107261)
Android version: 10 (SDK 29)
Android build ID: QP1A.190711.020.A015AUCU3AUA1
Device brand: samsung
Device manufacturer: samsung
Device name: a01q
Device model: SM-A015A
Device product name: a01quc--------- beginning of main
12-08 01:51:30.688 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:32.259 13481 13481 E ViewRootImpl: sendUserActionEvent() mView returned.
12-08 01:51:36.649 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:38.065 13481 13481 E ViewRootImpl: sendUserActionEvent() mView returned.
12-08 01:51:40.163 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:40.274 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:41.374 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:46.238 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:49.870 13481 13481 E InputMethodManager: prepareNavigationBarInfo() rootView is null
12-08 01:51:51.030 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.048 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.056 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.072 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.089 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.106 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.123 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.156 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.172 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.256 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.273 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.289 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.306 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:51.325 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:51:52.196 13481 13481 E ViewRootImpl: sendUserActionEvent() mView returned.
12-08 01:52:06.385 13481 13481 E DecorView: mWindow.mActivityCurrentConfig is null
12-08 01:52:07.824 13481 13481 E ViewRootImpl: sendUserActionEvent() mView returned.

try some of the things at the bottom of this issue.
https://github.com/CarlosEsco/Neko/issues/598


Portainer.io not supported in Windows Server 2019 with containers

///Environment

aka.ms/bcsandbox
mcr.microsoft.com/businesscentral/sandbox:latest
Windows Server 2019 with containers

Upon running the script to install portainer.io in the vm
///-----------------------snippet start------------------------///
''{     "hosts": ["tcp://<IP_ADDRESS>:2375", "npipe://"] }' | Set-Content "C:\ProgramData\docker\config\daemon.json"
restart-service docker
netsh advfirewall firewall add rule name="Docker" dir=in action=allow protocol=TCP localport=2375
new-item -Path "C:\Portainer" -ItemType Directory
$ipAddress = (get-netadapter | Select-Object -First 1 | get-netipaddress | ? addressfamily -eq 'IPv4').ipaddress
docker run -d -v C:\Portainer:C:\data --name portainer --hostname portainer portainer/portainer -H tcp://${ipAddress}:2375'
///-----------------------snippet end-------------------------///
Was given this error
The container operating system does not match the host operating system. (0xc0370101)

Yes you're right. I am running like this in W 2016
docker run -d -p 9000:9000 --name portainer -h portainer --restart=always -v  C:\ProgramData\Docker\Containers\Portainer:C:\Data portainer/portainer --no-auth
(I have created the portainer folder ;-) )
Same command in Win 2019 gives a very long errormessage.
But the problem is not portainer.. You have to address this somewhere at portainer.io

Absolutely not a nav-docker issue but here is the explanation:
It seems like Portainer doesn't (yet?) have a Windows Server 2019 image. By just pulling and running you got the Server 2016 image. As you can't run a Windows Server 2019 image directly on Windows Server 2016 you get the error. You can ask Portainer to provide a Windows Server 2019 image, create one yourselve or it might work to run it using hyper-v isolation

Couldn't you start portainer with --isolation hyperv?

'{  "hosts": ["tcp://<IP_ADDRESS>:2375", "npipe://"] }' | Set-Content "C:\ProgramData\docker\config\daemon.json"
restart-service docker
netsh advfirewall firewall add rule name="DockerPortainer" dir=in action=allow protocol=TCP localport=2375
new-item -Path "C:\Portainer" -ItemType Directory
$ipAddress = (get-netadapter | Select-Object -First 1 | get-netipaddress | ? addressfamily -eq 'IPv4').ipaddress
docker run -d -v C:\Portainer:C:\data --isolation hyperv --name portainer --hostname portainer portainer/portainer -H tcp://${ipAddress}:2375
##add portainer ip:host mapping to host file
$ipadd = docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' portainer
Add-Content -Value "${ipadd} portainer" -Path "$env:windir\System32\Drivers\etc\hosts"
===========
Added isolation hyperv and update the host file to map the hostname so portainer is now accessible at http://portainer:9000 instead of :9000 .

I am pretty much doing it the same way (now) but with a few changes:
'{ "hosts": ["tcp://<IP_ADDRESS>:2375", "npipe://"] }' | Set-Content "C:\ProgramData\docker\config\daemon.json"
restart-service docker
netsh advfirewall firewall add rule name="DockerPortainer" dir=in action=allow protocol=TCP localport=2375
new-item -Path "C:\Docker\Portainer" -ItemType Directory
$ipAddress = (get-netadapter | Select-Object -First 1 | get-netipaddress | ? addressfamily -eq 'IPv4').ipaddress
docker run -d -p 9000:9000 --name portainer -h portainer --restart=always -v C:\Docker\Portainer:C:\Data portainer/portainer  --no-auth -H tcp://${ipAddress}:2375
Remove existing portainer line
Set-Content -Path "c:\windows\system32\drivers\etc\hosts" -Value (get-content -Path "c:\windows\system32\drivers\etc\hosts" | Select-String -Pattern 'portainer' -NotMatch)
##add portainer ip:host mapping to host file
$ipadd = docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' portainer
Add-Content -Value "${ipadd} portainer" -Path "$env:windir\System32\Drivers\etc\hosts"
So you can see I start Portainer differently and before I add the line to the hosts file I remove the existing line with the word portainer.

@freddydk Hyper-V isolation worked for me.
 docker run -d -p 9000:9000 --name portainer --restart always -v '\\.\pipe\docker_engine:\\.\pipe\docker_engine' --isolation hyperv -v portainer_data:C:\data portainer/portainer

This works for me. Thanks @freddydk


Documentation for v4

Anyone using this plugin with Strapi 4? The configuration of routes changed, so I'm now struggling to set up a validator correctly.

I'm in search of doc for v4 too
up 😔


Add support for using raw Python enum types in schema

Description

Types of Changes

[ ] Core
[ ] Bugfix
[ ] New feature
[ ] Enhancement/optimization
[ ] Documentation

Issues Fixed or Closed by This PR
fix #3543
Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Summary by Sourcery
Add support for using raw Python enum types in schemas, enabling the use of enums without @strawberry.enum decoration. Fix issue #3543 and update tests to cover the new functionality. Document the changes in RELEASE.md.
New Features:

Add support for using raw Python enum types in schemas, allowing enums that are not decorated with @strawberry.enum to be used.

Bug Fixes:

Fix issue #3543 by allowing the use of non-decorated enum types in schemas.

Documentation:

Add a new section in RELEASE.md documenting the support for using raw Python enum types in schemas.

Tests:

Add tests to verify the default implementation of enum, str enum, and int enum types in schemas.

Thanks for adding the RELEASE.md file!

Here's a preview of the changelog:

This release adds support for using rwa Python enum types in your schema
(enums that are not decorated with @strawberry.enum)
This is useful if you have enum types from other places in your code
that you want to use in strawberry.
i.e
# somewhere.py
from enum import Enum

class AnimalKind(Enum):
    AXOLOTL, CAPYBARA = range(2)

# gql/animals
from somewhere import AnimalKind

@strawberry.type
class AnimalType:
    kind: AnimalKind

Here's the tweet text:
🆕 Release (next) is out! Thanks to ניר for the PR 👏

Get it here 👉 https://strawberry.rocks/release/(next)

@erikwrede you mean the failing test, right?

@patrick91 i just meant the wrong file @nrbnlulu mentioned but looks good now 😊


Trigger a backup from a dashboard card?

Is it possible to add a button to a lovelace card to initiate a backup?

The addon does not expose services in home assistant so you can't do that using the addon, however, the backups triggered by the addon are just using the Supervisor API same as creating a backup through Home Assistant so you can just call that to create a backup.


[EVNT-374] Add onException for HTTP

Adds exception handler for org.apache.camel.http.common.HttpOperationFailedException
with additional logging.

/retest


use correct path for favicon icons

Task/Issue URL: https://app.asana.com/0/414709148257752/1204453451398526/f
Tech Design URL:
CC:
Description:
Fixes favicons missing from widgets.

Steps to test this PR:

Add some favorites
Ensure favicons are shown in the widget

Copy Testing:

[ ] Use of correct apostrophes in new copy, ie ’ rather than '

Orientation Testing:

[ ] Portrait
[ ] Landscape

Device Testing:

[ ] iPhone SE (1st Gen)
[ ] iPhone 8
[ ] iPhone X
[ ] iPhone 14 Pro
[ ] iPad

OS Testing:

[ ] iOS 14
[ ] iOS 15
[ ] iOS 16

Theme Testing:

[ ] Light theme
[ ] Dark theme

Internal references:
Software Engineering Expectations
Technical Design Template

Thanks!


tier generators

Maybe add different tiers of generators that produce more energy, use more fuel and are more expensive to make (of resources).

They kinda got. Like the reactor is top tier.. heat is basic.. bio and wind get step up.. and solar.. including gas burner.

Yes, but the fusion reactor costs a lot of energy to get going so you need a lot of generators that use a lot of space. Also then you can choose what kind of fuel you want to use as main fuel.

I'm mostly with Eurypteri here.  Using the Heat Generator with coal or other fuels is pretty bad but is enough to get started.  Bio, Wind, and Solar are all fairly easy to get within a few minutes once you have done some mining.  Once you reach the mid game, you can start making Ethylene and use it in a Gas-Burning Generator as an advanced form of bio-fuel.  After that you can move onto the Reactor, which is basically solar powered.
Some of Mekanism's generators are already abnormally OP compared to other mods; and most are way OP compared to where RF power is supposed to be balanced, but RF has unfortunately gone through years of Power Creep to the point where Mek's power levels are considered somewhat normal.  Just a friendly reminder that RF was created by the people who made Thermal Expansion, which had Dynamos that generated 80 RF/t and required fuel.

But I mean like I had a system for mass producing food for biofuel as main power source. But when I needed more power all the bio generators used a lot of space. So multiple tier for all the generators solve this problem.
And player can choose what they use as main power source (and then when use the fusion reactor as they have the resources and energy)

Personally I'm firmly against items that "compress" blocks to take less space for the same (or more) resource cost and output like you're suggesting. Items like the upgraded solar panels mod for IC2.
Space requirements and the logistics for such are, IMO, already a challenge in and of themselves and this feature request would easily remove that.

You are supposed to move to better generators.  Ethylene is literally a better version of Bio-Fuel.