Make page margins consistent

Currently when one wants to change the page margins, he/she would have to go in each layout file and adjust them. it would be better if they can just be adjusted in the layout/proposal or layout/thesis and are then inherited for the sub layouts

same goes for the text font and size

You can change the margin for all of the content text on your own. The other layouts specify their own margins as these are fixed and should not change easily


Support for recurring tasks

Is there a way to set a task as recurring? I checked the user guide and could not find anything about this.

Hey, unfortunately no, not at the moment at least. Do you have any specific idea in mind on how it could work?

It could simply be a list to save a task with the interval at which the task will recur. Maybe imagine a task like "Review class notes" that recurs every 3 days. The todo application could store the task alongside the date it was created and the increment value of time for recurring the task. After that, the application could just create a new task referring to the database of recurring tasks at set intervals.
Another option to add would be to recur a task from a set date. For example "Review class notes" task can be set to start at a later date with the --start flag and it can recur every 3 days.
These are just my opinions, I think there are better ways to implement them like taskwarrior does. But I found your application simple enough to use in my daily life. Thank you for working on this.

Hey! I'm glad that you use and like todo :slightly_smiling_face:
Thank you for the implementation ideas! Those are definitely good options to start it out. My question was more about the way it would work as a feature though. As far as my usage of todo is concerned, I don't really have a need for recurring tasks myself, so it's important that I properly understand the need before going in any development. More specifically, I usually associate the notion of recurring task with the notion of notification, which is why I rather use a reminder app on my smart phone for such use-cases.
Anyway, assuming that if a task is supposed to recur every Monday and you invoke todo on a Tuesday, it would show the task that has recurred the day before, I wonder about the following questions:

Where does this task appear? Should it appear among other tasks (maybe with a emoji or something to show that it comes from a recurrence) or should it appear in an "out-of-band" listing, maybe above all other tasks? If it appears among other tasks, I guess it should be sorted according to its added date, which would be "last monday", and maybe other properties inherited from the first task from which it was defined.
What happens if you invoke todo on a Tuesday but 3 weeks later? Now the task has conceptually recurred 3 times, but at this point does it make sense to have 3 copies of the same task? Maybe we should consider that previous occurrences are now useless and we should only make the last occurrence exist? Or maybe, on the contrary, we should consider that everything is blocked at the first occurrence that is still undone?

I'm curious about your opinion on this, as you seem to have a specific use-case for this feature. Tell me what you think :)

Hey, I've added support for recurring tasks as documented here. Don't hesitate to submit feedback in this issue, or open new issues for bugs. I'm closing this one for now.


Add shortcut name referencing on CLI

A block's full title consists of a market (optional), library (required), and name (required), as M.L.N.
Writing out an entire block titles can be tiring, especially if one letter gets messed up and the block does not get recognized. This proposes to allow certain sections of titles to be skipped when referencing a block in the CLI, such as legohdl open <block> or legohdl port <block>.
If no ambiguity exists (i.e., there is no other block with name "design1") then a developer can just pass "design1" as the block title. If there are multiple blocks that share the name "design1", then the developer must add an additional piece of information to identify the correct block (i.e. must say "libA.design1" when there is also a "design1" existing in say "libB"). The following pattern holds if there are blocks that share name and library (must then also identify market).
An error will be displayed showing the ambiguity if any arises and lists the block's in contention.
This is a minimum/enhancement and developer's can always reference by full title M.L.N or L.N.

Commit 0e3ca629737 implements shortcutting for unique block names within a workspace.

Trying to shortcut a market may be impractical because the current architecture only supports having one unique block with <library>.<name>. To use a block of same L.N from another market, the user must uninstall/del the current block that is in conflict, and then install/download the block from specified market by entering M.L.N.
This must detected by have shortcut ability/notifier if the same L.N (but different project) is found within multiple markets.

This solution is merged from major-refactor branch.


fix review issue

https://github.com/mdn/browser-compat-data/pull/8660

https://github.com/mdn/browser-compat-data/pull/8660

https://github.com/APIDevTools/json-schema-ref-parser/pull/202
json-schema-ref-parser current unsupported http proxy download schema

https://github.com/APIDevTools/json-schema-ref-parser/pull/202
json-schema-ref-parser current unsupported http proxy download schema

Howdy. I work on BCD upstream. Glad to see TC39 is making use of it. Do y'all have an explanation somewhere of what you're doing with it?

Howdy. I work on BCD upstream. Glad to see TC39 is making use of it. Do y'all have an explanation somewhere of what you're doing with it?

Howdy. I work on BCD upstream. Glad to see TC39 is making use of it. Do y'all have an explanation somewhere of what you're doing with it?

This repository is committed to standardization tc39 proposal metadata,
like w3c.json (https://w3c.github.io/w3c.json.html) on github repository

Howdy. I work on BCD upstream. Glad to see TC39 is making use of it. Do y'all have an explanation somewhere of what you're doing with it?

This repository is committed to standardization tc39 proposal metadata,
like w3c.json (https://w3c.github.io/w3c.json.html) on github repository

Y'all may already be aware of this too, but at https://w3c.github.io/mdn-spec-links/ecmascript.json is resource that, for every ES feature that's in BCD and documented in MDN associates that feature with the ES spec anchor ID/fragment where that feature is defined. And the data includes the BCD browser support data for the feature, as well as the URL for the MDN article which documents it. And https://w3c.github.io/mdn-spec-links/ has a similar resource for ECMA 402, and for a number of current TC39 proposals.

Y'all may already be aware of this too, but at https://w3c.github.io/mdn-spec-links/ecmascript.json is resource that, for every ES feature that's in BCD and documented in MDN associates that feature with the ES spec anchor ID/fragment where that feature is defined. And the data includes the BCD browser support data for the feature, as well as the URL for the MDN article which documents it. And https://w3c.github.io/mdn-spec-links/ has a similar resource for ECMA 402, and for a number of current TC39 proposals.

@septs sorry for the delay here, there were a few things going on. This looks good, just want to finish up the convo with @sideshowbarker before we move ahead.

@septs sorry for the delay here, there were a few things going on. This looks good, just want to finish up the convo with @sideshowbarker before we move ahead.

The information that we want to get up includes the stage info, example api code, a short description, champions, authors, and links to the notes, spec, and tests.
…
Baaasically my question now is, would it make sense to have this all on BCD...? I have a feeling not all the same data will be interesting, but maybe having it all in one place is worth while.

That sound like more information than we’d want to have upstream directly in BCD. I feel like it’s probably just fine the way y’all seem to be doing it now — that is, maintaining your project-specific data, pulling in BCD from upstream, and combining those to build what you need in the end.

The information that we want to get up includes the stage info, example api code, a short description, champions, authors, and links to the notes, spec, and tests.
…
Baaasically my question now is, would it make sense to have this all on BCD...? I have a feeling not all the same data will be interesting, but maybe having it all in one place is worth while.

That sound like more information than we’d want to have upstream directly in BCD. I feel like it’s probably just fine the way y’all seem to be doing it now — that is, maintaining your project-specific data, pulling in BCD from upstream, and combining those to build what you need in the end.


update: FIX update change refs variable.

The current problem is that when a dist 8.5 and we update to 8.6 the change refs is True and the playbook will fail as the ref has not changed.
Type of change
What is it?

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update
[ ] Refactor

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] I run make pre-commit to check fmt/vet/lint/test-no-fdo

Please add unittests for this before merging

Added donotmerge label

Removed donotmerge label


my setup doesn't work properly, static blinks

Hello! And thanks for listening me and i hope i did everything correctly.
I've managed to work it all, but i have this issue especially visible in static mode: the leds are lighting up like in "color wipe random" mode or similar, but they don't go static.
I have three 5m ws2812b connected to the same power supply and the data wire comes from the nodemcu, then it's connected in series from the first to the third strip.
The "scan" mode work properly i think.
Thanks in advice and sorry for my english, i'll try my best!

Hi @sladaar
I never tried auch an amount of LEDs. Could be an issue with signal quality maybe. Does it work when you connect only 1m of LEDs?

Thats 15 m !!
How BIG  is your (stable) power supply ?
I think you need about 40 Amp !
Or try to power each strip at the begin. All that power can't flow to the end off that 15 m.
Does it twinkle to when you dim to say 25% ?

many thanks for the reply to both of you!
@toblum yes i tried, and the problem seems to be less dramatic! I mean, i tried with 5m only (i didn't want to cut the roll at the moment to try with 1m) and half strip seems static (i say "seems" because the colour it's not really static and solid, it slightly fades), the other half blinks and changes colour clearly.
I thought a signal loss too, but i don't know how to "stabilize" it!
@LeonVos Yeah i know it's a large amout of leds, i'm trying to put them on the ceiling!
The PS is rated 60A, i bought a bigger one to be sure it could manage all the strip.
I connected every strip (5m) to the PS, and only the data pin in series between each strip (5m).
Do you thinks it's better to "give" power even at the end of the 5m?
And sadly yes, it twinkles even with low brightness (i also thought that too muc current was hard to handle).
Ah, i even tried with a capacitor on the power line!
Thanks again, i really feel it must be a signal problem but i don't figure out how to protect it (i even tried with ferrite around the data cable...)

@sladaar Unfortunately I don'thave experience with big strips, but it does look like a signal or power issue. Also powering from the end might help, but you could have a look at the really informative Adafruide Neopixel Uber-Guide: https://learn.adafruit.com/adafruit-neopixel-uberguide/basic-connections

@toblum i'll try as soon as i can, thanks again for the help!


Throw if there are multiple IBinderMetadata associated with an action pa...

...rameter or a model property.

We decided not to do it because there are scenarios where ModelBinder attribute can be combined with  a From* attribute, ModelBinder attribute is used to provide the name in this case.

#1597


Ordering of rows critical

Hi there, thanks for such a great set of tools!
I wanted to report a possible bug or at least a bit of dangerous non-error throwing:
I created my own input maand made the MutationTypes column in the format A[C>G]A, etc.
SigProfilerAssignmentR's cosmic_fit() ran on this input matrix with no errors.
However, the signatures it provided were bizarre -- SBS1 didn't have spikes concentrated at CpG>TpG 3mers!
The activities were similarly strange and involved many more COSMIC signatures than I'd expect.
I tracked the issue down to my MutationTypes column being in a different row-order than the test data matrix.
This seems like a sneaky bug that could cause issues downstream for folks, or at least needs some big warning documentation somewhere, since the program ran 'correctly' and gave me activities and signature identities, and it was only because I know what SBS1 is supposed to look like that my suspicious were raised.
To fix it, I had to read in the test data and reorder my dataframe to match the order of rows in the test data. The results now make much more sense and SBS1 looks as it should:
inputMatrix <- inputMatrix[match(testData$MutationType, inputMatrix$MutationType),]

Hi @ab08028,
Thanks for reaching out. We will be looking to implement a way to handle input files in a future release.

The SigProfilerAssignment v0.1.2 update includes sorting now, which will sort users input by the contexts. Please update and reach out if you encounter any issues. Thanks!


Something wrong when training from scratch

Hello
I want to pre-train the model from the very beginning using your data. I've tried your classification command, but many bugs occur.
Does anyone successfully run the code from scratch?
BTW, how to perform mask in the code?

Hi, you have to be very specific with respect to what command you are running and what errors you are getting. A lot of people have successfully run the code from scratch, some getting better numbers than mine :) My answer about masking is in the thread of the separate Issue you have opened.

