Negative counts in code coverage data

https://source.cloud.google.com/results/invocations/05d07cca-54c3-49bc-a4ce-df66ac31ce61/targets
Merging coverage data....................................................................................................................................................................................................................................................................................................................................................................................................................................
lcov: WARNING: negative counts found in tracefile cmake-out/home/ci-fedora-install-31-coverage/.cache/bazel/_bazel_kbuilder/a7ecd8237744645c5d189c197108d6d2/execroot/com_github_googleapis_google_cloud_cpp/bazel-out/k8-fastbuild/testlogs/google/cloud/spanner/integration_tests/rpc_failure_threshold_integration_test/coverage.dat
lcov: WARNING: negative counts found in tracefile cmake-out/home/ci-fedora-install-31-coverage/.cache/bazel/_bazel_kbuilder/a7ecd8237744645c5d189c197108d6d2/execroot/com_github_googleapis_google_cloud_cpp/bazel-out/k8-fastbuild/testlogs/google/cloud/spanner/integration_tests/client_stress_test/coverage.dat
lcov: WARNING: negative counts found in tracefile cmake-out/home/ci-fedora-install-31-coverage/.cache/bazel/_bazel_kbuilder/a7ecd8237744645c5d189c197108d6d2/execroot/com_github_googleapis_google_cloud_cpp/bazel-out/k8-fastbuild/testlogs/google/cloud/storage/tests/object_file_multi_threaded_test/coverage.dat
DONE in 57.043 seconds\n
Uploading code coverage to codecov.io...DONE in 130.386 seconds\n

/cc: @devjgm the code coverage data is not visible yet, and there is no reported error for this commit, so maybe it is harmless and the coverage will upload in a second, or maybe not harmless.

I believe this is a benign issue that results from, what looks like, a known bug in gcc's gcov output. lcov sees this negative count and fixes it by replacing the negative number with 0. But it still warns.
However, our "merged" lcov file will have zeros instead of negative counts, so it should not affect anything that we upload to codecov.io. (even if it did, I believe codecov.io handles negative counts just like lcov does.)
So I believe this is all working as intended, other than the annoying warning.


[move source language] Add default aliases for standard library

Adds aliases for "standard library" modules
Adds aliases for standard library types, Option and FixedPoint32
TODO ideally this should be configurable somehow

Motivation
It's real annoying to have to write use 0x1::Vector and use 0x1::Signer and use 0x1::Errors everywhere
Test Plan

new tests

It's definitely kind of a hack, but a really neat hack...
The idea and implementation is sound, the hack is just in the hardcoding of Diem modules

It's definitely kind of a hack, but a really neat hack...
The idea and implementation is sound, the hack is just in the hardcoding of Diem modules

I like this! A couple questions:

Are these module names reserved? e.g., what happens if we have two 0x1::Errors modules? Or if I have an 0x2::Errors module and import that? Is it the same as today?
What if we add another resource/type to one of these modules? Will this new type be automatically picked up? Does name resolution/errors behave in the same way with them?
2a. If ^ what if I want to alias a type from the stdlib? i.e., I've written my code and use a currently unused typename Foo, but then we add a Foo type to the Errors stdlib module, do I have to change my code? Or is there some way of explicitly turning off this import?

I like this! A couple questions:

Are these module names reserved? e.g., what happens if we have two 0x1::Errors modules? Or if I have an 0x2::Errors module and import that? Is it the same as today?
What if we add another resource/type to one of these modules? Will this new type be automatically picked up? Does name resolution/errors behave in the same way with them?
2a. If ^ what if I want to alias a type from the stdlib? i.e., I've written my code and use a currently unused typename Foo, but then we add a Foo type to the Errors stdlib module, do I have to change my code? Or is there some way of explicitly turning off this import?

This wouldn't do anything really. Or nothing new. The check is just "If 0x1::Errors exists add an implicit alias use 0x1::Errors as Errors. Implicit aliases
Autoimporting types from the stdlib might not be a bad idea, but for now its hard coded
2a) There are no issues with your own Foo it will shadow the stdlib import and you will never know.

This wouldn't do anything really. Or nothing new. The check is just "If 0x1::Errors exists add an implicit alias use 0x1::Errors as Errors. Implicit aliases
Autoimporting types from the stdlib might not be a bad idea, but for now its hard coded
2a) There are no issues with your own Foo it will shadow the stdlib import and you will never know.

Sounds good! Only concern I might have is with 2a since that could create some ambiguity/non-obvious behavior around which Foo is being used possibly (i.e., we now have some kind of binding precedence to these identifiers).
What would you think of: in the 2a case it would be a hard error if there's a name conflict, but we would respect aliases if you imported the stdlib module directly? For example:
resource struct Foo { ... }

=> ERROR
use 0x1::Errors::{Foo as ErrorsFoo};
...
resource struct Foo { ... }

=> OK

Sounds good! Only concern I might have is with 2a since that could create some ambiguity/non-obvious behavior around which Foo is being used possibly (i.e., we now have some kind of binding precedence to these identifiers).
What would you think of: in the 2a case it would be a hard error if there's a name conflict, but we would respect aliases if you imported the stdlib module directly? For example:
resource struct Foo { ... }

=> ERROR
use 0x1::Errors::{Foo as ErrorsFoo};
...
resource struct Foo { ... }

=> OK

I'm not sure about your examples, but both of them would not error
think about it as if someone had written
use 0x1::Errors::Foo;
address 0x42 {
module  M {
  ...
  // Foo resolves to 0x1::Errors::Foo
}
}

use 0x1::Errors::Foo;
address 0x42 {
module  M {
  // Foo resolves to 0x42::M::Foo;
  resource struct Foo {} // shadows outer use
}
}

You can't actually write this today, but it works that way

I'm not sure about your examples, but both of them would not error
think about it as if someone had written
use 0x1::Errors::Foo;
address 0x42 {
module  M {
  ...
  // Foo resolves to 0x1::Errors::Foo
}
}

use 0x1::Errors::Foo;
address 0x42 {
module  M {
  // Foo resolves to 0x42::M::Foo;
  resource struct Foo {} // shadows outer use
}
}

You can't actually write this today, but it works that way

I guess what I'm saying is that today if I have the following two modules:
address 0x2 {
module A {
    struct Foo {}
    public fun x() { }
}
}

address 0x2 {
module B {
    use 0x2::A::{Self, Foo};

    struct Foo {}

    public fun y(_x: Foo) { A::x() }
}
}

This results in the following error
   ┌── src/modules/B.move:5:12 ───
   │
 5 │     struct Foo {}
   │            ^^^ Duplicate module member or alias 'Foo'. Top level names in a namespace must be unique
   ·
 3 │     use 0x2::A::{Self, Foo};
   │                        --- Previously defined here
   │

What I'm saying is that if the types in the  Errors module are implicitly opened up, I would prefer if name conflicts between a type in Errors and the using module resulted in an error similar to this as opposed to an implicit shadowing of the name.
The question then is: if you find yourself in this situation how should you be able to get out of it? My proposal is that you can by explictly useing the module (and its members) and renaming away the name conflict just as you would in this case.

I guess what I'm saying is that today if I have the following two modules:
address 0x2 {
module A {
    struct Foo {}
    public fun x() { }
}
}

address 0x2 {
module B {
    use 0x2::A::{Self, Foo};

    struct Foo {}

    public fun y(_x: Foo) { A::x() }
}
}

This results in the following error
   ┌── src/modules/B.move:5:12 ───
   │
 5 │     struct Foo {}
   │            ^^^ Duplicate module member or alias 'Foo'. Top level names in a namespace must be unique
   ·
 3 │     use 0x2::A::{Self, Foo};
   │                        --- Previously defined here
   │

What I'm saying is that if the types in the  Errors module are implicitly opened up, I would prefer if name conflicts between a type in Errors and the using module resulted in an error similar to this as opposed to an implicit shadowing of the name.
The question then is: if you find yourself in this situation how should you be able to get out of it? My proposal is that you can by explictly useing the module (and its members) and renaming away the name conflict just as you would in this case.

You would not get that error, and should not get that error. That error only occurs if you declare the same name in the same scope, as there is no way to resolve which one you meant.
The shadowing is the behavior we already perform for scopes with use. Nothing new there. Scopes can shadow declarations from previous scopes. In this case, it is clear what was intended
use 0x42::A as Foo;
fun ex() {
  Foo::bar(); // A::bar();
  {
    use 0x42::B as Foo;
    Foo::bar(); // B::bar();
  }
}

this is similar to the example I showed
use 0x1::Errors::Foo; // the compiler is essentially inserting this alias at the top level outside of all modules
address 0x42 {
module  M {
  // Foo resolves to 0x42::M::Foo;
  resource struct Foo {} // shadows outer use
}
}

I understand that it might be confusing that you are silently shadowing an alias that wasn't declared anywhere.
In the future, I think these aliases should be set up in some config file (maybe with a default setting that we have here). That config will be the sort of explicit declaration.

You would not get that error, and should not get that error. That error only occurs if you declare the same name in the same scope, as there is no way to resolve which one you meant.
The shadowing is the behavior we already perform for scopes with use. Nothing new there. Scopes can shadow declarations from previous scopes. In this case, it is clear what was intended
use 0x42::A as Foo;
fun ex() {
  Foo::bar(); // A::bar();
  {
    use 0x42::B as Foo;
    Foo::bar(); // B::bar();
  }
}

this is similar to the example I showed
use 0x1::Errors::Foo; // the compiler is essentially inserting this alias at the top level outside of all modules
address 0x42 {
module  M {
  // Foo resolves to 0x42::M::Foo;
  resource struct Foo {} // shadows outer use
}
}

I understand that it might be confusing that you are silently shadowing an alias that wasn't declared anywhere.
In the future, I think these aliases should be set up in some config file (maybe with a default setting that we have here). That config will be the sort of explicit declaration.

I understand that it might be confusing that you are silently shadowing an alias that wasn't declared anywhere.

+1 to the concern on this. We might also think about banning shadowing of aliases altogether. Adding a single innocent-looking  use that sneakily changes the meaning of your entire program seems like a bad thing from a security/auditing perspective.

I understand that it might be confusing that you are silently shadowing an alias that wasn't declared anywhere.

+1 to the concern on this. We might also think about banning shadowing of aliases altogether. Adding a single innocent-looking  use that sneakily changes the meaning of your entire program seems like a bad thing from a security/auditing perspective.

I love the feature but hate the hardcoded hack in the compiler. Can we at least sketch out a plan for a proper way to configure this from something in the Diem Framework before we go ahead with this?

I love the feature but hate the hardcoded hack in the compiler. Can we at least sketch out a plan for a proper way to configure this from something in the Diem Framework before we go ahead with this?

I understand that it might be confusing that you are silently shadowing an alias that wasn't declared anywhere.

+1 to the concern on this. We might also think about banning shadowing of aliases altogether. Adding a single innocent-looking use that sneakily changes the meaning of your entire program seems like a bad thing from a security/auditing perspective.

