feat(AppShell): make app-shell runtime parser play nicely with SW caching

Work with @alxhub to determine the best user experience.

[x] Come up with extensibility API
[ ] Implement

Since the parsing logic is almost done, we need to come up with a minimal API to make SW pluggable so App Shell parser can plug in seamlessly.

Design is fleshed out, now a matter of implementing. Still 2-3 days left of work.

Hi @alxhub. I saw you pushed an update through and also that your guys are planning on integrating this into the 4.x release (angular/service-worker). Just thought I'd show you this https://github.com/webpack/webpack-pwa maybe it can help with the process. :)


Steamcmd update stage being skipped when fails

Bug Report
Steamcmd update stage being skipped when fails
System Information

Operating System (Including distribution name and version number) N/A
AMP version and build date (Always use the version number, 'latest' is not valid!) <IP_ADDRESS> Mainline
Which AMP release stream you're using (Mainline, Nightly or FastTrack) Mainline

I confirm:

[x] that I have searched for an existing bug report for this issue.
[x] that I am using the latest available version of AMP.
[x] that my operating system is up-to-date.

Symptoms

What are you trying to do? Install using steamcmd
What are you expecting to happen? If steamcmd fails, don't try to start the server
What is actually happening? ('Nothing' is not an acceptable answer!) It tries to start the server over and over again, failing constantly, putting itself into a loop and freezing the instance.

The issue is not necessarily that SteamCMD fails. It is that AMP does not pause the stage while the login credentials (username, password, steamguard code) is entered.
In your case that has severe consequences because the next update stage is Start server, which obviously breaks because the server hasn't been installed yet - and AMP tries updating over and over again. In other cases a following update stage fails because the server directories haven't yet been created (again because the SteamCMD update stage hasn't finished) and so eg a config download to a server directory also fails. Just not so spectacularly.

This change appears to have resulted now in the subsequent update stages not being run at all.
I noticed that when the prompt for Steam login credentials appears, the SteamCMD stage notification in the background disappears rather than remaining open. Maybe that is an indication of how AMP is now treating the stage.

I've created a new issue, as technically the steamcmd stage itself runs just fine in nightly
https://github.com/CubeCoders/AMP/issues/835

I've created a new issue, as technically the steamcmd stage itself runs just fine in nightly
#835

Except in docker on Linux, where another AMP bug involving the use of numactl prevents SteamCMD from being run at all. Anyway, Valve has just updated SteamCMD and fixed the previous bug they introduced, meaning numactl should not need to be used.

This issue should be re-opened, as the bug remains/has re-emerged. Update stages that follow a steamcmd stage that requires login, fail. It seems they are run immediately after the SteamCMD stage is waiting for auth, and are not run after the SteamCMD stage is successfully completed - which is arse backwards

I've also verified.

Can I get an example of a game where this happens?

I believe this was fixed in the last few months. @Greelan can you verify if you're still seeing it happen?

I don't think I have noted specifically this issue recently, though the update stage logic still has quirks and anomalies

I'll close this one then and one of us can make a new one with what's going on there. If you let me know on Discord what you're seeing I'll write it up. I'm sure I've seen it too, but there's a lot to keep track of in all of these issues. Lol


homomorphic mapped tuple doesn't preserve parallel tuple

Bug Report
🔎 Search Terms

homomorphic mapped tuples, variadic tuple, parallel lists, zip tuples together, pipeline, compose function, keyof array.
🕗 Version & Regression Information

This is the behaviour in every version of the playground from 4.0.5 up to nightly v4.6.0-dev2021-11-05

This is not applicable before 4.0.5 since tuple spread [A,...V] doesn't exist that far back
and I reviewed the FAQ for entries about mapped types, I don't have primitives here.

⏯ Playground Link and Explanation
Playground link with relevant code
💻 Code

interface A{a:any}
interface B{b:any}
interface C{c:any}

type Combine<X,Y> = {[K in keyof X]: [X[K], Y[K&keyof Y]]}
type XX = [A,B,C]
type YY = [1,2,3]
declare const example_value: [["x", "y"], [A, 1], [B, 2], [C, 3]]

let works_as_expected: Combine<['x',...XX], ['y',...YY]> = example_value
// let works_as_expected: [["x", "y"], [A, 1], [B, 2], [C, 3]]

type Alias<X extends any[],Y extends any[]> = Combine<['x',...X],['y',...Y]>
let doesnt_work: Alias<XX,YY> = example_value
// let doesnt_work: [["x", "y"], [A, "y"], [B, 1], [C, 2]]

🙁 Actual behavior

works_as_expected is correctly the type [['x','y'], [A, 1], [B, 2], [C, 3]] but doesnt_work which is basically defined the exact same way except the spreading is done inside another type alias gives a totally different and incorrect type [["x", "y"], [A, "y"], [B, 1], [C, 2]]
🙂 Expected behavior
example should compile without errors, the type of doesnt_work should be the same as works_as_expected.

I came across this while trying to do variadic tuples with a pipeline type function, playground
type Fn<P,R> = (arg:P)=>R
interface A{a:any} // interfaces for testing
interface B{b:any}
interface C{c:any}
interface D{d:any}

// Fns<[A,B,C], [1,2,3]> == [Fn<A,1>, Fn<B,2>, Fn<C,3>]
// these take a list of arguments and a list of return types and basically zips them together
type Fns_RetDriven<Args,Rets> = {[K in keyof Rets]: Fn<Args[K&keyof Args], Rets[K]>}
type Fns_ArgDriven<Args,Rets> = {[K in keyof Args]: Fn<Args[K], Rets[K&keyof Rets]>}

type Fns<Args,Rets> = Fns_RetDriven<Args,Rets>
                      & Fns_ArgDriven<Args,Rets>
// the real use case is a compose/pipeline function which seems to be infering generics properly but the type is just breaking
declare function pipeline<Init,V extends any[],Ret>(...fns: Fns<[Init,...V],[...V,Ret]>): Fn<Init,Ret>

declare const clearly_the_expected_type: Fns<[A,B,C], [B,C,D]>
compose(...clearly_the_expected_type)
//Err Argument of type '[Fn<A, B>, Fn<B, C>, Fn<C, D>]' is not
// assignable to parameter of type 'Fns<[A, B, C], [B, C, D]>'.

That pipeline function is correctly inferring generics in most cases I throw at it, if it wasn't for the correctly inferred generics producing a different and invalid type this would likely finally give us the clean variadic compose definition that can do argument inference on the input functions.

This one is interesting.
When instantiating a mapped type that is applied to a tuple type with variadic elements, we transform M<[A, ...T, B]> into [...M<[A]>, ...M<T>, ...M<[B]>], and then rely on tuple type normalization to resolve the non-generic parts of the resulting tuple. So, say that M is a mapped type that "boxes" every element:
type M<T> = { [K in keyof T]: { value: T[K] } };

The instantiation M<[number, ...T, string]> then turns into [{ value: number }, M<T>, { value: string }]. This is generally a desirable transformation because it ensures that a mapped type applied to a variadic tuple type is itself recognized as a tuple type, plus it reduces the genericity of the type and allows better checking of and inference from the non-generic parts. However, the transformation means that the iteration type variable (K in example above) can really only be trusted to represent a property name in the type being iterated over (T in example above), and cannot be trusted to always correlate to an index in some other tuple type or a final combined tuple type.
Here's a simpler example:
type Foo<T> = { [K in keyof T]: K };

type Bar<A extends any[]> = Foo<[0, ...A]>;  // [0, ...Foo<A>] because of transformation

type T0 = Foo<[0, 0, 0, 0]>;  // ["0", "1", "2", "3"]
type T1 = Foo<[0, ...[0, 0, 0]]>;  // ["0", "1", "2", "3"]
type T2 = Bar<[0, 0, 0]>;  //["0", "0", "1", "2"]

Above, in the T1 example, the type [0, ...[0, 0, 0]] is normalized to [0, 0, 0, 0] before Foo<T> is applied to the tuple. But in the T2 example, the tuple is split into two parts and the indices now shift.
I can see how that is a bit surprising, but on the other hand, getting rid of the transformation has significant drawbacks. So, for now I'm going to say this is working as intended.

Intersting, thanks for the further information. Knowing this is how typescript is resolving the tuple spreading I can get the correct logic with this code which still doesn't quite give the auto-magical argument inference I was hoping but is functionally correct which is always good.
I suspect it still isn't working as I'd like because of the need to call Tail which uses infer on the generic it is trying to resolve meaning to figure out what V is you have to already know what V is, I'm honestly really impressed with how well typescript manages the resolution already but if you can't just zip tuples together then I don't think this use case will ever work exactly as intended.
Anyway thanks again for looking into this. Really appreciate typescript and your work to make it great! :)
type Tail<T extends unknown[]> = T extends [any, ...infer Rest] ? Rest : never;
type Fn<P,R> = (param:P)=>R;
/** Borrowed from SimplyTyped */
type Prev<T extends number> = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62][T];

type Fns_ArgDriven<Args extends unknown[], Rets extends unknown[]> = {[K in keyof Args]: Fn<Args[K], Rets[K&keyof Rets]>}
type Fns_RetDriven<Args extends unknown[], Rets extends unknown[]> = {[K in keyof Rets]: Fn<Args[K&keyof Args], Rets[K]>}

type Fns<Init, V extends unknown[], Ret> = V extends [] ? [Fn<Init, Ret>]
    : [Fn<Init, V[0]>, ...Fns_ArgDriven<V, [...Tail<V>, Ret]>] & [...Fns_RetDriven<[Init,...V], V>, Fn<V[Prev<V["length"]>], Ret>]

declare function pipeline<Init, V extends unknown[], Ret>(...fns: Fns<Init, V, Ret>): Fn<Init, Ret>

// first test only type annotate the first one, 2nd gets argument infered, 3rd onward only gets unknown infered for parameter type
// as such final return is not captured correctly
const test1 = pipeline((a:number)=>a.toExponential(),
                        (b)=>b.toUpperCase(),
                    //  ^?
                        (c)=>({foo:c}))
                    //  ^?

