Add permissions to manage machineconfig resource

machineconfig is used in post installation machine configuration tasks. Currently, the application controller service account doesn't have permissions to manage machineconfig resources. This PR adds a rule in the cluster config cluster role to manage machineconfig
More details about machine configuration resource:
https://docs.openshift.com/container-platform/4.7/post_installation_configuration/machine-configuration-tasks.html
How to Test:
Install Argo CD operator by creating a catalog source
Create an argocd instance in test namespace
Add test namespace to cluster config namespaces list ie set an environment variable ARGOCD_CLUSTER_CONFIG_NAMESPACES=test in the Subscription
Verify if machineconfig rule is added in clusterrole -test-argocd-application-controller
- apiGroups:
  - 'machineconfig.openshift.io'
  resources:
  - '*'
  verbs:
  - '*'

Create a sample application with machineconfig
argocd app create machineconfig--repo https://github.com/dewan-ahmed/argocd-machineconfig-example --path=example --dest-server=https://kubernetes.default.svc --dest-namespace=openshift-machine-api
argocd app sync machineconfig
Argo CD should successfully sync and create the machineconfig

LGTM
thanks @iam-veeramalla !


PREP: remove defaults channel (tiny)

SIGH well this still doesn't seem to be working. i'll have to figure out another way to force conda to not use the defaults channel.

closing in favor of https://github.com/qiime2/distributions/commit/fd49d2a2e17f7cb5671196b66493401ea889f718


Support SQL EXPLAIN PLAN FOR

Background
Standard SQL supports EXPLAIN plan functionality. The output of EXPLAIN is the physical execution plan (in a tree format) giving overview of the physical relational operators that will be used to execute the query. The query plan is always interpreted bottom-up (industry standard in databases).
In most databases (both OLTP and OLAP), the EXPLAIN plan also outputs the cost of the query (for each operator in the tree). The cost is mostly in terms of CPU, I/O that the operator might consume during the course of query execution. The numbers are based on estimates and statistics (rowCount etc) that databases commonly maintain per table for query optimizers to generate the best execution plan during the query planning process. This is commonly referred to as Estimated execution plan in database parlance.
Next is Actual execution plan which annotates the operator tree in estimated execution plan with profiling information (wall-clock time, cpu, I/O waits, numRows from one operator to another etc) collected during the execution of the query.
Proposal
Add support for EXPLAIN PLAN FOR <SQL QUERY>
The output of the command should be the physical execution plan

The output format is a design detail yet to be explored but should ideally be a human readable/parseable tree format
We can also leverage some nice UI/visualization library to feed the tree into that to generate a nice looking flowchart

Physical execution plan must include the following

Physical operators that are actually going to execute the query if the query were to be executed.
The flow of data from one operator to another (this is where hierarchical / tree view becomes important)
Pinot specific information
-- Servers that will be queried (info available at the broker)
-- Segments that will be queried (info available at the broker)
-- Indexes that will be used (table config)

Note that SQL QUERY inside FOR clause won’t be executed.
Can consider to enhance the cluster manager controller UI that runs the EXPLAIN query to allow for visualizing and saving/downloading the plan (to XML, JSON etc)
We can optionally configure to run EXPLAIN PLAN for displaying the calcite logical plan. This may not be feasible for the following reasons

Calcite planning code needs us to supply planning rules, traits, schema, cost factory for optimization
Pinot currently doesn’t have a plan optimizer since our query plans are straightforward. When we do add cost/rule based optimization support (must for N way joins distributed joins), we will have a cost factory, planner rules etc. We can then consider showing a logical plan.
Will require reasonable integration with calcite planner and optimizer.

Additional Goal
We will add support for profiling (timing) the different stages (scan, filter, group by, sort, project, reduce) of the query execution.
How does this fit in?
When a user runs the SQL query (without EXPLAIN)

If profiling is turned on we can collect all these statistics and return them as part of the response statistics we return today (RequestStatistics object in broker query API)
If profiling is not turned on, we do whatever is done today

When a user runs the EXPLAIN FOR

If profiling is turned on (or calcite explain plan is run with ALL ATTRIBUTES), we execute the query as well
Collect profiling info and return them as part of query response
Annotate the physical execution plan with the profiling information for each operator in the tree to get actual physical execution plan
So essentially we give the user an option to run EXPLAIN with profiling

This is also the behavior supported by SQL Server for example.
The key thing here is profiling info. We recently added support for measuring query execution cpu time on servers. It accounts for everything under Combine operator. We should continue to use this over wall-clock/elapsed time. But this requires some performance experiments to see if pushing down cpu time based instrumentation at the operator level will introduce any overhead or not. In any case, we have the cpu time info for Combine operator so that can be put in the actual execution plan.
We have started working on this. Will be sharing design/details etc with the community.

We have started working on this. Will be sharing design/details etc with the community.


(xa): fix thread safety issue of hash set

Codecov Report

Merging #459 (494dcf8) into dev (9497ae2) will not change coverage.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##                dev     #459   +/-   ##
=========================================
  Coverage     14.95%   14.95%
  Complexity      398      398
=========================================
  Files           180      180
  Lines          8093     8093
  Branches        666      666
=========================================
  Hits           1210     1210
  Misses         6796     6796
  Partials         87       87

Impacted Files
Coverage Δ
Complexity Δ

...ebank/wecross/routine/xa/XATransactionManager.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)


Allow negative balances

Some interesting possibilities when balances are allowed to go negative:

Loans
Fast parallel verification of the ledger (divide and conquer and no need for bigint)

Downsides:

Will frequently need to check for positive numbers throughout the codebase
Max tokens cut in half

Seems the pros far outweigh the cons. Ears open if others would care to comment.

so this would be a per "token" specification, no?

Not sure I understand the question. Balances are tied to Public Keys.

if we had custom user tokens, some may be of unsigned type, some maybe signed


Angular 2.0 release date fix

Angular 2.0 is expected to be released by end of year 2016.

We should just remove any release timing statements in this doc for Angular 2.0.


Ask to settle gives wrong message on receiver side

Ask to settle button generates the message "all settled"

@vojtechsimetka this still happens on my side, why/

Let's debug together. I bet  there is some other underlying issue which may also explain other things.

we figured it out, everything is working :-) thanks @vojtechsimetka


How can you add short term memory to an AgentExecutor in JS/TS?

I've been over your docs and I don't seem to find any relevant information except for Python docs there seems to be a way where the executor can have access to tools and agent and memory instances, I tried to connect a regular OpenAI chat to Redis and it works but not the agent I'm struggling to figure it out been here for days and cant seem to find relevant info. Many thanks to anyone who could help a brother out

is there a way to not use the constructor method ?


[site-support-request] chartsinfrance.com

D:\youtube-dl>youtube-dl.exe --update
youtube-dl is up-to-date (2014.08.10)

D:\youtube-dl>youtube-dl.exe --verbose http://www.chartsinfrance.net/Prince/id-102751003.html
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--verbose', 'http://www.chartsinfrance.net/Prince/id-102751003.html']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2014.08.10
[debug] Python version 2.7.8 - Windows-7-6.1.7601-SP1
[debug] Proxy map: {}
[generic] id-102751003: Requesting header
WARNING: Falling back on generic information extractor.
[generic] id-102751003: Downloading webpage
[generic] id-102751003: Extracting information
ERROR: Unsupported URL: http://www.chartsinfrance.net/Prince/id-102751003.html; please report this issue on https://yt-dl.org/bug . Be sure to call yo
utube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
Traceback (most recent call last):
  File "youtube_dl\extractor\generic.pyo", line 457, in _real_extract
  File "youtube_dl\utils.pyo", line 1426, in parse_xml
  File "xml\etree\ElementTree.pyo", line 1300, in XML
  File "xml\etree\ElementTree.pyo", line 1642, in feed
  File "xml\etree\ElementTree.pyo", line 1506, in _raiseerror
ParseError: not well-formed (invalid token): line 57, column 75
Traceback (most recent call last):
  File "youtube_dl\YoutubeDL.pyo", line 516, in extract_info
  File "youtube_dl\extractor\common.pyo", line 170, in extract
  File "youtube_dl\extractor\generic.pyo", line 752, in _real_extract
ExtractorError: Unsupported URL: http://www.chartsinfrance.net/Prince/id-102751003.html; please report this issue on https://yt-dl.org/bug . Be sure t
o call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.

Works fine with latest version (2<IP_ADDRESS>).


receive notifiction callback when an app is killed

This is to address https://github.com/wix/react-native-notifications/issues/865
Now an Android  user can receive a push notification callback when an app is in dead/killed state and this is a 'data' notification
The following is required at application side:

to add <service android:name="com.wix.reactnativenotifications.JSNotifyWhenKilledTask" /> into AndroidManifest.xml file

and now you can process the notifications in killed/dead state via the following code snippet:

    const { AppRegistry } = require("react-native");

    // https://reactnative.dev/docs/headless-js-android
    //
    AppRegistry.registerHeadlessTask(
      "JSNotifyWhenKilledTask",
      () => {
        return async (notificationBundle) => {
          console.log('[JSNotifyWhenKilledTask] notificationBundle', notificationBundle);

        }
      },
    );

Any update about this @DanielEliraz ?

@DanielEliraz  Any chances this is being addressed? I really need this scenario for an app I'm building right now.

I noticed that mIsStarted was never set in this PR, but it seems to be working otherwise and fixes an important problem.
Do we know why it was never merged?


How can we add bootstrap3 templates that are not in bootswatch?

I have a bootstrap3 related question, how can we add other templates than the ones as bootswatch into the kitchen?
As I'm missing the Project Polymer cards (see https://elements.polymer-project.org/elements/paper-card?view=demo:demo/index.html&active=paper-card) in the standard bootstrap 3 elements I wanted to include eg this wonderful template: http://demos.creative-tim.com/hipster-as-f-cards
Also, is it possible to add bootstrap4 (not possible but planned in the future)?

@a4xrbj1 see directory ~/.meteor-kitchen/templates/ui/bootstrap3/themes/, there each theme is contained in subdirectory. Good example is flat-ui which is not from bootswatch. What you need is to create theme.import.less file which includes your theme's stylesheets. Meteor Kitchen will copy all files found in your theme directory into your project (fonts and images will be automatically copied into your_app/public/ etc.).
If your theme directory is named "my_cool_theme", and is located in ~/.meteor-kitchen/templates/ui/bootstrap3/themes/my_cool_theme/ then you can use it in your input .json file by setting: "theme": "my_cool_theme" (the same name as your theme directory).
I am not sure is it possible using GUI (btw, current kitchen-GUI is very limited - woring on the new one).
that's it.

Thank you Petar. I'm not so keen to change manually, thought it was possible through the GUI. But your detailed answer shows the steps to achieve it (I guess that includes bootstrap4 through the same method)

The same method will not help you to add bootstrap4. We need to modify / rewrite component templates (files found in ~/.meteor-kitchen/templates/ui/bootstrap3/ should be modified or rewritten and moved to ~/.meteor-kitchen/templates/ui/bootstrap4/).