Agreed! I think allowing shadowing is generally something we should examine. Implicit/silent shadowing to me seems like it would go against a lot of what we want in Move source and probably something we don't want (knowing exactly what data structures, functions etc. you're using from the code in the Move module is incredibly important IMO).

I understand that it might be confusing that you are silently shadowing an alias that wasn't declared anywhere.

+1 to the concern on this. We might also think about banning shadowing of aliases altogether. Adding a single innocent-looking use that sneakily changes the meaning of your entire program seems like a bad thing from a security/auditing perspective.

Agreed! I think allowing shadowing is generally something we should examine. Implicit/silent shadowing to me seems like it would go against a lot of what we want in Move source and probably something we don't want (knowing exactly what data structures, functions etc. you're using from the code in the Move module is incredibly important IMO).

I understand that it might be confusing that you are silently shadowing an alias that wasn't declared anywhere.

+1 to the concern on this. We might also think about banning shadowing of aliases altogether. Adding a single innocent-looking use that sneakily changes the meaning of your entire program seems like a bad thing from a security/auditing perspective.

I agree, allowing shadowing is generally something we should examine. Implicit/silent shadowing to me seems even harder to understand, and (IMO) seems like it would go against a lot of what we want in Move source and probably something we don't want (knowing exactly what data structures, functions etc. you're using from the code in the Move module is incredibly important).

As discussed yesterday, I would disagree with the characterization that this is implicit/silent shadowing. It is very loud and explicit shadowing. The only possible way to shadow it, is by declaring a new name inside your module. It is then very clear which item it refers to, as you just declared the name.
Here are the possible cases with Option the module and Option the struct type as an example

Declare your own module Option inside it will refer to 0xYOUR_ADDR::Option. The declaration shadowed 0x1::Option as Option
Declare you own alias use 0xADDR::MODULE as Option. This use shadows 0x1::Option as Option
Declare your own type struct Option { ... }. This declaration shadows 0x1::Option::Option as Option
Declare your own alias use 0xADDR::MODULE::TYPE as Option. This use shadows 0x1::Option::Option as Option

There is no implicit shadowing here. The only implicit is the top level use 0x1::Option and use 0x1::Option::Option

Talking about shadowing as its own thing is a separate issue. While I see possible confusion coming from shadowing as a general concept (whether it be with modules, functions, structs, or locals), I think it is a necessary evil that is left up to the programmers discretion.

For modules, functions, and/or structs: I feel that in some cases an alias can be confusing and some cases it will be very clear and obvious. It is up to the programmer and the reviewers to ensure the code makes sense. Overall footguns are minimal as any new name is explicitly introduced. In that file, the programmer just needs to search for the name, and they will find the declaration of that alias or type.
For local variables: Classically, there are more concerns about footguns because a programmer might (1) shadow a local and then (2) mutate that local and (3) be confused when the mutation isn't seen in the outer scope. This obviously can still happen but we have some tools in the language already that mitigate this risk

The compiler warns on unused assignments
Move's type system will error if any resource values are unused. This is the really dangerous case for accidentally shadows and the type system will prevent it from happening (in most cases)

I understand that it might be confusing that you are silently shadowing an alias that wasn't declared anywhere.

+1 to the concern on this. We might also think about banning shadowing of aliases altogether. Adding a single innocent-looking use that sneakily changes the meaning of your entire program seems like a bad thing from a security/auditing perspective.

I agree, allowing shadowing is generally something we should examine. Implicit/silent shadowing to me seems even harder to understand, and (IMO) seems like it would go against a lot of what we want in Move source and probably something we don't want (knowing exactly what data structures, functions etc. you're using from the code in the Move module is incredibly important).

As discussed yesterday, I would disagree with the characterization that this is implicit/silent shadowing. It is very loud and explicit shadowing. The only possible way to shadow it, is by declaring a new name inside your module. It is then very clear which item it refers to, as you just declared the name.
Here are the possible cases with Option the module and Option the struct type as an example

Declare your own module Option inside it will refer to 0xYOUR_ADDR::Option. The declaration shadowed 0x1::Option as Option
Declare you own alias use 0xADDR::MODULE as Option. This use shadows 0x1::Option as Option
Declare your own type struct Option { ... }. This declaration shadows 0x1::Option::Option as Option
Declare your own alias use 0xADDR::MODULE::TYPE as Option. This use shadows 0x1::Option::Option as Option

There is no implicit shadowing here. The only implicit is the top level use 0x1::Option and use 0x1::Option::Option

Talking about shadowing as its own thing is a separate issue. While I see possible confusion coming from shadowing as a general concept (whether it be with modules, functions, structs, or locals), I think it is a necessary evil that is left up to the programmers discretion.

For modules, functions, and/or structs: I feel that in some cases an alias can be confusing and some cases it will be very clear and obvious. It is up to the programmer and the reviewers to ensure the code makes sense. Overall footguns are minimal as any new name is explicitly introduced. In that file, the programmer just needs to search for the name, and they will find the declaration of that alias or type.
For local variables: Classically, there are more concerns about footguns because a programmer might (1) shadow a local and then (2) mutate that local and (3) be confused when the mutation isn't seen in the outer scope. This obviously can still happen but we have some tools in the language already that mitigate this risk

The compiler warns on unused assignments
Move's type system will error if any resource values are unused. This is the really dangerous case for accidentally shadows and the type system will prevent it from happening (in most cases)

I love the feature but hate the hardcoded hack in the compiler. Can we at least sketch out a plan for a proper way to configure this from something in the Diem Framework before we go ahead with this?

I think at some point in the future we will need a bunch of different top-level names introduced. Especially if we want named addresses, something like address Diem = 0x1;. These sort of names will be top-level and shared across any files the project consumes.
Perhaps these sort of top level names will be restricted to being used in a config file of sorts.
In that config file, we could allow top-level use declarations. Which will work exactly as the hack works today.
Concretely, the hack is equivalent to doing
use 0x1::Option::{Self, Option}
...
address MYADDR { module MYCODE { ... } ... }

where the use declaration is outside of any address/script block.
TLDR
So what is missing is

Some notion of top level aliases/configs
Parsing said top level aliases

In other words, this is adding no new mechanisms, only a hacked place where existing mechanisms can't really be used.

I love the feature but hate the hardcoded hack in the compiler. Can we at least sketch out a plan for a proper way to configure this from something in the Diem Framework before we go ahead with this?

I think at some point in the future we will need a bunch of different top-level names introduced. Especially if we want named addresses, something like address Diem = 0x1;. These sort of names will be top-level and shared across any files the project consumes.
Perhaps these sort of top level names will be restricted to being used in a config file of sorts.
In that config file, we could allow top-level use declarations. Which will work exactly as the hack works today.
Concretely, the hack is equivalent to doing
use 0x1::Option::{Self, Option}
...
address MYADDR { module MYCODE { ... } ... }

where the use declaration is outside of any address/script block.
TLDR
So what is missing is

Some notion of top level aliases/configs
Parsing said top level aliases

In other words, this is adding no new mechanisms, only a hacked place where existing mechanisms can't really be used.

@tzakian @sblackshear I reduced the aliases introduced to just Option, Vector, and Signer
@bob-wilson I updated the design a bit to be more conducive to allowing configuration later

@tzakian @sblackshear I reduced the aliases introduced to just Option, Vector, and Signer
@bob-wilson I updated the design a bit to be more conducive to allowing configuration later

Old PR, feel free to re-open.


White label login options screen - Experimental

BASH-4
Summary
This PR allows for the login options page to be white labled via the override.json and by overriding or adding to the themes.json. Each login option can be turned off via the override.json. If the property for the login option is set to false, the server config is then checked to see if the login option needs to be displayed. The following properties were added to the config.json:
HideEmailLoginExperimental - Default is false.
Set to true to hide the email login option
HideLDAPLoginExperimental - Default is false.
Set to true to hide the LDAP login option
HideSAMLLoginExperimental - Default is false.
Set to true to hide the SAML login option
The UI can also be modified according to different properties within the theme.json. The following properties can be used to the change the colors of the UI elements:
EmailLoginButtonColor - Default is the theme.linkColor
EmailLoginButtonBorder - Default is null
EmailLoginButtonText - Default is white
LDAPLoginButtonColor - Default is the theme.linkColor
LDAPLoginButtonBorder - Default is null
LDAPLoginButtonText - Default is white
SAMLLoginButtonColor - Default is the theme.linkColor
SAMLLoginButtonBorder - Default is null
SAMLLoginButtonText - Default is white
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] Added or updated unit tests (required for all new features)
[ ] All new/modified APIs include changes to mattermost-redux (please link)
[ ] Has UI changes
[ ] Includes text changes and localization file updates

@jarredwitt will coordinate modifications

@jarredwitt don't forget to include that this feature is experimental

@enahum colors changed to experimental

The theme colour stuff makes sense, but why are we adding these extra switches for the different login options? I can't think of a scenario where you wouldn't want those matching what are provided by the server

@hmhealey we discussed this a while back and this is a specific case for Shift that we are going to allow to live in the app for now

Marked as awaiting PR in case the server changes require any further changes. 0/5 if we actually merge it now though.


Bug Report for Tuneful: Application Crash Due to Unhandled Exception

Issue Summary:
The Tuneful application experiences a crash due to an unhandled SIGABRT signal triggered by an unrecognized selector exception. The specific error in the crash report is:
Error Detail:
-[NSAppleEventDescriptor CGImageForProposedRect:context:hints:]: unrecognized selector sent to instance 0x6000030b2400
Steps to Reproduce:

Open Tuneful.
Select and play one of the specific songs that have been identified to cause the crash (crash occurs when playing specific songs so I can reproduce it at will).
Observe that the application crashes consistently during the playback of these particular songs, indicating the issue is linked to their metadata or artwork.

Key Observations:

Unrecognized Selector:
The application crash is caused by the method CGImageForProposedRect:context:hints: being called on an object of type NSAppleEventDescriptor, which does not implement this method.

Potential Trigger:
This issue seems to be related to the handling of song metadata or artwork, such as album covers or embedded graphical elements.

Crash Location:
The crash occurs on the main thread, suggesting that it pertains to a UI component or a fundamental part of the application's logic.

Console Log:
Tuneful-2024-12-04-114002.txt

Does it happen when changing songs? Could you post steps to reproduce?

Steps to Reproduce:

Open Tuneful.
Select and play one of the specific songs that have been identified to cause the crash (crash occurs when playing specific songs so I can reproduce it at will).
Observe that the application crashes consistently during the playback of these particular songs, indicating the issue is linked to their metadata or artwork.

I guess it is technically when the song is changing. For example, as soon as I start playing 1901 by Phoenix, Tuneful crashes.

Ahh sorry totally missed that, very interesting behaviour. I refactored and optimised the metadata fetching behaviour for the next release (e.g. it defaults to placeholder albumart if no albumart is found) so that might fix the issue. I just exported the newest version, you can try out if it fixes the issue (I dont use Apple Music and it works for Spotify):
Tuneful.zip

Tried the new version, but no dice. New crash report attached.
Tuneful-2024-12-04-131328.txt

