Need clarification on "client_id"

Hey there. First of all I wanted to say thank you for your amazing work and efforts. I am hoping I can leverage locust to load test my first IoT application.
I was hoping you could clarify the comment within mqtt_locust.py where a random client_id is created by Paho. I have 2500 devices/things that I want to simultaneously test against, each with its own client_id/name. When Paho randomly creates a random client_id, is it using one of the existing/known client_ids or is it creating a unique/new one? If it's a new client_id, how valid is the load test if it's not connecting to an existing thing/client_id?
Any clarification would be greatly appreciated! :)

Since the main goal of this code is to load test the AWS infrastructure behind an AWS IoT application, in most cases it's OK to test with an empty client_id.
You will still generate load that will help you measure how many shards you'll need in a Kinesis stream, how many EC2 instances you'll need, how fast your Lambda functions will run, or the capacity units consumed in a DynamoDB table, etc.
The way the Paho client works is that when client_id is not provided, Paho creates a completely random client_id to connect to the IoT broker.
For simplicity, this code was implemented assuming a random client_id would suffice.
I understand this is not ideal in some use cases, but there is a way around it. You would have to:

Modify the Locust test (in this case aws-iot-publish.py), so it gets a known client_id each time
"class MyThing(MQTTLocust)" is instantiated. Locust instantiates this class each time a user is hatched. This can be accomplished by adding client_id as a member variable and populating its value from a text file or something similar.
Modify MQTTLocust(Locust) in mqtt_locust.py, so it initializes MQTTClient in the following way: "self.client = MQTTClient(self.client_id)"
Modify MQTTClient in mqtt_locust.py, so it contains a self.client_id variable, which will be used by the Paho client. This way Paho will be using using a real client_id that exists in your application.

I hope this helps.

It helps immensely!!! Wow, thank you so much for your detailed and thoughtful response. I really appreciate it!
Best regards,
Brian

On Feb 15, 2017, at 10:34 PM, Concurrency Labs<EMAIL_ADDRESS>wrote:
Since the main goal of this code is to load test the AWS infrastructure behind an AWS IoT application, in most cases it's OK to test with an empty client_id.
You will still generate load that will help you measure how many shards you'll need in a Kinesis stream, how many EC2 instances you'll need, how fast your Lambda functions will run, or the capacity units consumed in a DynamoDB table, etc.
The way the Paho client works is that when client_id is not provided, Paho creates a completely random client_id to connect to the IoT broker.
For simplicity, this code was implemented assuming a random client_id would suffice.
I understand this is not ideal in some use cases, but there is a way around it. You would have to:
Modify the Locust test (in this case aws-iot-publish.py), so it gets a known client_id each time
"class MyThing(MQTTLocust)" is instantiated. Locust instantiates this class each time a user is hatched. This can be accomplished by adding client_id as a member variable and populating its value from a text file or something similar.
Modify MQTTLocust(Locust) in mqtt_locust.py, so it initializes MQTTClient in the following way: "self.client = MQTTClient(self.client_id)"
Modify MQTTClient in mqtt_locust.py, so it contains a self.client_id variable, which will be used by the Paho client. This way Paho will be using using a real client_id that exists in your application.
I hope this helps.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Javascript error

We use wow.js on some pages, wordpress skins, and one of them we see JS error.
TypeError: 'undefined' is not an object (evaluating 't.nodeType')
This bug is only on Safary old version and Safary Windows.

This bug is only on Safary old version and Safary Windows.

I doubt it would get fixed any time soon.


[GOBBLIN-1459] correct column length in MysqlSpecStore, MysqlDagStore, MysqlJobStatu…

…sStore
Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
@Will-Lo @jack-moseley  please review
JIRA

[x] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-1459

Description

[X] Here are some details about my PR, including screenshots (if applicable):
-some column length in MysqlSpecStore, MysqlDagStore, MysqlJobStatusStore are incorrect. limit on these column lengths is decided by the limit on flow group and flow name limits.

MysqlDagStateStore uses an internal MysqlStateStore. This PR will change it to use MysqlDagStore which just extends MysqlStateStore so that it can use override create table statement

Tests

[X] My PR adds the following unit tests OR does not need testing for this extremely good reason:
added a few tests

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Would this cause any issues for flows that are not persisted in the dag state store? i.e. services that do not use the DagManager.

No, this change is equivalent to overriding a method in the old dag store. The services which do not use DagManager are not effected. Those which use DagManager are also not effected

@sv2000  I updated the PR description, hope it helps.

@sv2000  please review/merge


list of examples

Hello @Rubtsowa! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file docs/source/buildscripts/sdc_examples_gen.py:

Line 11:12: E713 test for membership should be 'not in'
Line 22:1: W293 blank line contains whitespace

This PR is similar to https://github.com/IntelPython/sdc/pull/768.


DateTimePicker time is always 12:00

Environment

Tech
Version

material-ui-pickers
1.0.0-rc.1

material-ui
1.0.0-beta.32

React
16.2.0

Browser
Any

Platform
MacOs

Steps to reproduce

Render DateTimePicker with MomentUtils and any value

      <MuiPickersUtilsProvider utils={MomentUtils}>
        <DateTimePicker onChange={(v) => { console.log(v); }} />
      </MuiPickersUtilsProvider>

Expected behavior
Time picker shows current value 11:24 pm
Actual behavior
I always can see 12:00
Live example
https://codesandbox.io/s/42vj0n08q7

Fixed in 1.0.0-rc.2

@dmtrKovalenko still the same issue with rc.2
https://codesandbox.io/s/vyqxmlo010


re-create auto paths from 2023 PathPlanner in 2024 PathPlanner

The paths and autos were created for 2024 beta 0. We need to test on the field and then close this issue.

We ran TestAuto auto and, while it could benefit from tuning, it works as expected. Closing.


feat(Logo): Add options for setting custom logos in forms

Description
Gives app developers the possibility to configure a custom logo to use.
This works by giving app developers a new configuration object in applicationMetadata.json:
{
  "logo": {
    "source": "org",
    "displayAppOwnerNameInHeader": true
  }
}

source can be "org" or "resources" and specifies from where the source of the logo image should be taken.

Related Issue(s)

closes #138

Verification/QA

Manual functionality testing

[x] I have tested these changes manually
[ ] Creator of the original issue (or service owner) has been contacted for manual testing (or will be contacted when released in alpha)
[ ] No testing done/necessary

Automated tests

[x] Unit test(s) have been added/updated
[x] Cypress E2E test(s) have been added/updated
[ ] No automatic tests are needed here (no functional changes/additions)
[ ] I want someone to help me make some tests

UU/WCAG (follow these guidelines until we have our own)

[x] I have tested with a screen reader/keyboard navigation/automated wcag validator
[ ] No testing done/necessary (no DOM/visual changes)
[ ] I want someone to help me perform accessibility testing

User documentation @ altinn-studio-docs

[x] Has been added/updated - https://github.com/Altinn/altinn-studio-docs/pull/1088
[ ] No functionality has been changed/added, so no documentation is needed
[ ] I will do that later/have created an issue

Changes/additions to component properties

[ ] Changes are reflected in both src/layout/layout.d.ts and layout.schema.v1.json, and these are all backwards-compatible
[x] No changes made

Support in Altinn Studio

[ ] Issue(s) created for support in Studio

[x] This change/feature does not require any changes to Altinn Studio

Sprint board

[x] The original issue (or this PR itself) has been added to the Team Apps project and to the current sprint board
[ ] I don't have permissions to do that, please help me out

Labels