Thanks a lot, I think the dataset in the classification task does not match, but for the regression task it is fine. Thank you!


Add suppor for MSDN (Microsoft docs), Azure DevOps Icons and Trello

About
Both MSDN (Microsoft Developer docs) as well as Azure DevOps use custom fonts for styling icons. These icons were overridden by opendyslexic, which made it quite hard to differentiate between various actions you can do based on "not loaded icons".
(Update 2020-11-25): Trello was also not available for icons, trellicons provides their icons, this has been included as well.
I might have changed a file to much, please let me know if this is the case.
Examples:

[] next to the search bar in the docs:

https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics?view=netcore-3.1

[] for all icons in Azure DevOps

Checklist

[x] Wrote documentation on this page
[x] Formatted code

Impacted Areas in Application
None. Just prevents opendyslexic from replacing icons that it shouldn't.
Screenshots
Before

After

Excellent, megring now :)


Do patch-based building for SimpleConcat scenarios

Work-in-progress
This PR changes the internal build mechanism to be patch-based. This means that rebuilds will function as a set of operations applied to the previously constructed concatenation. This should likely have negligible impact on initial builds and should make most rebuilds faster as we will only have to read from the file system for files that have changed.
This will leverage the patch format from fs-tree-diff.
Tasks:

[x] Fix failing tests
[x] Add additional tests
[x] Cleanup code
[x] Document new approach
[x] Run benchmarks (from #101)

Some benchmark results:
FILE_COUNT=1000 DEPTH=3
# old approach
Average time for build over 5 iterations: 391.2ms
Average time for rebuild over 5 iterations: 311.4ms

# new approach
Average time for build over 5 iterations: 435.4ms
Average time for rebuild over 5 iterations: 274.4ms

FILE_COUNT=10 DEPTH=3
# old approach
Average time for build over 1000 iterations: 4.435ms
Average time for rebuild over 1000 iterations: 4.192ms

# new approach
Average time for build over 1000 iterations: 3.242ms
Average time for rebuild over 1000 iterations: 1.888ms

@stefanpenner updated with your suggestions. I'll try to re-run benchmarks sometime soon and hopefully squeeze whatever remaining perf we can from this approach.

Fixed an issue with the rebuild benchmarks (was invalidating way more than it should have been) and re-ran them:
SOURCE_MAPS=false FILE_COUNT=1000 DEPTH=3 yarn run bench

# new approach
Average time for build over 10 iterations: 422.6ms
Average time for rebuild over 10 iterations: 82.4ms

#old approach
Average time for build over 10 iterations: 322.3ms
Average time for rebuild over 10 iterations: 276.9ms

SOURCE_MAPS=false FILE_COUNT=10 DEPTH=10 yarn run bench

# new approach
Average time for build over 10 iterations: 11ms
Average time for rebuild over 10 iterations: 4.8ms

# old approach
Average time for build over 10 iterations: 15.3ms
Average time for rebuild over 10 iterations: 15.7ms

So rebuilds are faster across the board, but initial builds are slower when dealing with lots of files (which was kind of expected).

@trentmwillis how do the first iterations compare? e.g. when the FS is not yet in memory?

@stefanpenner re-ran with only the first iterations:
SOURCE_MAPS=false FILE_COUNT=1000 DEPTH=3 yarn run bench

# new approach
build: 387ms
rebuild: 85ms

# old approach
build: 300ms
rebuild: 282.5ms

SOURCE_MAPS=false FILE_COUNT=10 DEPTH=10 yarn run bench
# old approach
build: 22ms
rebuild: 17.5ms

new: rebuild: 85ms
old: rebuild: 282.5ms

this LGTM!

@stefanpenner I believe this should be good to land. I restored the concat-stats functionality.

released as v3.2.0


Enable pod checkpointing for kube-scheduler and kube-controller-manager

Right now, if all scheduler or controller manager pods gets killed, there is no way to recover the cluster. We should address that.
As a temporary workaround, we could enable pod-checkpointer to checkpoint controller manager and scheduler pod, so if kube-apiserver becomes unavailable, static copy is spawned of entire controlplane, so to ensure that it recovers.
However, in the long term, we should improve pod-checkpointer to be able to detect hen there is no scheduler or controller manager running and only recover those.

Implementation is super simple for this, but as part of the test suite, we could actually test scenarios where all controller mangers go down for example.


Only call cp_flush for those consumer paticipated in this cp.

If a consumer registered after a cp goes to flushing state, the on_switchover_cp cb will not be called for this consumer. In this CP, the ctx for this consumer is nullptr as the consumer never participant in the cp.
Previous code calling cp_flush for every consumer, leaving the duty of properly handle the nullptr returned by cp->context(svc_id) to consumer. However, none of the existing consumer handled the case.
As a result, we hit an occurance that Index generate a CP sololy, but before the cp fully flushed, other consumer registered and be called into cp_flush(), the replication service, doesnt properly handled the nullptr like below, get_repl_dev_ctx was called with this_ptr is null, it is dangerous as invalid memory get accessed.
This change is a breaking change for consumer like HO so bump up the version. HomeObject participant the CP as CLIENT, current implementation of HO always returns nullptr for on_switchover_cp which will result the CLIENT be excluded from cp_flush after this commit merged.
callstack:
...
code:
 auto cp_ctx = s_cast< ReplSvcCPContext* >(cp->context(cp_consumer_t::REPLICATION_SVC));
 ...
 auto dev_ctx = cp_ctx->get_repl_dev_ctx(repl_dev.get());

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 50.00000% with 4 lines in your changes missing coverage. Please review.

Project coverage is 66.50%. Comparing base (1a0cef8) to head (fbb8ad6).
Report is 107 commits behind head on master.

Files with missing lines
Patch %
Lines

src/lib/checkpoint/cp_mgr.cpp
66.66%
0 Missing and 2 partials :warning:

src/lib/replication/service/generic_repl_svc.cpp
0.00%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #616      +/-   ##
==========================================
+ Coverage   56.51%   66.50%   +9.98%
==========================================
  Files         108      109       +1
  Lines       10300    10867     +567
  Branches     1402     1485      +83
==========================================
+ Hits         5821     7227    +1406
+ Misses       3894     2928     -966
- Partials      585      712     +127

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

only index service(wb_cache) register_consumer at constructor, so can we change this line  to
hs()->cp_mgr().trigger_cp_flush(true /* force */).wait();

this will trigger a sync cp_flush. at that time, no other cp consumer is registered.

only index service(wb_cache) register_consumer at constructor, so can we change this line to
hs()->cp_mgr().trigger_cp_flush(true /* force */).wait();

this will trigger a sync cp_flush. at that time, no other cp consumer is registered.

This line will be changed with other PR.


fix: DEV-3603: Fix serialization calculation for regions so that values remain an exact match when compared

Got obsolete after https://github.com/HumanSignal/label-studio-frontend/pull/1148, these methods will be removed soon


Add run cell (and run cell advance) to right click prompt

Please consider adding the right click "run cell" and "run cell and advance" prompt to Spyder 3.0 - it's something I'm really missing in the current beta1!

Will do for beta2 :-)

Great! Oh and while I'm pushing my luck, what are the chances code folding will be in beta2??

Hopefully @goanpeca will add code folding for beta3 :-)

Ok, I will make a plan for code folding, I will need to break in the fixes that neet to be done before it happens.


opt DistributedDTSConsumerDemo

optimization DistributedDTSConsumerDemo

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.boxiao.wpl seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Three years now and I'm still put off

testing and signing and the whole caboodle is still as confusing and onerous as hell.

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

ID: daac3c60-f91f-4065-d0c5-9ce5c836cb71
Version Independent ID: 9d897adb-51b9-fbd5-727f-c896d41039dc
Content: Test your Windows app for Windows 10 S - UWP app developer
Content Source: windows-apps-src/porting/desktop-to-uwp-test-windows-s.md
Product: windows
GitHub Login: @normesta
Microsoft Alias: normesta

Thank you for the feedback. I'm sorry it's frustrating. Is there something in this specific topic that your finding misleading? Thx!


v0.9.1 renders dot but names the output .html

What happened:
[130] % rbac-tool viz --outformat dot
[alcide-rbactool] Namespaces included '*'
[alcide-rbactool] Namespaces excluded 'kube-system'
[alcide-rbactool] Connecting to cluster ''
[alcide-rbactool] Generating Graph and Saving as 'rbac.html'

