@Adder to add an add...() method to Collection fields

I'd like Lombok to be able to generate add...() methods like this:
class Foo {
   @Adder
    List<String> names;
}

This would generate:
addName(String name) {
      this.names.add(name);
}

Similarly, it would create add... for Set, a put... method for Map, etc.
It could possibly use one of putIfAbsent, computeIfAbsent etc, based on @Adder annotation parameters.
I am creating this ticket based on this StackOverflow answer by Roel Spilker:

Full Disclosure: I am one of the Lombok Developers. This is on our list, but I don't think there is an issue about it. But it is pretty high on our own wish list. We are considering different approaches and discuss these regularly ourselves. We'll send a mail to the google group if we have a decent proposal. – Roel Spilker Feb 17 '14 at 10:25

The stackoverflow post was in 2014. In the meantime, we've implemented @Builder and @Singular. That covers most of the use cases.
Why we closed this issue

@Builder does not implement that. It's a builder, i.e. the method is only useful when building the object. But the methods would be useful during the lifetime of the object.
I suggest to reopen.

I agree with OndraZizka, this issue hasn't been addressed by the Builder improvements.
There are still many use cases where immutable objects, Builder pattern etc. are not an applicable solution.

Sounds like you're looking for @Singular:
https://projectlombok.org/features/BuilderSingular
On Sun, Dec 30, 2018 at 10:41 PM mattthebig<EMAIL_ADDRESS>wrote:

I agree with OndraZizka, this issue hasn't been addressed by the Builder
improvements.
There are still many use cases where immutable objects, Builder pattern
etc. are not an applicable solution.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rzwitserloot/lombok/issues/1905#issuecomment-450588535,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAKCRVyflnvcykmBdx4kiERdVRmlKyABks5u-TMggaJpZM4XbRKr
.

--
"Don't only practice your art, but force your way into it's secrets, for it
and knowledge can raise men to the divine."
-- Ludwig von Beethoven

@randakar @Singular also only works for builders.

This issue needs to open. Collections are widely used and setter or getter does not address this issue.

I vote to reopen this issue, the "add" method generator is missing

I vote for this feature as well. Wouldn't mind contributing code.

+1 for reopen

+1 for reopen

Would be useful feature.

This is essentially almost solvable by the "types"-subfunction of @Delegate. However this requires the interface to be non-generic, which is a major drawback.
If thisrestriction could be addressed, then it would be possible to specify precisely the methods to be exposed (only adders, stream, getters....) by specifying some general Collections-related interfaces, which could be provided by lombok itself.
The feature would then look like:
@Delegate(types = { Adders.class, Getters.class })
private final ArrayList m_ids = new ArrayList<>();
While this seems more bulky, it actually gives much greater flexibility and allows for the exposition of precisely the fields intended to be exposed.

In the above example you can maybe extend the Generics part with:
@Delegate(types = { Adders.class, Getters.class }, genericTypes = { String.class })
private final ArrayList<String> m_ids = new ArrayList<>();

This to make it easier to match generic parameter types to the generic object in question.

The only thing that need to be added to the above is the ability to postfix the interface methods and a @Plural annotation for pluralizing the postfix, so
@Delegate(types = { Adders.class }, postfix = "name")
private final ArrayList<String> names = new ArrayList<>();

with
public interface Adders {
    public void add(Generic object);
    public void add(int index, Generic object);
	@Plural
    public void addAll(Collection<? extends Generic> objects);
	@Plural
    public void addAll(int index, Collection<? extends Generic> objects);
}

would generate:
    public void addName(String object) {
		...
	}
    public void addName(int index, String object) {
		...
	}
    public void addAllNames(Collection<? extends String> objects) {
		...
	}
    public void addAllNames(int index, Collection<? extends String> objects) {
		...
	}

I'd fork the project, but looking through the code base, it's a bit black magic. Is there a good description anywhere how the annotation processing is achieved?

Evidently people in this thread appear to think this is some sort of democracy, clogging the lines with endless 'vote to reopen' and '+1' comments.
github has a feature to put a thumbsup on something. Use that. I've deleted all of those 'comments' - peer pressuring is. I can't separate upvotes from such comments, though, so, for the record, with that, about ~40 emojis indicating support went with them.
No further upvoting of any sort is required. We're aware the community wants it. We're also aware of a horde of reasons why this is a bad idea. When the time is there, @rspilker and I will discuss if we need to revisit this feature.

We're also aware of a horde of reasons why this is a bad idea.

Could you elaborate on this?

I believe they were referring to this https://groups.google.com/g/project-lombok/c/jE02mbG64mI/m/OtU-LkR-P6UJ

We're also aware of a horde of reasons why this is a bad idea.

Could you elaborate on this?

I guess first answer should have been "it is already implemented". Yes, @Singular annotation was mentioned many times but it would be much easier to just provide an example. So, instead of
class Foo {
   @Adder
    List<String> names;
}

in the question, you should use:
@Builder
class Foo {
   @Singular
    List<String> names;
}

and then:
Foo foo = Foo.builder().name("name1").name("name2").name("name3").build();

Link to more examples: https://www.baeldung.com/lombok-builder-singular

This is indeed a nice way to work with immutable objects, but if you use jpa entities, you sometimes just want to add a new element in an existing entity relation. Could you show an example with lombok for adding new entity relations?

In a more general sense, the above isn't really useful for objects that have already been instantiated. As far as I can see, @Adder (perhaps even an @Remover?) fits in perfectly with the existing shorthand annotations. Having read through the google conversation, it seems there's no objective argument against it other than it's constrained to Collection datatypes, which hardly seems an issue.
Sometimes, exposing add and remove functionality is all you wish to do, rather than exposing an entire collection. It more directly says what will be done, rather than returning working with a general list getter which may be a clone or immutable.

you called?

and me? :p

I may have gone too far in a few places.

I feel that extending the @Delegate to support generics, postfix and pluralization should be enough. This wouldn't go against the design principles of Lombok.
Someone else could then always create a module that  provides a collection specific interface as I described in a previous post.

Maybe it would be better to have the @Generic annotation than another special type like val/var


checkbox group reacts to change in initial vlue

Hi,
I needed this functionality in my project (I'm reading the list of checked fields asynchronously so it changes after the list is already rendered). I know it's a bit hacky but I couldn't figure out another way to do it. What do you think? Can this be included or s there a better way to do it?

This should be a bug, we just need to add trace to the value of group.

That's what I was trying to do but I think I was creating cyclic dependency between checked and checkbox_group signals. Still have to get better at leptos... Thanks a lot for the fix!


Support more policy value replacements for Bucket

Issue #, if available:
Currently, cloudtrail-controller uses the boostrappable Bucket object
to setup the Trail logs bucket. This bucket needs a special policy that
references the bucket name, trail name, region, and account ID. This
patch adds a new parameter (policy_vars) to Bucket that will help
users to replace more variables that the ones known by the acktest
library.
By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license.

I don't think I quite understand the use case here. Is it not possible for these values to be defined when passing the policy string? Why do they need to be replaced inside this Bootstrappable?

I don't think I quite understand the use case here. Is it not possible for these values to be defined when passing the policy string? Why do they need to be replaced inside this Bootstrappable?

It is not possible to replace the bucket name before bootstrapping the bucket, since the name is generated within the bootstrap function.

It is not possible to replace the bucket name before bootstrapping the bucket, since the name is generated within the bootstrap function.

I see. Perhaps for that I can see this being a good exception, but otherwise I think I'd prefer the rest to remain hardcoded in policy. It gets tricky to understand what's going on with those policy documents if there are lots of substitutions happening. Nevertheless, these are testing tools so it's only exposed to developers, so maybe I'm being hypercritical.

It gets tricky to understand what's going on with those policy documents if there are lots of substitutions happening.

I get your concern, however, I believe that it's trickier to have replacements happening in two different and separate places... it might be confusing for developers to see that some values are getting magically replaced and others are not.

/lgtm


fix: copy collections DO NOT PROMOTE TO STAGING/PROD

Reviewers
Functional:

@ebezzi
Readability:
@Bento007

Changes

modify dataset processing to skip validation step

DO NOT MERGE
DO NOT PROMOTE TO STAGING/PROD
This will allow us to copy collections from prod to dev for testing and should be reverted as soon as that process is complete. This PR should NOT be pushed to staging/prod

I'm merging with the failing push tests because the

Reverting


feat: hide/show table column shadow

Initial work for DCOS-40413

Closing in favor of https://github.com/dcos-labs/ui-kit/pull/203


Rancher container memory leak when runnning synch against Azure AD

What kind of request is this (question/bug/enhancement/feature request):
Bug
Steps to reproduce (least amount of steps as possible):
Create cluster with auth configured to Azure AD with users in almost 900 groups.
Result:
We see what appears to be an Authentication synch related memory leak in v2.4.3 when the auth-user-info-resync-cron cron runs.
With a sync every hour the usage went from 380>800>1000>1200.
We don't see this memory increase in the other clusters which are at 2.2.9.
Other details that may be helpful:
Environment information
Architecture:
Provider is Azure AD
Built at v2.2.9 with RKE v0.2.9
After 5 days upgraded to 2.4.2
After a few more days upgraded to 2.4.3.
There is no network isolation on this cluster.

gz#10142

https://github.com/Azure/go-autorest/pull/432

Validated P1 test cases functionality in Rancher v2.4.5-rc6 HA k8s setup.
Including Users and groups working cluster and project memberships. Site access.

Validated Rancher master-head (06/16/2020) commit id: 322f55fef
Basic functionality checks of users/groups, site access. Project membership.

Validated the upgrade use case on a upgrade from v2.4.4 to v2.4.5-rc6

Created a setup with Rancher v2.4.4.
Enabled Azure AD auth and set site access to Allow members of Clusters, Projects, plus Authorized Users and Organizations
Created 2 clusters cluster1 and cluster2
Provide access to  "user1" at cluster level and project level for "cluster1" as an admin
Provide access to "group1" at cluster level and project level for "cluster2" as an admin
Login as "user1" and verify that user1 has access to only cluster1
Login as a user in "group1" and he has access to ony cluster2
Upgrade rancher to v2.4.5-rc6
Verify that user1 and user in the group have the right access permissions
Add new users/group to the clusters and verify the users have the right permissions as expected.

On testing v2.4.5-rc6, we see the memory leak resolved.  Thank you!

In case this ever comes up, we noted a similar memory issue in one cluster at 2.2.9. Again the cron sync was set to every 4 hours (and has now been reset to 0:00)
That cluster showed a gradual increase over a few weeks, with a much more rapid increase in the last week. It is assumed that it's the same issue but it indicates that it happens in certain circumstances which are not clear on pre 2.4 also.


Update default table to use the NEW visual

Power Bi Desktop released a new visual for table which supports word wrap. Please update all the templates to make use of the new visual.

This is going to go out in the next version (today).


[Native part] Add workaround for android API 33 ANR when inverting ScrollView

Summary:

This PR is a result of this PR, which got merged but then reverted:

https://github.com/facebook/react-native/pull/37913

We are trying to implement a workaround for #35350, so react-native users on android API 33+ can use <FlatList inverted={true} /> without running into ANRs.
This is the native part, where we add a new internal prop named internalAndroidApplyInvertedFix, which can in a follow up change be used to achieve the final fix as proposed in https://github.com/facebook/react-native/pull/37913
However as @NickGerleman pointed out, its important that we first ship the native change.
Changelog:

[ANDROID] [ADDED] - Native part of fixing ANR when having an inverted FlatList on android API 33+
Test Plan:

Check the RN tester app and see that scrollview is still working as expected
Add the internalAndroidApplyInvertedFix prop as test to a scrollview and see how the scrollbar will change position.

I think we need this in two more places:

The type in ScrollViewNativeComponent?

The ViewConfig (I think also in ScrollViewNativeComponent). inverted was already there before for reasons I don't know (it was not passed as a prop before). This runtime structure tells React Native to pass the prop from JS to native.

@NickGerleman thank you for having a look, I updated the files!
[Interestingly this change was already working without these changes (running in fabric on new arch) 👀 ]

Could we update ScrollViewNativeProps here? https://github.com/facebook/react-native/blob/e1fd4a8fcd3c7b06d37dda6890137e344b416aec/packages/react-native/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js#L19

@NickGerleman Updated!

Personally, I prefer inverted to internalAndroidApplyInvertedFix. The main reason for this is that we need to pass inverted to the native ScrollView component for react-native-windows and react-native-macos anyway to implement keyboard / mouse wheel friendly inversion.
If @NickGerleman finds inverted to be too general / likely to lead to confusion, then removing Android from the prop name and instead using something like isInvertedVirtualizedList would be prefered.
In fact, this isn't the first thing we've wanted to pass context that the ScrollView is responsible for rendering a VirtualizedList / FlatList before. In react-native-windows, we wanted to build in functionality to default to arrow-key based keyboard navigation, but only when rendered in the context of a FlatList.

@rozele I don't have a opinion on that and go with what the you the core maintainers are saying 😅
For now I renamed it to isInvertedVirtualizedList, happy to change that any time to something else if needed!


Support using heh as a Ratatui widget

Hey! 🐻
I'm currently working on a TUI that allows analyzing ELF files and I would like to have heh as a component in there because I think it is a pretty awesome app! (and I don't want to rewrite the same functionality :D)
This PR simply makes that possible!
The summary of the changes:

Created lib.rs for using heh as a library
Made some types public (primarily Application, Encoding, ScreenHandler, ComponentLayouts)
Added a new function Application::render_frame for rendering a single frame.

This can be refactored into impl ratatui::widgets::Widget for Application but it requires some additional work on restructuring the internal types.
There is a bit of a code duplication there which I couldn't avoid due to ScreenHandler holding some state - i.e. I can't mutate it inside the terminal.draw closure.

Added documentation

See this commit for the implementation in my app.
Demo (see the "hexdump" tab):

Cheers!

Wow, this is amazing! I'll try and review and come back to you in a couple of days. I've been really busy with life lately, so I haven't had the time to really give this repo as much love as I want.
You demo looks really really cool, and I'm glad you could make use of heh :)

Wow, this is amazing! I'll try and review and come back to you in a couple of days.

Thanks a lot! I will be looking forward to your review and happy to improve the code 🐻

I've been really busy with life lately, so I haven't had the time to really give this repo as much love as I want.

I'm thinking of submitting some other PRs, mainly about updating Ratatui to the latest version. Happy to work on other issues as well.

You demo looks really really cool, and I'm glad you could make use of heh :)

Right now it is fully functional and I am so satisfied with it. Thanks for building heh, it's a killer!

One thing I wanted to get your input on was the module_name_repititions [...] to fix this, I'm thinking of changing the names of these structs right now and users of the library would have to specify screen::Handler, label::Handler, and app::Data

I think that would be perfect! I personally never liked the name "Handler" (reminds me of Java 🤮)
Do you want me to do it in this PR or are you going to work on that separately?

There are other clippy lints failing, but if you don't have the time to fix them, I can go ahead and get around to cleaning the up after I push this through -- I don't wanna block any progress on your work!

Works fine for me, thank you!

Also let me know if after this gets merged, you would want me to make a release :)

Please do 🙂

Do you want me to do it in this PR or are you going to work on that separately?

I'd appreciate if you could do it in this PR! Haha you can tell I come from Java xD
After the names are fixed to your liking, I'll merge this and hopefully have the time to push a release :+1:

Okay, one issue:
use crate::{app::Data, label::Handler, screen::Handler};

In that case we are importing both Handlers which causes a conflict. We can solve this by using a type alias (e.g. as LabelHandler) but I'm not sure. What do you think?
I will think of an alternative name.

Using an alias is what I had in mind! I completely trust whatever alternative names you come up with too.

Okay, all should be good now. I renamed the types and fixed the lints.
Let me know 🙂

Just created a release :partying_face: let me know if there's anything else I should do, thanks again!

Awesome, thanks a lot for your cooperation on this!
Here I bumped the heh version and everything is seamless!


Filter search results by user-selected dictionary sources

Prerequisite: #125
Enables the "advanced search" dropdown that allows one to filter on dictionary source.
Addresses the following user story:

As a Cree language educator, I want to see search results ONLY from certain dictionary sources

[x] Requires new UX [Diane]
[x] Requires accessible HTML/CSS [Eddie]
[x] Requires database implementation [Matt or Eddie]

Note: I deleted my first attempt at the HTML in this commit: ae6c0c9d7567ba77ad26718e2103c5963360a31a.
git revert ae6c0c9d7567ba77ad26718e2103c5963360a31a

To get the code back.

@nienna73 here are the old mockups that our UX deverloper made in 2019:

Do we want to keep this UI or add the dictionary source to the settings page?
Adding the options to the new settings page makes more sense to me.

Do we want to keep this UI or add the dictionary source to the settings page?
Adding the options to the new settings page makes more sense to me.

I agree; I think it makes more sense to add it to the settings page, since I think it's actually a niche feature. That being said, I have a personal attachement to the style of those checkboxes! 😂

I also like this UI! But also agree that the settings page is the place for them.

@aarppe is the idea that a user can select more than one dictionary source at a time? For example, CW and MD? Or should they only be able to select one, that is: CW or MD (among the other choices)?

The idea is that users could select any combination of sources, so CW alone or MD alone, or both CW and MD (and then more, once we get AECD in as well).

The idea is that users could select any combination of sources

Okay, that's what I've been trying to do. I'm finding it difficult to set multiple options, so I wanted to clarify this was actually the goal.

I came across an edge case in development:

What do we do when the search result is a form of a word from a different dictionary, like in the example above?
Should I include the definition of mîpit (in this case)?
Or completely remove nîpit from the results?

@nienna73 Is the above screenshot filtering what currently happens when filtering for MD entries, or for CW entries?

That's a good question. The example above is showing only MD results.
I found a perhaps better example, still filtering to show just MD results:

@nienna73 Ok so to clarify: This second example is supposed to be showing only MD results, but it includes a CW entry because ayiwinisa is recognized as a form of the CW entry ayiwin. Do I have it right?
I'm 100% fine with simply not showing either "form of ayiwin" or the entry for ayiwin in this case.
Another solution is to remove the entry for ayiwin, but keep "form of ayiwin", simply without the link. Also 100% fine with that.
@aarppe Do you have a preference?

@dwhieb Yes, you have that correct. I think both of those options are possible, so I'll wait to see what the preferred implementation is.