[x] I have added a kind/* label to this PR for proper release notes grouping
[ ] I don't have permissions to add labels, please help me out

There is one screenshot in Percy which fails. This can be disregarded I think.

Make sure you also add this to the application metadata schema as well (schemas/json/application/application-metadata.schema.v1.json). 🥳


Issue 268 improve wrappers

Avg response time
coverage on master

Summary of changes
I need to rebase these commits to make the more logically cohesive but this PR will finally implement/fix the following issues:

[X] #268 use configure_file to embed full paths to compilers and MPI libraries
[X] #275 use caf and cafrun for compilation of tests

Simple, one source file tests are added via a new CMake macro caf_compile_executable()
More complex multi-file compilation achieved via set(CMAKE_Fortran_COMPILER ./bin/caf) with the caveat that an explicit dependency of all targets using CAF features must use add_dependencies( <target> caf_mpi_static)

[X] #401 adds --enable-failed-images to caf_run to abstract mpiexec flags needed for fault tolerance MPI features.
[X] #366 upstream some of the Debian build practices, build a shared/dynamic library as well as a static library, and ensure that they can be built in parallel
[x] #381 set SOVERSION/SONAME for dynamic library API (should be super quick to do...)

Rationale for changes

The wrapper scripts should be more robust now. OpenCoarrays stuff is located via relative path assuming scripts are in <prefix>/bin and MPI/compiler paths are coded as full paths to executables and libs.
Using caf and cafrun to compile the tests helps ensure their correctness
--disable-auto-cleanup mpiexec flag is not super clear, so abstracting this with Fortran specific language (--enable-failed-images) is an improvement.
Try to reduce amount of patching by package maintainers by building shared and static libs, and make sure they're able to be safely built in parallel
SONAME/SOVERSION helps ensure proper runtime linking. SOVERSION pegged to GFortran interface ABI: 0 if GFortran < 6, 1 if GFortran == 6.x, 2 if GFortran >= 7.x (for now at least)

Additional info and certifications
This pull request (PR) is a:

[x] Bug fix
[x] Feature addition
[ ] Other, Please describe:

I certify that

[x] I reviewed and followed the contributing guidelines, including
- Increasing test coverage for all feature-addition PRs
- Increasing test coverage for all bug-fix PRs for which there
does not already exist a related test that failed before the PR
- At least maintaining test coverage for all other PRs
- Ensuring that all tests pass when run locally
- Naming PR  to indicate work in progress (WIP) and to attach the PR
to the appropriate bug report or feature request issue
- White space (no trailing white space or white space errors may
be introduced)
- Commenting code where it is non-obvious and non-trivial
- Logically atomic, self consistent and coherent commits
- Commit message content
- Waiting 24 hours before self-approving the PR to give another
OpenCoarrays developer a chance to review my proposed code

LGTM

Let's go over this pull request in the next OpenCoarrays call.


Usage of joda-money

Why you guys are writing the basic financial stuff yourself?
Why not saving time and use a existing library?
https://www.joda.org/joda-money/

https://github.com/JodaOrg/joda-money/issues?q=xchange
We used it originally, but it became too limiting for cryptocurrencies.

But that's 8 years ago!
They made also progress and have a good Money implementation when it comes to calculation stuff!
I requested a change for crypto currencies and they implemented it.
Why not give it another try?!

We use BigDecimal for all our calculations just like Jodatime, and it's not that hard to do. If we give them another try we'd probably need to update a hundred thousand lines of code. No one is going to volunteer to do that especially if there is no concrete benefit.

BigDecimal is not the same as a full functional Money class!
// create a monetary value
Money money = Money.parse("USD 23.87");

// add another amount with safe double conversion
CurrencyUnit usd = CurrencyUnit.of("USD");
money = money.plus(Money.of(usd, 12.43d));

// subtracts an amount in dollars
money = money.minusMajor(2);

// multiplies by 3.5 with rounding
money = money.multipliedBy(3.5d, RoundingMode.DOWN);

// compare two amounts
boolean bigAmount = money.isGreaterThan(dailyWage);

// convert to GBP using a supplied rate
BigDecimal conversionRate = ...;  // obtained from code outside Joda-Money
Money moneyGBP = money.convertedTo(CurrencyUnit.GBP, conversionRate, RoundingMode.HALF_EVEN);

// use a BigMoney for more complex calculations where scale matters
BigMoney moneyCalc = money.toBigMoney();

The first issue I ean into when building my trading application was i.e. rounding.
The BigDecimal class is just for random numbers, in financial application they need just more functionality.
Is it really 100.000 lines of code?
Not really, or?!
Some can just extend the ticker interface or implement a provider interface then everybody can decide what to use.
What do you think?
I'm an experienced java developer, I mean I can help and contribute!


Trello/Api/Card will throw an exception when due date is not null

Trello/Model/Card.php expects a due date as DateTime but Trello/Api/Card does not convert the object to a valid string. When create or update is called, Guzzle throws an exception because can't handle the DateTime object.
 [Symfony\Component\Debug\Exception\FatalErrorException]
 Error: Method Guzzle\Http\QueryString::__toString() must not throw an exception

Can I send a PR?

@ogabrielsantos Sure, be my guest! Thanks

Maybe you can review and merge the pull request.

PR Merged. Issue closed.

I've reopened this issue in order to warn about wrong DateTime's timezone. I've already sent a PR (#10)

Closed by #10


using semantic-release

:tada: This issue has been resolved in version 1.2.0 :tada:
The release is available on:

Visual Studio Marketplace
GitHub release

Your semantic-release bot :package::rocket:


Fix regression in shader example

[ ] Has this change been discussed on the forum or in an issue before?
[x] Does the code follow the SFML Code Style Guide?
[ ] Have you provided some example/test code for your changes?
[ ] If you have additional steps which need to be performed list them as tasks!

Description
Compute object positions in the "Edge" fragment shader example as before #1846
Fix for #1905
Tasks

[x] Tested on Linux
[ ] Tested on Windows
[ ] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

How to test this PR?
With the shader example.

SFMLBuildMaster: Build this please.

SFMLBuildMaster: Build this please.


Runtime.Interrupt() never succeeds

During my integration tests, a Runtime.Interrupt() call did not succeed and so Goja was hung using the processor at 100%.
I could reproduce it by adding an fmt.Println() to TestInterruptInWrappedFunction() and running it indefinitely via:
go test -run TestInterruptInWrappedFunction -count 10000

It always hangs after a few seconds. Digging into the issue, it seems the Go scheduler makes the goroutine that should do the interrupt wait for the main loop of Goja to finish - making the interrupt deadlock. That's weird because I'm running the tests on 4 cores.
I'm submitting a PR that solves the issue by periodically yielding the processor, causing a ~1% slowdown of Goja.
I understand this is the most critical function of Goja. I have read #14 and #16 and created a benchmark to explicitly test the main loop. Putting the interrupt check outside the inner loop didn't affect performance in a measurable way, so I left it in the inner loop to keep interrupts quick.
Benchmark results BEFORE:
root@boomla-vm:/home/zupa/p/goja-interrupt/src/github.com/dop251/goja# go test -bench BenchmarkMainLoop -run X -benchtime 100s
goos: linux
goarch: amd64
pkg: github.com/dop251/goja
BenchmarkMainLoop-4   	    2000	 106004138 ns/op
PASS
ok  	github.com/dop251/goja	222.874s

Benchmark results AFTER:
root@boomla-vm:/home/zupa/p/goja-interrupt/src/github.com/dop251/goja# go test -bench BenchmarkMainLoop -run X -benchtime 100s
goos: linux
goarch: amd64
pkg: github.com/dop251/goja
BenchmarkMainLoop-4   	    2000	 107030083 ns/op
PASS
ok  	github.com/dop251/goja	225.234s

Yeah, looks like running an infinite loop inside js creates a tight loop without preemption points so GC cannot stop it when it needs to. I incorrectly assumed that the function call within the loop would create such a point but apparently it doesn't. See https://github.com/golang/go/issues/10958 for further enlightenment.

Thanks for the fix and the link! Interesting discussion.


WIP: More warnings as errors

Description
As discussed on the call this PR will be used to determine what error level we want to conform to and the work needed to conform to said level
General Checklist:
Please ensure the following points are checked:

[ ] My code follows the coding style
[ ] I have reviewed file licenses
[ ] I have updated the header Copyright to reflect the current year (CI build will fail if Copyright is out of date)
[ ] I have commented any added functions (in line with Doxygen)
[ ] I have commented any code that could be hard to understand
[ ] My changes do not add any new compiler warnings
[ ] My changes do not add any new validation layer errors or warnings
[ ] I have used existing framework/helper functions where possible
[ ] My changes build on Windows, Linux, macOS and Android. Otherwise I have documented any exceptions
[ ] My changes do not add any regressions
[ ] I have tested every sample to ensure everything runs correctly
[ ] This PR describes the scope and expected impact of the changes I am making

Sample Checklist
If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist:

[ ] I have tested the sample on at least one compliant Vulkan implementation
[ ] If the sample is vendor-specific, I have tagged it appropriately
[ ] I have stated on what implementation the sample has been tested so that others can test on different implementations and platforms
[ ] Any dependent assets have been merged and published in downstream modules
[ ] For new samples, I have added a paragraph with a summary to the appropriate chapter in the samples readme

Just did a quick run with /Wall on Visual Studio 2019, which results in 1727 warnings in the framework and failing the build due to an error in the Vulkan headers (!) in vulkan_core.h on line 2056. So we also probably need to exclude certain files from either warnings at all or /Wall.

Hey @gpx1000,
@cforfang had a quick look over the initial fixes and spotted our use of LOG*()
Currently in common/logging.h we end the definitions with ; which causes the error when using the LOG definitions elsewhere. It would be better to continue to end our log calls with the semi colon and remove the semi colons from the definitions below.
#define LOGI(...) spdlog::info(__VA_ARGS__); #define LOGW(...) spdlog::warn(__VA_ARGS__); #define LOGE(...) spdlog::error("[{}:{}] {}", __FILENAME__, __LINE__, fmt::format(__VA_ARGS__)); #define LOGD(...) spdlog::debug(__VA_ARGS__);

Hey @TomAtkinsonArm and @cforfang
yep, that is a good idea.  I personally find it easier to read code when as a rule macros behave like regular function calls so I typically require similar solutions in my personal code (no ';' allowed to terminate a macro function).

@gpx1000 thanks for your input, Ill change that in my latest commit

Reverted the LOG stuff, combined some third parties into a single header (glm, maybe vulkan headers? not decided yet)

depreciated. Framework v2.0 uses higher warning levels


[bindings-gpgme] versions mixup

On hackage there are 0.1.4 and 0.1.6.
At the same time, in latest HEAD it's 0.1.5.
https://github.com/jwiegley/bindings-dsl/blob/ec36a594f98f6255ea145ea67f96013981107f7f/bindings-gpgme/bindings-gpgme.cabal#L13
Shouldn't these be in sync?

You're right, they certainly should be. I think it's been forever since these packages were last uploaded; would you like to fix this and upload?

What's your username on Hackage?

DmitryMalikov

@jwiegley bindings-gpgme is the package :)

You're added there too. :)

Uploaded. Thank you


Commands should set memory unit to avoid warning.

The command
az spring-cloud app create --name api-gateway --instance-count 1 --memory 2 --assign-endpoint
az spring-cloud app create --name customers-service --instance-count 1 --memory 2

produces a warning
Memory quantity [--memory] should be specified with unit, such as 512Mi, 1Gi. Support for integer quantity will be dropped in future release.
This command usually takes minutes to run. Add '--verbose' parameter if needed.
[1/3] Creating app api-gateway
[2/3] Creating default deployment with name "default"
[3/3] Updating app "api-gateway" (this operation can take a while to complete)
App create succeeded

The unit should be set to avoid to the warning

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

ID: 487f4413-4379-bbaf-e3aa-30f566eb802c
Version Independent ID: 9eff45cf-9865-a04a-b156-4578da1b50c1
Content: Quickstart - Build and deploy apps to Azure Spring Cloud
Content Source: articles/spring-cloud/quickstart-deploy-apps.md
Service: spring-cloud
GitHub Login: @KarlErickson
Microsoft Alias: karler

@asaikali Thank you for your feedback! We will review and update as appropriate.

#reassign:karlerickson

@asaikali thanks for the feedback! We'll get that updated.


{AKS} [BREAKING CHANGE]: az aks create/update: Remove --uptime-sla and --no-uptime-sla options

This checklist is used to make sure that common guidelines for a pull request are followed.
Sync the changes in official azure-cli #30221.
Related command

az aks create
az aks update

General Guidelines

[x] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[x] Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
[x] My extension version conforms to the Extension version schema

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

Thank you for your contribution! We will review the pull request and get back to you soon.


this commands are in pugjs/pug?

the commands are the same in pugjs/pug?

There is no CLI in pugjs/pug.


Added english translation to the README

Added english version of README along side the original version!

Is this a translation of the original Chinese version?


Add tick slicing to circuits

Something like circuit.tick_slice(3, 20) which returns everything starting from tick 3 ending at tick 20.
Need to decide on the inclusion/exclusion semantics carefully. Is there an implicit tick at the start of the circuit?

only-mostly-tongue-in-cheek: tick means fence post, so tock should mean fence stringer. after that just use python inclusion semantics
c = stim.Circuit("""
R 0     # TOCK 0
TICK    # TICK 0
H 0     # TOCK 1
TICK    # TICK 1
H 0     # TOCK 2
S 0     # ^
TICK    # TICK 2
M 0     # TOCK 3
""")

c.tick_slice(0, 2) -> stim.Circuit("""
TICK    # TICK 0
H 0     # TOCK 1
TICK    # TICK 1
H 0     # TOCK 2
S 0     # ^
""")

c.tock_slice(1,3) -> stim.Circuit("""
R 0     # TOCK 0
TICK    # TICK 0
H 0     # TOCK 1
TICK    # TICK 1
H 0     # TOCK 2
S 0     # ^
TICK    # TICK 2
""")

This has the other advantage of letting us complicate https://github.com/quantumlib/Stim/issues/739 as well
(although actually whatever we decide for tick_slice should probably be the same convention se use for both diagrams)


proposal: reflect: add Value.SetZero

This is a re-proposal of #33136, which was converted into a performance optimization where reflect.Zero does not allocate. That change certainly helps, but is insufficient especially when trying to zero out small values.
I propose we add a dedicated Value.SetZero method.
A prototype implementation of mine shows that this is much faster for small values:
Bool:       3.9x faster
Int:        3.5x faster
Uint:       3.9x faster
Float:      3.6x faster
Pointer:    2.2x faster
Map:        2.3x faster
Slice:      3.1x faster
Interface:  1.7x faster
String:     3.3x faster

Unfortunately, there is no convenient SetXXX API for clearing nil-able types (e.g., pointers, slices, and maps) and I was going to propose a Value.SetNil method, but we might as well expand that handle clearing all kinds.

CC @randall77

Seems fine to me.

@dsnet Are you going to try to tackle this for 1.19?

Value.SetZero、Value.SetNil method and the corresponding test case need to be added, right? If that's all, I'm happy to do it :)

@zaunist It is a start but I think @dsnet may have something else planned. Anyways. Any safe performance improvement is always welcome.

@dsnet Are you going to try to tackle this for 1.19?

I have an implementation ready, but this needs to go through the proposal process. There is no guarantee that this gets accepted.

@randall77 , @ianlancetaylor  what would be the next step to make this happen?

It will be looked at by the proposal committee. If you have arguments in favor (existing code which would be made cleaner/faster/whatever) please post them here.
Probably it will not make the freeze for 1.19, which I believe is in 2 weeks.

The proposal process is explained at https://go.dev/s/proposal-process.

@AAlvarez90 this is starting to get off-topic - I would suggest that you summarize your points and send an email to https://groups.google.com/g/golang-dev.
But as a general rule of thumb, increasing the amount of releases or changing the priorities of the team won't magically make features and improvements get implemented faster. You still have the same amount of people working full-time either way. And yes, performance is relevant, but it's not the only important objective for Go - and even 500 issues are a minority when compared to the 7k+ open in total.

@dsnet, can you confirm that you are comparing with the v.Set(reflect.Zero(v.Type())) that has been optimized as in #33136 and that that expression is not allocating?
Assuming yes, then adding SetZero for the final 2-4X seems OK.

Given that #33136 has been around since Go1.16, I'm fairly sure I'm accounting from the benefits of that optimization.
In https://go.dev/cl/411476, the performance numbers are as follows:
                     Direct         CachedZero     NewZero
SetZero/Bool         2.20ns ± 0%    8.97ns ± 5%    11.4ns ± 1%
SetZero/Int          3.08ns ± 1%    9.06ns ± 1%    11.5ns ± 0%
SetZero/Uint         2.88ns ± 1%    9.04ns ± 1%    11.7ns ± 5%
SetZero/Float        2.65ns ± 2%    9.05ns ± 1%    11.5ns ± 1%
SetZero/Complex      2.68ns ± 3%    9.31ns ± 1%    11.7ns ± 1%
SetZero/Array        6.69ns ± 4%    9.32ns ± 1%    11.8ns ± 1%
SetZero/Chan         3.31ns ± 1%    6.19ns ± 1%    8.20ns ± 1%
SetZero/Func         3.32ns ± 1%    6.20ns ± 0%    8.24ns ± 1%
SetZero/Any          2.64ns ± 1%    9.39ns ± 3%    11.8ns ± 2%
SetZero/Interface    2.66ns ± 1%    9.31ns ± 1%    11.8ns ± 1%
SetZero/Map          3.31ns ± 1%    6.21ns ± 2%    8.19ns ± 1%
SetZero/Pointer      3.30ns ± 1%    6.22ns ± 1%    8.17ns ± 1%
SetZero/Slice        2.90ns ± 4%    9.13ns ± 1%    11.6ns ± 1%
SetZero/String       3.11ns ± 1%    9.30ns ± 1%    11.8ns ± 2%
SetZero/Struct       6.37ns ± 1%    9.18ns ± 4%    11.5ns ± 1%

where:

Direct is the performance of v.SetZero()
CachedZero is the performance of v.Set(zero) where zero is a pre-computed variable with Zero(v.Type())
NewZero is the performance of v.Set(Zero(v.Type()))

we can see that Direct is generally 2-4x faster.

Based on the discussion above, this proposal seems like a likely accept.
— rsc for the proposal review group


Add back timestamp precondition

closes #579
adds network.timestamp
changes globalSlot -> currentSlot following internal discussion with @jasongitmail
moves to TypeScript v4.9 to use the new satisfies operator

Timestamp precondition RFC
network.timestamp is implemented as a wrapper for network.globalSlotSinceGenesis, which means:

when using network.timestamp.get(), the global slot is fetched under the hood and converted to a timestamp
when using timestamp.assertEquals() or timestamp.assertBetween(), a precondition for globalSlotSinceGenesis is added  under the hood

Implementation details

conversion between timestamps and global slots requires the knowledge of the timestamp which corresponds to slot 0. This is called the "genesis timestamp" and is a hardcoded property of each deployed network. We expose this by adding a new method .getNetworkConstants() on the Mina interface, which returns constants such as the genesis timestamp. This way, we can also use a reasonable mock value for local blockchain: the timestamp at which LocalBlockchain is instantiated.
However, for remote networks, currently there is no way to obtain the genesis timestamp. This needs to be added to the GraphQL interface: https://github.com/MinaProtocol/mina/issues/12728 . Since the GraphQL interface will only change upon upgrade of the current testnet, as an intermediate solution until that upgrade we hardcode the genesis timestamp of the current testnet as a constant.
Added some primitives for in-snark conversion of a UInt64 to a UInt32 with two possible semantics: either assert that the UInt64 fits in 32 bits already, or clamp the UInt64 to the uint32 range, so that larger values just become the max uint32. For our conversion of timestamp ranges to slot ranges, clamping is appropriate: this enables users to specify a "definitely large enough" timestamp value as the upper bound and have it converted to the max uint32 which is a definitely large enough slot.

Potential caveats
The fact that we implement one precondition on top of another means that the network doesn't know that timestamp was used and can't return an appropriate error. This is currently not an issue because the protocol returns Protocol_state_precondition_unsatisfied for all failing network preconditions, so it doesn't distinguish the exact case anyway.

My only concern is dealing with long forks and missed slot, which will inevitable cause the timestamp to run out of sync with the "real world" time, which might give the user/developer a wrong understanding of how to use this.


Rails 3.2 compatibily

the maktoub gem will be compatible with rails 3.2?

i'll be glad to have this compatibily too. Actually with 3.2.1 =)

I haven't tested with Rails 3.2. Are you encountering any issues when pointing your gem to the git repository?

sorry! not issue. complains incompatible

Ok, I'll see if I can take a look at 3.2 compatibility next week. Or, if you want to speed things up, you can paste the error message here :)

rvm 1.9.3
bundle install
Bundler could not find compatible versions for gem "rails":
In Gemfile:
maktoub (>= 0) ruby depends on
rails (~> 3.1.1) ruby
rails (3.2.0)

Ok.. for now do this:
In your Gemfile replace the line gem 'maktoub' with gem 'maktoub', :git => 'git@github.com:Sandglaz/maktoub.git'
then do a bundle install
This should work until I get a chance to post the update version to rubygems

solve :)


Allow untagged unit variants to deserialize from Visitor::visit_none()

Fixes https://github.com/serde-rs/serde/issues/1668.
Note: the test suite fails to compile on my machine for some reason. I still added a test verifying the expected behavior nevertheless – could you please check if it's correct?

God, I can't figure out how to add the appropriate test. This is clearly not a round-trip case. I give up. 😄

Thank you!


firewall-cmd --reload still wipes Docker 1.7.1's iptables rules on CentOS 7

[root@docker-upgrade-testing ~]# docker --version
Docker version 1.7.1, build 786b29d
[root@docker-upgrade-testing ~]# firewall-cmd --version
0.3.9
[root@docker-upgrade-testing ~]# systemctl status docker
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
   Active: active (running) since Mon 2015-08-03 15:59:51 UTC; 12s ago
     Docs: https://docs.docker.com
 Main PID: 19313 (docker)
   CGroup: /system.slice/docker.service
           └─19313 /usr/bin/docker -d -H fd://

Aug 03 15:59:51 docker-upgrade-testing systemd[1]: Started Docker Application Container Engine.
Aug 03 15:59:51 docker-upgrade-testing docker[19313]: time="2015-08-03T15:59:51.744753918Z" level=info msg="[graphdriver] using prior storage driver...apper\""
Aug 03 15:59:51 docker-upgrade-testing docker[19313]: time="2015-08-03T15:59:51.755388909Z" level=warning msg="Running modprobe bridge nf_nat failed...tatus 1"
Aug 03 15:59:51 docker-upgrade-testing docker[19313]: time="2015-08-03T15:59:51.894797426Z" level=info msg="Loading containers: start."
Aug 03 15:59:51 docker-upgrade-testing docker[19313]: time="2015-08-03T15:59:51.895059221Z" level=info msg="Loading containers: done."
Aug 03 15:59:51 docker-upgrade-testing docker[19313]: time="2015-08-03T15:59:51.895079910Z" level=info msg="Daemon has completed initialization"
Aug 03 15:59:51 docker-upgrade-testing docker[19313]: time="2015-08-03T15:59:51.895098843Z" level=info msg="Docker daemon" commit=786b29d execdriver...on=1.7.1
Aug 03 15:59:51 docker-upgrade-testing docker[19313]: time="2015-08-03T15:59:51.895149298Z" level=info msg="Listening for HTTP on fd ()"
Hint: Some lines were ellipsized, use -l to show in full.
[root@docker-upgrade-testing ~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: active (running) since Fri 2015-07-31 15:02:45 UTC; 3 days ago
 Main PID: 25824 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─25824 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

[root@docker-upgrade-testing ~]# docker run -p 8080 --rm busybox
[root@docker-upgrade-testing ~]# firewall-cmd --reload
success
[root@docker-upgrade-testing ~]# docker run -p 8080 --rm busybox
Error response from daemon: Cannot start container 31297ce119c3f591b762b84c3d4514cc42694817c9e05d179b6855dcb13317c0: iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 32778 -j DNAT --to-destination <IP_ADDRESS>:8080 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)
[root@docker-upgrade-testing ~]#

I expected Docker to re-populate iptables with the rules necessary for its proper operation (given that #9397 was merged and the 1.7.0 release notes suggest automatic firewalld integration).
Instead it seems Docker's rules were wiped and not restored.
This seems easy to reproduce on, for example, Rackspace's CentOS 7 image using standard system packages plus the latest docker from get.docker.com.

Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

@exarkun During the transition to libnetwork, it does not seem the necessary changes made it to libnetwork in time for 1.7.1. Specifically the FirewalldInit() invocation in bridge driver.
It will be there in docker/docker 1.8 release

@exarkun Can you please confirm things work in 1.8.0-rc1 image. Thanks.

Stopped the docker service and replaced the binary with the 1.8.0-rc2 and restarted the service. Can't even connect to the docker daemon just by running:
docker version
Tried reloading the Firewalld config by running:
firewall-cmd --reload
but that doesn't help. After disabling Firewalld everything works fine on my Fedora 22.

The linked Docker binary also doesn't work on my CentOS 7 system.  It hangs during startup:
# strace -p 3735
Process 3735 attached
futex(0x18a18d8, FUTEX_WAIT, 0, NULL

ping @aboch could you have another look here?

This issue seems to still exist in 1.9.1:
If I reload firewall configurtion:
{code}
$ sudo firewall-cmd --reload
success
$ docker --version
Docker version 1.9.1, build a34a1d5
{code}
I can still start containers that don't require port forwards
{code}
$ sudo docker run -it busybox
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
583635769552: Pull complete
b175bcb79023: Pull complete
Digest: sha256:c1bc9b4bffe665bf014a305cc6cf3bca0e6effeb69d681d7a208ce741dad58e0
Status: Downloaded newer image for busybox:latest
/ #
{code}
But if port forwards are required, startup fails because firewalld wiped the DOCKER chain upon firewall-cmd --reload:
{code}
$ sudo docker run -it -p 12345:12345 busybox
Error response from daemon: Cannot start container 715fb2d743a4d76d077cee6244888724bbd7712ad1c4073e35339d49d1c4612a: failed to create endpoint jovial_ride on network bridge: COMMAND_FAILED: '/sbin/iptables -w2 -t nat -A DOCKER -p tcp -d 0/0 --dport 12345 -j DNAT --to-destination <IP_ADDRESS>:12345 ! -i docker0' failed: iptables: No chain/target/match by that name.
{code}

@thaJeztah

Was the daemon restarted after the firewall-cmd was run?

I can confirm this issue still exists in 1.9.1 build a34a1d5
Restarting the docker daemon will reload the necessary iptable rules, but it would be nice if I could run firewall-cmd without having to restart docker everytime.

I got the same issue running Docker version 1.11.1, build 5604cbe and firewalld 0.3.12 over debian 8

I can do sudo firewall-cmd --reload without losing the DOCKER chain.
I can also do sudo service firewalld restart without losing the DOCKER chain.
Docker version 1.11.2, build b9f10c9 on Red Hat Enterprise Linux Server release 7.2 (Maipo) kernel 3.10.0-327.18.2.el7.x86_64 #1 SMP Fri Apr 8 05:09:53 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux

Still does not work in my environment as well with respect to DOCKER-ISOLATION and custom docker networks. See also: https://github.com/docker/docker/pull/9397.

I'm also seeing this problem on Fedora 24, here's the error message I;m seeing (for the googleability for others):
$ docker-compose up -d --build --remove-orphans
Creating network "okami_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (COMMAND_FAILED: '/usr/sbin/iptables -w -t nat -I DOCKER -i br-59d5580a1102 -j RETURN' failed: )

Running sudo systemctl restart docker after sudo firewall-cmd --reload does temporarily fix it.

Let me close this ticket for now, as it looks like it went stale. I also think improvements were made in this area (but haven't verified all cases)


Problem with rotating preview object

Problem with rotating preview object
without textdraw-streamer

using textdraw-streamer

I will stop using it for the moment

Did you have this problem when you first started the server?

Did you have this problem when you first started the server?

It did not present an error at the beginning but now it gives a SAMP GDK error, all plugins must be compiled with the same version of SAMP GDK

The plugin uses the latest SDK.


[bug]: dotnet kubeops i - Fails

Describe the bug
dotnet kubeops i - fails with the following error
Compilation failed: warning CS8021: No value for RuntimeMetadataVersion found. No assembly containing System.Object was found nor was a value for RuntimeMetadataVersion
specified through options.
error CS8370: Feature 'file-scoped namespace' is not available in C# 7.3. Please
use language version 10.0 or greater.
error CS0246: The type or namespace name 'k8s' could not be found (are you missing a using
directive or an assembly reference?)
Eventhough the project builds fine and runs - the kubeops cli is failing
This only happened after i updated visual studio / dotnet to latest.
I also tried downgrading the project to 6/7 same issue.
To reproduce
Update to latest visual studio / dotnet
Expected behavior
No response
Screenshots
No response
Additional Context

<PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

<ItemGroup>
    <PackageReference Include="KubeOps.Generator" Version="8.0.0-pre.29" />
    <PackageReference Include="KubeOps.Operator.Web" Version="8.0.0-pre.29" />
</ItemGroup>

Fixed by installing: .NET 7.0 SDK (v7.0.404) - ref: https://github.com/buehler/dotnet-operator-sdk/issues/633


Fix refactor config decoding in check function

Change dataGatherersConfig variable creation to instantiate map
Signed-off-by: wwwil<EMAIL_ADDRESS>

/approve
/lgtm
shame there's three ways to do this in go (at least that I know of...)

shame there's three ways to do this in go (at least that I know of...)

Yeah, I was gonna look into which one was best but for now felt it was worth just getting this fixed so it doesn't trip us up later!

I think the make way is only 'better' if you know the size - fine by me.


Set ttl to specific cache key for Redis Storage Adapter

Implemented the internalTouchItem method inside Storage\Adapter\Redis that allow to touch a Redis item.
Implemented the _ttl metadata, that return the remaining tll of a specific key

Thanks to @marc-mabe to help me understanding what to do!
Refer to #5, I have created a new PR to clean my code from other local branches that was creating troubles.

Only the one comment above.
Please let run unit tests for this adapter and check code coverage for your new code. I know the version specific lines will only be tested if you run the specific version but one of this version should be well tested and all the other new code around.
thanks!

@marc-mabe I can't do also the test for specific versions.. if someone can do that, ok

@pensiero It's very ok if you test only your version I think

@marc-mabe then yes! :+1:

@pensiero but some tests failed - see continuous-integration/travis-ci/pr

@marc-mabe it's strange, because in my environment the test pass... and I'm using php 5.6, that fails in Travis. Could it be for some configs? I've enabled TESTS_ZEND_CACHE_REDIS_ENABLED and started the redis server...anything else?

Could you rebase against current master? Current master have many improvements for integration tests

@Maks3w done, but however test fails

@pensiero If I look @ https://coveralls.io/builds/2883342/source?filename=src%2FStorage%2FAdapter%2FRedis.php I see the tests ran with a redis version >= 2.0 and < 2.6 with the logic:
// ...

// redis >= 2
// The command 'pttl' is not supported but 'ttl'
// The command 'ttl' returns 0 if the item does not exist same as if the item is going to be expired
// NOTE: In case of ttl=0 we return false because the item is going to be expired in a very near future
//       and then doesn't exist any more
} elseif (version_compare($redisVersion, '2', '>=')) {
    $ttl = $redis->ttl($this->namespacePrefix . $normalizedKey);
    if ($ttl <= 0) {
        return false;
    }
    $metadata['ttl'] = $ttl;
// ...

One of the tests failing looks like this:
public function testGetMetadata()
{
    $capabilities = $this->_storage->getCapabilities();
    $supportedMetadatas = $capabilities->getSupportedMetadata();
    $this->assertTrue($this->_storage->setItem('key', 'value'));
    $metadata = $this->_storage->getMetadata('key');
    $this->assertInternalType('array', $metadata); // <- failes
    // ...
}

As of the test doesn't set a specific TTL it will be the default one for infinite lifetime (TTL=0). I could think of that redis could return ttl=0 in this case, too. So a returned ttl=0 could would mean one of the following:

item exists with infinite TTL
item exists but item will expire in the very near future (no second based TTL left)
item doesn't exist

If this is the case we have to check for $this->internalHasItem($normalizedKey) as well:
    if ($ttl <= 0 && !$this->internalHasItem($normalizedKey)) {
        return false;
    }

PS: you did not rebased against master. You have merged the master into your branch.
Please use git fetch {remote} && git rebase {remote}/master ;)

Ok we are doing progress. Now I'm returning null if the item has no associated expire (whatever the version is) and false if the items doesn't exist.
However testGetMetadata in CommonAdapterTest is expecting an array, even if this is empty. @marc-mabe do you think I can replace the null return with an empty array?

@pensiero From interface:
    /**
     * Get metadata of an item.
     *
     * @param  string $key
     * @return array|bool Metadata on success, false on failure
     * @throws \Zend\Cache\Exception\ExceptionInterface
     */
    public function getMetadata($key);