Also, I loved that the menu bar icon became the app icon of the music player you were using when music wasn't playing. 0.9.0 doesn't seem to have that anymore.

I'm going to go through my Apple Music library and try to figure out what the common thing is about the songs that make Tuneful crash versus the songs that don't.

@martinfekete10 I think I have found the common theme between the songs that are causing Tuneful to crash. It seems that artwork files that are png cause Tuneful to crash. Every song that has caused Tuneful to crash is from a song that is part of my library and the album artwork is a png file. Songs from my library where the album artwork is a jpg file have no problems.
Is this something that Tuneful can account for? Or should I get started updating my album artwork 🙂

I just bought Apple Music to test this out and it doesn't crash for 1901 by Phoenix for me. Do you have custom album artworks set for some songs?

@martinfekete10 I think I have found the common theme between the songs that are causing Tuneful to crash. It seems that artwork files that are png cause Tuneful to crash. Every song that has caused Tuneful to crash is from a song that is part of my library and the album artwork is a png file. Songs from my library where the album artwork is a jpg file have no problems.
Is this something that Tuneful can account for? Or should I get started updating my album artwork 🙂

Wasn't sure if you saw this ☝ Yes, some of my music in my library is music I added myself and some of the older stuff has artwork with png files. Tuneful does not like those.


M3-3087 Update Resize workflow

Description
This updates the plan selection under the Linode Resize workflow.
Type of Change

Non breaking change ('change')

Note to Reviewers
This also includes work from https://github.com/linode/manager/pull/5359 (hence all the commits) but both should be merged together/fast-follow.
Todo:

[x] fix tests (Thanks @alioso !!)

@Jskobos thanks for reviewing! I disabled click for current plan entirely, and Jay and I reworked the display of the current plan to be more clear. I haven't found a solution for the double tabbing, I can create a follow up ticket to address that.


Cannot open any webpages (linux version)

Their is a logical error code for opening webpages. The problem is in parsing the url link. It omits the 'dot' before 'com' and searches for the wrong address.
For eg. it opens 'facebookcom' instead of facebook.com.

@abhimanyuthakre , please provide the essential insight here :smile:

Comment out 199th line of benji.py and it will work fine.

that fixed it! @abhimanyuthakre Can you just tell me what did that sub() function do?

sub() stands for substitute. It substituted the characters in the first parameter with the character mentioned in second parameter. This was the cause behind the removal of '.' from 'facebook.com'

Ok thanks a lot.

You're welcome


Add URLs directly

ipfs add in the cli can add from the filesystem (makes sense, given the cli context). I think the js api on the browser should be able to add from the web (makes sense, given the web context).
So, i would like this to work:
ipfs.add('http://i.imgur.com/YTSpZdP.gif', function(err, res) { ... })

I think it should work on Node, too, given that node is js and already straddles the boundaries between unix and the web.
There is also an argument to be made re adding this natively to the go-ipfs cli too. (i.e. making the cmds lib accept files on http as just other files)

I'll make something very cool if someone can implement this for me

Is there a need for this to be in the core of the library, or could it be simply a small package adding this feature on its own?

I think this should be in the api bindings library, yes.  I want it to be this easy for users to work with:
<script src="..."></script>
var ipfs = ipfsApi(...)
ipfs.add("http://...")

this is the web equivalent of making ipfs add <unix-file> work in the cli. in the most basic sense, a user's first experience with ipfs is adding a file, and that should be as easy as possible. in the web that means http files.
this is porcelain.
this api bindings, like the golang cli, or git itself, are really "toolkits" including both plumbing and porcelain commands. they're piecing together a bunch of small commands and making them easy to use.

in the most basic sense, a user's first experience with ipfs is adding a file, and that should be as easy as possible. in the web that means http files.

Fully agreed, but is js-ipfs-api this first place where they come into contact with it, or wouldn't that be more js-ipfs for most people. I understood this api as just a basic building block, while js-ipfs is the equivalent in user facing functionality to go-ipfs.
Also before this is implemented the question is do you plan to add it to go-ipfs, because that way there would not be the need to implement this here, instead we could just forward it to go-ipfs.

You can already do something very close to this using request:
ipfs.add(request('http://...'), function (err, res) { ... })

@mappum nice, useful.
i think since http requests are already done in the api, this extra porcelain isn't a big cost (it's not adding a library, etc), it's merely making something simpler for the user.

Also before this is implemented the question is do you plan to add it to go-ipfs, because that way there would not be the need to implement this here, instead we could just forward it to go-ipfs.

maybe we should add it to go-ipfs as well -- not sure yet. but for this, no we should still do it on the api -- because it means a different execution context. the browser might be in a completely different machine (with different cookies, etc) than the ipfs node.

I'll make something very cool if someone can implement this for me

As promised: https://github.com/jbenet/http2ipfs-web

sweet!
@xicombd you might be interested on this for your pocket clone :)


[Enhancement] Reduce lock: locking once and reference it, not locking twice.

What type of PR is this：

[ ] bug
[ ] feature
[x] enhancement
[ ] refactor
[ ] others

Which issues of this PR fixes ：

Fixes #8606
Problem Summary(Required) ：

Enhancement
one lock:
https://github.com/StarRocks/starrocks/blob/f674d92dca0e9ac06cfd8c126d084601c6ab9509/be/src/storage/tablet_updates.cpp#L1047-L1090
one more lock
https://github.com/StarRocks/starrocks/blob/f674d92dca0e9ac06cfd8c126d084601c6ab9509/be/src/storage/tablet_updates.cpp#L2168-L2170
can just lock once.

run starrocks_admit_test


fftw: Add version 3.3.5

Adds fftw library and pkg-config files.

Since fftw3.pc, fftw3l.pc and fftw3f.pc files were not included in the Windows distribution, I pulled the template file from upstream and configure it by hand.
The standard /lib, /bin structure is created at install time since this library is shipped as a flat directory for windows.

Why?   Well, pkg-config expects the prefix to be ... prefix for that package is assumed to be the grandparent of the directory where the file was found... , so the structure has been mimicked accordingly.

As a flat directory, bin/fftw-wisdom.exe expects lib/libfftw3-3.dll side-by-side, so bin/ is a symlink to lib/ to accommodate.

This PR shouldn't be merged it is first unit tested against a basic program.

@r15ch13 yeah, vcpkg is slowly becoming the de facto standard for automated Windows builds that rely on historically POSIX libraries like fftw.  There are some things to be learned from their approach, such as how they fix the lib and bin aliases using vcpkg_fixup_cmake_targets macro.
Unfortunately, this only helps those building fftw from source.  The purpose of this PR was to provide a precompiled fftw library and all of the tools needed for pkg-config and cmake to pick it up while searching for dependencies.
Sorry the PR has been open for so long.  If you wish, you may close it out.  I've postponed my efforts to get the popular POSIX libraries (sndfile, samplerate, fftw) working with scoop due to lack of time.  I can always reopen this PR later if and when ready.

I can always reopen this PR later if and when ready.

Or equally, you can merge this and let developers relying on it provide feedback. :/

The URL is not reachable. Need to fix later

Repo has moved to https://github.com/FFTW/fftw3 btw

@tresf what's the progress of this PR?

It's fine to close.  The project it was aiming to help has moved away from scoop.  There are likely other projects that will benefit from it, but automatically installing precompiled dependencies on Windows is still a ways off.


License request

Hello - your code is very interesting. However the GPL license is very restrictive, particularly for mobile devices. Could you possibly release it under a non-copyleft license such as MIT or BSD?
Much appreciated.

Hi,
For now, public release license is not going to change for certain reasons.
However, I do allow more freedom to users on case-to-case basis. If you are creating a useful product, tell me about it trough email and I will grant you commercial license at no charge.
Kashif

Hello, I would also like to request a license and ask a few questions. Where might I find your email address?

Please contact via. the contact form on http://mathiversity.com/


Tomcat sample tests run on port 8080

We have @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) but it looks like it always runs on 8080 to me. Must be a bug.

Seems to work now (possibly when the @SpringInitApplication was removed)


Do not track fds in transports

Signed-off-by: Matteo Collina<EMAIL_ADDRESS>

@jsumners this is needed by https://github.com/pinojs/pino-syslog/pull/21.


allow retry of submit calls

Sometimes, the log service may be unreachable during a longer session (e.g. if there are connection problems, or a planned outage). To address this, users should be able to opt-in to a retry process, where log submissions are retried after a configurable interval (e.g. 2 minutes by default), up to a configurable limit (e.g. 10 by default, but may be set to null for no limit at all).

Implemented on master (v.3.1.0).
New Feature
The widget now supports retrying the transmission of log messages if the first transmission failed. To enable this, the feature logging.retry needs to be configured with enabled and optional different values for the number of retries and the interval time between retries:
// in the page configuration for the widget:
{
   "features": {
      "logging": {
         "retry": {
            "enabled": true,
            "seconds": 120,
            "retries": 5
         }
      }
   }
}


Writing to ssl_socket_ causes core dump

Whenever SSL is used, simple crashes without any active exceptions.
Using gdb, the issue resides somewhere close (if not inside) by irc::connection::run():
Reading symbols from simple...done.
(gdb) b irc::connection::run
Breakpoint 1 at 0x45ddb4: file /home/tmplt/code/libircppclient/src/connection.cpp, line 98.
(gdb) r chat.freenode.net +6697
Starting program: /home/tmplt/.mnt/Thessia/code/libircppclient/debug/tests/simple chat.freenode.net +6697
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[debug] using SSL
[debug] writing: NICK libircppbot
[debug] writing: USER libircppclient 0 * :libircppclient

Breakpoint 1, irc::connection::run (this=0x7fffffffd9f0) at /home/tmplt/code/libircppclient/src/connection.cpp:98
98          std::thread ping_thread(ping_handler_);
(gdb) n
[New Thread 0x7ffff5c52700 (LWP 5913)]
100         if (use_ssl_)
(gdb)
101             read_some(ssl_socket_);
(gdb)
105         error_code error;
(gdb)
107         io_service_.run(error);
(gdb)
:hitchcock.freenode.net NOTICE * :*** Looking up your hostname...
:hitchcock.freenode.net NOTICE * :*** Checking Ident
:hitchcock.freenode.net NOTICE * :*** Found your hostname
0x000000000045ddfb      101             read_some(ssl_socket_);
(gdb)
114     }
(gdb)
terminate called without an active exception

Thread 1 "simple" received signal SIGABRT, Aborted.
0x00007ffff66c1295 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff66c1295 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff66c26da in abort () from /usr/lib/libc.so.6
#2  0x00007ffff6fda3dd in __gnu_cxx::__verbose_terminate_handler () at /build/gcc-multilib/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
#3  0x00007ffff6fd8196 in __cxxabiv1::__terminate (handler=<optimized out>) at /build/gcc-multilib/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:47
#4  0x00007ffff6fd81e1 in std::terminate () at /build/gcc-multilib/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:57
#5  0x000000000045f767 in std::thread::~thread (this=0x7fffffffd7b0)
    at /bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/thread:145