I can only use one theme at a time, right? Like I wrote I have found one free template that has the card elements but I guess it will not have all the other elements the Bootstrap:paper has for example. It would be nice like in Semantic-UI to define a theme per element itself (as long as there is that theme available for that specific element). Is that possible in MK or Bootstrap3?


TS/JS switch statement missing

Hi,
I notices the braces around the switch statement body are not colorized.  I tried to fix it but for some reason it only works in typescript and not in javascript. Any ideas?

Merged, thank you.

Hi,
I notices the braces around the switch statement body are not colorized. I tried to fix it but for some reason it only works in typescript and not in javascript. Any ideas?

Do you still have this problem with it not working in javascript? For me this seems to work in both javascript and typescript. Are your parsers updated?

I don't have the problem anymore. I have no idea what caused this but it's gone.


No mechanism for generic Connection instances

I might be misunderstanding something, but as far as I can tell I've found an unnecessary limitation in the Connection API design. This limitation prevents Connection from being used in a generic way, forcing the backend type to be known statically.
Including Backend and TransactionManager in Connection statically (as types) means that you cannot create a generic Connection (such as a BoxedConnection, or something similar) that abstracts the specific implementation at runtime. If these properties were structs that could be accessed through Connection trait functions, this limitation would not be present.
I would like to be able to do something like this (where I instantiate the pool from a runtime host url):
use diesel::r2d2::{ConnectionManager, Pool};
use diesel::prelude::*;

enum DatabasePool {
    Mysql(Pool<ConnectionManager<MysqlConnection>>),
    Pg(Pool<ConnectionManager<PgConnection>>),
    Sqlite(Pool<ConnectionManager<SqliteConnection>>),
}

impl DatabasePool {
    fn connection(&self) -> Box<dyn diesel::Connection> {
        match self {
            DatabasePool::Mysql(pool) => Box::new(pool.get()),
            DatabasePool::Pg(pool) => Box::new(pool.get()),
            DatabasePool::Sqlite(pool) => Box::new(pool.get()),
        }
    }
}

However, due to the Backend and TransactionManager types I get the expected error:
error[E0191]: the value of the associated types `Backend` (from trait `diesel::Connection`), `TransactionManager` (from trait `diesel::Connection`) must be specified

So first, I'd like to know if I've missed something fundamental in the API that would resolve this problem for me. High probability; it's a large API.
If not, then I'd like to know if this is intended or just an implementation detail. And what is the likelihood of changing that implementation detail?

Short answer
Diesel is designed that way, such that dyn diesel::Connection is not possible, because we want to have something that allows use to use as much database specific sql extension as we require. From this point of view I will close this issue, as everything works as designed/expected from our point of view.
Possible workarounds for client applications

Make the database a compile time choice: Instead of letting the user decide on runtime which backend should be used, just conditional compile for one or the other backend. Basically you would have a #[cfg(feature = "postgres")] pub type Connection = PgConnection; somewhere in your crate and usecrate::Connection` after that in place of a concrete connection type
Write code that is generic over a specific connection type: This requires to write every function accepting a connection in a generic way, such that it accepts C: Connection (and a lot of other trait bounds that depend on the actual executed query). (I wouldn't recommend anyone to choose this route as it involves quite heavy where clauses. So if you can choose the first solution use that one, otherwise: Just follow the compiler error messages, they are right in most cases. So good luck with the compiler :wink:)

Explanation why things are as they are
Diesel tries to check and build most of the generated SQL at compile time using the type system. That implies that we need to know certain things, like the used backend, at compile time. Additionally those type information allowing us to provide certain functionality based in such a way that a specific backend is required as only those backend supports the underlying sql construct. Additionally we use all those type information to do some clever prepared connection statement caching for completely static queries, in such a way that we won't even need to build the SQL again if you executed the query once for a given connection. Those information are just not available if someone tries to use something like dyn Connection, as they would be intentionally removed by the compiler. In the end it's a trade of between different goals: Would we like to have something that tries to abstract away the differences between different databases or do we want something that let us fully utilize the complete power of a specific database implementation. For us the answer was: We want the second thing, but that does not necessarily mean that this answer will be the same for all people. So if your reasoning differs here you can try one of the workarounds presented above or look for another solution beside of diesel.
That all written: It does not mean that at least I personally would be completely opposed to support some kind of generic connection type with diesel. Likely I would like to see this as an extension crate, at least for an initial prototype version. So if someone is interested in working on that feel free to open a topic in our forum outlining at least a rough plan how such an API would look like and how this could possibly be implemented with the current infrastructure.

Thanks for the thorough explanation!  I didn't realize that so much functionality hinged on that static type information.
And thank you for the build-time config suggestion. That's a great option to get me moving forward again.
I don't have the breadth of knowledge of diesel necessary to back this opinion up, but my intuition is that there's a path forward that could accomplish both objectives. Maybe if there was a generic connection enum that could be accepted by the various execute functions that would match and defer to the underlying specific calls.
So instead of only:
query.execute(&cxn);

where cxn is a specific implemetation, you could use the following:
enum GenericConnection {
    Mysql(...),
    Pg(...),
    Sqlite(...),
}
// ...
fn execute_generic(&self, generic_cxn: &GenericConnection) {
    match generic_cxn {
        GenericConnection::Mysql(cxn) => self.execute(cxn),
        GenericConnection::Pg(cxn) => self.execute(cxn),
        GenericConnection::Sqlite(cxn) => self.execute(cxn),
    }
}
// ...
query.execute_generic(&generic_cxn);

There may be other hurdles I don't know about yet, but I think this is something I could do all on my application's side without built-in support within diesel (obviously the query objects wouldn't have the function I spec'd out, but I could do that with a free-function or macro of my own). And at least for my limited use-case this would be sufficient.
I'm interested in hearing your opinion of this idea. Is this a fool's errand? Or is there some potential with this path?

There may be other hurdles I don't know about yet, but I think this is something I could do all on my application's side without built-in support within diesel (obviously the query objects wouldn't have the function I spec'd out, but I could do that with a free-function or macro of my own). And at least for my limited use-case this would be sufficient.

In theory something like this can work, but it requires a lot of work to make this working for the function case as you would need to proof at compile time that query implements all required traits for not only one backend, but all backends. Additionally for anything else than execute you would need to have trait bounds for the return type for all backends. This quickly leads to a horrific amount of trait bounds for even simple queries.
Using a macro will just remove the requirement of writing out those trait bounds initially. That works, but will lead to horrific compile time errors if something is wrong. (Additionally I think using a macro for this is really bad style as it's hard to document that in some meaningful way.)
To write up some requirements for a future reference:

Such a generic connection should have a possibility to support out of the box third party diesel connection implementations
We should find a way to support as much sql statements as possible there. Using a naive approach will just restrict the amount of supported SQL to that subset that is supported by all backends equally, which means not even something basic like LIMIT/OFFSET would be fully supported.
We should minimize code duplication as much as possible, so just implementing everything again for this specfic backend is no solution. Internally the corresponding backend specific methods to build the query should be called.

So again: Yes I think something can be possible, but I do not have the bandwidth to invest much time here. So anyone interested in this is welcome to try implementing this, but should not expect detailed mentoring here.


complete user-story-2-list-chat-rooms

You need to give me write access before I can merge this in :)

Hey Jason!  Sorry!
Just added you as a collaborator
On Feb 23, 2016 4:37 PM, "Jason LaChapelle"<EMAIL_ADDRESS>wrote:

You need to give me write access before I can merge this in :)
—
Reply to this email directly or view it on GitHub
https://github.com/dpg5000/angular-chat/pull/1#issuecomment-187988623.


Create checkParenthesesAreBalancedOrNot.cpp

Please star this repository to show your support, in the meantime I am reviewing your code.


Include Descriptions from XML Comments For Minimal Api Not work