@marc-mabe if as you said the tests are running with redis version >= 2 and < 2.6, how can this return a $metadata['ttl'] of -1 (instead of expected 0), basing on this case? thanks

@pensiero In this case you should return an array with ttl set to NULL instead of returning null

@marc-mabe it's what I did: https://github.com/pensiero/zend-cache/blob/feature/set-ttl-redis-adapter/src/Storage/Adapter/Redis.php#L531
but it seems that it's not the problem (or maybe I did not understand what you said)

                    // ...
                    $metadata['ttl'] = null;
                }
                $metadata['ttl'] = $ttl;
                // ...

It's not working this way as the raw TTL returned by redis will overwrite the ttl 2 lines later ;)

WTF! :grimacing: let's see if now they pass...

It's seems ok, what do you think @marc-mabe ?

Looks better now but there is the same issue with redis version >= 2.6 - see https://github.com/zendframework/zend-cache/pull/10/files#diff-8799c8aa6a52387ce614380b5db83f76R516
And please check your coding style - see https://travis-ci.org/zendframework/zend-cache/jobs/68730134
Again - please make a rebase with current master and combine all your commits into a single one
git fetch <upstream>
git rebase -i {upstream}/master

So nice rebasing! First time used! Thanks a lot @marc-mabe (never end to learning, very happy of this)