[0] % head -2 rbac.html
digraph  {
        subgraph cluster_s296 {

What you expected to happen:
I expect to name a dot file .dot :-D
Looks like connected to issue 8
How to reproduce it (as minimally and precisely as possible):
rbac-tool viz --outformat dot
Anything else we need to know?:
Dot itself renders the file fine, it looks just like a file nameing error.
It would be also nice to see the used version at least in -h
Environment:

Kubernetes version (use kubectl version): irrelevant, happens with 1.15.11 and also 1.18.x

Fixed in v0.10.0


Better error reporting for box adaptation failures

Compiler version
main
Minimized code

import language.experimental.captureChecking

import scala.collection.mutable.ListBuffer

class MyContainer:
  private val consumers = ListBuffer.empty[() => Unit]

  private def execute(): Unit =
    for consumer <- consumers do
      consumer()

  // ... which, is equivalent to ...

  private def executeAlt(): Unit =
    consumers.foreach: (f: () => Unit) =>
      f()

Output
-- [E007] Type Mismatch Error: errmsg.scala:9:8 --------------------------------
 9 |    for consumer <- consumers do
   |        ^
   |Found:    (consumer: () => Unit) ->? Unit
   |Required: (consumer: box () => Unit) -><fluid> Unit
   |
   |Note that () => Unit cannot be box-converted to box () => Unit
   |since at least one of their capture sets contains the root capability `cap`
10 |      consumer()
   |
   | longer explanation available when compiling with `-explain`
-- [E007] Type Mismatch Error: errmsg.scala:15:23 ------------------------------
15 |    consumers.foreach: (f: () => Unit) =>
   |                       ^
   |Found:    (f: () => Unit) ->? Unit
   |Required: (f: box () => Unit) -><fluid> Unit
   |
   |Note that () => Unit cannot be box-converted to box () => Unit
   |since at least one of their capture sets contains the root capability `cap`
16 |      f()
   |
   | longer explanation available when compiling with `-explain`
2 errors found

Expectation
The crux of this error is that ListBuffer[box () => Unit] is mutable and therefore the type argument box () => Unit is invariant. Reach refinement is impossible, and the attempt to unbox its elements results in a box conversion error.

I am assuming that we do want to hide boxes completely from the user. In other words, boxes are internal constructs, and only for those who really curious about what is under the hood are details of boxes relevant.
The problem then becomes how these boxing errors can be translated to human-readable messages. It feels that the only thing that these boxing errors are really talking about is simply "scope violation". And it seems to be at least two kinds of scope violation issues:

Functions returning unnamable capabilities
Mutable states containing unnamable capabilities

Note that the second category extends beyond var definitions. For instance, this issue falls in this second category as well.
It will be interesting to see whether this two scenarios can be detected, and errors be emitted in a more human-readable manner than the status quo.


Fix 247

Ok, I found it :-)
I don't know if the ip of the container will be the same on every system?

This will not work: The IP is not equal on every container. Additionally a connect to port 2010 is just half of the way, as HmIP and some Addons are not started for sure, when the NginX proxy starts to listen on port 2010.

Okay, understood.
Is there any other way to get the startup status of the container?


Add block-based checkout support

Woocommerce block docs:
https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce-blocks/docs/third-party-developers/extensibility/checkout-payment-methods/payment-method-integration.md#server-side-integration
https://developer.woo.com/2022/07/07/exposing-payment-options-in-the-checkout-block/
Useful example:
https://sevengits.com/woocommerce-checkout-blocks/
Stripe's implementation:
https://github.com/woocommerce/woocommerce-gateway-stripe/pull/1467/files

@rramsden
Data is correctly being passed to the frontend via WC_Gateway_Komoju_Blocks#get_payment_method_data (see first screenshot), yet it still is saying that the PMs are incompatible with blocks. I've registered the PMs as compatible with blocks, so that's strange we're still getting that error and not another error. This person seems to have the same issue. Interestingly, window.wc.wcSettings.getSetting('incompatibleExtensions') shows nothing incompatible...🤔

@rramsden I wonder if we don't need to update multipay fields.js as well. Something like
const settings = window.wc.wcSettings.getSetting( 'my_custom_gateway_data', {} );
const label = window.wp.htmlEntities.decodeEntities( settings.title ) || window.wp.i18n.__( 'My Custom Gateway', 'my_custom_gateway' );
const Content = () => {
    return window.wp.htmlEntities.decodeEntities( settings.description || '' );
};
const Block_Gateway = {
    name: 'my_custom_gateway',
    label: label,
    content: Object( window.wp.element.createElement )( Content, null ),
    edit: Object( window.wp.element.createElement )( Content, null ),
    canMakePayment: () => true,
    ariaLabel: label,
    supports: {
        features: settings.supports,
    },
};
window.wc.wcBlocksRegistry.registerPaymentMethod( Block_Gateway );

Added this to a local copy of fields.js and the blocks compatibility warning disappeared. PMs are showing up, but they aren't formatted correctly and aren't selectable. Looks like we'll have to update multipay to be blocks compatible (and backwards compatible perhaps?)
function registerPaymentMethod(paymentMethod) {
    const settings = window.wc.wcSettings.getSetting(`${paymentMethod.title}_data`, {});
    const label = window.wp.htmlEntities.decodeEntities(settings.title) || window.wp.i18n.__(paymentMethod.title, paymentMethod.title);
    const Content = () => {
        return window.wp.htmlEntities.decodeEntities(settings.description || '');
    };
    const Block_Gateway = {
        name: paymentMethod.title,
        label: label,
        content: Object(window.wp.element.createElement)(Content, null),
        edit: Object(window.wp.element.createElement)(Content, null),
        canMakePayment: () => true,
        ariaLabel: label,
        supports: {
            features: settings.supports,
        },
    };
    window.wc.wcBlocksRegistry.registerPaymentMethod(Block_Gateway);
}

window.addEventListener('load', () => {
    paymentMethodData = window.wc.wcSettings.getSetting('paymentMethodData', {});
    Object.values(paymentMethodData).forEach((value) => {
        registerPaymentMethod(value);
    });
});


chef-solo: Unable to locate config file

Signed-off-by: Vivek Singh<EMAIL_ADDRESS>
Description

Fix config file path issue by invoking reconfigure first and then setup_application as define in the application.rb.
https://github.com/chef/chef/blob/85914b32f9010aacca472f93b13784825a67102f/lib/chef/application.rb#L64-L69

For non solo_legacy_mode chef-client run twice so fix this by moved the code inside the if block.

Related Issue

Fixed https://github.com/chef/chef/issues/8714
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Chore (non-breaking change that does not add functionality or fix an issue)

Checklist:

[ ] I have read the CONTRIBUTING document.
[x] I have run the pre-merge tests locally and they pass.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.
[ ] All commits have been signed-off for the Developer Certificate of Origin.

yeah looks like that broke quite a bit.
this isn't going to be that easy.
the way that chef-solo trampolines into chef-client is poor.
the best solution may be to abandon the Chef::Application::Solo class entirely and just have the binstubs for chef-solo invoke Chef::Application::Client with the appropriate flags set.  the needs to be done exceedingly carefully though to make sure there aren't any deltas between Solo and Client that might be a breaking change.

gonna close this one in favor of #8744 and subsequent PRs.


Antivirus detection

Windows Defender detects the latest release files as Trojan:Win32/Casdet!rfn
Photo:

This is very odd - I can also reproduce this at my end on the binaries on the release page.
I have re-compiled using the latest version of Go and that appears to have fixed the issue. I have re-uploaded them against the GitHub releases, so if you try the download again you should be OK.

thx. fixed now


ANSI don't show characters with punctuation

I have ANSI encoding, when I insert character č it is represent as: c in notepad2-mod. But in previous version of notepad2-mod it shown as č. In default windows-1250 encoding which is set for my Windows.
I set default encoding to UTF-8 and everything is ok now, but it's scary, that I write one character and it's shown different character :)
Windows 10 x64, notepad2-mod: 4.2.25 r985 (7529a6b)

See https://github.com/XhmikosR/notepad2-mod/issues/173


Create basic UI

Test:
-User should see a recording button in the main page.
-User should see a list of recorded audios in list page.
-User can switch from page to page by swiping or click on tabs.

Created basic template. Need to add recording button for Home page and template ListView for Recordings page.


Why isn't .DS_Store included?

Is there a reason this doesn't ignore .DS_Store files? I find myself adding them to the generated .gitignore every time. Is there something else suggested for these?

this project is based off of github/gitignore, it looks like they have platform specific gitignores, so you'd add the macOS gitignore as well, see https://github.com/github/gitignore/pull/2873.  I don't agree with this necessarily and would accept a pull request to add .DS_Store to any gitignore created.


String objects are rendered as separate characters (each character a separate text node)

Which package(s) are affected?
Lit Core (lit / lit-html / lit-element / reactive-element)
Description
When a string is actually a String, LitElement renders each character of the string as a separate text node, surrounded by comment nodes (3 nodes per character)
import {LitElement} from 'lit';
export class SimpleGreeting extends LitElement {
  render = () => (new String('Hello World'))
}
customElements.define("simple-greeting", SimpleGreeting)

The DOM generated for the above is:

I would expect new String("Hello World") to render the same as "Hello World".
We use String quite a lot for language translation.
 But that's not very convenient and makes the code less readable.
import {LitElement} from 'lit';
export class SimpleGreeting extends LitElement {
  render = () => (new String('Hello World').toString())
}
customElements.define("simple-greeting", SimpleGreeting)

Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Affected versions
Tested in lit-html 3.1.3 & 3.1.4 and lit-element 4.0.5 & 4.0.6
Browser/OS/Node environment
Browser: Chrome Version 125.0.6422.113 (Official Build) (64-bit)
OS: Windows 11 Version	10.0.22631 Build 22631

I get why it's doing it, because String is iterable, but is that really sensible outcome for String objects?
Having many single character text nodes must be less performant / use more memory than having a single text node containing the whole string.