#6  0x000000000045de0d in irc::connection::run (this=0x7fffffffd9f0) at /home/tmplt/code/libircppclient/src/connection.cpp:114
#7  0x000000000045bdf0 in irc::client::start (this=0x7fffffffd910) at /home/tmplt/code/libircppclient/src/libircppclient.cpp:77
#8  0x0000000000453c5e in main (argc=3, argv=0x7fffffffe038) at /home/tmplt/code/libircppclient/tests/simple.cpp:60
(gdb) info threads
  Id   Target Id         Frame
* 1    Thread 0x7ffff7fa7740 (LWP 5909) "simple" 0x00007ffff66c1295 in raise () from /usr/lib/libc.so.6
  2    Thread 0x7ffff5c52700 (LWP 5913) "simple" 0x00007ffff79c87fd in nanosleep () from /usr/lib/libpthread.so.0
(gdb)

Running simple with valgrind --tool=helgrind gives the same function. I think it's safe to say something is amiss in irc::connection::run().
$ valgrind --tool=helgrind ./simple chat.freenode.net +6697
==25339==
==25339== Process terminating with default action of signal 6 (SIGABRT): dumping core
==25339==    at 0x6219295: raise (in /usr/lib/libc-2.23.so)
==25339==    by 0x621A6D9: abort (in /usr/lib/libc-2.23.so)
==25339==    by 0x59D63DC: __gnu_cxx::__verbose_terminate_handler() (vterminate.cc:95)
==25339==    by 0x59D4195: __cxxabiv1::__terminate(void (*)()) (eh_terminate.cc:47)
==25339==    by 0x59D41E0: std::terminate() (eh_terminate.cc:57)
==25339==    by 0x45F756: std::thread::~thread() (thread:145)
==25339==    by 0x45DDFC: irc::connection::run() (connection.cpp:113)
==25339==    by 0x45BDDF: irc::client::start() (libircppclient.cpp:77)
==25339==    by 0x453C4D: main (simple.cpp:60)
==25339==
==25339== For counts of detected and suppressed errors, rerun with: -v
==25339== Use --history-level=approx or =none to gain increased speed, at
==25339== the cost of reduced accuracy of conflicting-access information
==25339== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
[1]    25339 killed     valgrind --tool=helgrind ./simple chat.freenode.net +6697

Everything goes south on line 106, so it's possible that the issue resides elsewhere, as I can't find nothing wrong with irc::connection::run().
Could it be that the handshake function returns 0 when it shouldn't?

Here is a list of things I've tried:

Only initialized io_service_ with ssl_socket_

Progress; we now get another error.
Commenting out std::thread ping_thread(ping_handler_); and ping_thread.join(); in connection::run() makes test/simple terminate with Boost error: Connection reset by peer.

Got it.
Write operations were done before they were supposed to, or perhaps in the wrong manner. Removing all write()s after io_service_.run(); makes the program stable, but, as expected, the connection is timed out.
Now we just need to write in the right manner; I'm renaming this issue.

Writing operations can be done with boost::asio::write(ssl_socket, buffer(content), error) instead of ssl_socket_.next_layer().
Issue. Fixed.


when crawling too fast, backend gets stuck on disallowed sequence even when crawling is allowed again

To reproduce:  crawl a lot of sequences (using the API directly from URL bar is fine), until the OEIS complains about you crawling too fast.  When this happens, trying the API on the most recent sequence will result in an error in the browser: "Error: Value fetching for {oeis_id} in progress.".   (You can verify this by going to oeis.org and asking for something there, and OEIS will say you are crawling too fast, come back later.)  Even after the OEIS allows crawling again (as verified by visiting the site after a few minutes pause), the backend seems to be stuck in this state and will not return good data on this sequence.  It will keep returning this error indefinitely (even though it continues to work fine on other new sequences, which verifies that the OEIS is talking to it).

The underlying problem is in flaskr/nscope/views.py
    if seq.values_requested:
        return LookupError("Value fetching for {oeis_id} in progress.")
    seq.values_requested = True
    db.session.commit()
    # Now try to get it from the OEIS:
    r = requests.get(f"{domain}{oeis_id}/b{oeis_id[1:]}.txt")
    if r.status_code == 404:
        return LookupError(f"B-file for ID '{oeis_id}' not found in OEIS.")
    # Parse the b-file:

because see if it returns that LookupError the database is stuck in the state that it thinks fetching is in progress.


How to add custom decorations for complex objects members?

Hi there,
I have implemented an IOperationFilter that search for a custom decoration on the action parameters and it works great. However those parameters are usually complex objects and I would like to do the same kind of thing for their members.
I would like to know if there's a way to implement some kind of decoration that I could use to mark the members in my objects because obviously an IOperationFilter does not go on the objects, only actions.

I thought adding [Required] would have been enough but apparently it simply does nothing so I'm wondering if it could be a bug (or a missing feature) in Swashbuckle.
It can be done with a IDocumentFilter like this:
         internal class AddComplexObjectRequiredParameter : IDocumentFilter
         {
             public void Apply(SwaggerDocument swaggerDoc, DocumentFilterContext context)
             {
                 if (swaggerDoc.Definitions != null)
                 {
                     swaggerDoc.Definitions["ComplexObject"].Required = new List<string>()
                     {
                         "Property1",
                         "Property2"
                     };
                 }
             }

However this is not the best approach because in case you have a lot of objects (like I do) with a lot of properties, it gets very tedious to list them that's why a decoration would be much cleaner.

See #599


Where pyc and pycache goes?

Hi All! I'm a 2 weeks old pipenv (v2018.7.1) user.
I see that my projects does not have any .pyc file (py2.7) nor __pycache__ folder (py3.7) anymore.
I searched about this "bug" or "feature" but I found nothing about it.
This is a feature of pipenv run / pipenv shell ?
Thank you!

We disable these at runtime when using pipenv for several reasons, this is neither a bug nor a feature but an intended behavior which prevents bugs.


Germany / RKI changed spreadsheet for vaccination

since tody, AstraZeneca is listet, so other values changed their position in the table.
e.g. rkiImpfQuote shows values from DifferenzVortag

I have made a change to the adapter that it works again now. I only do not know, what to do to make that public :-)

since tody, AstraZeneca is listet, so other values changed their position in the table.
e.g. rkiImpfQuote shows values from DifferenzVortag

I have changed / corrected the script. Not sure, what to do with it now..

@lembnau I think u just need to create a pull request with your changes from your fork into this repo

I have changed / corrected the script. Not sure, what to do with it now..

i was just rewriting the code, can you share your part ?
I will include the generic API, for Germany its always changing but happy to keep it in

@lembnau I created a new Branch and picked your commits, hope that's ok for you ?
Will test this setup and if all works I will release it as a new version :)
https://github.com/DrozmotiX/ioBroker.coronavirus-statistics/tree/mergeChangesLembnau

@lembnau ich bedankt mich herzlich ! Habe deinen branch gemerged damit hast du dir ewigen room auf den commits und der readme dieses adapter gesichert :)
https://github.com/DrozmotiX/ioBroker.coronavirus-statistics/releases/tag/v0.6.9
Ab morgen im admin installierbar, ich warte eine Woche bis ich die version nach stable bringe


Consider a 2016 section

Encourage vote early

You can free up the campaign from worrying about you
Freeing up the line.   Maybe you can but others might not be able to

Consider joining constituent groups

Social media
D
Vote early
Learn
Encourage friends and family to vote early
Encourage day of voting
Volunteer
Look on website for events
Contact local office
Think about who you know in a swing state and consider engaging
GOTV volunteering
Day of volunteering
Write letter to the editor
Poll watcher

frame as russian roulette


gvawatermark not displaying overlay bounding box on output video

Hello,
I have been experiencing difficulties in outputting a video with bounding box. I created a custom test pipeline with the gvawatermark element added to the pipeline template to add overlay bounding box to the video output. However, after multiple element arrangement within the template, I was still unable to get the output desired.
 Or jpeg frames?

I was thinking the watermarked output would be in the same video format. What are the format of segments?

The segment recording sample is designed specifically to save the incoming stream without re-encoding it - so it it would be the incoming stream format (for example h264) within an mp4 container (splitmuxsink uses qtmux by default).
To get a watermarked frame you would need to re-encode the frame before sending it to splitmuxsink
Something similar to:
gvawatermark ! videoconvert ! x264enc key-int-max=30 speed-preset=ultrafast tune=zerolatency ! splitmuxsink
For an example with jpegencoding:
See:
https://github.com/intel/video-analytics-serving/blob/master/samples/lva_ai_extension/pipelines/object_detection/debug_person_vehicle_bike_detection/pipeline.json
Note: in our next release (end of March) we are adding a "rtsp restreaming" feature to make it simpler to see watermarked frames for debug - so you can get an rtsp stream of your results -

Oh I see. But after adding the elements you provided to the template, I got this error.
{"levelname": "ERROR", "asctime": "2021-02-17 16:34:39,129", "message": "Error Starting VA Serving: Error Initializing Pipelines", "module": "__main__"}

@amajai probably I have a typo / more to put in - can you send the final pipeline you are trying?

@nnshah1 This is the template I used:
	"template": ["urisourcebin name=source ! tee name=t ! queue ! decodebin ! video/x-raw ! videoconvert name=videoconvert",
				" ! queue! gvadetect model={models[object_detection][1][network]} name=detection",
				" ! gvametaconvert name=metaconvert ! queue ! gvametapublish name=destination",
				" ! gvawatermark ! videoconvert ! x264enc key-int-max=30 speed-preset=ultrafast tune=zerolatency ! splitmuxsink"
				],

Try one of the following. The first uses the mjpeg to encode and an avi container. The second uses x264enc plus an mp4 container. The x264enc element may not be installed by default due to licensing issues - in order to use it you may need to install some additional components in the container. Both pipelines are designed to put 30 second clips (either avi or mp4) in the /tmp folder.  I got it to work exactly what I wanted. However, the video quality is pretty low and AVI file are usually large. Is there a way to improve the output video quality or  should I try a different element?
Regarding the x264enc  element, how can I generally add components to the container?

Try out our RTSP re-streaming feature. Does that help you?

Take a look at #82. That may help.

Closing as there has been no response for over a year.


Add back/forward cache brief updates post

What's changed, or what was fixed?

Added a brief updates post to include a short description and two videos of a new prototype for a back/forward cache in Chrome. We are intentionally not going into great technical depth (yet) while the implementation is early and in flux.

Target Live Date: 2019-02-15

[ ] This has been reviewed and approved by (NAME)
[x] I have run npm test locally and all tests pass.
[x] I have added the appropriate type-something label.
[x] I've staged the site and manually verified that my content displays correctly.

CC: @petele
Review request: @KenjiBaheux

Whoops!
There were 5 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2019/02/back-forward-cache.md#L44 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2019/02/back-forward-cache.md#L20 - Line must be at most 100 characters
src/content/en/updates/2019/02/back-forward-cache.md#L38 - Line must be at most 100 characters
src/content/en/updates/2019/02/back-forward-cache.md#L42 - Line must be at most 100 characters
src/content/en/updates/2019/02/back-forward-cache.md#L44 - Line must be at most 100 characters