// second test, annotate first and third, now 2nd is set to unknown
// gives type error that methods can't be used on unknown but return is correct
const test2 = pipeline((a:number)=>a.toExponential(),
                        (b)=>b.toUpperCase(),
                    //  ^?
                        (c: string)=>({foo:c}))
                    //  ^?

declare const should_very_much_work: [Fn<1,2>, Fn<2,3>, Fn<3,4>]
const yay_it_works = pipeline(...should_very_much_work)
//                    ^?


feat: implement RFC 3127 -Ztrim-paths

What does this PR try to resolve?
Implement RFC 3127 trim paths on Cargo side. The counterpart of the compiler is in https://github.com/rust-lang/rust/pull/115214. The tracking issue for Cargo is https://github.com/rust-lang/rust/issues/111540.
How should we test and review this PR?
By commits. I would recommend reading the doc first to get the an overview on this.
Things I am uncertain

[x] The correct path prefix for sysroot remap. See https://github.com/rust-lang/cargo/pull/12625#discussion_r1371044041.

@Urgau has pointed out the remapping of sysroot has already been done by rustc bootstrap here. Changing that may require -Ztrim-paths being stabilized, and may leak CI details into all pre-built std, core…. This is something requiring to collaborate with T-bootstrap. We'll postpone it for this pull request.

[x] Do we want to verify the final artifact is actually sanitized? See https://github.com/rust-lang/cargo/pull/12625#discussion_r1371087973

Current we're satisfied with testing only on Linux.
For other platforms we verify Cargo passing in correct arguments to rustc.

Things to decide (but can postpone to follow-up PRs)

Is remapping dependencies to <pkg>-<version> good enough for all source kinds?

How to tell if a package is from Git or registry? IDE may wants that information?
Should we use SourceId hash or something instead?

The remap of workspace was not clear in the RFC. This PR choses to remap from workspace root instead. See https://github.com/rust-lang/cargo/pull/12625#discussion_r1371066017

Additional information
Things to do:

[x] Support both trim-paths = "all" and trim-paths = ["all"].
[x] Support trim-paths = true/false.
[x] Default value for dev and release profile.
[ ] Set CARGO_TRIM_PATHS environment variable for build scripts. (plan to do in follow-up)
[ ] Fingerprint should take trim-paths settings into account. (plan to do in follow-up)