I Create a .Net 6 Minimal Api Project ,But comment not display in swagger html。
The partten of this：https://github.com/domaindrivendev/Swashbuckle.AspNetCore#include-descriptions-from-xml-comments
Code:
app.MapGet("Test", Handler.Test).WithName("Test");
public static class Handler  {         /// <summary>         /// Test Comment         /// </summary>         public static string Test()         {             return "Test Comment";         }  }
generate xml document is right。Isn't it supported yet? For Minimal Api.

I see the same thing.  Playing with Microsoft's "ToDo" examples for .Net Core and I see the xml comments for the ToDoItemDTO type show up in the documentation, but not for the app.MapGet entries.
Seems like classes  do get comments added to their documentation.
Methods - the things mapped to http verbs - have documentation generated, but without the comments associated with them.

I see the same thing. Playing with Microsoft's "ToDo" examples for .Net Core and I see the xml comments for the ToDoItemDTO type show up in the documentation, but not for the app.MapGet entries.
Seems like classes do get comments added to their documentation.
Methods - the things mapped to http verbs - have documentation generated, but without the comments associated with them.

yes ,it not work for minimal api.present i can`t find solution seems.

Maybe this workaround can help: https://github.com/dotnet/aspnetcore/issues/37906#issuecomment-954494599

Hi folks! Yes, this isn't supported yet. We've actually got an issue tracking adding support for this over on the aspnetcore repo (https://github.com/dotnet/aspnetcore/issues/39927). If you'd like to see this happen, give it a thumbs-up and it'll help us with prioritization.

I was able to get it running by using a structure like the following with Swashbuckle.AspNetCore 6.3.0:
namespace MyAwesomeWebApi;

public static class GetContactsEndpoint
{
    public static WebApplication MapGetContactsEndpoint(this WebApplication app)
    {
        app.MapGet("/api/contacts", GetContacts)
           .Produces<ContactsListDto>()
           .Produces(StatusCodes.Status400BadRequest)
           .Produces(StatusCodes.Status500InternalServerError);
        return app;
    }

    /// <summary>
    /// Gets the contacts as a paged result.
    /// </summary>
    /// <param name="skip">The number of contacts to skip (optional). Default value is 0. Must be greater than or equal to 0.</param>
    /// <param name="take">The number of contacts to take (optional). Default value is 30. Must be between 1 and 100.</param>
    /// <param name="searchTerm">The search term (optional). White space at the front and back will be trimmed automatically. Contacts whose name start with the search term will be found.</param>
    /// <response code="400">Bad Request: the paging parameters are invalid.</response>
    public static async Task<IResult> GetContacts(int skip = 0, int take = 30, string? searchTerm = null)
    {
         if (skip < 0 || take is <= 0 or take > 100)
             return Result.BadRequest();

         // Open a database session here, load the paged contacts and return them
         return Result.Ok(contactListDto);
    }
}

You can then map this endpoint in Program.cs like so
app.MapGetContactsEndpoint();

This worked!
On top of configuring Swashbuckle, I needed to add this extra part:
builder.Services.AddSwaggerGen(opts =>
{
    var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    opts.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));
});

@ch-lee I can confirm this worked:
In my case I still need to add this to the csproj file:
true
https://stackoverflow.com/questions/69790435/swagger-asp-net-core-minimal-api-include-xml-comments-files

@ch-lee I can confirm this worked:
In my case I still need to add this to the csproj file:
<GenerateDocumentationFile>true</GenerateDocumentationFile>

https://stackoverflow.com/questions/69790435/swagger-asp-net-core-minimal-api-include-xml-comments-files

I just created a blank api in .net 6 and I needed to add it too!, Thanks

On .NET 7 I was able to get this working, just as @feO2x describes, however examples on  elements don't work. All descriptions are correctly shown.


Update version to 1.1.13-3 on staging

Update version to 1.1.13-3

🚀 Deployed to staging by @OSBotify in version: 1.1.13-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @Jag96 in version: 1.1.14-4 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Question on Installation of OpenCL

Dear Developers,
I am new to openCL and would like to install it on Ubuntu 20.04 LTS.
I followed the steps documented in the following link:
( https://github.com/KhronosGroup/OpenCL-Guide/blob/main/chapters/getting_started_linux.md )
The steps I followed are:
sudo apt update
sudo apt upgrade
sudo apt install build-essential -y
sudo apt install git -y
sudo apt install cmake -y
sudo snap install --classic code
sudo apt install opencl-headers ocl-icd-opencl-dev -y
After that I got confused (about where to stop) because next it shows instructions with the caption "Compiling on the command-line"
My question is: Should I continue to follow or installation of OpenCL is done with the commands I used ?
Any help or suggestion would be greatly appreciated. ( @MathiasMagnus )
Thanks a lot.

Issue solved in https://github.com/KhronosGroup/OpenCL-ICD-Loader/issues/220


Repeater field

I propose that there is a need to create a new type of frontmatter / meta-data field that allows users to "add another" or repeat a field.
With this, users could create lists of one or more items as a single field repeated or as a group of fields (specifically key: value pairs). Rather than a new type of field, this could be seen as an attribute of one of the other existing field types (or group of fields) where this functionality is toggled on and perhaps a maximum number of items is set to limit users. The ability to set wider a group of fields with greater complexity would take this even further, but that's not the focus of my request here.
As a reference, WP ACF calls it a repeater field and Statamic (a flat file CMS) has the replicator field for this purpose.
I am not a programmer so wouldn't know where to start to code this, but I do know that this functionality would significantly open up the types of projects that I could use this for.

YAML supports arrays of objects already. I work on at least one jekyll projects that uses this, and Prose does not have a way to implement this outside of the raw metadata editor.
I'm not sure about making this an option for every field, I think there's maybe potential for a repeater element that then takes other metadata elements nested in it. Something along the lines of:
- type: repeater
  name: baz
  children:
  - type: text
     name: title
     value: foo
  - type: checkbox
     name: published
     value: checked

Would produce the js structure:
{
  baz: [{ title: 'something', published: true },{ title: 'something else', published: false }]
}

I should note that I'm not available to work on this right now, but I think it's an interesting idea.

Thanks - I agree that the repeater would nest other metadata elements makes much more sense than the way I explained above.
Fair enough if you're not available. Any ideas for promoting this to someone who might be? Are there any other active developers working on Prose at the moment? I can't see what I might do to contribute other than scoping and testing the idea.


Scalabale jobserver for rustc

This is the Cargo side of https://github.com/rust-lang/rust/pull/67398 -- it likely will want to be gated or something like that (not sure how we'll want to wire this up and such), but that should have minimal effect on the actual implementation.
There are some relatively suboptimal bits (e.g., linear search for a given id in a Vec) which are potentially not great for performance. I'm not sure how hot the code is. It wouldn't be too hard to switch it over to a HashMap, which should mostly eliminate that potential problem.
r? @alexcrichton

CI here looks to be mostly failing because the current branch expects rustc to have -Zjobserver-token-requests.

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

Can this get a doc-comment in job_server.rs pointing to the documentation in src/librustc_jobserver/lib.rs in rustc?  It's pretty hard for me to follow in isolation.

Hm, do you mean job_queue.rs? job_server.rs doesn't appear to exist in this repository.
I would be happy to provide such a doc comment -- it's worth noting that I'm guessing we'll be landing this behind some sort of -Z flag as well initially (as we test it out and such) just because it's a non-trivial overhaul of the protocol we use with rustc.

Oops, yea, typo.  Should be job_queue.rs.

I've added some (somewhat) high level docs to job_queue and rebased.

Ok I've read over this and it looks pretty good to me, certainly for the purposes of testing this looks like it'll cover all our bases.
@Mark-Simulacrum do you want to update your PR in rust-lang/rust to have a Cargo submodule with this commit, and then make a try build so we can test that out?
I think longer-term I'd want to refactor the jobserver management in Cargo here, it feels a bit spaghetti-like and I'd like to make it a bit more concise (if we can) to make it a bit more robust. Nothing concrete I can think of, just a general feeling of "this feels bolted on" which is not at all your fault, just something for me to stew on :)
Also, for the vecs, I think they can be relatively trivially converted to hash maps? I'd expect something like:
let rustcs_with_a_token: HashMap<u32, Vec<Token>>;
let rustcs_wanting_a_token: HashMap<u32, (usize, Client)>; // `usize` == how many tokens requested

Yeah, I think the HashMaps would work. I moved between a few different schemes during development and had started out with Vecs.
I'll go ahead and get the rustc branch to point at this branch (and probably rebase both, while I'm at it) and kickoff a try build.

Okay I've force pushed this and the rust-lang/rust branch and kicked off a try build over there, hopefully that all works out.
I didn't look at implementing the HashMap stuff as I'm also a bit strapped for time :)

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

CI failure is.. scary "E: Failed to fetch https://packages.microsoft.com/ubuntu/16.04/prod/dists/xenial/main/binary-amd64/Packages  Writing more data than expected (622228 > 606754)"
But seems unrelated.
r? @alexcrichton


Upgrading to<EMAIL_ADDRESS>produces dispatch is not a function

I was using<EMAIL_ADDRESS>with no issues, then I upgraded to the full release and now I'm getting this error: dispatch is not a function. (In ‘dispatch(actionCreator.apply(undefined, arguments))’, ‘dispatch’ is undefined)
When I downgrade back to<EMAIL_ADDRESS>it works fine and goes away. I have no idea what changed. Maybe it's a react-native issue?
These are my containers... I can provide more if needed. Right now it's pretty basic, mostly just following the examples.
// App.js
import React, { Component } from 'react-native'
import { createStore, applyMiddleware, combineReducers } from 'redux'
import { Provider } from 'react-redux/native'
import thunk from 'redux-thunk'

import * as reducers from '../reducers'
import VetoApp from './VetoApp'

const createStoreWithMiddleware = applyMiddleware(thunk)(createStore)
const reducer = combineReducers(reducers)
const store = createStoreWithMiddleware(reducer)

export default class App extends Component {
  render() {
    return (
      <Provider store={store}>
        {() => <VetoApp />}
      </Provider>
    )
  }
}

// VetoApp.js
import React, { Component } from 'react-native'
import { bindActionCreators } from 'redux'
import Main from '../components/Main'
import * as ViewActions from '../actions/view'
import { connect } from 'react-redux/native'

@connect(state => ({
  state: state.view
}))
export default class CounterApp extends Component {
  render() {
    const { state, dispatch } = this.props
    console.log(dispatch) // results in undefined
    return (
      <Main
        viewSettings={state}
        {...bindActionCreators(ViewActions, dispatch)}
      />
    )
  }
}

EDIT: now downgrading doesn't work. I reverted my app to the exact same state before and it doesn't work. dispatch is not a function. No idea what suddenly changed.

Using the Connector component works:
'use strict'

import React, { Component } from 'react-native'
import { bindActionCreators } from 'redux'
import Main from '../components/Main'
import * as ViewActions from '../actions/view'
import { connect } from 'react-redux/native'
import { Connector } from 'react-redux/native'

// @connect(state => ({
//   state: state.view
// }))
// export default class CounterApp extends Component {
//   render() {
//     const { state, dispatch } = this.props
//     return (
//       <Main
//         viewSettings={state}
//         {...bindActionCreators(ViewActions, dispatch)}
//       />
//     )
//   }
// }

export default class CounterApp extends Component {
  render() {
    return (
      <Connector select={state => ({ state: state.view })}>
        {this.renderChild}
      </Connector>
    )
  }

  renderChild({ state, dispatch }) {
    return (
      <Main
        viewSettings={state}
        {...bindActionCreators(ViewActions, dispatch)}
      />
    )
  }
}

I have no idea why...

It's a babel.js bug


first \extraskip after \ch in a poetry environment is too big.

\begin{scripture}
  \begin{poetry}
    \ch{40}Comfort, comfort my people,
    says your God.

    \vs{2}Speak tenderly to Jerusalem,
    and proclaim to her

    that her hard service has been completed,
    that her sin has been paid for,

    that she has received from the \name{Lord}’s hand
    double for all her sins.

    \extraskip

    \vs{3}A voice of one calling:
  \end{poetry}
\end{scripture}

Also wrong when poetry environments are placed one after another.


[FALSE-POSITIVE]

Domains or links
https://divyanth-netflix-clone.freewebhostmost.com/[
More Information
How did you discover your web site or domain was listed here?
360 imunify

Website was hacked
no
Incorrectly marked as Phishing on Phishtank or OpenPhish?
yes

Have you requested removal from other sources?
Please include all relevant links to your existing removals / whitelistings.
no
Additional context
Add any other context about the problem here.
it's website for test, no phishing content is located there right now

Website cannot be reached


Load existing file?

Hello,
i create a new logger and select a file. I only want to view an existing file.
Provider is the "File Monitoring Provider".
Then I select the file and check the box "Load existing content from file".
Decoder Format "nLog default...:".
Then the application starts, but there are no entries from file.
Everything is empty.
What am I doing wrong?
Best Regards, Alex

From my experience it works when the default layout is used in your NLog.config. Can you post your NLog.config entry that creates the file you are targeting?
Mine has a layout that looks like this:
layout="${longdate}|${level:uppercase=true}|${logger}|${message}"
Notice that the field separator is a pipe |

Hello,
I am upping this old question because I have just discovered Sentinel, and I met exactly the same issue.
I guess it happens because my layout is not the standard one above. It mainly consists of:
${date:format=yyyy-MM-dd HH:mm:ss} ${pad:padding=5:inner=${uppercase:${level}}} ${callsite:IncludeSourcePath=false}
followed by the message and other stuff.
Please, is there a way to set the layout in Sentinel to make it able to parse non standard files ?
Thank you

@AFract This project hasn't seen an update in 4 years. I believe your options are to modify your layout to match what sentinel accepts or create a fork and PR that adds the layout configuration you desire. Option one being the easiest.

@A9G-Data-Droid I have noticed that. But as there's no documentation regarding this and there is already many forks I thought it could be interesting to ask the question, just in case. If modifying the layout was actually an easy option, I would have already done it. Thank you anyway.


Uppercase all GitHub secret names

GitHub changed some things last weekend, and they are apparently pushing
for secret names to be all-caps.
I already changed the repo configuration accordingly.

So is there anything blocking this? Can't we just push it?

Nothing blocking from my side.

Thanks.


0.63

Date set for dropping Python 3.4 support
As announced in October, we're going to drop Python 3.4 support in 2018. We've now decided that in two releases, 0.65, the minimum Python version that will be supported is bumped to 3.5.3. This won't impact most users. You are already fine if you're using Hass.io, the latest Debian stable (Stretch) or a derivative of that (Raspbian, Ubuntu).
Entity Registry
This release introduces the entity registry. The entity registry allows integrations to reserve entity IDs. This means that we'll automatically grant an entity ID to a device. It's reserved so that no other device will ever get that entity ID. It also means that as a user, you will be able to customize the entity IDs for these devices.
For an integration to leverage the entity registry, it needs to define a unique ID for each of their entities. A unique ID is something that we can uniquely identify the device and that is not configurable. So a serial number and mac address are ok, IP addresses or names are not.
Examples of integrations that have unique IDs defined in this release are Z-Wave, Hue, Nest, LIFX, Sonos, Apple TV.
To update the entity ID that will be assigned to your device, update <config>/entity_registry.yaml and restart Home Assistant (reloading on the fly is planned for a future release).
The entity registry will assign an entity ID the first time that a device is seen. This should be the same entity ID as it always was before. If this is not the case, update the registration entity to change it back to the old entity ID.
We're planning a lot of cool stuff around the entity registry. Stay tuned!
New Platforms

Adds allergy/disease sensor platform from Pollen.com (@bachya - #11573) (sensor.pollen docs) (new-platform)
Add Goalfeed platform (@wardcraigj - #11098) (goalfeed docs) (new-platform)
Add Melissa (HVAC/climate) component (@kennedyshead - #11503) (melissa docs) (sensor.melissa docs) (new-platform)
Mediaroom (@dgomes - #11864) (media_player.mediaroom docs) (new-platform)
Add Xiaomi Universal IR Remote (Chuangmi IR) (@cnrd - #11891) (remote.xiaomi_miio docs) (new-platform)
SQL sensor (@dgomes - #12142) (sensor.sql docs) (new-platform)
[SMALL PATCH] Sql sensor (@dgomes - #12242) (sensor.sql docs) (new-platform)

Breaking Changes

Spelling fixes (@OttoWinter - #12041) (breaking change)
Prepare for recorder purge to be active by default (@amelchio - #11976) (breaking change)
updated sensor name (@philklei - #12084) (sensor.tahoma docs) (breaking change)
Canary live stream (@snjoetw - #11949) (canary docs) (camera.canary docs) (breaking change)
Entity layer cleanup (@balloob - #12237) (breaking change)
Avoid influxdb filling connection pool (@amelchio - #12182) (influxdb docs) (breaking change)
Fix duplicate entity_ids in System Monitor (@fanaticDavid - #12124) (sensor.systemmonitor docs) (breaking change)

All changes

Map media_stop to idle state (@akloeckner - #11819)
Adds allergy/disease sensor platform from Pollen.com (@bachya - #11573) (sensor.pollen docs) (new-platform)
check_config.py: allow colorlog==3.1. (@dotlambda - #11927)
Weblink - Allow relative urls in config (@ReneNulschDE - #11808) (weblink docs)
Panel_Iframe - Allow relative urls in config (@ReneNulschDE - #11832) (panel_iframe docs)
Python 3.6 invalid escape sequence deprecation fixes (@scop - #11941)
tests: Use assertEqual instead of deprecated assertEquals (@scop - #11943)
huawei_router: Fix documentation link (@scop - #11961) (device_tracker.huawei_router docs)
Spelling fixes (@scop - #11940)
Upgrade sqlalchemy to 1.2.2 (@fabaff - #11956)
Upgrade youtube_dl to 2018.01.21 (@fabaff - #11955) (media_extractor docs)
Upgrade sphinx-autodoc-typehints to 1.2.4 (@fabaff - #11954)
Upgrade coinmarketcap to 4.2.1 (@fabaff - #11953) (sensor.coinmarketcap docs)
Bump dev to 0.63.0.dev0 (@fabaff - #11952)
Update xiaomi_aqara.py (@MGWGIT - #11969) (sensor.xiaomi_aqara docs)
panasonic_viera: Set device name from discovery info (@scop - #11990) (media_player.panasonic_viera docs)
Update panasonic_viera to 0.3 (@scop - #11989) (media_player.panasonic_viera docs)
Fix 11982 - uvc don't handle null as username (@bratanon - #11984) (camera.uvc docs)
Add Goalfeed platform (@wardcraigj - #11098) (goalfeed docs) (new-platform)
Added support for hourly percent change in coinmarketcap component (@kevindgoff - #11996) (sensor.coinmarketcap docs)
Upgrade coinbase to 2.0.7 (@fabaff - #11992) (coinbase docs) (sensor.coinbase docs)
Upgrade pyota to 2.0.4 (@fabaff - #11991) (iota docs)
Fixed Canary temperature sensor and remapped air quality value (@snjoetw - #11355) (canary docs) (sensor.canary docs)
Refactor Alexa Smart Home API (@bitglue - #12016) (alexa docs)
Report states (@bitglue - #11973) (alexa docs)
alexa: Add media_player InputController support (@philk - #11946) (alexa docs)
emulated_hue: allow customization within emulated_hue configuration (@jackwilsdon - #11981) (emulated_hue docs)
Flake8 35 (@scop - #11972) (feedreader docs) (spc docs) (media_player.bluesound docs) (media_player.clementine docs) (sensor.fritzbox_callmonitor docs) (sensor.qnap docs) (sensor.synologydsm docs)
Typing fixes (@scop - #12015)
Fix DoorBird push notifications for installations with an API password (@Klikini - #12020) (doorbird docs)
Bump upstream lib version. (@Cinntax - #12021) (climate.venstar docs)
sensor.deutsche_bahn: add only_direct option (@akloeckner - #11999) (sensor.deutsche_bahn docs)
Fix MQTT cover availability subscription (@OttoWinter - #12036) (cover.mqtt docs)
Spelling fixes (@OttoWinter - #12041) (breaking change)
Online state for samsungtv is jumping when TV is idle (@kennedyshead - #11998) (media_player.samsungtv docs)
Upgrade astral to 1.5 (@fabaff - #12042)
Refactor alexa smart_home tests (@bitglue - #12044)
Handling of payload not for this entity. (@freol35241 - #11836) (binary_sensor.mqtt docs)
Refactor Google Assistant query_device (@philk - #12022) (google_assistant docs)
Entity registry (@balloob - #11979) (group docs) (climate.nest docs)
Return all attributes that are not None in base lock entity class (@snjoetw - #12049) (lock docs)
Extract requirements (@balloob - #12051)
Prepare for recorder purge to be active by default (@amelchio - #11976) (breaking change)
Bumped up pymochad requirement to 0.2.0 as a fix for #11928 (@aosadchyy - #12014) (mochad docs)
Publish errors on the event bus (@postlund - #11964) (system_log docs)
Unique ID for LIFX lights (@amelchio - #12064) (light.lifx docs)
Deconz use entity registry (@Kane610 - #12067) (deconz docs) (binary_sensor.deconz docs) (light.deconz docs) (sensor.deconz docs)
Flake8 bugbear fixes (@scop - #12072) (ios docs) (plant docs) (rfxtrx docs) (zwave docs) (climate.heatmiser docs) (media_player.plex docs) (notify.kodi docs)
Fix demo platform support (@ciotlosm - #12070) (climate.demo docs)
fix event channel name (@wardcraigj - #12077) (goalfeed docs)
fixed timestamp problem in firefox (@escoand - #12073) (weather.openweathermap docs)
Handle more file closing using context manager (@scop - #11942) (light.greenwave docs) (notify.gntp docs) (sensor.onewire docs)
Influx import improvements (@RePeet13 - #11988)
Set flux default stop time to dusk (@infernix - #12062) (switch.flux docs)
Add conditions to forecast (@escoand - #12074) (weather.openweathermap docs)
Squeezebox Fix duplicate server from discovery (@mezz64 - #12063) (media_player.squeezebox docs)
Upgrade keyring to 11.0.0 (@fabaff - #12082)
Correct use of middleware async handling. (@pelson - #12078) (http docs)
updated sensor name (@philklei - #12084) (sensor.tahoma docs) (breaking change)
Fix detection of mobile browsers (@c727 - #12075) (frontend docs)
update tahoma api to version 0.0.11 (@philklei - #12099) (tahoma docs)
added media_stop (@jodur - #12100) (media_player.vlc docs)
Goalfeed channel (@wardcraigj - #12086) (goalfeed docs)
Update jinja2 to 2.10 (@arsaboo - #12118)
Downgrade Sonarr and Radarr 'Host is not avaliable' errors to warnings (@timmo001 - #12119) (sensor.radarr docs) (sensor.sonarr docs)
Fixes away_mode error on startup (@ciotlosm - #12121) (climate.generic_thermostat docs)
except vol.MultipleInvalid in Broadlink #11795 (@danielhiversen - #12107) (sensor.broadlink docs)
Adds SUPPORT_TARGET_TEMPERATURE_HIGH and SUPPORT_TARGET_TEMPERATURE_LOW support (@hawk259 - #12110) (climate.ecobee docs)
Dark sky precip accumulation (@nordlead2005 - #12127) (sensor.darksky docs)
fixed wrong check for valid range of 'rgb' values (@PaulAnnekov - #12132) (light.xiaomi_aqara docs)
OpenALPR Cloud API - transfer image in body of POST request (@ReneNulschDE - #12112) (image_processing.openalpr_cloud docs)
Add support for "off" function to iTunes (@lexam79 - #12109) (media_player.itunes docs)
Remove asyncio.test_utils to fix tests in Docker/Python 3.7 (@ubnt-marc-khouri - #12102)
Add Mercedes me component (@ReneNulschDE - #11743)
Spelling fixes (@scop - #12138) (plant docs) (switch.pulseaudio_loopback docs)
Update volumio component (@titilambert - #12045) (media_player.volumio docs)
Adding information about current TV channel to WebOS media player (@led-spb - #11339) (media_player.webostv docs)
Fix #8475 device tracker ubus tracks unauthenticated and unassociated devices (@aarnaud - #12140) (device_tracker.ubus docs)
Fix #11875 Ubus broken since upgrade to 0 57 (@aarnaud - #12141) (device_tracker.ubus docs)
Update flake8-docstrings to 1.0.3 (@scop - #12136)
Tado fixes (@NigelRook - #11294) (tado docs) (climate.tado docs)
Add Melissa (HVAC/climate) component (@kennedyshead - #11503) (melissa docs) (sensor.melissa docs) (new-platform)
Mediaroom (@dgomes - #11864) (media_player.mediaroom docs) (new-platform)
Upgrade mutagen to 1.40.0 (@fabaff - #12152) (tts docs)
Upgrade TwitterAPI to 2.4.8 (@fabaff - #12148) (notify.twitter docs)
fix generic_thermostat bug when restore state from HA start up (@crhan - #12134) (climate.generic_thermostat docs)
Adding xy_color attribute support to deconz lights (@ErnstEeldert - #12106) (light.deconz docs)
update python-openzwave to 4.1.3 (@perosb - #12057) (zwave docs)
Panasonic viera new services (@dgomes - #11963) (media_player docs) (media_player.panasonic_viera docs)
[Mediaroom media_player] Follow up on PR #11864 (@dgomes - #12155) (media_player.mediaroom docs)
Tests for samsungtv (@kennedyshead - #11933)
Upgrade influxdb to 5.0.0 (@fabaff - #12156) (influxdb docs)
add delay_arrival (@akloeckner - #12169) (sensor.deutsche_bahn docs)
Move TP-Link socket LED state setting to update() (@DanNixon - #12170) (switch.tplink docs)
Upgrade schiene to 0.21 (@fabaff - #12176) (sensor.deutsche_bahn docs)
python-miio version bumped. Fixes all xiaomi_miio components. (Closes: #12017, Closes: #11948, Closes: #11200) (@syssi - #12188) (fan.xiaomi_miio docs) (light.xiaomi_miio docs) (switch.xiaomi_miio docs) (vacuum.xiaomi_miio docs)
Services (small_pr)(fix): Added missing return on data template error (@tschmidty69 - #12184)
fix ecobee is_aux_heat_on property (@titilambert - #12186) (climate.ecobee docs)
Upgrade pytouchline to 0.7 (@tbergo - #12179) (climate.touchline docs)
Canary live stream (@snjoetw - #11949) (canary docs) (camera.canary docs) (breaking change)
Replace Gitter with Discord (@fabaff - #12199)
Upgrade Sphinx to 1.6.7 (@fabaff - #12200)
Change attributes in new Mercedes Me component (@ReneNulschDE - #12147) (mercedesme docs) (binary_sensor.mercedesme docs) (device_tracker.mercedesme docs) (sensor.mercedesme docs)
Binary Sensor Template: Add icon_template and entity_picture_template support (@hawk259 - #12158) (binary_sensor.template docs)
Bump pyeconet version to fix JSONDecodeError (@w1ll1am23 - #12204) (climate.econet docs)
Add support for Alexa.StepSpeaker (@lucasweb78 - #12183) (alexa docs)
Upgrade wakeonlan to 1.0.0 (@Tadly - #12190) (wake_on_lan docs) (media_player.panasonic_viera docs) (media_player.samsungtv docs) (media_player.webostv docs) (switch.wake_on_lan docs)
zha: Update to bellows 0.5.0+zigpy (@rcloran - #12187) (zha docs) (binary_sensor.zha docs) (light.zha docs) (sensor.zha docs) (zha.const docs)
Make waterfurnace recovery more robust (@sdague - #12202) (waterfurnace docs)
Much nicer icon (@lance36 - #12212) (vacuum.xiaomi_miio docs)
Properly handle thresholds of zero (@DanNixon - #12175) (binary_sensor.threshold docs)
zha: Add support for XBee radios (@rcloran - #12205) (zha docs) (binary_sensor.zha docs)
Fix clear playlist in Volumio component (@titilambert - #12173) (media_player.volumio docs)
Add Xiaomi Universal IR Remote (Chuangmi IR) (@cnrd - #11891) (remote.xiaomi_miio docs) (new-platform)
Fix Xeoma camera platform to allow different admin/viewer credentials (@jeradM - #12161) (camera.xeoma docs)
Xiaomi MiIO Light: Brightness mapping improved (@syssi - #12203) (light.xiaomi_miio docs)
Fixes according to review from @MartinHjelmare Thank you. (@kennedyshead - #12171) (climate.melissa docs) (sensor.melissa docs)
Fix logger bug on Windows: path contains ''. (@fanthos - #12197) (system_log docs)
Catch concurrent.futures.CancelledError in websocket code. (@pelson - #12150) (websocket_api docs)
Update pushsafer.py (@appzer - #11466) (notify.pushsafer docs)
Add wake on lan capability to philips TV (@frog32 - #12065) (media_player.philips_js docs)
Specify the minimum python version in the setup.py. (@pelson - #12144)
Return of entity_id in template platforms (@amelchio - #12234) (binary_sensor.template docs) (cover.template docs) (light.template docs) (sensor.template docs) (switch.template docs)
Allow zero purge_interval to disable recorder purge (@amelchio - #12220)
Update min js=latest version (@andrey-git - #12091) (frontend docs)
librouteros version bump (@zabuldon - #12227) (device_tracker.mikrotik docs)
SQL sensor (@dgomes - #12142) (sensor.sql docs) (new-platform)
Fixes for tesla. New sensors. (@zabuldon - #12225) (tesla docs) (sensor.tesla docs)
Entity layer cleanup (@balloob - #12237) (breaking change)
[SMALL PATCH] Sql sensor (@dgomes - #12242) (sensor.sql docs) (new-platform)
Set tahoma cover update interval to default (@bakedraccoon - #12232) (cover.tahoma docs)
Avoid influxdb filling connection pool (@amelchio - #12182) (influxdb docs) (breaking change)
Force update support for mqtt binary sensor (@mkfink - #12092) (binary_sensor.mqtt docs)
Added password mode to input_text (obscure content of text box) (@covrig - #11849) (input_text docs) (sensor.xiaomi_aqara docs)
Fix cover service description (@cdce8p - #12243)
Add explicit first-time config for new purge_keep_days default (@amelchio - #12246)
added more debug logging for sensor.alpha_vantage (@ChristianKuehnel - #12249) (sensor.alpha_vantage docs)
Add Service Schema to Broadlink Switch (@maddox - #12253) (switch.broadlink docs)
Update aiohttp 2.3.10 / yarl 1.1.0 (@pvizeli - #12244)
Fix source code using Windows newline (@OttoWinter - #12248)
miflora - fix for exception handling bug (@ChristianKuehnel - #12149) (sensor.miflora docs)
Update pyhomematic to 0.1.39 (@danielperna84 - #12265) (homematic docs)
Update owntracks.py (@luca-angemi - #12260) (device_tracker.owntracks docs)
Fix for iTunes media player not updating artwork (@lexam79 - #12089) (media_player.itunes docs)
Fix duplicate entity_ids in System Monitor (@fanaticDavid - #12124) (sensor.systemmonitor docs) (breaking change)

Spelling fixes (@OttoWinter - #12041) (breaking change)
we should list all those breaking changes here so users can use Ctrl+F

Each PR with breaking changes contains a paragraph in the description that will be copy pasted to the release notes. Feel free to help with that.

Regarding to the entity registry introduction. I've been facing a bunch of issues with 0.62 (mainly ZWave - some sensors were gone, name changes, multiple values being sent in the same time under the same sensor name, state value swapping with attributes etc.).
Are these issues addressed? A lot of users will have a bad time.
References: https://github.com/home-assistant/home-assistant/issues/12239 https://github.com/home-assistant/home-assistant/issues/11997

@covrig I don't know if it has been addressed. Look at the change log? Lots of changes.

@balloob I took a look at the change log and it seems the problem is caused by https://github.com/home-assistant/home-assistant/pull/11691. The entity registry should fix most of the problem, but I suspect not all of them. Let's see.

I doubt that that PR would cause issues of missing devices? You have a link to a log?

@balloob Sadly, i have no log. However, between 0.61.1 and 0.62 I didn't see anything else that could have caused this. The devices/sensors/attributes are not missing. More of them use in the same time the same entity id name. They keep swapping places.

Is there a reason for the tag on GitHub being 0.63 but the version on PyPI being 0.63.0?

No

Then it would be nice if it were consistent for future releases.


Enhancement: dockerize the chimoney-payout-airtime

Description
so as to make it lightweight and also to be able to run it in multiple environments
Screenshots
No response
Additional Information
No response
Ready to Work?

[X] I want to work on this enhancement

Hi @Davidongora
I have assigned Faria to work on the responsiveness of the application on issue #314. You can collaborate with them.

Sure..but It wont affect my branch just merge it
On Sun, 29 Oct 2023, 10:58 Phyllis Atieno, @.***> wrote:

Hi @Davidongora https://github.com/Davidongora
I have assigned Faria to work on the responsiveness of the application on
issue #314
https://github.com/Chimoney/chimoney-community-projects/issues/314. You
can collaborate with them.
—
Reply to this email directly, view it on GitHub
https://github.com/Chimoney/chimoney-community-projects/issues/315#issuecomment-1784026961,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APVICKMKIKIO3HF5YP26JCDYBYEBHAVCNFSM6AAAAAA6UIDMBSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBUGAZDMOJWGE
.
You are receiving this because you were mentioned.Message ID:
@.***>


[Storage] Azure Storage modules for Node.js - Docs to be updated to v12

Following docs refer to azure-storage package.
https://review.docs.microsoft.com/en-us/javascript/api/overview/azure/storage?view=azure-node-preview&branch=master
Should be updated to V10 storage packages (and V12) (Update https://github.com/MicrosoftDocs/azure-docs-sdk-node/blob/master/docs-ref-services/storage.md)

@maggiepint, @kaerm Can either of you pick this up?

Update:

The link to the Storage Overview page: https://docs.microsoft.com/en-us/javascript/api/overview/azure/storage?view=azure-node-latest&branch=master
Samples should be updated to refer to the v12 version of @azure/storage-blob library with pointers to corresponding queue and file-share packages

Also, all the samples link in the overview page are broken leading to 404

Thanks! The content team is aware of it and should be getting to it soon

Any updates on this @kaerm?

Content team is busy updating other documents but I believe @maggiepint volunteered for that one

@kaerm, @maggiepint The above samples links continue to lead to 404


Refactor the Solver class and all subclasses

This is quite a big PR that completely reorganizes the Solver class. As I was discussing with @pierreguilmin, the current structure did not allow for certain new solvers such as fixed time step Runge Kutta solvers. It was also somewhat incoherent between functions.
I'm quite happy with this proposal, but I'm open to criticism of course. I'd suggest reviewing commit by commit to not have to read too much at once.
In short, the structure goes like:
Solver
  >> Propagator

  >> ForwardSolver
     >> Rouchon <with adjoint support>
        >> MERouchon
           >> MERouchon1
           >> MERouchon1_5
           >> MERouchon2
     >> Euler
        >> MEEuler
        >> SEEuler

  >> AdaptiveSolver
     >> MEAdaptive
     >> SEAdaptive
  ** AdaptiveIntegrator
     ** Dopri5
     ** Dopri8 (TBD)

  >> FixedSolver
     >> MEFixed
     >> SEFixed
  ** FixedIntegrator
     ** RK4 (TBD)

So there is no more AdjointSolver class, but the adjoint is implemented directly within each given subclass. For now there is only Rouchon support, but it could easily be extended to Euler as well, and even to Adaptive and Fixed Solvers.
Also, the ForwardSolver class now represents any solver that uses a forward function that computes directly the next y(t+dt). This is not the case of AdaptiveSolver and FixedSolver which compute the derivative dy/dt. So I renamed these functions odefun instead for coherence.
In following PRs:

[ ] Add typing all around
[ ] Dopri8
[ ] RK4
[ ] Add adjoint to Euler

Very nice PR! It may be because I'm not up to speed in numerical algorithms, but I'm not sure to follow how the distinction is made between
  - Propagator
  - ForwardSolver
  - AdaptiveSolver
  - AdaptiveIntegrator
  - FixedSolver
  - FixedIntegrator

For instance why a RouchonSolver should be a ForwardSolver but not RK4?

Very nice PR! It may be because I'm not up to speed in numerical algorithms, but I'm not sure to follow how the distinction is made between
  - Propagator
  - ForwardSolver
  - AdaptiveSolver
  - AdaptiveIntegrator
  - FixedSolver
  - FixedIntegrator

For instance why a RouchonSolver should be a ForwardSolver but not RK4?

So the problem is that all these methods have their specificities, and they might differ in different places/functions. So it's very hard to give a proper "tree-like" structure simply with classes and sub-classes that encapuslates all these methods.
To be more specific, adaptive methods like Dopri5 and Dopri8 apply to both the SE and ME (and possibly others). So if I were to write solvers MEDopri5, SEDopri5, MEDopri8 and SEDopri8, there would be alot of redundance between MEDopri5 and MEDopri8 (it's the same function we integrate, i.e. the Lindblad equation), but also between MEDopri5 and SEDopri5 (they share the same integration method, same Butcher tableau, etc.). So I decided to separate the Integrator class from the Solver class for these specific methods for instance. Note that AdaptiveIntegrator and FixedIntegrator are not sub-classes of Solver here.
To answer your question, Rouchon and RK4 do share some structure in the sense that we have a simple for loop that iterates over time. However, the forward functions that compute the next y(t+dt) are very different. For Rouchon, we have an explicit formula that applies only to the ME, and that is very "quantum" by nature. For RK4, we have an integrator that calls an function that returns dy/dt at all times, and computes the next y(t+dt) from a runge-kutta method. So this is some machinery, and it should still be separated into MERK4 and SERK4 depending on the actual ode we integrate.
So in short, ForwardSolver is a parent class for all methods that feature a forward method that can directly compute y(t+dt) in a "homemade" manner. While the FixedSolver is a prent class for all methods based on ODE integration.


Consider adding support/switching to utf8 positions

Added in LSP 3.17
will need to wait for client adoption
Issues tracking client implementation:

VSCode https://github.com/microsoft/vscode-languageserver-node/issues/1224

UTF 16 is still required so adding that would mean we need 2 mechanisms. Will revisit if ever LSP 4 changes the default to UTF 8


Update OpenROAD to latest

This PR updates our OpenROAD-flow-scripts submodule to the latest version, and ensures that all the scripts still work.
There was actually only one small breaking API change, but the process revealed a bug in how we were handling placement padding. From the commit notes:

We should use the $openroad_pad_detail_place value instead of the
$openroad_pad_global_place in sc_cts.tcl, since we are doing a
detailed placement here. This is consistent with ORFS.
This makes the global call to set_placement_padding in sc_apr.tcl
problematic, because it sets the placement padding value to the global
value and then runs a placement check. However, the default detailed
placement padding for Sky130 is smaller than the global placement
padding, so this check can then fail overlap checks.
This bug also revealed a bug in the GCD skywater test, where two
conflicting constraints being provided meant that OpenROAD didn't
receive clock constraints.

Since this might warrant some discussion, I don't want to update the version of OpenROAD on our test runner until we think we're set to merge this (since making that change will break CI for other PRs in the meantime). Let me know once you're ready to go with this, and I can update the test runner to make sure this PR is green.

That's great! Let' discuss Monday and merge!

Server has been updated, this should be good to go!


Removed parallel build to fix the travis build failure.

Let's leave it for now. Will take it out if the build continues breaking due to this setting.


Godot's Asset Library integration

Would it be possible/not very time-consuming to add this framework into Godot's Asset Library? It would give this project greater visibility.
By the way, thank you for doing this project, it's helping me a lot. I'm not much of a coder so I can't contribute with much else, but here's a little icon you can use :)

We will definitely look into this ASAP.

This stuff is pretty well documented at Making Plugins.
Spent an hour or a bit more and got a basic layout that adds an Escoria tab in the upper-right tab pane next to Scene and Import.
Only problem is that the button events don't seem to do anything :( :( :(
The development cycle is also a bit slow, as the plugin needs to be inactivated and activated again to reload it, but this should ease out.
There are some further considerations, though:

What to do with files and scenes? #113 and #114 touch on this
Can we separate the UI elements so they're copied from the addon scene directory (or whatever) and use common scripts from Escoria?
What sort of buttons would there be? "Configure" for project setup is obvious, but can we reliably alter the scene structure with "New item"?
Should the developer be prompted with questions about export var options when adding something new? Should something like global_id be a mandatory question always or only when the project is configured to enforce them for translation?

There are probably tons of more questions and without a solid work force to figure this stuff out and implement and reiterate on possibly bad choices, it will take a considerable amount of time to have this as a plugin. Even if the button events worked as easily as the documentation says.

Assets location integration already exists for Escoria 3. We'll add the new version as soon as it's ready. Until then closing this issue. Thanks!


Adds Multi-body dynamics primarily

Integrates @AhmadAmine998 's scale branch, which adds model scaling and PyQt rendering.
Fixes integration bugs in rendering
Refactors dynamics to be more readable
Adds multi body dynamics

@AhmadAmine998 , working MB commit, vehicle seems slow in the scaled example in waypoint_following.py, not sure why. Could be double scaling?


Add auth callback endpoint

Some teams are creating work items with the following link format:
https://{instance_url}/api/download?container={container_name}&filename={file_name}
However, this fails to authenticate because we don't have an endpoint for completing the authentication flow. The expected endpoint should be: https://{instance_url}/.auth/login/aad/callback
By implementing the endpoint and completing the auth flow, links like the one above should work.
AB#36082

We do seem to have something enabled because we're getting 500s back from that URI, but there's nothing in the exception log. It's possible this is being (or attempted to be) handled at a higher level in the Azure Functions stack.

This problem resolved when the customers enabled their vpn.


How I can do session stickiness with interlock

How session stickiness work with interlock?? Is it default configured ??
And what about changing the algorithm. I cant see any good documentation on the how to use things.
If you can create one that will be of great use.
I can prepare one. If you can give basic guidline.
Regards,
ManMohan Vyas

Interlock uses HAProxy underneath.  We currently do not do anything with
stickiness or the algorithm (feel free to open an issue separately if you
would like to see them).  Interlock is pretty basic as it just writes the
config -- docs are light but cover the features (
https://github.com/ehazlett/interlock#interlock).
On Thu, Jan 15, 2015 at 6:43 AM, ManMohanVyas<EMAIL_ADDRESS>wrote:

How session stickiness work with interlock?? Is it default configured ??
And what about changing the algorithm. I cant see any good documentation
on the how to use things.
If you can create one that will be of great use.
I can prepare one. If you can give basic guidline.
Regards,
ManMohan Vyas
—
Reply to this email directly or view it on GitHub
https://github.com/ehazlett/interlock/issues/15.

I have closed this issue. Creating a new issue as a feature request for Algorithm and session request.
Me too is trying to fix it. We can fix it via getting input from enviornment variables. Completely new to "go". Not even able to compile the project. :(  Will try anyways.
Thank you


"pseudo" Groups implementation

Hey @mfucci,
as promised here a simple case ... Groups implementation ... I need a instance to store the groups assignments (and later also needs to be persisted).
Additionally it would also makle sense to be able to call other impelemtations on the same instance to avod duplicate code - or I need a way to add additional methds to that instance to split out common used code.
Lets start with this :-)

BTW: Yes I also tried the idea of
class GroupsClusterHandler implements ClusterServerHandlers<typeof GroupsCluster> {
}

That you provided but then I was lost on how to access the request parameters (and in next step for other clusters also the cluster attributes)

Updated your branch with an implementation suggestion using a closure to create an internal state (this is the old fashion js class design pattern...)
I tried to create a real class using:
class GroupsClusterHandler implements ClusterServerHandlers {
[...]
}
that does work but the code looks really ugly since typescript compiler requires to declare args type on each methods, and since it is auto-generated from the ClusterDefinition, it is ugly.
Using the object notation, ts compiler infers all the correct types, so it is much easier to write / read it.

Ok, yes so it could work for now ... lets see when we need "initialization "logics"" ;-) ... but you removed the "this->addGroup" call in the addGroupWhenIdentifying method ... what we do there? Or do we duplicate code?

addGroupWhenIdentifying: with return this->addGroup(..), the return signature of addGroupWhenIdentifying was not matching what is described in the cluster defintion.
I let you debug this one...
Let me know when everything is ready for review

Will check today

hhmm ... I think there is a spec flaw ... so we need to assume things:
AddGroupIfIdentifying do not have any defined response command and also do not refer to any other. SO my best "assumption" is to use the addresponse response here too. That would contain a status field that we need here and also have one field more as groupId which should be ignored by the receivers if not expected.
Adjusted PR again.

BTW for the Group case /unicast and such topic in the Todos here I digged a bit ...
Core Specs 4.14 described Group communication.

Multicast addressing is accomplished using the 16-bit Group ID field as the destination address. A multicast group is a collection of Nodes, all registered under the same multicast Group ID.

In fact it is a special type of encrypted session where the communication runs over
Core Specs 4.15 described the Group Key management logic for the relevant encryption

@mfucci Maybe we are closer now here?

hhmm ... I think there is a spec flaw ... so we need to assume things:
AddGroupIfIdentifying do not have any defined response command and also do not refer to any other. SO my best "assumption" is to use the addresponse response here too. That would contain a status field that we need here and also have one field more as groupId which should be ignored by the receivers if not expected.
Adjusted PR again.

Turon told me that the CHIP codebase is the source of truth, even above the specs. So when something is not clear, just look at  what is done there...

lol, good to know ... will try if I get something out there

@mfucci @turon Any starting point? I tried to find it in the chip codebase but failed ...

@mfucci @turon Any starting point? I tried to find it in the chip codebase but failed ...

Here?
https://github.com/project-chip/connectedhomeip/blob/af8161cb092ec01e184338cd0598fcd63d4481c2/src/app/clusters/groups-server/groups-server.cpp#L340

Ok with this (thank you for the link ... I did not discovered that) my assumption was right. Response is like addgroup with a status field.

Ok with this (thank you for the link ... I did not discovered that) my assumption was right. Response is like addgroup with a status field.

Oooohhhh nooooo that's not right. I'm fact they have a default response defined which is only returning a status.
emberAfSendImmediateDefaultResponse(status) ... that means that the NoResponse type should get an optional status?! Or we need an extra "defaultResponseWithStatus" type

Oooohhhh nooooo that's not right. I'm fact they have a default response defined which is only returning a status.
emberAfSendImmediateDefaultResponse(status) ... that means that the NoResponse type should get an optional status?! Or we need an extra "defaultResponseWithStatus" type

Ok, updated here too ... so only topic left is the "is it a "groupcast or not" topic which I already found out in https://github.com/mfucci/node-matter/pull/137#issuecomment-1346098733, but that is a more "core" topic because it starts with data from this incoming udp.
@mfucci  What do you think, merge with the Todos or leave open? (if second I would maybe bring in the cluster specs part in a separate PR)

COntent will be in a future matter.js PR


Consider adding LTTB sampling algorithm

One-line summary [问题简述]
Please consider adding the LTTB (Largest-Triangle-Three-Buckets) down sampling algorithm as described here: https://github.com/sveinn-steinarsson/flot-downsample
Expected behaviour [期望结果]
Charts with a large number of points can be down-sampled and displayed without losing their overall shape.
Other comments [其他信息]
Demo of LTTB with flot plugin and flot:
http://flot.base.is

Thanks. That seems to be a nice new feature.

Are there plans to add a threshold parameter for sampling strategies like in the flot demo?

@tkappenman This issue will be closed. You can open another issue to describe the feature request in more detail.


Translations update from Hosted Weblate

Translations update from Hosted Weblate for EweSticker/strings.
Current translation status:

Set machine translated strings as needs editing/ review


Interdependent ops about group/user creation

A deploy script containing
apt.packages(
    name='Install Docker via apt.',
    packages=['docker-ce', 'docker-ce-cli', 'containerd.io'],
    update=_add_apt.changed,
)

server.group(
    name='Create docker user group',
    group='docker',
)

will fail when docker gets installed, because

At the moment when facts are gathered, there is no docker installed and therefore no docker group
After docker installation is done, it tries to do add group, but fails with an error "the group already exists"

Related: https://docs.pyinfra.com/en/latest/deploy_process.html#interdependent-operations
However, creating group shouldn't just fail if exists. the operation is really not idempotent. What is your suggestion on this scenario? Checking operations' precondition in runtime is pretty cumbersome and not very intuitive.
I think this is just only one example, but I believe there are a LOT more similar cases about inderdependent operations because of the fundamental assumption of the execution model.
Meta

pyinfra 1.0.4

I believe this is the same as #387, will continue discussion in there!


update file chooser in model reconstruction service

https://github.com/PATRIC3/p3_web/pull/520/commits/ff5b78e9b8ffd8ef50a1b72b99f3271b4b413576


IMPROVE: Update Label for RUNEPool Withdraw

The label for the amount to withdraw on RUNEPool Withdrawal is little confusing.
Please update the Label Basis Points to Percentage, so the user can withdraw a percentage of his RUNEPool and knows exactly how much percent.

https://github.com/vultisig/vultisig-ios/pull/1088


Recommended parameters to compare to fast-wavenet example?

I'd like to compare training/generation times to the fast-wavenet implementation. I understand the generation component from that implementation was merged in a while, but I'd like to try out the same parameters between the two.
I'm training using the sample 44.1kHz clip in under assets/voice.wav from the fast-wavenet. So I modified "sample_rate" in wavenet_params.json to 44100 (from 16000).
Where I get a bit lost is in the dilation and channels parameters. fast-wavenet has:
num_channels=1,
num_classes=256,
num_blocks=2,
num_layers=14,
num_hidden=128

Using this configuration for fast-wavenet, my machine (DIGITS box) trains to <0.1 cost in about 5 minutes.
What would be the equivalent (or close to equivalent) parameters for this implementation under wavenet_params.json?

I'll just point out one that you would surely stumble over with 44.1KHz audio: the --window size command line arg would need to be specified, and should be set to the receptive field size of your net. It defaults to 8000, and at 44.1KHz that's only 181 mSec, which is probably too short. Or better yet, you could use koz4k's PR which eliminates the --window parameter in favor of using the receptive field size.
I'm not familiar with fast-wavenet so at the moment can't help with mapping their parameters to tensorflow-wavenet's.

@jyegerlehner Thanks for the tip. I didn't realize that --window field. I was concerned that there may be some mismatch between sample sizes so I re-encoded that 44.1kHz voice.wav to a 16kHz file to maintain compatability. It's still just generating static for me using the default parameters after ~1000 steps (loss=0.01). So I'm still actively debugging to see if it's some encoding issue or something.

UPDATE:
Still no luck getting a decent reproduction of the wave file from fast-wavenet's "voice.wav" file. But since they're different architectures, it's not really fair for me to ask for parity. So I'll close this issue.


Fix for: You cannot blur a text-input if you tab to it.

Summary
I've been working on a new iOS experience with lots of text inputs and this has been driving me a bit nuts…
If you're in a scrollview with keyboardShouldPersistTaps="handled" and you tab through your text-inputs, you aren't able to tap outside of a given text-input to blur it (and dismiss the keyboard).
I wrote up a quick explanation and some repo steps here: https://snack.expo.io/BJBcKgrqB
The patch i came up with, after poking around for a little bit seems terrifying - so almost certainly not it. But if it's helpful at all - decided to just got ahead and submit it.
Changelog
[iOS] [Fixed] - TextInput blur when tabbing in iOS simulator.
Test Plan
I tried to think of a way to test this in jest… but i didn't get very far sorry 😢
I did create a snack here so you can demo the issue: https://snack.expo.io/BJBcKgrqB
I also created two videos…
Here's the text input not working when i try to blur it after tabbing in simulator

Here's it working after I applied this patch

Thanks!

Signed, thanks 🙏

I would love to see the explanation of why it works and why it should be implemented this way.

I originally was trying to figure out why _onPress (https://github.com/facebook/react-native/blob/96333d09938d1a3118589fd5a0f390303d19390e/Libraries/Components/TextInput/TextInput.js#L1106) was working, while _onFocus wasn't (specifically when _onFocus is triggered by something like a tab event. That lead me to _onPress calling the this.focus method exposed by the NativeMethodsMIxin.
In trying to figure out what focus() did - I got as far as this code: (https://github.com/facebook/react-native/blob/96333d09938d1a3118589fd5a0f390303d19390e/Libraries/Renderer/shims/NativeMethodsMixin.js#L14) and then kinda through my hands up (unclear to me what is happening under the hood by calling focus? I might just not be familiar enough with the project to know where that code lives, but from my quick look - seemed like it was something obfuscated.
Because of that, the first thing I thought to do then was… "what if i just called this focus mixin method when focus is triggered" (such as by a tab event). This seems to work for my usecase - although again - unclear if this is the way this issue should be resolved.

Hope that's helpful 🤷♀

Thanks for highlighting this bug...and sending a PR too!
Okay, here is what I think is happening. For context, let's start with this diagram I have of how focus and blur propagates through the system.

ScrollView's scrollResponder is responsible for blurring text inputs when a touch occurs in the ScrollView but outside of the currently focused TextInput. The code for that is here:
https://github.com/facebook/react-native/blob/6ba2769f0f92ca75fb0eb60ccb8337920a9c31eb/Libraries/Components/ScrollResponder.js#L301-L314
This happens on scrollResponderHandleResponderRelease aka, touch up.
It checks for what the currently focused textinput is by calling TextInputState.currentlyFocusedField().
That function is a JS variable that is being updated by calls to TextInputState.focusTextInput and TextInputState.blurTextInput:
https://github.com/facebook/react-native/blob/6ba2769f0f92ca75fb0eb60ccb8337920a9c31eb/Libraries/Components/TextInput/TextInputState.js#L36-L71
I added some console logs to those methods to see which ones are being called when running your repro (thanks for the repro!). This is without your fix
Click on and off:
// Click on input 1
focusTextInput input1
TextInput's _onFocus called

// Click on blank space
scrollResponderHandleResponderRelease blur input1
blurTextInput input1
TextInput's _onBlur called

Click on input1, then input 2, then off
// Click on input 1
focusTextInput input1
TextInput's _onFocus called for input1

// Click on input 2
focusTextInput input2
TextInput's _onBlur called for input1
TextInput's _onFocus called for input2

// Click on blank space
scrollResponderHandleResponderRelease blur input2
blurTextInput input2
TextInput's _onBlur called for input2

And now for the bug. Click on input 1, tab to 2, then off
// Click on input 1
focusTextInput input1
TextInput's _onFocus called for input1

// Tab to input 2
TextInput's _onBlur called for input1
TextInput's _onFocus called for input2

// Click on blank space
scrollResponderHandleResponderRelease blur input1
blurTextInput input1

Notice how focusTextInput was never called with input2 in the last example. Since this is the function that sets the currentlyFocusedField when we click on the blank space RN is trying to blur the first input instead of the second.
The root cause
We are tracking the state of which field is focused in JS which has to stay in sync with what native knows is focused. We listen to _onPress and call TextInputState.focusTextInput in that handler. However, we don't currently have anything listening to other ways for an input to become focused (like tabbing) so it doesn't end up updating the currentlyFocusedField.
We have the same problem with blur that we actually fixed the same way you did here in this PR:
https://github.com/facebook/react-native/blob/6ba2769f0f92ca75fb0eb60ccb8337920a9c31eb/Libraries/Components/TextInput/TextInput.js#L1182-L1189
The reason this solution works is because this function is the notification from native that an input was focused or blurred. This solution is fine because this updates the currentlyFocusedID but isn't great because it both sets that value and calls the native code to focus or blur again. Luckily the native code doesn't send an event back to JS if you try to blur an already blurred TextInput otherwise we'd have an infinite loop.
The correct solution
The correct thing would probably be to have all of this tracking in native code and not in JavaScript code. That's a pretty big change though and very out of scope. Something for our team to keep in mind for the future.
A shorterm term solution would be to refactor focusTextInput and blurTextInput to pull out the part that sets the currentlyFocusedID that we could call from TextInput directly from _onFocus and _onBlur
Thank you
Thank you for highlighting this bug and giving a really solid repro for me to investigate. I don't think you need to take any action on these "correct" solutions in this PR but I wanted to share all the context back with you that I can. This is also helpful documentation for our team as we work on these components in the future.

So inside a ScrollView, when you click outside the TextInput, we grab the currently focused element and unfocus it. All that code is in JS, and we keep a track of which TextInput is focused inside TextInputState. In TextInput, that JS state is updated only by calls to this.blur() and this.focus(). When Native changes focus or blur, it calls TextInput._onBlur and TextInput._onFocus. So, we have to call this.blur() and this.focus(). Otherwise, we won't update TextInputState, and the ScrollView (and JS in general) won't know which element is currently focused/blurred.
Is that right, @TheSavior?

Yes! Exactly!
Well, kinda exactly. The only part that I'd want to clarify from your comment is:

In TextInput, that JS state is updated only by calls to this.blur() and this.focus()

All NativeComponents (host component, component using NativeMethodsMixin, or component extending ReactNative.NativeComponent) have a .focus and .blur method which updates TextInputState.
That means that if you have a <Switch> you can call .focus on it, which will set it to be the currently focused field in TextInputState and then when you click somewhere else in a ScrollView, ScrollResponder will tell TextInputState to blur that <Switch>.
Even though it isn't a TextInput it is still gets focus and blur set on it. But to make it worse, since we don't listen to onFocus and onBlur in the Switch JS code to update TextInputState as well then if native focuses off a Switch, the JS might still think it is focused. That's the same problem this PR is fixing for TextInput.


UUIDs versus sequential (or speaking?) IDs

when to use what?
configuration data (warehouses, sales channels, ...) vs. mass data (like articles, orders, ...)
client vs. server side ID generation

Pros

distributed id management becomes easier (but not necessarily simpler)

Cons

poor readability for developers (log files, etc.) and  readability/usability for end users (in case they are exposed as e.g. invoice numbers)
length of 36 characters (by default) can at most be reduced to 23 characeters (uuid -F BIN | base64 | sed 's/=//g' produces 6FVxOKZhEeaFzKOd3UAmeg)

The main reason to use an UUID as an identifier for entities is to make sure no one else generates the same ID for a different entity (whether of same or different type).
This is reached by having a vast space of possible values, and using either good (pseudo)randomness or some namespace mechanism (time + MAC address + counter) to select values from that space.
This vast space makes the UUIDs long (128 bits → 16 bytes, 32 in hexadecimal (with standard delimiters 36), 22 chars in base64)). This is not really a problem when storing or transmitting them (storage and bandwith is cheap and becoming even cheaper), but it is when reading them, in logs, for phone calls etc.
For configuration data like business partners, warehouses, sales channels, etc. creations are not that often that we need to ensure concurrent creations – a simple counter would be enough, or possibly a speaking identifier ("code") selected by a human user (like as we are using for warehouses in Wholesale context: WH-DE-EF for our Erfurt warehouse, WH-IT-ST for the one in Stradella).
When different business organizations are creating the same type of entity, possibly namespace prefixes as discussed in #62 are a solution – while here the combined identifiers might get even longer than UUIDs, they still are much more easily to read, type and compare for humans.

i think that UUID's should only be used if ID's have to be generated in a distributed (= uncoordinated) manner by multiple actors. basically, what they were invented for. in all other cases, costs (lack of readability, index-friendlyness etc.) outweigh their benefits.
or, as richard clayton puts it:

UUID's should be a last resort tactic,employed only after you have exhausted other strategies for determining uniqueness in an architecture.

As discussed in todays guild meetup we wanna form a rule out of this and place it in resources chapter.
@tlossen is in the lead

UUIDs and sequential ids/numbers share an important property. They are fixed sized data types. Strings are dynamically sized and can therefore only live on the heap. This forces the CPU to do pointer chasing.
So basically an id should fixed sized. But for strings this might be quite hard to enforce(fixed number of chars and only ASCII).
But there is just more to it than the explanations given in the guidelines. Especially when requests are processed with a high frequency Strings can cause trouble.

@chridou that sounds like premature optimization, I don't think we want to optimize APIs for fixed width data types --- most of our Zalando services run on the JVM, so there is already "some" overhead. On the other hand I agree that some fixed-width "format" for the ID (application dependent) makes sense, AWS resource IDs are a good example (they all have a prefix indicating the resource type, e.g. i-34fcc185 indicates an EC2 instance ID and sg-23fd12c would be a Security Group).

@hjacobs I agree that it sounds like that. On JVM it currently doesn't matter, but I heard that with Java 9 structs are planned. I think for the guidelines it is also important to point out that strings have their drawbacks and should also only be a last resort on the other side of the end: Use strings only if there is a strong need for them. So I would add something like "If ever possible choose a sequential number as the Id" because that is somehow something that combines (best and almost worse) of both worlds.
Not really contributing to this discussion but interesting:
Maybe this talk from Facebook is interesting showing how much effort they spend on the topic, especially how much time they spend in "Strings" CPU wise.
https://www.youtube.com/watch?v=kPR8h4-qZdk

@chridou probably you should go with GRPC instead of trying to micro-optimize JSON REST APIs :smirk:

@chridou I'd suggest coming at this from a different angle and having a recommendation that id strings across the APIs have a maximum char length, perhaps with some wording to consider, but not require, uniform length. That allows APIs and their implementations to negotiate efficiencies like fixed-width, which might be important for some real-world scenarios (making them 64 bit to keep them cache lined, etc) but doesn't impose on other API implementations. I know some folks won't like the idea of saying API ids will always fit inside a varchar(96) or what have you, but they practically speaking have to be stored somehow and shouldn't force developers away from systems efficiencies.
I also think we need to discourage format qualification of id strings (such as uuid) even where the ids happen to be lexically of that type on the wire. That kind of type narrowing makes long term API evolution over time harder because code (and downstream API definitions) end up locking into the type declaration. The way the APIs are at the moment, an API designer has no idea how their ids will be distributed and used, making it basically impossible to change format without risking a break.
/ @hjacobs @tlossen

@hjacobs

probably you should go with GRPC instead of trying to micro-optimize JSON REST APIs :smirk:

Good to know there are G and other companies out there that choose optimization in favour of eternal mature latency ;-)

I close this, @tlossen, as we already merged your PR for this.


Reorganize into composite build, for debugging

By request :)  Took a little bit of doing, tried to do it without moving files but that ended up not working. The gist of it is that the consuming build has to "includeBuild" the plugin/library build, so I moved all the libraries and the plugin to plugin-build.  Useful guide is here: https://ncorti.com/blog/gradle-plugins-and-composite-builds
and for proof, here's a breakpoint in the plugin:

You can debug by right-clicking on a task in the "Gradle" pane of the IDE, etc.
I only tried basic builds - didn't try any of your fancy release stuff.

ah, looks like I goofed up the file permissions on the gradle wrapper because I'm on Windows right now.

@rpavlik thank you so much for this PR it's amazing. and really works great.
I've looked into the chances and identified that we should not move the libraries itself, and opened a PR where I reverse parts of this: https://github.com/mikepenz/AboutLibraries/pull/555 (e.g. keep library, ... in the original location)
This makes it significant easier to review


Odd response to unchanged data

TL;DR: an update request is returning 404 when it maybe should be 304.
When changing the permissions of a user on a project things work fine the first time. If I send the same request to change the permissions a second time, ie. trying to change {access:'rw'} to {access:'rw'}, then the response is 404 Element not updated....
Request:

url<EMAIL_ADDRESS>body: {"access":"rw"}

1st Response:

200
{"modified": 1}

2nd Response:

404
{"code":404,"uid":"foo@bar.com","detail":"Element not updated in list permissions of container projects abc123"}

Hmm. I would agree that 404 isn't appropriate in this case.
Philosophically, I would support making calls idempotent whenever possible - "ensure this state exists", contrasting with "make this state change and fail if it's already made."
Taking a quick look, my guess is that error code returns are appropriate for most of what this logic is rigged for, but the condition is too broad - if the database transaction failed because that state already exists, it should just 200 out.
@gsfr, thoughts?

404 definitely seems odd. I agree with the desire to be idempotent. 304 would be fine, but not required.
@rentzso?

yeah 404 is weird. 200 seems more reasonable for that request.
There was a subtle reason for this though.
mongo updates will return {modified: 0} every time an update doesn't modify any element and, sometimes, this is an error.
For example if we are updating a permission for a user (let's say you are changing the id) and another user with the new id already exists, we are blocking the update because we don't to override the
I thought that, in the case mentioned in this issue, an error is weird but it would be more weird to reply to  failed updates with 200.
I don't know how to solve properly this duality. Please let me know if you have suggestions.
I was thinking now that maybe a second request after the {modified:0} result could be good to verify that the db state is consistent with the update...

The above issues can be avoided if we don't allow updates on index fields.
This is what I plan to do


ssl handshake error

Application stopped working with error get_token error:<PHONE_NUMBER>13120:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1262:SSL alert number 40
unable to run it anymore

error is generated on tost.js at line 35 because is defined a non-working token on line 15
I commented out line 15, but got a SSL hangout error on requesting new token (rturned 'undefined')

I tried the ruby version, and the problem to me is that SSL3 is broken on most ACs still using DH key exchange, you need to set a specific cipher on the client in order to deny DH key exchange
in ruby I did this:
context.ciphers = 'HIGH:!DH:!aNULL'
searching I found something similar for node, but I can't find it anymore

uhm... quite interesting....
don't know how to do that on NodeJS, but I'm interested in the Ruby workaround...
maybe this is not the right place to talk abut, but where exactely did you put the "context.ciphers = 'HIGH:!DH:!aNULL'" statement?
thanks

the ruby code is also from Daniel and hosted here:
https://bitbucket.org/CloCkWeRX/samsung-remote
there is a file name lib/samsung.rb
where it says:
context = OpenSSL::SSL::SSLContext.new
you need to add below that line this code:
context.ciphers = 'HIGH:!DH:!aNULL'
with this mod you can use the ruby code to get the token and see status command, it's just an example, but it's a start (I'm interested in get it work in homebridge and home-assistant)
I've also tried to talk with the AC using openssl command, using the procedure from openhab forums:
https://community.openhab.org/t/samsung-ac-binding/9323/2
which uses a certificate taken from the app.
openssl s_client -connect <IP_ADDRESS>:2878 -cert cert.pem -cipher 'HIGH:!DH:!aNULL'
then you can send commands directly like:
<Request Type="GetToken"/>


Add upgrade notes to Docker-Compose setup instructions.

Coverage remained the same at 93.87% when pulling e52f066c5702299a53ffea82a6df6e8d0752485e on RickCarlino:tuesday into 46223c7686e133273f7b082ace9187f24322faaf on FarmBot:staging.

Coverage remained the same at 93.87% when pulling e52f066c5702299a53ffea82a6df6e8d0752485e on RickCarlino:tuesday into 46223c7686e133273f7b082ace9187f24322faaf on FarmBot:staging.


confirmation code duplication with db

if i m creating account and i did not get confirmation message,and i try again for resend.
if i try this many times it is creating to many tokens with user_id,even only one token is using for confirmation,so i think it is wrong to add new token again and again,we should check if there is no token with related user_id then you should add otherwise you should update code and time

I'll fix this. Thanks for reporting.

Fixed! Sorry for the delay.


Update Questions.md with a multi compartment model idea

What does this PR do?
Why are we doing this?
Testing performed
Known bugs/limitations

Can you fix typo and then go ahead and merge? I've added you with write access so I think you can merge.

And welcome to the project! 😄

Thanks!
I fixed the typo, but I'm unable to merge.

Oh maybe we set it up so you can't merge your own. I'll do it!