Is there a good reason to use new String? It returns an object which is not a primitive and is not actually a string type (e.g. typeof new String('') === 'object'.
Probably because this is potentially confusing, this isn't generally recommended as MDN notes here.

We use String because we mark the result as isTranslated = true which you can't do on a string primitive.

Another workaround that could make this more ergonomic is to make a little wrapper:
import {html as baseHtml} from 'lit';

const html = (strings, ...values) => baseHtml(strings,
  ...values.map(value => value instanceof String ? value.toString() : value));

Detecting the type of value passed to a binding is a very hot code path for us, and I'm a bit afraid that adding another conditional will slow down all of lit-html itself. We'll have to think on this.

An aside: I would make render() a plain method. There's no reason for it to be an instance property. Instance properties are allocated per instance and use more memory than methods.
So instead of:
import {LitElement} from 'lit';
export class SimpleGreeting extends LitElement {
  render = () => (new String('Hello World'))
}
customElements.define("simple-greeting", SimpleGreeting)

write:
import {LitElement} from 'lit';
export class SimpleGreeting extends LitElement {
  render() { return new String('Hello World'); }
}
customElements.define("simple-greeting", SimpleGreeting);

Another workaround that could make this more ergonomic is to make a little wrapper:
import {html as baseHtml} from 'lit';

const html = (strings, ...values) => baseHtml(strings,
  ...values.map(value => value instanceof String ? value.toString() : value));

Thanks for that suggestion, that might give us a workable solution.

An aside: I would make render() a plain method. There's no reason for it to be an instance property.

That was just a terse example to demonstrate the problem, we use render() methods normally.


Question / bug about Github pages static references

Hi,
I've created a project using create react app but, after build and deploy to github-pages I've to update the references on index.html to the .js and .css files by removing the / before the "static" word:
Doesn't work: src="/static/js/main.4adfc675.js
It works: src="static/js/main.4adfc675.js
(the same with .css references)
Also, to load images I've to update the reference too in the minified JS file, this time by adding the bar before static word:
Doesn't work: {e.exports=n.p+"static/media/logo.5d5d9eef.svg"}
It works: {e.exports=n.p+"/static/media/logo.5d5d9eef.svg"}
Any ideas about this behavior?
Project working with changes:
https://ivanbtrujillo.github.io/serverless-mern-client/
The repo:
https://github.com/ivanbtrujillo/serverless-mern-client
Thanks guys!

Have you had a chance to read our section about github pages?

After read other issues solved by @gaearon I arrived to the "Building for relative path" section:
https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#building-for-relative-paths
And changing the homepage by "." in package.json and running a build and then a deploy solves the problem.
I think that this part of the readme should be included on the GHPages sections for singlepage applications when describes that you have to add the following:
Open your package.json and add a homepage field:
  "homepage": "https://myusername.github.io/my-app",
Create React App uses the homepage field to determine the root URL in the built HTML file.

But for SPA you just need to add the dot. Maybe is a good idea to add a reference to the "Building for Relative path" section here for people that are building single page applications.
Thanks!

When you run npm run build, it prints the relevant instructions about adding homepage.
Does this help? Were they confusing?
I probably wouldn't recommend "homepage": "." in most cases. This isn’t what the docs suggest—they suggest to add a specific homepage field, e.g. "https://myusername.github.io/my-app".
"homepage": "." is a bad option for single-page apps with client-side routing because loading myapp.com/todos/42 will try to load JS from myapp.com/todos/static/js rather than myapp.com/static/js.
This is not a big issue for GH Pages (which doesn’t support proper client-side routing) but worth keeping in mind.


I have a problem

Please note we will close your issue without comment if you delete, do not read or do not fill out the issue checklist below and provide ALL the requested information. If you repeatedly fail to use the issue template, we will block you from ever submitting issues to Homebrew again.
when running brew doctor is presenting the following error requesting to report.
Error: uninitialized constant #Class:0x000000010133d6d0::MinimumMacOSRequirement
Did you mean?  MaximumMacOSRequirement
Please report this bug:
https://docs.brew.sh/Troubleshooting
/usr/local/opt/nanopolish/.brew/nanopolish.rb:19:in <class:Nanopolish>' /usr/local/opt/nanopolish/.brew/nanopolish.rb:1:in load_formula'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:26:in module_eval' /usr/local/Homebrew/Library/Homebrew/formulary.rb:26:in load_formula'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:46:in load_formula_from_path' /usr/local/Homebrew/Library/Homebrew/formulary.rb:95:in load_file'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:86:in klass' /usr/local/Homebrew/Library/Homebrew/formulary.rb:82:in get_formula'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:275:in factory' /usr/local/Homebrew/Library/Homebrew/formulary.rb:316:in rescue in from_keg'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:312:in from_keg' /usr/local/Homebrew/Library/Homebrew/formulary.rb:289:in from_rack'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1412:in block in installed' /usr/local/Homebrew/Library/Homebrew/formula.rb:1410:in each'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1410:in flat_map' /usr/local/Homebrew/Library/Homebrew/formula.rb:1410:in installed'
/usr/local/Homebrew/Library/Homebrew/diagnostic.rb:720:in check_missing_deps' /usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:46:in block in doctor'
/usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:38:in each' /usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:38:in doctor'
/usr/local/Homebrew/Library/Homebrew/brew.rb:87:in `'

$ brew config
HOMEBREW_VERSION: 1.7.2
ORIGIN: https://github.com/Homebrew/brew
HEAD: b119591c6963bff320501f52f9029e4862c00e97
Last commit: 2 weeks ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 371a5c80b68e678371b6defb817c553d69218403
Core tap last commit: 4 hours ago
HOMEBREW_PREFIX: /usr/local
CPU: quad-core 64-bit ivybridge
Homebrew Ruby: 2.3.7 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/bin/ruby
Clang: 7.3 build 703
Git: 2.7.4 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 7.43.0 => /usr/bin/curl
Java: 1.8.0_91, 1.6.0_65-b14-468
macOS: 10.11.6-x86_64
CLT: <IP_ADDRESS>.1.1480973914
Xcode: 7.3.1
XQuartz: 2.7.11 => /opt/X11

$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:
  info
  infokey
  install-info
  makeinfo
  texi2dvi
  texi2pdf
  texindex

Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
  echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

Warning: Your Xcode (7.3.1) is outdated.
Please update to Xcode 8.2.1 (or delete it).
Xcode can be updated from the App Store.

Error: uninitialized constant #<Class:0x0000000101a26a78>::MinimumMacOSRequirement
Did you mean?  MaximumMacOSRequirement
Please report this bug:
  https://docs.brew.sh/Troubleshooting
/usr/local/opt/nanopolish/.brew/nanopolish.rb:19:in `<class:Nanopolish>'
/usr/local/opt/nanopolish/.brew/nanopolish.rb:1:in `load_formula'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:26:in `module_eval'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:26:in `load_formula'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:46:in `load_formula_from_path'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:95:in `load_file'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:86:in `klass'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:82:in `get_formula'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:275:in `factory'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:316:in `rescue in from_keg'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:312:in `from_keg'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:289:in `from_rack'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1412:in `block in installed'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1410:in `each'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1410:in `flat_map'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1410:in `installed'
/usr/local/Homebrew/Library/Homebrew/diagnostic.rb:720:in `check_missing_deps'
/usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:46:in `block in doctor'
/usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:38:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/doctor.rb:38:in `doctor'
/usr/local/Homebrew/Library/Homebrew/brew.rb:87:in `<main>'


Manually writing the Arabic date in the datePicker is not working

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Call showDatePicker with locale set to 'ar'
Switch to input field
Write the date manually in Arabic letters

Expected results
I expect to that when entering the date in the input field in Arabic it will accept it.
Actual results
The actual is it shows an error saying "تنسيق غير صالح" , which something like "Invalid format".
Note that choosing a date from the picker then switching back to input field mode will accept the value which is really strange.
There's no difference between these two values:

١٦/١١/٢٠٢٣ (Accepted)
٢٠٢٣/١١/١٦ (Not accepted)

Also, It would be great if English numbers (1,2,3,4,..) were allowed, since most keyboards don't have the Arabic numbers.
Code sample
Code sample
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      localizationsDelegates: const [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const [Locale('ar')],
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const HomePage(),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
            onPressed: () => showDatePicker(
                  context: context,
                  locale: const Locale('ar'),
                  firstDate: DateTime(2018),
                  lastDate: DateTime.now(),
                ),
            child: const Text('Click me')),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[!] Flutter (Channel stable, 3.16.0, on Linux Mint 21.2 5.15.0-88-generic,
    locale en_US.UTF-8)
    • Flutter version 3.16.0 on channel stable at
      /home/hasan/development/flutter
    ! Warning: `dart` on your path resolves to
      /home/linuxbrew/.linuxbrew/Cellar/dart/3.2.0/libexec/bin/dart, which is
      not inside your current Flutter SDK checkout at
      /home/hasan/development/flutter. Consider adding
      /home/hasan/development/flutter/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db7ef5bf9f (2 days ago), 2023-11-15 11:25:44 -0800
    • Engine revision 74d16627b9
    • Dart version 3.2.0
    • DevTools version 2.28.2
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
    • Android SDK at /home/hasan/Android/Sdk
    • Platform android-34, build-tools 33.0.2
    • Java binary at: /home/hasan/development/android-studio/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build
      11.0.15+0-b2043.56-8887301)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.0-1ubuntu1.1
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2022.1)
    • Android Studio at /home/hasan/development/android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      11.0.15+0-b2043.56-8887301)

[✓] VS Code (version 1.84.2)
    • VS Code at /usr/share/code
    • Flutter extension version 3.76.0

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Linux Mint 21.2
      5.15.0-88-generic
    • Chrome (web)    • chrome • web-javascript • Google Chrome 119.0.6045.159

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

! Doctor found issues in 1 category.

Thanks for filing this.
I see the issue seems to occur when you add a space after the date when inputting your date. The space isn't added when you select the date from the calendar. You can try copying ١٦/١١/٢٠٢٣ and pasting directly in your app to see if this still reproduces on your end.
https://github.com/flutter/flutter/assets/53122008/601dabbd-0749-43fd-a8a2-5fa9413c4c35
flutter doctor -v

[!] Flutter (Channel stable, 3.16.0, on macOS 14.0 23A344 darwin-arm64, locale
    en-NG)
    • Flutter version 3.16.0 on channel stable at
      /Users/damilolaalimi/sdks/flutter
    ! Warning: `dart` on your path resolves to
      /opt/homebrew/Cellar/dart/3.1.5/libexec/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/damilolaalimi/sdks/flutter.
      Consider adding /Users/damilolaalimi/sdks/flutter/bin to the front of your
      path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db7ef5bf9f (4 days ago), 2023-11-15 11:25:44 -0800
    • Engine revision 74d16627b9
    • Dart version 3.2.0
    • DevTools version 2.28.2
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/damilolaalimi/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/damilolaalimi/Library/Android/sdk
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

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

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

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

[!] Android Studio (version unknown)
    • Android Studio at /Users/damilolaalimi/Downloads/Android Studio
      Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to determine Android Studio version.
    • Java version OpenJDK Runtime Environment (build
      17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] VS Code (version 1.83.1)
    • VS Code at /Users/damilolaalimi/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.50.0