I think it looks good now :+1:
@Maks3w ping

great! thanks a lot marc!

Is there anything else I can do?


Requires termguicolors

Hi, great port, just wanted to add that it requires setting the termguicolors option in vim to get the expected visuals. Cheers.

Thanks for your note, I thought it was an obvious thing, but rightly for new vim users it is not, I just updated the README specifying what you requested.


Expressionlanguage in device should be optional

Describe the bug
Expressionlanguage is not set as optional in the datamodel of DeviceSettings, which will cause unexpected validation error
To Reproduce
from filip.models.ngsi_v2.iot import Device
test_device = Device.model_validate(  {
    "apikey": "your_apikey",
    "protocol": "IoTA-JSON",
    "transport": "MQTT",
    "expressionLanguage": None,
    "device_id": "device:001",
    "entity_name": "urn:ngsi-ld:WeatherStation:001",
    "entity_type": "WeatherStation",
    "attributes": [
      {
        "name": "sim_time",
        "type": "Number",
        "object_id": "t_sim"
      },
      {
        "name": "temperature",
        "type": "Number",
        "object_id": "t_amb"
      }
    ],
    "ngsiVersion": "v2"
  })

Suggestion
Use expressionLanguage: Optional[ExpressionLanguage] = Field(..., and add a test to prevent this happen again.

Hi @RCX112, could you have a look at this issue?

@djs0109 I can do that. I should set the expressionLanguage to jexl when it is set to None, otherwise it will be set to legacy in older versions of the IoT Agent

@RCX112 Thanks! That sounds good 👍


[SDL 0073] Adding Metadata Types

Proposal: Adding Metadata Types

This proposal introduces metadata types to the text field struct in order to allow for more robust HMI designs.

Review: https://github.com/smartdevicelink/sdl_evolution/issues/208
Steering Committee Decision:

Now that the requested revisions have been incorporated, the Steering Committee has agreed to accept this proposal.

Updated with evolution pull request..
Modify the names in the proposal to the following:
Enum: From TextFieldType to MetadataType
Struct: From MetadataStruct to MetadataTags
Show Param: From textFieldMetadata to metadataTags:


The footer is wrong

The footer is missing a link to versions
It has the sufia version instead of ScholarSphere
I does not have a link to the UL

PSUSprint03


Is it possible to compile Python code to executables?

Is it possible to compile Python code to executables like .exe files?
More specifically, can I compile youtube-dl to single executable file?
The dependencies of youtube-dl are only Python3 and Python3-setuptools.

PyInstaller looks like it might work; however, this repository probably isn't the best place to ask the question, as this version of python can't even run youtube-dl yet.

Yeah, but it seems to be very difficult (or maybe impossible) to build a single static executable on Linux using PyInstaller.

http://nuitka.net is what you are looking for, but this repo is a long away from being where it would need to be.

nuitka does not compile Python code to static executables, also it takes 20 minutes to compile youtube-dl.

At the moment this cannot be done with RustPython. First focus is being able to run youtube-dl at all :).

