Closes #13080: Rename yii\base\InvalidParamException to yii\base\InvalidArgumentException

Q
A

Is bugfix?
no

New feature?
no

Breaks BC?
yes

Tests pass?
yes

Fixed issues
#13080

First of all, I'm not completely sure if InvalidArgumentException is the best name, maybe better to use InvalidArgException for brevity (previous name was shortened - InvalidParamException, not InvalidParameterException). But, from the other side, many dependent libraries use InvalidArgumentException (including Doctrine for example). Just try autocomplete it in IDE.
Additional fixes:

Reordered changes for 2.1 in CHANGELOG.
Refactored long lines (more than 120 chars) related to this change.
Removed unused import of yii\base\InvalidParamException in one place.

TODO:

[ ] Add this change to yii2-faker. (https://github.com/yiisoft/yii2-faker/blob/master/FixtureController.php#L219) Requires creation of another branch.
[ ] Check other extensions for using yii\base\InvalidParamException.

I suggest leave yii\base\InvalidParamException class, but extend it from yii\base\InvalidArgumentException for compatibility reasons

It is 2.1.0, we can break things.

I know that we can, but it's a massive BC break that will affect a lot of code.
Making too many hard-to-upgrade changes can spurn developers from upgrade at all

I suggest leave yii\base\InvalidParamException class, but extend it from yii\base\InvalidArgumentException for compatibility reasons

We can do this in 2.0.x and remove InvalidParamException in 2.1.0.

Probably

I suggest leave yii\base\InvalidParamException class, but extend it from yii\base\InvalidArgumentException for compatibility reasons

Interesting idea, but I think it will cause excess confusion.

I know that we can, but it's a massive BC break that will affect a lot of code.
Making too many hard-to-upgrade changes can spurn developers from upgrade at all

If it's covered in UPGRADE.md I think it's fine. As a developer you need to understand all consequences when migrating to newer major version.

Check other extensions for using yii\base\InvalidParamException.

$ grep -rni --exclude=vendor/ InvalidParamException extensions/
extensions/httpclient/Client.php:12:use yii\base\InvalidParamException;
extensions/httpclient/Client.php:121:     * @throws InvalidParamException on invalid format name.
extensions/httpclient/Client.php:140:                throw new InvalidParamException("Unrecognized format '{$format}'");
extensions/httpclient/Client.php:156:     * @throws InvalidParamException on invalid format name.
extensions/httpclient/Client.php:169:                throw new InvalidParamException("Unrecognized format '{$format}'");
extensions/jui/DatePicker.php:11:use yii\base\InvalidParamException;
extensions/jui/DatePicker.php:180:            } catch(InvalidParamException $e) {
extensions/mongodb/rbac/MongoDbManager.php:12:use yii\base\InvalidParamException;
extensions/mongodb/rbac/MongoDbManager.php:592:            throw new InvalidParamException("Cannot add '{$parent->name}' as a child of itself.");
extensions/mongodb/rbac/MongoDbManager.php:596:            throw new InvalidParamException('Cannot add a role as a child of a permission.');
extensions/mongodb/QueryBuilder.php:14:use yii\base\InvalidParamException;
extensions/mongodb/QueryBuilder.php:147:                throw new InvalidParamException('"key" is required for index specification');
extensions/mongodb/QueryBuilder.php:589:     * @throws InvalidParamException if the condition is in bad format
extensions/mongodb/QueryBuilder.php:606:            throw new InvalidParamException('Condition should be an array.');
extensions/mongodb/QueryBuilder.php:665:     * @throws InvalidParamException if wrong number of operands have been given.
extensions/mongodb/QueryBuilder.php:670:            throw new InvalidParamException("Operator '$operator' requires two operands.");
extensions/mongodb/QueryBuilder.php:728:     * @throws InvalidParamException if wrong number of operands have been given.
extensions/mongodb/QueryBuilder.php:733:            throw new InvalidParamException("Operator '$operator' requires three operands.");
extensions/mongodb/QueryBuilder.php:760:     * @throws InvalidParamException if wrong number of operands have been given.
extensions/mongodb/QueryBuilder.php:765:            throw new InvalidParamException("Operator '$operator' requires two operands.");
extensions/mongodb/QueryBuilder.php:840:     * @throws InvalidParamException if wrong number of operands have been given.
extensions/mongodb/QueryBuilder.php:845:            throw new InvalidParamException("Operator '$operator' requires two operands.");
extensions/mongodb/QueryBuilder.php:865:     * @throws InvalidParamException if wrong number of operands have been given.
extensions/mongodb/QueryBuilder.php:870:            throw new InvalidParamException("Operator '$operator' requires two operands.");
extensions/mongodb/QueryBuilder.php:887:     * @throws InvalidParamException if wrong number of operands have been given.
extensions/mongodb/QueryBuilder.php:892:            throw new InvalidParamException("Operator '$operator' requires two operands.");
extensions/mongodb/QueryBuilder.php:911:                throw new InvalidParamException("Unsupported operator '{$operator}'");
extensions/mongodb/file/Upload.php:13:use yii\base\InvalidParamException;
extensions/mongodb/file/Upload.php:173:            throw new InvalidParamException("Unable to read file '{$filename}'");
extensions/sphinx/MatchBuilder.php:10:use yii\base\InvalidParamException;
extensions/sphinx/MatchBuilder.php:176:            throw new InvalidParamException("Operator '$operator' requires three or more operands.");
extensions/sphinx/MatchBuilder.php:200:            throw new InvalidParamException("Operator '$operator' requires exactly one operand.");
extensions/sphinx/MatchBuilder.php:218:            throw new InvalidParamException("Operator '$operator' requires three operands.");
extensions/sphinx/MatchBuilder.php:236:            throw new InvalidParamException("Operator '$operator' requires two operands.");
extensions/sphinx/MatchBuilder.php:250:     * @throws InvalidParamException on invalid operands count.
extensions/sphinx/MatchBuilder.php:255:            throw new InvalidParamException("Operator '$operator' requires two operands.");
extensions/redis/ActiveQuery.php:11:use yii\base\InvalidParamException;
extensions/redis/ActiveQuery.php:373:     * @throws \yii\base\InvalidParamException
extensions/redis/ActiveQuery.php:492:        throw new InvalidParamException('Unknown fetch type: ' . $type);
extensions/redis/LuaScriptBuilder.php:10:use yii\base\InvalidParamException;
extensions/redis/LuaScriptBuilder.php:294:            throw new InvalidParamException("Operator '$operator' requires exactly one operand.");

The faker and imagine extensions have a yiisoft/yii2 requirement of * that needs to be fixed.

Fixed in https://github.com/yiisoft/yii2-faker/commit/8a406289c3af4da5e0092a96b37734dc1a16a43b for faker. The * requirement only affects the 2.0.x branch of imagine extension, not the 2.1 one.

Reverted CHANGELOG, is it ready to merge?

Merged, thank you!


+=, functions, and global variables

+= seems to have trouble with global variables in functions.  This is true even in PS 7.  "$x = $x + 1" would work ok.  I found the issue here:  https://github.com/nightroman/PowerShellTraps/tree/master/Basic/Compound-assignment-operators
Steps to reproduce
$x = 1
function addone { $x += 1; $x }
addone

Expected behavior
2

Actual behavior
1

Environment data

Name                           Value
----                           -----
PSVersion                      6.2.3
PSEdition                      Core
GitCommitId                    6.2.3
OS                             Microsoft Windows 10.0.16299
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Just to add to this, $x++ works fine as well, but other operators similar to += do not. For example:
$x = 1
function timestwo {$x *= 2; $x}
timestwo # returns nothing, should return 2

Return two what
On Mon, Dec 9, 2019, 9:37 AM Kirk Munro<EMAIL_ADDRESS>wrote:

Just to add to this, $x++ works fine as well, but other operators similar
to += do not. For example:
$x = 1function timestwo {$x *= 2; $x}
timestwo # returns nothing, should return 2
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/PowerShell/PowerShell/issues/11297?email_source=notifications&email_token=AN6RWNN3GHSE6DUQJFFT4TTQXZQ5FA5CNFSM4JYK42Z2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGJTL6Q#issuecomment-563295738,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN6RWNO7AW263MFVU463LZDQXZQ5FANCNFSM4JYK42ZQ
.

I don't understand
On Mon, Dec 9, 2019, 9:37 AM Kirk Munro<EMAIL_ADDRESS>wrote:

Just to add to this, $x++ works fine as well, but other operators similar
to += do not. For example:
$x = 1function timestwo {$x *= 2; $x}
timestwo # returns nothing, should return 2
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/PowerShell/PowerShell/issues/11297?email_source=notifications&email_token=AN6RWNN3GHSE6DUQJFFT4TTQXZQ5FA5CNFSM4JYK42Z2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGJTL6Q#issuecomment-563295738,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN6RWNO7AW263MFVU463LZDQXZQ5FANCNFSM4JYK42ZQ
.

I'm lost
On Mon, Dec 9, 2019, 9:46 AM Baby J<EMAIL_ADDRESS>wrote:

I don't understand
On Mon, Dec 9, 2019, 9:37 AM Kirk Munro<EMAIL_ADDRESS>wrote:

Just to add to this, $x++ works fine as well, but other operators
similar to += do not. For example:
$x = 1function timestwo {$x *= 2; $x}
timestwo # returns nothing, should return 2
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/PowerShell/PowerShell/issues/11297?email_source=notifications&email_token=AN6RWNN3GHSE6DUQJFFT4TTQXZQ5FA5CNFSM4JYK42Z2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGJTL6Q#issuecomment-563295738,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN6RWNO7AW263MFVU463LZDQXZQ5FANCNFSM4JYK42ZQ
.

Can you explain
On Mon, Dec 9, 2019, 9:47 AM Baby J<EMAIL_ADDRESS>wrote:

I'm lost
On Mon, Dec 9, 2019, 9:46 AM Baby J<EMAIL_ADDRESS>wrote:

I don't understand
On Mon, Dec 9, 2019, 9:37 AM Kirk Munro<EMAIL_ADDRESS>wrote:

Just to add to this, $x++ works fine as well, but other operators
similar to += do not. For example:
$x = 1function timestwo {$x *= 2; $x}
timestwo # returns nothing, should return 2
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/PowerShell/PowerShell/issues/11297?email_source=notifications&email_token=AN6RWNN3GHSE6DUQJFFT4TTQXZQ5FA5CNFSM4JYK42Z2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGJTL6Q#issuecomment-563295738,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN6RWNO7AW263MFVU463LZDQXZQ5FANCNFSM4JYK42ZQ
.

This is working as intended / expected
$y = $x +2
Will look in the local scope and then higher scopes until it finds  a variable named "x" , add two store & the result it in a variable named Y  in the current scope.
$x = $x +2
Will look in the local scope and then higher scopes until it finds  a variable named "x" , add two & store the result it in a variable named X  in the current scope.  This may result in two values of X one in the global scope and one local. I think people who are used to ideas of scopes have learned that this does not write back to the initial variable.
$x += 2
Will look in the local scope and then higher scopes until it finds a variable named "x" , add two store the result it in a variable named X  in the current scope.  It is just a short hand for $x = $x + 2. Again it may result in two values in different scopes.
$x ++
says "Find the variable X in whichever scope and tell it to increment itself".  Because the assignment is not explicit it doesn't create a new variable in the local scope.
If you are using a global variable  from inside a function write it as $global:x, to make it clear that is what you are doing. As a general rule functions shouldn't change global variables. If they must leave something behind in a variable, that's what environment variables are for.

@jhoneill You're missing an important detail. The function returns the value of $x. The use of scope is not the issue here.

Yeah, I think this is a bug. The function appears to literally not be able to find $x (or isn't looking for it?) when using +=.
@SeeminglyScience do you know anything on this one? On the surface it looks like += is simply ignoring values from higher scopes and only looking at the local scope.

@jhoneill You're missing an important detail. The function returns the value of $x. The use of scope is not the issue here.

Read error at line 1.
I'm sorry. Thought this was a different question.
Function test {$x += 1; $local:x ; $global:x}
and
Function test {$x = $x + 1; $local:x ; $global:x}
Should do the same thing and they don't.  Unless the intent was to punish the use of globals this does look like a bug, not intent.
@vexx. actually it seems worse than that. It finds X and stores it in the local scope without adding to it. Local:x being empty would be a more understandable error.

@vexx32

@SeeminglyScience do you know anything on this one? On the surface it looks like += is simply ignoring values from higher scopes and only looking at the local scope.

Yeah, all assignments do that afaik. You can read from previous scopes without issue, but attempting to write to them will create a new PSVariable in the current scope.
You can still write to previous scopes, but you would need to use Set-Variable with the Scope parameter, or be explicit in your intent with a scope modifier prefix like $global:myGlobalVar += 10.
That said, this is a little strange:
$x = 10
& { $x += 1; $x }
# returns 1 - not expected.  I would have expected 11 here.
$x
# returns 10 - expected.  Child scope shouldn't default to altering parent scope.

I would not expect that an add assignment would alter the variable from the parent scope, but I would expect that it would use the parents value for initialization.

@jhoneill Don't think that's what's happening here.
If you create the initial $x variable differently you can see the global behaviour mirrors what we're seeing inside the function.
If a variable does not exist and you're doing += to it, it will be created and the value added:
if ($x) { Remove-Variable -Name X }

$x += 10
$x # will be 10

So it's not that it's finding $x in the global scope and just isn't adding it. It's not finding it at all, and adding the value you asked to a nonexistent value, which to PS is treated the same as if the value was 0. You can see this more clearly with @SeeminglyScience's example -- the value it uses is not the original value of $x, it's just adding the specified value from += to an empty variable.
Thanks for the clarification @SeeminglyScience! Yeah, I agree it could be by design, but given that all other variable accesses tends to pull from the parent scope I think the inconsistency should probably be fixed.
@daxian-dbw

#-37'? Thevaluewasunsure8-&_-(duetoalotofdiffmov
On Mon, Dec 9, 2019, 2:23 PM Patrick Meinecke<EMAIL_ADDRESS>wrote:

@vexx32 https://github.com/vexx32
@SeeminglyScience https://github.com/SeeminglyScience do you know
anything on this one? On the surface it looks like += is simply ignoring
values from higher scopes and only looking at the local scope.
Yeah, all assignments do that afaik. You can read from previous scopes
without issue, but attempting to write to them will create a new
PSVariable in the current scope.
You can still write to previous scopes, but you would need to use
Set-Variable with the Scope parameter, or be explicit in your intent with
a scope modifier prefix like $global:myGlobalVar += 10.
That said, this is a little strange:
$x = 10& { $x += 1; $x }# returns 1 - not expected.  I would have expected 11 here.$x# returns 10 - expected.  Child scope shouldn't default to altering parent scope.
I would not expect that an add assignment would alter the variable from
the parent scope, but I would expect that it would use the parents
value for initialization.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/PowerShell/PowerShell/issues/11297?email_source=notifications&email_token=AN6RWNKVGYC24RLG4QMZOC3QX2SLDA5CNFSM4JYK42Z2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGKR2PA#issuecomment-563420476,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AN6RWNJ6477CKGWYXUXDPFTQX2SLDANCNFSM4JYK42ZQ
.

Yeah, this weird. If you expand the $x += 1 out into $x = $x + 1 it behaves the way you'd expect (based on PS scoping rules).

@vexx32  it's easy to test if one uses different values, you're right.

I don't see how this is by-design:
PS> function add1 { $x; $x++; $x }
[2.99ms] /Users/steve
PS> function add2 { $x; $x += 1; $x }
[2.46ms] /Users/steve
PS> function add3 { $x; $x = $x + 1; $x }
[1.47ms] /Users/steve
PS> $x = 10
[2.14ms] /Users/steve
PS> add1
10
11
[14.51ms] /Users/steve
PS> add2
10
1
[6.77ms] /Users/steve
PS> add3
10
11

From the document @jszabo98  referenced:

From WMF 3 Release Notes.docx at WMF 3.0:
Change
Read/Modify/Write operators no longer use dynamic scoping for the Read
operation. Also, compound equality operators (including +=, -=, *=, %=, ++,
--) do not use dynamic scoping.  The variable is always in the current scope.

I have vague memories about this change. @lzybkr  would probably remember more.  Note that the current behaviour has existed since version 3 so doing anything about it now would be a non-trivial breaking change.

IIRC, it was difficult to preserve the old behavior and both behaviors were surprising. Modifying the original example ever so slightly:
$x = 1
function addone { $x += 1; $x }
addone
$x

In V2, this prints:
2
1

In V3 and beyond, this prints:
1
1

Thus in V2, the global variable was not modified, instead a new local variable was introduced, hiding the global.
The thinking in the breaking change was that reasonable code should be written differently:
function test {
    $global:x += 1
    $local_x = $global:x + 1
}

I can sort of see why this might be desirable, but I think in terms of expectation it's more reasonable for users to expect $a += $b to be equivalent to $a = $a + $b than it is for us to expect end users to be that aware of scope lookups.

Currently, $x++ is equivalent to $x = $x + 1, but $x += 1 is equivalent to $x = 0; $x++.
Referencing a variable as in $x + 1 will look up the scope chain for the variable while assignment as in $x = will create a new variable in the current scope.
PS> $x = 1
PS> function addone1 { $x++; $x }
PS> addone1
2
PS> $Global:x
1
PS>
PS>
PS> function addone2 { $x = $x + 1; $x }
PS> addone2
2
PS> $Global:x
1
PS>
PS>
PS> function addone3 { $x += 1; $x }
PS> addone3
1
PS> $Global:x
1
PS>
PS>
PS> function addone4 { $x = 0; $x++; $x }
PS> addone4
1
PS> $Global:x
1

Ideally, $x++ and $x += 1 should have the same behavior as $x = $x + 1, but like @BrucePay said, this would be a non-trivial breaking change.

By the way, this is a nice collection of powershell traps and oddities.  This is where I got the bug from:  https://github.com/nightroman/PowerShellTraps

Stackoverflow, and a script that works in debug mode because of += and scope:  https://stackoverflow.com/questions/61157939/powershell-error-while-adding-custom-object-to-a-list-program-runs-without-err

WG-Engine discussed this yesterday in conjunction with #17911.
See my comment in that issue.


Verification is taking much time

The verification of the my payment profiles have already taken more than 48 hours and yet not get the completed status

Detalhes do documento
⚠ Não edite esta seção. É necessário para a vinculação do problema do docs.microsoft.com ➟ GitHub.

ID: 98f4a20b-33aa-a616-6206-461d83fde6b8
Version Independent ID: c28b8f31-922e-02b3-93c9-effa13395e1d
Content: Configurar a conta de pagamento e formulários de imposto - UWP applications
Content Source: windows-apps-src/publish/setting-up-your-payout-account-and-tax-forms.md
Product: uwp
Technology: publish
GitHub Login: @hickeys
Microsoft Alias: hickeys

Thanks for reaching out with your feedback. Is there anything you'd like to see on our documentation that could potentially help solve your roadblock? If else, I'm thinking there might be answers to your specific issue on our developer resources. For community assistance with development questions I recommend that you ask on our forums or StackOverflow. Otherwise, please see the developer support page for your support options. If you get assistance through these other resources and believe that information would help us improve the docs, please come back, file a new Issue or Pull Request, and let us know.


Write text for designer to go on the getting started page

After reading the getting started page a designer knows...
### Acceptance criteria
- [x] ... how to load the SLDS component library into figma
- [x] ... how to use the components from the library
- [x] ... how the structure of the components is set up
- [x] ... how to use the light and dark themes

https://confluence.sanomalearning.com/pages/viewpage.action?pageId=411582265


doc: Updated readme

Closes #97

#98  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tazarov and the rest of your teammates on  Graphite


support FOREIGN TABLE

https://www.postgresql.org/docs/9.6/static/sql-createforeigntable.html
FOREIGN TABLE not support SERIAL PRIMARY KEY
maybe replace
 dump.gsub!(/^    id integer NOT NULL,$/, '    id SERIAL PRIMARY KEY,')

by
dump.gsub!(/^CREATE TABLE (\w+) \(\n    id integer NOT NULL,$/, "CREATE TABLE \\1 (\n    id SERIAL PRIMARY KEY,")

Good idea - do you want to make a PR?


More shading concepts, adjusting the v1.3 addition

In addition to the shading descriptions merged in v1.3 [/pull/328] additional concepts are needed, see suggestion below. Talking with project teams it seems “blind” is a better name than “shade”, it would also solve the tag conflict mentioned in the pull request. I don’t have a good nomenclature reference but see e.g. here [http://www.standard-motor-interface.com/wp-content/uploads/2020/10/160224_SMI_Manual_EN.pdf]
Not sure when 1.3 is intended to be released but if there is not enough time to address this it would be good to remove the classes brick:Shade and brick:Shade_Array for now to keep things flexible.
There are many kinds of shading equipment but from a controls and data perspective it usually comes down to a blind position and possibly also a blind slat angle. The current brick:Illuminance_Setpoint, brick:Tint_Status and brick:Tint_Command are fine as is.
Shading suggestion, new classes:
Equipment / Shading Equipment
Equipment / Shading Equipment / Blind
Equipment / Shading Equipment / Blind / Roller Blind
Equipment / Shading Equipment / Blind / Slatted Blind
Equipment / Shading Equipment / Blind Controller  (maybe skip this one, thermostat is the only other similar equipment I've seen in Brick)
Location / Zone / Blind Zone
Collection / System / Shading System
Collection / System / Shading System / Blind Group (or Blind Zone Equipment Group)
Point / Status / Position Status / Blind Position Sensor
Point / Status / Angle Status / Blind Slat Angle Sensor
Point / Command / Blind Command
Point / Command / Blind Command / Blind Position Command
Point / Command / Position Command / Blind Position Command
Point / Command / Blind Command / Blind Slat Angle Command
Point / Command / Angle Command
Point / Command / Angle Command / Blind Slat Angle Command

Hi Oskar, thanks for pointing this out. I'm glad that you caught this one before the release :)
I can't say I'm an expert in lighting systems and would love to have inputs from the community on this. Your proposal looks strong and would love to receive a PR on this. Otherwise, I can create one too.
I do have some questions regarding the terms.

I intended to distinguish shades from blinds as they were different in my research: e.g., https://www.blindsgalore.com/blog/index.php/blinds-basics/shades-vs-blinds-whats-the-diff/.  Is it correct or are they all called blinds?

If they are different, we can add Blind. Otherwise, yeah we need some adjustment.

You named Blind Zone while the top level equipment and the system name starts with Shading. To me, Shading Zone sounds more generic. What do you think?
In Brick, statuses and sensors are strictly differentiated. Sensors actually measure the physical phenomena through a sensing device. Statuses are usually register values in the case of motor controllers, in this case the servo motor for controlling the positions. Do you think the proposed Position/Angle Sensors are still sensors or statuses?
FYI, Tint_Status/Command were introduced for Automatic_Tint_Windows but not Blinds. Are they related to Blinds as well? Just for my own curiosity.

Thanks and happy to resolve this sooner than later.

My proposal is not worked out in detail and will try to clarify things further as soon as I find time. Yes, community input on this would be great. I come from a room controls perspective but there should be other relevant use cases.

About nomenclature, maybe it differs if you work with design or controls where you only care about function. I’ll try to find more references but e.g. the room control standard VDI 3813 talks about blinds and not shades. Also from https://en.wikipedia.org/wiki/Window_blind  “The term window blinds can also be used to describe window coverings more broadly”. I’ll do some more investigation on this, also your “Shading Zone” suggestion.

About sensor or status. It’s a typo, I intended it to be statuses but named the point wrong… Some blind motors have a register for the blind position as you say and in other cases the position is estimated by the blind controller based on timing. In both these cases status seems like a better choice but I could be wrong.

I’m not that familiar with Tint Windows but no, Tint_Status/Command are not applicable to blinds. I know of it as electrochromic glass or smart glass. It would be good to get some naming references on this too

I can try to do a PR but might need some help : )

I finally recalled the source of Shades: https://www.somfysystems.com/en-us/products/shades-blinds-curtains
They distinguish shades vs blinds. I think that makes sense given blinds control will involve more dimension of controllability as slats' angles should be controllable, whereas only the height is controllable for shades.

Good point. Looking at the UK version of the same page (https://www.somfy.co.uk/) it seems that "blind" and "shade" means different things in US/UK... Another example:
https://www.lutron.com/en-US/Products/Pages/ShadingSystems/SivoiaQS/WindowTreatments/WindowTreatments.aspx
https://www.lutron.com/europe/Products/Pages/ShadingSystems/SivoiaQS/WindowTreatments/WindowTreatments.aspx
Not sure how to handle this in the least confusing way. Have there been any brick localization need for US/UK in the past?
An option could be a generic and neutral brick:Window_Covering (or similar) that can represent a wide range of things and remove the "Blind" specifics from the points. Just thinking out loud...
About the slat angle point, I see that brick:Position is defined as "The fraction of the full range of motion" in %. Is there something similar for angle? For slat angle, % would make more sense than degrees. By the way, the applicable unit for brick:Angle is unit:MIN_Angle shouldn't it be unit:DEG? Or for this case even better unit:PERCENT

@OskarNSE  I see Shades in Lutron's europe pages too. E.g., https://www.lutron.com/europe/Products/Pages/ShadingSystems/PalladiomShades/Overview.aspx.
But now I see that Shades are not used in UK as defined here

(UK blind) a piece of material fixed onto a wooden or metal roller that can be pulled down to cover a window.

Do you have any other proposal for distinguishing Shade vs Blinds? Shade being a subclass of Blind (i.e., any kind of shading device) is an option. We can certainly add different labels in different languages like BOT did.. Having different class names for different languages is another option, but the usability and maintenance will be questionable.
Floor vs Level was another localization example though we simply chose Floor as we also use Level in a different way, and we thought it's not confusing.
unit:MIN_Angle is a type of angle: https://telluric.us/minute-of-angle though I think QUDT should have used MIN_Arc like this.
I think Position can be generally applicable for angle-related concepts as well, but Angles should have a unit of angles other than its other representation (like percentages) in my opinion. So I'd say let's use Slat_Position_Command (percentage).

A strategy to avoid confusion about the UK/US naming is to be less precise but still give enough context to the data. If more details are needed it can grow over time. I’ve been discussing different options internally and the preferred choice seem to be keeping shading as the general concept but to call any kind of shading equipment a blind. An equipment that can have a position and sometimes also an angle. To better differentiate between the two points I would prefer naming one by angle and one by position (not both position). Maybe the class can be “Blind Angle Sensor” without measuring the angle quantity? See table below. I would very much like to get community feedback on this.

Class
Description
Comment

Equipment / Shading Equipment

Equipment / Shading Equipment / Blind
Equipment that control daylighting through various mean

Location / Zone / Shading Zone
Location with a common shading control logic

Collection / System / Shading System
Devices that can control daylighting through various means
In Brick 1.2

Collection / System / Shading System / Blind Group
A grouping of blinds commonly attached to a single controller
replacing suggested "Shade_Array"

Point / Sensor / Position Sensor / Blind Position Sensor
Measures the current position of a blind in terms of window coverage percentage

Point / Sensor / Angle Sensor / Blind Angle Sensor
Measures the current angle of blind slats

Point / Command / Blind Command
Control properties of window blinds

Point / Command / Blind Command / Blind Position Command
Controls the degree of window blind coverage

Point / Command / Position Command / Blind Position Command
Controls the degree of window blind coverage

Point / Command / Blind Command / Blind Angle Command
Controls the angle of blind slats

Point / Command / Angle Command
Controls the angle of some object

Point / Command / Angle Command / Blind Angle Command
Controls the angle of blind slats

Hi Oskar, sorry for the late response. I like the proposal in general except that the definition of "Blind" should be applied to "Shading Equipment" by the words. The given definition reads very generic and should  be applied to he general concept. It seems Shade can be a subclass of Blind but I will defer that to future discussions.
@epaulson  any thoughts?

Hi Jason, also sorry about the late reply. I agree with your comment and I’ll try to think of a more specific but still generic description for blind. I’m open to suggestions though
I don’t know the release status of Brick 1.3 but while we haven’t figured out this topic it would be good to pull out brick:Shade and brick:Shade_Array as mentioned earlier so that they don’t become part of 1.3

Hey Oskar, we had some resolution in the last week's regular meeting. We will introduce Shading_Equipment and Blind in 1.3 and discuss Shade after then. Highly probably Shade will be a subclass of Blind. Is it okay for you?

Ok, very good. Is anybody working on a PR for this?

Not yet. I planned to work on it later this week.

@OskarNSE please check this PR https://github.com/BrickSchema/Brick/pull/408 Thanks!

Can this issue be closed due to https://github.com/BrickSchema/Brick/pull/408 being merged?

Yes, sorry for the delay


Question about the parameters

Hi, team!  @WeiDaiWD
I'm trying to move to SEAL (the previous used is HElib). I have some questions about select parameters to create context and keys.
First, I want to do some performance tests between SEAL and HElib, but something is wrong with the params (not that similar to HElib).
I was going to generate a 256-slot vector for batch encoding, encrypt and decrypt, but size_t poly_modulus_degree = 256; shows it's an invalid argument.
Then, I change to 1024., but the decrypted result is wrong.
Create Context: Done [1705 microseconds]
/
| Encryption parameters :
|   scheme: BFV
|   poly_modulus_degree: 1024
|   coeff_modulus size: 27 (27) bits
|   plain_modulus: 1038337
\

Batching enabled: true
Generating secret keys: Done [4 microseconds]
Generating public keys: Done [105 microseconds]
Number of slots: 1024
Plaintext matrix row size: 512
 Plaintext Vector:

    [ 0, 1, 0, 1, ..., 0, 1, 0, 1 ]

Encode plaintext matrix: Done [10 microseconds]
Encrypt plain_matrix to encrypted_matrix: Done [175 microseconds]
Decode result: Done [58 microseconds]
Decrypt result: Done [15 microseconds]
 Decrypted Vector:

    [ 992904, 441864, 440500, 244676, ..., 168071, 381196, 668442, 482075 ]

Basically,  my questions:

Can I set the slot_count = 256 in SEAL, less than 1024? Since in HElib, I need to find m,p,r like: Params param(/*m=*/12800, /*p=*/127, /*r=*/1, /*bits=*/119, /*c=*/2); \\ slot=256
In Helib,  bits is set to control the mul depth. In SEAL, How should I do?  In my case, I will do matrix multiplication, the matrix elements are 0/1, so the plaintext_moduls could be a small value (in HElib, it's /*p=*/127).  For the matrix multiplication, the number of multiplication is at most 1 or 2.
Do we have to manage memory when doing operations in SEAL?

encrypted1.Reserve(3);
evaluator.MultiplyInplace(encrypted1, encrypted2);

One more thing, in HElib or HEAAN, they use ZZX (ZZX.h in NTL) to represent the polynomial. what's that in SEAL? I propose this question is because I need to change my code to SEAL style, like  the below codes.
For example,  some encode operations between vector and polynomial.
in HElib:

ZZX*& poly = new zzX[length];
vector<vector<long>> lvals(length);
ea.encode(poly[k], lvals[k]);
ctxt.multByConstant(poly[k]);

in HEAAN:
ZZX*& poly =  new ZZX[length];
complex<double>** vals = new complex<double>*[length];
poly[i] = scheme.context.encode(vals[i], nslots, cBits);
result_ctxt = scheme.multByPoly(ctxt, poly[i], cBits);

Does secret-key mode work in the same way as the public-key mode. In my case, I actually don't need the public key. The general workflow is: encrypt the matrix; multiplications and rotations; decrypt the result in another trusted party (who will also hold the secret key).  Is there any sample code to introduce the secret-key mode?

Sry for so many questions. Sry for my noise.

This is the code, almost is the example code.
     EncryptionParameters parms(scheme_type::bfv);
    size_t poly_modulus_degree = 1024;
    parms.set_poly_modulus_degree(poly_modulus_degree);
    parms.set_coeff_modulus(CoeffModulus::BFVDefault(poly_modulus_degree));
    parms.set_plain_modulus(PlainModulus::Batching(poly_modulus_degree, 20));
    SEALContext context(parms);

    print_parameters(context);
    cout << endl;

    auto qualifiers = context.first_context_data()->qualifiers();
    cout << "Batching enabled: " << boolalpha << qualifiers.using_batching << endl;

    KeyGenerator keygen(context);
    SecretKey secret_key = keygen.secret_key();

    PublicKey public_key;
    keygen.create_public_key(public_key);

    Encryptor encryptor(context, public_key);
    Evaluator evaluator(context);
    Decryptor decryptor(context, secret_key);
    BatchEncoder batch_encoder(context);

    size_t slot_count = batch_encoder.slot_count();
    cout << "Number of slots: " << slot_count << endl;
    size_t row_size = slot_count / 2;
    cout << "Plaintext matrix row size: " << row_size << endl;

    vector<uint64_t> vecMat(slot_count);
    for (size_t i = 0; i < slot_count; ++i)
    {
    	vecMat[i] = i % 2;
    }
    cout << " Plaintext Vector: " << endl;
    print_vector(vecMat);

    Plaintext plain_matrix;
    batch_encoder.encode(vecMat, plain_matrix);

    Ciphertext encrypted_matrix;
    encryptor.encrypt(plain_matrix, encrypted_matrix);

    Plaintext plain_result;
    vector<uint64_t> pod_result;

    decryptor.decrypt(encrypted_matrix, plain_result);
    batch_encoder.decode(plain_result, pod_result);

    cout << " Decrypted Vector: " << endl;
    print_vector(pod_result);

Can I set the slot_count = 256 in SEAL, less than 1024? Since in HElib, I need to find m,p,r like: Params param(/m=/12800, /p=/127, /r=/1, /bits=/119, /c=/2); \ slot=256

In SEAL you set only the poly_modulus_degree, for BFV, that is also the number of slots. The HE security standard does not have parameters for degree 256. By default, SEAL will treat that as insecure. You may bypass the security check and use custom parameters by constructing SEALContext with extra input parameters. See this function. You can use SEALContext(params, true, sec_level_type::none).

In Helib, bits is set to control the mul depth. In SEAL, How should I do? In my case, I will do matrix multiplication, the matrix elements are 0/1, so the plaintext_moduls could be a small value (in HElib, it's /p=/127). For the matrix multiplication, the number of multiplication is at most 1 or 2.

The similar concept to "bits" is the total bit count of coeff_modulus in EncryptionParameters. This is configured by creating custom coeff_modulus with intended bit sizes.

Do we have to manage memory when doing operations in SEAL?
encrypted1.Reserve(3);
evaluator.MultiplyInplace(encrypted1, encrypted2);

No, Evaluator methods usually manages memory for output. Of course, encrypted1 must have size at least 2 to work as an input.

One more thing, in HElib or HEAAN, they use ZZX (ZZX.h in NTL) to represent the polynomial. what's that in SEAL? I propose this question is because I need to change my code to SEAL style, like the below codes.

In SEAL users don't need to manage polynomials, instead, only create Plaintext, Ciphertext, etc. Please follow the examples. You will see how your code in HElib or HEAAN are implemented in SEAL without the concept of polynomials.

Does secret-key mode work in the same way as the public-key mode. In my case, I actually don't need the public key. The general workflow is: encrypt the matrix; multiplications and rotations; decrypt the result in another trusted party (who will also hold the secret key). Is there any sample code to introduce the secret-key mode?

Yes, in examples. For instance, here.

Current SEAL's implementation is very different from HElib.
I strongly recommend to read papers about the full-RNS-variant of BFV.


tensorflow lite tests on x86

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04.1 LTS
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): source
TensorFlow version: commit a2bb5db1bf7931b0dc2cd08e53b8798489568198
Python version: 2.7.15rc1
Installed using virtualenv? pip? conda?: sources
Bazel version (if compiling from source): 0.20.0
GCC/Compiler version (if compiling from source): gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
CUDA/cuDNN version: -
GPU model and memory: -

Describe the problem
Tensorflow lite tests seem to require android sdk even though we wanted to test them on x86.
Provide the exact sequence of commands / steps that you executed before running into the problem
bazel test --local_resources 40000,23,2 -- //tensorflow/lite/...
Any other info / logs
ERROR: /home/tclbot/.cache/bazel/_bazel_tclbot/eee9defa2fa4c4fc557baa005719ebd9/external/bazel_tools/tools/android/BUILD:391:1: Executing genrule @bazel_tools//tools/android:no_android_sdk_repository_error faile
d (Exit 1)
This build requires an Android SDK. Please add the android_sdk_repository rule to your WORKSPACE.

We probably need to mark a few targets with the "manual" tag to allow this kind of glob-based testing for x86.

@jdduke do you have some suggestions what quick fix I can do so that I have working CI which can run tf lite tests? I've came to the command below which disables tests in tflite which don't work on the standard non-google environment (so that all tests pass) but bazel still fails because of the error mentioned above
bazel test --test_tag_filters=-no_oss,-gpu,-benchmark-test --test_lang_filters=cc,java -k
--jobs=${N_JOBS} --test_timeout 300,450,1200,3600 --config=opt
--test_output=errors --test_size_filters=small,medium --
//tensorflow/lite/...
-//tensorflow/lite/kernels/internal/...
-//tensorflow/lite/kernels:resize_bilinear_test
-//tensorflow/lite/kernels:resize_nearest_neighbor_test
-//tensorflow/lite/testing/...

Does excluding //tensorflow/lite/java/... work?

@jdduke It works. Thank you very much for your help :)
It's good that documentation has been updated because even quite recently it was claiming that tests should work properly without any exclusions.
Anyway it's a bit annoying that the big open-source project doesn't have all tests running in the official docker image and when somebody wants to develop something there and wants to have CI running he needs to figure out which tests don't work (because in some cases fixing them would be very time consuming).

Yeah, apologies for the pain. Part of the problem is that internally we use another set of files to provide build hints for certain directories, but these hints are only used in our internal, automated builds.

Closing this issue since it's resolved. Thanks!


Two set of ZCDs(CC2530) not working when both are placed closer

Hi,
I using CC2530_CC2591 as my ZCD with "C2530_CC2591_Default_20190608 firmware" in it. Now I have 2 ZCD with same firmware.
In 1st ZCD I have added 10 lighting devices.
2nd ZCD I have added 15 lighting devices.
Both sets of ZCD working fine individually and it can also be controlled, But when I am powering both ZCD at same time (or) placing the 1st ZCD closer to 2nd ZCD, then I can't control the lighting devices.
If I am turning off the any one ZCD, then I can control the another set of devices.
Is there any solution for this type of issue..?

I think this is a general issue with zigbee routers / transmitters.
For instance when i place 2 ikea sockers next to each other (few cm in between) it is just a matter of time before one or the other will drop off the network. I think there are guidelines for placement in the zigbee documentation that confirm this.


There should be Archiving of (versioned/snapshot) data products

Steering Group Jan2020 agreed:
Objective, not user story.

Objective of JCDP development, therefore closed


Add Puppet Development Kit

Tool information

Tool name: Puppet Development Kit (PDK
Tool license: Apache License 2.0
Add or update? Add
Desired version: 2.1.0
Approximate size:
If this is an add request:

Brief description of tool: The Puppet Development Kit (PDK) includes key Puppet code development and testing tools for Linux, Windows, and OS X workstations, so you can install one package with the tools you need to create and validate new modules.
PDK includes testing tools, a complete module skeleton, and command line tools to help you create, validate, and run tests on Puppet modules. PDK also includes all dependencies needed for its use.

URL for tool's homepage: https://puppet.com/docs/pdk/2.x/pdk.html

Provide a basic test case to validate the tool's functionality:
# create and cd into a new module
pdk new module foo --skip-interview
cd ./foo
# runs linting
pdk validate
# runs all unit tests
pdk test unit
# Exports reference docs for a Puppet module
pdk bundle exec puppet strings generate --format markdown --out REFERENCE.md

Area for Triage:
Packages, Scripting and command line, testing and code coverage
Question, Bug, or Feature?:
Feature
Virtual environments affected

[x] Ubuntu 16.04
[x] Ubuntu 18.04
[x] Ubuntu 20.04
[x] macOS 10.15
[x] macOS 11
[x] Windows Server 2016 R2
[x] Windows Server 2019

Can this tool be installed during the build?
Yes.
# ubuntu 16.04
wget https://apt.puppet.com/puppet-tools-release-xenial.deb
sudo dpkg -i puppet-tools-release-xenial.deb
sudo apt-get update
sudo apt-get install pdk
# Ubuntu 18.04
wget https://apt.puppet.com/puppet-tools-release-bionic.deb
sudo dpkg -i puppet-tools-release-bionic.deb
sudo apt-get update
sudo apt-get install pdk
# Ubuntu 20.04
wget https://apt.puppet.com/puppet-tools-release-focal.deb
sudo dpkg -i puppet-tools-release-focal.deb
sudo apt-get update
sudo apt-get install pdk
# MacOS
brew install --cask puppetlabs/puppet/pdk
# Windows
choco install pdk

Tool installation time in runtime
< 5m - install is noticeably longer on Windows than other platforms.
Are you willing to submit a PR?
Yes!

@AlenaSviridenko @maxim-lobanov For reference:

OS
Installation time
Size

win19
4.5 min
2Gb

macos1015
2 min
1.6Gb

ubuntu18
1 min
1.15Gb

Hi @michaeltlombardi,
unfortunately, at the moment we cannot afford to install such large tools due to the image space concerns. Some time ago we received several incidents related to disk space, so now our images considered as pretty full of software, so we are trying to avoid installing big tools in favor of smaller and more requested tools.
I am closing this issue. Please, let me know if you have any concerns. Thanks.


No option to completely export the full playwright report

What are you trying to achieve?
I want to view the playwright html report in the CI pipeline in order to directly see the traces in the browser without needing to download the zips and executing yarn run playwright show-trace ... on the console.
What do you get instead?
The option to export videos and traces on their own
Details

CodeceptJS version: 3.4.1
Operating System: Ubuntu 22.04.2 LTS
Playwright version: 1.36.2
node version: v18.17.0

I don't know if this is possible to get HTML out of Playwright as it can be part of playwright/test framework.
We are not planning to implement it but we are welcoming any PRs that improve reporting


add catppuccin theme

Hi,
this adds the catppuccin theme. I wanted to use this myself and thought maybe others would enjoy it as well.

Thanks for the PR, sorry you got caught in the middle of a large refactor that I just finished. Two comments but otherwise looks good.

Can add the plugin to the plugins.adoc file instead of the readme.
Add "catpuccin" to the availablePlugins. It does not exist in flake.nix anymore.

The restructure looks awesome. I'll try to fix up this PR today and will let you know when I am done.

Should now be working again :)

Thanks for the addition!


removing unschedulable node results in stuck status "shutting_down"

repro

create more nodes than capacity
remove unschedulable node, riak-mesos node --cluster weatherstation remove --node riak-weatherstation-10

result
Node remains in cluster list
riak-mesos node --cluster weatherstation list | jq .
{
  "nodes": [
    "riak-weatherstation-3",
    "riak-weatherstation-10",
    "riak-weatherstation-7",
    "riak-weatherstation-9",
    "riak-weatherstation-6",
    "riak-weatherstation-8",
    "riak-weatherstation-1",
    "riak-weatherstation-2"
  ]
}

Node status remains fixed
riak-mesos node --cluster weatherstation info --node riak-weatherstation-10 | jq .
{
  "riak-weatherstation-10": {
    "key": "riak-weatherstation-10",
    "status": "shutting_down",
    "location": {
      "node_name": "",
      "hostname": "",
      "http_port": "undefined",
      "pb_port": "undefined",
      "disterl_port": "undefined",
      "agent_id_value": ""
    },
    "container_path": "",
    "persistence_id": ""
  }
}

expected
Node is removed.

Confirmed with scheduler-1.1.1, output of riak-mesos framework status https://gist.github.com/5ebf0b01693d939570cb17838f19b947

Thanks for the reproductions teps @seanjensengrey - can reliably reproduce this here, will investigate the cause.
In the meantime, if you hit it again you can do
riak-mesos node remove --force --node $offending_node

for any node stuck in shutting_down: it will immediately remove it from the scheduler.


Invalid source map location on latest SDK

Environment:
Running Dart VM version: 2.5.0-dev.0.0 (Thu Jun 20 22:29:29 2019 +0200) on "windows_x64"
With the following build packages (currently the latest for all packages):
build_config:file:///C:/Users/grouma/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/build_config-0.4.0/lib/
build_daemon:file:///C:/Users/grouma/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/build_daemon-1.1.0/lib/
build_modules:file:///C:/Users/grouma/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/build_modules-2.3.0/lib/
build_resolvers:file:///C:/Users/grouma/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/build_resolvers-1.0.5/lib/
build_runner:file:///C:/Users/grouma/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/build_runner-1.6.0/lib/
build_runner_core:file:///C:/Users/grouma/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/build_runner_core-3.0.6/lib/
build_web_compilers:file:///C:/Users/grouma/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/build_web_compilers-2.1.1/lib/
built_collection:file:///C:/Users/grouma/AppData/Roaming/Pub/Cache/hosted/pub.dartlang.org/built_collection-4.2.2/lib/

Reproduction:
Build the following (although any basic web app should do):
https://github.com/dart-lang/webdev/tree/master/example
Notice that main.dart.js contains the following:
 dart.trackLibraries("web/main", {
    "org-dartlang-app:///web/main.dart": main
  }, {
  }, '{"version":3,"sourceRoot":"","sources":["..\\\\null\\\\web\\\\main.dart"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;IAUE,WAAM;IAEN,4BAAkB,aAAa,SAAC,GAAG;MACjC,WAAM;AACN,YAAgC,+CAAO,AAAK,oBAAO,uCAAC,WAAW;IAChE;IACD,AAAS,AAAK,kCAAO,wBAAe,YAAO;AAEvC,gBAAQ;IACN,qBAAS,gCAAkB,KAAI,QAAC;MACpC,WAAM,AAAwB,0BAAP,QAAF,AAAE,KAAK,GAAP;;EAEzB","file":"main.ddc.js"}');
  // Exports:
  return {
    main: main
  };

Clearly the source map location \null\web\main.dart is invalid. This causes issues with debugging and general web development.
Note that downgrading Dart to version <IP_ADDRESS>-dev-1 resolves the issue.

Fix out for review here: https://dart-review.googlesource.com/c/sdk/+/107452
Will verify with non-windows backends tomorrow.

Fixed in https://github.com/dart-lang/sdk/commit/ac93a3c3687a655da313cb76933b1c8f3ef40c02 – I believe – right @Markzipan ?


Implement view[index] for memory-backed Views

In general, implementations of View compute their elements using an arbitrary function, but in practice many Views are just ways of addressing memory. In such cases, it would be useful to implement std::ops::Index and std::ops::IndexMut to give read/write access to the memory via Rust borrows.
Furthermore, given a memory-backed View indexed by I whose elements are Views indexed by J, v.nested() could return a View indexed by (I, J). I resisted this for Views that are not memory-backed, for fear of exploding costs.

This is now mostly done. As a witness, I've written an empty trait MemoryView which depends on View, Index and IndexMut. I've written a macro to avoid repetitive boiler-plate implementations.
I've implemented MemoryView for every View in the crate type except Diagonal and Concat which require special treatment.

View::view_mut() is not possible, because mutable references don't implement Clone.

There is a requirement for types such as &mut V and Arc<V> (which dereference to V) to implement MemoryView when V does. Without this feature, you cannot wrap a MemoryView without consuming it.
Unfortunately, &mut V and Arc<V> do not implement Index and IndexMut, and there's nothing I can do about that because they are defined in the standard library.
So I've had to change the definition of MemoryView. It cannot depend on Index and IndexMut. Instead, it has methods at_ref() and at_mut().
I've written a macro impl_ops_for_memoryview, analogous to impl_ops_for_view, which implements Index and IndexMut in terms of MemoryView. This can be used for new types, at least. Rust's auto-dereferencing then allows the ergonomic view[index] syntax to be used for &mut V and Arc<V>.
Work in progress!
View::nested() and View::view_ref() are done.


Create PULL_REQUEST_TEMPLATE.md

Add a pull request template, including a checklist to indicate what checks have been carried out prior to review.

@ONS-SST/cis-dev any thoughts on what else should be included here?

I'm happy to approve when comments are addressed. Would be good to have another member of the team double check though as we will all need to follow the standard.


11/29/2018 23:55 : Create Pull Request for branch prWarning-e2e -> master

:cloud: Pending: waiting for processors

Note: You can also view OPS Portal for detail build statistics, or click here to report any potential performance downgrade issues.

:clock10: Preparing: avg. preparing time 44 sec(s)

:clock10: Incremental building: avg. incremental building time 14 sec(s)

:warning: Validation status: warnings

File
Status
Preview URL
Details
Dependent Files

E2E_DocsBranch_Internal_Dynamic/index.md
:warning:Warning
View
Details

E2E_DocsBranch_Internal_Dynamic/index.md

[Warning] Metadata with following name(s) are not allowed to be set in Yaml header, or as file level metadata in docfx.json, or as global metadata in docfx.json: content_type. They are generated by OPS, so the values set in these 3 places will be ignored. Please remove them from all 3 places to resolve the warning.
[Warning] the value invalid_type is undefined for metadata content_type
Line 5: [Warning] Invalid file link:(~/../nonexisted1.md).
Line 6: [Warning] Invalid file link:(~/../nonexisted2.md).
Line 7: [Warning] Invalid file link:(~/../nonexisted3.md).

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


sha256d() takes exactly 1 argument

When I'm mining with nightminer
I found there is an error mining bitcoin with sha256d().
[ERROR] ERROR: sha256d() takes exactly 1 argument (2 given)
my command:
python  nightminer.py -o stratum+tcp://stratum.antpool.com:3333 -O USERNAME:PASSSWORD -a sha256d
Is my command wrong?

Change line 574 to
ProofOfWork = lambda s, m: (sha256d(m))
:)

Great! Thanks.


[iOS] sending a boolean false tag doesn't work

<EMAIL_ADDRESS><EMAIL_ADDRESS>testing on iOS11 simulator, it seems like if you send a false tag it doesn't appear in OneSignal dashboard as if it wasn't sent at all.
OneSignal.sendTags({
    name: profile.name,
    isFalse: true,
});

This will be shown in the dashboard as { name: 'Mattia', isFalse: true }
OneSignal.sendTags({
    name: profile.name,
    isFalse: false,
});

This will be shown in the dashboard as { name: 'Mattia' }.
On Android, the same code will produce correctly { name: 'Mattia', isFalse: false }

I'm not a swift/obj-c developer but having a look here:
https://github.com/geektimecoil/react-native-onesignal/blob/master/ios/RCTOneSignal/RCTOneSignal.m#L221-L223
RCT_EXPORT_METHOD(sendTag:(NSString *)key value:(NSString*)value) {
    [OneSignal sendTag:key value:value];
}

it seems like it's expecting a string.

Hey,
Kudos to the author and collaborators of the library. You've done a great job guys. However, I did run into this issue when trying to update a device using the rest API.
In order to reproduce it, someone just needs to execute the following in his terminal:
curl --include \
     --request PUT \
     --header "Content-Type: application/json" \
     --data-binary "{\"tags\":{\"boolean-test\":false}}" \
     https://onesignal.com/api/v1/players/<PlayerID>

You'll realize the boolean-test doesn't get added if it doesn't exist and,  otherwise, it gets deleted.
Thanks


Functional tests fail occasionally

https://travis-ci.org/lbryio/lbry/builds/242981624?utm_source=github_status&utm_medium=notification

Related issue:
https://github.com/lbryio/lbry/issues/675
https://github.com/lbryio/lbry/issues/527

I still think this is because BlobManager's stop() function doesn't properly handle shutting down the manage() loop and closing the database properly

Looking at BlobManager, it seems like it does not even need a looping manage() function.
When deleting blobs, BlobManager queues them up for deletion, and then the manage() loops looks in the queue and deletes it. I don't think we need to queue up blobs for deletion, we can just delete them.


NPM Task and npm v7 authentication issue

Type: BUG
Task Name: NPM
Environment: Azure Pipelines
Org Name: asdjh8923 (for test purposes)
Build Number: 20210514.1
Agent: Hosted
Issue:
Currently Azure is accesible via two urls for legacy reasons -
https://ORG_NAME.visualstudio.com/PROJECT_NAME
and
https://dev.azure.com/ORG_NAME/PROJECT_NAME
And depending on which url you use, when you visit the Artifacts section you are given different urls to connect to the registry:
First URL:
registry=https://ORG_NAME.pkgs.visualstudio.com/_packaging/REPO_NAME/npm/registry/
or
Second URL:
registry=https://pkgs.dev.azure.com/ORG_NAME/_packaging/REPO_NAME/npm/registry/
It seems that the NPM Task currently only generates an auth token for the first url, and in npm versions prior to v7 this was not a problem as npm used to send every token to every registry. With npm version 7, however, tokens are only sent to the exact registry that they were configured for. So now the registry has no proof of identity, and rejects the request. This is made clear by a member of the npm team here: https://github.com/npm/cli/issues/2508#issuecomment-839880711
So we now have an issue where developers are using either one url to connect to the registry for local  development, but then when we come to run it in the pipeline, the npm install task is failing due to not being able to authenicate against any urls in the package-lock.json which use the second url.
I have given the build number/org of a test account I setup to demo the issue... as you can see in the Npm step the task dynamically generates this auth token:
Starting: Npm
==============================================================================
Task         : npm
Description  : Install and publish npm packages, or run an npm command. Supports npmjs.com and authenticated registries like Azure Artifacts.
Version      : 1.182.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/package/npm
==============================================================================
/opt/hostedtoolcache/node/14.16.1/x64/bin/npm --version
7.13.0
/opt/hostedtoolcache/node/14.16.1/x64/bin/npm config list
; "user" config from /home/vsts/work/1/npm/30.npmrc

//asdjh8923.pkgs.visualstudio.com/_packaging/31800f2a-70d9-4bb2-92db-c6826e5e5af6/npm/registry/:_authToken = (protected) <--- AUTH TOKEN
registry = "https://asdjh8923.pkgs.visualstudio.com/_packaging/31800f2a-70d9-4bb2-92db-c6826e5e5af6/npm/registry/"

However, as I was using the second url to perform my local npm install the resolved urls in the package-lock.json file look like:
"resolved": "https://pkgs.dev.azure.com/asdjh8923/_packaging/asdjh8923/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz",

Which indicates, that for this to be able to work, the NPM task also needs to generate a second auth token for https://pkgs.dev.azure.com/asdjh8923/_packaging/asdjh8923/npm/registry/
Fix:
The NPM task needs to create individual authentication tokens for each url for this to work.

@leepowelldev How do you configure the pipeline task so that it uses npm v7? We have difficulty to suggest the agent to using npm v7.

you could add another step in your pipeline to run npm i -g npm@7


Add entries for Zuse and Benz

- What I did
Added entries for Zuse (inventor of first programmable pc) and Benz (inventor of the first motorcar) to namesgenerator
- How to verify it
Wikipedia Pages are linked
- A picture of a cute animal (not mandatory but encouraged)
I will link to Wikimedia Commons pictures with cats. Most them are under Creativ Commons: https://commons.wikimedia.org/wiki/Kitten

Thank you! Perhaps you could swap one; https://github.com/docker/docker/pull/30006/files#diff-a461eecf31e5c471572678b08330893aR107 ;

Please, for any amazing man that you add to the list, consider adding an equally amazing woman to it, and vice versa

If you need some new ladies to add, since Hidden Figures came out last weekend (in the US) these three are suggestions: Katherine Johnson, Dorothy Vaughan, and Mary Jackson. 👩🚀

thank you! can you squash your commits? You can find some information on doing so in our contributors guide; https://docs.docker.com/opensource/workflow/work-issue/#/pull-and-rebase-frequently

@thaJeztah done

@thaJeztah I have replaced zuse


LSC prototype: Text editor/Python language options

All Python text editor pages are currently not present. They appear when we have the ProvideLanguageService package attribute, but that causes other things to break right now so it's commented out.

The general text editor options now work. The advanced text editor options are not needed right now.


Widget placement form is not displayed in Chrome

Hi there,
the widget placement form is not displayed in Google Chrome:

I have noticed that the form is displayed when refreshing the page but as soon as the page is loaded it is set to hidden.
In IE all is working correctly:

Responsible for this is a style in
Orchard.Web\Modules\Orchard.Widgets\Styles\orchard-widgets-admin.css

#widgets-placement .summary-view .widgets-none {
    display: none;
}

Outcommenting display: none makes the form visible again.
I'm not sure why this style is needed here, can someone explain?

I don't have this behavior.
This is as if you have clicked on the button on the right that hides the zones that don't have any widgets (There are 2 buttons : Summary and Details view).

Ok, figured it out. It is caused by a missing Zone: entry in the Theme.txt.


Containerise to simplify process of installation and usage

Containerise the codebase, e.g. using Docker/Singularity to handle installation and dependencies.

Recent introduction of dockerised version of tool.


Changed MessageBox() to MessageBoxW()

The arguments passed into MessageBox() are wide strings, and produce an error because MessageBox is not meant for wide strings. This PR fixes this by changing MessageBox() to MessageBoxW(), which fixes it.

@wmcnamara : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Alphabetical order is dependent on wheter letters are upper or lowercase

The title should explain the issue or suggestion almost fully. As most of the time the data set should be uniform for the lettering (capital letters or only lowercase) this is probably only relevant for a few cases. However, I think it is still good to be aware of this, even if we do not need to "fix" this issue.

Visualize LFI

Im not able to find the same dataset with this issue, but looking at the image i think the issue is not with ordering, but rather that there is a space between the words "Alphen Sudwest" and not in "Alpensudeite".  I'm going to close this issue for now, but if you can find and sent me a link of this issue, please do so here and I can reopen it


Problem with running multiple servers in one application

For a test-setup I tried to run multiple Server instances in one application.
one := server.NewServer(server.Address("localhost:1600"), server.Registry(r), ...)
one.Start()
one.Register()

two := server.NewServer(server.Address("localhost:1601"), server.Registry(r), ...)
two.Start()
two.Register()

The second Start fails with the error already listening on localhost:1600. Is there a global shared state? I wonder why the address is needed anyway, since all (Registry, Transport and Broker) is run over nats (in my case). What is the local port needed for?
Many thanks in advance.

So I do this
package main

import (
	"github.com/micro/go-micro/server"
)

func main() {
	one := server.NewServer(server.Address("localhost:1600"))
	one.Start()

	two := server.NewServer(server.Address("localhost:1601"))
	two.Start()
}

And I get this
2016/06/01 14:09:35 Listening on <IP_ADDRESS>:1600
2016/06/01 14:09:35 Broker Listening on [::]:52515
2016/06/01 14:09:35 Listening on <IP_ADDRESS>:1601

Can you provide a full example so I can reproduce the problem?

I should clearify, that I use the mock implementations of Registry, Transport and Broker for the test setup. The error to be thrown in the transport mock's Listen function. I'll try to assemble a more complete example.

Found it. My bad! There was a third server that took the address. Excuse the confusion.
I'm still curious why a listen address has to be speicifed for every implementation. Shouldn't it left to the implementation if a local port is needed (the nats plugin doesn't need one)?

It doesn't have to be specified. It's an option. Options are optional. If you do not specify an address then it defaults to ":0", which lets the host allocate a port and binds to the first address it has. If you use nats it ignores the port.

The design makes sense. My first approach was to remove the Address option, but that resulted in the already listening on :0 error. I guess the mock implementation needs some adjustment here (https://github.com/micro/go-micro/blob/master/transport/mock/mock.go#L129), since it doesn't seem to handle an address of :0 right.

Ah ok yea if you're talking about the mock implementation then its rather naive. Should be easy to fix the issue by randomly assigning an int to the port where its not set.

https://github.com/micro/go-micro/commit/702072f177a4dad9de63e78c1f1433d12511159c
Pull master and try now. If its all good please close the issue. Cheers.


Use remote address from opened socket instead of the claimed IP in peer list

Currently siac gateway list shows the claimed IP address sent in a sessionHeader. There are two main issues with this approach.
Since as it stands the local interface IP is sent in the sessionHeader (instead of the external IP) we end up with invalid IP addresses shown for inbound connections when we execute siac gateway list that don't correspond to actual open sockets in the system. This makes correlating outputs from network monitoring utilities like netstat and the likes with the output from siac impractical.
Example output from siac gateway list
root@siad-dev:/home/siad-dev/Sia/gateway# siac gateway list | grep No | head -n 5
1.3.0    No        <IP_ADDRESS>:9981
1.3.0    No        <IP_ADDRESS>:9981
1.3.0    No        <IP_ADDRESS>:9981
1.3.0    No        <IP_ADDRESS>:9981
1.3.0    No        <IP_ADDRESS>:9981

Second, we are blindly trusting the remote party not to lie about their network address which will be shown in the peer list (since network check was removed in #2254).

Perhaps we can extend modules.Peer to include the ClaimedAddress? Then there's no confusion about whether NetAddress is the "real" address or the "claimed" address, and siac can simply display the real address.

The only question I have is why?! I understand you put in the ClaimedAddress in sessionHeader so that it could later be checked against the socket address. However you scrapped that idea and opted not to run that check.
I might have missed it but is the ```ClaimedAddress`` being used anywhere?
With that said, if you think this might be somehow useful for whatever you have planned in your roadmap then sure. I'll add that.

I am always slow to remove things, but racking my brains, I can't really think of a good reason to keep the ClaimedAddress field around. We can't merge this before v1.3.1 because we can't risk any new bugs in our peer network right now, but if v1.3.1 has a stable peer network we can come back to this.

@dNetGuru we need to send at least the port number, so that the recipient know how to dial back later. The hostname doesn't serve any purpose now, but it's possible that it could be useful later.
I'm ok not keeping the ClaimAddress around as long as we can demonstrate that everything works normally without it.

I see! If we need to call back, I need to edit my commit so the claimed port number is saved instead of the incoming one.
I don't think currently your callback feature works (except on a local network) since the claimedAddress will be a local address for incoming connections over the internet which would be unrourable.

I changed the code slightly so we take note of the claimedAddress's port number so we can call back but save the open socket's address instead of the claimed address in the header.
Later on, you might want to refactor the sessionHeader to just send a callbackPort field instead of a netaddress but that would break backward compatibility so I'm not touching that.


Merge changed to v0.8 into master

Same thing as the change applied to the v0.8 branch, but applied to Master.

r+
(will unbreak master)

@homu r+

:pushpin: Commit 7a50c80 has been approved by csherratt

:hourglass: Testing commit 7a50c80 with merge f6e1242...

:sunny: Test successful - status


Corporate Console - The email content in the notification emails is not formatted when CLA Manager request access for another company

Background

Launch Corporate Console
Login as CLA Manager
Click Get Started
Search for a company to join the company
Select the Company
Click JOIN COMPANY
Notification email is sent to the CLA Manager of the company

Issue1
8. Observed that email content is displayed as paragraph. Content should be displayed in proper format

Issues2
9. Company name and user name cannot be differentiated and identified in the email

Issue3
10. Login to Corporate Console as CLA Manager to accept the request to join the company
11. Click on the Company which has CLA Manager request
12. Click Accept
13. The content in the email notification is not formatted

Issue4
The Content in the email notification when CLA Manager Request is rejected is not formatted

This issue is resolved by v2. Closing ticket.


High contrast mode

Make a high contrast mode in addition to light mode #37

CSS contrast will do the work, let me help.

Absolutely! Could you add a sub-dropdown in the View dropdown for Themes, and submit a PR when you're ready? Thank you!


Check auth before proceeding such that we don't show a badge if auth fails

I like the intent here.. if we are going to fail, fail early.  Though I think it would be even one step better to validate the creds when you configure the sauce labs service instance.  Is there anything we can do in the toolbroker?

Sauce.py doesn't get run until after the tests try to get executed so this auth check would need to be moved to extension.json with cURL

@sppatel I know that if you try to use faulty access credentials when manually editing the saucelabs tool card it will reject them if they're false. However, you can still invalidate your access token (after its set) via the saucelabs API/UI and I don't think theres anything the toolbroker can do to handle that. Also, you can use invalidate credentials when creating a toolchain from a template, but I've requested we do some checking there.

@eLobeto This is looking good now, will merging this break the YP extension?

@SethNute if only extension.json is updated it won't effect the existing extension. If one of the other scripts changes then every time its cloned it will get the new stuff.. so you should be good.


fix(moac): distribute nexuses more evenly

We still keep the rule that one replica is always local to the
nexus, but when deciding which replica is chosen as local we try
to choose the node with smallest number of nexuses.

bors merge

bors merge


Make separate accounts for applications

Make separate o/s accounts for individual web applications, instead of having all of them use "dpla".
This improves our ability to keep deployments from interfering with one-another and to do "clean" deployments.

See https://digitalpubliclibraryofamerica.atlassian.net/browse/DT-1240


[ez] Move AIConfigContext into a contexts folder

[ez] Move AIConfigContext into a contexts folder
No functional changes. I think this will be a bit cleaner when we make a READ-ONLY mode because I'm going to use a context for that too and better to keep these files together

Stack created with Sapling. Best reviewed with ReviewStack.

#916
-> #913

We should just add isReadonly to AIConfigContext, no need for a separate one

We should just add isReadonly to AIConfigContext, no need for a separate one

Alright sure, but why not move into it's separate folder anyways since it's not really a "component"?

LGTM, just looks like there's a merge conflict to resolve before landing


Doesn't seem to work...

Trying to create an azure automation runbook to start a VM and cant believe how hard it is; i have tried the scripts above and it just errors:
"Cannot find the 'Connect-AzureRmAccount' command"

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

ID: 2f830218-a56b-6a7e-d6e7-7736896d3f91
Version Independent ID: ae33d704-d0b7-d478-8602-cc787f706d72
Content: Credential assets in Azure Automation
Content Source: articles/automation/shared-resources/credentials.md
Service: automation
Sub-service: shared-capabilities
GitHub Login: @bobbytreed
Microsoft Alias: robreed

Thanks for your comment. We are actively investigating and will get back to you shortly. Thanks for your patience.

Sorry for the issues you are experiencing with authoring a runbook. Happy to help you resolve this.
The error you are getting typically caused if the latest version of the AzureRM module isn't installed. I noticed the error output refers to Connect-AzureRmAccount cmdlet. This is an older version of the module. Any reason why you are not using the latest Az module  instead?
Just in case you haven't seen this, here's our official content on how to author a runbook to Start/Stop a VM. You can easily need customize the runbook based on your VM name(s).

We will now close this issue. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.

Sorry for the issues you are experiencing with authoring a runbook. Happy to help you resolve this.
The error you are getting typically caused if the latest version of the AzureRM module isn't installed. I noticed the error output refers to Connect-AzureRmAccount cmdlet. This is an older version of the module. Any reason why you are not using the latest Az module  instead?
Just in case you haven't seen this, here's our official content on how to author a runbook to Start/Stop a VM. You can easily need customize the runbook based on your VM name(s).

I was using the documentation on that page which was redirected from other MS Docs; if those modules are deprecated then can I suggest the page is updated/corrected to point to the right commands ... this was where my problems began.
I have now used the official Runbooks in Azure to do it for me so all good now, ty.

Great feedback. The AzureRM modules isn't deprecated yet. However, we recommend moving to the latest Az Module for richer experience. also, AzureRM is no longer taking new features and support for it will end in roughly a year - details here.

clearer in our docs so I will ensure our content team is aware of this feedback. Thanks again.
@bobbytreed  - FYI


Implement files inspect on CLI

Background & motivation
Right now the only way to interact with a file artifact is to download it to you machine. Ideally we would have an endpoint to help us explore the contents of a file artifact.
Desired behaviour
By running kurtosis files inspect UUID you can get a file tree of the artifact, and by running kurtosis files inspect /path/to/file.ext you can get either a UNIX file view or a cat, depending on the extension
How important is this to you?
Painful; the lack of this feature makes using Kurtosis frictionful.

Closed by https://github.com/kurtosis-tech/kurtosis/pull/905


AT&T cellular connectivity issues.

What happened?
When on cellular data, AT&T phones seem unable to connect to Docker/Traefik configuration. The same devices, however, are able to connect when on Wi-Fi.
What should've happened instead?
All devices connected to the internet should be able to connect to Traefik configurations.
Additional details

Originally asked on stack-overflow here: https://stackoverflow.com/questions/66164289/traefik-configuration-not-connecting-to-phones-using-att
I've tried a few different Traefik configurations and tested them all on https://www.ssllabs.com/.
With the default configuration I received a grade of B. Eventually, I worked my way up to getting an A+ grade but no luck connecting to AT&T phones. Here is that configuration for reference:
log:
  level: DEBUG

entryPoints:
  web:
    # http
    address: ":80"
    http:
      # https://docs.traefik.io/routing/entrypoints/#entrypoint
      redirections:
        entryPoint:
          to: web-secure

  web-secure:
    # https
    address: ":443"

certificatesResolvers:
  letsencrypt:
    # https://docs.traefik.io/master/https/acme/#lets-encrypt
    acme:
      email<EMAIL_ADDRESS>      storage: /etc/traefik/acme/acme.json
      # https://docs.traefik.io/master/https/acme/#httpchallenge
      httpChallenge:
        entryPoint: web

http:
  routers:
    web-secure-router:
      rule: "Host(`example.com`) || Host(`www.example.com`)"
      entryPoints:
        - web-secure
      middlewares:
        - csrf
      service: django
      tls:
        # https://docs.traefik.io/master/routing/routers/#certresolver
        certResolver: letsencrypt
    router-secure:
      rule: "Host(`example.com`) || Host(`www.example.com`)"
      service: django
      middlewares:
        - hsts-header
      tls:
        options: intermediate
    router-insecure:
      rule: "Host(`example.com`) || Host(`www.example.com`)"
      service: django
      middlewares:
        - redirect-to-https
        - hsts-header

  middlewares:
    csrf:
      # https://docs.traefik.io/master/middlewares/headers/#hostsproxyheaders
      # https://docs.djangoproject.com/en/dev/ref/csrf/#ajax
      headers:
        hostsProxyHeaders: ["X-CSRFToken"]
    redirect-to-https:
      redirectScheme:
        scheme: https
    hsts-header:
      headers:
        customResponseHeaders:
          Strict-Transport-Security: max-age=63072000
  services:
    django:
      loadBalancer:
        servers:
          - url: http://django:5000

providers:
  # https://docs.traefik.io/master/providers/file/
  file:
    filename: /etc/traefik/traefik.yml
    watch: true
tls:
  options:
    intermediate:
      minVersion: VersionTLS12
      cipherSuites:
        - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
        - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
        - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305

With log level set to DEBUG, I am able to see all connections to the site in my logs. When an AT&T phone attempts to connect, I will get a delayed response of about 5 to 10 minutes with the following statement:
http: TLS handshake error from [IP ADDRESS]: tls: no cipher suite supported by both client and server

Host system configuration:

Version of cookiecutter CLI (get it with cookiecutter --version):
OS: Both Mac OS and Ubuntu (Local) and Debian (Docker/Server)
Python version: 3.8.5 (Locally) and 3.9-slim-buster (Docker)
Docker versions (if using Docker): 20.10.6
...

Options selected and/or replay file:

Logs:

$ cookiecutter https://github.com/pydanny/cookiecutter-django
project_name [Project Name]: Wholepy ...

I honestly have no idea what the problem could be, but it's a neat puzzle.
This is the only concerning part to me:
tls:
  options:
    intermediate:
      minVersion: VersionTLS12
      cipherSuites:
        - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
        - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
        - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305

AT&T might just not support those. Ref: https://github.com/minio/minio/issues/6611#issuecomment-429758646 Maybe comment those out and see what happens. Play around with the configuration if commenting that out doesn't work (but not too much in case LetsEncrypt throttles you).
Some questions:

domain name (you don't have to share)?
Have you tried using someone else's AT&T phone? I know there are websites that call themselves performance testing websites that have different locations and devices to use. Whether they have different services or not is something I'm unaware of.
Old phone?

Docker by default does not have IPv6 capabilities. However, by default, Linode advertises the IPv6 address in the AAAA config. Since the IPv6 was being advertised by the DNS config, AT&T seemed to default to reaching out to it and then didn't search for IPv4 when that failed. Interesting that they're the only service providers that do that. None the less, I removed the AAAA configuration in my DNS config and it fixed it after the changes took effect (about 27 hours.) Thank you for everyone who took the time to read through the error I posted, I apologize for the noise. It was an error on my part, not yours.


Issuing credits to Noah

Issue 501000 credits to @noahda0.

 Follow up
On Tuesday, 27-Feb-24 22:19:05 UTC by Gov4Git dev
Could not issue 501000 credits to member @noahda0. Reopen the issue to retry.
Because: file does not exist


Upgrade support for ESP32-S3 series

A esp32s3 is more like a esp32c3 which only supports SPI_DMA_CH_AUTO, so it might be better to upgrade lvgl_esp32_drivers/lvgl_helpers.c line 178
Also I met an assert error compiling (the target chip is esp32s3) and solved it by adding "-DSPI_HOST_MAX=3"to line 91 of lvgl_esp32_drivers/CMakeLists.txt```

Hi, you answer hit me!!! do you know why it show "'TFT_SPI_HOST' undeclared (first use in this function); did you mean 'SPI3_HOST'?" when I am compiling the lvgl?

Maybe you want to config it before compiling, or add a declaration on your own header file.

就是编译后出现这个问题，是不是LVGL的函数因为版本原因变了？
（看了下好像是国人，哈哈！）


Fix reset function / JSON serialization

Hi!
I'm creating a mobile interface for this emulator and since I was forced to change some stuff on the source code, I guess I should create a pull request. :)
Fixed the error this.nes.stop is not a function when calling nes.reset():

I copy-pasted some code from another fork, but I can't really remember where it took it from, sorry.

Improved JSON serialization:

Commented out storing romData (which is the loaded ROM itself), for more efficient save/load state implementations
Added APU serialization in order to get the sound to work properly after loading a serialized data
Note that the object serialization itself has to be done on the implementation side.

Save state

const saveData = JSON.stringify(nes.toJSON());

Load state

nes.fromJSON(JSON.parse(saveData));

Brilliant, thank you!
I'm wonder if removing saving romData has any implications? Looks like resetting probably still works, but maybe reloadROM() doesn't work now. I don't think we were using that for anything anyway.

Thanks!! :) I can confirm that reloadROM() works without problems. ;)
You can check my NinjaPad project implementation, namely:
https://github.com/ninjadynamics/nesdev/blob/main/ninjapad/menu.js
https://github.com/ninjadynamics/nesdev/blob/main/ninjapad/interface.js
You can also try it live on mobile and desktop (ESC brings the menu).
Link in the first post.

Super cool. Thanks for the contribution!


CodeBuild Logs in build.xml

Plugin is storing CodeBuild logs in build.xml, duplicating console log already stored in log file. Is there any way to disable that behavior, so logs would be stored only in log file?
Excerpt from build.xml:
 <CodeBuildAction<EMAIL_ADDRESS>      <build class="flow-build" reference="../../.."/>
      <buildId>test-project:80b1444a-0f6d-4d21-8d25-d02fda80eea7</buildId>
      <logs>
        <string>2019/05/08 13:25:52 Waiting for agent ping
</string>
   ...
    </logs>

There currently is not a way to disable this behavior. Build logs are duplicated because the plugin stores them to be displayed in the Jenkins CodeBuild dashboard and outputs them to the Jenkins console log. Do your builds output a lot of logs causing this to fill up your Jenkins instance? If so, we can implement a feature to disable logs in the CodeBuild dashboard. You could also look into adding some build cleanup logic to your Jenkins project.

Thanks for the explanation! Such feature would be really useful in our use case (Jenkins on AWS Fargate container).
Currently we are gzipping old builds console logs, but removing/cleaning logs from build.xml would save disk space even more, and we rarely even use CodeBuild dashboard.
In the meantime we were planning to try to remove logs section from build.xml by some scheduled job, that shouldn't case any issues, just an empty logs section in CodeBuild dashboard, right?

I think deleting the entire build.xml will make your builds unviewable in the Jenkins UI. You'll want to just remove everything between <CodeBuildAction plugin="..."> and </CodeBuildAction>. In the meantime we will work on the proper fix.


Handle Different Context Lengths Between LLM and Embedding Models

Is your feature request related to a problem? Please describe.
Embedding models typically have smaller context windows than LLMs, which can limit the quality of embeddings generated for large contexts. This discrepancy can result in incomplete or less meaningful embeddings for the context used in devcontainer.json generation.
Describe the solution you'd like

Propose novel way of handling this challange.
Ensure that the primary context used by the LLM doesn't lose its semantic meaning when split or summarized for embedding purposes.
Adjust the logic dynamically based on the maximum token limits of the LLM and embedding models specified in the .env file.

Describe alternatives you've considered

Using the same context for both LLM and embeddings, which is not feasible due to the context length differences.
Manually tweaking the context content, which is not scalable or efficient.

Additional context
Consider edge cases where critical files like README.md might need special handling to ensure they are adequately represented in both the LLM and embedding contexts. Thorough testing is essential to ensure the adjustments maintain the semantic integrity and utility of the generated devcontainer.json configurations.

/bounty $20


Openstack Client Cache Doesn't Invalide Deleted Klusters

Happy failed authentications when creating a Kluster with the same name within a day.

Fixed by 4694e05f6bf7a8a30fed0f79466d2ad42458eb05


Mod is not updated to current KubeJS

Minecraft Version
1.19.2
KubeJS Version
kubejs-forge-1902.6.2-build.42.jar
Rhino Version
rhino-forge-1902.2.2-build.280.jar
Architectury Version
architectury-6.5.85-forge.jar
Forge/Fabric Version
Forge-43.3.5
Describe your issue
I am trying to build a modpack, but this error keeps crashing the game. I was told that the issue is from this mod.
KubeJS has failed to load correctly
java.lang.NoClassDefFoundError:
dev/latvian/mods/kubejs/RegistryObjectBuilderTypes
crash-2023-12-03_23.03.10-fml.txt

Duplicate of #71


Ignore http_session argument for local file

At the moment Tabulator will complain if you supply http_session but load a local file not a url. This means that you need to determine externally if a path is a url or local and pass the http_session parameter depending upon that. It would be better if this was not necessary ie. that http_session is simply ignored for local files.

@mcarans
Could you please post a code example? There a lot tests for local loader and all are passing.

I am thinking that ignoring unused options should be the default - they can just be logged as warnings rather than causing failure.

Even if you pass the http_session parameter as None, it still fails, so no easy workaround.

@mcarans
Would you like to create PR for this features? It should be as easy as:

updating this codeblock - https://github.com/frictionlessdata/tabulator-py/blob/master/tabulator/stream.py#L201-L205 - to emitting a warning instead of raising an error

I'm in the road now so could not be able to do so today.

Hi @roll  - see PR https://github.com/frictionlessdata/tabulator-py/pull/218

@mcarans
Thanks! I've merged. I decided for now to hold on fail_unused_options argument. Not sure anyone will ever use this (If I've got it right you're not going to use it).
So now we emit UserWarning instead of failing on unused option so it should be a good compromise. And if warning will be a problem for some clients we every could add something like ignore_unused_options to completely hide it.


Do grouped callbacks reduce the data transmission from client to server

I'm currently working on a dashboard, where selections and zooms in a graph should update the values of a dropdown.
At the moment I accomplish this with plain Dash with on callback that has the 'relayoutData' and the 'selectData' as Input and the figure as state.
In the callback I use dash.callback_context to determine which Input triggered the callback.
This method sends all data from the client to the server.
But obviously I only need one of the Inputs as only one can be updated at a time.
Additionally I only need the figure to access some of its data in one case. In the other only the Input data is sufficient.
I stumbled upon your extension while searching for a way to avoid the unnecessary data transmission.
But I'm not sure if your extension will solve my problem.
Did you tinker with the frontend code to only send the required data?
Or do you 'just' use the callback context and pass on the selected data to the callback? In this case all data would be transmitted, right?
I would appreciate clarification on this.

The group keyword is just syntactical sugar, i.e. all data are transmitted.

Thank you for the fast informantion

Are you having performance issues since you were asking? (:

Sorry for the late reply.
I'm currently working on a prototype version of the dashboard and have not done any real performance tests yet.
It just came on my mind that this could be beneficial for the overall performance.


Using the random_int to improve array_rand

Changed log

According to the reply, it should use the random_int to replace the array_rand function.

Looks perfect! Amazing job @peter279k! 🎉


PhoneGap Build fails with 2.0.0-rc5

Expected Behaviour
Plugin should be included with project build on phonegap build with plugin version 2.0.0-rc5, per a twitter comment I read.
Actual Behaviour
It gives this error:
Fetching plugin "https://github.com/phonegap/phonegap-plugin-push" via git clone
Using shallow clone
Repository "https://github.com/phonegap/phonegap-plugin-push" checked out to git ref "master" at "781e6f5".
Installing "phonegap-plugin-push" at "2.0.0-rc5" for android
Plugin doesn't support this project's cordova-android version. cordova-android: 6.1.2, failed version requirement: >=6.2.1
Skipping 'phonegap-plugin-push' for android

@uj yup, I was just talking to the guys about it this week. They don't have the necessary versions of cordova-android and cordova-ios up yet but once they do this plugin can go from release candidate to official.
https://build.phonegap.com/current-support


More than one annotation on a class/function not understood by parser

Firstly, thank you for taking out the time to make this!
I noticed that if there's more than one annotation on a Class or a function that it won't be picked up correctly resulting in an error:

Can a fix be made for this?

Fixed in https://github.com/murtaza64/tree-sitter-groovy/commit/b53a8cc1075e056b8223b86f3bb392e0d57ae101


Remove epochId argument from getNetworkParameters.

Context
The presence of the epochId path parameter in the /network/parameters/<epochId> endpoint might give callers the impression that calling GET on the endpoint will retrieve parameters corresponding to a particular epoch.
In reality, however, this endpoint only ever returns parameters corresponding to the latest epoch, regardless of which epoch is specified.
Decision
Remove the epochId argument from this endpoint.
Acceptance Criteria

[x] The epochId argument must be removed from the getNetworkParameters endpoint.
[x] The getNetworkParameters endpoint must always return parameters that correspond to the latest epoch.
[x] We must provide assistance to projects that consume cardano-wallet, to help them transition to the modified endpoint. (See https://input-output-rnd.slack.com/archives/C7PJ29FME/p1590569319044000)

Development
Remove the following functions and types:

[x] ApiEpochNumber
[x] errMsg404NoEpochNo
[x] getNetworkParamsViaCliExpectingFailure

In addition:

[x] Adjust description of CLI network parameters command to read "View network parameters for the current epoch".

QA

[x] Adjust existing API and CLI tests. We no longer need to test the epochId parameter as it no longer exists, but we should retain basic tests to check that the API function and CLI command both still work.

Just noting here that the only parameter in the current ApiNetworkParameters that will ever update in shelley is activeSlotCoeff. The rest come from the genesis block.

Just noting here that the only parameter in the current ApiNetworkParameters that will ever update in shelley is activeSlotCoeff. The rest come from the genesis block.

That's a great point. Perhaps we could break this type up into two separate types: one for static parameters, and another for parameters that can be updated.
I've started a discussion thread about this here: https://input-output-rnd.slack.com/archives/GBT05825V/p1590642003077400

lgtm.


ziti-controller: Add prometheus serviceMonitor

Hi @qrkourier,
related to #86, I was missing the Prometheus serviceMonitor here.
FTR, some clarifications,

the ServiceMonitor is default enabled but will be used only if the default disabled prometheus service is enabled as well. So there should be no CRD issue anywhere.
I had to add an extra default label for the prometheus service, otherwise the serviceMonitor would match all OpenZiti services. Dont know if you agree with the naming.

Let me know if I should change something here.
Thank you!
Mario

@qrkourier PTAL, feel free to adjust the wording accordingly.

@mjtrangoni I'll move the doc to charts/ziti-controller/README.md.gotmpl so that it will render as README.md. The comments in values.yaml like # --  will render in README.md as "Values Reference."

@mjtrangoni What's an excellent way to test the SM resource you added? We could install the Prometheus-operated chart in the CI job and confirm that it is scraping some metrics from the target. In that job, the latest release is installed and upgraded to the current branch in Minikube. Also, I was experimenting with Grafana dashboards for the Prometheus data source with this dashboard.

@qrkourier cool! Yes, kube-prometheus-stack would be the best way to install a Prometheus environment for scraping some metrics. After that a job running promql queries would do the job or also a bash script with some curl calls.
Can we have a release so that I can start testing it on my side?

https://github.com/openziti/helm-charts/releases/tag/ziti-controller-1.0.3

@qrkourier thanks for the release!
I have a small question about the TLS configuration, which we should provide by default and is currently missing on values.yaml file.
I've tried without success,
serviceMonitor:
  tlsConfig:
    ca:
      configMap:
        name: ziti-controller-ctrl-plane-cas
        key: ctrl-plane-cas.crt

Where should I find the TLS configuration otherwise? Of course, with insecureSkipVerify: true it is working correctly.

My past self left a note about it in this SM manifest, but it was not solved: https://github.com/openziti-terraform-modules/terraform-lke-ziti/blob/ba0797cb68a96fc57d8c1669acc1824a8c7d8d40/plan-45-observability/main.tf#L246
I must have encountered the same issue you did. Perhaps the problem is SM must use a configmap, but only bundle is available, or not available in the monitoring namespace.
I think there's a way to propagate cacerts with feature flag for clusterbundle and certs alphav1 API group, but I'm unsure how to do it off hand.

It is best if Prometheus can connect to the ClusterIP service by domain name instead of IP address. I assume the server cert is Ziti controller's prometheus scrape target binding on its web listener. That cert could be configured to present an IP SAN in addition to the DNS SANs by enhancing the controller chart's configmap template, but the problem is knowing the cluster IP in advance. This is why we have DNS...so we don't need to know the IP.


drag and drop

VSCode Version: 1.11.0
OS Version: Windows

Steps to Reproduce:
1.coding
2.drag accidentally the whole text...
how can i disable the new feature drag and drop?
I really really like VS code only... (from all MS product this is the only one i love) comes out that accidentally( and it happens too much), trying to fix some text when using minimap accidentally drag a code isnt there and i have to ctrl+z and re the stuff i'm doing...
is there a way to disble the drag and drop?

Simply set "editor.dragAndDrop": false (which is the default anyway)

ok... i'll leave it as close with your permision @kaiwood

Sure, closed issues are good issues. But you don't really need my permission for this ;)


Add more API routes.

Add the following API routes to the daemon.

[ ] api/demo/redeploy/<demo_id>
[ ] api/demo/logs/<demo_id>
[ ] api/demo/purge/<demo_id>
[ ] api/demo/help
[ ] api/demo/details/<demo_id>

Admin routes

[ ] api/admin/demo/status
[ ] api/admin/demo/purge/all
[ ] api/admin/demo/redeploy/all
[ ] api/admin/demo/stop/all

@fristonio can you assign it to me if this issue still exists?