This is the problem when MD doesn't also include a lemma entry for inflected word-form entries - we'll have more of these cases with some of the imperative verbs. When I was thinking about this almost three years ago, I was considering whether we ought to add "technical" lemma entries, though we might want to run those past speakers - fortunately there's only a few hundred of such forms.
Strictly speaking, if we're not showing content from the other dictionary, then it might be best that we're consistent about that, and neither show the lemma entry, i.e. not show ayiwin (like: cîmân) etc., nor the link to the lemma entry (which is in the other dictionary), i.e. form of ... etc. However, the FST analysis  can still show that lemma (right now the stem, but I think we'll want to swap back to lemmas eventually), since the FST lexicon is independent of the actual sources.

@nienna73 As part of the dictionary source selection (#126, this issue is getting resolved, but to close that we need to resolve the case of empty results, cf.


Feat(grouping): checker accept groups of mutants

This pr concludes the grouping of mutants before they are sent to the checkers. It is still a draft, the tests need to be fixed.

I had 30 mins to spare and did a small refactor. See my comments.

First of all thanks for your help!

Question: with my new code, do we still need the CheckerFacade? Or can we move that code to the MutationTestExecutor ?

I don't think we should move the code of the checker-facade to mutation-test-executor because is it has a lot of specific implementation about the checker. If we do so half of the mutation-test-executor class will be about the implementation of the checker.

It wouldn't be about the implementation, rather the process of checking mutants. Which is exactly what the mutation test executer is designed to do imo.


Dictionary type mapping issue in .net 8

First time reporting an issue, if I step wrong, please let me know.
I am upgrading projects to .net 8 from .net 7. Using NSwag 14.1.0
In my service layer I have a model being returned with the following definition:
  public Dictionary<PageSize, WidgetLocation> Location { get; set; }
PageSize is an enum
WidgetLocation is a class
OpenAPI Reference:
<OpenApiReference Include="OpenAPIs\Query.UI.json" CodeGenerator="NSwagCSharp" Namespace="IML.Core.ServiceClients.Query.UI" Options="/OperationGenerationMode:MultipleClientsFromOperationId /GenerateClientInterfaces:true  /AdditionalNamespaceUsages:IML.Core.ServiceClients.Query,System /GenerateUpdateJsonSerializerSettingsMethod:false /ClientBaseClass:NSwagBase /DateTimeType:DateTime" ClassName="UIClient">
      <SourceUri>http://localhost:8085/swagger/v1/swagger.json</SourceUri>
    </OpenApiReference>

Here is what the generated stuff looks like:
        /// <summary>
        /// Gets or sets the dictionary of widget locations for different page sizes.
        /// </summary>
        [Newtonsoft.Json.JsonProperty("location", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public Location Location { get; set; }

        /// <summary>
        /// Gets or sets the dictionary of selected options for the widget.
        /// </summary>
        [Newtonsoft.Json.JsonProperty("selectedOptions", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
        public System.Collections.Generic.IDictionary<string, string> SelectedOptions { get; set; }

You can see a dictionary value named SelectedOptions that works fine of type Dictionary<string, string>
I've attempted a number of fixes. However, anything I do seems to fail in one way or another.
Based on chat gpt's recommendation I attempted to add a type mapping to resolve it like so:
{
  "runtime": "Net80",
  "documentGenerator": {
    "fromDocument": {
      "url": "http://localhost:8085/swagger/v1/swagger.json"
    }
  },
  "codeGenerators": {
    "openApiToCSharpClient": {
      "className": "UIClient",
      "namespace": "IML.Core.ServiceClients.Query.UI",
      "clientBaseClass": "NSwagBase",
      "generateClientInterfaces": true,
      "operationGenerationMode": "MultipleClientsFromOperationId",
      "additionalNamespaceUsages": [
        "IML.Core.ServiceClients.Query",
        "System"
      ],
      "generateUpdateJsonSerializerSettingsMethod": false,
      "dateTimeType": "DateTime",
      "typeMappings": {
        "Location": "System.Collections.Generic.Dictionary<PageSize, WidgetLocation>"
      }
    }
  }
}

Doing so outputs this error immediately:
MSB3073	The command "dotnet --roll-forward-on-no-candidate-fx 2 "C:\Users\cjchambers\.nuget\packages\nswag.msbuild\14.1.0\buildTransitive\../tools/Net80//dotnet-nswag.dll" openapi2csclient /className:UIClient /namespace:IML.Core.ServiceClients.Query.UI /generateExceptionClasses:false /input:"D:\GITWorkspace\Libraries\IML.Core\IML.Core.ServiceClients.Query\OpenAPIs\Query.UI.json" /output:"D:\GITWorkspace\Libraries\IML.Core\IML.Core.ServiceClients.Query\obj\Query.UIClient.cs" D:\GITWorkspace\Libraries\IML.Core\IML.Core.ServiceClients.Query\UI.json /generateResponseClasses:false" exited with code -1.	IML.Core.ServiceClients.Query	C:\Users\cjchambers\.nuget\packages\nswag.apidescription.client\14.1.0\build\NSwag.ApiDescription.Client.targets	285

Which is interesting because when I started this, the first problem I had to resolve was that "/generateExceptionClasses:false" was throwing an error. Including it results in failure.
So based on AI advice I attempted to customize the generation with this:
  <Target Name="CustomNSwagGeneration" BeforeTargets="Build">
    <!-- Custom NSwag command -->
    <Exec Command='dotnet --roll-forward-on-no-candidate-fx 2 "$(MSBuildThisFileDirectory)nswag.json" openapi2csclient /input:"$(MSBuildThisFileDirectory)OpenAPIs\Query.UI.json" /output:"$(MSBuildThisFileDirectory)obj\Query.UIClient.cs"' />
  </Target>

But this gave me the same error.

FYI.
I managed to resolve this. It was due to the API having a reference to Swashbuckle.AspNetCore 6.7.0 (recently upgraded as part of .net 8 upgrade) - setting up a new project revealed this worked just fine with the version that comes standard (6.4.0)
So for anyone else experiencing issues, that was my resolution.


a dm diagnostics command

to collect information that would be useful for bug reports?

We have the startings of this at https://github.com/dotmesh-io/ops/tree/master/diagnostics + dm debug DotmeshRPC.DumpInternalState, but still need to turn it into a user-facing command and figure out how to access all the nodes individually (or have them fan out).

Nice to have, but think dm debug is enough for now. Reopen when we have time


Serialize without units

Currently the quantities are serialized with units, e.g. to xml: <Length1>100 m</Length1>
This means the serializer needs to use the unit provider singleton.
To avoid this, serialize the value of the quantity without units: <Length1>100</Length1>

The deserializer could still parse units to support old serialized data.


Select SITIPE Framework ID

User Story
As a engineer
I want to select the framework ID
So that I can work with multiple frameworks within SITIPE
Acceptance criteria
Please describe the initial acceptance critera.

this would be very difficult to achieve (since the tables are prefixed with the framework.) the easiest way is to spin up multiple sitipe backend services. then within the frontend plugin, choose which backend should be spoken to.


Move basic e2e tests to new e2e and add upgrade scenario

Description

Moves a few tests to the new testing framework.
Adds framework for testing different operator versions and configurations
Swaps around a few things that weren't working (like how we track things happening in private clusters with the aks invoke api). AKS invoke api isn't good for long running operations.

What's left for e2e

Need to move a few more tests over (trivial since tests are fully working here)
Need to setup GitHub Action workflow to run tests
Add a little more documentation to how to use it after GitHub workflow is done. Add notes to release steps for adding new releases here.

Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

How Has This Been Tested?
Tested locally. You can too by running
cd testing/e2e/
go run ./main.go infra --subscription=<subscription> --tenant=<tenant> --names="basic cluster"
go run ./main.go deploy

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 5 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 88.949%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
1964

Relevant Lines:
2208

💛  - Coveralls

/ok-to-test sha=b43d23b


[FLOC-2596] An option to allow logging directly to a file

Fixes: https://clusterhq.atlassian.net/browse/FLOC-2596
Merges #1756 to master.

Confirmed this is the same set of changes as the previously reviewed branch, but for master this time, and that the tests all continue to pass. Please merge when Buildbot is green.


ember-try: Disable beta and canary scenarios

These do not work anymore with PhantomJS. Once we use headless Chrome everywhere we can enable them again.

Apparently this doesn't work...


Listing this repo on PZ third party envs

Hiya,
I'm part of the PettingZoo maintenance team. We're a big fan of your environment, and was wondering if you'd like to have it put on the official PettingZoo's third party env list, which can be edited here.

Absolutely! I'd be honored! Should I open a PR, or can that be taken care of by the maintenance team?

If you can open a PR, all the better. Especially since you're better at describing what this env does than us. :)

Will do tomorrow! Super excited about this - really did not expect this, so I am over the moon!


ctrl+backspace to delete last word

Problem
When I press Ctrl+Backspace, I'd expect the last word to be deleted – this is the behavior of most text input boxes, and Monkeytype. Instead, it adds a new character.
Solution
I don't know exactly how to implement this feature. It could be an optional argument in the CLI.
Additional context
Video demonstrating the behavior. I mistype the word "possible" and attempt to delete the whole word.
https://user-images.githubusercontent.com/62364808/166745675-61dd4d1f-3972-4353-b151-3eec35ea3da9.mp4

Unfortunately this is a limitation of the terminal backend crossterm which handles user input. Essentially the control modifier never registers when a user hits backspace. You can read more about the issue here.
I'm keeping a close eye on this issue myself because I also want to see this added! I'm glad you said what you did though, because in my head ctrl+backspace should delete the whole line back to the beginning, but I think going back to the start of the current word makes more sense for what this is. You mentioned that most typing tests do that, but out of curiosity if you press ctrl+backspace in a normal text field or document, does it delete the entire line as it does for me? That's always what I've associated ctrl+backspace as doing.

Ah, that's tough! I guess we'll just have to wait on that crossterm issue. Ctrl+backspace does just delete the last word for me, I assumed that's how it works for most people – never heard of it deleting a line. TIL

Closing this just because I have my eyes on the issue and know it's main blocker!


Put name of script running before each line written to stdout?

I'm using this a lot to run scripts in parallel on travis-ci, and sometimes when they fail it'd be nice to see which script we're looking at. Is there anyway this library could fiddle with stdout and stderr so it'd print something like
[[npm-run-all:lint]] line 23 is missing a semicolon
[[npm-run-all:test]] test foo failed

This would make it a lot easier to read through logs and understand what went wrong.
I guess there'd also need to be a way to configure it, which I haven't thought of yet. But what do you think of the idea?

Thank you for this issue.
Are you talking about --print-label option?
https://github.com/mysticatea/npm-run-all/blob/master/docs/npm-run-all.md

Yes. Don't know how I missed that.

Yes. Don't know how I missed that!


TemplateDoesNotExist Multiple API endpoints

Issue type:

Python version: 2.7.5
NetBox version: 2.0.3

On a fresh build from master i cannot open various api endpoints without an error.
Example.
api/dcim/regions/ works fine
/api/dcim/sites/ produces error:
TemplateDoesNotExist at /api/dcim/sites/
django_filters/rest_framework/form.html
Request Method:	GET
Request URL:	http://****/api/dcim/sites/
Django Version:	1.11.1
Exception Type:	TemplateDoesNotExist
Exception Value:
django_filters/rest_framework/form.html
Exception Location:	/usr/lib/python2.7/site-packages/django/template/loader.py in get_template, line 25
Python Executable:	/usr/bin/python
Python Version:	2.7.5
Python Path:
['/opt/netbox/netbox',
'/opt/netbox/netbox',
'/usr/bin',
'/usr/lib64/python27.zip',
'/usr/lib64/python2.7',
'/usr/lib64/python2.7/plat-linux2',
'/usr/lib64/python2.7/lib-tk',
'/usr/lib64/python2.7/lib-old',
'/usr/lib64/python2.7/lib-dynload',
'/usr/lib64/python2.7/site-packages',
'/usr/lib64/python2.7/site-packages/gtk-2.0',
'/usr/lib/python2.7/site-packages']
Server time:	Mon, 22 May 2017 09:53:59 +0000
Template-loader postmortem
Django tried loading these templates, in this order:
Using engine django:
django.template.loaders.filesystem.Loader: /opt/netbox/netbox/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/django/contrib/admin/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/django/contrib/auth/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/debug_toolbar/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/django_tables2/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/mptt/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/rest_framework/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib/python2.7/site-packages/rest_framework_swagger/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /opt/netbox/netbox/secrets/templates/django_filters/rest_framework/form.html (Source does not exist)
django.template.loaders.app_directories.Loader: /opt/netbox/netbox/utilities/templates/django_filters/rest_framework/form.html (Source does not exist)
I get get to endpoint with siteid using /api/dcim/sites/2/

This seems to be a permissions error though as i can get to it using token

GitHub issues are intended for reporting bugs and requesting features. For general discussion or assistance with installation issues, please post to our mailing list.

It might be a bug, i ran into the same issue and resolved it by adding 'django_filters' to the list of installed apps in settings.py.

If this is different behavior from 1.96 which i did not see the change then fine.  I have the same issue either from my upgraded install or from a fresh install.  I have just gone ahead with using authentication instead of using anonymous access to read these parts.

Looks like something changed in django-filters and/or DRF: https://github.com/carltongibson/django-filter/issues/562 Only new installations of NetBox seem to be affected.
I'll add django_filters to INSTALLED_APPS in the settings.


SQS Concurrency Limit above 10

In SQS, the concurrency limit for a receive endpiont seems to never increase above the PrefetchCount, in practice, regardless of what is passed into UseConcurrencyLimit().
AWS SQS returns a maximum of 10 message per each poll request, thus the PrefetchCount can only be 10 or lower. Per AmazonSqsClientContext it seems MassTransit processes the PrefetchCount messages, before polling again, making it impossible to have a concurrency limit above PrefetchCount, and thus 10.
How do I achieve a concurrency thread count higher than 10? Do I need to create multiple hosts and connect them to the same endpont?
Host.ConnectReceiveEndpoint(queueName, sqsEndpoint =>
{
    sqsEndpoint.SubscribeMessageTopics = false;
    sqsEndpoint.UseConcurrencyLimit(35); // or any number higher than 10
    sqsEndpoint.PrefetchCount = 10;
    sqsEndpoint.Durable = true;
});

If SQS can only return 10 messages at a time, then yes, I'd say that's the limit you'll get at any one time.

I'm wondering if it would be possible to start multiple replicas of the same receive endpoint? We cannot declare more than one RE for a single queue as it could lead to different configurations in their definitions with dangerous consequences but what if we'd try to run multiple instances of the very same RE in multiple threads? Obviously we can scale our system horizontally but in case where we got a very lightweight but time consuming (e.g. due to networking) consumer we need to scale up to crazy amount of application replicas (even when working with relatively lightweight containers running 100+ of them is resource-intensive). As this is most likely very SQS-specific I don't think we might want to introduce another layer of complexity to MT. @phatboyg any thoughts?

Since it isn't really a connection, could we not just create a separate (and potentially multiple) SQSClient instances, and make it configurable how many "clients" are needed based on the 10 message per client limit?

Hmmm... I wanted to write a suggestion how could we improve number of received messages per MT-cycle but I just realized (looking at source code) it's already implemented. Method AmazonSqsClientContext.PollMessages should first pool n messages (where n can be above SQS limit of 10). We might only think if we couldn't run those n / 10 receive calls in parallel using Task.WhenAll?

@Crozin did you latest PR make this work?

@phatboyg Yes it does. Actually I believe it was fixed quite some time ago as even before my changes MT would first poll X messages (say 50) in several consecutive requests and only then process them all in parallel with respect to .UseConcurrencyLimit(). My change only makes the retrieval faster by parallelising  those HTTP requests to AWS.
Conclusion: .PrefetchCount has to be higher than .UseConcurrencyLimit().


Remove active waiting from the code

Changes

Remove active waiting from the code (waitUntilActiveSessionIsFinished)
Introduce cancellationToken which allows us to signal (and wait for) session ending

User now can start one adit, and then immediately start another one, which will either accept previous one if it's already done, or cancel it if it's in progress, and then continue with the new session (rare case, you would have to be very fast to be able to do it).
@steveyegge @dominiccooney @danielmarquespt Let's decide what behaviour would be the best there.
Initially I wanted to block the edit buttons until edit is ready, but now I feel that maybe it unnecessarily blocks the users.
I might want to run an edit, and then open another immediately so I can start typing new instruction while previous edit is still executing.
Alternative solution I see there is to block all edit buttons except "Edit Code". In "Edit Code" block sending until previous action finishes (aka how chat works).
But i'm open on all suggestions.
Test plan
Manual testing with Jetbrains plugin.

I might want to run an edit, and then open another immediately so I can start typing new instruction while previous edit is still executing.

Agree. And from the technical POV having the option allows for better flexibility in the future regarding having more complex multi tasking scenarios


stylemelagn model structure change  for 32Khz vocoder

Dear professor,
I'd like to train stylemelgan vocoder of 32kHz, here is my config to train a multi-speaker model, now the speaker similarity on VC task is worse than fregan/hifigan.
Can you give me some advice to improve quality. Here are two points I want to try:
(1)improve  in_channels from 128 to 256 ;
(2)improve conv kernal size;
Thanks !
###########################################################
#                FEATURE EXTRACTION SETTING               #
###########################################################
sampling_rate: 32000     # Sampling rate.
fft_size: 2048           # FFT size.
hop_size: 320            # Hop size.
win_length: 1600         # Window length.
                         # If set to null, it will be the same as fft_size.
window: "hann"           # Window function.
num_mels: 80             # Number of mel basis.
fmin: 80                 # Minimum freq in mel basis calculation.
fmax: 7600               # Maximum frequency in mel basis calculation.
global_gain_scale: 1.0   # Will be multiplied to all of waveform.
trim_silence: false      # Whether to trim the start and end of silence.
trim_threshold_in_db: 60 # Need to tune carefully if the recording is not good.
trim_frame_size: 2048    # Frame size in trimming.
trim_hop_size: 512       # Hop size in trimming.
format: "npy"           # Feature file format. " npy " or " hdf5 " is supported.

min_level_db: -100
ref_level_db: 20.0

preemphasis: 0.97
###########################################################
#         GENERATOR NETWORK ARCHITECTURE SETTING          #
###########################################################
generator_type: "StyleMelGANGenerator" # Generator type.
generator_params:
    in_channels: 128
    aux_channels: 80
    channels: 64
    out_channels: 1
    kernel_size: 9
    dilation: 2
    bias: True
    noise_upsample_scales: [5, 5, 2, 2]
    noise_upsample_activation: "LeakyReLU"
    noise_upsample_activation_params:
        negative_slope: 0.2
    upsample_scales: [5, 1, 4, 1, 4, 1, 2, 2, 1]
    upsample_mode: "nearest"
    gated_function: "softmax"
    use_weight_norm: True

###########################################################
#       DISCRIMINATOR NETWORK ARCHITECTURE SETTING        #
###########################################################
discriminator_type: "StyleMelGANDiscriminator" # Discriminator type.
discriminator_params:
    repeats: 4
    window_sizes: [512, 1024, 2048, 4096]
    pqmf_params:
        - [1, None, None, None]
        - [2, 62, 0.26700, 9.0]
        - [4, 62, 0.14200, 9.0]
        - [8, 62, 0.07949, 9.0]
    discriminator_params:
        out_channels: 1
        kernel_sizes: [5, 3]
        channels: 16
        max_downsample_channels: 512
        bias: True
        downsample_scales: [4, 4, 4, 1]
        nonlinear_activation: "LeakyReLU"
        nonlinear_activation_params:
            negative_slope: 0.2
    use_weight_norm: True

###########################################################
#                   STFT LOSS SETTING                     #
###########################################################
stft_loss_params:
    fft_sizes: [1024, 2048, 512]  # List of FFT size for STFT-based loss.
    hop_sizes: [120, 240, 50]     # List of hop size for STFT-based loss
    win_lengths: [600, 1200, 240] # List of window length for STFT-based loss.
    window: "hann_window"         # Window function for STFT-based loss
lambda_aux: 1.0                   # Loss balancing coefficient for aux loss.

###########################################################
#               ADVERSARIAL LOSS SETTING                  #
###########################################################
lambda_adv: 1.0 # Loss balancing coefficient for adv loss.
generator_adv_loss_params:
    average_by_discriminators: false # Whether to average loss by #discriminators.
discriminator_adv_loss_params:
    average_by_discriminators: false # Whether to average loss by #discriminators.

###########################################################
#                  DATA LOADER SETTING                    #
###########################################################
batch_size: 32              # Batch size.
batch_max_steps: 32000      # Length of each audio in batch. Make sure dividable by hop_size.
pin_memory: true            # Whether to pin memory in Pytorch DataLoader.
num_workers: 4              # Number of workers in Pytorch DataLoader.
remove_short_samples: false # Whether to remove samples the length of which are less than batch_max_steps.
allow_cache: false           # Whether to allow cache in dataset. If true, it requires cpu memory.

###########################################################
#             OPTIMIZER & SCHEDULER SETTING               #
###########################################################
generator_optimizer_type: Adam
generator_optimizer_params:
    lr: 4.0e-4
    betas: [0.5, 0.9]
    weight_decay: 0.0
generator_scheduler_type: MultiStepLR
generator_scheduler_params:
    gamma: 0.5
    milestones:
        - 100000
        - 300000
        - 500000
        - 700000
        - 900000
        - 110000
generator_grad_norm: -1
discriminator_optimizer_type: Adam
discriminator_optimizer_params:
    lr: 2.0e-4
    betas: [0.5, 0.9]
    weight_decay: 0.0
discriminator_scheduler_type: MultiStepLR
discriminator_scheduler_params:
    gamma: 0.5
    milestones:
        - 200000
        - 400000
        - 600000
        - 800000
discriminator_grad_norm: -1

###########################################################
#                    INTERVAL SETTING                     #
###########################################################
discriminator_train_start_steps: 100000 # Number of steps to start to train discriminator.
train_max_steps: 1500000                # Number of training steps.
save_interval_steps: 50000              # Interval steps to save checkpoint.
eval_interval_steps: 1000              # Interval steps to evaluate the network.
log_interval_steps: 100                # Interval steps to record the training log.

###########################################################
#                     OTHER SETTING                       #
###########################################################
num_save_intermediate_results: 4  # Number of results to be saved as intermediate results.

@wblgers have you seen any improvement in StyleMelGAN at higher sampling rates by changing input channels or kernel size?

conv kernal size

I'm working on it. Since the multi-gpu training does not speed up training as expceted, the training is slow. I'll give out some results when finished.

@wblgers Great - I'm testing increasing in_channels and will respond when I have results as well.
As far as multi-gpu training, I have found that increasing the LR and reducing steps between scheduled LR changes helps speed up training.
My understanding is by using the same config with multi-gpu training, you are only increasing the batch size. Since batch size is bigger, you can increase LR proportional to batch size since the step taken by optimizer should be better due to increased batch size.
I tried multiplying LR by 4 for 8 GPUs, and decreasing number of steps in each scheduler change by 1/2. I'm not sure what the best settings are, though. You may be able to do things 1:1 for fastest training (e.g. 8x LR for 8 GPUs and divide number of steps by 8) but I'm not sure.


transcription speed blowouts

Thanks again for this project - for context I'm testing it transcribing a live public radio stream, appreciate the rapid speed and low memory as it's most useful providing near-live transcription.
The radio stream is maybe 60% voice on studio mic, 30% phone voice, 5% voice talking over music, and 5% music.
I have a simple python script running 30s chunks from the live radio stream into faster-whisper continuously.
Using base model, on a cheap VPS with just 2GB RAM - I'm sure I could get better results with a higher spec machine but it's a proof of concept - would be useful to run across a large number of different streams here.
Most 30s chunks take between 6-8s to transcribe, which is perfect, but roughly 1 in 10 can blow out between 20-50s.
I haven't quite figured out what causes it, I wonder if it's when the 30s chunk has a mix of music and talk, or a mix of different audio sources? Was wondering if in your experience you could shed light on the reason? Would a larger model stop the blowouts?

Hi,
Most likely these audio chunks trigger the "temperature fallback". In this case, the transcription is run multiple times with different parameters in an attempt to improve the final result. This explains why the transcription time can suddenly increase for specific segments.
You can disable this fallback by setting the argument temperature=0;
model.transcribe(..., temperature=0)

That was it, thankyou! Time now at most 15s which is manageable, no blowouts with temperature=0. I'll try experimenting with that and best_of.
Downside to temperature=0 is as you'd expect, lots of fun repeats like this:

was arrested and charged with sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing sing s***ing s (15.32s)


"writeImage" method support for windows

Two dependences were added:
import 'package:path/path.dart' as Path;
import 'package:uuid/uuid.dart';
And also the warning level was decreased to /W3 in CMakeLists.txt file.
So I am not sure if it is appropriate changes for this project, it is up to the maintainer to decide.

https://github.com/MixinNetwork/flutter-plugins/issues/131

Sorry for the delay. Thanks for the PR!


Conflict with turbolinks 5.0.0.beta4

Updated our application from version 2.3.0 of raven-js to 3.0.2.
Now I get the error every time click on any internal link
TypeError: a.match is not a function
  at r.Turbolinks.History.r.update (eval at <anonymous> (http://localhost:3500/vendor-bundle.js:3024:2), <anonymous>:8:11165)
  at r.Turbolinks.History.r.push (eval at <anonymous> (http://localhost:3500/vendor-bundle.js:3024:2), <anonymous>:8:10607)
  at e.Turbolinks.Controller.e.pushHistoryWithLocationAndRestorationIdentifier (eval at <anonymous> (http://localhost:3500/vendor-bundle.js:3024:2), <anonymous>:8:29305)
  at e.Turbolinks.Visit.e.changeHistory (eval at <anonymous> (http://localhost:3500/vendor-bundle.js:3024:2), <anonymous>:8:23290)
  at e.Turbolinks.BrowserAdapter.e.visitStarted (eval at <anonymous> (http://localhost:3500/vendor-bundle.js:3024:2), <anonymous>:8:8902)
...
(11 additional frame(s) were not displayed)

I think it is related to URL tracking (pushState) in new version of raven-js

Hi @szyablitsky – I'll have a fix for this shortly and we'll push a new release.

So, looking at the Turbolinks code, this is definitely being caused by a call to pushState – I'm guessing it's passing a non-string value for URL (since that's the only argument we inspect, and we do call .match on it). I've added a tighter check in #569.

Okay, better yet, we experimented a little more w/ pushState and saw that it coerces objects to strings. I think the integration test better captures the behavior now.


Translation configuration by field type rather than name

First of all the plugin is awesome and works really well.
However, configuration for larger, more complex sites is problematic. Specifically whitelisting every single field to be translated via its name is not a practical solution as this potentially creates huge lists. Would it be possible to invert the behaviour, i.e. translate by field types instead of field name? The fields that should not be translated could be passed to an excludeFields array...
Or is there another way to prevent going over dozens of templates and fields and pick out every single field name for the translation?

Actually it seems that this has already been implemented for blocks. Quoting from the documentation:

By default, all built-in Kirby blocks that include a text-like field are pre-configured to be translated.

This has been resolved with the Kirby Content Translator v2, which is a complete rewrite and supports translating fields by type, rather than their name.
See the fieldTypes section configuration.


[Future] Option to get decoded urls in log

Hello! Werkzeug logs urls as encoded strings. For example if I have route with Cyrillic characters: @app.route('/привет') in Flask (https://gist.github.com/dima74/5e025da90ee90a78b65bc3e3c69623ea), then Werkzeug will log GET /%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82 HTTP/1.1. It would be very nice if there is option for Werkzeug to log decoded urls. (Thanks for Werkzeug!)

I suppose this really is a problem for people with non-latin languages.
However, we need to make sure we're not unescaping any other characters, such
as terminal control sequences, otherwise people can probably send weird
requests, the server admin looks at the log and then their terminal does funny
things. This is where it gets much harder to implement.
On Fri, May 05, 2017 at 10:46:10AM -0700, Dmitry Murzin wrote:

Hello! Werkzeug logs urls as encoded strings. For example if I have route with cyrillic characters: @app.route('/привет') in Flask (https://gist.github.com/dima74/5e025da90ee90a78b65bc3e3c69623ea), than Werkzeug will log "GET /%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82 HTTP/1.1". It would be very nice if there is option to get that Werkzeug logs urls decoded. (Thanks for Werkzeug!)
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/pallets/werkzeug/issues/1115

Yes, I agree with you, thank you

What if only letters will be decode, that is characters c for which c.isalpha() == True. Something like this:
import urllib.parse
import re

def decode_letters_in_url(url_encoded):
    result = ''
    url_encoded_parts = re.split('((?:%..)+)', url_encoded)
    for part in url_encoded_parts:
        if part.startswith('%'):
            part_decoded = urllib.parse.unquote(part)
            for letter in part_decoded:
                result += letter if letter.isalpha() else urllib.parse.quote(letter)
        else:
            result += part
    return result

>>> decode_letters_in_url('/query?args=1,2')
'/query?args=1,2'
>>> decode_letters_in_url('/russian/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82')
'/russian/привет'
>>> decode_letters_in_url('/args?%D0%B0%D1%80%D0%B3%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B=1,2,3')
'/args?аргументы=1,2,3'
>>> decode_letters_in_url('/query?spaces=_%20_%20_')
'/query?spaces=_%20_%20_'
>>> decode_letters_in_url('/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82?space=%20russian=%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9')
'/привет?space=%20russian=русский'

Do you need this for production or for development? In development we can make this much simpler since we don't need to worry about the developer owning himself.

For development. As far as I know Werkzeug is for development, not for production, doesn't it? In production I use Gunicorn, and I want that Gunicorn logs decoded url too, but it is another story.

The Werkzeug server is used for development, but there's more stuff in Werkzeug
than the server.
On Sat, May 06, 2017 at 09:08:36AM -0700, Dmitry Murzin wrote:

For development. As far as I know Werkzeug is for development, not for production, doesn't it? In production I use Gunicorn, and I want that Gunicorn logs decoded url too, but it is another story.
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/pallets/werkzeug/issues/1115#issuecomment-299649527

OK. Now I use only Werkzeug server for development

Cool, so I think code like yours would be OK for the Werkzeug dev server, but I
would like somebody else's feedback on this. Even though this is just the dev
server, I am worried about performance of this.
On Sat, May 06, 2017 at 09:23:25AM -0700, Dmitry Murzin wrote:

OK. Now I use only Werkzeug server for development
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/pallets/werkzeug/issues/1115#issuecomment-299650485


Missing part from address

When I want to display address in my custom format, from AddressDetails object, there is no one part of address which is visible in "displayName" property. In this case is street name.

It's Not available in OSM API, but you can achieve what you want using (split) function


FreeRDP 2.11.3 fail to compile because of typo in unicode.c

Compilation of FreeRDP 2.11.3 fails in Linux because of a typo in file winpr/libwinpr/crt.unicode.c
At line 362, there is:
		targetLength = ucnv_convert("UTF-8", "UTF-16LE", targetStarrt, targetCapacity,

The correct line is:
		targetLength = ucnv_convert("UTF-8", "UTF-16LE", targetStart, targetCapacity,

After fixing this typo, compilation succeeds.

Created https://github.com/FreeRDP/FreeRDP/pull/9652 to address this


Fix mocking in TaskHistoryWriterTest

It turns out you're not supposed to change the stubbing on Mockito mocks
once you start calling the mock from different threads. Doing so is unsafe
and can cause failures.
We were changing the stubbing on the mocked ZK client after using it in
TaskHistoryWriter, which caused weird exceptions and test failures. Fix
this so we do all the stubbing beforehand.

@davidxia @gimaker

:+1:


[Usage]: openai.APIStatusError: Error code: 405 - {'detail': 'Method Not Allowed'}

Your current environment
The output of `python collect_env.py`

How would you like to use vllm
I run vllm serve /mnt/datastore/shared/model-fp8 --max-model-len 16384 --tensor-parallel-size 8 --gpu-memory-utilization 0.95 --served-model-name model-v2-405b-e4
But then I get openai.APIStatusError: Error code: 405 - {'detail': 'Method Not Allowed'}
I get this only with the chat.completions api from oai lib. Text completion api works fine..

One possibility is the chat template is not found and or failed to be found so the chat endpoint was disabled somehow. It should show up as a warning log message somewhere.

It was cloudflare's fault


⚠ Bofrost.be has degraded performance

In bc7fe7a, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1658 ms

Resolved: Bofrost.be performance has improved in 592141f.


Uncaught Error: Cannot find module 'event-kit'

[Enter steps to reproduce below:]

...
...

Atom Version: 1.0.19
System: Mac OS X 10.11.1
Thrown From: atom-beautify package, v0.28.15
Stack Trace
Uncaught Error: Cannot find module 'event-kit'
At module.js:336

Error: Cannot find module 'event-kit'
  at Module._resolveFilename (module.js:334:15)
  at Function.Module._resolveFilename (/Applications/Atom.app/Contents/Resources/app.asar/src/module-cache.js:383:52)
  at Function.Module._load (module.js:284:25)
  at Module.require (module.js:363:17)
  at require (module.js:382:17)
  at Object.<anonymous> (/Users/Jack/.atom/packages/atom-beautify/src/beautify.coffee:7:25)
  at Object.<anonymous> (/Users/Jack/.atom/packages/atom-beautify/src/beautify.coffee:2:2)
  at Module._compile (module.js:428:26)
  at Object.defineProperty.value [as .coffee] (/Applications/Atom.app/Contents/Resources/app.asar/src/compile-cache.js:169:21)
  at Module.load (module.js:353:32)
  at Function.Module._load (module.js:308:12)
  at Module.require (module.js:363:17)
  at require (module.js:382:17)
  at Package.module.exports.Package.requireMainModule (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:761:34)
  at Package.module.exports.Package.activateConfig (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:263:14)
  at PackageDetailView.module.exports.PackageDetailView.activateConfig (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/settings-view/lib/package-detail-view.js:212:26)
  at PackageDetailView.module.exports.PackageDetailView.completeInitialzation (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/settings-view/lib/package-detail-view.js:156:12)
  at PackageDetailView.module.exports.PackageDetailView.loadPackage (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/settings-view/lib/package-detail-view.js:168:21)
  at /Applications/Atom.app/Contents/Resources/app.asar/node_modules/settings-view/lib/package-detail-view.js:298:17
  at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:82:11)
  at PackageManager.module.exports.PackageManager.emitPackageEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/settings-view/lib/package-manager.js:588:27)
  at /Applications/Atom.app/Contents/Resources/app.asar/node_modules/settings-view/lib/package-manager.js:379:26
  at exit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/settings-view/lib/package-manager.js:60:16)
  at triggerExitCallback (/Applications/Atom.app/Contents/Resources/app.asar/src/buffered-process.js:213:47)
  at ChildProcess.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/buffered-process.js:235:18)
  at emitTwo (events.js:87:13)
  at ChildProcess.emit (events.js:172:7)
  at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)

Commands
     -0:19.4.0 snippets:next-tab-stop (atom-text-editor.editor.is-focused)
     -0:19.4.0 snippets:expand (atom-text-editor.editor.is-focused)
     -0:19.4.0 editor:indent (atom-text-editor.editor.is-focused)
     -0:18.6.0 core:move-down (atom-text-editor.editor.is-focused)
     -0:18.1.0 core:move-up (atom-text-editor.editor.is-focused)
  7x -0:16.6.0 core:move-down (atom-text-editor.editor.is-focused)
  4x -0:13.5.0 core:move-left (atom-text-editor.editor.is-focused)
     -0:12.4.0 core:move-down (atom-text-editor.editor.is-focused)
     -0:12 core:move-left (atom-text-editor.editor.is-focused)
  2x -0:11.7.0 core:move-down (atom-text-editor.editor.is-focused)
     -0:11.1.0 core:move-left (atom-text-editor.editor.is-focused)
     -0:10.7.0 core:move-down (atom-text-editor.editor.is-focused)
     -0:10.3.0 core:move-left (atom-text-editor.editor.is-focused)
  3x -0:09.7.0 core:move-up (atom-text-editor.editor.is-focused)
     -0:03.1.0 core:move-right (atom-text-editor.editor.is-focused)
  2x -0:01.9.0 core:backspace (atom-text-editor.editor.is-focused)

Config
{
  "core": {}
}

Installed Packages
# User
No installed packages

# Dev
No dev packages

Could you try uninstalling and reinstalling Atom Beautify?

Please let me know if this resolves your problem. Thank you.

I just downloaded the package from github (manually), placed it under the .atom/packages, restarted atom and got the exact same error. This is on windows. Fixed it by doing npm install on the package manually.

Fixed it by doing npm install on the package manually.

Yes, this would be required and expected, given you wanted to install manually. apm install will also run npm install once the package has been cloned. So this is expected.

  Once Atom is installed apm should become a global command, so you don't need to be any specific directory location.  The apm module system appears to be based upon npm as they look similar and work in similar fashions.  NPM comes with Node.js and it should also be a global command.

Umm, Okay but a little point, npm gives me an error ! doesn't matter.
but there's a problem here, beatufy doesn't format .php files whatever code in it it formats html code only in .html files but doesn't even beautify html in .php files !!?

Same problem with last update on Aton 1.18.0 x64 (Windows 10)

Hi I am having this error right now. Do have any idea on how to solve this? Thanks

Hi guys. I'm having this issue right now. Do you have any idea how can I fix this? Thanks

@jonjie0317 : If you are seeing this error:
Error: Cannot find module 'event-kit'

It is usually an issue during installation. A bug in apm or npm maybe.
Try reinstalling with apm install atom-beautify. Try uninstalling first. And be sure to restart Atom.

Hi @Glavin001 , I just used the settings of atom to install the package.


Template for angular library projects

Most of it is setup properly, but angular-components has a few improvements made in https://github.com/frankframework/angular-components/pull/1 which should be considered here too


Unscheduled replica clean-up

Unscheduled replica would be deleted when volume was detached, so there would not be failed replicas when degraded volume was detached.
Merged after PR https://github.com/longhorn/longhorn-manager/pull/1534
longhorn/longhorn#4791

Hi @khushboo-rancher,
After PR https://github.com/longhorn/longhorn-manager/pull/1534 merged, the degraded volume that was restored from a backup would not have a failed replica (that would be deleted) after the restoration, so this ticket removes the expected_fail.

When a volume is created using the Longhorn UI, the volume remains in detached state, does it mean that volume will have only replica equal to available disks in a degraded availability situations.

There would be replicas that user requested when user created the volume but only schedule the number of replicas equal to the number of available disks
For example, 3 replicas asked when volume created, two available nodes or two available disks on different nodes and two replicas will be scheduled, one would be N/A.

What if some disks were removed momentarily and no other disks are available for scheduling and volume got detached. Will the failed replicas be removed? If yes, we won't be able to reuse the existing replicas if the older disks come back.

No, usable failed replica would not be deleted.

I not sure if we need to revisit all the degraded_availability test cases.

I have run tests on degraded_availability test cases, it looks fine.

@mantissahz Please backport.


[CT-1988] Model view: when available, display model owner in dbt-docs

In the model view (/model/{model_id}) of dbt-docs, display the model owner (by name?) when available.
If a model is part of a group, its owner information should be available as part of the group property.

What is the owner?  Do we want to add a field per owner type(name, email, slack, etc)?  Have some kind of ranking?  Use name is available, then email, then... and if none are available use the warehouse value.
Exposures currently list both the owner name and the owner email and dynamically hide one if it's not available.


not able to use local llm endpoints in chains

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.

Example Code
qa_chain = (
RunnablePassthrough.assign(context=( lambda x: format_docs(x["context"])))
| rag_prompt
| local_llm_api()
| StrOutputParser()
)
Description
I am trying to call my local api endpoint in the qa chain.
The return type of the endpoint is a dict of list.
The error i am getting is  :
Expected a Runnable, callable or dict.Instead got an unsupported type: <class 'list'>
System Info
python version - 3.11
Related Components

[X] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[X] Chains
[ ] Callbacks/Tracing
[ ] Async

local_llm_api cannot be called as it you need it wrap it as a proper Runnable(BaseLanguageModel). Can you please send me more of your code related to local_llm_api, perhaps then I might be better able to help you.


Issue/905: Improve TBD Monthly Spotlight

What type of PR is this? (check all applicable)

[ ] ♻ Refactor
[ ] ✨ New Feature
[ ] 🐛 Bug Fix
[ ] 📝 Documentation Update
[ ] 👷 Example Application
[ ] 🧑💻 Code Snippet
[x]  🎨 Design
[ ] 📖 Content
[ ] 🧪 Tests
[ ] 🔖 Release
[ ] 🚩 Other

Description

This PR fixes this issue .
Related Tickets & Documents

Resolves #905
Mobile & Desktop Screenshots/Recordings

Added code snippets?

[x] 👍 yes
[ ] 🙅 no, because they aren't needed

I have added some CSS attributes to make the Buttons the SAME SIZE.

Added tests?

[ ] 👍 yes
[x] 🙅 no, because they aren't needed
[ ] 🙋 no, because I need help

No tests? Add a note

This issue is only regarding CSS.
Added to documentation?

[ ] 📜 readme
[ ] 📜 contributing.md
[ ] 📓 general documentation
[x] 🙅 no documentation needed

No docs? Add a note

This issue is only regarding CSS.
[optional] Are there any post-deployment tasks we need to perform?
No.
[optional] What gif best describes this PR or how it makes you feel?

@hanzalahwaheed looks great! thank you so much, once the checks have passed I'll merge it 🎉


Please include LICENSE.txt as a comment in dist

The BSD 3-Clause license requires redistributions to reproduce elements of the license.
The license is currently included in a separate file https://github.com/salesforce/scv-connector-base/blob/master/LICENSE.txt
This makes it more difficult to include in our source code.
It would be easier to reproduce the license accordingly if it was included directly as a comment such as those supported by terser  i.e.:
/*! ************************************
Copyright (c) ...
 **************************************/

This would then allow us to configure our bundler to preserve the license comments in our redistribution.

@nvmpaulmackintosh I don't think this is gonna get any traction :(
@dlouvton @sfyz @vivektikoo-force

@nvmpaulmackintosh Perhaps can close for now?


Update repo URL to HTTPS

The URL at the top of https://github.com/Microsoft/TypeScript is currently HTTP:

It should be safe to update to https://www.typescriptlang.org :-D

(Also, I noticed that https://typescriptlang.org/ (no www) seems to hang. The HTTP version of it redirects. HTTPS + HSTS + preloading would be super awesome. :-D https://hstspreload.org/?domain=typescriptlang.org)

Your initial comment has been fixed~
I refer you to @DanielRosenwasser for your remaining website suggestions~

I refer you to @DanielRosenwasser for your remaining website suggestions~

Thanks! I've moved that to a separate issue: #30529.


[Android] [Bug] Progress doesn't work first few seconds

Video starts playing but progress currentTime is 0 the first few seconds even though onProgress is called. After a few seconds the time starts to update but still from 0 even though the video has played for a few seconds. Is this a known bug?

I experienced something similar to this. After I stop the debugging, it works ok again. Maybe you can try.

@jcmandersson please reopen with more info or 👉 http://stackoverflow.com/questions/tagged/react-native thanks


Editor layout

What happened?
Layout is off and no code will compile

Steps to reproduce problem
Open dartpad.dev
Additional info
Browser
Browser: Chrome
Version:
Are you using any extensions/plugins that affect website behavior
(particularly those that affect iframes, such as ad blockers)?
Are there any warnings or errors in your browser's JavaScript console?
If so, paste them below:
DevTools failed to load SourceMap: Could not load content for https://dartpad.dev/scripts/playground.dart.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load SourceMap: Could not load content for https://dartpad.dev/split.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
Machine
Operating system: Windows 10
Version:
Your code
What code was in the editor, if any, when the failure occurred? You
can paste it in below:
// Paste code here.

DartPad's output
Did DartPad print anything to the console pane? If so, paste it below:
[paste console output here]

If you were running Flutter code, you can also paste an image of the
Flutter output directly into this bug report.

Same here. Dartpad getting error in console.

Dartpad in this link is working: https://dartpad.dartlang.org/
What is going on with https://dartpad.dev?

This is a caching issue that occasionally pops up when we update the HTML that DartPad uses. The serving setup we use for the front-end of DartPad will, for some users, serve the old HTML with the new JavaScript. After a few hours, all the caches have invalidated the old HTML and the problem fades away.
By now, this should no longer be an issue, but I'm going to retitle and maintain this issue, since we do need to address the root cause going forward.

I think this would fix the issue: https://github.com/dart-lang/dart-pad/issues/1683. I'm going to close this so we can track it there.


[gimie] Docs website

As the gimie API is getting more complex, a documentation website could become useful.
We should use a framework such as Sphinx or MkDocs.
We already use numpy-formatted docstrings and doctests, which can be used by either framework to auto-generate html content.
Objective: Setup documentation website
Requirements:

[ ] Configure docs framework with required extensions
[ ] Setup hosting and deployment (most liikely GitHub pages or readthedocs)
[ ] Configure index, apidoc and welcome page

Sphinx is more flexible when it comes to automatically document the API, and has better support for things like type hints and doctests. The main drawback is that it's harder to theme and the defaults look dated. Fortunately, there is a recent modern-looking theme called Furo: https://pradyunsg.me/furo/contributing/


Features fail after build

Using Jodit-react as part of a react application with Jodit in its own component. However, when I build the app and serve from the build directory on Apache server, the editor has numerous issues. E.g. the right tool is not highlighted for bold/italic/underline content, changing text size fails, etc.
Expected behavior:
Should perform as expected when app is built as a static site.
Actual behavior:
After build process, features fail to work as expected.
Check deployed editor - https://amrita-syn.github.io/react-jodit/
P.S. Also opened an issue in Jodit itself; Can't say if the issue is with react build or jodit, hence duplicating.

Since last, I have also tried the react application with the main jodit package and the issue remains.

run  npm run build --target es6, I can use all features.
source: https://stackoverflow.com/questions/30439869/can-typescript-compile-to-es6-code

My workaround was to add it as a script tag in public/index.html.
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jodit/3.2.55/jodit.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/jodit/3.2.55/jodit.min.js"></script>

And then use in components like so -
const Jodit = window.Jodit;
const editor = new Jodit('#editor');

This is not jodit-react specific, it comes bundled with all Jodit flavors due to: https://github.com/xdan/jodit/issues/225#issuecomment-546524371


Cody Gray: Watch otherwhatsapp.com

Cody Gray requests the watch of the watch_keyword otherwhatsapp\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

otherwhatsapp\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ


Change which milky way potential is used in galactic_component to simplify installation

Currently in computing the galactic component of pulsar acceleration we use the BovyMWPotential2014 galactic potential class, from gala. This is based off of the Bovy (2015) paper which fit the parameters of a 3-component potential to various data, and seems to be considered a sort of "standard".
The issue is that, in gala, this class requires the package to have been installed with GSL support.
In practice this dependency has turned out to be, by far, the most annoying, and I can't always even be certain why. It makes it so gala often has to be installed separately from other dependencies, or given special consideration. In fact, the most recent version of gala (1.4.1) seems to be even more troublesome in this regard, and I can't get it to compile with GSL at all, despite going through it's setup scripts and ensuring everything is in the right place on our end. I had to ensure that gala==1.3 was installed, and requiring an old package version is not a sustainable practice.
All that said, while this potential seems to be the best, there is another MilkyWayPotential in gala (also from Bovy, 2015) which does not require GSL.
From Bovy (2015):

Finally, note that galpy contains an older version of a similar potential: MWPotential. This model was not fit to data on the Milky Way (although it is close to a good model) and is now superseded by MWPotential2014.

The question I'm posing here is whether the change/benefit of the newest potential is enough to justify the trouble caused by the installation woes. I weigh scientific accuracy much much higher than "installation woes", but this potential is used in a single, small, obscure part of the package, and only affects the pulsars. I think it is at least worth examining the differences between the two potentials, and deciding which we want to go with.

Switched to MilkyWayPotential2022 in #214.


FIX issue #3

Fix for issue #3

@NishanthShankar Thank you for your contribution. I decided to merge @cpunion's pull request, because it should also fix additional properties added in the future.


How to add support for new H60A1 ceiling light

Govee Device SKU
H60A1
Govee2MQTT Version
latest
Describe the issue
Govee has released a new ceiling light, how to add support for controling the lights, scenes etc..
https://eu.govee.com/collections/ceiling-light/products/govee-rgbww-rgbic-smart-ceiling-light
I have it already, if I can help to contribute with data and logs please guide me for the next steps.
Thanks,
Ilija
Startup Diagnostics
[2024-05-03T16:17:28 INFO  govee::service::state] requesting update via Platform API H60A1_9F1C (-MAC removed- H60A1) Some(DeviceState { on: true, light_on: Some(true), online: None, kelvin: 5000, color: DeviceColor { r: 255, g: 76, b: 240 }, brightness: 1, scene: None, source: "AWS IoT API", updated: 2024-05-03T13:39:11.272666674Z })
[2024-05-03T16:18:28 INFO  govee::service::state] requesting update via Platform API H60A1_9F1C (-MAC removed- H60A1) Some(DeviceState { on: true, light_on: Some(true), online: None, kelvin: 5000, color: DeviceColor { r: 255, g: 76, b: 240 }, brightness: 1, scene: None, source: "AWS IoT API", updated: 2024-05-03T13:39:11.272666674Z })
Additional Logs
No response
Home Assistant Logs
No response
Anything else?
No response

+1

realy weired.  after some reinstall of govee2mqtt now the H601A appears with full light control

I have added one of these lights today couple of things.
A. I think the product is H60A1 not H601A - the link you shared even references this. Not sure if this is just a typo or a different device/change.
B. I can see the device in govee2mqtt but only with on/off light control rather than full light control.
Are there known issues with this device?
Again happy to provide logs etc. if required.

Yep, I fat fingered the model, corrected now!

realy weired. after some reinstall of govee2mqtt now the H601A appears with full light control

+1, I reinstalled twice and it looks to be working. thanks for the suggestion!

I've tried a reinstall 3 times, including deleting govee2mqtt and the light from the MQTT device list after uninstall.
I can get the device to be recognised, and control on and off and single colour, but I don't get full light control including segments that I get with other govee devices.
Can you please show me what it appears like in your MQTT device list? Mine is like this:

Any help on the reinstall process you followed to get it working would be good to, are you including both your govee login and api details for example?
Cheers

I'm also having an issue with the H60A1 devices.  I'm not able to control the light, effects, and color etc. Also getting bad request, "device does not belong to you".
I can control both lights in my app over Bluetooth or Wi-Fi but not in HA. Also if I try not to use the cloud version of the product in Home Assistant,, both devices won't even show
Govee2mqtt version: 2024.04.29-30cf7732
Qty: 2 - Hh60A1
Log:
[2024-05-24T03:03:27 INFO  govee::service::state] requesting update via Platform API Patio String Lights (5C:A9:A4:C1:38:8C:7C:5F H7002) None
[2024-05-24T03:03:27 ERROR govee::commands::serve] while polling Patio String Lights (5C:A9:A4:C1:38:8C:7C:5F H7002): get_device_state: request https://openapi.api.govee.com/router/api/v1/device/state status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/state response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/state failed with code 400 Bad Request devices not belong you. Full response: {"requestId":"uuid","msg":"devices not belong you","code":400,"payload":{"sku":"H7002","device":"5C:A9:A4:C1:38:8C:7C:5F"}}
[2024-05-24T03:04:27 INFO  govee::service::state] requesting update via Platform API H60A1_5EBE (17:D3:D0:C9:07:07:5E:BE H60A1) None
[2024-05-24T03:04:27 INFO  govee::service::state] requesting update via Platform API Patio String Lights (5C:A9:A4:C1:38:8C:7C:5F H7002) None
[2024-05-24T03:04:27 ERROR govee::commands::serve] while polling Patio String Lights (5C:A9:A4:C1:38:8C:7C:5F H7002): get_device_state: request https://openapi.api.govee.com/router/api/v1/device/state status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/state response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/state failed with code 400 Bad Request devices not belong you. Full response: {"requestId":"uuid","msg":"devices not belong you","code":400,"payload":{"sku":"H7002","device":"5C:A9:A4:C1:38:8C:7C:5F"}}
[2024-05-24T03:05:27 INFO  govee::service::state] requesting update via Platform API H60A1_5EBE (17:D3:D0:C9:07:07:5E:BE H60A1) None
[2024-05-24T03:05:27 INFO  govee::service::state] requesting update via Platform API Patio String Lights (5C:A9:A4:C1:38:8C:7C:5F H7002) None
[2024-05-24T03:05:27 ERROR govee::commands::serve] while polling Patio String Lights (5C:A9:A4:C1:38:8C:7C:5F H7002): get_device_state: request https://openapi.api.govee.com/router/api/v1/device/state status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/state response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/state failed with code 400 Bad Request devices not belong you. Full response: {"requestId":"uuid","msg":"devices not belong you","code":400,"payload":{"sku":"H7002","device":"5C:A9:A4:C1:38:8C:7C:5F"}}
[2024-05-24T03:06:27 INFO  govee::service::state] requesting update via Platform API Patio String Lights (5C:A9:A4:C1:38:8C:7C:5F H7002) None

It seems the light fixture H60A1 is very unresponsive. When changing colors the light uses the API instead of local control. This due too changing each segment of the individual sections too.
Is it possible to change only the main light individually from the individual section lights above? Now the light has a huge queue each time you hover over the colorpallet of the main light.
The native integration from home assistant works like that for this light fixture, which results in a much more user friendly experience without building up queues for the API. In addition with the functionality for changing the Led sections individually and effects it would be awesome!

Hey, I'm also having this same issue. How would we go about adding support for this device? Thanks in advance!

Hey, I'm also having this same issue. How would we go about adding support for this device? Thanks in advance!

I seem to have to do this with all my Govee lights, but it works, so worth a try!
Once it's been added, make a HA full back up. Once the backup is complete, re-install that back up.
If you have the same luck as I do, all the entries will show for the device.
Let us know how you get on!

Hey, tried this out and still not working. All my other Govee lights work perfectly but this one acts very buggy. All the entities (main light and segments) are appearing but when changing the light, there are long delays and it doesn't always adjust when I control it via Home Assistant. Effects and colors don't work at all and brightness works better but still very intermittently. Please advise!

Any updates on this? It's a great inconvenience that the light can't be controlled by HA. Thanks in advance!

Any updates on this? Thanks in advance!

Same for me with two H60A1 devices. On/Off works fine, but changing colors is almost impossible, especially when switching between full light and ambient light (only segment 1-12, I guess, not sure).

Same for me, I see the on/off button and 1 single color selector ..... but since there was a pic in an earlier post showing what I would have expected means ...... I'll have to dig into the logs ... perhaps there's an indication what's wrong.

I figured that when home assistant tries to assign light temperature below 2200k the light becomes unresponsive for quite a time. After that it can be controlled again.
Controlling the light as device leads to problems mentioned above but when I only use the entities, the main one for me, it works.

Hey, tried this out and still not working. All my other Govee lights work perfectly but this one acts very buggy. All the entities (main light and segments) are appearing but when changing the light, there are long delays and it doesn't always adjust when I control it via Home Assistant. Effects and colors don't work at all and brightness works better but still very intermittently. Please advise!

You can use "Tap-To-Run" actions within the Govee app. Assign an effect or color, and save your Tap-To-Run. Govee2MQTT will add it as a scene.
You might have to delete Govee2MQTT and re-install though. Only my first "Tap-to-Run" showed up when I installed Govee2MQTT, since I had set it up in the Govee App previously. Once I saw that it was added as a scene, I tried to add more Tap-to-Runs, but they haven't displayed in Home Assist yet, despite restarting the add-on & the server.
This can at least give us more control over the H60A1.
Running the scene is instant, compared to how laggy controlling each segment is via the dashboard.

Unsubscribe
Sent from AOL on Android
On Fri, Nov 22, 2024 at 6:58 PM, Keith @.***> wrote:
Hey, tried this out and still not working. All my other Govee lights work perfectly but this one acts very buggy. All the entities (main light and segments) are appearing but when changing the light, there are long delays and it doesn't always adjust when I control it via Home Assistant. Effects and colors don't work at all and brightness works better but still very intermittently. Please advise!
You can use "Tap-To-Run" actions within the Govee app. Assign an effect or color, and save your Tap-To-Run. Govee2MQTT will add it as a scene.
You might have to delete Govee2MQTT and re-install though. Only my first "Tap-to-Run" showed up when I installed Govee2MQTT, since I had set it up in the Govee App previously. Once I saw that it was added as a scene, I tried to add more Tap-to-Runs, but they haven't displayed in Home Assist yet, despite restarting the add-on & the server.
This can at least give us more control over the H60A1.
Running the scene is instant, compared to how laggy controlling each segment is via the dashboard.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Any news on this? The lights are pretty cheap right now... but If I can't control these locally I don't want em

Having same type of slow response from both of ours, something in the process is quite slow.  Also would like to be able to turn off the main downlight separately from the ring light.  Can do so with both the Govee app and with Alexa app, but not in HA.

So I'm running into a scenario where even powering on the lights from an off state the color of the lights will turn a weird blue hue even though when I turned them off, the light temp (set by the Govee App) was exactly where I wanted it. The lights will also sporadically change rapidly from the light temp I do want to the weird blue with a different ring color.
Same thing happens when I try to invoke HA created Scenes where I adjust brightness.
The only thing that I've been able to do as a work around is invoke Tap to Run scenes created in the app then just trigger those scenes when they're imported in to the Scenes section in HA.
For the record, I dont think anyone is blaming or upset at the Govee MQ2T bit, more at the "closed off-ness" of Govee to HA.


Cake v Sake

Are there differences in what sake and cake are trying to accomplish? Also, is this pronounced sake (as in, "for goodness sakes") or saké?
not really an issue, but I couldn't think of a better way to ask the question

I pronounce it Sake, rhymes with "make".  My reasoning is that Sake makes use of the Spark view engine, so I believe it is a shortening of "spark make".  Also, psake (powershell make) is pronounced like the Japanese rice wine, and I use that at work so it would be confusing to pronounce them both the same way.

Cool, just wondering


version 3.0.0 no longer works because of missing javascript files

when we try the new version we got a lots of errors because of missing javascript files:
:8009/q/dev/resource…bootstrap.min.css:1
 Failed to load resource: the server responded with a status of 404 (Not Found)
:8009/q/dev/resource…css/logstream.css:1
 Failed to load resource: the server responded with a status of 404 (Not Found)
:8009/q/dev/resource…e/css/all.min.css:1
 Failed to load resource: the server responded with a status of 404 (Not Found)
jquery.min.js:1
 Failed to load resource: the server responded with a status of 404 (Not Found)
bootstrap.bundle.min.js:1
 Failed to load resource: the server responded with a status of 404 (Not Found)
logstream.js:1
 Failed to load resource: the server responded with a status of 404 (Not Found)
:8009/q/dev/resource…mages/favicon.ico:1

What version of Quarkus are you using ?

Ok, it will not work with latest, but we can fix that. Are you using the ui ? Or the REST endpoints ?

the web ui

Hi. it seems with the new dev ui, the javascript and css files are moved or perhaps no longer there.  They are still available via the "q/dev-v1" URL, but this is of cource now deprecated.  Still, the following diff got the extension working for me in the meantime:
diff --git deployment/src/main/java/io/quarkiverse/loggingmanager/deployment/LoggingManagerProcessor.java deployment/src/main/java/io/quarkiverse/loggingmanager/deployment/LoggingManagerProcessor.java
index 83a9647..fc5d648 100644
--- deployment/src/main/java/io/quarkiverse/loggingmanager/deployment/LoggingManagerProcessor.java
+++ deployment/src/main/java/io/quarkiverse/loggingmanager/deployment/LoggingManagerProcessor.java
@@ -161,7 +161,7 @@ class LoggingManagerProcessor {
                 Files.createFile(indexHtml);
             }
             String indexHtmlContent = getIndexHtmlContents(nonApplicationRootPathBuildItem.getNonApplicationRootPath(),
-                    "/dev/logstream");
+                    "/dev-v1/logstream");

             Files.write(indexHtml, indexHtmlContent.getBytes());

@@ -187,7 +187,7 @@ class LoggingManagerProcessor {
             String indexHtmlContent = getIndexHtmlContents(nonApplicationRootPathBuildItem.getNonApplicationRootPath(),
                     "/" + loggingManagerConfig.basePath + "/logstream");
             // Update the resource Url to be relative
-            String pathToBeReplaced = nonApplicationRootPathBuildItem.resolvePath("dev/resources");
+            String pathToBeReplaced = nonApplicationRootPathBuildItem.resolvePath("dev-v1/resources");
             indexHtmlContent = indexHtmlContent.replaceAll(pathToBeReplaced + "/", "");
             String indexHtmlFileName = UI_FINAL_DESTINATION + "/" + INDEX_HTML;
             generatedResourceProducer.produce(new GeneratedResourceBuildItem(indexHtmlFileName, indexHtmlContent.getBytes()));
@@ -305,7 +305,7 @@ class LoggingManagerProcessor {
                         cleanFrameworkRootPath(nonApplicationRootPath));

                 indexHtmlContent = indexHtmlContent.replaceAll("\\{devRootAppend}",
-                        cleanFrameworkRootPath(nonApplicationRootPath) + "/dev");
+                        cleanFrameworkRootPath(nonApplicationRootPath) + "/dev-v1");

                 indexHtmlContent = indexHtmlContent.replaceAll("\\{streamingPath}",
                         streamingPath);
diff --git deployment/src/main/resources/META-INF/resources/template/loggermanager.html deployment/src/main/resources/META-INF/resources/template/loggermanager.html
index 4bd21d0..41d64b2 100644
--- deployment/src/main/resources/META-INF/resources/template/loggermanager.html
+++ deployment/src/main/resources/META-INF/resources/template/loggermanager.html
@@ -6,11 +6,11 @@
         <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

         <!-- Bootstrap CSS -->
-        <link rel="stylesheet" href="{frameworkRootPath}/dev/resources/css/bootstrap.min.css">
-        <link rel="stylesheet" href="{frameworkRootPath}/dev/resources/fontawesome/css/all.min.css">
-        <link rel="stylesheet" href="{frameworkRootPath}/dev/resources/css/logstream.css">
+        <link rel="stylesheet" href="{frameworkRootPath}/dev-v1/resources/css/bootstrap.min.css">
+        <link rel="stylesheet" href="{frameworkRootPath}/dev-v1/resources/fontawesome/css/all.min.css">
+        <link rel="stylesheet" href="{frameworkRootPath}/dev-v1/resources/css/logstream.css">

-        <link rel="shortcut icon" type="image/png" href="{frameworkRootPath}/dev/resources/images/favicon.ico" >
+        <link rel="shortcut icon" type="image/png" href="{frameworkRootPath}/dev-v1/resources/images/favicon.ico" >

         <title>Logging manager | {applicationName} {applicationVersion}</title>

@@ -52,9 +52,9 @@
         {logContent}
         {modalsContent}

-        <script src="{frameworkRootPath}/dev/resources/js/jquery.min.js"></script>
-        <script src="{frameworkRootPath}/dev/resources/js/bootstrap.bundle.min.js"></script>
-        <script src="{frameworkRootPath}/dev/resources/js/logstream.js"
+        <script src="{frameworkRootPath}/dev-v1/resources/js/jquery.min.js"></script>
+        <script src="{frameworkRootPath}/dev-v1/resources/js/bootstrap.bundle.min.js"></script>
+        <script src="{frameworkRootPath}/dev-v1/resources/js/logstream.js"
                 data-frameworkRootPath="{frameworkRootPath}"
                 data-showOnStart="true"
                 data-streamingPath="{streamingPath}">

may be a bugfix release would be useful...

and probably a now so hardcoded path would be even better. eg: put into a constant...

Do you want to do a PR with your diff?

i don't know the codebase what's more don't know what's not working now...
i'm just see the above diff and normally i use not allow such code into our codebase...it's against some basic clean coding guideline...

I won't be able to produce a PR for this, the diff was just a FYI.

We can do a bugfix for the current 3.x, but the next 3.x the old dev ui will be removed. Then we need a big fix here.