Delete All Message for Moderator

Description
Yesterday we got raided and it left the spam message in every channel.
This feature will make user that has ManageMessage permission can delete all message from specific user by click at Apps > Delete All

Constraint ‼
This feature available only for message that are under 14 days old.
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Refactor or other

Checklist:

[ ] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

Reopen from #39

Add confirmation banner

Update Confirmation Message


add installation instructions for Windows using winget

I created a winget package (and also an update for the new 0.6.0) release so that installation on Windows can be automated.
If you are interested in automating this or maintaining this yourself, have a look at komac and the GitHub Actions integration mentioned in the readme.

Thank you @Okeanos!


Latest symfony changes cause exception when phinx is run

Check latest updates from symfony - https://github.com/symfony/symfony/pull/33332/files#diff-8e80595663798837db1b033187835535R460
This changes require the command to have a name.
Phinx code assign default name if there is none
$this->setName($this->getName() ?: 'init')
This will throw exception with the new code.
─ $ ▶ ./vendor/bin/phinx
PHP Fatal error:  Uncaught Symfony\Component\Console\Exception\LogicException: The command defined in "Phinx\Console\Command\Init" cannot have an empty name. in /home/potaka/Projects/krivaGPS/script/migration/vendor/symfony/console/Command/Command.php:453
Stack trace:
#0 /home/potaka/Projects/krivaGPS/script/migration/vendor/robmorgan/phinx/src/Phinx/Console/Command/Init.php(47): Symfony\Component\Console\Command\Command->getName()
#1 /home/potaka/Projects/krivaGPS/script/migration/vendor/symfony/console/Command/Command.php(77): Phinx\Console\Command\Init->configure()
#2 /home/potaka/Projects/krivaGPS/script/migration/vendor/robmorgan/phinx/src/Phinx/Console/PhinxApplication.php(60): Symfony\Component\Console\Command\Command->__construct()
#3 /home/potaka/Projects/krivaGPS/script/migration/vendor/robmorgan/phinx/app/phinx.php(36): Phinx\Console\PhinxApplication->__construct()
#4 /home/potaka/Projects/krivaGPS/script/migration/vendor/robmorgan/phinx/bin/phinx(27): require('/home/potaka/Pr...')
#5 {main}
  thrown in /home/potaka/Projects/krivaGPS/script/migration/vendor/symfony/console/Command/Command.php on line 453

Surround the phinx code with try-catch should do the work, but it is ugly.

Fixed in master. See historie.


problems opening a specific directory using Mint 19 Linux

Version: 1.0.90
Platform: linux 4.15.0-58-generic
Plugins: none
How do I open multiple tabbed directories in terminus for a specific profile?

A profile can only contain one tab with one CWD.
If you're referring to CLI usage, you can open multiple tabs by running terminus open <directory> multiple times.


Inconsistent weekday support (local vs lambda)

Seeing an odd issue with weekday support in which running locallly (using run_schedule_local.py) has the desired outcome; yet when we run the lambda it seems to inject static event data into the fuction which does not handle day of the month (i.e. mon#1, thu#3).
Schedule:

Period 1: 0600 - 1800, tue#1
Period 2: 0600 - 23:59, (thu#1, thu#2)
Period 3: null - 1800, mon-sun

Desired outcome: Start EC2 on First Tuesday (patches) for development, First/Second Thursday for Qual/QA, otherwise shutdown at 1800.
When we run this locally, everything is fine and it has the expected outcome. I've cleaned up the output, obfuscated a few things, but otherwise this is the raw output:

2019-02-15 - 21:30:31.707 - INFO : InstanceScheduler, version <IP_ADDRESS>
2019-02-15 - 21:30:31.712 - DEBUG : Event is
{
    "source": "aws.events",
    "account": "foobar",
    "version": "0",
    "time": "2019-02-15T21:25:00Z",
    "id": "e12d8db2-fbc3-c927-736e-ed93d033b75a",
    "region": "us-west-2",
    "detail": {},
    "resources": [
        "arn:aws:events:us-west-2:foobar:rule/foo-bar-SchedulerRule-GUZLEUKIJ56P"
    ],
    "detail-type": "Scheduled Event"
}
2019-02-15 - 21:30:31.719 - INFO : Handler is CloudWatchEventHandler
2019-02-15 - 21:30:31.722 - INFO : Handler CloudWatchEventHandler : Received request
{
    "source": "aws.events",
    "account": "foobar",
    "version": "0",
    "time": "2019-02-15T21:25:00Z",
    "id": "e12d8db2-fbc3-c927-736e-ed93d033b75a",
    "region": "us-west-2",
    "detail": {},
    "resources": [
        "arn:aws:events:us-west-2:foobar:rule/foo-bar-SchedulerRule-GUZLEUKIJ56P"
    ],
    "detail-type": "Scheduled Event"
}
at 2019-02-15 21:30:31.072221
2019-02-15 - 21:30:31.183 - INFO : Running scheduling request for service(s) ec2, rds, account(s) foobar, region(s) us-west-2
2019-02-15 - 21:30:31.362 - INFO : Running EC2 scheduler for account foobar in region(s) us-west-2
2019-02-15 - 21:30:31.579 - INFO : Fetching ec2 instances for account foobar in region us-west-2
2019-02-15 - 21:30:31.646 - DEBUG : Selected ec2 instance foobar in state (running)
2019-02-15 - 21:30:31.646 - INFO : Number of fetched ec2 instances is 1, number of instances in a schedulable state is 1
2019-02-15 - 21:30:31.691 - DEBUG : [ Instance EC2:foobar ]
2019-02-15 - 21:30:31.691 - DEBUG : Current state is running, instance type is t2.small, schedule is "seattle-office-hours"
2019-02-15 - 21:30:31.692 - DEBUG : Time used to determine desired for instance is Fri Feb 15 14:30:31 2019
2019-02-15 - 21:30:31.692 - DEBUG : Checking conditions for period "patch-hours-qual"
2019-02-15 - 21:30:31.692 - DEBUG : Checking conditions for period "patch-hours-dev"
2019-02-15 - 21:30:31.693 - DEBUG : Checking conditions for period "shutdown"
2019-02-15 - 21:30:31.693 - DEBUG : [running] Weekday "fri" in weekdays (mon-sun)
2019-02-15 - 21:30:31.693 - DEBUG : [running] Time 14:30:31 is before stoptime 14:44:00, returned state is any
2019-02-15 - 21:30:31.693 - DEBUG : "Any" state period found for current time in schedule "seattle-office-hours", desired state is any
2019-02-15 - 21:30:31.694 - DEBUG : Desired state for instance from schedule "seattle-office-hours" is any, last desired state was running, actual state is running

Now, when we run via lambda it seems like all hell breaks loose:

2019-02-15 - 21:30:18.243 - INFO : InstanceScheduler, version <IP_ADDRESS>
2019-02-15 - 21:30:18.243 - DEBUG : Event is
{
    "account": "foobar",
    "region": "us-west-2",
    "detail": {},
    "detail-type": "Scheduled Event",
    "source": "aws.events",
    "version": "0",
    "time": "2019-02-15T21:30:00Z",
    "id": "foobar",
    "resources": [
        "arn:aws:events:us-west-2:foobar:rule/foo-bar-SchedulerRule-GUZLEUKIJ56P"
    ]
}
2019-02-15 - 21:30:18.243 - INFO : Handler is CloudWatchEventHandler
2019-02-15 - 21:30:18.831 - INFO : Starting lambda function for scheduling ec2 instances for account foobar in region us-west-2
2019-02-15 - 21:30:19.792 - INFO : InstanceScheduler, version <IP_ADDRESS>
2019-02-15 - 21:30:19.792 - DEBUG : Event is
{
    "action": "scheduler:run",
    "configuration": {
        "stopped_tags": "",
        "trace": true,
        "use_metrics": true,
        "started_tags": "",
        "schedule_lambda_account": true,
        "scheduled_services": [
            "ec2"
        ],
        "default_timezone": "UTC",
        "regions": [
            "us-west-2"
        ],
        "tag_name": "tc:ScheduleSandbox",
        "periods": {
            "weekends": {
                "weekdays": [
                    5,
                    6
                ]
            },
            "patch-hours-qual": {
                "endtime": "23:59",
                "begintime": "06:00"
            },
            "shutdown": {
                "endtime": "14:44",
                "weekdays": [
                    0,
                    1,
                    2,
                    3,
                    4,
                    5,
                    6
                ]
            },
            "working-days": {
                "weekdays": [
                    0,
                    1,
                    2,
                    3,
                    4
                ]
            },
            "patch-hours-dev": {
                "endtime": "18:00",
                "begintime": "06:00"
            },
            "office-hours": {
                "endtime": "14:15",
                "begintime": "14:00",
                "weekdays": [
                    0,
                    1
                ]
            }
        },
        "schedules": {
            "uk-office-hours": {
                "enforced": false,
                "name": "uk-office-hours",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T21:30:18.775711+00:00",
                "stop_new_instances": true,
                "periods": [
                    "office-hours"
                ],
                "timezone": "Europe/London"
            },
            "stopped": {
                "override_status": "stopped",
                "name": "stopped",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T21:30:18.775376+00:00",
                "enforced": false,
                "stop_new_instances": true,
                "timezone": "UTC"
            },
            "running": {
                "override_status": "running",
                "name": "running",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T21:30:18.773521+00:00",
                "enforced": false,
                "stop_new_instances": true,
                "timezone": "UTC"
            },
            "seattle-office-hours": {
                "enforced": "false",
                "name": "seattle-office-hours",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T14:30:18.775348-07:00",
                "stop_new_instances": true,
                "periods": [
                    "patch-hours-qual",
                    "patch-hours-dev",
                    "shutdown"
                ],
                "timezone": "US/Mountain"
            },
            "scale-up-down": {
                "enforced": false,
                "name": "scale-up-down",
                "use_maintenance_window": false,
                "use_metrics": false,
                "schedule_dt": "2019-02-15T21:30:18.774345+00:00",
                "stop_new_instances": true,
                "periods": [
<EMAIL_ADDRESS><EMAIL_ADDRESS>                ],
                "timezone": "UTC"
            }
        }
    },
    "dispatch_time": "2019-02-15 21:30:18.831986"
}
2019-02-15 - 21:30:19.960 - INFO : Handler is SchedulerRequestHandler
2019-02-15 - 21:30:20.821 - INFO : Handling took 2.578 seconds
2019-02-15 - 21:30:22.775 - INFO : Handler SchedulerRequestHandler scheduling request for service(s) ec2, account(s) foobar, region(s) us-west-2 at 2019-02-15 21:30:22.775648
2019-02-15 - 21:30:22.815 - INFO : Running EC2 scheduler for account foobar in region(s) us-west-2
2019-02-15 - 21:30:25.392 - INFO : Fetching ec2 instances for account foobar in region us-west-2
2019-02-15 - 21:30:25.791 - DEBUG : Selected ec2 instance foobar in state (running)
2019-02-15 - 21:30:25.791 - INFO : Number of fetched ec2 instances is 1, number of instances in a schedulable state is 1
2019-02-15 - 21:30:27.109 - DEBUG : [ Instance EC2:foobar ]
2019-02-15 - 21:30:27.110 - DEBUG : Current state is running, instance type is t2.small, schedule is "seattle-office-hours"
2019-02-15 - 21:30:27.110 - DEBUG : Time used to determine desired for instance is Fri Feb 15 14:30:18 2019
2019-02-15 - 21:30:27.110 - DEBUG : Checking conditions for period "patch-hours-qual"
2019-02-15 - 21:30:27.111 - DEBUG : [running] Time 14:30:18 is within 06:00:00-23:59:00, returned state is running
2019-02-15 - 21:30:27.111 - DEBUG : Checking conditions for period "patch-hours-dev"
2019-02-15 - 21:30:27.111 - DEBUG : [running] Time 14:30:18 is within 06:00:00-18:00:00, returned state is running
2019-02-15 - 21:30:27.111 - DEBUG : Checking conditions for period "shutdown"
2019-02-15 - 21:30:27.112 - DEBUG : [running] Weekday "fri" in weekdays (mon-sun)
2019-02-15 - 21:30:27.112 - DEBUG : [running] Time 14:30:18 is before stoptime 14:44:00, returned state is any
2019-02-15 - 21:30:27.112 - DEBUG : Active periods in schedule "seattle-office-hours": "patch-hours-qual","patch-hours-dev"
2019-02-15 - 21:30:27.112 - DEBUG : Using period "patch-hours-dev" to set the desired state and instance size
2019-02-15 - 21:30:27.112 - DEBUG : Desired state for instance from schedule "seattle-office-hours" is running, last desired state was running, actual state is running

As you can see, the event coming in seems to have the misinterpreted schedule.
Are we just glossing over something obvious, or is there a bug here in which this is not working as expected?

Hi, thanks for this information. We have fixed this issue in the next release that will be available soon. If you need this fix more urgently please let me know.
Thanks
Arie

We may need this a bit more urgently, depending on timing on the next release. Happy to work with you on this as this is unfortunately blocking an Enterprise-wide roll-out. Should we engage via our TAMs?
Thanks for the prompt reply on this, and the confirmation on the fix. Aside from this we're really impressed with the scheduler, and look forward to rolling it out across our organization.

Please ask your TAM to contact us and we'll provide you with access to the preview of this version.
Glad you like Instance Scheduler. Next update will have new features; EC2 hibernation, RDS Multi-AZ and Aurora, SSM parameter store integration to specify cross-account roles and support for EC2 maintenance windows as implicit running periods

Thanks @arieleeuw - I've reached out to our TAM (Richard Kang) and I believe he is looking for information on this. If you could reach out to him internally we'd greatly appreciate it.

Hi @arieleeuw. I'm also running into some issues when using "weekdays" -- I had a period set for the first Friday of every month, but the instances were being launched every day.
Would this be related to this issue? Do you have an idea when the update will be publicly available?
Thanks

The update is currently going through our internal release procedure and will be available soon.
The next update should fix the issue with weekday#.
Please note that we do not support schedules in which there are periods with just a start/end time combined with other periods in the same schedule.
I'll contact your TAM on how we can make the preview of the next update available for testing if you want.

Hi @arieleeuw we are planning to make use of the Instance Scheduler, is this issue still live?

Fixed in v1.2.0


Page transition where the "current page" and "new page" both slide across

Is it possible to transition between pages, where both the "current page" and "new page" both slide across the screen like they are joined together?
Demo of what I mean:

Okay I just found out how to achieve this, from this medium article. Giving this effect:

import 'package:flutter/material.dart';

class EnterExitRoute extends PageRouteBuilder {
  final Widget enterPage;
  final Widget exitPage;
  EnterExitRoute({this.exitPage, this.enterPage})
      : super(
          pageBuilder: (
            BuildContext context,
            Animation<double> animation,
            Animation<double> secondaryAnimation,
          ) =>
              enterPage,
          transitionsBuilder: (
            BuildContext context,
            Animation<double> animation,
            Animation<double> secondaryAnimation,
            Widget child,
          ) =>
              Stack(
                children: <Widget>[
                  SlideTransition(
                    position: new Tween<Offset>(
                      begin: const Offset(0.0, 0.0),
                      end: const Offset(-1.0, 0.0),
                    ).animate(animation),
                    child: exitPage,
                  ),
                  SlideTransition(
                    position: new Tween<Offset>(
                      begin: const Offset(1.0, 0.0),
                      end: Offset.zero,
                    ).animate(animation),
                    child: enterPage,
                  )
                ],
              ),
        );
}

Usage
Navigator.push(context,
    EnterExitRoute(exitPage: this, enterPage: Screen2()))

Seems to work well, so I'll make a PR for it if you like

@benwinding what is different beetwen rightToLeftSlide and you work ? Have you tried rightToLeft slide with this package ?

Hi @kalismeras61,
Thanks for the fast response, but the rightToLeft type isn't the same, on your implementation the new page overlaps the current page.
What I'm looking for is for the new page to push the old page out, as if they're joined together (not overlap). Does that make sense?
Cheers,
Ben


Crash server

What happens:
crashed server
What you expected to happen:
start server
Steps to reproduce:
1.reboot server
2.
3.
...

Affected Versions (Do not use "latest"):

EnderIO: 1.7.10-<IP_ADDRESS>7_beta
EnderCore: 1.7.10-<IP_ADDRESS>_beta
Minecraft: 1.7.10
Forge:1614

Your most recent log file where the issue was present:
http://pastebin.com/7n36PjpW

"An unsupported base software is installed: 'thermos, cauldron, craftbukkit, mcpc, kcauldron'. This is NOT supported."
I'd guess that's the problem

2 weeks to start and now suddenly a crash.

Ok, let's see. Ender O worked before on that server. You added two mods,
The class reference that is failing is stripped out by Forge unless a mod with the ID "Baubles|API" is loaded, too.
So I'd check those two mods (look inside the jar) and see if one of them ships with the Baubles API and if it is complete.


Insert tag in between tags.

@AlexMordred
Is it possible to insert a tag in between other tags? Suppose I delete one specific tag and I want to insert some other tag at the same place of the deleted tag. Is it possible to do using vue-tagsinput? This feature would be great.

Hey. Sorry for the late reply. Unfortunatelly, this is not possible and I'm not planning on implementing this at the moment.

... or drag and drop support ;)


Worldclock corrections and argparse

Good Morning!
This PR makes corrections to initial PR of worldclock.
We also add argparse for converting a given time in a given timezone. :)
You'll see that I use -hr, -min, and -tz for argparse.  I was hoping to use -h, -m and -t for the shortnames, but -h clashes with the 'help' built-in arg.  Let me know if you think there's a better way to do this though.