:umbrella: The latest upstream changes (presumably #12648) made this pull request unmergeable. Please resolve the merge conflicts.

Do you want a review on this while it is in draft status?

I would wait for rustc side being reviewed.

:umbrella: The latest upstream changes (presumably #12768) made this pull request unmergeable. Please resolve the merge conflicts.

This is ready for review. Not 100% complete but good for shipping as a nightly feature.

:umbrella: The latest upstream changes (presumably #12881) made this pull request unmergeable. Please resolve the merge conflicts.

I haven't done a thorough review, but overall looks good to me.
@bors r=epage

:pushpin: Commit 63cef2c4fc8389a7c583ace1353bc68c5a44af01 has been approved by epage
It is now in the queue for this repository.

:hourglass: Testing commit 63cef2c4fc8389a7c583ace1353bc68c5a44af01 with merge 4aee12c1f81b689e35ba357bac895358864e5198...

:sunny: Test successful - checks-actions
Approved by: epage
Pushing 4aee12c1f81b689e35ba357bac895358864e5198 to master...


Add UT for InterfaceIndexCache

Pull Request Test Coverage Report for Build 984

0 of 0   changed or added relevant lines in 0 files are covered.
12 unchanged lines in 4 files lost coverage.
Overall coverage increased (+1.0%) to 62.381%

Files with Coverage Reduction
New Missed Lines
%

core/config/sr_config.go
2
0.0%

core/rest_invoker.go
2
93.94%

core/loadbalancer/struct.go
3
66.67%

core/lager/logrotate.go
5
38.53%

Totals

Change from base Build 983:
1.0%

Covered Lines:
4963

Relevant Lines:
7956

💛  - Coveralls


Update rkt demo

Use correct image for precached calico/node
Add policy to demo script

Oh yeah, LGTM.


UIButton setImage not working. Blank

Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

[x] I have read the wiki page and cheat sheet, but there is no information I need.
[x] I have searched in existing issues, but did not find a same one.
[ ] I want to report a problem instead of asking a question. It'd better to use kingfisher tag in Stack Overflow to ask a question.

Issue Description
What
When I try to use
button.kf.setImage(with: url, for: .normal, placeholder: nil, options: nil, progressBlock: nil, completionHandler: nil) on my UIButton it only shows blue colour image instead of loading actual image
Reproduce
I am attaching sample code please run and check.

Other Comment
XCode 9.2
Swift 4.0
Kingfisher 4.6.2
[Add anything else here]
KFOnUIButton.zip

I set the button's type to custom and it worked.

I set the button's type to custom and it worked. (instead of system)

It worked!


Redpanda Module: Add option for arbitrary bootstrap config

WithBootstrapConfig adds an arbitrary config kvp to the Redpanda container. Per the name, this config will be interpolated into the generated bootstrap config file, which is particularly useful for configs requiring a restart when otherwise applied to a running Redpanda instance.

What does this PR do?

Why is it important?

Related issues

@rockwotj - does this look like "normal" go code to you? 😇

LGTM

Cool, thanks. will spin off a real PR tmrw

upstream PR: https://github.com/testcontainers/testcontainers-go/pull/2666


Compatible with Xamarin.IOS ?

This is a bindings library for the existing Java library, so its not possible to make it work on iOS without rewriting the library.


"Fărcaș" is listed in the drop-down menu

Description:
"Fărcaș" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Fărcaș" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Fărcaș, DOLJ".


Add 2 commands to figure out when/if I'm on call

This PR adds 2 commands:

Am I on call - Figure out if the logged in user is currently on call or not
pager my schedule - Show on call shifts of the logged in user for the upcoming month in all schedules

Minor comments, but I like it! :+1:

@stephenyeargin Good to go now ?

:shipit:

Released in v2.1.6. Great work!


Different images for a source project and its translations

Details
I have implemented a translation for my project using the instructions at Manage translations.  And as it is expected the translation shows the same images as in the source project.
But in my case, the translation requires other images.
Is there any way to specify images for a translation other than in the source project?

This issue tracker is for issues related to rtd, for questions like this, you should use stackoverflow or sites like that. What you are asking looks like a sphinx feature or extension.


v2

Fixes #30
Fixes #41
Fixes #13
Closes #47
Closes #15
v2 introduces a new way to handle metadata for your Docker image as part of the proposal in #30.
Documentation: https://github.com/crazy-max/ghaction-docker-meta/tree/v2#readme
cc. @LongLiveCHIEF @hugopeixoto @mblaschke @felipecrs @kereis @slimcdk @whyman @CharlieC3 @lpil

Still too tightly tied to explicit events. Decouple the events from the payload and things become even simpler, and far more versatile.
This is too narrow of a use case. What if I'm tagging the image based on the version of the software inside of it, and not the version of the image itself? What If i'm building an image based on events in another repo?
This is way more complex than it needs to be. Look at my current implementation.

It can solve the primary use this action does where you tag something based on refs from the event types listed here.
It can produce every type of tag you are producing here, without the complicated type= syntax.
It can additionally support parsing of "raw" tags using semver, allowing both of the use cases I described above.

It does all that, just by simply allowing the user to input the ref instead of trying to determine what ref to use based on the event type.
It's great how much this is thought through, but in the end, I think it's too over-engineered to be useful outside of a specific use-case, and that's what my proposal was about.

@LongLiveCHIEF

Still too tightly tied to explicit events.

That's the purpose of this action, handle metadata through events triggered by the workflow.

This is too narrow of a use case. What if I'm tagging the image based on the version of the software inside of it, and not the version of the image itself? What If i'm building an image based on events in another repo?

I think it's relative to your use case. Very few users that I know of use events with custom payloads but anyway it's still possible with v2:
      -
        id: buildxy
        run: echo '::set-output name=buildxy::${{ (github.event.action == 'deploy'|| github.event.action == 'released') && github.event.client_payload.tag_name == steps.stable-octoprint.outputs.release }}'
      -
        name: Tagging Strategy
        id: tagging
        uses: HackerHappyHour/tagging-strategy@v3
        with:
          image_name: octoprint/octoprint
          tag_name: ${{ github.event.client_payload.tag_name }}
          tags: |
            %X%::${{ steps.buildxy.outputs.buildxy }}
            %X.Y%::${{ steps.buildxy.outputs.buildxy }}
            %X.Y.Z%
          extra_tags: |
            latest::${{ steps.stable-octoprint.outputs.release == github.event.client_payload.tag_name }}
            edge::${{ github.event.action == 'prereleased' || github.event.client_payload.tag_name == steps.latest-octoprint.outputs.release }}
            canary::${{ github.event.action == 'canary' }}
            bleeding::${{ github.event.action == 'bleeding' }}

could be used like this with v2:
      -
        id: buildxy
        run: echo '::set-output name=buildxy::${{ (github.event.action == 'deploy'|| github.event.action == 'released') && github.event.client_payload.tag_name == steps.stable-octoprint.outputs.release }}'
      -
        name: Meta
        uses: crazy-max/ghaction-docker-meta@v2
        with:
          images: octoprint/octoprint
          tag_name: ${{ github.event.client_payload.tag_name }}
          tags: |
            ${{ github.event.client_payload.tag_name }}
            type=semver,pattern={{major}},enable=${{ steps.buildxy.outputs.buildxy }}
            type=semver,pattern={{major}}.{{minor}},enable=${{ steps.buildxy.outputs.buildxy }}
            type=semver,pattern={{version}}
            type=raw,value=edge,enable=${{ github.event.action == 'prereleased' || github.event.client_payload.tag_name == steps.latest-octoprint.outputs.release }}
            type=raw,value=canary,enable=${{ github.event.action == 'canary' }}
            type=raw,value=bleeding,enable=${{ github.event.action == 'bleeding' }}
          flavor: |
            latest=${{ steps.stable-octoprint.outputs.release == github.event.client_payload.tag_name }}

I think it's too over-engineered to be useful outside of a specific use-case, and that's what my proposal was about.

I rather think that your workflow in the above example is too complex and does not reflect a nominal case where a user simply wants to release his Docker image following a standard GitFlow (push, tag). But again you can do that with v2 if you want.
If you have a use case where v2 would not be effective I would be happy to review its structure. Thanks again for your feedback!

Your example doesn't work.  The first entry in tags is just a raw tag, and isn't parsed at all.  The other entries presume there is a corresponding ref, which the workflow wouldn't have, and thus would fail.
let's say i get a github.event.client_payload.tag_name value of 2.0.0.  I want to produce the tags image:2.0.0, image:2.0, image:2.
I can't do this with the v1 implementation of your action, or the v2 implementation as its currently written.

Very few users that I know of use events with custom payloads

I can tell you've been in this business as long as I have, and undoubtedly have learned by now that this is a trap. :smirk:
Use cases where you'd want to use external payloads:

creating an organization specific customization of a base image. say to do things like modify environment variables or trusted certificates for the base image so that it works inside your organizations networks as a drop-in replacement for the base image
you maintain a fork of a product with your own customizations to the software
The container deployment of a product has it's own development lifecycle and is thus maintained in a different repo than the software it packages.

I rather think that your workflow in the above example is too complex and does not reflect a nominal case where a user simply wants to release his Docker image following a standard GitFlow

I think it would be very simple to maintain this behavior as the default, and implement the ability to parse type=raw in a future feature. If this is the case, v2.0 is just a migration to the action usage, and future versions would build on that with new features.

I also still wonder if type= is actually needed?  See my thoughts on that in my comment on the proposal thread

@LongLiveCHIEF

The first entry in tags is just a raw tag, and isn't parsed at all.

No it will be parsed as a type=raw if no type is defined: https://github.com/crazy-max/ghaction-docker-meta/tree/v2#typeraw
tags: |
  type=raw,value=mytag1
  # or
  type=raw,mytag1
  # or
  mytag1

let's say i get a github.event.client_payload.tag_name value of 2.0.0. I want to produce the tags image:2.0.0, image:2.0, image:2.

Agree about this one, semver will not be processed because it's not a tag event. I will improve this behavior.

Use cases where you'd want to use external payloads...

I'm fine with that, I'm going to make some changes in that direction.

Based on your latest comments, I believe my primary concerns are resolved at least for the moment, and I agree with this direction. At this point I'm going with :thumbsup: based on the docs.
While not a full replacement yet, it does give me a path to deprecate my own action as those improvements you mentioned are rolled out, and I'd be happy to contribute those features and join you as a maintainer for this project if you want that.

@LongLiveCHIEF

While not a full replacement yet, it does give me a path to deprecate my own action as those improvements you mentioned are rolled out

Sure we can bring enhancements in folllow up PRs. Just want with v2 a solid foundation to build on.

I'd be happy to contribute those features and join you as a maintainer for this project if you want that.

Ofc with pleasure!

@LongLiveCHIEF Ok now you can use a custom value for semver and match type.

@crazy-max https://github.com/crazy-max/ghaction-docker-meta/issues/55


Object.defineProperty() getters do not typecheck

This code does not typecheck:
/* @flow */

Object.defineProperty({}, 'foo', {
    get: function(): string {
        return '';
    }
});

I get the following error:
test.js:3
  3:    Object.defineProperty({}, 'foo', {
        ^ Object.defineProperty. Property not found in
  3:    Object.defineProperty({}, 'foo', {
                                         ^ object literal

Found 2 errors

Bump

is their a plan to support defineProperty getters and setters in the future?

Duplicate of https://github.com/facebook/flow/issues/285
I think.

Flow currently doesn’t support getters and setters as it would be very difficult to ensure your code is sound if every property access or assignment could be a function call. If you want to use getters/setters we recommend you use any to define the property and then hide the getter implementation or you use the object literal syntax:
const x = {
  get foo() { return '' },
};

@calebmer Thanks for the info, but I'm still unclear on how it would be possible to use defineProperty(). For example, the following code fails:
const x: {foo: any} = {foo: undefined};

Object.defineProperty(x, 'foo', {
    get: (): string => {
        return '';
    }
});

Error: test.js:5
     v--------------------------------
  5: Object.defineProperty(x, 'foo', {
  6:     get: (): string => {
  7:         return '';
  8:     }
  9: });
     -^ Object.defineProperty. Property not found in
                                     v
  5: Object.defineProperty(x, 'foo', {
  6:     get: (): string => {
  7:         return '';
  8:     }
  9: });
     ^ object literal

Found 1 error

It seems that flow isn't aware that the Object.defineProperty() method exists.
Also, the code sample you provided doesn't work either:
6:   get foo() { return '' },
   ^^^^^^^^^^^^^^^^^^^^^^^ get/set properties not yet supported

Although I'm guessing that this feature might not have made it into a release yet (I tested with 0.51.0).

Also, I understand what you're saying about the limitations of compile-time type checking when using getters and setters, and that makes sense. But I'm not asking flow to type-check properties defined in this way; I just want to be able to create them. If it's valid JS and I'm using any types, it should work, no?

@mbrowne Flow doesn't prevent to create it JS, unless you have a syntax error in the type annotations. Have you tried this to make the error go away?

@szdavid92 The $FlowFixMe comment suppresses the error - thanks for pointing that out.
But I still don't understand why this issue was closed. Is it intended that $FlowFixMe will always be required because flow will never support calling Object.defineProperty() without throwing errors? Even if it's low priority, I would expect flow to eventually recognize all the native methods of Object.

I experimented a bit more and found that it will recognize Object.defineProperty() when providing value but not with get or set properties. Actually, flow seems to only require that the value property is present - even this works even though it's not valid JS:
Object.defineProperty(x, 'foo', {
    value: undefined,
    get: (): string => {
        return 'foo';
    }
});

If getters and setters are the only issue here and there's no plan to support them, then perhaps using them with Object.defineProperty() should produce the same error as the object literal example above:
get/set properties not yet supported

But it sounds like maybe the object literal example was supposed to work? In that case it seems to me that doing the same thing with Object.defineProperty() should work too.
Sorry for all the separate comments, but I thought it was worth sharing the above.

@mbrowne also try: https://flow.org/en/docs/config/options/#toc-unsafe-enable-getters-and-setters-boolean to enable getters/setters.

The object literal syntax does work with unsafe.enable_getters_and_setters. See:
const x = {
  get foo(): string { return '' },
};

(x.foo: number);

https://flow.org/try/#0MYewdgzgLgBAHjAvDA3gKBjA5gU1gMxBAAoBKALhmgCcBLMLVGavAV2rBgHIuYBfADRo+AbjRpicAHSEQlMKwC2AIxzVSYoA

Thanks Caleb, I'll check that out. Also, I took a look at the other issue
mentioned above - https://github.com/facebook/flow/issues/285. That
describes the issue more precisely so I suppose if there are further things
to discuss we could do it there.
Sent from my Android phone
On Jul 22, 2017 3:24 PM, "Caleb Meredith"<EMAIL_ADDRESS>wrote:

The object literal syntax does work with unsafe.enable_getters_and_setters.
See:
const x = {
get foo(): string { return '' },
};
(x.foo: number);
https://flow.org/try/#0MYewdgzgLgBAHjAvDA3gKBjA5gU1g
MxBAAoBKALhmgCcBLMLVGavAV2rBgHIuYBfADRo+AbjRpicAHSEQlMKwC2AIxzVSYoA
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/facebook/flow/issues/1336#issuecomment-317205042, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AA1XTKx-9JNKWHj8ei4oCL7YkgEG-Ll_ks5sQkyBgaJpZM4HO64N
.


Thermostat keeps blinking after update on thermostat itself

Just noticed that the thermostat in Reacticz keeps blinking after it has been updated manualy on the thermostat itself.
This message was sent by MQTT.
domoticz/out {    "Battery" : 255,    "RSSI" : 12,    "dtype" : "Thermostat",    "id" : "0000001",    "idx" : 283,    "name" : "Thermostaat",    "nvalue" : 0,    "stype" : "SetPoint",    "svalue1" : "17.00",    "unit" : 0 }
The previous svalue1 was 20.00 and the thermostat in Reacticz keeps blinking at 20.0.
After a page refresh the right value of 17.0 is being showed.

I didn't think of that :) I'll try to fix it!

Thanks, it is working fine now.


Add btn-link button type

:+1:  Thanks for contributing!

New Links
Elm Package
https://github.com/JeremyBellows/elm-bootstrapify/releases/tag/9.0.0

Thank you! That was quick. 👍


Inconsistent Syntax Highlighting For Commands

We see a bunch of examples for commands that get colors at relatively arbitrary points. Seems like we're trying to interpret the Snippet as a programming language instead of a command or raw text?
E.g.

When you use the ``` markdown tags, you should specify the language so the correct highlighting is applied (the auto-detect isn't perfect). Use cmd for command-line commands, ie:

```cmd
echo Hello World
```

outputs
echo Hello World

Using

```
echo Hello World
```

outputs
echo Hello World

Okay, sounds like we just need to scrub the docs and add language specifiers in the right places. Tagged as "good first issue".

@chiaramooney Have you covered all the pages at this point? If your done passing over these, with your merged PR I think you can close this.

All pages covered.


Link to breaking change announcement in IDX10506

When an IDX10506 exception is thrown from JsonWebTokenHandler there's a good chance this is due to a breaking change to ASP.NET Core 8.
This adds a link to the breaking change announcement at https://learn.microsoft.com/en-us/dotnet/core/compatibility/aspnet-core/8.0/securitytoken-events
A few people have run into this already. See https://stackoverflow.com/questions/77515249/custom-token-validator-not-working-in-net-8 and https://developercommunity.visualstudio.com/t/ASPNET-Core-8:-Delegate-SignatureValida/10525320
@jennyf19

included in 7.3.1 release


Adding Documentation

Adding documentation to make the code more readable and easy to understand, especially for those who are inexperienced with python

Nikhil Girish Profile
@Typeaway14

hi can i be assigned to this issue if it is approved

Go ahead @nik2203

I would like to work on this

@nik2203 progress?

@nik2203 progress?

PR coming in around 10 mins. Doing my best to try to document the whole thing but it's harder than I expected. Done with documentation for most of the games and half of the main file, and the whole player file.


ARROW-15218: [C++] Add decimal support to the indices_nonzero compute function

Adds decimal support to the indices_nonzero compute function. This vector function returns the indices of an array that contains values !=0 or !=false.
This can be used in conjunction with existing functions that return a mask to get back the indices where the mask matches.
Have also added a small enhancement to the indices_nonzero tests to use a TYPED_TEST_SUITE for numeric primitives.

Amazing - thanks a mill @pitrou for helping me with this.


New effection

Motivation

Approach

Alternate Designs

Possible Drawbacks or Risks

TODOs and Open Questions

Learning

Screenshots

The following preview packages were published:

Name
Version
Install Command

@interactors/globals
1.0.0-new-effection.0
yarn add @interactors/globals@new-effection

@interactors/core
1.0.0-new-effection.0
yarn add @interactors/core@new-effection

@interactors/with-cypress
1.0.0-new-effection.0
yarn add @interactors/with-cypress@new-effection

@interactors/material-ui
5.0.0-new-effection.0
yarn add @interactors/material-ui@new-effection

Generated by @thefrontside/actions


Use the current primary instance disk size when creating replicas

TL;DR
When creating replicas, it is mandatory to specify the disk size, but that may have grown since the primary instance was created. When dynamically creating and destroying replicas, such as for test purposes, the primary may have grown in size since the initial creation, leading to errors.
Terraform Resources
No response
Detailed design
It may be possible to read the current instance disk size from the data object; I'm unsure here. If it is not possible, then implementing an experience like the one described below may not be possible.
Additional information
Consider the following scenario:

Terraform configuration includes a primary database and replica, both sized to 10 GB, with automatic disk resize enabled
A workload continuously loads the database, expanding it to 100 GB
If we destroy the replica and re-create it, then the same Terraform code that initially worked, no longer works

Since it is not possible to have a replica with a smaller disk size than the primary, and it is not generally useful to have a read-only replica with a larger disk size than the primary, it seems reasonable to default to the current disk size of the primary when creating the replica resource, at creation time.
It is not possible to implement this externally, because the postgresql submodule creates both the primary and the replica

I believe this issue is still valid

I believe this issue is still valid

I believe this issue is still valid

This issue is still valid

This issue is still valid


Decoding with time slots and with a confidence

Hello guys,
Is it possible in K2 to extract start time and end time of every decoded (hypothesized) word along with a recognition confidence of every word and every full utterance?
Thanks,
AlexG.

We already have the option to return timestamps during decoding.
I think it is also possible to get recognition confidence of every word.  What do you mean by the utterance level confidence?

What option should I use to print timestamps and the confidence of every word?
Utterance level confidence is less important, it should be something equivalent to average of all word confidences in the utterance excluding silences and UNKs.

Please see this PR #598. It returns the timestamp for every word.
It does not support showing confidence yet, but it should be easy to implement.

Hi, I tried to obtain confidences in Sherpa.

In this line, probs are cumulated. I tried to obtain sinlge probs instead of accumulated ones.
a. Define a variable log_probs_single which stores only ys_log_probs.
b. Define values_single which stores probs that are not accumulated.
c. add new_hyp.probs.push_back(exp(values_single[j]))
where new_hyp.probs is a float vector.

I also use accumulated probs where I only added  new_hyp.probs.push_back(exp(values_acc[j])).

Observations:

In case 1, I obtained good results. Example (a sample from librispeech):

token | timestamps | probs
[0] Tokens:
 when [0]  [0.999854]
 it [7]  [0.940455]
 was [11]  [0.579752]
 over [18]  [0.556515]
 the [25]  [0.732816]
 me [31]  [0.809726]
n [33]  [0.908284]
 are [37]  [0.539135]
 s [41]  [0.98156]
ti [42]  [0.992244]
ck [45]  [0.994111]
y [48]  [0.995734]
 if [51]  [0.999497]
 he [54]  [0.997224]
 could [57]  [0.988206]
 w [62]  [0.997363]
al [64]  [0.998087]
k [66]  [0.99982]
 a [69]  [0.972448]
 little [72]  [0.9689]
 way [80]  [0.979477]
 and [86]  [0.560109]
 when [92]  [0.941646]
 di [97]  [0.862076]
ck [100]  [0.828308]
y [103]  [0.638713]
 said [107]  [0.912162]
 he [116]  [0.999628]
 could [120]  [0.811822]
 they [130]  [0.927167]
 se [138]  [0.933728]
t [141]  [0.99964]
 out [145]  [0.993249]
 in [151]  [0.994451]
 the [154]  [0.690574]
 most [157]  [0.869845]
 friend [164]  [0.979762]
ly [169]  [0.982396]
 way [174]  [0.807062]
  [181]  [0.993485]
side [182]  [0.999703]
 by [189]  [0.802229]
  [195]  [0.630429]
side [196]  [0.999677]

[0] Words:
when [0 - 40]  [0.999854]
it [280 - 320]  [0.940455]
was [440 - 480]  [0.579752]
over [720 - 760]  [0.556515]
the [1000 - 1040]  [0.732816]
men [1240 - 1360]  [0.859005]
are [1480 - 1520]  [0.539135]
sticky [1640 - 1960]  [0.990912]
if [2040 - 2080]  [0.999497]
he [2160 - 2200]  [0.997224]
could [2280 - 2320]  [0.988206]
walk [2480 - 2680]  [0.998423]
a [2760 - 2800]  [0.972448]
little [2880 - 2920]  [0.9689]
way [3200 - 3240]  [0.979477]
and [3440 - 3480]  [0.560109]
when [3680 - 3720]  [0.941646]
dicky [3880 - 4160]  [0.776366]
said [4280 - 4320]  [0.912162]
he [4640 - 4680]  [0.999628]
could [4800 - 4840]  [0.811822]
they [5200 - 5240]  [0.927167]
set [5520 - 5680]  [0.966684]
out [5800 - 5840]  [0.993249]
in [6040 - 6080]  [0.994451]
the [6160 - 6200]  [0.690574]
most [6280 - 6320]  [0.869845]
friendly [6560 - 6800]  [0.981079]
way  [6960 - 7280]  [0.900273]
side [7280 - 7320]  [0.999703]
by  [7560 - 7840]  [0.716329]
side [7840 - 7880]  [0.999677]

[0] Text : when it was over the men are sticky if he could walk a little way and when dicky said he could they set out in the most friendly way  side by  side
[0] Confidence : 0.879481

but when I use a model that is trained for another language:
[0] Tokens:
  [0]  [0.763373]
n [1]  [0.54338]
or [8]  [0.872327]
ve [11]  [0.291157]
s [14]  [0.546196]
 a [16]  [0.406919]
u [18]  [0.503432]
va [22]  [0.565951]
 de [28]  [0.244049]
me [31]  [0.339609]
s [39]  [0.47594]
ta [43]  [0.480307]
ki [46]  [0.987201]
 fi [51]  [0.847064]
k [54]  [0.409512]
ır [56]  [0.556805]
t [58]  [0.715683]
  [60]  [0.361864]
v [61]  [0.805749]
o [62]  [0.874659]
k [65]  [0.70021]
er [67]  [0.319827]
  [70]  [0.843885]
l [71]  [0.277047]
o [73]  [0.7871]
ba [75]  [0.844455]
y [80]  [0.641547]
 he [88]  [0.464648]
me [90]  [0.635691]
n [94]  [0.700285]
t [98]  [0.502162]
 ise [103]  [0.651219]

[0] Words:
norves [0 - 600]  [0.563265]
auva [640 - 920]  [0.492101]
demestaki [1120 - 1880]  [0.505421]
fikırt  [2040 - 2440]  [0.578186]
voker  [2440 - 2840]  [0.708866]
lobay [2840 - 3240]  [0.637537]
hement [3520 - 3960]  [0.575696]
ise [4120 - 4160]  [0.651219]

[0] Text : norves auva demestaki fikırt  voker  lobay hement ise
[0] Confidence : 0.589036

I would except lower probs. The problem is that wrong model cannot capture true tokens, but captures some tokens that are actually in audio acoustically. And these captured tokens may come with high prob.
 I think missing tokens have to be punished in some way.

In case 2, probs become very low when a word that is not in the language appers. It can be a name from another language. It is actually what I except to obtain. However since probs are accumulated, probs of next words also comes very lower.

I think missing tokens have to be punished in some way.

Since we don't have ground truth available during decoding, it is hard to know when and where we have missed some tokens during decoding.


docker login - stop users from using urls with the protocol

I recently setup a private docker registry and was bitten for a few hours by this issue.
When using docker login it's possible to login to a private registry with a command like docker login https://myregistry.com. If you do this, the command will respond with success and the ~/.dockercfg file will be updated to include the new key/values. Despite this positive feedback a user will have inadvertently broken the docker client's authentication system.
When using docker push it appears impossible to use a repository/tag in the following format: docker push https://myregistry.com/myimage. The https:// is rejected as invalid. So, naturally, a user will next try to docker push myregistry.com/myimage but this too will be rejected, but quietly! No image will be pushed to the private repository and no error will be reported. It takes an inspection of the front-end proxy logs to see that the first put request the client made was 401 denied. This creates many questions for someone setting this up for the first time and it's not obvious where to begin troubleshooting.
After investigation, it looks like the docker client only attempts to find credentials in ~./dockercfg with the key matching a given repository. So even though we actually logged in earlier with https://myregistry.com the docker client will never find it, since it only looks for the key myregistry.com.
Deleting ./dockerfg and logging in again with the url myregistry.com (without the https://) will resolve this issue and allow us to authenticate. Great! Unfortunatley, since we removed the explicit https it's reasonable to fear that http will be used and passwords sent in clear text. Fortunately, after inspecting the source it appears only https will be used. Also great!
The docker client should have prevented me from using the protocol in the url from the beginning. I can see many ways to fix this: raise error if user uses the bad format, or make AuthConfig smarter, etc.
tldnr;
Docker client breaks when users log into private registries using a url formatted like "https://myregistry.com". It's fixed by re-logging in with a url like: "myregistry.com". The user should be not be allowed to use the bad url format.

closing @thedeeno please let me know if this is still a prob with the latest version


Fix some uninitialized fields in the msghdr structure

valgrind found some problems in km sendmsg() code.

Fix #1755 also fixes this and passes valgrind.
So abandoning this change.

These are actually better than #1755. Reopening.


Gobrew comparison bug

I already updated the gobrew and tested the new comparison function

Thanks for reporting.
that’s weird that it is picking up minor version for go.mod. Go.mod file only contains major versions.
Will check today.


build: Allow node to use more RAM during build

Changelog Entry
Description
Allow node to use more RAM during the npm run build step. I'm developing on an M1 Macbook Air with 16 GB of RAM. I've configured Orbstack which I use instead of Docker Desktop to let Docker use 12 GB of RAM. When building the Dockerfile Node only use around 2096 MB of RAM during the npm build step. After some troubleshooting I increased the limit to 4096 MB and the build completed successfully.
Not sure how this value is calculated or if it's fixed for everyone but you can check it with:
docker run --rm node:21-alpine3.19 node -e "console.log(v8.getHeapStatistics().heap_size_limit / 1024 / 1024 + ' MB');"

Changed

Increase the amount of RAM node can use during build

This change would have probably solved #4116.

Unsure if we have to modify our Dockerfile here, perhaps adding this info to our docs would be a better fit?

Unsure if we have to modify our Dockerfile here, perhaps adding this info to our docs would be a better fit?

Out of curiosity, what value do you get when running:
docker run --rm node:21-alpine3.19 node -e "console.log(v8.getHeapStatistics().heap_size_limit / 1024 / 1024 + ' MB');"

Just want to know how this value is set, whether it's dynamically set depending on the dev environment or statically set.
Yeah I could all this to the documentation too.

Unsure if we have to modify our Dockerfile here, perhaps adding this info to our docs would be a better fit?

Out of curiosity, what value do you get when running:
docker run --rm node:21-alpine3.19 node -e "console.log(v8.getHeapStatistics().heap_size_limit / 1024 / 1024 + ' MB');"

Just want to know how this value is set, whether it's dynamically set depending on the dev environment or statically set.
Yeah I could all this to the documentation too.

Running on linux host with 48GB RAM
Result: 2096 MB

Unsure if we have to modify our Dockerfile here, perhaps adding this info to our docs would be a better fit?

Out of curiosity, what value do you get when running:
docker run --rm node:21-alpine3.19 node -e "console.log(v8.getHeapStatistics().heap_size_limit / 1024 / 1024 + ' MB');"

Just want to know how this value is set, whether it's dynamically set depending on the dev environment or statically set.
Yeah I could all this to the documentation too.

Running on linux host with 48GB RAM
Result: 2096 MB

Interesting. Are you able to complete a Docker build with that amount?

I'm generally okay with merging this to dev if there won't be any issues with the ghrc image building process, were you able to test this part?

I'm generally okay with merging this to dev if there won't be any issues with the ghrc image building process, were you able to test this part?

Yeah it build fine on GitHub Actions. But speaking of CI/CD, I'm not fully sure if this will affect more powerful computers negatively (like CI/CD) because of this value being hardcoded as an environment variable. So as you said, might be more safe to explain in the docs?

Agreed, let's put it in our docs for now. Thanks!


added method to obtain flag's internal value

This adds additional functionality similar to bitflags where a consumer of the library can retrieve the raw internal value of the flag object. This is useful when creating our own internal representations of X bitmasks, as we can directly construct a bitmask from the raw value.

Is this really necessary? One can always use u32::from(instance) to get the bits out, but in some cases that u32 is wider than really necessary.
This seems to be something that bitflags does not offer. There, one has to use bits() instead. Uhm...
I'll defer to others on this change. My contra argument would be "already possible" and pro argument is "similarity to bitflags".

I've found the u32::from() interface to be somewhat awkward. I would support the bits() method for this reason.

Thank you for the support!
Additionally, I'd like to point out since this method is defined within a macro, this means that the generated bits() method returns the correct type for each flag, allowing the user to do type coercion only when necessary. So, a struct Flag(u32) will have its bits() method return u32, and a struct OtherFlag(u16) will have its bits() method return a  u16.
So, a user can call thebits() method and have it return the needed value each time:
let u32_flag: u32 = Flag(raw).bits();

let u16_flag: u16 = OtherFlag(raw).bits();

and do type coercion using as only when needed.


No ReleaseCandidate Version in Package Path

From #3:
Would it be possible to go for a package name only containing the target version (v3) and not also including the current working version (in this case rc02)? I don't see a benefit having the sub-package.
Only the additional effort on the consumer side - when fetching a new version - to update all imports. Also when we come to v3 final, the rc-package will be removed and the build within consumer projects will fail.
Originally posted by @Smudo99 in https://github.com/eclipse-digitaltwin/aas4j/pull/3#discussion_r909451254

It's a design decision in my view, which we should decide on as early as possible.
Pro ...v3.rc02...:

possible to load the 3.0.RC02 library and a future 3.0 at the same time

Con:

A lot (!) of classes need to be touched without functional changes
all implementing applications need to touch all their import statements

This is related to our previuos discussion whether we want to support the usage of multiple versions of the model within the same application.
I like this idea but maybe we are not considering all implications here, e.g. we would also need to have multiple "copies" of other components such as the de-/serializers as they will only work for a specific version of the model.
If we keep all the versions over time in the code base, the dependencies will become quite large over time.
Considering only final versions of the model an approach could be something like this
Release vX.Y.Z with namespace ...v3... used for all components, i.e. ...v3.model...., ...v3.dataformat.json..., ...v3.validator... etc.
Upon release of next final version v4 of specification
Release v(X+1).Y.Z with namespace ...v4... used for all components, remove all ...v4... namespaces
If an application wants to support v3 and v4 it can include dependencies with vX.Y.Z and v(X+1).Y.Z.
Downside would be that each time an application wants to upgrade to a new version of the model it has to update all imports.
Still the question remains how to handle RC-versions...

Agree with the prosal. Here is a draft to document decisions.

This commit has the change now in the code:
https://github.com/eclipse-digitaltwin/aas4j/commit/9c87ff166dc2097b6dbc6daf67cef36773af7539

Let's keep this issue open until we merge the update-to-rc02 branch.


V3: Deploying a single function with individual packaging does not work

The whole project deploys correctly, but when deploying individual functions I'm getting the following error:
Serverless: Bundling with Webpack...
Time: 6122ms
                                     Asset     Size  Chunks                    Chunk Names
functions/model/job_request/get_details.js  3.84 MB       0  [emitted]  [big]  functions/model/job_request/get_details
Serverless: Packaging function: job-request-get_details...

  Error --------------------------------------------------

  ENOENT: no such file or directory, open '<project-serverless>/.webpack/.serverless/job-request-get_details.zip'

I analyzed the problem and found the reason. In the individual packaging branch, the plugin uses now the standard paths for the packaging and does not alter Serverless internals anymore.
I'll fix it now and commit it to the branch. I'll let you know as soon as that is done, so that you can do an additional test.

@nicolasdonoso The issue should be fixed in #177 . Could you please check again with the v3.0.0-individual-packaging branch? I did some tests and it worked for me now.
As soon as this is verified I'll merge #177 into the v3 branch.

@HyperBrain I reinstalled the package from the branch:
npm install github:elastic-coders/serverless-webpack#v3.0.0-individual-packaging --save-dev
└──<EMAIL_ADDRESS>(git://github.com/elastic-coders/serverless-webpack.git#a9c7028f4011abfa19be7e91a54d1a4d4773ad30)

After doing that I get this error with everything as it was when it was working fine:
Serverless Error ---------------------------------------

  Serverless plugin "serverless-webpack" not found. Make sure it's installed and listed in the "plugins" section of your serverless config file.

I'll check right away

Indeed something went wrong with the commit.

@nicolasdonoso Fixed! I missed to commit one change 😃 .
Please remove node_modules/serverless-webpack and do a new npm install. Should work now.

@nicolasdonoso I merged the branch into the v3.0.0 branch. Please do your final tests there.

@HyperBrain just tested v3.0.0 and it work correctly, thanks for the help!

@nicolasdonoso Thanks for the feedback. I will close this issue then.

@HyperBrain v3.0.0 is working correctly when I deploy a function that has been already inside a complete deploy of the project. But every time I try to add a new function a get an error like the following one:
node_modules/.bin/sls deploy function -f notifier-progress

  Serverless Error ---------------------------------------

  The function "notifier-progress" you want to update is not yet deployed. Please run "serverless deploy" to deploy your service. After that you can redeploy your services functions with the "serverless deploy function" command.

The main fact to use single functions deployments is to avoid deploying everything, but this is only letting me add changes to functions that are already created and not to add new ones to my project with out have to deploy all.
Is this considered on the estable v3.0.0??


Object reference not set to an instance of an object

Hi, love the HPM and trying to add my app/drivers to it.  I'm getting the following error:
An error occurred: Object reference not set to an instance of an object.
I'm on Mac OSX Catalina and running the command:
./hpm repository-add-package --category=Convenience --description="An app and device drivers to control Luxor Lighting Controllers" --manifest=https://raw.githubusercontent.com/tagyoureit/hubitat-luxor/master/packageManifest.json --name="Luxor Lighting Controller" repository.json
My files:

packageManifest.json
partial repository.json

Not sure if I'm doing something wrong or if this is a bug.  TIA for the help!
UPDATE: I'm going to try to start fresh because I realized I needed the old ST directory structure for the Github integration there.  I saved a snapshot of this repo @ https://github.com/tagyoureit/hubitat-luxor/tree/hcm-issue.
UPDATE 2: I started from scratch with the SmartThings directory structure and ran into the same issue.  DOA at the moment.

Moved this issue to the other repo specifically for the tools.


Work on Heroku Logs to AWS S3 template

This is for Tirth, Nathantiel and Cem.
(More detailed description of the task here)
Deliverable

Hi @kiyoto,
Do we need to upload the screenshot? What do we need to do next?

your goal is to create Heroku templates akin to github.com/treasure-data/heroku-td-agent. I will update the description...


Upgrade to Pypy38 for TypedDict

This PR updates the pypy3 version for some framework tests from pypy37 to pypy38.  The frameworks use pypy38 for testing:

aiohttp
graphql
aioredis
redis

This was driven primarily due to TypedDict not working without typing_extensions.

Codecov Report

Merging #861 (a3cd2b8) into main (9883c2b) will increase coverage by 0.95%.
The diff coverage is n/a.

:exclamation: Current head a3cd2b8 differs from pull request most recent head 02e263b. Consider uploading reports for the commit 02e263b to get more accurate results

@@            Coverage Diff             @@
##             main     #861      +/-   ##
==========================================
+ Coverage   78.31%   79.26%   +0.95%
==========================================
  Files         183      183
  Lines       18336    18336
  Branches     3179     3179
==========================================
+ Hits        14359    14534     +175
+ Misses       3152     2959     -193
- Partials      825      843      +18

see 6 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


make the SetStatus more configurible and can be used by ocm-agent

What type of PR is this?
feature
What this PR does / why we need it?
Update the functions which will be used by ocm-agent to update the notification status.
Dependency of https://github.com/openshift/ocm-agent/pull/22
Which Jira/Github issue(s) this PR fixes?
Fixes #OSD-10340
Special notes for your reviewer:
Pre-checks (if applicable):

[ ] Tested latest changes against a cluster
[ ] Ran make generate command locally to validate code changes
[ ] Included documentation changes with PR

Codecov Report

Merging #31 (44575c6) into master (a190995) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #31   +/-   ##
=======================================
  Coverage   58.60%   58.60%
=======================================
  Files          22       22
  Lines        1133     1133
=======================================
  Hits          664      664
  Misses        411      411
  Partials       58       58

Impacted Files
Coverage Δ

...pis/ocmagent/v1alpha1/managednotification_types.go
83.09% <100.00%> (ø)

/lgtm


Add SLSA 3.4 verified history check

Design Plan:

Only the merge and the linear commits of the user-defined branch will be considered into the check.
If user does not supply branch name, the check will perform on all branches in the repository.
[Issue] Currently, the check is unable to check the 2FA, since Github API does not allow fetching user's 2FA status,

@Yao-Wen-Chang what do you mean by SLSA 3.4? Also, it would be useful if you can add references to the relevant documentation in the SLSA specification.

@Yao-Wen-Chang what do you mean by SLSA 3.4? Also, it would be useful if you can add references to the relevant documentation in the SLSA specification.

Thank you for the notification.
By the way, I find it impossible to retrieve whether user has followed 2FA through API request, but in other tool, they mentioned this function is implemented. Please check it out.


Import issue error with Unicode characters in title

 Issue by provegard
Friday Nov 01, 2013 at 13:25 GMT
Originally opened as https://github.com/IQAndreas/github-issues-import/issues/17

I had an issue with a typographic quote in the title, got:
Traceback (most recent call last):
  File "gh-issues-import.py", line 387, in <module>
    import_issues(issues)
  File "gh-issues-import.py", line 356, in import_issues
    print("Successfully created issue '%s'" % result_issue['title'])
  File "c:\python33\lib\encodings\cp850.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u201d' in position 44: character maps to <undefined>

 Comment by IQAndreas
Sunday Nov 10, 2013 at 20:21 GMT

Looks like some of Python's functions don't like Unicode characters that much (which is something I really should have tested, being Swedish myself).
Sorry for the delay, I will get on this ASAP!

 Comment by IQAndreas
Sunday Nov 10, 2013 at 20:54 GMT

I have been testing around, and it seems to handle unicode characters (and even unescaped backslashes) seem to import just fine on my system (Ubuntu 13.10), so I worry it may be an "operating-system specific" problem.
What operating system are you using, and do you have a link to the issue you tried to import?

 Comment by provegard
Sunday Nov 17, 2013 at 13:33 GMT

I'm using Windows. The issue is in a private repo, but I will try to replicate the issue with two public repos.

 Comment by IQAndreas
Thursday Nov 21, 2013 at 09:49 GMT

The issue is in a private repo, but I will try to replicate the issue with two public repos.

You are welcome to use the following issue:

https://github.com/IQAndreas/github-issues-import/issues/19

And then write to the following repo:

https://github.com/IQAndreas-testprojects/github-issues-import-example

With the following command:
$ python3 gh-issues-import.py --source IQAndreas/github-issues-import --target IQAndreas-testprojects/github-issues-import-example --issues 19 --no-config

I haven't tested, but I don't believe you need write-permissions on the target repo in order to open issues there (even with an automated script).

 Comment by IQAndreas
Sunday Apr 27, 2014 at 00:36 GMT

I am closing this issue for now since it seems to be resolved, but if you are still having problems with it, please leave a comment, and I will re-open this issue.

 Comment by vincenttran18
Wednesday Aug 13, 2014 at 18:00 GMT

I'm still having the same issue importing issues between two private repos. The repo being imported into is a fork from the repo being imported from. The issues being imported occasionally contain CJK characters.
Are you sure you wish to continue? [Y/n] Y
Traceback (most recent call last):
  File "C:\github-issues-import-master\gh-issues-import.py", line 445, in <module>
    import_issues(issues)
  File "C:\github-issues-import-master\gh-issues-import.py", line 407, in import_issues
    print("Successfully created issue '%s'" % result_issue['title'])
  File "C:\Python34\lib\encodings\cp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u201c' in position
87: character maps to <undefined>


Thoughts on using the *Async suffix for any functions that return a promise?

One thing I like to do in my JavaScript code is to add the word "Async" to the end of function names that return a promise.  This improves readability and lets people know at a glance that it returns a promise when intellisense is showing you the function name.
Example:
function getDataFromThesServer() {}

Would be:
function getDataFromThesServerAsync() {}

That is the standard at Microsoft for .NET libraries. But I think they need it and we don't in JavaScript.
They need it because they have a boat load of synchronous methods with async alternatives. The suffix helps them convey the similarity of intent without inventing a new method name root.
But it smacks of Hungarian notation which became passe when editors/IDEs began providing API help.
More to the point, we don't have the same potential for competing async and sync signatures. It happens of course, but not as often because all cross-process communications in JS world have to be async; there are no competing sync alternatives. Therefore, I think we can do without the extra writing and reading.
Moreover, it's pretty obvious looking at a method in use whether it is async or not.
You may well disagree. But I think the style guide should only recommend proven practices that are widely used and widely accepted ... which this one is not.
The style guide shouldn't prohibit it either which leaves you free to add it to your group's standards if you wish.

Here is a boring practical note. I have found that, with increasing depth of understanding, a greater percentage of all functions return promises. Adding the word Async to a significant fraction of all function in an application does not seem like a victory.

interesting discussion. to be clear, i dont do this and am not changing ... but I don't think its bad to do it. why? its a convention and if you think it reads better to you, give it a shot. but I bet after you get more and more code with this you may see what @kylecordes mentioned ... a lot of the fn's have it and you really dont need it.
I wont do it and I agree that its more common to see functions use promises than not, and practically everything is async :)


Update: Adopt Kaia SDK and add Fee Delegation to GMGN wallet - GMGN wallet

Description

Switching to using Kaia SDK ethers-ext rather than viem
Configure fee delegation for for send and message
Fixes to improve stability

Reference issue

#112

Category

Other

Great use of Kaia SDK

Updated on https://gmgn.app/ now
Code is here: https://github.com/blockcmd/gmgn
BUIDL: https://dorahacks.io/buidl/15990

Sweet. Works super well.
Approved for 1500 KLAY bounty


Add linting for from future import annotations

This __future__ behaviour will be made mandatory in 3.10, and for packages wanting to support both older pythons and 3.10  at the same time using this is best practice.
The changed behaviour relates to later evaluation of type annotations, so for fixing the test failures work in gen_type_stubs, robot core or pythonlibcore might be necessary as well as work on our end. https://www.python.org/dev/peps/pep-0563/

Too old.


The Blog cards are now evenly sized

🛠 Fixes Issue #535

Closes Issue #535

👨💻 Changes proposed

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

📷 Screenshots

Please review my PR @SauravMukherjee44

Hi @SauravMukherjee44 ,
Could you please review my PR?


Fix: Change docs build ref to main

Fix: Changes the reference for building the documentation from dev branch to main,

Let's wait for the tests to run - and if all succeeds, I can send the same PR to dev as well, to make sure that future work stays commpatible with this change in main.

Build succeeded. @Andrew-Clappison feel free to check out the PR. Thanks


M00-LAB00: QUICK_DESCRIPTION

Contact Details
<EMAIL_ADDRESS>What happened?
Exercise : Module 4 - Lab 1 - Exercise 1
Task:03
Step: 07
Description of issue: "Completed" bar is already gone. New name is "Query Details".
Lab
Lab 04 Exercise 01 Create queries for Microsoft Sentinel using Kusto Query Language (KQL)
Relevant screenshots

Following screenshot is the latest page. "Query Details" is bottom of the page.

Do you want to help us? 👏

[ ] Create a Pull Requestt by following this project's Contribution Guide

I made the fix and will update today. Thanks!


Add spacing before handle on comcol pages

Description
During final testing of 7.3, I discovered that Handles are being displayed on Community/Collection pages without a space before the link. Screenshot:

This tiny PR fixes that issue.

@artlowel and @atarix83 : This will be a super quick review for one of you.  Feel free to merge immediately if you are satisfied.

Merging as I've tested this and it works.


Pass an expression to a macro

It could be useful to pass an expression as an argument to a macro, instead of just passing a literal value (such as a literal string).  The following is an example of how this feature may be useful.
{% macro textarea(type, name, value, disabled=false) %}
  <textarea type="{{ type }}" name="{{ name }}" value="{{ value }}" hidden="{{ disabled }}">
{% endmacro %}

<html>
  ...
  <body>
    ...
    {% textarea("text", "comment", "Post your comment here...", {{ databaseEnabled }}) %}
  </body>
</html>

In the above example, the usage of textarea macro takes advange of this feature to only create a comment text area if the database is enabled for this web application.  Specifically, the comments section will only be hidden if databaseDisabled is set to true.

I think you can simply change it to:
{% textarea("text", "comment", "Post your comment here...", databaseEnabled) %}

Have you tried that?

Never mind.  It appears that @thomashunziker is correct.  The variable can be directly passed.


No backfilling to indicators from rtbars and resample data

Hi atreyu and thanks for this great adaptation for backtrader.
I am playing with your library for one of my projects that involve IB and backtrader, and I am not able to backfill my indicators (simple RSI and MACD) resampling data from rtbars to 1 min data. If no indicator is used, the library works perfectly. Is this supported?
Thanks!

Hi, this is solved, with a qcheck value higher (>0.5), this works prefectly. Thanks


rescue_from being sent to Rollbar

Does this gem not honor the rescue_from method? Because I have it in our code but for some reason, the exception is still being sent to Rollbar.

Hmm, yeah. I'll test it again today. Is there something we need to be aware when testing this on development with Rails?

Can I have a look at your config for Rollbar on rails?

Sure, although I'm not doing anything special.
config/initializers/rollbar.rb
Rollbar.configure do |config|
  # Without configuration, Rollbar is enabled in all environments.
  # To disable in specific environments, set config.enabled=false.

  config.access_token = 'eb2561a52efb4d4bba5a1d4b68be13e9'

  config.js_enabled = true
  config.js_options = {
    accessToken: '42a651bef0cb4eb5ba47e9a037747604',
    captureUncaught: true,
    payload: {
      environment: 'rollbar-rails-app'
    }
  }

  # Here we'll disable in 'test':
  if Rails.env.test?
    config.enabled = false
  end

  ...

  config.environment = ENV['ROLLBAR_ENV'].presence || Rails.env
end

I'm closing this for now. Feel free to reopen once you get more details on your issue.


bug: imports are duplicated in modules that contain multiple declarations in NgModule-based applications

Prerequisites

[X] I agree to follow the Code of Conduct.
[X] I have searched for existing issues that already report this problem, without success.

Codemod version
0.0.7
Current Behavior
When running the codemod against a project which is still NgModule-based, where a module contains multiple declarations, the imports are duplicated where they exist in each of the modules declarations
Expected Behavior
Imports of the standalone components should be unique within the module
Steps to Reproduce

Have a project that is still NgModule-based and that has a module with multiple declarations using the same ionic components
Run the codemod
Observe the resulting module has duplicated imports of the standalone ionic components

Code Reproduction URL
No response
Additional Information
No response

Hello @luke-rogers, are you able to provide a reproduction? If not a sample app, even an example of the module code with multiple declarations would be enough to test against with AST parsing and write a test to validate with.
Thanks!

This is a repository for reproduction.
https://github.com/r-yanyo/dup-ion-module


Adding new locales to android-l10n

After a few back and forths... this is ready for review 😁

I think the latest commit should have addressed the issues.

I don't understand what Travis is telling me about mdbooks, so won't  be able to fix this now.

Hopefully this is good to go now... 🥺


black produces long lines for top-level code

Operating system: Mac OS X 10.12.5
Python version: 3.6.1
Black version: 18.3a2
Does also happen on master: Yes
black produces long lines for top-level code that isn't in a function. For example, the following:
session = get_session()
result = session.query(models.Customer.id).filter(
    models.Customer.account_id == account_id,
    models.Customer.email == email_address,
).order_by(
    models.Customer.id.asc(),
).all()

becomes:
session = get_session()
result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all()

This is actually the same bug as #34 and thus it's also fixed :-)


Make table links consistent in behavior and look

Domain, Domain Items, Domain Types
Trail, Trail Url, Url Exractions
Team, Users
make table labels/button go to List view rather than JSON object view.  Standardize column center and behaviors.

tested and merged


compileSdkVersion is not specified. Please add it to build.gradle

Steps to reproduce
IDK how to tell you to reproduce, but i have create a new flutter project and moved my old project files to it
Actual results
This is my android/build.gradle file:
buildscript {
    ext.kotlin_version = '1.7.10' // Change here
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    }

    apply plugin: 'android'

}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

And this is app/build.gradle file:

plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

android {
    namespace "com.example.test_app"
    compileSdk 33
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.test_app
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
        minSdkVersion 24
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {}

I have also tried compileSdkVersion and i also tried to put it inside defaultConfig, but nothing helped
Logs

Logs

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> compileSdkVersion is not specified. Please add it to build.gradle

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 875ms
Error: Gradle task assembleDebug failed with exit code 1

Exited (1).

Flutter Doctor output

Doctor output

[✓] Flutter (Channel stable, 3.19.2, on macOS 14.3.1 23D60 darwin-x64, locale en-IQ)
    • Flutter version 3.19.2 on channel stable at /Users/yara/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision<PHONE_NUMBER> (4 weeks ago), 2024-02-27 16:51:22 -0500
    • Engine revision 04817c99c9
    • Dart version 3.3.0
    • DevTools version 2.31.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/yara/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15E204a
    • CocoaPods version 1.15.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.9+0-17.0.9b1087.7-11185874)

[✓] VS Code (version 1.87.0)
    • VS Code at /Users/yara/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.84.0

[✓] Connected device (4 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5556             • android-x64    • Android 14 (API 34) (emulator)
    • 3.14 (mobile)                • 00008101-001C688114E8001E • ios            • iOS 17.3.1 21D61
    • macOS (desktop)              • macos                     • darwin-x64     • macOS 14.3.1 23D60 darwin-x64
    • Chrome (web)                 • chrome                    • web-javascript • Google Chrome 123.0.6312.59

[✓] Network resources
    • All expected network resources are available.

• No issues found!

@YawarOsman
Can you try compileSdkVersion flutter.compileSdkVersion and see if it helps ?
Also, check https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply and see if it helps or not.

I tried it and not helped, both inside android{ and debugConfig{.
And also i have did exactly what the docs said but now this error shows off:
FAILURE: Build failed with an exception.

* What went wrong:
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher.
The following dependencies do not satisfy the required version:
project ':wakelock' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s

Here are my fiels:
 android/build.gradle:
allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

tasks.register("clean", Delete) {
    delete rootProject.buildDir
}

android/app/build.gradle:
plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

android {
    namespace "com.example.test_app"
    compileSdk flutter.compileSdkVersion
    ndkVersion flutter.ndkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = '1.8'
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.test_app"
        // You can update the following values to match your application needs.
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
        minSdkVersion flutter.minSdkVersion
        targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {}

setting.gradle:
pluginManagement {
    def flutterSdkPath = {
        def properties = new Properties()
        file("local.properties").withInputStream { properties.load(it) }
        def flutterSdkPath = properties.getProperty("flutter.sdk")
        assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
        return flutterSdkPath
    }()

        includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")

    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version "7.3.0" apply false
    id "org.jetbrains.kotlin.android" version "1.7.10" apply false
}

include ":app"

 ./gradlew --version
------------------------------------------------------------
Gradle 7.6.3
------------------------------------------------------------

Build time:   2023-10-04 15:59:47 UTC
Revision:     1694251d59e0d4752d547e1fd5b5020b798a7e71

Kotlin:       1.7.10
Groovy:       3.0.13
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          21.0.2 (Eclipse Adoptium 21.0.2+13-LTS)
OS:           Mac OS X 14.3.1 x86_64

The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher.
The following dependencies do not satisfy the required version:
project ':wakelock' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50

What's the gradle version you are using in your gradle-wrapper ? Try to have it (something like 7.6.3) and see if it helps.

distributionUrl=https://services.gradle.org/distributions/gradle-7.6.3-all.zip

project ':wakelock' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50

This is pointing to community package. Try to upgrade it to latest version if not already on it and re-run, which should ideally solve the issue.
See https://github.com/creativecreatorormaybenot/wakelock/issues/231#issuecomment-1961218080

I don't know what wakelock package has to do with that, but here is here is the result:
FAILURE: Build failed with an exception.

* What went wrong:
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher.
The following dependencies do not satisfy the required version:
project ':wakelock' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 5s
Error: Gradle task assembleDebug failed with exit code 1

And this is pubspec.yaml file:
name: ****

publish_to: "none" # Remove this line if you wish to publish to pub.dev

version: 0.1.0+1

environment:
  sdk: ">=3.0.5 <4.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  flutter_web_plugins:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2
  flutter_treeview: any
  dotted_border: any
  multi_dropdown: any
  calendar_date_picker2: any
  intl: any
  shared_preferences: any
  localization: any
  provider: any
  google_fonts: any
  font_awesome_flutter: any
  dropdown_search: any
  dropdown_textfield: any
  go_router: any
  http: any
  flutter_dotenv: any
  video_player: any
  data_table_2: any
  video_player_web: any
  firebase_auth: any
  firebase_core: any
  image_picker: any
  multiple_search_selection: any
  qr_flutter: any
  image_downloader_web: any
  syncfusion_flutter_charts: any
  crop_image: any
  image: any
  universal_html: any
  intl_phone_field: any
  location: any
  google_maps: any
  flutter_rating_bar: any
  flutter_colorpicker: any
  vsc_quill_delta_to_html: any
  chewie: ^1.7.5
  desktop_drop: any
  url_launcher: any
  flutter_svg: any
  phone_numbers_parser: any
  intl_translation: any
  syncfusion_flutter_datagrid: any
  syncfusion_flutter_core: any
  logger: any
  reorderable_grid: any
  two_dimensional_scrollables: any
  socket_io_client: any
  path_provider: any
  firebase_crashlytics: any
  package_info_plus: ^5.0.1
  flutter_native_splash: any
  cached_network_image: any
  wakelock: any

dev_dependencies:
  flutter_test:
    sdk: flutter
  build_web_compilers: ^4.0.5

  # The "flutter_lints" package below contains a set of recommended lints to
  # encourage good coding practices. The lint set provided by the package is
  # activated in the `analysis_options.yaml` file located at the root of your
  # package. See that file for information about deactivating specific lint
  # rules and activating additional ones.
  flutter_lints: ^3.0.0
  build_runner: ^2.3.3

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter packages.
flutter:
  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true
  # generate: ^0.2.1+3
  generate: true

  # To add assets to your application, add an assets section, like this:
  assets:
    - assets/images/
    - .env

  fonts:
    - family: Rudaw
      fonts:
        - asset: assets/fonts/Rudaw.ttf

The following adds the Cupertino Icons font to your application.
Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
flutter_treeview: any
dotted_border: any
multi_dropdown: any
calendar_date_picker2: any
intl: any
shared_preferences: any
localization: any
provider: any
google_fonts: any
font_awesome_flutter: any
dropdown_search: any
dropdown_textfield: any
go_router: any
http: any
flutter_dotenv: any
video_player: any
data_table_2: any
video_player_web: any
firebase_auth: any
firebase_core: any
image_picker: any
multiple_search_selection: any
qr_flutter: any
image_downloader_web: any
syncfusion_flutter_charts: any
crop_image: any
image: any
universal_html: any
intl_phone_field: any
location: any
google_maps: any
flutter_rating_bar: any
flutter_colorpicker: any
vsc_quill_delta_to_html: any
chewie: ^1.7.5
desktop_drop: any
url_launcher: any
flutter_svg: any
phone_numbers_parser: any
intl_translation: any
syncfusion_flutter_datagrid: any
syncfusion_flutter_core: any
logger: any
reorderable_grid: any
two_dimensional_scrollables: any
socket_io_client: any
path_provider: any
firebase_crashlytics: any
package_info_plus: ^5.0.1
flutter_native_splash: any
cached_network_image: any
wakelock: any

There are lots of community packages in it. I suggest you to remove all of them one by one and compile your app to see which one could be causing it. I think there's a conflict between the packages you are using and pubspec.lock.

The issue was the kotlin version in the setting.gradle i had to update it, and the cause of the triggering the error was desktop_drop  and location package.
Thank you for help.


Removing the physical optimizer AddMergeExec breaks the sorts

AFAIK physical optimizers should be entirely optional and having them or not must result in the same semantics.
However, removing AddMergeExec breaks THC 1 atm (all sorts, actually) with
Error: Internal("SortExec requires a single input partition")

Yes, agreed 👍 I think hash aggregates might have the same problem.
Back when I added the physical optimizers I added this rule to keep it functioning the same way, as this was contained in the optimization pass.
I believe there were some comments back then too that we should change it at some time.
I think we have a couple of options:

Add a MergeExec during planning time, wrap any input plan for a node that requires a single partition with MergeExec (to me it seems like the best option).
Use MergeExec inside the SortExec - this is something done in the HashJoinExec and CrossJoinExec too. I am not sure if that's really elegant as it "hides" nodes from the plan tree - so maybe that should move to the planner too.


fix: Switched image to latest release image to avoid breaks while developing

A lot of the front end folks are facing failures because of unmet expectations between release-client and prod-server. We should use the release image for development.

That should work for sure @sharat87 , we'll have to modify steps to have them build their docker compose files each time they pull from remote is all. The only thing is that some folks develop against release.app.appsmith.com and the rest use docker. Not sure if we'd want to maintain consistency instead.


Replace emulated_hue: with emulated_hue_hidden: for consistency.

Description:
I would like to propose the following code changes to standardize the way we choose to expose entity's to other platforms. This might be the wrong way to go about this but it is working in my situation.
Currently we use the following configs to get the same "hidden" result.
homeassistant:
  customize:
    light.demo:
      homebridge_hidden: true     # should we hide from homebridge?
      haaska_hidden: true              # should we hide from haaska?
      emulated_hue: false              # should we show to emulated_hue?

The code will continue to accept the current emulated_hue:  attribute but will also except emulated_hue_hidden as well.
Example entry for configuration.yaml (if applicable):
homeassistant:
  customize:
    light.demo:
      homebridge_hidden: true
      haaska_hidden: true
      emulated_hue_hidden: true

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies have been added to the REQUIREMENTS variable (example).
[x] New dependencies are only imported inside functions that use them (example).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Thanks!

Seems to me that the naming is confusing.
Emulated_hue_hidden: false implies it is not hidden. It should be true to hide.

Unless it's the documentation that needs to be a bit clearer. Specifying false is relatively pointless as it's the same as default

I agree with @nikc0069, this is very confusing. If one has expose_by_default set to false, the old way of enabling a light would have been setting emulated_hue to true. Now with emulated_hue_hidden, that would also be set to true? That makes no sense, it implies that I'm saying yes to it being hidden. Seems like haaska and emulated hue should have had their parameter changed to "visible" or "shown" so that it's clear as to what true or false does.

emulated_hue_hidden: false does exactly what it says - the entity is not hidden. That is the same notation we use for Homebridge.
Also, please don't use closed PRs for such discussions.


Refactor python parsing and variable handling

The filbert.js based python parser produced a very bad parse tree,
which required a very brittle interpreter to make any use of it.
It therefore broke often in unexpected ways.
As we have a server extension now, we can use the python "ast" module
to parse and unparse the code exactly as well as the actual python
parser can.
The string-based variable handling from before the change is brittle and error-prone.
This uses a rich representation for every variable, which makes the additional parsing step unnecessary.
I've tested the changes manually with some spot-checks and as far as I can tell everything still works as expected. This includes running a simple xpipes file.
But maybe there are things that implicitly depend on something I've changed where I didn't notice something breaking.
I've left a few TODO comments which I'd like to discuss, before we merge this.

Thanks @treo for the pull request. The refactored python parser working great. I can still drag and drop components to canvas. However, there a few things I noticed while reviewing.

There a duplicate of components in all folder except the 'General'
It also parsed .ipynb_checkpoints . When you edit a python script, it'll create a checkpoint folder. The python parser will also parse that folder. I assume this is related to parsing a folder beside "xai-" prefix.
Changing the config file doesn't affect the component library. Even if I delete/change the base path, the component library still working fine.


A better recommendation for a local build [skip ci].

This is the build I use to catch most problems before sending the code
for review.

This change is

/cc: @dopiera @manish-qlogic @roopak-qlogic @NettyH @rsimion because you may find this handy.


RespondActivityTaskFailed should take optional heartbeat progress

so that when activity failed, it could report the buffered progress.
Currently, this is work around by an extra round trip to RecordActivityHeartbeat and then RecordActivityTaskFailed.

Activity task fail / timeout event should also include activity progress if there is any.


Ensure a parent container is a Group before removing from its hash.

Hi. I found an issue when (ab)using sprites as containers.
Basically, placing sprites inside another one gives the impression of depth. I've been trying this concept for a while, making a 'platformer' where the player uses an escalator to go to another floor inside a building, the steps make the base layer, the handrail is above and the player character is placed "between" these.
The problem happens when adding the sprite to another group, effectively removing it from inside the sprite, raising the exception. Adding a check to confirm the container has an #hash avoids the issue.

Agreed, nice idea.


adding 'type' field in modules config to allow multiple

I want to define a second network module to print network speed
    "network": {
        "format-wifi": " {essid} {signalStrength}%",
        "format-ethernet": " {ifname}",
        "format-disconnected": "",
        "tooltip": false
    },
    "network-speed": {
        "format-wifi": " {bandwidthDownOctets}  {bandwidthUpOctets}",
        "format-ethernet": " {bandwidthDownOctets}  {bandwidthUpOctets}",

Problem is that, i can't name it network as it already exists, and if i rename it network-speed it won't be a network module.
It could be great to set type in modules
    "network-con": {
        "type": "network",
        "format-wifi": " {essid} {signalStrength}%",
        "format-ethernet": " {ifname}",
        "format-disconnected": "",
        "tooltip": false
    },
    "network-speed": {
        "type": "network",
        "format-wifi": " {bandwidthDownOctets}  {bandwidthUpOctets}",
        "format-ethernet": " {bandwidthDownOctets}  {bandwidthUpOctets}",
    },
    "system-tray": {
        "type": "tray",
        "icon-size": 18
    },
    "vpn": {
        "type": "custom",
        "format": " vpn",
        "interval": 5,
        "exec" : "pgrep openvpn"
    },

You can already create multiple same modules by defining them with network#speed per example


Fix Textarea Quill check

Overview

This check wasn't handling all cases, and didn't prevent the exception anyways.
Checklist

[x] tests/ added or updated
[x] CHANGELOG.md's Unreleased section is updated
[x] Documentation is updated

coverage: 92.529% (+0.2%) from 92.374%
when pulling d25bc776b6b9f21199c8a0468ffacd51d48a6431 on quill-check
into f3a2a48921f61495e353acaeeee13d761d2bc3bc on develop.