[✓] Connected device (4 available)
    • Damilola’s iPhone (mobile) • 00008110-001964480AE1801E            • ios
      • iOS 17.1.1 21B91
    • iPhone 15 (mobile)         • F17D2919-6D61-4295-8408-1719692FE958 • ios
      • com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
    • macOS (desktop)            • macos                                •
      darwin-arm64   • macOS 14.0 23A344 darwin-arm64
    • Chrome (web)               • chrome                               •
      web-javascript • Google Chrome 119.0.6045.159

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

! Doctor found issues in 2 categories.

Thanks for filing this. I see the issue seems to occur when you add a space after the date when inputting your date. The space isn't added when you select the date from the calendar. You can try copying ١٦/١١/٢٠٢٣ and pasting directly in your app to see if this still reproduces on your end.
Simulator.Screen.Recording.-.iPhone.15.-.2023-11-20.at.10.56.52.mp4
flutter doctor -v

When I copy your date ١٦/١١/٢٠٢٣, it works.
But It is not because of the spacing, I am sure that there's no spacing in my case.
I found some details maybe it can help:
Note 1:  ١٦/١١/٢٠٢٣ & ٢٠٢٣/١١/١٦ They seem identical (and they are) but when I try to paste both of them in dartPad they look different. Please check the below screenshot.
Note 2: ٢٠٢٣/١١/١٦ is wrote using an Arabic keyboard which the date picker does not accept.
Note 3 : ١٦/١١/٢٠٢٣ is copied from your text and date picker accept this

Thanks for your detailed response.
I observed that when I pick a date from the date picker, click the edit icon and copy the text, I have the second which is accepted (see video below).

Video 1
Video 2

Copying the text I got from selecting the date from the DatePicker seems to work fine.
Using Google translate, this seems to be a date formatting issue, hence this might be the expected behaviour (kindly check this out)
https://github.com/flutter/flutter/assets/53122008/501a2e8a-c16c-4a9a-a226-215409de9592

Thanks for your detailed response. I observed that when I pick a date from the date picker, click the edit icon and copy the text, I have the second which is accepted (see video below).
Video 1	Video 2
Screen.Recording.2023-11-21.at.08.50.56.mov
Screen.Recording.2023-11-21.at.08.53.03.mov
Copying the text I got from selecting the date from the DatePicker seems to work fine. Using Google translate, this seems to be a date formatting issue, hence this might be the expected behaviour (kindly check this out)
Screen.Recording.2023-11-21.at.09.03.23.mov

Thank you for your response.
Actually I am not sure how the google translator is doing this and why.
But I tried many Arabic keyboards and none of them was accepted by the date picker text field.
I am not sure if there's a specific keyboard that works in this specific case.
I think this shouldn't be the expected behavior because users cannot enter the date manually in Arabic.

Thanks for your response. Per your last comment, I'll be labelling this for more insights from the team.
Thank you!

Code units of valid string in first comment:
[1633, 1638, 8207, 47, 1633, 1633, 8207, 47, 1634, 1632, 1634, 1635]
Code units of invalid string in first comment:
[1634, 1632, 1634, 1635, 47, 1633, 1633, 47, 1633, 1638]
Fails at least because DateFormat is derived from “d/M/y” I’d say, also String gets swapped (see SwappingExample) during displaying of String? Numerals are always read left to right in Arabic?
It being day-month-year also leads me to believe that the hintText is maybe swapped by mistake in material_ar.arb -> dateHelpText?
[1633, 1634, 47, 1633, 1634, 47, 1633, 1641, 1641, 1636]
Fails too, see patterns needed for “/“ in _parse of DateFormat (below at DateFormatFields)
(Extracted in validateDate of _inputDatePickerFormFieldState)
I don’t know enough about how exactly Arabic dates are formatted.
Is there normally this 8207 (https://en.wikipedia.org/wiki/Right-to-left_mark)?
Could not reproduce the added 8207 in any Editor I tried.

DateFormatFields
DateFormat seems to expect there to be 8207:
DateFormat DateFormatFields
locale ar
pattern: d codeUnits: [100]
pattern: / codeUnits: [8207, 47]
pattern: M codeUnits: [77]
pattern: / codeUnits: [8207, 47]
pattern: y codeUnits: [121]

locale en
pattern: M codeUnits: [77]
pattern: / codeUnits: [47]
pattern: d codeUnits: [100]
pattern: / codeUnits: [47]
pattern: y codeUnits: [121]

SwappingExample
Tried what happens if you remove 8207 from codeUnits:
ش١٩/٦/٢٠٢٤ص
[1588, 1633, 1641, 8207, 47, 1638, 8207, 47, 1634, 1632, 1634, 1636, 1589]
ش١٩/٦/٢٠٢٤ص
[1588, 1633, 1641, 47, 1638, 47, 1634, 1632, 1634, 1636, 1589]

(Output from DartPad)
Same swapping as happens for invalid String.

If it is correct for DateFormat to expect 8207, whose responsibility is it to add the 8207 codeUnit?
Should it be done in intl package itself?
Or should user of localizations.parseCompactDate() handle that? (Doesn’t seem reasonable, since it kind of defeats the purpose of having the internalization be handled outside of App logic, right? (See ًWorkaround, accepts typed string for me))
Seems to me, if during typing it gets swapped for displaying, but underlying String stays the same, the parsing of the date in DateFormat should work without the 8207s?

Workaround
Updated _parseDate In _InputDatePickerFormFieldState
DateTime? _parseDate(String? text) {
    final MaterialLocalizations localizations = MaterialLocalizations.of(context);

    if (text != null && Localizations.localeOf(context).languageCode == 'ar') {
      final List<int> tempCodeUnits = <int>[...text.codeUnits];
      for (int i = tempCodeUnits.length -1 ; i>0;i--){
        if (tempCodeUnits[i] == 47) {
          if (i == 0) {
            tempCodeUnits.insert(0, 8207);
          }
          else {
            if (tempCodeUnits[i-1] != 8207) {
              tempCodeUnits.insert(i, 8207);
            }
          }
        }
      }
      text = String.fromCharCodes(tempCodeUnits);
    }

    return localizations.parseCompactDate(text);
  }


Make empty search field on image / document index return all results

Fixes #9953
(Ended up going down a bit of a rabbit-hole fixing the tests for the images index view - previously most of them were only testing against an empty set of results, which obviously isn't very representative... Notably, checking page.object_list.query on a Paginator page object that has been iterated over has not worked since Django 1.6, thanks to https://github.com/django/django/commit/31f6421b134e4e83a459d2faa1009b33fefd6276.)
Also manually checked the other views that use wagtail.admin.forms.search.SearchForm to confirm that they are unaffected by this issue.

Merged (with the suggested addition to the document test) in bd3b2b54211159ca9397de7d9cf4479cae04b8de (main) and 3f56aca0b19d345739a68c3dd139cd2c9b4ae1f0 (stable/4.2.x).


Re-enable Chrome testing on CI

I'm about to send a PR to disable it as it's been very flaky and we haven't had the time to bottom it out. We should track down the issue. Some example failing logs are:

https://travis-ci.org/rustwasm/wasm-bindgen/jobs/432608027
https://travis-ci.org/rustwasm/wasm-bindgen/jobs/431715986
https://travis-ci.org/rustwasm/wasm-bindgen/jobs/430725910
https://travis-ci.org/rustwasm/wasm-bindgen/jobs/430312532

It's unclear whether this is a bug in our webdriver implementation or in Chrome itself...

Is this still relevant since #1300?

This still yes, yeah, in the sense that we're still only running tests in headless Firefox, not in Chrome yet.


feat: add performance tables

Summary by Sourcery
Add scripts to generate and collect performance tables for various models, including human-scored questions, and produce LaTeX tables for performance metrics.
New Features:

Introduce scripts to generate performance tables from model scores, including human-scored questions.

Enhancements:

Add functionality to collect and process performance scores for various models, including human baseline comparisons.

Documentation:

Generate LaTeX tables for performance metrics, including calculation, knowledge, reasoning, intuition, and difficulty levels.

This is the performance table for the entire dataset

And this is the one for the human subset.
Tell me if you think something should be changed

I like it!

I have now removed all the additional processing of the latex_table remaining only the table itself (no caption or re-sizing).
Also, I added sorting so the table will be sorted alphabetically. I did not change how to collect the results because that little adjustments can be done afterwards

thanks! I'll merge now and try to massage it into a good place

I'm adding them into Snakemake at the moment. Then they will be always rerun if there is a change


Change diagnostic callables to operations

Some diagnostic callables were written as functions when they are not pure functions, so should instead be operations.

DumpMachine can be a function for the same reason Message can.

DumpMachine can be a function for the same reason Message can.

Whoops... I thought I had put that back before I pushed. You are right, that one shouldn't be changed.


Create Robochemist.md

Hi Zeeshan!
Thank you for your interest in our program! The Robonomics team has started reviewing the proposal, stay tuned.

Hi Zeeshan!
Here are the comments from the Robonomics team on the proposal:

The role of Robonomics Network in the project is not entirely clear. In the sense, why is Robonomics needed here, what is its true advantage for such a project? In item 2 in the Project Overview, this point is described in too general terms to make a final conclusion of applicability.
In addition to the previous question, the team thinks that right now the proposal has poorly described technical details, especially in the part of Robonomics. Of course, before the start of development, it is difficult to describe all the nuances, so the team proposes to correct the proposal as follows: split the project into 4-5 stages (starting with system design) and prepare a delivery map of the grant results. This, among other things, will help to correctly develop a plan of the technical components and its connection with Robonomics.
Also, the team proposes to split funds according to these stages, and receive them after the implementation of each of stages.
According to the schedule, you plan to complete the project in about 4 months. It seemed to the team that this might not be enough. Could you elaborate more on how you plan to finish the project in such a short time? Do you have any drafts or preparations? If yes, then this point should also be reflected in the proposal. Also, if possible, could you share links to your previous projects or repositories with projects of your colleagues?
The team proposes to change the preferred cryptocurrency from DAI to XRT, if possible. Then it will even be easier to withdraw crypto (for example, you can exchange XRT on Huobi and withdraw there). Please, tell us what you think about this option.

Hi Zeeshan!
Do you still want to update the proposal? Maybe you need more time? If so, I will close the request and you can return to the grant program later, and re-send it.

We got engaged in other project.
Will connect back after some time and will reopen the request soon.
Thanks to the team for your time, see you soon.


Update documentation for tags in summary module

Description
Current documentation looks as follows https://github.com/UnitTestBot/UTBotJava/blob/main/docs/summaries/CustomJavadocTags.md
Actually, some new tags were added since the last update of this file, mostly related to artificial errors processing.
We need to synchronize the documentation with an actual implementation.

FYI @olganaumenko

Let's really take this issue into account after we support Spring summarization.


Remove cplusplus.com

cplusplus.com has a bad reputation in the community for sharing misinformation and bad practices.
On this topic:

https://stackoverflow.com/questions/6520052/whats-wrong-with-cplusplus-com
https://www.reddit.com/r/learnprogramming/comments/1maa87/why_is_cpluspluscom_bad/
https://meta.stackexchange.com/questions/194788/links-being-changed-to-cppreference-com

I like the idea.


docs: 文档校正，主要涉及属性：collapsedRows、calcTotals、calcSubTotals 和 width、height

👀 PR includes

✨ Feature

[ ] New feature

🎨 Enhance

[ ] Code style optimization
[ ] Refactoring
[ ] Change the UI
[ ] Improve the performance
[X] Type optimization

🐛 Bugfix

[X] Solve the issue and close #1158
[X] Solve the issue and close #1122

🔧 Chore

[X] Test case
[X] Docs / demos update
[ ] CI / workflow
[ ] Release version
[ ] Other ()

📝 Description
🖼 Screenshot

Before
After

❌
✅

🔗 Related issue link

🔍 Self Check before Merge

[ ] Add or update relevant Docs.
[ ] Add or update relevant Demos.
[ ] Add or update relevant TypeScript definitions.

:tada: This PR is included in version @antv/s2-v1.12.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version @antv/s2-react-v1.11.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Blur Filter

The v.3 BlurFilter looks very different from the v.2 one. It looks less blurry and more like the image is displayed multiple times and slightly offset. Is it just me?

I noticed this as well

It is definitely different: #1654.

Yes, I played with both blur and passes to try to get the desired blur. At low blur, it gives a nice soft edge, but as you increase the blur distance, it starts to look like the image is multiplied and slightly offset. (I also noticed this multiplied image in the v.3 blur example: http://pixijs.github.io/examples/index.html?s=filters&f=blur-filter.js&title=Blur&v=v3.0.2)
I'm using the blur filter to generate smoke using blurred circles and I need very soft edges for the effect to work--like the Feather filter from Adobe Illustrator. It's one of the few things that broke with the move to v.3. I'll continue to play with it and see if I can get it working again.
Otherwise I'm loving v.3 :)

You can also use the BlurXFilter() and BlurYFilter() like the old BlurFilter wrapped previously for you:
smoke.filters = [new PIXI.filters.BlurXFilter(), new PIXI.filters.BlurYFilter()];

And that should have the same behavior as v2.

Hmm, applying BlurXFilter() and BlurYFilter() like the old BlurFilter doesn't seem to work...

Thanks, switching to the old style filter worked better


make failure:  Cannot compile rad/main.scm because  cannot open file

[michel@twppc64:~/work]
$git clone https://github.com/aoh/radamsa.git
$cd radamsa/
$make
...
cd owl-lisp-0.1.10 && make bin/vm
make[2]: Entering directory '/mnt/disk2/michel/work/radamsa/owl-lisp-0.1.10'
# make a vm without a bundled heap
echo "unsigned char *heap = 0;" > c/vm.c
cat c/ovm.c >> c/vm.c
cc -Wall -O2 -o bin/vm c/vm.c
c/vm.c: In function 'boot':
c/vm.c:1016:4: warning: call to function 'vm' without a real prototype [-Wunprototyped-calls]
    return vm(entry, oargs);
    ^
c/vm.c:148:6: note: 'vm' was declared here
 word vm();
      ^
make[2]: Leaving directory '/mnt/disk2/michel/work/radamsa/owl-lisp-0.1.10'
make[1]: Leaving directory '/mnt/disk2/michel/work/radamsa'
owl-lisp-0.1.10/bin/vm owl-lisp-0.1.10/fasl/init.fasl -O2 -o radamsa.c rad/main.scm
Cannot compile rad/main.scm because  cannot open file
Makefile:36: recipe for target 'radamsa.c' failed
make: *** [radamsa.c] Error 2

This is a big endian issue (at least for ppc64 that is BE)
I verified that no such failure for x86_64 or ppc64le that are LE.

Thanks. I haven't had access to LE machines for a while, so quite possbile that endianess issues have turned up at some point.
Could you also attach the last few lines of strace owl-lisp-0.1.10/bin/vm owl-lisp-0.1.10/fasl/init.fasl -O2 -o radamsa.c rad/main.scm? Seems odd that owl can build itself, but not radamsa.

BE, even. Bug reproduced in Debian running on Qemu/PPC.

There was indeed an endianess bug in tag check when opening files. Fix is now in owl, but I don't have time to check it now, since the build takes a long time on my emulated machine. If you can, you can verify the fix as follows:
$ cd radamsa
$ git clone https://github.com/aoh/owl-lisp.git
$ cd owl-lisp
$ make
$ cd ..
$ owl-lisp/bin/ol -O2 -o radamsa.c rad/main.scm
$ make
$ echo 'HAL 9000' | bin/radamsa -o tmp/rad-%n.hal -n 10 -v && echo ok

Build passed in vm. Assuming fixed. Reopen if the issue persists.
Thanks for the bug.

Thank you for the correction.
I verified on my ppc64 guest the fix with your detailed steps and that succeeded.
My only small comment is that there are still compilation warning, but not a critical problem.
...
# compile the real owl repl binary
cc -Wall -O2 -o bin/olp c/ol.c
c/ol.c: In function 'boot':
c/ol.c:24665:4: warning: call to function 'vm' without a real prototype [-Wunprototyped-calls]
    return vm(entry, oargs);
    ^
c/ol.c:23797:6: note: 'vm' was declared here
 word vm();
      ^
CC=cc tests/run all bin/olp

Vm() prototype now has argument types in owl, so the warning won't turn up in the next release.


Update experiments-msmarco-passage.md

Replicated msmarco passage experiment with identical results.
monoBERT:

monoT5

Wall time:

monoBERT: 3h1min
monoT5: 4h7min

Hardware:

GeForce GTX 960M
Intel i7 6700

Software:

Python 3.7
PyTorch 1.1
CUDAToolkit 9.0

Thanks a lot @justinborromeo!


v1.11 Backports 2023-04-03

[ ] #24484 (@jschwinger233)

Once this PR is merged, you can update the PR labels via:
for pr in 24484; do contrib/backporting/set-labels.py $pr done 1.11; done

or with
make add-labels BRANCH=v1.11 ISSUES=24484

/test-backport-1.11

/test-backport-1.11

/test-1.18-4.9

/test-1.20-4.9


1 Connection per query vs Multiple Queries per 1 connection

Environment
HikariCP version: 2.4.6
JDK version     : 1.8.0_111
Database        : PostgreSQL
Driver version  : 9.5.2

Hi Brett, I got a newbish question, is it preferred to obtain a connection and run multiple queries, or is it preferred to run 1 query per connection?
For example:
1 connection for multiple queries:
try (Connection conn = dataSource.getConnection()) {
    List<ItemRecords> items = DSL.using(conn)
        .select()
        .from(ITEMS)
        .fetchInto(ItemsRecord.class);
    items.forEach((item) -> {
        DSL.using(conn).delete(ITEMS).where(ITEMS.ID.eq(item.getId())).execute();
    });
}

Or 1 connection per query:
List<ItemRecords> items = new ArrayList();
try (Connection conn = dataSource.getConnection()) {
    items = DSL.using(conn)
        .select()
        .from(ITEMS)
        .fetchInto(ItemsRecord.class);
}

items.forEach((item) -> {
    try (Connection conn = dataSource.getConnection()) {
      DSL.using(conn).delete(ITEMS).where(ITEMS.ID.eq(item.getId())).execute();
    }
});

I'd assume the latter is preferred so that the system can interweave other incoming web requests and avoid being blocked a long list of queries. I'm also assuming multiple calls to getConnection() is cheap.
Thank you!

@KaoruDev There is no clear answer.  In terms of performance, multiple queries on a single connection  will perform better.  A single query per connection will be more expensive.
This is not because connection acquisition from the pool is expensive; from the perspective of the pool itself, you can obtain and return connections at a rate of over 50,000 per millisecond.  However, with respect to the database, each "close" of the connection will require either a commit or rollback operation.
I don't know which framework you are using (not sure what DSL is), but in terms of looping over the items and issuing deletes, you will be much better off taking advantage of JDBC batch operations.
In terms of pure JDBC, this code...
try (Connection conn = dataSource.getConnection();
      PreparedStatement stmt = conn.prepareStatement("DELETE FROM item WHERE id=?")) {
  items.forEach((item -> {
    stmt.setInt(1, item.getId());
    stmt.addBatch();
  }
  stmt.executeUpdate();
  conn.commit();
}

Will perform 10-100x faster than deleting each item individually.
So, if you want to enable more "concurrency", you can certainly perform the two operations, "select" and "batch delete" on two separate connections, while retaining performance.  But I would not recommend performing each "delete" operation on its own connection.

However, with respect to the database, each "close" of the connection will require either a commit or rollback operation.

👏 this is what I was assuming was going on under the hood but wasn't 100% clear on, thank you very much for the help! Really appreciate it 🎉


A large amount goes beyond the Amount field

If the sum is too large, then the value gets out of the Amount field. Reproducible on the product:
https://user-images.githubusercontent.com/69896204/135230025-62ce21a4-2137-47cc-9fcb-2b38290e3f7f.mov

commit 0950373 / v.0.9.4

Reproducible when creating an Invite link on the current development branch Commit 5bf236e:

Maybe, this one @0.08 at Send/Receive popups can be also fixed:


No audio when playing mkv files

If you play bigger mkv files, there is no audio. On external player like PotPlayer is working perfectly

You need to use a web friendly format/container:
https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers
The best support at the moment would be mp4.

Is there a standard API/Util within Plyr for verifying if it will play the format with your current browser?


Count Number Of Paths To Reach From 1 To N Problem

This Counting Paths problem was asked in Google Online Coding Challenge.
Added its solution in Java.

Followed your instructions😇🙂

Please add the hacktoberfest-accepted tag/label.


[TST/BUG] System compatibility, test cases failed on window and macos

Closes #1143.
Well, there has another problem which is system compatibility.
Base on https://github.com/pyjanitor-devs/pyjanitor/actions/runs/2897129896

Ubuntu all passed.
Window all failed, need to ignore dtype
MacOS all failed, data generation slowly

Window:
Problems are easily fixed on window. All failed on dtype.
____________________________ test_extension_array _____________________________
[gw0] win32 -- Python 3.10.5 C:\Miniconda3\envs\test\python.exe

    def test_extension_array():
        """Test output on an extension array"""
        others = dict(
            id=pd.Categorical(
                values=(2, 1, 1, 2, 1), categories=(1, 2, 3), ordered=True
            ),
            year=(2018, 2018, 2019, 2020, 2020),
            gender=pd.Categorical(("female", "male", "male", "female", "male")),
        )

        expected = expand_grid(others=others).droplevel(axis=1, level=-1)
        others = [pd.Series(val).rename(key) for key, val in others.items()]

        func = lambda x, y: pd.merge(x, y, how="cross")  # noqa: E731
        actual = reduce(func, others)
>       assert_frame_equal(expected, actual)
E       AssertionError: Attributes of DataFrame.iloc[:, 1] (column name="year") are different
E
E       Attribute "dtype" are different
E       [left]:  int32
E       [right]: int64

tests\functions\test_expand_grid.py:345: AssertionError

MacOS:
_____________________________ test_default_length ______________________________
[gw0] darwin -- Python 3.10.5 /Users/runner/miniconda3/envs/test/bin/python

    @given(df=df_strategy())
>   def test_default_length(df):
E   hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.00 seconds (7 invalid ones and 1 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters).
E   See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test.

tests/functions/test_case_when.py:79: FailedHealthCheck

@Zeroto521 I observe that sometimes too when running on Mac on the docket installation, I suggest we turn off the health checks - https://github.com/HypothesisWorks/hypothesis/issues/2195#issuecomment-557451955

So we just drop hypothesis plugin totally? Or remove hypothesis decorators from these failed test cases?

@Zeroto521 let's not drop Hypothesis plugin; is too valuable. We can turn off the health check for Mac with HealthCheck.too_slow decorator, or add @settings(deadline=None) decorator ... this should allow the tests to run without any erroring out. For the above test that failed, I have added a decorator to it in this PR #1158 , which should fix the healthcheck error


Fixing xws for upsilon and tie interceptor

@guidokessels is worried these xws names have been this way too long and we'll break compatibility: https://github.com/guidokessels/xwing-data2/pull/213#pullrequestreview-193486989

That's what I've been saying for months as well. I figure we are about to go through a bunch of changes due to Wave 3, so this might be a good time to fix?

We'll need to coordinate the change with other XWS producers and consumers.

Thing is, most consumers are already handling this problem, because yasb exports these corrected xws values already.

Oh, I thought they were also using the wrong ones. Does anyone else?

Not sure, take a poll in 'tech' chat? 👍

Yeah, that sounds like a good idea.


Add a global per-tree context that is shown above every workspace in that tree

This would enable us to specify what information people are allowed to use (e.g. that they can look up things on Wikipedia, but not on other web pages). It could also be used to specify norms that should affect behavior in particular trees (e.g. always produce an intuitive answer first before creating subquestions).

Should be able to use links in that context.

We could display the experiment metadata above each workspace? This would be per-experiment instead of per-tree, but maybe is what we want anyway.

Is this solved as we now have the TL scratchpad shown above questions?


[CARBONDATA-1128] Add direct string encoding for short string column

For short string columns less than 128 bytes, add a new encoding to improve compression and loading speed.
DirectStringCodec encode the input column by two array:

one for string content, stored in data page of DataChunk2
another for string length, stored in EncoderMeta in DataChunk2
They are compressed separately by compressor.

I have tested using TPC-H generated data (1GB)

For high cardinality columns (L_COMENT in LINEITEM table, distinct value is 4580667)
CREATE TABLE LINEITEM (
L_COMMENT		VARCHAR(44)
)
STORED BY 'carbondata'

Use direct string encoding
loading time: 12496 ms
size: 42M

Use existing encoding
loading time: 12230 ms
size: 45M

For low cardinality columns (L_SHIPMODE in LINEITEM table, distinct value is 7)
CREATE TABLE LINEITEM (
L_SHIPMODE		CHAR(10)
)
STORED BY 'carbondata'

Use direct string encoding
loading time: 6089 ms
size: 1.4M

Use existing encoding
loading time: 6556 ms
size: 1.7M

This PR is based on #1248

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/226/

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/233/

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/252/

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/275/

retest this please

@jackylk it seems lot of tests are failing, can you check

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/311/

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/335/

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/339/

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/354/

SDV Build Failed with Spark 2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/360/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/493/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/494/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/507/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/512/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/513/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/518/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/519/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/537/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/543/

retest this please

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/544/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/627/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/24/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/1205/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/574/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3078/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4322/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/4000/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5210/


Jitter for MLE Parent response and MLE Link Accept

This PR resolves #598.
Here is my proposal for handling delayed responses. This solution introduces DelayResponse class, which is used to store data needed to generate a response and a single timer to manage the pending responses. The maximum number of pending responses is configurable. Currenty Parent Responses and Link Accepts are handled by this mechanism, but it could be easily extended with other messages (e.g. MLE Discover Response should also be delayed according to spec.)
Second commit randomizes the delay before sending initial Parent Request, as discussed in #598.
If you accept this soultion, I have one question, regarding situation when all buffers for delayed response are occupied. Currently the response is sent right away, without any jitter. Other proposal is to simply drop that request and do no send any response to avoid potential flooding in high traffic. Which one would you prefer?

Do you have any suggestions why UINT16_MAX makes windows build fail?

@rlubos That is because it's not defined in the local version of stdint.h that is used for Windows kernel mdoe.

Current coverage is 64.86% (diff: 70.00%)

Merging #674 into master will increase coverage by 0.08%

@@             master       #674   diff @@
==========================================
  Files            99         99
  Lines         14455      14534    +79
  Methods        1983       1995    +12
  Messages          0          0
  Branches       1706       1722    +16
==========================================
+ Hits           9363       9427    +64
- Misses         4565       4579    +14
- Partials        527        528     +1

Powered by Codecov. Last update a853ffc...24c9070

Thanks for submitting this PR, overall it looks great.  One alternative worth considering is using a message buffer to store the pending message state.  By doing this, we do not need to allocate separate memory to support the delayed response.  Also, your question about what to do when no more buffers are available is simple - if there are no more message bufs, then no response can go out anyway.  Thoughts?

Hey, indeed static memory usage was a bit of concern to me as data used by Link Accept required quite large memory, but I didn't think of using message buffers. Anyhow it sounds like a good improvement to me. I'll rework this and update this PR.

I have implemented the updated feature, but I have encountered a problem with one failing test, and I'm afraid it is a problem with the test itself.
In Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py there is a check to verify that SED did not register to a non-stable prefix:
self.assertFalse(any('2002' in word for word in addrs))
And here are addressess added in SEDs Netif:

The problem is, that this code checks for the occurence of '2002' string in the whole address, not only the prefix part. And as SED was assigned with RLOC16 equal to 0x2002, the test keeps failing. My proposal is to update that check and any similiar in this test with something like:
self.assertFalse(any('2002' in addr[0:4] for addr in addrs))
Is my reasoning right? Is it ok to submit a fix with this PR, or shall I create another issue/PR to address this problem?

@rlubos, thanks for the update.  The issue you pointed out was recently fixed with #554.

Well, that's good news, I'll just rebase then, and if there's no more issues update the PR. Thanks for the information!

Ok, so I've updated the PR. Current solution is based on message buffers, please review.
Along with the updated jitter feature, I've increased the router promotion timeout in some tests, the same as in #554, as they were failing with current timeouts.
I also had to undo the randomization of initial Parent Request delay, as it made Cert_5_5_06_SplitWeight.py fail (lower priority router established partition before the higher priority one, so that the latter atatched to it).

Updated!


feat : Support for multiline statements

Hello,
Added the supported for multiline statements :https://github.com/nodejs/repl/issues/15
I have tested locally, it works.
Thoughts please?
Note: Recoverable.js is something I had taken from node core.

@devsnek : Hey.. Have updated the PR with review comments fixed. Let me know if it's all good :) I played around and seems to be working fine:

@devsnek Thanks, I have done those changes locally, but somehow, I missed to push it. Now I guess it should be alright.
Thanks for your time on this.

ping @TimothyGu

Just now realized my git username was wrong in commits; so just rewritten my commit message with right user name.

Done with the Symbol changes. cc @jdalton @devsnek
Thanks for your time on this.

@devsnek Taken care, thanks. Let me know if anything needed from my side.


Expand/Open a node programmatically

Is there a way to expand a node programmatically? It's an important feature especially if you want to open a certain tree path and select a certain sub-node.
Do you have any ideas? I'm using the angular implementation.

Hello @awallat

Is there a way to expand a node programmatically?

Yes, to achieve that you have to tinker with the fold strategy property, which controls whether a node is expanded.
I think the simplest way to do it would be something like :
import { Component } from "@angular/core"
// Tree data structure utility methods
import { tree } from "bosket/tools"

@Component({
    selector: "expandable-tree",
    template: `

                <button (click)="onSelect([])">none</button>
                <button *ngFor="let item of flattenedModel()" (click)="onSelect([item])">{{ item.label }}</button>

            <TreeView
                [model]="model"
                category="children"
                [(selection)]="selection"
                [display]="display"
                [strategies]="strategies">
            </TreeView>

    `,
    styles: [`
        >>> .selected > .item {
            color: red;
        }
    `]
})
export class ExpandableTree {
    category = "children"
    selection = []
    onSelect = _ => this.selection = _
    model = [
        { label: 1, children: [
            { label: 2 },
            { label: 3 },
            { label: 4 }
        ]},
        { label: 5, children: [
            { label: 6 },
            { label: 7 },
            { label: 8, children: [
                { label: 9 },
                { label: 10}
            ]}
        ]}
    ]
    display = i => i.label
    // The "no child selection" prevents folding when a child is selected
    strategies = { selection: ["single"], fold: [ "no-child-selection" ]}
    // Flattens the tree into a single array
    flattenedModel() { return tree(this.model, this.category).flatten().sort((a, b) => a.label > b.label) }
}

And a little gif of the tree in action :

Wow, thank you very much for this hint!!! (also for the nice GIF)
It helped me to write my own folding strategy, the way I need it. Would be good if this will be found in the documentation some day, with an example. So thanks again!

You're welcome :) !

Would be good if this will be found in the documentation some day, with an example.

Yes I'm planning to make some faq with tree examples (orderable, expandable ...) in the future.


[Question] Logging TLS 1.3 traffic secrets

I'm trying to write the traffic secrets to an SSL keylog file so i could see my traffic in Wireshark.
With TLS 1.2 i had this modified CalculateKeyBlock function in TlsUtilities.cs:
internal static byte[] CalculateKeyBlock(TlsContext context, int size)
{
    SecurityParameters securityParameters = context.SecurityParameters;
    byte[] master_secret = securityParameters.MasterSecret;
    byte[] seed = Concat(securityParameters.ServerRandom, securityParameters.ClientRandom);

    if (IsSsl(context))
        return CalculateKeyBlock_Ssl(master_secret, seed, size);

#if UNITY_EDITOR
    // https://www.m00nie.com/2015/05/decrypt-https-ssltls-with-wireshark/
    // https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
    string SSLKEYLOGFILE = Environment.GetEnvironmentVariable("SSLKEYLOGFILE", EnvironmentVariableTarget.User);
    if (!string.IsNullOrEmpty(SSLKEYLOGFILE))
        using (var writer = new StreamWriter(System.IO.File.Open(SSLKEYLOGFILE, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)))
            writer.Write(string.Format("# Generated by BestHTTP\r\nCLIENT_RANDOM {0} {1}",
                BouncyCastle.Utilities.Encoders.Hex.ToHexString(securityParameters.ClientRandom),
                BouncyCastle.Utilities.Encoders.Hex.ToHexString(master_secret)));
#endif

    return PRF(context, master_secret, ExporterLabel.key_expansion, seed, size);
}

I don't know whether it was the best place to add, but it worked for my use case so i was happy with it.
However, I'm in trouble with TLS 1.3. For TLS 1.3 there are 7 labels (CLIENT_EARLY_TRAFFIC_SECRET, CLIENT_HANDSHAKE_TRAFFIC_SECRET, ..., EXPORTER_SECRET) and my understanding is that i should use at least 5 of them.
My guess is all the required fields can be found in the SecurityParameters class (that i can access through TlsClientProtocol's m_tlsClientContext.SecurityParameters), but i'm not sure what field matches what label (except for ClientRandom :) ).
To summ it up, I have two questions:
1.) What fields can be used for the following labels:

CLIENT_EARLY_TRAFFIC_SECRET: the hex-encoded early traffic secret for the client side (for TLS 1.3)
CLIENT_HANDSHAKE_TRAFFIC_SECRET: the hex-encoded handshake traffic secret for the client side (for TLS 1.3)
SERVER_HANDSHAKE_TRAFFIC_SECRET: the hex-encoded handshake traffic secret for the server side (for TLS 1.3)
CLIENT_TRAFFIC_SECRET_0: the first hex-encoded application traffic secret for the client side (for TLS 1.3)
SERVER_TRAFFIC_SECRET_0: the first hex-encoded application traffic secret for the server side (for TLS 1.3)
EARLY_EXPORTER_SECRET: the hex-encoded early exporter secret (for TLS 1.3).
EXPORTER_SECRET: the hex-encoded exporter secret (for TLS 1.3)

2.) What could be the best place to write these out to the SSL Keylog file?
Thanks in advance!

TLS 1.3 support is only in the new Org.BouncyCastle.Tls namespace and not in the old Org.BouncyCastle.Crypto.Tls (the API changes aren't massive).
The traffic secret fields are used for both handshake and application traffic (i.e. they get overwritten). We don't currently support early traffic, so never calculate those secrets. Early exporter secret I am just noticing is not set, although I don't think there's any reason we couldn't be doing so; I need to review.
So I expect you're interested in these fields of SecurityParameters:
internal TlsSecret m_earlyExporterMasterSecret = null;
internal TlsSecret m_exporterMasterSecret = null;
internal TlsSecret m_trafficSecretClient = null;
internal TlsSecret m_trafficSecretServer = null;

I would think logging could most easily be added in the TlsUtilities methods that switch phases:
Establish13PhaseEarly
Establish13PhaseHandshake
Establish13PhaseApplication

We could probably look at providing a proper API for supplying this sort of information at some point.
Anyway, let me know how you go.

Thanks for the quick reply, i could make it work!
As mentioned early traffic isn't supported and indeed Establish13PhaseEarly wasn't called in my tests, so i changed only Establish13PhaseHandshake and Establish13PhaseApplication.
Pasting the code here, maybe it will be helpful for someone:
internal static void Establish13PhaseApplication(TlsContext context, byte[] serverFinishedTranscriptHash,
    RecordStream recordStream)
{
    SecurityParameters securityParameters = context.SecurityParameters;
    TlsSecret phaseSecret = securityParameters.MasterSecret;

    Establish13TrafficSecrets(context, serverFinishedTranscriptHash, phaseSecret, "c ap traffic",
        "s ap traffic", recordStream);

    securityParameters.m_exporterMasterSecret = DeriveSecret(securityParameters, phaseSecret, "exp master",
        serverFinishedTranscriptHash);

    KeyLogFileWriter.WriteLabel(Labels.CLIENT_TRAFFIC_SECRET_0, securityParameters.ClientRandom, securityParameters.TrafficSecretClient);
    KeyLogFileWriter.WriteLabel(Labels.SERVER_TRAFFIC_SECRET_0, securityParameters.ClientRandom, securityParameters.TrafficSecretServer);
    KeyLogFileWriter.WriteLabel(Labels.EXPORTER_SECRET, securityParameters.ClientRandom, securityParameters.ExporterMasterSecret);
}

internal static void Establish13PhaseHandshake(TlsContext context, byte[] serverHelloTranscriptHash,
    RecordStream recordStream)
{
    SecurityParameters securityParameters = context.SecurityParameters;
    TlsSecret phaseSecret = securityParameters.HandshakeSecret;

    Establish13TrafficSecrets(context, serverHelloTranscriptHash, phaseSecret, "c hs traffic", "s hs traffic",
        recordStream);

    KeyLogFileWriter.WriteLabel(Labels.CLIENT_HANDSHAKE_TRAFFIC_SECRET, securityParameters.ClientRandom, securityParameters.TrafficSecretClient);
    KeyLogFileWriter.WriteLabel(Labels.SERVER_HANDSHAKE_TRAFFIC_SECRET, securityParameters.ClientRandom, securityParameters.TrafficSecretServer);

    securityParameters.m_baseKeyClient = securityParameters.TrafficSecretClient;
    securityParameters.m_baseKeyServer = securityParameters.TrafficSecretServer;
}

My KeyLogFileWriter:
internal enum Labels
{
    CLIENT_EARLY_TRAFFIC_SECRET,
    CLIENT_HANDSHAKE_TRAFFIC_SECRET,
    SERVER_HANDSHAKE_TRAFFIC_SECRET,
    CLIENT_TRAFFIC_SECRET_0,
    SERVER_TRAFFIC_SECRET_0,
    EARLY_EXPORTER_SECRET,
    EXPORTER_SECRET
}

internal static class KeyLogFileWriter
{
    private static string GetKeylogFileName() => Environment.GetEnvironmentVariable("SSLKEYLOGFILE", EnvironmentVariableTarget.User);

    [Conditional("UNITY_EDITOR")]
    public static void WriteLabel(Labels label, byte[] clientRandom, TlsSecret secret)
    {
        string SSLKEYLOGFILE = GetKeylogFileName();

        if (!string.IsNullOrEmpty(SSLKEYLOGFILE) && clientRandom != null && secret != null)
            using (var writer = new StreamWriter(System.IO.File.Open(SSLKEYLOGFILE, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)))
                writer.WriteLine($"{label} {Hex.ToHexString(clientRandom)} {Hex.ToHexString((secret as AbstractTlsSecret).CopyData())}");
    }

    [Conditional("UNITY_EDITOR")]
    public static void WriteLabel(Labels label, SecurityParameters securityParameters)
    {
        string SSLKEYLOGFILE = GetKeylogFileName();
        if (!string.IsNullOrEmpty(SSLKEYLOGFILE))
            using (var writer = new StreamWriter(System.IO.File.Open(SSLKEYLOGFILE, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)))
            {
                TlsSecret secret = null;
                switch (label)
                {
                    case Labels.CLIENT_EARLY_TRAFFIC_SECRET: break;
                    case Labels.CLIENT_HANDSHAKE_TRAFFIC_SECRET: secret = securityParameters.TrafficSecretClient; break;
                    case Labels.SERVER_HANDSHAKE_TRAFFIC_SECRET: secret = securityParameters.TrafficSecretServer; break;
                    case Labels.CLIENT_TRAFFIC_SECRET_0: secret = securityParameters.TrafficSecretClient; break;
                    case Labels.SERVER_TRAFFIC_SECRET_0: secret = securityParameters.TrafficSecretServer; break;
                    case Labels.EARLY_EXPORTER_SECRET: break;
                    case Labels.EXPORTER_SECRET: secret = securityParameters.ExporterMasterSecret; break;
                }

                if (secret != null)
                    writer.Write($"\r\n{label} {Hex.ToHexString(securityParameters.ClientRandom)} {Hex.ToHexString((secret as AbstractTlsSecret).CopyData())}");
            }
    }
}


Merged internal and external reference count fields

The Variable data structure currently keeps track of an internal and an external reference count. We aren't really using that property, and it consumes precious storage in an otherwise highly optimized data structure. This experimental commit merges them into a joint 32 bit reference count field to free up memory for subsequent refactoring.

Could I ask you to do the drjit parts? (Should be a simple search+replace job) and then merge if it passes the tests?