Please let me know what you think.
Thank you,
Ed

These issues are addressed in forthcoming PR.  Thanks!

Thanks @glutenfreepy so we close this PR as the other one seems to have everything, right?


Relate bypasses Redux props subscription on nested objects

When relate updates an object's nested props, redux subscriptions are bypassed.
For example:
ComponentA has props from relate fragments
const objFromGraphqlFragments = { level1: { level2: 99 } };
If we increment level2 through a mutation or with the result of a new query, Redux will not be able to listen to them, thus, lifecycle callbacks like componentWillReceiveProps or shouldComponentUpdate will not fire correctly.
Instead of firing with the following props:
this.props.objFromGraphqlFragments: { level1: { level2: 99 } }; nextProps.objFromGraphqlFragments: { level1: { level2: 100 } };
It only fires when loading is set to false. At that points, this.props and nextProps are most likely equal.

Should be fixed now, let me know 👍

Fix introduced another bug where _id fields are incorrectly mutated when a mutation happens.


Added Traditional Chinese Translation

I added a Traditional Chinese(繁體中文) Translation.
Please check it, thanks.

Hello o/
Pardon my blissfulness, but there already is a Chinese translation added to the application. How exactly is this one different?
Also paging @Suz1e for a review and opinion on this and the already existing translation, as I'm not entirely sure what's the difference and purpose of this one even.

Traditional Chinese(繁體中文) and Simplified Chinese(簡體中文) is different.
Generally speaking, the either traditional Chinese or simplified Chinese mostly refers to the characters themselves, that is, how they are written.
Or you can understand as same character with 2 different forms, for example the character of "write" in Chinese, the traditional form is "寫" and the simplified form is "写".

Yes they are different - from a native Chinese speaker
They are used by those who live in different regions of China - the mainland of China and other regions including Hong Kong, Macau, and Taiwan
Also both these language options frequently present in many apps at the same time

Alright, well, since I don't see any issues with it, maybe beyond having to support two Chinese translations at the same time, sure. I'm leaving any updates, changes and adjustments up to possible future PRs from others only.


Cache runtime code

Currently code is hashed with blake2 on every call to runtime, which happens multiple times for each block import/production. Profiling shows it takes a bulk of execution time. Code and version should be cached and cache should be persistent across block states and only updated when code change event is detected.

I think we can close this?

Right, state cache also caches storage value hashes.


deprecate UniqueWidget