@KenjiBaheux If you get a chance to check this out, a staged preview is at https://pr-7265-dot-web-central.appspot.com/web/updates/2019/02/back-forward-cache

Whoops!
There were 5 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/updates/2019/02/back-forward-cache.md#L44 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2019/02/back-forward-cache.md#L20 - Line must be at most 100 characters
src/content/en/updates/2019/02/back-forward-cache.md#L38 - Line must be at most 100 characters
src/content/en/updates/2019/02/back-forward-cache.md#L42 - Line must be at most 100 characters
src/content/en/updates/2019/02/back-forward-cache.md#L44 - Line must be at most 100 characters

:tada: This has been pushed live to https://developers.google.com/web/


[release/v1.4] Add GCP Compute Persistent Disk CSI driver

What type of PR is this?
/kind feature
What this PR does / why we need it:
This is a manual cherry-pick of #2137 and #2142.
Does this PR introduce a user-facing change?:
Add GCP Compute Persistent Disk CSI driver. The CSI driver is deployed by default for all GCE clusters running Kubernetes 1.23 or newer.
Migrate GCE `standard` default StorageClass to set volumeBindingMode to WaitForFirstConsumer. The StorageClass will be automatically recreated the next time you run `kubeone apply`

/assign @kron4eg

/approve
/lgtm

/lgtm

/lgtm


helm chart fundamentally incompatible with secure gitops

Because you force passing in of sensitive credentials in Helm chart values, this Helm chart cannot safely be used with many GitOps tools, such as ArgoCD.
Add support for specifying all sensitive values using an existing secret.  This way, the user can facilitate its placement using secure means (like Hashicorp Vault for example, or many others).

I have put up a proposed alternative that would, on a basic level, allow you to bring your own secrets for properly secure Gitops.  It would add a simple existingSecret toggle to the relevant secrets which, if set false, the Helm chart wouldn't render the aforementioned secrets.

Hello @jstewart612 I undertstand that your PR fixed the issue on a basic level because now you can provide your secrets before installling the helm chart, what could be the best practice or more advance way to handle the secret for those scenarios? do you have any recommendation?


String encoding format issue