@joeky888 I will close this issue, since it will not be possible in the near future.


Unable to install Flux in k8s 1.19

Kubenetes version: 1.19
Suggested solution is to specify the default value for protocol as mentioned in
https://github.com/kubernetes-sigs/structured-merge-diff/issues/130
╷
│ Error: API response status: Failure
│
│   with kubernetes_manifest.flux["apps/v1/deployment/flux-system/helm-controller"],
│   on flux.tf line 42, in resource "kubernetes_manifest" "flux":
│   42: resource "kubernetes_manifest" "flux" {
│
│ failed to create typed patch object: .spec.template.spec.containers[name="manager"].ports: element 0: associative list with keys has an element that omits key field "protocol" (and doesn't have default value)
╵
╷
│ Error: API response status: Failure
│
│   with kubernetes_manifest.flux["apps/v1/deployment/flux-system/kustomize-controller"],
│   on flux.tf line 42, in resource "kubernetes_manifest" "flux":
│   42: resource "kubernetes_manifest" "flux" {
│
│ failed to create typed patch object: .spec.template.spec.containers[name="manager"].ports: element 0: associative list with keys has an element that omits key field "protocol" (and doesn't have default value)
╵
╷
│ Error: API response status: Failure
│
│   with kubernetes_manifest.flux["apps/v1/deployment/flux-system/notification-controller"],
│   on flux.tf line 42, in resource "kubernetes_manifest" "flux":
│   42: resource "kubernetes_manifest" "flux" {
│
│ failed to create typed patch object: .spec.template.spec.containers[name="manager"].ports: element 0: associative list with keys has an element that omits key field "protocol" (and doesn't have default value)
╵
╷
│ Error: API response status: Failure
│
│   with kubernetes_manifest.flux["apps/v1/deployment/flux-system/source-controller"],
│   on flux.tf line 42, in resource "kubernetes_manifest" "flux":
│   42: resource "kubernetes_manifest" "flux" {
│
│ failed to create typed patch object: .spec.template.spec.containers[name="manager"].ports: element 0: associative list with keys has an element that omits key field "protocol" (and doesn't have default value)
╵

Did the kubectl provider switched to server-side apply?

@stefanprodan I use the official Kubernetes provider for Terraform. How can I switch to the server-side apply?

@mvoitko I'm unsure of how to answer that, but YSK that Flux 0.26 is coming soon which drops support for K8s 1.19.
It does look like terraform-provider-kubernetes is migrating/migrated to Server-Side Apply according to these notes. It seems to have been this way for at least 6 months: https://github.com/hashicorp/terraform-provider-kubernetes/commit/fc8ad5fdb5e7a1d8ca2bf7deb6750fbe3fc1ae9f

@stefanprodan @kingdonb I have dived into the release notes and the code. The Kubernetes provider is ok and kunernetes_manifest uses the server-side apply by default. The problem is actually with the kustomizations from flux, more precisely the lines missing the value for the protocol in manager config of:

kustomize-controller - I opened a PR for this one
source-controller - PR
helm-controller - PR
notification-controller - PR

@stefanprodan Could you please tell me what's the flow of the release? When will be the next release of the controllers and when terraform-rpovider-flux could do the next release with the new versions of the controlers?

Next release will drop support for Kubernetes 1.19 as it has reached end-of-life months ago. Flux 0.26.0 release can be tracked here: https://github.com/fluxcd/flux2/issues/2308

@stefanprodan But can I use some specific commit from master for the terraform provider flux? The thing is that I want to deploy kubeflow with manifests with flux. And the kubeflow supports only k8s 1.19. The flux installation is broken for k8s 1.19.

The flux installation is not broken on 1.19, this provider uses kubectl not the official Kubernetes provider for Terraform.


[opentitanlib] OpenOCD refactor, continued

The is the remaining part of OpenOCD refactoring before I can add the dependent JTAG SiVal test.
It makes JTAG-related code a bit more idiomatic, by eliminating interior mutability and switch to use ownership and type-states to represent status of JTAG connection.
I did this in one batch because although there are multiple lines being modified, most of them are straightforward and only needed due to API change. Please let me know if you'd like this to split up to two PRs. It's recommended to review by commits.

Overall, LGTM, and seems sensible. But could we wait a week to merge this? Want to get this (https://github.com/lowRISC/opentitan/pull/20288) merged asap for Ben during the quiet period.

I need this for rv_dm sival, so I'd prefer this to land sooner than later. However I am happy to wait until your PR lands and rebase afterwards.


Add ios target for using library with Compose for iOS

Add ios target for using library with Compose for iOS. It is impossible to use these dependencies in project with Compose for iOS without this target:

koalaplot-core

Hi, I've added the ios() target and updated the GitHub actions to build on MacOS. However, there is a build error. Unfortunately, I don't have a Mac so I cannot troubleshoot the problem locally, and it took the runner almost 10 minutes to get to the point where a missing symbol was found.
If you have a Mac, could you help find the problem?
Link to the build log with the error

Hi again @gsteckman !
Also see this issue https://github.com/JetBrains/compose-multiplatform/issues/2342
Please try to add
kotlin.native.cacheKind=none
in your gradle.properties and try building project with ios() source set

I merged the PR from @jakepurple13 which includes the cacheKind property. But the builds are still failing due to undefined symbols during linking. There are a lot of warnings of mismatched versions for the simulator, which may be the root cause of the undefined symbols. The odd thing is in the latest commit I removed the iosSimulatorArm64() target, but it is still causing errors, see log for version 11 vs version 9.
When I left iosSomulatorArm64() in, it was version 15.2 vs version 9 - see log.
Any ideas where these version numbers are coming from? I tried searching and looked at some of the Kotlin multiplatform examples, but didn't see any ios specific version information in the build files.

Hello again @gsteckman. I'v created PR with fixes, which helped me to assemble all library artifacts and sucessfully use your library in compose multiplatform https://github.com/KoalaPlot/koalaplot-core/pull/16

Is there a way to get a snapshot build of the repo? JitPack doesn't seem to work anymore.

Is there a way to get a snapshot build of the repo? JitPack doesn't seem to work anymore.

Hi @zacharee.
I'm still waiting for @gsteckman to publish a new release with latest fixes.
For now i'm publishing Koalaplot artifacts to mavenLocal() with publishToMavenLocal gradle task and building my project this way.

Hi @zacharee, I published a 0.4.0-dev1 build with ios artifacts. Please let me know if they don't work ok for you. I don't own any Apple devices so can't test them. Thanks to @maltsev-gorskij for helping to get the ios build working.

I tried it, but it doesn't look like iOS artifacts got generated/uploaded. Gradle fails to sync because it can't find the ones for iOS.

I see them in search results at https://central.sonatype.com/search?q=koalaplot, and also can see the files at https://repo1.maven.org/maven2/io/github/koalaplot/.
What is the specific error you are getting?

I tried again and it's syncing now ¯\(ツ)/¯. I'll open a new issue if there are problems with functionality on iOS.

Hi @zacharee, I published a 0.4.0-dev1 build with ios artifacts. Please let me know if they don't work ok for you. I don't own any Apple devices so can't test them. Thanks to @maltsev-gorskij for helping to get the ios build working.

No problems. Glad to help ;)
P.S. Thanks for release!

Tried out the iOS support and works great....thanks!
https://twitter.com/joreilly/status/1699444224184201703?s=20


ValidationError: Entity of type A expected for property B.as, B {} of type object given.

Describe the bug
I am receiving a ValidationError error when trying to add a related object, book, to my author entity object. Can someone please help me understand why this is happening?
Code I am running:
const author = await em.findOneOrFail(Author, { name: "George" })
const book = new book("test");
author.books.add(book); // errors on this line

Note:
I've defined my entity relationships like so:
@ManyToOne('Author')
@OneToMany('Book', 'author')
Because of the following error: ReferenceError: Cannot access 'Author' before initialization

Stack trace
ValidationError: Entity of type Book expected for property Author.books, Author {
  _id: undefined,
  id: undefined,
  createdAt: ISODate('2021-12-24T22:38:35.896Z'),
  updatedAt: ISODate('2021-12-24T22:38:35.896Z'),
  body: 'test',
  author: undefined
} of type object given. If you are using Object.assign(entity, data), use em.assign(entity, data) instead.
    at Function.notEntity (/Users/me/projects/my-repo/node_modules/@mikro-orm/core/errors.js:40:16)
    at Collection.validateItemType (/Users/me/projects/my-repo/node_modules/@mikro-orm/core/entity/Collection.js:317:44)
    at /Users/me/projects/my-repo/node_modules/@mikro-orm/core/entity/Collection.js:111:40
    at Array.forEach (<anonymous>)
    at Collection.add (/Users/me/projects/my-repo/node_modules/@mikro-orm/core/entity/Collection.js:111:19)
    at __WEBPACK_DEFAULT_EXPORT__ (webpack-internal:///./src/pages/api/guild/create.ts:30:34)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Object.apiResolver (/Users/me/projects/my-repo/node_modules/next/server/api-utils.ts:107:5)
    at DevServer.handleApiRequest (/Users/me/projects/my-repo/node_modules/next/server/next-server.ts:1515:5) {
  entity: undefined
}

To Reproduce
Steps to reproduce the behavior:
Book.ts
@Entity({ tableName: "books" })
export class Book {
  @Property()
  body?: string;

  @ManyToOne('Author')
  author!: Author;

  constructor(body: string) {
    super();
    this.body = body;
  }
}

Author.ts
@Entity({ tableName: "authors" })
export class Author {
  @Property()
  @Unique()
  name: string;

  @OneToMany('Book', 'author')
  books = new Collection<Book>(this);

  constructor(name: string) {
    super();
    this.name = name;
  }
}

config.ts
const config: Options = {
  type: "mongo",
  clientUrl: process.env.MONGODB_URI,
  entities: [
    Author,
    Book,
  ],
  debug: process.env.NODE_ENV === "development",
  highlighter: new MongoHighlighter(),
  metadataProvider: ReflectMetadataProvider,
  ensureIndexes: true,
  pool: { min: 10, max: 100 },
};
export default config;

Expected behavior
Expect the book to be added to the author relationship collection.
Versions
| Dependency | Version |
| node | 17.0.1 |
| typescript | 4.3.5 |
| mikro-orm | 4.5.9 |
| mongodb / your-driver | 4.0.0 |

Can you provide full reproduction? Also that lowecase book class in your example is a typo? Should be new Book(), not new book().
I am not fully sure if node 17 is supported with v4, might as well be something with ts config (e.g. v4 does not work with esnext). But sounds weird, examples like that are part of the test suite. Try logging the entity before you add it to the collection.
I could also imagine something like that if you import from bad location, that error suggests it is not a discovered entity. That might happen if you import from dist I guess.

Hi B4nan,
Thanks for responding so quick and for catching the typo. I've fixed it by making it uppercase: new Book().
Is there documentation on what node version I should use? I didn't see it in the repo. I can downgrade if necessary.
You are correct that I am importing from dist though according to the typescript config:
tsconfig.server.json:
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "module": "commonjs",
    "outDir": "dist",
    "target": "es2017",
    "isolatedModules": false,
    "noEmit": false,
    "declaration": true,
    "emitDecoratorMetadata": true
  },
  "include": [
    "src/server/**/*.ts"
  ]
}

What do you need for the full reproduction? I've given most of the code. What else would you like to see?

Full (but minimal) project i can run and see the failure myself (or even better a test case).
I dont think you should be importing from dist, so i would expect that to be your problem.

Sounds good @B4nan . I'll work on creating a minimal project that you can look at. Will message it here when I have it ready for you to look at. Thanks!


Add breakingChanges prop to prop interface

What: Add the breakingChanges prop to TypeScript typings

Why: TypeScript projects can't use resetInputOnSelection until this prop is added

How: Added breakingChanges to index.d.ts.

Checklist:

[ ] Documentation N/A
[ ] Tests N/A
[x] Ready to be merged

[x] Added myself to contributors table

@kentcdodds Who might those typescript maintainers be? I'd like to get this in.

Thanks so much for your help! I've added you as a collaborator on the project. Please make sure that you review the other/MAINTAINING.md and CONTRIBUTING.md files (specifically the bit about the commit messages and the git hooks) and familiarize yourself with the code of conduct (we're using the contributor covenant). You might also want to watch the repo to be notified when someone files an issue/PR. Please continue to make PRs as you feel the need (you can make your branches directly on the repo rather than your fork if you want). Thanks! And welcome to the team :)

:tada: This PR is included in version 1.31.15 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[K8S][HELM] Update default Kyuubi version to 1.7.1

Why are the changes needed?
The change is needed to use latest stable released version of Kyuubi in the Helm chart by default.

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

Codecov Report

Merging #4818 (46fad19) into master (299df0d) will decrease coverage by 0.08%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #4818      +/-   ##
============================================
- Coverage     58.10%   58.03%   -0.08%
  Complexity       13       13
============================================
  Files           583      583
  Lines         32563    32563
  Branches       4318     4318
============================================
- Hits          18922    18898      -24
- Misses        11828    11846      +18
- Partials       1813     1819       +6

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

Thanks @dnskr. We need to update docs to note where we should update when bumping the project version. (Currently only pom.xml)


Filter & Mixer sprites have offset pipes.

Gotta love 5-pixel wide pipes on 32x32 sprites. If someone wants to fix this, make sure to test the sprites for all rotations & when looking at rotated grids (relative to the player's eye).

Mind if you clarify this?


Create a "sizing" guide

We need to have some standardization on spacing. Update css and styleguide with it.

https://www.loom.com/share/48d32f8d21ca4c4e9ebb26e3ce84f81d
@andrewebdev @jupiter007 Video of work in progress - I ran out of time this afternoon to finish this off and create a proper PR. Hopefully it sorted by tomorrow morning.
Feel free to pull down the brand and have a snoop about with work so far.

@fraserclark, that's awesome. Thanks so much for doing that work. I created a ticket for this work for tracking and assigned it to you: https://github.com/CDLUC3/dmsp_frontend_prototype/issues/151

@fraserclark , just one comment. I think we'll need an "xsmall" to $font-sizes in "globals.scss" so that we can use that size for microtext or errors below form fields.

Added xsmall in which is 0.75rem (12px)
It might be worth checking accessibility on this, I have a feeling the upcoming standard (still in draft) W3C Accessibility Guidelines (WCAG) 3.0 has preliminary recommendations for font sizes - although its probably far away from being approved and AAA does not have any standards on it I don't think


More screen-sharing configurations

Check for existing issues

[X] Completed

Describe the feature
I'd love more screen-sharing configurations to:

turn off automatic screen share (and manually enable it when needed) - would be great to override it through .zed/settings.json
only share target screen(s)/application(s) a-la Discord
allow to have screen shared even while editing in Zed; this would help when collaboratively working on frontends -> make some changes, save, and see changes directly in Zed.

If applicable, add mockups / screenshots to help present your vision of the feature
No response

Explain the first one a bit more?
Yeah we need to do this. Will probably add this in our streaming push or shortly after.
You can do this now, if you are sharing your screen your follower can open the collaboration menu and select "Screen" instead of the shared project. We need to make this more discoverable.

Explain the first one a bit more?

I work with different teams and partners, and I try to push Zed to them, so I often invite them to collaborate. But in these cases, I don't always want to share the screen with them when leaving Zed - it may be that as my partners are coding, I'm quickly answering a message on Slack, or writing a response email, which I don't want to share.
I know the docs say it's up to me to keep my screen clean, but I was wondering if a configuration may come to help.
Similarly, as the project_online_by_default, I'm hoping we can have a share_screen_by_default configuration that can be set.
The idea of turning it on/off at a project level is very nice to have, but not a requirement.

Yeah we need to do this. Will probably add this in our streaming push or shortly after.

Exciting, looking forward to it.

You can do this now, if you are sharing your screen your follower can open the collaboration menu and select "Screen" instead of the shared project. We need to make this more discoverable.

Uhm, I'll try this out, because I thought I couldn't share my screen and code at the same time. But if that's already possible, I just need to discover it :-D.
Thank you @iamnbutler

it may be that as my partners are coding, I'm quickly answering a message on Slack, or writing a response email, which I don't want to share.

I also wouldn't want deskop notifications from messaging apps showing up, as they often contain the actual contents of messages. I know macOS has a feature to suppress notification popups while screensharing but that seems more like a bandaid than a proper solution and is not available on other platforms.

it may be that as my partners are coding, I'm quickly answering a message on Slack, or writing a response email, which I don't want to share.

I also wouldn't want deskop notifications from messaging apps showing up, as they often contain the actual contents of messages. I know macOS has a feature to suppress notification popups while screensharing but that seems more like a bandaid than a proper solution and is not available on other platforms.

We might already do this? I'm not totally sure. I am away of that feature, unsure if we ended up shipping with it or not.


enhancement: 4423 switch sending back data from server to res.json() …

…swapped res.send() for res.json()
I didn't see any times we were streaming data to use res.end
Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)

looks like our linting rules come from the @spotify/eslint module. Should I make a PR to include a plugin to discourage the use of res.send() ?


Issue with Analogue Jobs Crashing Due to Missing Attribute in Bridgeport

Hi David,
I hope this message finds you well. I’m running analogue jobs, but I’ve encountered an issue where every job crashes after running for about 7–8 minutes. The error log points to an AttributeError: 'Bridgeport' object has no attribute 'sim'.
Here’s a brief summary of the problem:
The crash occurs during the choose_analogue_conformer step in the Bridgeport.py script.
Specifically, the error arises at the line:
md.Topology.from_openmm(self.sim.topology)
I’ve attached the relevant log file for your reference. Could you please provide guidance on resolving this issue? Let me know if you need further details or if there are any recent changes to the framework that might be causing this.
Thankyou.
Regards
Aiman
BRIDGEPORT.26852856.v005.out.txt
IHCH-7087_analogue.json

Tried to help resolve this today, see the code snippet below.
The error is occuring because the attribute self.sim is not assigned when self.choose_analogue_conformer() is run.
It is However assigned in the following method, self.reposition_at_origin()
On Aiman's local copy, I changed instances of sim in self.generate_systems() to self.sim, so that it remains assigned for the self.choose_analogue_conformer method.
@aimankhan131 Please update after running again if this resolved your error.
#Make OpenMM Systems
self.generate_systems()
Choose analogue complex, if applicable
if hasattr(self, "analogue_pdbs"):
if "minimize" in self.input_params["Ligand"] and self.input_params["Ligand"]["minimize"] == False:
pass
else:
self.choose_analogue_conformer()
Repositions
self.reposition_at_origin()


feat: disable command completion

During the testing I've found that there is one autocompletion:

@ifaouibadi please check it.
Also I've found other issues on iOS app, will register it separately.


Enable statsmodel to df for rlm and add test

Codecov Report

Merging #216 (4f9b0d1) into master (51168ee) will increase coverage by 0.62%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #216      +/-   ##
==========================================
+ Coverage   97.47%   98.09%   +0.62%
==========================================
  Files          36       36
  Lines         991      999       +8
  Branches      146      146
==========================================
+ Hits          966      980      +14
+ Misses         10        6       -4
+ Partials       15       13       -2

Impacted Files
Coverage Δ

mne_nirs/statistics/_statsmodels.py
97.36% <100.00%> (+15.78%)
:arrow_up:

mne_nirs/statistics/tests/test_statsmodels.py
100.00% <100.00%> (ø)

mne_nirs/channels/tests/test_roi.py
100.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 51168ee...4f9b0d1. Read the comment docs.


Add test for optional redirect feature

We need to add a test for #243

Hello, I saw the label and felt that I could contribute. If you point me towards the direction in which I should approach, that would be very helpful.
Thanks.

This was fixed by @citizens ! Thank you!


Workspace: local dependency not detected

Inside of a workspace, you can have two crates A and B. Both crates use the same version system, so the shared-version flag is activated. Crate A depends on the exact same version of crate B. When releasing, crate B should be released before crate A. Internal dependencies of crate A to crate B should also have the version bumped.
Here is a concrete example: in gladis, the workspace has both gladis (crate A) and gladis_proc_macro (crate B).
In order to release a new version using cargo-release, I had to manually:

cargo release patch --workspace --skip-publish --skip-push --execute --verbose;
git checkout v1.0.1 (go on the generated version before dev bump);
cd gladis_proc_macro && cargo publish;
manually update the gladis/Cargo.toml crate to use the just-published gladis 1.0.1; and
rebase the dev bump commit after this manual manipulation.

Expected behavior is that:

the crates would automatically be published in the correct order using a simple dependency solver (maybe with a depth of 1 as a first dump implementation); and
the internal dependency to be updated just after it has been published, and before publishing the other crate.

I have time available to help implement this, either by providing more information or drafting Rust code. I have 3 crates using this subcrate/proc_macro couple structure inside of a workspace, so I would love to simplify my releasing process using cargo-release.

I ran cargo release patch -vvv --skip-publish and got:
2021-09-20T18:02:40Z DEBUG cargo_release] Cannot detect changes for gladis_proc_macro because tag gladis_proc_macro-v1.0.2-alpha.0 is missing. Try setting `--prev-tag-name <TAG>`.
[2021-09-20T18:02:40Z DEBUG cargo_release] Cannot detect changes for gladis because tag v1.0.2-alpha.0 is missing. Try setting `--prev-tag-name <TAG>`.
[2021-09-20T18:02:40Z DEBUG globset] built glob set; 0 literals, 1 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 0 regexes
[2021-09-20T18:02:40Z TRACE cargo_release::git] upstream/master: upstream/master
[2021-09-20T18:02:40Z TRACE cargo_release::git] merge base:
[2021-09-20T18:02:40Z WARN  cargo_release] master is behind upstream/master
[2021-09-20T18:02:40Z INFO  cargo_release] Update gladis_proc_macro to version 1.0.2
[2021-09-20T18:02:40Z DEBUG cargo_release] Updating lock file
[2021-09-20T18:02:40Z INFO  cargo_release] Update gladis to version 1.0.2
[2021-09-20T18:02:40Z DEBUG cargo_release] Updating lock file
[2021-09-20T18:02:40Z DEBUG cargo_release::replace] Substituting values for /home/epage/src/personal/gladis/gladis/CHANGELOG.md
[2021-09-20T18:02:40Z TRACE cargo_release::replace] Change:
    --- CHANGELOG.md    original
    +++ CHANGELOG.md    replaced
    @@ -9,0 +10,2 @@
    +
    +## [1.0.2] - 2021-09-20

[2021-09-20T18:02:40Z DEBUG cargo_release::replace] Substituting values for /home/epage/src/personal/gladis/gladis/README.md
[2021-09-20T18:02:40Z TRACE cargo_release::replace] Change:
    --- README.md       original
    +++ README.md       replaced
    @@ -17 +17 @@
    -gladis = "1.0.1"
    +gladis = "1.0.2"

[2021-09-20T18:02:40Z TRACE cargo_release::cmd] cd /home/epage/src/personal/gladis
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] git commit  -am (cargo-release) version 1.0.2
[2021-09-20T18:02:40Z DEBUG cargo_release] Creating git tag v1.0.2
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] cd /home/epage/src/personal/gladis/gladis
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] git tag -a v1.0.2 -m v1.0.2 -s
[2021-09-20T18:02:40Z INFO  cargo_release] Starting gladis_proc_macro's next development iteration 1.0.3-alpha.0
[2021-09-20T18:02:40Z INFO  cargo_release] Fixing gladis's dependency on gladis_proc_macro to `^1.0.3-alpha.0` (from `^1.0.2-alpha.0`)
[2021-09-20T18:02:40Z INFO  cargo_release] Starting gladis's next development iteration 1.0.3-alpha.0
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] cd /home/epage/src/personal/gladis
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] git commit  -am (cargo-release) start next development iteration 1.0.3-alpha.0
[2021-09-20T18:02:40Z INFO  cargo_release] Pushing v1.0.2 to upstream
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] cd /home/epage/src/personal/gladis/gladis
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] git push upstream v1.0.2
[2021-09-20T18:02:40Z INFO  cargo_release] Pushing HEAD to upstream
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] cd /home/epage/src/personal/gladis
[2021-09-20T18:02:40Z TRACE cargo_release::cmd] git push upstream master
[2021-09-20T18:02:40Z WARN  cargo_release] Ran a `dry-run`, re-run with `--execute` if all looked good.