This is my New Year's resolution.
(unfortunately it does not fix #150459)
A data-driven fix was added, so that the one person using this API will have a smoother transition. Wishing you the best of luck, Matias!

just heads up, when you merge this PR, then #150459 will actually be "fixed" because you have "unfortunately it does not fix #150459 in description ;P

@bartekpacia yes that's true, I thought I was being hilarious but I guess jokes don't always get through via text 😅
(I'm totally fine with closing that issue once this lands!)

ah okay then hahaha, too deep of a joke for me lol 🤣


Less, Scss availability?

Hi,
it would be nice to be able to apply application corporate styles with preprocessor variables.

Hi,
Scss was implemented.
Jiri

Awesome! Thank you. Gonna test this a bit..


[3.6.4] AttributeError: module 'regex' has no attribute 'Pattern'

Since I upgraded nltk from 3.6.2 to 3.6.4, the following code :
from nltk.tokenize.casual import TweetTokenizer, casual_tokenize

raises the following error :

Traceback (most recent call last):
File "", line 1, in
File "/home/user/miniconda3/envs/test/lib/python3.7/site-packages/nltk/init.py", line 137, in
from nltk.text import *
File "/home/user/miniconda3/envs/test/lib/python3.7/site-packages/nltk/text.py", line 29, in
from nltk.tokenize import sent_tokenize
File "/home/user/miniconda3/envs/test/lib/python3.7/site-packages/nltk/tokenize/init.py", line 65, in
from nltk.tokenize.casual import TweetTokenizer, casual_tokenize
File "/home/user/miniconda3/envs/test/lib/python3.7/site-packages/nltk/tokenize/casual.py", line 272, in
class TweetTokenizer:
File "/home/user/miniconda3/envs/test/lib/python3.7/site-packages/nltk/tokenize/casual.py", line 357, in TweetTokenizer
def WORD_RE(self) -> regex.Pattern:
AttributeError: module 'regex' has no attribute 'Pattern'

Had a quick look and was unable to reproduce.
pip install --upgrade pip && pip install nltk==3.6.4

>>> import nltk
>>> nltk.__version__
'3.6.4'
>>> from nltk.tokenize.casual import TweetTokenizer, casual_tokenize
>>>

It seems that the re.Pattern (and regex.Pattern) attributes were only introduced starting from Python 3.8+. How our tests didn't catch this - I have no idea. I'll make a fix.
I experienced the same issues as you with with Python 3.6 and 3.7.

@astariul For the time being, please use the develop branch instead of 3.6.4, as TweetTokenizer will fail for Python versions 3.6 and 3.7. This command ought to do it:
pip install -U git+https://github.com/nltk/nltk

Awesome thanks @tomaarsen (and @purificant) for the lightning fast answers !

I am able to confirm that once I downgrade regex package, I can also reproduce the issue. Could not reproduce with a fresh nltk install in a fresh venv before in different python versions.
Thank you for reporting the issue @astariul and thank you @tomaarsen for tracking down the root cause / fix.

This has been fixed in the new release 3.6.5. Thank you for raising this issue.


Backward Compatibility - Scalar type hinting is supported only from PHP >= 7.0

Here is the constructor of AmazonSES from https://github.com/gabrielbull/omnimail/blob/master/src/AmazonSES.php#L137
public function __construct($accessKey = null, $secretKey = null, $host = self::AWS_US_EAST_1, $verifyPeer = true, $verifyHost = true, LoggerInterface $logger = null, string $signatureVersion = SimpleEmailService::REQUEST_SIGNATURE_V4)
{
    $this->verifyPeer = $verifyPeer;
    $this->verifyHost = $verifyHost;
    $this->accessKey = $accessKey;
    $this->secretKey = $secretKey;
    $this->host = $host;
    $this->logger = $logger;
    $this->signatureVersion = $signatureVersion;
}

In the last argument string $signatureVersion = SimpleEmailService::REQUEST_SIGNATURE_V4. Scalary type hinting on argument is not supported in PHP5.5 as this library is supposed to support PHP5.5 too.
It seems that in the recent PR https://github.com/gabrielbull/omnimail/pull/40 that changes were made. But it will break the backward compatibility for PHP5.5.
We should fix it ASAP.

@stevecoug can you please fix this with a patch if you have time. Or, patch is welcome from anybody.
Thank you.

@shahariaazam can you review the PR and merge if it works for you?

can you review the PR

Yes, I just did.
Thanks and really appreciated your effort. :)

I could also copy the constant into Omnimail's AmazonSES

I think you don't need to remove constant. So its OK to keep $signatureVersion = SimpleEmailService::REQUEST_SIGNATURE_V4

Gotcha, sorry about the confusion, I wasn't thinking clearly obviously. It's been a while since I used PHP 5.

Thanks @stevecoug for the PR. Appreciated 👍


Implode activity for Sugarizer

Implode activity of sugar can be a very good addition to  Sugarizer in terms of the values it can inculcate in young students .It is a game based on 'tetris'. Implode activity can help the young ones to develop mental strength and improve their thinking abillity and help them think in different paths without actually performing actions.
One of the biggest values it can inculcate in a young mind is the power of retention as one need to remember the sequence of steps followed in case a situation is experienced in which no further moves can be made.In that case game will have to be started from beginning and the user will have to analysed where did he/she go wrong and rectify it .

I'm agree. I love the Implode activity.
Currently, Sugarizer include a BlockRain activity that is a Tetris like but will be nice to have the equivalent of the original Sugar Implode activity: http://activities.sugarlabs.org/fr/sugar/addon/4086

Working on it . If anybody is interested in working on this I would be more than happy because currently I am working on #709 and I think this activity needs to be completed irrespective of who does it. I will share the algorithm.
If anybody wants to work on this issue, please let me know so that I can provide you with the head start.

I want to work on this.

First, let me understand the code I will start my coding very soon. I will ask you if I need anything.

@abhishektanwar can you please provide me the algorithm you made. Actually it is hard to understand the code most probably after getting the algorithm may speeds things up.

@Swayamsvk glad to hear from you.
The idea is to start building the problems in the reverse order that is from solution to questions unlike any other problem  First, blocks of a number greater or equal to three of different colors without any other random blocks are to be developed in a random way such that when the problem is solved all the blocks are collapsed. As of now, there does not exist a unique sequence of actions made by users which can lead to the complete collapse of all blocks.
Now, we have to add random blocks in reverse order to the above set of blocks such that there exist only one unique sequence of actions that can lead to collapsing of all the blocks.

@abhishektanwar working on it,would ask you if I need any help.

Fixed in https://github.com/llaske/sugarizer/pull/784


newer linux appimage

On the newer builds I don't see an .appimage available, is there some docs on how I can build those myself or otherwise get the newer updates on linux?

@0xpsi I must have done this on accident. I'll publish a newer version with the linux build in it shortly!

@0xpsi aha! I remembered why I didn't publish the linux build. I was hitting this issue with snapcraft: https://bugs.launchpad.net/snapcraft/+bug/1925374
It looks like it's been fixed so let me try to update electron and electron builder and see if it works.

Ok published https://github.com/tnrich/ove-electron/releases/tag/v1.2.4
Lemme know if that works for you @0xpsi
Cheers!

Ok published https://github.com/tnrich/ove-electron/releases/tag/v1.2.4
Lemme know if that works for you @0xpsi
Cheers!

thanks a lot! I got it and it works :D


Integration Test - Release - 2022/02/09 02:07:54

Auto create for integration test. IssueCommandFlow

#pri1

Just type '#pri3'

#pri2

#pri3

#assign PRMergerTest1

#assign NonAllowedUser

The following users don't have valid GitHub IDs, or are not collaborators on this repo: nonalloweduser

#reassign PRMergerTest2

#reassign NonAllowedUser

The following users don't have valid GitHub IDs, or are not collaborators on this repo: nonalloweduser

#please-close

#unassign PRMergerTest1

GitHub user PRMergerTest2 has been removed from the MicrosoftDocs organization, so they were automatically removed as an assignee.

#unassign NonAllowedUser


Improve list inidcator styles

Why did you change the project indicators, I liked the old style more (see image).

LGTM


C# - Deadline being ignored, sudden spike in IAsyncStreamReader call duration

What version of gRPC and what language are you using?
2.29.0, C#
What operating system (Linux, Windows,...) and version?
Windows Server 2019
What runtime / compiler are you using (e.g. python version or version of gcc)
.NET Framework 4.6.2 (runtime: 4.7.2)
What did you do?
Run a cluster of nodes, each node doing < 1000 rps. Bidirectional streaming gRPC.
What did you expect to see?
All nodes remain in a healthy state if their OS (CPU, Memory) and underlying resources (storage, compute, networking) remain healthy.
What did you see instead?
On a completely healthy node (50% CPU, 10GB available memory), a large percentage of requests start taking a very long time in IAsyncStreamReader.MoveNext() (~200 seconds). The RPC deadline of 10 seconds is being ignored (yet it is set properly in ServerCallContext and I have logged it below) and the ServerCallContext.CancellationToken is sometimes being set, sometimes not (also logged). Either way, the calls eventually succeed. This is is a server-to-server call between 2 nodes in the same subnet in the same virtual network. No TLS.
This is very puzzling, as it happens without warning, so I can't repro it. I was wondering what set of traces, if any, could help me diagnose this further. Or which settings I can tweak.
I've verified that my actual server-side processing never takes more than a few seconds, so the requests shouldn't be stuck building in the queue.
Here are my logs for some of the sample requests. You can see some requests take 6 seconds, others take upwards of 200 seconds, all for similarly sized request bodies. They all completed with the same 2 seconds (ActualRpcCompleteTimeUtc)

In green, we have a "healthy" request.
In orange, we have a request that took ~195 seconds, ignored its deadline, but had ServerCallContext.CancellationToken set to true
In red, we have a request that took ~195 seconds, ignored its deadline, but had ServerCallContext.CancellationToken set to false (!!)

Any pointers would be appreciated.

One thing you can try is to set  InlineHandlers=true in https://github.com/grpc/grpc/blob/88af358f9ec9b2a84f82b3f4e795df62c920c29b/src/csharp/Grpc.Core/GrpcEnvironment.cs#L242
Also, you can try to manipulate the number of completion queues and threads in the grpc thread pool:
https://github.com/grpc/grpc/blob/88af358f9ec9b2a84f82b3f4e795df62c920c29b/src/csharp/Grpc.Core/GrpcEnvironment.cs#L222
https://github.com/grpc/grpc/blob/88af358f9ec9b2a84f82b3f4e795df62c920c29b/src/csharp/Grpc.Core/GrpcEnvironment.cs#L205
Potentially, this could indicate some problem with Grpc.Core triggering the notifications about new events (getting the next event to process from completion_queue_next()). It would be interesting to know if the notifications (e.g. a new message being available after reader.MoveNext() has been invoked previously) have already been delivered by completion_queue_next() and they are somehow stuck in the C# layer or if the problem is somewhere in the native library (Potentially you can get that information by setting env GRPC_VERBOSITY=debug GRPC_TRACE=api, but note that that prints a lot of stuff).
Clearly, a reproduction of the problem would be very useful but I understand you're unable to reproduce outside of your system.

Since this is about full-duplex streaming, can you also describe the pattern the messages get sent back and forth?
does IAsyncStreamReader.MoveNext()  become very slow in the server-side handler (when reading requests from client) or on the client (when reading the responses from the server).

@jtattermusch this hasn't happened in a while (we aren't sure how to repro, either, and would need to try and replicate our production volume), but we are planning to move to grpc-dotnet anyways. I'll close this issue


Do not wrap build errors in array before printing

This applies to the build.js script that's executed on yarn build
How it currently works
When build errors occurs (or warnings for CI builds) the build promise is rejected with an array – the error messages, see https://github.com/jaredpalmer/razzle/blob/v4.2.6/packages/razzle/scripts/build.js#L112-L114 for an example.
When handling the rejected promise, the error is wrapped in an array before calling printErrors as it's expects an array of errors to print. This is fine when the promise is rejected with an actual Error but for build errors this means that the array gets wrapped in a new array, and instead of getting an array of n  messages, printErrors receives an array with 1 element and it will log the array instead of the indivdual messages, see #1753 for an example on what this looks like.
This PR
There is no need to wrap the array of error messages in a new array before calling printErrors, so in the catch clause if   err is an array, it will not be wrapped. If it's not an array, it's wrapped, just like previously.
Verification
I've manually verified this PR with webpack 4 for examples/basic and webpack 5 for examples/with-preact. Syntax errors where introduced to the examples with this:
echo 'just some text' >> examples/basic/src/App.js
echo 'just some text' >> examples/with-preact/src/App.js

And then yarn build --noninteractive was ran for each example.
Of course yarn test --runInBand was ran as well.


Not able to make connection to the server which supports TLS1.2 only

Expected behavior
Should be able to connect to the server
Actual behavior
WampClient.State newState
says connecting
Steps to reproduce
IWampConnectorProvider connectorProvider = new NettyWampClientConnectorProvider();
        NettyWampConnectionConfig connectionConfiguration =
                new NettyWampConnectionConfig.Builder()
                        .withSslContext(SslContext.newClientContext())
                        .build();

        String url = mWampCredentials.mConnectionURL.replace(" ", "");
        String token  = AuthenticationModule.getAuthenticationService().getAuthenticationToken();
        WampClientBuilder builder = new WampClientBuilder();
        builder.withConnectorProvider(connectorProvider)
                .withConnectionConfiguration(connectionConfiguration)
                .withUri(url)
                .withRealm(WAMP_REALM)
                .withAuthId(mWampCredentials.mUsername)
                .withAuthMethod(new Ticket(token))
                .withInfiniteReconnects()
                .withReconnectInterval(10, TimeUnit.SECONDS);
        // Create a client through the builder. This will not immediately start
        // a connection attempt
        mWampClient = builder.build();

        mWampStateSubscription = RxJavaInterop.toV2Observable(mWampClient.statusChanged())
                .subscribeOn(Schedulers.io())
                .subscribe(new Consumer<WampClient.State>() {
                    @Override
                    public void accept(@NonNull WampClient.State newState) throws Exception {
                        if (newState instanceof WampClient.ConnectingState) {
                            Logger.get().d(this, "3.2: WAMP State Changed to: Connecting");
                        } else if (newState instanceof WampClient.ConnectedState) {
                            Logger.get().d(this, "3.2: WAMP State Changed to: Connected");
                            // Client got connected to the remote router
                            // and the session was established
                            updateConnectionConnected();
                        } else if (newState instanceof WampClient.DisconnectedState) {
                            Logger.get().d(this, "3.2: WAMP State Changed to: Disconnected");
                            // Client got disconnected from the remote router
                            // or the last possible connect attempt failed
                            updateConnectionDisconnected(false);
                        }
                    }
                }, new Consumer<Throwable>() {
                    @Override
                    public void accept(@NonNull Throwable throwable) throws Exception {
                        throwable.printStackTrace();
                        Logger.get().d(this, "3.2: WAMP State Changed to: Disconnected - Exception Thrown");
                        updateConnectionDisconnected(true);
                    }
                });

Minimal yet complete reproducer code (or URL to code)
Updated above
Netty version
4.1.48
JVM version (e.g. java -version)
1.8
OS version (e.g. uname -a)
Android-21

NettyWampConnectionConfig object

This is clearly not a Netty bug.

But I am using all netty APIs.

It works fine with TLS1.1 but failing to connect TLS1.2

Can you show SslContext builder code?

This is clearly not a Netty bug.

What else could be the problem .?

This is clearly not a Netty bug.

What else could be the problem .?

SslContext not configured properly.

I have attached the screenshot of SslContext instance

NettyWampConnectionConfig object

Logs as per the code above,
D/com.karthik.ispmobile.communicator.event.network.EventNWService: 1.1: Fetching WAMP Credential: State: 1
D/com.karthik.ispmobile.communicator.event.network.EventNWService$2: 1.1: WAMP Credential fetched: State: 1
D/com.karthik.ispmobile.communicator.event.network.EventNWService: 2.1: Fetching WAMP Subscription: State: 1
D/com.karthik.ispmobile.network.volley.VolleyRequest: Requested succeeded for URL: https://xyz.karthik.com/ksome/KSOME/EventMgmt/EventStreams/filters?q=(eventFilter.filterElement.eventTypeTemplateName=MobileWamp)
D/com.karthik.ispmobile.communicator.event.network.EventNWService$4: 2.1: WAMP Subscription fetched: State: 1
D/com.karthik.ispmobile.communicator.event.network.EventNWService: 3.1: Connecting to WAMP: State: 1
D/com.karthik.ispmobile.communicator.event.network.EventNWService$6: 3.2: WAMP State Changed to: Disconnected
D/com.karthik.ispmobile.communicator.event.network.EventNWService$6: 3.2: WAMP State Changed to: Connecting

it stops here.

Here

What cipher suites are enabled?

I will get back to you on these .. tomorrow pls

here it is ..

And you show server SslContext builder?

Got it fixed @hyperxpro , The problem is not at all related to Netty and it is also not related to sslContext properties.
I was facing this issue because of the org's firewall was blocking the connection and events.
So, closing this issue.  I appreciate that.


feat: better stream responses

Add new StreamResponse class to handle stream responses as generator or any other iterable values
Rework simple response handling to be the same as StreamResponse
Remove Server::push method as redundant

todo:

update protoc plugin to generate correct services with stream response type


Replaced deprecated node-sass with Dart Sass 1.32.4

Reference Issues
Related to issue #93
What does it fix
It replaces deprecated node-sass 4.14.1 with Dart Sass 1.32.4 as recommended by node-sass team. Previously used node-sass 4.14.1 required python2 what is EOL, node-sass 5.0 does not work with react do to sass-loader dependencies.
Fix was "tested" within the ADT learning path and removes dependency on python2.

Thanks @ChristianBeier! This looks good. We've picked these changes up and will push them into the development branch so we can do some end-to-end testing before merging into master.

This is now in main: https://github.com/Azure-Samples/digital-twins-explorer/blob/main/client/package.json#L40
Thanks for the PR!


Help to port Sia GPU Miner to CPU with AVX2

Here is repo. I tried to use this library, but I understand that code very-very hard.
https://github.com/NebulousLabs/Sia-GPU-Miner

If I understand that code correctly, what you want is to be running 4 instances of BLAKE2b concurrently. So adapting the code in blake2bp.c would be your best bet, in particular all you need is to use the BLAKE2B_COMPRESS_V4 macro. You are on your own, however, to adapt this for mining.

dear Samuel,
I'm a contestant in the Zcash Open Miner Contest and also trying to use your code to compute 4 independent (acutally just differing in the last few bytes of input) blake2b's simultaneously. While I'm making good progress, I have a question about licensing. Right now my https://github.com/tromp/equihash repo is using the MIT license, as encouraged by the contest rules. Do you know if this is compatible with the Creative Commons License that you have, and are you ok with my use of your code? I will of course provide full attribution!
kind regards,
-John

I don't really know for sure how these licenses interact. According to this, CC0 should be compatible with everything. CC0 is supposed to be as close to public domain as possible, so in principle I don't see why they would be incompatible.

dear Samuel,

I don't really know for sure how these licenses interact. According to this, CC0 should be compatible with everything. CC0 is supposed to be as close to public domain as possible, so in principle I don't see why they would be incompatible.

Great, then I'll use your code under the MIT License.
Thanks so much for making that available!
regards,
-John


chore(sepolia): Update gas limit from 45M->60M

Update the sepolia gas limit from 45M to 60M. This effectively increases the gas target to 10M, or 5MGas/sec

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
0

Sum
1


AI Chatbot can be added

AI Chatbot can be added to make website more interactive in real time

Can I contribute in this under gssoc


Greg/typescript conversion

This started the conversion to typescript.
All the transition functions and helper functions have been implemented.
Tests have been written for clamp() and split()
This branch should be merged to master simply so people can contribute to the typescript conversion and implementation as a whole.
Caveat:

Certain numbers (uint<number>, bytes...etc) have been alias to number for the time being until we have a proper implementation for them.

I object to the use of aliases for readability reasons. You can just have placeholders/stubs for such a use case until we get the types sorted out.

@mikerah I have to disagree, aliases Are essentially stubs and they maintain the correct type for when we swap them out. Adding stubs ( i.e using number out right ) would mean that we are not following the spec.

Again I'll have to disagree. We can't compile the code, nor can we have complete functions without aliases. Which means we can't run tests.


Revert "RAC-1984 (somewhat) Removal of node/:id/workflows POST CIT test"

Reverts RackHD/RackHD#707
The PR merge breaks the rule that freeze merge during sprint tag and sprint release and we have found this  merge causes the sprint release's version bumps fails due to following error
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart.

To not block this sprint release, the simplest solution is to revert this PR.
@lacarb please reopen the original pull request or submit a new pull request after the sprint release.

:+1:

BUILD RackHD #81 : FAILURE

test this please


Bluetooth: Audio: Refactor codec_cfg_get_frame_duration_us

Refactor the codec_cfg_get_frame_duration function to return the
assigned numbers value, instead of a converted value, but with
support for converting the value.

Rebased to solve merge conflicts


Pasting changes from release-1.0 fo short term.

This adjusts the README and docs links for 1.0.0 (but for 2.0 in the future). The docs site now points to the 1.0.0 release and will follow release versioning for the immediate future. This is a short term adjustment to get the install and usage docs up to date for 2.0 dev, but the processes and docs are expected to drastically change in the future. If you reviewed my other PR, this one is exactly the same.

Coverage remained the same at 45.778% when pulling 028a99e6a75a3cffdd99ee6d2c1fde1afdae39ce on TheKLARKEN:master into 23f4a8652e881a0258a1b69c85e6ab18faffd2f2 on supergiant:master.


feature(simulator): store previous scheduling result as a result history

What type of PR is this?
/kind feature

What this PR does / why we need it:
So far, we only record the latest scheduling result.
This PR store the past ones in scheduler-simulator/result-history annotation in a list.
This PR doesn't delete the previous annotations, they'll remain as showing the latest results.
Which issue(s) this PR fixes:

Fixes #214
Special notes for your reviewer:
annotation gonna be like:
    scheduler-simulator/result-history: >-
      [{"scheduler-simulator/bind-result":"{}","scheduler-simulator/filter-result":"{\"node-6jp9b\":{\"AzureDiskLimits\":\"passed\",\"EBSLimits\":\"passed\",\"GCEPDLimits\":\"passed\",\"InterPodAffinity\":\"passed\",\"NodeAffinity\":\"passed\",\"NodeName\":\"passed\",\"NodePorts\":\"passed\",\"NodeResourcesFit\":\"Insufficient
      memory\",\"NodeUnschedulable\":\"passed\",\"NodeVolumeLimits\":\"passed\",\"PodTopologySpread\":\"passed\",\"TaintToleration\":\"passed\",\"VolumeBinding\":\"passed\",\"VolumeRestrictions\":\"passed\",\"VolumeZone\":\"passed\"},\"node-lgpp8\":{\"AzureDiskLimits\":\"passed\",\"EBSLimits\":\"passed\",\"GCEPDLimits\":\"passed\",\"InterPodAffinity\":\"passed\",\"NodeAffinity\":\"passed\",\"NodeName\":\"passed\",\"NodePorts\":\"passed\",\"NodeResourcesFit\":\"Insufficient
      memory\",\"NodeUnschedulable\":\"passed\",\"NodeVolumeLimits\":\"passed\",\"PodTopologySpread\":\"passed\",\"TaintToleration\":\"passed\",\"VolumeBinding\":\"passed\",\"VolumeRestrictions\":\"passed\",\"VolumeZone\":\"passed\"}}","scheduler-simulator/finalscore-result":"{}","scheduler-simulator/permit-result":"{}","scheduler-simulator/permit-result-timeout":"{}","scheduler-simulator/postfilter-result":"{\"node-6jp9b\":{},\"node-lgpp8\":{}}","scheduler-simulator/prebind-result":"{}","scheduler-simulator/prefilter-result":"{}","scheduler-simulator/prefilter-result-status":"{\"InterPodAffinity\":\"success\",\"NodeAffinity\":\"success\",\"NodePorts\":\"success\",\"NodeResourcesFit\":\"success\",\"PodTopologySpread\":\"success\",\"VolumeBinding\":\"success\",\"VolumeRestrictions\":\"success\"}","scheduler-simulator/prescore-result":"{}","scheduler-simulator/reserve-result":"{}","scheduler-simulator/score-result":"{}","scheduler-simulator/selected-node":""},{"scheduler-simulator/bind-result":"{\"DefaultBinder\":\"success\"}","scheduler-simulator/filter-result":"{\"node-6jp9b\":{\"AzureDiskLimits\":\"passed\",\"EBSLimits\":\"passed\",\"GCEPDLimits\":\"passed\",\"InterPodAffinity\":\"passed\",\"NodeAffinity\":\"passed\",\"NodeName\":\"passed\",\"NodePorts\":\"passed\",\"NodeResourcesFit\":\"Insufficient
      memory\",\"NodeUnschedulable\":\"passed\",\"NodeVolumeLimits\":\"passed\",\"PodTopologySpread\":\"passed\",\"TaintToleration\":\"passed\",\"VolumeBinding\":\"passed\",\"VolumeRestrictions\":\"passed\",\"VolumeZone\":\"passed\"},\"node-lgpp8\":{\"AzureDiskLimits\":\"passed\",\"EBSLimits\":\"passed\",\"GCEPDLimits\":\"passed\",\"InterPodAffinity\":\"passed\",\"NodeAffinity\":\"passed\",\"NodeName\":\"passed\",\"NodePorts\":\"passed\",\"NodeResourcesFit\":\"Insufficient
      memory\",\"NodeUnschedulable\":\"passed\",\"NodeVolumeLimits\":\"passed\",\"PodTopologySpread\":\"passed\",\"TaintToleration\":\"passed\",\"VolumeBinding\":\"passed\",\"VolumeRestrictions\":\"passed\",\"VolumeZone\":\"passed\"},\"node-sbxkb\":{\"AzureDiskLimits\":\"passed\",\"EBSLimits\":\"passed\",\"GCEPDLimits\":\"passed\",\"InterPodAffinity\":\"passed\",\"NodeAffinity\":\"passed\",\"NodeName\":\"passed\",\"NodePorts\":\"passed\",\"NodeResourcesFit\":\"passed\",\"NodeUnschedulable\":\"passed\",\"NodeVolumeLimits\":\"passed\",\"PodTopologySpread\":\"passed\",\"TaintToleration\":\"passed\",\"VolumeBinding\":\"passed\",\"VolumeRestrictions\":\"passed\",\"VolumeZone\":\"passed\"}}","scheduler-simulator/finalscore-result":"{}","scheduler-simulator/permit-result":"{}","scheduler-simulator/permit-result-timeout":"{}","scheduler-simulator/postfilter-result":"{\"node-6jp9b\":{},\"node-lgpp8\":{}}","scheduler-simulator/prebind-result":"{\"VolumeBinding\":\"success\"}","scheduler-simulator/prefilter-result":"{}","scheduler-simulator/prefilter-result-status":"{\"InterPodAffinity\":\"success\",\"NodeAffinity\":\"success\",\"NodePorts\":\"success\",\"NodeResourcesFit\":\"success\",\"PodTopologySpread\":\"success\",\"VolumeBinding\":\"success\",\"VolumeRestrictions\":\"success\"}","scheduler-simulator/prescore-result":"{}","scheduler-simulator/reserve-result":"{\"VolumeBinding\":\"success\"}","scheduler-simulator/score-result":"{}","scheduler-simulator/selected-node":"node-sbxkb"}]

/label tide/merge-method-squash

/assign @196Ikuchil

Just rebased.

/priority next-release

@196Ikuchil Thanks. fixed based on the suggestions 🙏

@196Ikuchil done 🙏

@sanposhiho
Thanks!
/lgtm


Turbo.visit(..., { turboFrame: "frame" })

Add support for driving a <turbo-frame> element from a
Turbo.visit(...) call.
Internally, Turbo has some constraints for finding and driving a
<turbo-frame> element, namely that it has an [id] attribute and that
it is not marked with a [disabled] attribute.
Supporting Turbo.visit calls that specify a turboFrame: option
provide an opportunity to encapsulate those details from callers while
still providing element finding utility. The turboFrame: option is
named in such a way to provide callers with an opportunity to re-use
destructured values:
const { turboFrame } = myElement.dataset

Turbo.visit("/pathname.html", { turboFrame })

Turbo.visit("/pathname.html", { frame: "x" }) strikes me as easier on the eye. I know that doesn't mesh fully with the destruct, but imo that's ok.


Update FCM version

resolution_fixed   |    by<EMAIL_ADDRESS>
FCM version 2014.09.0 is required for fcm branch operations to work with the shared repositories
https://code.metoffice.gov.uk/trac/home/wiki/FAQ#Whatisthebranchnamingconvention

Issue migrated from trac:159 at 2024-01-31 17:40:05 +1100

<EMAIL_ADDRESS>changed resolution from `` to fixed

<EMAIL_ADDRESS>changed status from accepted to closed

<EMAIL_ADDRESS>commented

2014.11.0 is released now. This is what I'm using along with cylc 6 etc on acccessdev-test at the moment. I've installed it on raijin.

<EMAIL_ADDRESS>changed status from new to accepted


Creating a Document TypeError

In IRB, I get this error.
ruby-1.9.2-head :001 > require 'similarity'
=> true
ruby-1.9.2-head :002 > corpus = Corpus.new
=> #<Corpus:0x000001013468e8 @terms={}, @documents=[], @term_document_matrix=nil, @similarity_matrix=nil>
ruby-1.9.2-head :003 > doc1 = Document.new("Broad powers for hacking inquiry")
TypeError: can't convert Symbol into Integer
from /Users/asaleh/.rvm/gems/ruby-1.9.2-head/gems/similarity-0.2.4/lib/similarity/document.rb:5:in []' 	from /Users/asaleh/.rvm/gems/ruby-1.9.2-head/gems/similarity-0.2.4/lib/similarity/document.rb:5:in initialize'
from (irb):3:in new' 	from (irb):3 	from /Users/asaleh/.rvm/rubies/ruby-1.9.2-head/bin/irb:16:in '

Ah yes, Document actually takes a hash as an argument.
Document.new(:content => "Broad powers for hacking inquiry")

I think the API could be cleaner though. Let me know if that works.


Changed mouse event, fix readme

Thanks for this! Could you post a comment about why each change was necessary?

In the readme, the links seems to not work. The solution was to use cached sources as jsdelivr.
The change for the mouse event is addressing the #11 raised "issue" (a small feature I think) that not break anything else (for the moment II cannot find anything that can break the previous behaviour).
Thanks for asking.

Excellent, thank you!


[funimation] Add new extractor

I tried to fix everything but the formats, I am couldn't get it to work.
Also, I was wrong about Hulu, as long as you are subbed, you stream all the files directly from Funimation, and Funimation doesn't work without subbing.

I have added all the required errors.
Hulu only happens when you are not logged in, I have made logging in mandatory. Geographic restrictions and wrong login information have their own errors too.

I found a free wo watch stream, doesn't even need login and not on Hulu. Changed the test to it. Now only errors are geographic restrictions, and Hulu videos.

One more thing, I want to change preferred format to lower and print a message about that. It is the only one that all shows support, free, dub or sub subscriptions or not logged-in.
How can I do that?

It is complete now, I think.

Commits should be squashed to a single commit.


upload to testflight stuck

New Issue Checklist

[ ] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description

i am trying to upload my ipa generated and it is stuck in transporter software download step.
DEBUG [2019-05-15 00:40:23.92]: [Transporter]: INFO: Downloading com.apple.transporter.aspera-macos-64/<IP_ADDRESS>062...
Command executed

bundle exec fastlane ios beta
Complete output when running fastlane, including the stack trace and command used

 [REPLACE THIS WITH YOUR INFORMATION]

Environment

 [REPLACE THIS WITH YOUR INFORMATION]

Hi @gsagwan and welcome to Fastlane! Could you please add your spaceship logs so we can learn more about what's going on? You might want to check out https://docs.fastlane.tools/actions/spaceship_logs/#spaceship_logs

HI @max-ott thanks for your response.
would need your help in generating logs with bundle exec fastlane ios beta
added in a lane, but it didn't generate.
lane :upload do
upload_to_testflight
spaceship_logs(
copy_to_path: "/Users/jenkins/spaceship.lop"
)
end

@gsagwan Can you please update your issue to include the complete output you are getting, and also your fastlane env output so we have some context? Thanks.


error 500 on cloning imbricated excludes

I was trying to clone a workspace without the contents of its folder, and did the following (erroneous) command:
$ git clone https://myserver.com/my/repo.git:exclude[:workspaces/my-workspace:exclude[:workspaces/my-workspace/workspace.josh]]:workspace=workspaces/my-workspace.git my-workspace-without-its-stuff

Of course the correct command (which seems to work) is:
$ git clone https://myserver.com/my/repo.git:exclude[::workspaces/my-workspace/:exclude[::workspaces/my-workspace/workspace.josh]]:workspace=workspaces/my-workspace.git my-workspace-without-its-stuff

But the first command gives me error 500. I need to make a smaller test case to reproduce it, but I can already say that jaeger complains that remove_dir_all "/data/git/refs/namespaces/request_0a300259-76e5-4970-8e83-6ffad75d853a" failed, error:Os { code: 2, kind: NotFound, message: "No such file or directory" }

Looks like the issue is the malformed filter inside of the exclude.
This reproduces it:
git clone https://myserver.com/my/repo.git:exclude[:workspaces] (of course missing the /)


Allocator update for use with GlobalAlloc feature

The rust Alloc trait is getting updated, per https://github.com/rust-lang/rust/issues/49668
In particular, the u8 return types for methods like alloc are getting replaced by a new type *mut Opaque. The code in dlmalloc/mod.rs doesn't compile against this new interface, with error
error[E0053]: method `dealloc` has an incompatible type for trait
  --> libsip/src/dlmalloc/mod.rs:69:5
   |
69 |     unsafe fn dealloc(&mut self, ptr: ptr::NonNull<u8>, layout: Layout) {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected extern type `std::alloc::Opaque`, found u8
   |
   = note: expected type `unsafe fn(&mut dlmalloc::Dlmalloc, std::ptr::NonNull<std::alloc::Opaque>, std::alloc::Layout)`
              found type `unsafe fn(&mut dlmalloc::Dlmalloc, std::ptr::NonNull<u8>, std::alloc::Layout)

Context: The use of global_allocator triggers rust to ask for the global_allocator feature to be added to the crate in current nightlies, which cascades to changing the Alloc trait.

This was caused because of an out-of-date rust compiler version, not a libsip problem


posh-git prompt makes PowerShell transcripts less readable

With posh-git:
>

C:\devcd log-ssh
 [
master
 ≡
]
>

C:\dev\log-sshls

    Directory: C:\dev\log-ssh

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        4/28/2016   6:21 PM          35815 LICENSE
-a----        4/28/2016   6:25 PM           4477 Log-SSH.pl
-a----        4/28/2016   6:21 PM             74 README.md

Without posh-git:
PS C:\dev> cd log-ssh
PS C:\dev\log-ssh> ls

    Directory: C:\dev\log-ssh

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a----       2016-04-28     18:21      35815 LICENSE
-a----       2016-04-28     18:25       4477 Log-SSH.pl
-a----       2016-04-28     18:21         74 README.md

What version of PowerShell? My transcripts on PS 4.0 seem to always show PS> as the prompt?

Windows:
Caption        : Microsoft Windows 7 Enterprise
OSArchitecture : 64-bit

Powershell:
Name             : Windows PowerShell ISE Host
Version          : 5.0.10586.117

I'm using the following prompt replacement function, which I got from elsewhere in this repository.  I'm thinking it's the standard thing to do, but maybe not:
	function global:prompt {
		$realLASTEXITCODE = $LASTEXITCODE
		$Host.UI.RawUI.ForegroundColor = $GitPromptSettings.DefaultForegroundColor
		Write-Host($pwd.ProviderPath) -nonewline
		Write-VcsStatus
		$global:LASTEXITCODE = $realLASTEXITCODE
		return "> "
		}

Ooh, it might have something to do with ISE? Do you see the same behavior in a normal host?

I do see similar behaviour:
PS>. 'C:\Users\«REDACTED»\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'

C:\dev
>
PS>cd Log-SSH
C:\dev\Log-SSH
 [
master
 ≡
]
>
PS>ls

    Directory: C:\dev\Log-SSH

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        4/28/2016   6:21 PM          35815 LICENSE
-a----        4/28/2016   6:25 PM           4477 Log-SSH.pl
-a----        4/28/2016   6:21 PM             74 README.md

C:\dev\Log-SSH
 [
master
 ≡
]
>
PS>exit
**********************
Windows PowerShell transcript end
End time:<PHONE_NUMBER>4455
**********************

The same thing happens for me, it looks like the transcript doesn't obey Write-Host's -NoNewLine setting.
C:\Users\bluewrite-host "test"; write-host "test"; write-host "tested"
test
test
tested
>
C:\Users\blueecho "now with nonewline"
now with nonewline
>
C:\Users\bluewrite-host -NoNewline "test"; write-host -NoNewline "test"; write-host -NoNewline "tested"
test
test
tested
>
>
>

I had noticed that.  I guess it's really PowerShell's transcription logic that's broken, not posh-git.  I'm intrigued that the > appears before the rest of the Write-Hosts.  Somehow the return value of the prompt function is getting to the transcript before the strings that are being Write-Host-ed.

Very curious. Unless we were to replace the multi-Write-Host formatting with some sort of single ANSI color-ized string, I'm not sure there's anything we can do about this. Of course, now I am very curious if a multi-colored output is even possible with a single Write-Host.

I agree.  I poked at the [Host.UI] object a little and got nowhere.  Someone wrote a wrapper for Write-Host that processes ANSI color, but I think that, even should you be able to return the entire prompt, with colours, as a single string with ANSI codes, even then one would have to change the function that prints the return value of the global prompt function to something that understands ANSI codes.  I don't know enough about PowerShell / .NET to dig that deep.

ANSI escape sequences are supported in the very latest Windows 10 insider builds (basically anything later than the November update).
PowerShell 5.1 (not yet available outside of the latest Windows Insider builds) adds a new property you can test to see if ANSI escape sequences are supported: $host.UI.SupportsVirtualTerminal
So you could write something like:
if ($PSVersionTable['PSVersion'] -ge "5.1" -and $host.UI.SupportsVirtualTerminal)
{
    $CSI = [char]0x1b + '['
    "${CSI}31mHello${CSI}32m World${CSI}0m"
}
else
{
    Write-Host -ForegroundColor DarkRed -NoNewline Hello; Write-Host -ForegroundColor DarkGreen ' World'
}

You can read more about which sequences are supported here: https://msdn.microsoft.com/en-us/library/windows/desktop/mt638032(v=vs.85).aspx

Completely forgot about this. ANSI support is in progress: #304

develop now has basic ANSI support, and transcripts are indeed fixed:

Though something funky is going on with the prompt on lines with commands:

Not sure what to say about that one, @dahlbyk -- I mean, the escape sequences are in the log...

PowerShell could strip them so they're not logged
Or, you could remove them if you don't want them
Or, you could read them somewhere that renders them (i.e. if you run that to the console, it'll render in color)

To clarify, by "something funky" I mean that the first and last lines with AnsiConsole have a truncated prompt string than doesn't include the escape sequences, while the middle two lines show the full prompt (with escape sequences, as expected).


Add support for different color schemes (includes a 'Light' theme)

Adding a user-selectable lighter-colored theme. I wanted it for printing, but others may like it in general.

I forgot this pull request existed and then implemented this feature from scratch. Oops?
Closing this PR.


Small fix with format

Travis tests have failed
Hey @AlphaWind,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
Node.js: 7.7

     npm test

><EMAIL_ADDRESS>test /home/travis/build/Lycanium-Z/Pokemon-Showdown
> eslint --cache . && tsc && mocha

config/formats.js(7,5): error TS2322: Type '({ section: string; } | { name: string; desc: string; threads: string[]; mod: string; team: strin...' is not assignable to type '(FormatsData | { section: string; column?: number | undefined; })[]'.
  Type '{ section: string; } | { name: string; desc: string; threads: string[]; mod: string; team: string...' is not assignable to type 'FormatsData | { section: string; column?: number | undefined; }'.
    Type '{ name: string; desc: string[]; mod: string; gameType: "triples"; team: string; ruleset: string[]...' is not assignable to type 'FormatsData | { section: string; column?: number | undefined; }'.
      Type '{ name: string; desc: string[]; mod: string; gameType: "triples"; team: string; ruleset: string[]...' is not assignable to type '{ section: string; column?: number | undefined; }'.
        Property 'section' is missing in type '{ name: string; desc: string[]; mod: string; gameType: "triples"; team: string; ruleset: string[]...'.
npm ERR! Test failed.  See above for more details.

Don't merge yet


esp_http_server: reword error messages (IDFGH-6900)

Noticed while using the ESP HTTP server some of the default error messages were quite poorly worded, for example:
401 Unauthorized
Server known the client's identify and it must authenticate itself to get he requested response

This PR simply adds some slightly nicer defaults

Thanks for your contribution.

sha=72e322fbbaf10f9623c3a5743ed040dc33f2c686


Fix layout for small devices

Placeholder / General issue. The responsiveness does not work out really well in many aspects for sm/xs devices (navbar, sidebar, header).

Note #111 and the comments.
@janLo pointed out some of the major issues, thanks for providing screenshots.
Help is gladly accepted.

The responsiveness was poorly designed in the first place. I dedicded to put both the gauge and contact box above the Main content in small devices since I thought they might not be noticed by the user otherwise. Suggestions:

Both boxes are hidden on mobile and can only be reached via menu / links (my preferred solution)
The user can reach the boxes via swiping zo zhe left / right
Collapsed box
Move the boxes below the main content.

Due to the length of the news site, nobody will ever find the boxes all the way down there.
Since most of our members will be looking for their traffic-status, I propose to keep the gauge at the very top. For non-members/outside the dormitories it won't be shown anyhow.

For the entry page - ok. But at least if I select "News" I want to see news and not contact or a traffic status.

That is fine, my idea was that typing "agdsn.de" will bring you to the traffic gauge immediately. If somebody selects anything else it can be hidden or moved to the bottom. The contacts can stay underneath all sites.

Please note that #358 introduces an overflowed table (the traffic data) if the devices width is too small. A rotation of the device should lead to an acceptable width and display of the full data.
I decided to merge the PR anyway, because the UI improvements outweigh this slight disadvantage.

Closing, as no longer relevant. Currently no text is overflowing, and the boxes have been moved to the bottom a while ago (and the traffic gauge does not exist anymore).


question about domain weights initialization value in paper fingure 8

Thx for the amazing paper and open codebase!  I have one question about paper fingure 8.
The domain weights initialization value  in figure 8 (step 0)  seems not equal as the Algorithm 1 Initialize domain weights α0 = 1/k.
And  domain weights initialization in figure 8a is also not equal with  figure 8b.
So what is the domain weights initialization strategy in figure 8?

The initialization is uniform, it's just that the plot doesn't start at step 0, and the plot is an exponential moving average over time steps.


[CWS] merge common paths in activity dumps

What does this PR do?

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the config template has been updated.

Yes I'm working on more tests for activity dumps in general, to base the tests of this merge on


⚠ Bofrost.nl has degraded performance

In 0679907, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 1784 ms

Resolved: Bofrost.nl performance has improved in 579abae.


pacman: 5.2.2 -> 6.0.0

Motivation for this change
Update to latest stable release. Also, apply the following patches
fixing various bugs.
https://gitlab.archlinux.org/pacman/pacman/-/commit/3401f9e142ac4c701cd98c52618cb13164f2146b.patch
https://gitlab.archlinux.org/pacman/pacman/-/commit/542910d684191eb7f25ddc5d3d8fe3060028a267.patch
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

@ofborg eval

@ofborg eval
(Sorry, ofborg's certs recently had an issue, meaning that it was unable to
react to PRs. This has been fixed, but all PRs filed in this period will need
ofborg to be manually kicked off.)

Tried it out, doesn't work:
error: failed to initialize alpm library:
(root: /, dbpath: /nix/store/8klyg28y8hss4cknb0wdpyhy523hsz3k-pacman-6.0.0/var/lib/pacman/)
could not create database

seems like it wants to write something into the Nix store because some path is broken.

Superseded by #161115


Feature request: Access to stackTrace

In MiniTest/MiniMock, it would be nice to have the ability to print out stack traces if a test fails.
Since GreyHack doesn't have the function at all, to make it dynamically detectable, I'd propose having something like globals.__Intrinsics.stackTrace - that way it's possible to detect what environment you're running in via hasIndex

I think you could just use https://github.com/ayecue/greybel-js#testlib. It's a library only available within Greybel. It also has methods such as try_to_execute which is kinda like a try-catch.
testLib = include_lib("/lib/testlib.so")

testLib.try_to_execute(function
  get_shell(null, null)
end function, function(errMessage, trace)
  print("An error appeared " + errMessage)
  print(trace.split(char(10)).len)
end function)

Well, the caveat I have is that a test error isn't a language-level error. It's simply a case where some comparison wasn't what was expected. If a real error occurs then I get a stack trace anyway of course.
I could of course do something like try to pull a key off of null, but that's going to lead to very confusing output, even if you do get a stack trace into the bargain.

Ah I see your point. Would it work you if the TestLib exposes a getStackTrace then? Also what kinda of values do you need? Do you want to get the function references?

I'm fine with testlib. If you can throw in a way for me to runtime-detect its presence via globals that would be even better. Otherwise, I'll have to leave it to the user to tell MiniTest that the functionality is available since you can't check for intrinsics.
As for the format, ideally just do what MiniScript does: return a list [] of strings for each stack level, where element 0 is the current function scope. I'd keep the strings themselves the same as what you currently print out when there's a language-level error - ensures consistency and the format is quite nice already.

Alright as soon as https://github.com/ayecue/greybel-vs/pull/94 is merged you'll be able to use get_stack_trace which is exposed via testlib. I've also added a flag globals.IS_GREYBEL everytime the interpreter is run.

Alright the PR got merged. Feel free to check if it meets your requirements.

Working perfectly. Much appreciated.


Create models and relationships and sync successfully

GIVEN a functional Express.js API
WHEN I enter the command to invoke the application
THEN my server is started and the Sequelize models are synced to the MySQL database

completed


Project set up Step not updated.

The command to add upstream remote locally is still not updated as per this repo.
Present State
Text in red box should be updated I guess.

Link to the document

Thanks, @Ayush-Khandelwal-007 👍


Logs at debug level don't get classified as debug in firefox

On Firefox, logs on the debug level only get hidden when you hide the "logs" category instead of the "debug" category.
I assume the cause is that the "debug" category seems to not exist on chromium

Kotlin does not yet have a method to expose log levels more verbose than Info.


Ensure that all pending components are loaded synchronously at startup (#1945)

Description
While investigating #1945, we found a race condition that might result in components getting loaded after actor init, causing actor init to fail. This was causing our e2e tests to rightly fail. With this change, we will make sure that the pendingComponents channel is empty before continuing initialization on startup.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #1945
Logs
...
time="2020-09-11T01:52:12.726817702Z" level=info msg="Initialized name resolution to kubernetes" app_id=actorapp instance=actorapp-fd85bf985-q284s scope=dapr.runtime type=log ver=edge
time="2020-09-11T01:52:12.728098806Z" level=info msg="component loaded. name: kubernetes, type: secretstores.kubernetes" app_id=actorapp instance=actorapp-fd85bf985-q284s scope=dapr.runtime type=log ver=edge
time="2020-09-11T01:52:12.753135575Z" level=info msg="component loaded. name: statestore, type: state.redis" app_id=actorapp instance=actorapp-fd85bf985-q284s scope=dapr.runtime type=log ver=edge
time="2020-09-11T01:52:12.758109089Z" level=info msg="component loaded. name: messagebus, type: pubsub.redis" app_id=actorapp instance=actorapp-fd85bf985-q284s scope=dapr.runtime type=log ver=edge
time="2020-09-11T01:52:12.758279989Z" level=info msg="all outstanding components processed" app_id=actorapp instance=actorapp-fd85bf985-q284s scope=dapr.runtime type=log ver=edge
time="2020-09-11T01:52:12.75846399Z" level=info msg="actor runtime started. actor idle timeout: 5s. actor scan interval: 1s" app_id=actorapp instance=actorapp-fd85bf985-q284s scope=dapr.runtime.actor type=log ver=edge
...

Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

/ok-to-test

Hi @wcs1only @yaron2
Actually, the pending component processing is almost synchronously. Because the channel has no buffer. If we want to ensure all components have been processed, a fake flag component after all loaded components at beginning can be put into the channel i think.
I'll take a closer look at the test case issue as described.

And the fake marker is not exactly proper if we treat the pending Component as continuous, which can walk around the issue immediately.
May a right way it to initialize the actor also in the same channel. And treat the store as a dependency.

Based on what we're seeing, I firmly believe we need to process synchronously at init and then can continue with looping the channel.

@yaron2 . The logical is blocked here, except the last one, and it can be approximated as synchronous if we put a marker a into it after all of the components.
	for _, comp := range a.components {
		a.pendingComponents <- comp
	}

Thanks. Can you suggest the fix as markdown here?

Thanks. Can you suggest the fix as markdown here?

We can work around the issue like following. It should work.
func (a *DaprRuntime) processComponents() {
	for comp := range a.pendingComponents {
+		if comp.Name == "" {
+			continue
+		}
		if err := a.processOneComponent(comp); err != nil {
			log.Errorf("process component %s error, %s", comp.Name, err)
		}
	}
}
...
	for _, comp := range a.components {
		a.pendingComponents <- comp
	}
+	// Marker to ensure the all components before processed
+	a.pendingComponents <- components_v1alpha1.Component{}

Thanks. Can you suggest the fix as markdown here?

We can work around the issue like following. It should work.
func (a *DaprRuntime) processComponents() {
	for comp := range a.pendingComponents {
+		if comp.Name == "" {
+			continue
+		}
		if err := a.processOneComponent(comp); err != nil {
			log.Errorf("process component %s error, %s", comp.Name, err)
		}
	}
}
...
	for _, comp := range a.components {
		a.pendingComponents <- comp
	}
+	// Marker to ensure the all components before processed
+	a.pendingComponents <- components_v1alpha1.Component{}

@yaron2 Please feel free to mention me in any issues if you think it is related to me, or i can help. :)

Thanks. Can you suggest the fix as markdown here?

We can work around the issue like following. It should work.
func (a *DaprRuntime) processComponents() {
	for comp := range a.pendingComponents {
+		if comp.Name == "" {
+			continue
+		}
		if err := a.processOneComponent(comp); err != nil {
			log.Errorf("process component %s error, %s", comp.Name, err)
		}
	}
}
...
	for _, comp := range a.components {
		a.pendingComponents <- comp
	}
+	// Marker to ensure the all components before processed
+	a.pendingComponents <- components_v1alpha1.Component{}

Yeah. it's simple and should work. :)

Oh, I hadn't read this thread prior to iterating on this. I went with an explicit synchronous shutdown and restart of the processComponents go routine. Should achieve the same ends?

/ok-to-test

Local run of this shows we block successfully
time="2020-09-11T15:39:42.39689515Z" level=info msg="Initialized name resolution to kubernetes" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime type=log ver=edge
time="2020-09-11T15:39:42.398172131Z" level=info msg="component loaded. name: kubernetes, type: secretstores.kubernetes" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime type=log ver=edge
time="2020-09-11T15:39:42.43416412Z" level=info msg="component loaded. name: statestore, type: state.redis" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime type=log ver=edge
time="2020-09-11T15:39:42.543546776Z" level=info msg="component loaded. name: messagebus, type: pubsub.redis" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime type=log ver=edge
time="2020-09-11T15:39:42.543976003Z" level=info msg="waiting for all outstanding components to be processed" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime type=log ver=edge
time="2020-09-11T15:39:42.560933482Z" level=info msg="successful init for output binding test-topic (bindings.kafka)" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime type=log ver=edge
time="2020-09-11T15:39:42.561561122Z" level=info msg="component loaded. name: test-topic, type: bindings.kafka" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime type=log ver=edge
time="2020-09-11T15:39:42.561601424Z" level=info msg="all outstanding components processed" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime type=log ver=edge
time="2020-09-11T15:39:42.561653727Z" level=info msg="actor runtime started. actor idle timeout: 5s. actor scan interval: 1s" app_id=actorapp instance=actorapp-fd85bf985-7g7qf scope=dapr.runtime.actor type=log ver=edge

/ok-to-test

@yaron2 Please feel free to mention me in any issues if you think it is related to me, or i can help. :)

Thanks @yittg, you helped us here. We chose a slightly different approach that's more explicit in nature. I'll reach out soon regarding other work.
Thanks again!

@yaron2 @wcs1only
Sorry for the delay reply. I have taken a look at the commit.
A potential issue may exist.
We closed the pending channel and then open a new one. During this period, the updating goroutine may put a component into the closed channel, which will lead to panic.

@yaron2 @wcs1only
Sorry for the delay reply. I have taken a look at the commit.
A potential issue may exist.
We closed the pending channel and then open a new one. During this period, the updating goroutine may put a component into the closed channel, which will lead to panic.

Right you are, the code in question:
https://github.com/dapr/dapr/blob/master/pkg/runtime/runtime.go#L417-L428
Might be best to back this out and go with your initial suggestion.


Inconsistency about whether resuming a prompt should count as a retry

Version
master branch
Describe the bug
In Prompt.cs, ResumeDialogAsync calls RepromptDialogAsync which calls OnPromptAsync with isRetry set to false:
public override async Task RepromptDialogAsync(ITurnContext turnContext, DialogInstance instance, CancellationToken cancellationToken = default(CancellationToken))
{
    var state = (IDictionary<string, object>)instance.State[PersistedState];
    var options = (PromptOptions)instance.State[PersistedOptions];
    await OnPromptAsync(turnContext, state, options, false, cancellationToken).ConfigureAwait(false);
}

However, in ActivityPrompt.cs, RepromptDialogAsync calls OnPromptAsync with isRetry set to true:
public override async Task RepromptDialogAsync(ITurnContext turnContext, DialogInstance instance, CancellationToken cancellationToken = default(CancellationToken))
{
    var state = (IDictionary<string, object>)instance.State[PersistedState];
    var options = (PromptOptions)instance.State[PersistedOptions];
    await OnPromptAsync(turnContext, state, options, true, cancellationToken).ConfigureAwait(false);
}

I know it's a rare case when a prompt would be resumed, but in such a case should the retry prompt be used or not?
[bug]

I made that change, specifically with the feedback from Gabo after he reviewed the PR to add isRetry onto ActivityPrompt.OnPromptAsync(), which you can see in the history here.
It's specifically counting as a retry when re-prompting a user, so logically it made sense that it would go towards a retry count, and also aligned it in parity with JS (retries were completely missing from C# prior to the PR linked).

Additionally, the ActivityPrompt class was just admittedly "weird" in comparison to the other "Prompts", as it is in Microsoft.Bot.Builder.Dialogs namespace and does not derive from Prompt class, but instead directly from Dialog.
Furthermore, deriving directly from Dialog, it's the only one you'll see that overrides the Dialog.RepromptDialogAsync() method

Given that it is re-prompting the user, I still agree with Gabo and think that it should in fact count as a retry (it's not simply use a "resume" on a prompt, implying it might've gone away to take care of something else first, before continuing where it had left off). That, and to remain in parity with what we had in the other language SDKS.

Thoughts, @gabog ?

@gabog - Have you looked at this?

It looks like OAuthPrompt doesn't implement its own ResumeDialogAsync or RepromptDialogAsync, so this issue only applies to Prompt and ActivityPrompt.

Here's a real-world example of a prompt being resumed: https://stackoverflow.com/questions/64765378/textprompt-reprompts-after-interruption


Use git clone, not fork for local installation.

Forking is only for contributing back to this project. Everyone else should be cloning.

:+1:

This seems incompatible with CUSTOMIZE.md where you direct users to edit config/locales/en.yml for their installation.

I don't understand how cloning makes the project any more or less compatible with customizations than forking. Both cloning and forking allow you to edit and version your files, and fetch changes from upstream if desired. If anything, cloning is better because when you push a PR to a fork, GitHub assumes that you want to send that PR to the upstream repo by default. So, if you are planning on sending PRs to your own version of the project a lot more often than to upstream, cloning is the way to go. If you plan on contributing back to the upstream repo, you can create a fork for that. That way, you separate the work for your custom version from the contribution work.
Also, we don't plan on modifying en.yml and settings.yml very often. Up until a minor change I made a few days ago, settings.yml had not been updated since October. The most recent changes to en.yml were to make it compatible with Ohana API, which was only just recently declared version 1.0. Before that, en.yml had not been changed since the end of November.
When you say "jump through hoops with Git", could you be more specific? Have you jumped through any of those hoops with this project?
If this project was a gem, and you made changes to your settings.yml, then updated to the latest version of the gem which contained changes to settings.yml, those latest changes would not automatically be incorporated into your version. If you wanted to pull those changes, you would have to visit this repo and see what the changes were, then manually copy and paste them into your custom file.
With Git, you would merge the upstream changes, and if there were conflicts, you would resolve them. Otherwise, you would be done.

In CONTRIBUTE.md, it says this:

Inside the config/locales folder, you will find a file called en.yml. In that file, you can customize much of the user-facing text on the website. Most of the text should be ready to go, but there is one specific setting you should customize: the location value under branding.

If I actually go and update location in en.yml, I need to commit it in order to push to Heroku. This immediately puts me in the position of having to deal with repeated git merges or rebases from upstream if I want to stay in sync. Those are the git hoops I'm referring to. No such merging or rebasing is necessary if all I need to do to update to the latest Ohana engine is to update my Gemfile to the latest version and run bundle update.
You're right that cloning v. forking doesn't make a difference here. What I meant is that it's misleading to make users think that they'll have a sane workflow if they simply work off a clone of codeforamerica/ohana-web-search without adding additional remotes. If they fork, their default origin will be something to which they can actually push the commits you're asking them to make.
In the case of the settings.yml for the gem/engine integration, I expect there would be an app-level settings.yml that would override the engine-level settings.yml (or something to that effect). In order to get the latest engine-level settings.yml changes, you'd update your Gemfile (or perhaps update the ref of a Git submodule pointing to an embedded ohana-web-search-engine).

Also, I'm sorry if we've gotten off on the wrong foot @monfresh. I certainly don't want to come in and offer unsolicited opinions on your hard work. I'm just trying to figure out what the best way to work with the Ohana apps to support @hackforla.

Also, I'm sorry if we've gotten off on the wrong foot @monfresh.

No worries. I'm just trying to understand the situation and make sure to clear things up.

it's misleading to make users think that they'll have a sane workflow if they simply work off a clone of codeforamerica/ohana-web-search without adding additional remotes.

We make no claims about workflow, so I don't see how this is misleading. We're also not mandating cloning over forking. Anyone is free to use the project however they choose. Based on my personal experience using a fork to build San Mateo County's custom version, I wish I had used a clone because of the additional step I have to go through every time I push a PR to the fork. The additional step is that I have to make sure I am sending the PR to my fork, and not the upstream repo. I've seen a lot of people get tripped up over this.
Based on the above, I think cloning offers an easier, less confusing, and less error-prone workflow, and the only other difference would be the additional setup of the GitHub repo + corresponding remote, which is a one-time operation that you can perform from the command line with the hub CLI in a few seconds.

If I actually go and update location in en.yml, I need to commit it in order to push to Heroku. This immediately puts me in the position of having to deal with repeated git merges or rebases from upstream if I want to stay in sync.

You will have to commit your changes in order to push to Heroku regardless of whether or not the project is a gem. In order to get updates from upstream, the difference between regular repo and gem (in terms of the first step you need to perform) is running git merge vs bundle update [gem].

all I need to do to update to the latest Ohana engine is to update my Gemfile to the latest version and run bundle update

This is where I think there is confusion. As I mentioned in my previous comment:

If this project was a gem, and you made changes to your settings.yml, then updated to the latest version of the gem which contained changes to settings.yml, those latest changes would not automatically be incorporated into your version. If you wanted to pull those changes, you would have to visit this repo and see what the changes were, then manually copy and paste them into your custom file.
With Git, you would merge the upstream changes, and if there were conflicts, you would resolve them. Otherwise, you would be done.

What I think this boils down to is whether you think that manually applying upstream changes is a better workflow than using Git. In other words, whether or not this project is a gem, you will still have to deal with conflict resolution. I'm not yet convinced that a gem offers a big enough workflow improvement to warrant the additional development and maintenance effort.
It would be helpful to know if you've actually already tried syncing with upstream and if you've run into any issues. If not, then until there is an actual problem with syncing, I think it's premature to discuss making big changes.

I agree with you about the cloning in terms of easing in-project PR flow. It's definitely preferable for that reason. I also think you're right about the source of the confusion being a difference in understanding in how the gem/engine workflow would look.
I'm not at all suggesting applying changes from upstream manually. Any upstream changes to settings.yml or other files would be released in a new version of the gem and would be picked up by a bundle update ohana-web-search-engine. This is no different than using any other gem. My contention is that this is a lower bar to entry than having to deal with repeated git merges or rebases over time for more junior developers.
In my own personal case, I'm well able to deal with either workflow. I just think it raises the barrier to entry for localities creating and maintaining their own Ohana deployments since dealing with git conflicts generally takes a higher level of skill than dealing with Bundler updates.
I'm still curious whether @declan and @digitalWestie have actually deployed Ohana as an engine as @greggish suggested in #798. That might be a useful data point in terms of the actual level of effort involved in creating an maintaining the engine separate from the app.

All that being said, this discussion probably belongs in #798.

To get back on topic, how about adding this to the README after the git clone line:
$ git remote set-url origin git@github.com:<your GitHub username>/ohana-web-search.git

This would require creating the repo manually too, so it would be nice to mention that as well.

Something like this could even be good:
Clone it on your computer and navigate to the project's directory:

    git clone git@github.com:codeforamerica/ohana-web-search.git
    cd ohana-web-search
    git remote rename origin upstream

Create a new repository on Github to hold your clone of `ohana-web-search`. This repository can be named whatever makes sense for your project (e.g. `mycity-ohana-web-search`). Then follow the instructions to add a new `origin` remote to your local repository:

    git remote add origin git@github.com:<GITHUB_USER>/<YOUR_REPO>.git

That looks great. Wanna submit that in a PR?
I would also make sure GitHub is spelled correctly (capital H), and add a link to GitHub's tutorial on creating a repo: https://help.github.com/articles/create-a-repo/

Sure. I'll submit a PR with a bit better wording once this merges. I'm planning to do some work on the @hackforla Ohana this week, so I'll do it then.


Release TiDB Dashboard v6.6.0

main change:

quick bind https://github.com/pingcap/tidb-dashboard/pull/1473
slow query warnings https://github.com/pingcap/tidb-dashboard/pull/1472

Codecov Report

:exclamation: No coverage uploaded for pull request base (release@19c3743). Click here to learn what that means.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff             @@
##             release    #1477   +/-   ##
==========================================
  Coverage           ?   24.67%
==========================================
  Files              ?      167
  Lines              ?    14972
  Branches           ?        0
==========================================
  Hits               ?     3695
  Misses             ?    11006
  Partials           ?      271

Flag
Coverage Δ

backend_integration
8.93% <0.00%> (?)

backend_ut
27.25% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

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


Expose helper to escape highlighted strings.

Following #132, here is a simpler version of the feature :)

Coverage increased (+0.05%) to 88.704% when pulling 0f28c7f273bb57ddf37f98a6a709b1449e076413 on feature/xss-protection-2 into c952a60d19db02154775f306c23013dff40d33e3 on master.


[SPARK-37224][SS][FOLLOWUP] Add benchmark on basic state store operations

What changes were proposed in this pull request?
This PR proposes to add a new benchmark to measure the performance on basic state store operations, and the result file.
The proposed change of SPARK-37224 (#34502) is applied in the benchmark. As the benchmark number provides, turning off the config brings lots of performance gain in micro-benchmark perspective, while it is still slower than memory-based state store.
Why are the changes needed?
To track and verify further performance improvements.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Result file from manual run is included in this PR.

I'll rebase this PR to leave the only last commit once #34502 is reviewed and merged.

Test build #145328 has started for PR 34630 at commit fbd0fe9.

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

Test build #145328 has finished for PR 34630 at commit fbd0fe9.

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

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

Just rebased since we merged #34502

Test build #145380 has started for PR 34630 at commit e992580.

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

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

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

Test build #145380 has finished for PR 34630 at commit e992580.

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

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

cc @viirya

Thanks. Merging to master.

Thanks @dongjoon-hyun and @viirya for reviewing and merging!


Is this project dead?

Looks that way (142 forks, 13 open pull requests etc)

Shame because it is really useful.

Anyone know of a good fork of this that's being maintained?

Cartalyst\NestedSets for laravel 5

In my projects i use lazychaser/laravel-nestedset

I've forked this repo and am looking to continue it's development. If you'd like me to look in to any issues, please create a failing unit test and submit a pull request here: https://github.com/gazsp/baum. Thanks.

@gazsp thank you! Lets hope @etrepat can give us a hint on where this repo is going.

@gazsp thanks!

@gazsp You are a gentleman and a scholar sir, thank you!


Change $TOMO to TOMO

In some view, we still use $TOMO, it should be just TOMO

Implementation pull request:
https://github.com/tomochain/tomomaster/pull/189