Hi,
I have a LDAP server with a jpeg photo in base64 format. When I search for the user, this specific attribute comes with a weird string format:
,��1�3�>��F��ԯ�]KW�t�.<I����zu�+\�s�9[Hd������(��4
It seems that there's an encoding issue or something.
Do you know what can I do ?

Yes you need to get the binary data from the attributes array, which is attached to the entry response.

If you have trouble let me know and I can send you some example code, but if you just console.log or use debugger tools on the entry.attributes you'll probably see what I mean. It's an array of objects with the name/key of what it is and the binary data. It has it for all the values, the entry.object is just a bunch of binary data converted to a string. I'm assuming author did it for simplicity sake, since most data from LDAP is simple strings.

⚠ This issue has been locked due to age. If you have encountered a recent
problem that seems to be covered by this issue, please open a new issue.
Please include a minimal reproducible example
when opening a new issue.


Mappings not updated on target correctly

I am trying to copy an index from 1 cluster to another cluster.  Using the options file, I get the following output.
[mpcarl] (master) $: node exporter.js -o meetings.json
Elasticsearch Exporter - Version 1.4.0
Reading source statistics from ElasticSearch
Reading mapping from ElasticSearch
Reading mapping from ElasticSearch
Creating index mapping in target ElasticSearch instance
Creating index mapping in target ElasticSearch instance
Mapping is now ready. Starting with 0 queued hits.
Mapping is now ready. Starting with 0 queued hits.
Host target_host:9200 responded to PUT request on endpoint /meetings with an error:
{"error":"IndexAlreadyExistsException[[meetings] already exists]","status":400}
Processed 200 of 3611 entries (6%) .....
When I look at the mappings at the end of the job, they don't match the source mappings.  Everything looks to be just defaults.
mappings: {
Meetings: {
properties: {
created_by: {
type: string
}
date_entered: {
type: string
}
versus the source
created_by: {
type: "string",
index: "not_analyzed",
omit_norms: true,
index_options: "docs"
},
date_end: {
type: "date",
format: "dateOptionalTime"
},
date_entered: {
type: "date",
format: "yyyy-MM-dd HH:mm:ss"
},
I also don't understand why it is trying to update the target twice, but maybe that's a different issue.
Elastic version "0.90.7" on both servers.

With the rewrite this should no longer apply.


How to apply Highchart themes in ReactHighstock?

I need to add dark blue theme of Highcharts in ReactHighstock. I did not find any documentation of the same. Can you help me? @kirjs

Hi @ajeshb !
You need import NameTheme from 'highcharts/themes/name-theme';
and NameTheme(ReactHighcharts.Highcharts);
https://stackblitz.com/edit/highcharts-87w46s?file=Highchart.js

It worked @ilyjs.
Thanks


Add texture 'density' parameter

As discussed here: https://github.com/tangrams/tangram/pull/234 texture defninitions will get a new density parameter that re-interprets the coordinates in sprite atlases so that multiple resolutions of texture can be provided without tedious duplication of sprites.

Resolved by #1742


Unable to resolve domain name when trying to migrate a repo

Gitea version (or commit ref): 1.15.0
Git version: not relevant
Operating system:
Docker (20.10.3-0554), running on Synology NAS (920+, DSM 6.2.4-25556) , set up via the DSM Docker GUI. I access gitea via the reverse proxy built into DSM (git.DOMAIN.me:443 -> localhost:3333 [in docker 3333:3000]).
Database (use [x]):

[x] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No

Log gist:
UI:

"Not a valid URL"

Console:
2021-08-30 16:29:56 | stdout | 2021/08/30 16:29:56 Completed GET /assets/serviceworker.js 304 Not Modified in 202.925µs
-- | -- | --
2021-08-30 16:29:56 | stdout | 2021/08/30 16:29:56 Started GET /assets/serviceworker.js for <IP_ADDRESS>:54130
2021-08-30 16:29:55 | stdout | 2021/08/30 16:29:55 Started GET /user/events for <IP_ADDRESS>:54126
2021-08-30 16:29:54 | stdout | 2021/08/30 16:29:54 Completed POST /repo/migrate 200 OK in 20.016269031s
2021-08-30 16:29:34 | stdout | 2021/08/30 16:29:34 Started POST /repo/migrate for <IP_ADDRESS>:54096
2021-08-30 16:29:34 | stdout | 2021/08/30 16:29:34 Completed GET /user/events 200 OK in 2m13.360425822s
2021-08-30 16:27:21 | stdout | 2021/08/30 16:27:21 Completed GET /assets/serviceworker.js 304 Not Modified in 233.821µs
2021-08-30 16:27:21 | stdout | 2021/08/30 16:27:21 Started GET /assets/serviceworker.js for <IP_ADDRESS>:53970
2021-08-30 16:27:21 | stdout | 2021/08/30 16:27:21 Started GET /user/events for <IP_ADDRESS>:53966
2021-08-30 16:27:20 | stdout | 2021/08/30 16:27:20 Completed GET /assets/serviceworker.js 304 Not Modified in 198.91µs
2021-08-30 16:27:20 | stdout | 2021/08/30 16:27:20 Started GET /assets/serviceworker.js for <IP_ADDRESS>:53962
2021-08-30 16:27:20 | stdout | 2021/08/30 16:27:20 Completed GET /repo/migrate?service_type=2&org=&mirror= 200 OK in 10.078064ms
2021-08-30 16:27:20 | stdout | 2021/08/30 16:27:20 Started GET /repo/migrate?service_type=2&org=&mirror= for <IP_ADDRESS>:53958
2021-08-30 16:27:20 | stdout | 2021/08/30 16:27:20 Completed GET /user/events 200 OK in 853.686733ms
2021-08-30 16:27:19 | stdout | 2021/08/30 16:27:19 Started GET /user/events for <IP_ADDRESS>:53954
2021-08-30 16:27:17 | stdout | 2021/08/30 16:27:17 Completed GET /repo/migrate 200 OK in 16.007772ms
2021-08-30 16:27:17 | stdout | 2021/08/30 16:27:17 Started GET /repo/migrate for <IP_ADDRESS>:53942

Logfile:
.../web/repo/migrate.go:138:handleMigrateRemoteAddrError() [E] Error whilst updating url: migration/cloning from 'github.com' is not allowed: unknown hostname

Description
I don't know if this is the right place for this, but I have searched almost all Issues/Forum posts/Discord messages from the last two years and still don't know an answer.
My Gitea instance is working perfectly fine, I can connect to it from the outside and from inside my network. However, Gitea seems to not be able to "talk" to the outside world or at least the DNS is not resolving.
Whenever I try to migrate or mirror from any outside repo (Public or not; Github/Gitlab/other Gitea; Selfhosted or official) I get the "not a valid URL" error.
Similar to Issue #15570 , When I try to connect or even ping any domain name from inside the gitea docker container, I get this:
bash-5.1# curl -vv https://github.com
* Could not resolve host: github.com
* Closing connection 0
curl: (6) Could not resolve host: github.com

bash-5.1# nslookup -debug github.com
;; connection timed out; no servers could be reached

bash-5.1# ping github.com
ping: bad address 'github.com'

If it helps this is the resolv.conf:
bash-5.1# cat /etc/resolv.conf
nameserver      <IP_ADDRESS>
domain  fritz.box

Is this some sort of problem with the Device firewall? If so which port do I additionally need to open? Or is this a problem with a DNS server? Honestly, I have no clue anymore, any feedback is appreciated.
...

see https://docs.gitea.io/en-us/config-cheat-sheet/#migrations-migrations

If you can't access the url from the device Gitea can't access it too. So yeah, could be a firewall issue. I have a Synology NAS too and can use curl with Github without problems.

see https://docs.gitea.io/en-us/config-cheat-sheet/#migrations-migrations

I don't really see what configuration I could change to improve my situation, but I tried the "allow local networks" set to 'true' and now I get a different Error message in the log file:
modules/task/task.go:54:handle() [E] Run task failed: Get "https://api.github.com/repos/c-4-m/pubrepo": dial tcp: lookup api.github.com on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:57213-><IP_ADDRESS>:53: i/o timeout

Though I don't know what I can make of that.

If you can't access the url from the device Gitea can't access it too. So yeah, could be a firewall issue. I have a Synology NAS too and can use curl with Github without problems.

The device (in my case the NAS) itself can access the repo fine (e.g. I can use the download station to download the code from the repo as .zip file -> the device has access to the internet and the DNS works aswell.
So there seems to be a problem with docker I guess?

Turns out, this was not a problem with gitea.
I will close this issue, but for future reference:
If you have issues with containers not being able to access the internet, try this:
The solution was to add a firewall rule specifically for my bridge network. It had a subnet IP of <IP_ADDRESS>/16.
I had to explicitly add a rules to allow them through my firewall. The firewall settings in DSM work just fine for this, no need to mess around with ip tables.
I added a rule that allowed all ports with a source IP of <IP_ADDRESS> and <IP_ADDRESS> for the subnet which is the same as /16.
Thanks.


Functions Assembly Binding Redirect

Hey so I'm not sure if this should go just here or in the https://github.com/Azure/azure-webjobs-sdk-script repo as well.
I'm running into an issue when using Azure Functions as the front-end for existing (.NET 4.6.2) code that is a bit more complex with nuget refs and dependencies.
It appears that func.exe has a standard set of assembly binding redirects in it's func.exe.config for things like Newtonsoft.Json <IP_ADDRESS>-<IP_ADDRESS> binding redirect. (incidentally can we bump that to <IP_ADDRESS> now?)
So when you add a nuget reference in your .net assembly (that you are referencing in a run.csx for example) you MUST leave the underlying dependencies at the PRECISE version that the nuget package has as a dependency, otherwise when your code attempts to use the library referenced it will be unable to load that library's dependencies and will result in a runtime error due to binding issues.
For Example:
Pathoschild.Http.FluentClient 3.0.0

in .NET 4.5.2, has a dependency of,
System.Net.Http 4.0.0

If I want to uplift System.Net.Http to the latest 4.3.0, I cannot as any attempt to use the FluentClient will result in a binding failure,
var client = new FluentClient("http://<IP_ADDRESS>/api/");

^-- will fail without binding redirect.
I guess what I'm asking for is a way to have the func.exe dynamically load additional binding redirects from a host-level  app.config or web.config file?
Please let me know if further detail and/or a full example are required. Thanks!

@beufordy3k This is a feature for the Functions script runtime in https://github.com/Azure/azure-webjobs-sdk-script.
For the CLI, we'll verify that our binding redirects match those in the Functions runtime.

@lindydonna ok, thanks for the update!
I'll dig into it further and open an issue over in that repo as needed.


Document Eth1 node fallback

Support for automatic fail-over of eth1-endpoints. Multiple endpoints can be specified with the new --eth1-endpoints CLI option.
See: https://github.com/ConsenSys/teku/pull/3896

duplicate of #240, fixed by #278


[Fix][UI Next][V1.0.0-Alpha] Fix the time columns cannot be broken in the cron manage table.

Purpose of the pull request
close #9331

Brief change log

Verify this pull request

This pull request is code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:

+1


token settings - specify MAX and DEFAULT separately

Referring to https://github.com/rancher/rancher/issues/41919
Is it possible to specify MAX and DEFAULT separately regarding the ttl value?
Question refers to

auth-token-max-ttl-minutes
kubeconfig-default-token-ttl-minutes

so for example:

auth-token-default-ttl-minutes = x (seconds)

auth-token-max-ttl-minutes     = 0 (never expired)

kubeconfig-default-token-ttl-minutes = x (seconds)

kubeconfig-max-token-ttl-minutes = 0 (never expired)

???

???


Pick up latest TS nightly for building VS Code

Missed that this never got merged. Closing as out of date as I've already picked up a newer version


ESP32-C3 Compile Error

Compiling p1reader for a SeeedStudio XIAO ESP32C3 with the "esp-idf" framework fails.
I recently got a Wemos D1 device up and running fine with your p1eader. Very nice... But I want a device with external antenna, so I wanted to try to make this work with a XIAO ESP32C3.
I got this error when compiling using the "esp-idf" framework. I first tried to compile with the default arduino framework, but it it doesn't seem to support the UART component for ESP32C3.
I get the following error when compiling: (log file attached)
In file included from src/main.cpp:54:
src/p1reader.h: In member function 'void P1Reader::readP1Message()':
src/p1reader.h:262:21: error: 'Serial' was not declared in this scope
           int len = Serial.readBytesUntil('\n', buffer, BUF_SIZE);
                     ^~~~~~
src/p1reader.h:262:21: note: suggested alternative: 'erfl'
           int len = Serial.readBytesUntil('\n', buffer, BUF_SIZE);
                     ^~~~~~

The essential parts of my config: (yaml file attached)
esphome:
  name: ${device_name}
  includes:
    - p1reader.h
esp32:
  board: esp32-c3-devkitm-1
  variant: esp32c3
  framework:
    type: esp-idf

uart:
  id: uart_bus
  baud_rate: 115200
  rx_pin:
    number: 20  # GPIO20, D7, RX
    inverted: true

I'm running this with ESPhome "stand alone", without Home Assistant on a Debian 11 system. My Home Assistant is running on a raspberry Pi 3b+, and it has issues with incompatible compiler for ESP32C3 in the "esp-idf" framework (riscv32-esp-elf-gcc -- broken)
Compiling with just the UART component but without p1reader.h, works fine.
log-esp32c3-p1reader_esp-idf.txt
elmataren_yaml.txt

Meanwhile, I have at least verified that the XIAO ESP32C3 devise is "physically" suited for this task.
I wired it up to my Sagemcom T211 meter, powered from the P1 port. And uploaded a test-config that reads the UART and reports to the debug output. - Works like a charm...  :)
It's a really minimalistic setup, with just one pull-up resistor for RX, and one capacitor at the power input. And the ESP itself of course...

esp32c3-test.yaml.txt
log-esp32c3-uart_debug.txt

This issue is not really related to the ESP32C3 device.
I get the same compile error for a Wemos D32 device, with the esp-idf framework.
I have no insight in whether a custom component like this, can be compatible with both frameworks or not. Or if a different variant of p1reader would be necessary to work with esp-idf.
However, Seeed Studio have shown that working with UART in custom components, XIAO ESP32C3 and esp-idf framework is possible in this demo. XIAO ESP32C3 accesses Home Assistant via ESPHome service
The good news is that we don't need esp-idf (I don't...).
I was diverted into trying esp-idf because I got errors compiling with arduino. Reading a lot of comments about poor support for these "new" -C3 devices, I decided to try with esp-idf instead...
Lack of success led me back to the arduino framework, and I have found a config that successfully compiles p1reade for the Seeed Studio XIAO ESP32C3 - with the arduino framework.  :)
The trick was not to use the dedicated name for the board: seeed_xiao_esp32c3
Instead we must use the "generic" esp32-c3-devkitm-1
substitutions:
  device_name: "elmataren"
  friendly_name: "Elmätaren"
  device_description: "Ellevios el-mätare för hela huset. (SeeedStudio XIAO esp32c3)"

esphome:
  name: ${device_name}
  friendly_name: ${friendly_name}
  comment: "${device_description}"
  includes:
    - p1reader.h

esp32:
  board: esp32-c3-devkitm-1
  variant: esp32c3
  framework:
    type: arduino

# Enable logging
logger:
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: "1xUW/G1DHc+ToRQm17Qw3Na1LjM/8yG18lIBgxbGPpg="

ota:
  password: "44906a5cd9292211d5b64204659e507f"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  domain: .lan
  fast_connect: True
  power_save_mode: none

  # Enable fallback hotspot (captive portal) in case wifi connection fails
#  ap:
#    ssid: ${device_name}
#    password: !secret fallback_ap_password
#
#captive_portal:	# Kräver Arduino framework

uart:
  id: uart_bus
  baud_rate: 115200
  rx_pin:
    number: 20  # GPIO20, D7, RX
    inverted: true

sensor:
- platform: custom
  lambda: |-
    auto meter_sensor = new P1Reader(id(uart_bus));
    App.register_component(meter_sensor);
    return {
      meter_sensor->cumulativeActiveImport,
      meter_sensor->cumulativeActiveExport,
      meter_sensor->cumulativeReactiveImport,
      meter_sensor->cumulativeReactiveExport,
      meter_sensor->momentaryActiveImport,
      meter_sensor->momentaryActiveExport,
      meter_sensor->momentaryReactiveImport,
      meter_sensor->momentaryReactiveExport,
      meter_sensor->momentaryActiveImportL1,
      meter_sensor->momentaryActiveExportL1,
      meter_sensor->momentaryActiveImportL2,
      meter_sensor->momentaryActiveExportL2,
      meter_sensor->momentaryActiveImportL3,
      meter_sensor->momentaryActiveExportL3,
      meter_sensor->momentaryReactiveImportL1,
      meter_sensor->momentaryReactiveExportL1,
      meter_sensor->momentaryReactiveImportL2,
      meter_sensor->momentaryReactiveExportL2,
      meter_sensor->momentaryReactiveImportL3,
      meter_sensor->momentaryReactiveExportL3,
      meter_sensor->voltageL1,
      meter_sensor->voltageL2,
      meter_sensor->voltageL3,
      meter_sensor->currentL1,
      meter_sensor->currentL2,
      meter_sensor->currentL3
    };
  sensors:
  - name: "Energi"
    unit_of_measurement: kWh
    accuracy_decimals: 3
    state_class: "total_increasing"
    device_class: "energy"
  - name: "Energi Export"
    unit_of_measurement: kWh
    accuracy_decimals: 3
    state_class: "total_increasing"
    device_class: "energy"
  - name: "Energi Reaktiv"
    unit_of_measurement: kvarh
    accuracy_decimals: 3
  - name: "Energi Export Reaktiv"
    unit_of_measurement: kvarh
    accuracy_decimals: 3
  - name: "Effekt"
    unit_of_measurement: kW
    accuracy_decimals: 3
    state_class: "measurement"
    device_class: "power"
  - name: "Effekt Export"
    unit_of_measurement: kW
    accuracy_decimals: 3
    state_class: "measurement"
    device_class: "power"
  - name: "Effekt Reaktiv"
    unit_of_measurement: kvar
    accuracy_decimals: 3
  - name: "Effekt Export Reaktiv"
    unit_of_measurement: kvar
    accuracy_decimals: 3
  - name: "Effekt L1"
    unit_of_measurement: kW
    accuracy_decimals: 3
    state_class: "measurement"
    device_class: "power"
  - name: "Effekt Export L1"
    unit_of_measurement: kW
    accuracy_decimals: 3
    state_class: "measurement"
    device_class: "power"
  - name: "Effekt L2"
    unit_of_measurement: kW
    accuracy_decimals: 3
    state_class: "measurement"
    device_class: "power"
  - name: "Effekt Export L2"
    unit_of_measurement: kW
    accuracy_decimals: 3
    state_class: "measurement"
    device_class: "power"
  - name: "Effekt L3"
    unit_of_measurement: kW
    accuracy_decimals: 3
    state_class: "measurement"
    device_class: "power"
  - name: "Effekt Export L3"
    unit_of_measurement: kW
    accuracy_decimals: 3
    state_class: "measurement"
    device_class: "power"
  - name: "Effekt Reaktiv L1"
    unit_of_measurement: kvar
    accuracy_decimals: 3
  - name: "Effekt Export Reaktiv L1"
    unit_of_measurement: kvar
    accuracy_decimals: 3
  - name: "Effekt Reaktiv L2"
    unit_of_measurement: kvar
    accuracy_decimals: 3
  - name: "Effekt Export Reaktiv L2"
    unit_of_measurement: kvar
    accuracy_decimals: 3
  - name: "Effekt Reaktiv L3"
    unit_of_measurement: kvar
    accuracy_decimals: 3
  - name: "Effekt Export Reaktiv L3"
    unit_of_measurement: kvar
    accuracy_decimals: 3
  - name: "Spänning L1"
    unit_of_measurement: V
    accuracy_decimals: 1
    state_class: "measurement"
    device_class: "voltage"
  - name: "Spänning L2"
    unit_of_measurement: V
    accuracy_decimals: 1
    state_class: "measurement"
    device_class: "voltage"
  - name: "Spänning L3"
    unit_of_measurement: V
    accuracy_decimals: 1
    state_class: "measurement"
    device_class: "voltage"
  - name: "Ström L1"
    unit_of_measurement: A
    accuracy_decimals: 1
    state_class: "measurement"
    device_class: "current"
  - name: "Ström L2"
    unit_of_measurement: A
    accuracy_decimals: 1
    state_class: "measurement"
    device_class: "current"
  - name: "Ström L3"
    unit_of_measurement: A
    accuracy_decimals: 1
    state_class: "measurement"
    device_class: "current"

- platform: uptime
  name: "Uptime"
- platform: wifi_signal
  name: "WiFi Signal dB"
  id: wifi_signal_db
  update_interval: 60s
- platform: copy    #   Reports the WiFi signal strength in %
  source_id: wifi_signal_db
  name: "WiFi Signal"   #   "esphome:/friendly_name:" Läggs till som prefix till namnet om det används. Kan lämnas tom.
  filters:    #   Konvertera -85dB...-45dB -> 0...100 %
    - lambda: return min(max(2.5 * (x + 85.0), 0.0), 100.0);
  unit_of_measurement: "%"
  entity_category: "diagnostic"

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "IP Address"
    ssid:
      name: "WiFi SSID"
    bssid:
      name: "WiFi BSSID"
  - platform: version
    name: "ESPHome Version"
    hide_timestamp: false


document.merge() in for-loop

The idea:
I want to have a list of objects, that will be the input values for the document.merge() function
The test version:
document = MailMerge(template)
testDoc=document.get_merge_fields()
textMergeFields=list(testDoc)

# transform values to strings
ValuesString=[str(i) for i in Values]

# check if same length
if len(textMergeFields) == len(ValuesString):

    # insert values into the word template
    counter=0
    for i in textMergeFields:
        document.merge( i = ValuesString[counter])
        counter=counter+1

    # write into the document and save it
    template_out='C:\\Users\\dummy.docx'
    document.write(template_out)

The issue:
I don't get an error - but I also can't see any inserted values in the MergeFields of my Word .docx template.
The question:
Is there any chance to fix this?

You shouldn't pass parameters to document.Merge() one at a time. Instead, build a dictionary and pass that as your parameter.
my_parameters = {'One': 'One', 'Two': 'Two'} document.merge(**my_parameters)
which is equivalent to:
document.merge(One = 'One', Two = 'Two')


[Doc] Overview dockerhub and readme github

Each repo should have a link to docker hub in readme, and  each overview in docker hub should be a link to repo in github, both with some description.

https://hub.docker.com/repository/docker/dojot/iotagent-mosca

Wont' be fixed.


[Refactor]Refactor cutmixup

Hi,
This pr replaces cutmix and mixup with cutmixup, so that users can set them simultaneously.
Pls kindly take a look.

@ycxioooong Great point. Will fix ASAP.

Temporally close this PR


TFlu: Add Cortex-M generic target makefile

This is fixing issue: https://github.com/tensorflow/tensorflow/issues/43725

@mansnils  Can you please resolve conflicts? Thanks!

Hi @mansnils, I tried your PR. Yes, it goes into the right direction. I encountered two problems with it:

The gcc executable was not found. I had to add the following lines to cortex_m_generic_makefile.inc
$(eval $(call add_third_party_download,$(GCC_EMBEDDED_URL),$(GCC_EMBEDDED_MD5),gcc_embedded,))
export PATH := $(MAKEFILE_DIR)/downloads/gcc_embedded/bin/:$(PATH)

The CMSIS include directories were not added the INCLUDE. This happens if CMSIS_PATH is not populated. Question here: why does cmsis_nn.inc add the include dirs of Core, DSP, NN only of CMSIS_PATH is undefined?

@ml-0 Thanks for your comments.

Will fix this.

My understanding is that INCLUDES are not allowed in cmsis.inc because Arduino can't handle it. See the RFC document for more details: https://docs.google.com/document/d/14GRxeVEgSKgKBKAijO7oxnI49nLoTYBFQmPok-rG0cw
And that's ok when using default CMSIS_PATH in tensorflow/lite/micro/tools/make/downloads/cmsis which gets patched. However when supplying a custom CMSIS_PATH when building, INCLUDES are needed. Assumption is that Arduino use the default path. (Actually jacking in a CMSIS_PATH have some other problems basically because it is unpatched but it is out of scope for this PR.)

@mansnils, I found that the issue of missing CMSIS headers was due to an incomplete patching on my system (Win10/msys64). I filed a fix for it (#44001). After this is merged, I can use the new make target without adding the CMSIS include paths to INCLUDE.


AuditLog error when cloning objects

I'm trying to clone objects including their m2m fields using a solution I found on StackOverflow.
Unfortunately I get the following error:
null value in column "object_pk" of relation "auditlog_logentry" violates not-null constraint
I assume this is because the cloned objects pk field has to be set to None in order for it to be assigned with a new ID automatically.
Is there any way to work around this?

You can get around this by manually assigning an id to the copied object but be very careful it's not an ID already in use, or you'll overwrite something else. You could also probably temporarily unregister the model with AuditLog, which disables the signals.

Hello, I am encountering the same issue. Did you manage to find a solution? I prefer not to use an alternative and would like to resolve the problem directly. I would be grateful for your help. Thank you in advance!

Hello, I am encountering the same issue. Did you manage to find a solution? I prefer not to use an alternative and would like to resolve the problem directly. I would be grateful for your help. Thank you in advance!

Not yet! Unfortunately, I don't have time to work on it. It would be great if you can work on the issue and prepare a fix

Hello, I am encountering the same issue. Did you manage to find a solution? I prefer not to use an alternative and would like to resolve the problem directly. I would be grateful for your help. Thank you in advance!

Not yet! Unfortunately, I don't have time to work on it. It would be great if you can work on the issue and prepare a fix

Hello again, i finally did  fix the problem, you will find bellow an example how I handled it in my project :
baseobj = ObjectModel.objects.get(pk=12)
obj = baseobj
obj.pk = None
obj.save()

instead of following the previous method, i do it otherwise now :
baseobj = ObjectModel.objects.get(pk=12)
obj = ObjectModel()
for field in baseobj._meta.fields:
                                if field.name != 'id':
                                    setattr(obj, field.name, getattr(baseobj, field.name))

Hope it helps


SHELL activity: subprocess unable to find `convert'

I discovered a bug that only exists on my ORNL laptop (Mac M1), but not on my personal laptop (Mac w/ Intel). The issue is that the child subprocess of the SHELL activity cannot find the convert command. I have confirmed that ImageMagick is installed via brew. This is for the example.py script.
At first glance it seemed to be because the subprocess executes in /bin/sh and convert is stored where brew is recognized /bin/bash --> whose paths are outlined in ~/.bash_profile or ~/.bashrc. But when I set executable="/bin/bash" in the subprocess.Popen call, convert still cannot be found.
I will continue to investigate and update here.

This issue has been resolved by allowing users to set environment variables in the SHELL plugin (and therefore also to set **kwargs as part of any activity). I will merge the fix as it does not affect the usability of the existing codebase, but am leaving this issue open to explore:
Why does the Python subprocess not automatically source ~/.bash_profile or ~/.bashrc, despite having set shell=True.


Merge with nicify-lib

I’ve stumbled over the fact that nicify only contains the executable multiple times now, since referring to nicify in your cabal won’t give you access to the library.
cabal supports having both executables and libraries in the same package, and that’s how conventionally libraries bundle small executables that just wrap around the library.
I suggest moving the library into the nicify hackage package and deprecating nicify-lib in favor of nicify, to prevent confusion.

Also congrats, this is easily the most pragmatic and useful haskell library I know :)

Thank you for the compliment :-)
That sounds like a sensible thing to do, but I do lack the time currently. If you have the time, would you mind opening a pull request?


ipywidgets UI create delete

Issue link

Closes: RHOAIENG-12523
What changes have been made

Added ipywidgets to act as buttons for the cluster.up() and cluster.down() methods
Added print statements to confirm cluster creation/deletion
Added unit tests for buttons

Happy days :)
Verification steps

Setup
Notebook server ODH/RHOAI/Local

Clone this repository with git clone https://github.com/project-codeflare/codeflare-sdk.git
Checkout this PR's branch
Run poetry build - install if needed (pip install poetry)
Run pip install --force-reinstall dist/codeflare_sdk-0.0.0.dev0-py3-none-any.whl
Restart your notebook kernel

Testing

Run through any example notebook
On the ClusterConfiguration step the ui buttons for cluster up/down should appear
Verify the buttons work as expected
Run the ClusterConfiguration as a script and the buttons should not appear.
Run in a RHOAI notebook and in a VSCode local notebook and verify buttons are created

Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[ ] Manual tests
[ ] Testing is not required for this change

@ChristianZaccaria I had a similar thought when reading through the design doc.
I think we should go for it as to not clog the cluster.py file with the widgets.

@ChristianZaccaria On second thought that may not be the best for this particular widget.
It requires the Cluster Object for the up() and down() methods so it is seemingly the only widget that should live in cluster.py.

@Bobbins228 perhaps the UI itself (only the buttons for example) can be separated into it's own file, and the functionality (up() and down()) remain in the cluster.py file.

/retest


[SPARK-35848][MLLIB] Optimize some treeAggregates in MLlib by delaying allocations

What changes were proposed in this pull request?
Optimize some treeAggregates in MLlib by delaying allocating (thus not sending around) large arrays of zeroes
This uses the same idea as in https://github.com/apache/spark/pull/23600/files
Why are the changes needed?
Allocating huge arrays of zeroes takes additional memory and network I/O which is unnecessary in some cases. It can cause operations to run out of memory that might otherwise succeed. Specifically, this should prevent the 'zero' value from having to be (pointlessly) checked for serializability, which can fail when passing through the default JavaSerializer; it would also prevent allocating and sending large 'zero' values for an empty partition in the aggregate.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Existing tests.

@zhengruifeng just FYI

Test build #141347 has started for PR 33443 at commit 99254b1.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45862/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45862/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/45862/

Test build #141347 has finished for PR 33443 at commit 99254b1.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141347/

Can this optimization also be used in aggregateByKey? like https://github.com/apache/spark/blob/485145326a9c97ede260b0e267ee116f182cfd56/mllib/src/main/scala/org/apache/spark/mllib/clustering/StreamingKMeans.scala#L85-L93

I can apply this to aggregateByKey in MLlib too. All of the usages I see are either DenseVector (and indeed should be dense) or breeze dense vectors, so I don't know if compressing helps.

Test build #141419 has started for PR 33443 at commit baa9a7d.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45936/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45936/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/45936/

Test build #141419 has finished for PR 33443 at commit baa9a7d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141419/

Test build #141448 has started for PR 33443 at commit 0231adf.

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/45967/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/45967/

Test build #141448 has finished for PR 33443 at commit 0231adf.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141448/

Test build #141493 has started for PR 33443 at commit dcd9e1a.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46010/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46010/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46010/

The tests passed; my last force-push was spurious. I think this can be merged to master


fix(deploy): need to deploy signers map

:tada: This PR is included in version 1.183.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Fix generate-macro-bindings generation

Fixes macro bindings generation by changing 'auto' to __auto_type. Fixes #439

@dotnet-policy-service agree

If you want, I could squash the commits that only fixes some silly errors to keep the commit history clean

Thanks!


Step fails where package dependencies have changed

Describe a bug
In the circumstance where my package.json has changed, I am finding that the switching between branches is failing due to changes in the yarn.lock
Expected behaviour
This use case be handled
Details

Action version: @v2

OS, where your action is running (windows, linux): linux

action.yml file
```yml
name: Test meeting-state Template

on:
  workflow_call:
    secrets:
      github-token:
        required: true

permissions:
  id-token: write
  contents: read
  pull-requests: write
  checks: write

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Git clone the repository
        uses: actions/checkout@v2

      - name: Install Node
        uses: actions/setup-node@v2
        with:
          node-version: 16.x

      - name: Install root
        run: yarn

      - name: Test and coverage
        uses: ArtiomTr/jest-coverage-report-action@v2
        with:
          package-manager: yarn
          test-script: yarn test
          github-token: ${{ secrets.github-token }}
```

Screenshots
```
Begin switching back to original branch...
/usr/bin/git checkout -
error: Your local changes to the following files would be overwritten by checkout:
    yarn.lock
Please commit your changes or stash them before you switch branches.
Aborting
Error checking to branches Error: The process '/usr/bin/git' failed with exit code 1
    at th._setResult (/home/runner/work/_actions/ArtiomTr/jest-coverage-report-action/v2/dist/index.js:21:17898)
    at th.CheckComplete (/home/runner/work/_actions/ArtiomTr/jest-coverage-report-action/v2/dist/index.js:21:17485)
    at ChildProcess.<anonymous> (/home/runner/work/_actions/ArtiomTr/jest-coverage-report-action/v2/dist/index.js:21:16477)
    at ChildProcess.emit (node:events:513:28)
    at maybeClose (node:internal/child_process:1100:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
```

Additional context
N/A

This is an issue for me as well

I am experiencing this as well, same output as the screenshot with the package-lock

Hey @jugory, @kavyuwu and @eric-lightfeatherio :wave:,
In the v2.2.0 (or just v2) version, the action provides the -f flag to checkout to the original branch. So, your issue should be fixed now.


[1.2] Chip-tool Android Application crashed when tried to implement device to device binding

Reproduction steps
I perfomed device to device binding in chip-tool android application.

For that first I used AccessControlCluster and after that I used AccessControlClusterAccessControlEntryStruct and passed the values  privilege : 5 , authmode: 2, subjects:[112233] , targets: null , fabricIndex: 1 and after that passed the privilege : 3 , authmode: 2, subjects:  , targets: null , fabricIndex: 1 for AccessControlClusterAccessControlEntryStruct

After that I tried to use writeAclAttribute and passed the values defaultClusterCallback and array of AccessControlClusterAccessControlEntryStruct .

But at writeAcl app got crashed everytime.

Please assist me in the same way. I would be grateful for your assistance.

Bug prevalence
Whenever I do this
GitHub hash of the SDK that was being used
Matter
Platform
android
Platform Version(s)
No response
Type
Core SDK Crash
Anything else?
No response

Could you upload the detailed log and crash dump if possible? thanks

@yunhanw-google
java_vm_ext.cc:591] JNI DETECTED ERROR IN APPLICATION: can't call long java.lang.Long.longValue() on instance of java.lang.Integer
java_vm_ext.cc:591]     in call to CallLongMethodV
java_vm_ext.cc:591]     from void chip.devicecontroller.ChipClusters$AccessControlCluster.writeAclAttribute(long, chip.devicecontroller.ChipClusters$DefaultClusterCallback, java.util.ArrayList, java.lang.Integer)
2024-02-14 14:57:41.172 26584-26584 com.eic.matter          com.eic.matter                       A  runtime.cc:691] Runtime aborting...
runtime.cc:691] Dumping all threads without mutator lock held
runtime.cc:691] All threads:
runtime.cc:691] DALVIK THREADS (36):
runtime.cc:691] "main" prio=10 tid=1 Runnable
runtime.cc:691]   | group="" sCount=0 ucsCount=0 flags=0 obj=0x720df208 self=0xb4000072b82a47b0
runtime.cc:691]   | sysTid=26584 nice=-10 cgrp=top-app sched=0/0 handle=0x73fef94500
runtime.cc:691]   | state=R schedstat=(<PHONE_NUMBER> 206233653 2527 ) utm=544 stm=39 core=5 HZ=100
runtime.cc:691]   | stack=0x7fc19eb000-0x7fc19ed000 stackSize=8188KB
runtime.cc:691]   | held mutexes= "abort lock" "mutator lock"(shared held)
runtime.cc:691]   native: #00 pc 004bca80  /apex/com.android.art/lib64/libart.so (art::DumpNativeStack+108) (BuildId: 735f12f804f88d62a2cb437261076ff7)
runtime.cc:691]   native: #01 pc 004b0dd4  /apex/com.android.art/lib64/libart.so (art::Thread::DumpStack const+388) (BuildId: 735f12f804f88d62a2cb437261076ff7)
runtime.cc:691]   native: #02 pc 004b0714  /apex/com.android.art/lib64/libart.so (art::DumpCheckpoint::Run+164) (BuildId: 735f12f804f88d62a2cb437261076ff7)
runtime.cc:691]   native: #03 pc 003ada50  /apex/com.android.art/lib64/libart.so (art::ThreadList::RunCheckpoint+452) (BuildId: 735f12f804f88d62a2cb437261076ff7)
runtime.cc:691]   native: #04 pc 004c99bc  /apex/com.android.art/lib64/libart.so (art::ThreadList::Dump+232) (BuildId: 735f12f804f88d62a2cb437261076ff7)
runtime.cc:691]   native: #05 pc 00771fe4  /apex/com.android.art/lib64/libart.so (art::Runtime::Abort+2156) (BuildId: 735f12f804f88d62a2cb437261076ff7)
runtime.cc:691]   native: #06 pc 000357d0<EMAIL_ADDRESS>(android::base::SetAborter::$_0::__invoke+80) (BuildId: 6f67f69ff36b970d0b831cfdab3b578d)
runtime.cc:691]   native: #07 pc 00034d58<EMAIL_ADDRESS>

@Dhirav-Shah It may crash here,
for (jint i_3 = 0; i_3 < element_0_subjectsItem_1Size; ++i_3)
{
jobject element_3;
chip::JniReferences::GetInstance().GetListItem(element_0_subjectsItem_1, i_3, element_3);
listHolder_3->mList[i_3] = static_cast<std::remove_reference_t<decltype(listHolder_3->mList[i_3])>>(
chip::JniReferences::GetInstance().LongToPrimitive(element_3));
}
What UI are you using, are you using wilcard UI or cluster Interaction UI, it seems subject 112233 from app is set as Integer instead of long, how do you fill subjects:[112233]? Could you try to set without subjects? I think it may not be crash.
thanks

hi @yunhanw-google,
I've successfully developed device-to-device binding in an iOS application.
I now want to be able to recognize my newly installed devices, such as "light-switch-app" or "lighting-app" in chip tool iOS application. Is there a way for us to obtain device identifying information or cluster information from the device payload?

for supported cluster, you can get it from descriptor cluster.
for device identify info, you can get it from identify cluster.
@Mitun90 has the above android issue resolved in your side in android? What UI are you using, are you using wilcard UI or cluster Interaction UI, it seems subject 112233 from app is set as Integer instead of long, how do you fill subjects:[112233]? Could you try to set without subjects?
thanks

@Dhirav-Shah  are you using cluster Interaction Tool UI?
https://github.com/project-chip/connectedhomeip/blob/c13b324a3b9dcd3b278015c03c33ceab5fbd1a30/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/clusterclient/clusterinteraction/ClusterDetailFragment.kt#L200C15-L200C31
It seems we cannot write a array using android chip-tool.
i guess you are using the API for this binding cluster, then you have to make sure 112233 is not long when you declare its type.

ue resolved in your side in android?

@yunhanw-google yes. android issue now resolved and successfully bind "light-switch-app" and "lighting-app" in android mobile application.
-> we used cluster interaction UI
-> For subjects:[112233], we tried without subjects and it works successfully.
Thank you.

@yunhanw-google  thanks for your replies.

May I know the exact scenario and identify what property? Thanks

I would close this one, feel free to recreate another issue with the scenario you wnana know about identify cluster, thanks


Cable status filter inoperative

Environment

Python version:  3.5.6
NetBox version:  2.5.10

Steps to Reproduce

Navigate to cables list
Filter by status (connected or planned)

Expected Behavior
Only cables of the selected status will be listed.
Observed Behavior
No cables are listed, regardless of which status is selected.

I am not able to reproduce this issue in NetBox 2.5.10 on Python 3.5.3. Filtering by status is working just fine in my case.

My mistake. This was definitely broken at one point but now I can't create it. Might have been running a dev version by mistake.


Issue after update to latest version

Since updating the plugin to the lates version the search works and it pulls the data to the NFO file but doesn't download images or find images when searching after again. In the log i see the following all the time
2022-09-28 10:30:20.491 Error ThePornDB: API error: "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'tpdb.movie_scenes' doesn't exist (SQL: select scenes.*, movie_scenes.movie_id as pivot_movie_id, movie_scenes.scene_id as pivot_scene_id from scenes inner join movie_scenes on scenes.id = movie_scenes.scene_id where movie_scenes.movie_id in (2189677))"
Emby Server: 4.0.9
Plugin Version: <IP_ADDRESS>

It's a site problem, not plugin


Promote quantity formatter to public

update release tags and add significantly more documentation.

No @public APIs should be undocumented.

All public and protected methods in QuantityFormatter now have documentation.


KOGITO-8289: SWF Editor - Marshalling codebase clean-up

Hello @romartin, @LuboTerifaj,
there is the refactoring of marshallers. I did a quick tests and didn't found any changes in kogito-showcase application examples. The marshaller logic is covered by Selenium tests, but if you think there is some missing Unit level tests, I will  add it to this PR. Thank you!
Task for this PR:

Clean up unused classes
Move custom converters  [2] into the marshallers package [1]
Clean up states and remove unsupported parameters
Write Unit tests for logic where needed.

Hello @kiegroup/gatekeepers PR is ready for merge. Thank you!


What is Sheer?

@rosskarchner Can you put a two sentence bite-size description of Sheer at the very top of the repo? It's a bit unclear to newcomers what it is/does.

The README should also include some use cases, like, "Why is Sheer useful?" and maybe "Advantages and Disadvantages of Sheer."

This should be fixed in #94.

#94 has been merged.