It seems to release in the correct order (in fact, we use cargo to tell us what order to publish in).  What is happening to suggest they aren't releasing in the correct order?
I did have to skip publish because the pre-release dependency is considered compatible, so no upgrade is needed, but publish couldn't find a published pre-release or released version, so it failed.
As I said, because of the pre-release version being compatible, its not needing to change the dependency version.  Is this what you are seeing with it not updating dependents?  If you wish to always upgrade dependents (rather than just fix it when an upgrade is outside of the version req). you can set dependent-version = "upgrade".


Parallelisation of matching

For the Kuester_200 set, a lot of computational time (20% was for matching). This could be accelerated by parallelisation.

Moved to suggestions.


Expand Redux tutorial

I've got standard Nested navigator working with tabs and stack navigators. I'm struggling to get my head around the Redux tutorial (albeit, I'm relatively new to Redux). I have redux working following https://github.com/jlebensold/peckish and trying to intergrate the 2.
The react-navigation redux tutorial has no information about

mapStateToProps
actions
tabs

Warning: Failed prop type: The prop navigation.state is marked as required in CardStack, but its value is undefined.
Can anyone help one this?

I wrote a detailed example of taking complete control...
<EMAIL_ADDRESS>

@parkerdan you da man!

@parkerdan, You can certainly do things that way, but it is usually easier to delegate the navigation reducer logic to MyNavigator.router.getStateForAction. This reducer handles all the standard navigation actions, and of course you can add additional logic that is specific to your application.

@ericvicenti thats what i though. Kinda makes it complicated the way @parkerdan  did it. Certainly works, but it seemed like a lot of work for this library already does.

@ericvicenti...thanks.  getStateForAction  sure does make it super easy to navigate and goBack().  Still need some logic in place for Android Back Button things, correct?

The back button behavior is just a back action, but you do need to fire the action on the native back button event. If your top-level navigator doesn't have a navigation prop, this will happen automatically, but when your navigation is integrated with redux, you need to listen to the back event manually.

I wrote an minimalistic example of using Redux together with nested navigators.
You can open it in Exponent:
https://getexponent.com/@nauktis/nested-navigation-redux
(every component shows you the complete Redux state, so you can figure out what happens)
The source can be found there:
https://github.com/hwaterke/react-navigation-nested-redux/blob/master/main.js

Can anyone help me with my code? I've read @parkerdan tutorial but I can't get it working with Redux
My RootContainer of the app:
`
...

...
export default connect(null, mapDispatchToProps)(RootContainer)
`
PrimaryNavigation:
`
const mapStateToProps = (state) => {
return {
navigationState: state.primaryNav
}
}
class PrimaryNavigation extends React.Component {
render() {
return (
<PrimaryNav
navigation={
addNavigationHelpers({
dispatch: this.props.dispatch,
state: this.props.navigationState
})
}
/>
)
}
}
export default connect(mapStateToProps)(PrimaryNavigation)
`
PrimaryNav:
`
const routeConfiguration = {
LaunchScreen: {
screen: LaunchScreen
},
LoginScreen: {
screen: LoginScreen
},
MainContainer: {
screen: MainContainer
}
}
// Manifest of possible screens
const PrimaryNav = StackNavigator(
routeConfiguration,
{
// Default config for all screens
headerMode: 'none'
})
export default PrimaryNav
export const reducer = (state, action) => {
const newState = PrimaryNav.router.getStateForAction(action,state)
return newState || state;
}
`
My create store:
`
const rootReducer = combineReducers({
...
primaryNav: require('../Navigation/AppNavigation').reducer
})
return configureStore(rootReducer, rootSaga)
`
When I start the app - I get an error of Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. Check the render method of 'PrimaryNavigation'

@parkerdan
Thank you for your excellent example. However, I would prefer all data to live in my reducers and for the reducer data to be the source of truth. To achieve this I store React Navigation routers state in my Reducers and pass that routers state to the Navigators. This allows me to keep the reducer as the source of truth in my app.
Navigation Reducer:
https://github.com/CMP-Studio/BeaconDeploymentTool/blob/master/src/reducers/navigation.js
Initing a Navigator:
https://github.com/CMP-Studio/BeaconDeploymentTool/blob/master/src/components/rootScreen.js
If this is helpful to anyone else. I suggest upping this issue I created to allow navigators routers to be passed in which would allow my solution to feel less 'hacky':
#797


Added Devicons theme

Added devicons theme for file and folder icons to match most vim/ranger themes.
References:
https://github.com/ryanoasis/vim-devicons
https://github.com/cdump/ranger-devicons2

Hey @Lenan , thanks for the PR but I don't think adding in multiple icon themes in the binary would be a good idea. We have plans to eventually add option to let the user configure all the icons. The idea with unicode was to let users who don't have any icon fonts to be able to use the basic set of icons at least.


add or remove auto-gen files

see #139 vs #141

FYI, Google just provides the .proto files for their APIs (see https://github.com/googleapis/googleapis/tree/master/google).  Directory structure typically ./service/v1/*.proto (ex. google ai platform https://github.com/googleapis/googleapis/tree/master/google/cloud/aiplatform/v1)
Should we move to this structure? I believe that we only want to provide the .proto files as they are the interface definitions.

auto-gen files create a nuisance when merging, but helps avoid additional code generation by the users of the APIs.
I would prefer keeping generated files and language bindings/packages so they can act as reference and also avoid burden on the users of the APIs (which would be inherently in a specific language). Of course developers have to deal with merge conflicts resolution on generated files, which can be handled easily (although unwanted)

what we landing on now is separate repo for only generated files....
every time PR for proto is submitted, CI/CD github action will auto-create and commit generated files
and even maybe bump a version

makes sense. thanks! good idea.


Client Credentials for "public" endpoints

Hi!
I'am develop Android app for DeviantArt and faced with a problem:
To get access to "public" endpoints my app should obtain access_token using "Client Credentials" flow.
According with "Client Credentials" flow, client make request using it's client_id and client_secret.
But OAuth specification says that public clients (Android app in my case) shouldn't store client_secret locally, because app can be decompiled and client_secret can be stolen.
So, what the best way to store client_secret? I'm found this answer and just to be sure i decide to place my question here. Thank you.

Yeah we accept that this is not ideal but you are fine to do what it says in that answer.


No need for all my move to when I draw the lines

Removed the un-needed moveto javascript commands


mTLS authN mode

There's already a placeholder for it at https://github.com/3scale-labs/authorino/blob/2b6a6f8016a5837650506cd125751f8d95ea4197/pkg/config/identity/mtls.go.

Implementation for this could involve having the CA certs stored in kubernetes.io/tls-type Secrets, having such secrets labelled as "managed-by" Authorino, similarly to how it's currently done for API keys.
In the case of Authorino API keys, however, each Kubernetes Secret represents one identity, where specific user info can be stored, e.g., in the annotations of the secrets. For the mTLS implementation, on the other hand, each Secret would represent not a specific user identity, but a trusted authority which can sign any number of user/client certificates – i.e., an "issuer of identities".
Without storing SANs/CNs anywhere, mTLS authentication in Authorino will probably be limited to

verification of the (root) CA signature, and
validity in time ("notBefore" and "notAfter" fields).

This limitation is similar to the current support for the verification of OpenID Connect JWTs in Authorino.
Some authorization policies can still be implemented based on SANs/CNs and/or other fields of the certificate. However considering X.509 certificates are usually not very complex structures (unlike JWTs), any additional user data will likely have to be fetched from external services in request-time, using Authorino HTTP GET/GET-by-POST metadata.
Revocation is another issue to consider. Unless we're planning on supporting certificate revocation lists (see https://datatracker.ietf.org/doc/html/rfc2459#section-3.3 for more info), issued certificates shall be valid until they expire. While for OIDC UserInfo metadata can be still be fetched in request-time as a workaround to prevent revoked tokens access, for mTLS such revocation lookup would have to be implemented by the user, again leveraging Authorino HTTP GET/GET-by-POST metadata

A reference about the client cert revocation issue: https://github.com/kubernetes/kubernetes/issues/18982


python310Packages.flask-security-too: 4.1.2 -> 4.1.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.flask-security-too is: "Simple security for Flask apps (fork)"
meta.homepage for python310Packages.flask-security-too is: "https://pypi.org/project/Flask-Security-Too/"
meta.changelog for python310Packages.flask-security-too is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 4.1.3 with grep in /nix/store/bmhrwzly9qa3w3fxmfj98xnbi6p4sh5h-python3.10-flask-security-too-4.1.3

found 4.1.3 in filename of file in /nix/store/bmhrwzly9qa3w3fxmfj98xnbi6p4sh5h-python3.10-flask-security-too-4.1.3

Rebuild report (if merged into master) (click to expand)

6 total rebuild path(s)

3 package rebuild(s)

3 x86_64-linux rebuild(s)
3 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
pgadmin4
python310Packages.flask-security-too
python39Packages.flask-security-too

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/bmhrwzly9qa3w3fxmfj98xnbi6p4sh5h-python3.10-flask-security-too-4.1.3 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.flask-security-too https://github.com/r-ryantm/nixpkgs/archive/16e667e3495488b8f1e514d850b0b3fba0be84a1.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/bmhrwzly9qa3w3fxmfj98xnbi6p4sh5h-python3.10-flask-security-too-4.1.3
ls -la /nix/store/bmhrwzly9qa3w3fxmfj98xnbi6p4sh5h-python3.10-flask-security-too-4.1.3/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

3 packages built:

pgadmin4
python310Packages.flask-security-too
python39Packages.flask-security-too

Maintainer pings
cc @gador for testing.

Result of nixpkgs-review pr 162825 run on x86_64-linux 1

3 packages built:

pgadmin4
python310Packages.flask-security-too
python39Packages.flask-security-too

pgadmin4.tests pass, too. So LGTM


ResourceWarning - not closing files

Observing some logs like:
WARNING ... py.warnings: /.../collectfast/strategies/base.py:79: ResourceWarning: unclosed file <_io.BufferedReader name='/.../django/contrib/admin/static/admin/js/SelectBox.js'>
   contents = local_storage.open(path).read()
 WARNING ... py.warnings: /.../collectfast/strategies/base.py:79: ResourceWarning: unclosed file <_io.BufferedReader name='/.../django/contrib/admin/static/admin/js/popup_response.js'>
   contents = local_storage.open(path).read()

Probably easily fixable by opening the files as a context manager

Thanks for reporting this, should now be fixed in master.


⚠ Bofrost.be has degraded performance

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

HTTP code: 200
Response time: 1593 ms

Resolved: Bofrost.be performance has improved in b5ddbbe.


Add move to next/previous keyframe in animation view

Godot version:
master / 6e200b1fe0b03bc0acc6d7ab097750d87aa7ac67
OS/device including version:
Manjaro Linux 17.1
Issue description: (This issue is a feature request)
When working with animations, sometimes you need to add a key to a track at the exact position where other keys from different tracks exist.
We already have move to next/previous frame feature, but it simply moves between quantized positions so it's not very useful when intervals between the keys are not in neat values like 0.1.
What could be a more useful feature in such scenarios would be 'move to next/previous keyframe' featuure, which moves the playback cursor to the adjacent point where the closes keys from other tracks exist.

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.
The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.
If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!


fix: pointInFreehand calculation error(cornerstonejs#1160)

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

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

What is the current behavior? (You can also link to an open issue here)
#1160

What is the new behavior (if this is a feature change)?
N/A

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
N/A

Other information:
The pointInFreehand has a calculation error in the lineSegmentAtPoint and the isLineRightOfPoint;

/**
 * Returns the y value of the line segment at the x value of the point.
 * @private
 * @method
 * @name lineSegmentAtPoint
 *
 * @param {Object} point The point being queried.
 * @param {Object} lp1 The first point of the line segment.
 * @param {Object} lp2 The second point of the line segment.
 * @returns {Object} An object containing the y value as well as the gradient of the line segment.
 */
function lineSegmentAtPoint(point, lp1, lp2) {
  const dydx = (lp2.y - lp1.y) / (lp2.x - lp1.x);
  const fx = {
    value: lp1.x + dydx * (point.x - lp1.x),
    gradient: dydx,
  };

  return fx;
}

After calculation，find errors quickly in fx.value. The correct answer is lp1.y + dydx * (point.x - lp1.x)
Then get the correct answer.
But I found a calculation error again when it judged whether the line segment is to the right of the point.

  const lPointY = lineSegmentAtPoint(point, lp1, lp2);

  // If the lp1.x and lp2.x enclose point.x check gradient of line and see if
  // Point is above or below the line to calculate if it inside.
  if (Math.sign(lPointY.gradient) * point.y > lPointY.value) {
    return true;
  }

The correct answer is
  const lPointY = lineSegmentAtPoint(point, lp1, lp2);

  if (Math.sign(lPointY.gradient)  > 0 && point.y > lPointY.value) {
    return true;
  }
  if (Math.sign(lPointY.gradient)  < 0 && point.y < lPointY.value) {
    return true;
  }

Can also be written as
  const lPointY = lineSegmentAtPoint(point, lp1, lp2);

  if (Math.sign(lPointY.gradient)  * point.y > Math.sign(lPointY.gradient)  * lPointY.value) {
    return true;
  }

This looks like the correct logic, but strangely if I compare a rectangle and an roi with 4 points at approximately the same corners, the areas are drastically different:

Its strange as these were some of the tests we did back in cornerstoneTools 2.0, so maybe it broke some time ago? It may be unrelated to your PR.

Hmm.. Is the Area calculation a throttle calculation issue? Are we seeing outdated numbers? (does a slightly resizing the annotation resolve the discrepancy)

hmm...,So my PR can solve the pointInFreehand calculation error, right? @JamesAPetts
Then i cannot reproduce this problem.

The formulas for calculating the area are correct between Freehand and Rectangle.
But i found some differences between Freehand and Rectangle in pixelSpacing and update strategy.
In Rectangle ROI, use utils/getPixelSpacing to get pixelSpacing but Freehand ROI use the image.columnPixelSpacing and image.rowPixelSpacing directly.
And Freehand ROI update textbox stats when data.invalidated === true && !data.active
Could you give me a dicom file which can reproduce. @JamesAPetts @dannyrb
Should we fixed the pointInFreehand calculation bug first and create another issue to discuss this problem. @JamesAPetts @dannyrb

Could you give me a dicom file which can reproduce.

I was just trying on the netlify demo:
https://deploy-preview-1161--cornerstone-tools.netlify.com/
I've checked and the issue appears in netlify demos before this PR. This PR obviously has the correct math and serves its purpose, lets merge this and create another issue @dannyrb ?

:tada: This PR is included in version 4.9.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket: