text:
Quote column names to avoid name colisions with reserved names or keywords

What type of PR is this?
bug
What this PR does / why we need it:
Imagine we have this CSV file (called nutrient.csv, from the https://fdc.nal.usda.gov/download-datasets.html // Supporting data for Downloads - April 2021 (CSV – 1.0M):
id,name,unit_name,nutrient_nbr,rank
1001,Solids,G,201,200
1002,Nitrogen,G,202,500
1003,Protein,G,203,600
1004,Total lipid (fat),G,204,800
1005,"Carbohydrate, by difference",G,205,1110

The command ./csv2db generate --file nutrient.csv --table nutrient --verbose generates:
Finding file(s).
Found 1 file(s).
Generating CREATE TABLE statement.
CREATE TABLE nutrient
(
  ID VARCHAR(1000),
  NAME VARCHAR(1000),
  UNIT_NAME VARCHAR(1000),
  NUTRIENT_NBR VARCHAR(1000),
  RANK VARCHAR(1000)
);

Executing this query against a MySQL Community Server - GPL 8.0.21. will result in
[ERROR in query 2] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'RANK VARCHAR(1000)
)' at line 7

The reason: RANK is not quoted and a reserved keyword since MySQL 8.0.2.
A similar error will happen for the insert statements.
Solution: Quoting column names.
This PR quotes the column names in the CREATE and INSERT statements.
Special notes for your reviewer:
This was tested against MySQL Community Server - GPL 8.0.21.
Other database types were not tested.

Thanks a lot @andygrunwald for this PR!
Unfortunately, I'm pretty sure that different databases use different quoting techniques.
Will have to go through the documentation of each supported database and find the correct characters to use.

@gvenzl Would it be a (pragmatic) solution to apply these changes only for MySQL?
Like
if cfg.db_type == f.DBType.MYSQL.value:
    # Apply "`"
else:
    # normal behaviour

Let me know what you think

Hey @andygrunwald,
You know, I was thinking along similar lines this morning.
Not all databases may have the same restrictions with keywords, some might be smart enough to understand when it's a column name and hence not need the quoting.
On the other hand, I know that Oracle and I believe SQL Server and Db2 will also introduce case sensitivity the moment an identifier is quoted, i.e. SELECT "RANK" FROM nutrient is a different column than SELECT "rank" FROM nutrient while SELECT RANK FROM nutrient and SELECT rank FROM nutrient is the same.
Right now csv2db makes all identifier uppercase as the case does not matter.
But the moment quotes come into the picture...
I also need to read up on MySQL and on what other semantics the quoting character may imply as well.
Perhaps it's not a biggy to just quote all the identifiers for all the supported databases, perhaps it's just necessary for MySQL and perhaps it's best left to another command-line option.

@gvenzl Sounds good and reasonable. Thanks for putting thoughts into this.
Is there anything that comes into your mind where I can help/support?

Hey @andygrunwald,
Sorry, Monday was a bank holiday over here and I took Friday off as well to go to the middle of nowhere and recharge a bit.
Hence why I didn't reply until now.
You could help with the research for quoted identifiers if you like.
That is my next step, see what's implied with the quotes for each supported database, as described above.
We have to check the following:

Oracle
MySQL
Postgres
SQL Server
Db2

@gvenzl No worries. Take your time. Life is more important. I did not expect a super-fast response, because I know how it can be to maintain a project.
Ok, let's start with the research:
1. Oracle
Oracle seems to be using the double quote ".
I was not able to find an official documentation page about this, but a few other sources:
Ispirer SQLWays Database Migration Software > Oracle Reserved Words:

There are reserved words in Oracle which cannot be used as identifiers (table or column names etc.) without being delimited with double quotation marks ("). The only exception is that you cannot use the uppercase reserved word ROWID as an identifier, even in double quotation marks.

StackOverflow: How do I escape a reserved word in Oracle?:

[...] Oracle appears to use double quotes (", eg "table") and apparently requires the correct case—whereas, for anyone interested, MySQL defaults to using backticks (`) except when set to use double quotes for compatibility.

2. MySQL
In MySQL you quote reserved keywords via the backtick character:
CREATE TABLE `interval` (begin INT, end INT);

Source: MySQL 8.0 Reference Manual  /  Language Structure  /  Keywords and Reserved Words
3. Postgres
Here, it seems to be a simple double quote " character:

There is a second kind of identifier: the delimited identifier or quoted identifier. It is formed by enclosing an arbitrary sequence of characters in double-quotes ("). A delimited identifier is always an identifier, never a key word. So "select" could be used to refer to a column or table named “select”, whereas an unquoted select would be taken as a key word and would therefore provoke a parse error when used where a table or column name is expected. The example can be written with quoted identifiers like this:

Source: Documentation → PostgreSQL 13 → 4.1. Lexical Structure → 4.1.1. Identifiers and Key Words
4. SQL Server
It seems that square brackets [FIELD] are used to escape a reserved keyword.
I was not able to find THE one original resource to proof this, but those links might be useful:
StackOverflow: How to deal with SQL column names that look like SQL keywords?
What is the use of the square brackets [] in sql statements?
Delimited Identifiers (Database Engine)
5. Db2
Seems to be the double quote character as well ":

However, a keyword can be used as an identifier in a context where it is a reserved word, by specifying it as a delimited identifier. For example:

ALL cannot be a column name in a SELECT statement, unless it is delimited. However, if the quotation mark (") is the escape character that begins and ends delimited identifiers, “ALL” can be used as a column name in a SELECT statement.
[...]

Source: Db2 for z/OS > Reserved words
Sidenote
I have only deep experience with MySQL. All other database types are based on documentation reading.
Does this help @gvenzl ?

Hey @gvenzl,
based on my research, I added quote support of column names for all five database types.
Would be nice if you can provide a review.
Let me know what you think

Hey @gvenzl,
any update on this? Anything I can do to speed it up?

Hey @andygrunwald, my sincere apologies!
Life has caught up with me and I dropped the ball on this until now.
Thanks a lot for your analysis and the PR!
I found that SQL Server seems to support both, the square brackets ([]) and the double-quote identifiers (""): https://docs.microsoft.com/en-us/sql/t-sql/statements/set-quoted-identifier-transact-sql?view=sql-server-ver15
The latter is thanks to the parameter QUOTED_IDENTIFIER which the documentation says is turned ON by default but actually, on my test environment, it appears to be OFF by default.
The double-quoted identifiers are also what the SQL standard specifies.
The only outlier appears to be MySQL.
However, as stated before, there is another implication with quoted identifiers, which is that they also treat the identifier case-sensitive.
Unfortunately, to make matters a bit more complex, the way how they treat the case is also not consistent
For example, Db2 treats everything in uppercase by default:
db2 => connect to test;

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.4.0
 SQL authorization ID   = DB2INST1
 Local database alias   = TEST

db2 => create table test (rank int);
DB20000I  The SQL command completed successfully.
db2 =>
db2 => create table test1 ("rank" int);
DB20000I  The SQL command completed successfully.
db2 =>
db2 => create table test2 ("RANK" int);
DB20000I  The SQL command completed successfully.
db2 =>
db2 => select rank from test;

RANK
-----------

  0 record(s) selected.

db2 => select rank from test1;
SQL0104N  An unexpected token "" was found following "SYSIBM.RANK".  Expected
tokens may include:  "OVER".  SQLSTATE=42601
db2 =>
db2 => select rank from test2;

RANK
-----------

  0 record(s) selected.

db2 => describe table test;

                                Data type                     Column
Column name                     schema    Data type name      Length     Scale Nulls
------------------------------- --------- ------------------- ---------- ----- ------
RANK                            SYSIBM    INTEGER                      4     0 Yes

  1 record(s) selected.

db2 => describe table test1;

                                Data type                     Column
Column name                     schema    Data type name      Length     Scale Nulls
------------------------------- --------- ------------------- ---------- ----- ------
rank                            SYSIBM    INTEGER                      4     0 Yes

  1 record(s) selected.

db2 => describe table test2;

                                Data type                     Column
Column name                     schema    Data type name      Length     Scale Nulls
------------------------------- --------- ------------------- ---------- ----- ------
RANK                            SYSIBM    INTEGER                      4     0 Yes

  1 record(s) selected.

db2 =>

You can see that table test1 actually has a lowercase specified column named rank. Given that the database treats every identifier as uppercase by default, the select rank from test1; really becomes a select RANK from TEST1; which in that case does not exist.
The same is true for Oracle DB:
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL> create table test (rank int);

Table created.

SQL> create table test1 ("rank" int);

Table created.

SQL> create table test2 ("RANK" int);

Table created.

SQL> select rank from test;

no rows selected

SQL> select rank from test1;
select rank from test1
       *
ERROR at line 1:
ORA-00904: "RANK": invalid identifier

SQL> select rank from test2;

no rows selected

SQL> describe test;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 RANK						    NUMBER(38)

SQL> describe test1;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 rank						    NUMBER(38)

SQL> describe test2;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 RANK						    NUMBER(38)

SQL>

However, Postgres on the other hand treats everything lowercase by default, unlike Oracle or Db2:
psql (13.4 (Debian 13.4-1.pgdg100+1))
Type "help" for help.

test=> create table test (rank int);
CREATE TABLE
test=> create table test1 ("rank" int);
CREATE TABLE
test=> create table test2 ("RANK" int);
CREATE TABLE
test=> select rank from test;
 rank
------
(0 rows)

test=> select rank from test1;
 rank
------
(0 rows)

test=> select rank from test2;
ERROR:  column "rank" does not exist
LINE 1: select rank from test2;
               ^
test=> \d test;
                Table "public.test"
 Column |  Type   | Collation | Nullable | Default
--------+---------+-----------+----------+---------
 rank   | integer |           |          |

test=> \d test1;
               Table "public.test1"
 Column |  Type   | Collation | Nullable | Default
--------+---------+-----------+----------+---------
 rank   | integer |           |          |

test=> \d test2;
               Table "public.test2"
 Column |  Type   | Collation | Nullable | Default
--------+---------+-----------+----------+---------
 RANK   | integer |           |          |

test=>

Yet MySQL does not care about the case of the quoted identifiers:
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create table test1 (`rank` int);
Query OK, 0 rows affected (0.05 sec)

mysql> create table test2 (`RANK` int);
Query OK, 0 rows affected (0.07 sec)

mysql> select `rank` from test1;
Empty set (0.00 sec)

mysql> select `rank` from test2;
Empty set (0.00 sec)

mysql> describe test1;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| rank  | int  | YES  |     | NULL    |       |
+-------+------+------+-----+---------+-------+
1 row in set (0.01 sec)

mysql> describe test2;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| RANK  | int  | YES  |     | NULL    |       |
+-------+------+------+-----+---------+-------+
1 row in set (0.01 sec)

This is also noted in the MySQL documentation:

Partition, subpartition, column, index, stored routine, event, and resource group names are not case-sensitive on any platform, nor are column aliases.

SQL Server, btw, does also not seem to care much about the case-sensitivity of the quoted identifier:
1> create table test ([rank] int);
2> go
1> create table test1 ([rank] int);
2> go
1> create table test2 ([RANK] int);
2> go
1> select rank from test;
2> go
rank
-----------

(0 rows affected)
1> select rank from test1;
2> go
rank
-----------

(0 rows affected)
1> select rank from test2;
2> go
rank
-----------

(0 rows affected)
1> sp_help test;
2> go
Name                                                                                Owner                                                                                Type                            Created_datetime
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ------------------------------- -----------------------
test                                                                                dbo                                                                                user table                      2021-08-17 02:51:56.267

Column_name                                                                                Type                                                                                Computed                            Length      Prec  Scale Nullable                            TrimTrailingBlanks                  FixedLenNullInSource                Collation
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ----------------------------------- ----------- ----- ----- ----------------------------------- ----------------------------------- ----------------------------------- --------------------------------------------------------------------------------------------------------------------------------
rank                                                                                int                                                                                no                                            4 10    0     yes                                 (n/a)                               (n/a)                               NULL

Identity                                                                                Seed                                     Increment                                Not For Replication
-------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------- ---------------------------------------- -------------------
No identity column defined.                                                                                NULL                                     NULL                NULL

RowGuidCol
--------------------------------------------------------------------------------------------------------------------------------
No rowguidcol column defined.

Data_located_on_filegroup
--------------------------------------------------------------------------------------------------------------------------------
PRIMARY

The object 'test' does not have any indexes, or you do not have permissions.

No constraints are defined on object 'test', or you do not have permissions.

No foreign keys reference table 'test', or you do not have permissions on referencing tables.
No views with schema binding reference table 'test'.
1> sp_help test1;
2> go
Name                                                                                Owner                                                                                Type                            Created_datetime
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ------------------------------- -----------------------
test1                                                                                dbo                                                                                user table                      2021-08-17 02:52:01.017

Column_name                                                                                Type                                                                                Computed                            Length      Prec  Scale Nullable                            TrimTrailingBlanks                  FixedLenNullInSource                Collation
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ----------------------------------- ----------- ----- ----- ----------------------------------- ----------------------------------- ----------------------------------- --------------------------------------------------------------------------------------------------------------------------------
rank                                                                                int                                                                                no                                            4 10    0     yes                                 (n/a)                               (n/a)                               NULL

Identity                                                                                Seed                                     Increment                                Not For Replication
-------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------- ---------------------------------------- -------------------
No identity column defined.                                                                                NULL                                     NULL                NULL

RowGuidCol
--------------------------------------------------------------------------------------------------------------------------------
No rowguidcol column defined.

Data_located_on_filegroup
--------------------------------------------------------------------------------------------------------------------------------
PRIMARY

The object 'test1' does not have any indexes, or you do not have permissions.

No constraints are defined on object 'test1', or you do not have permissions.

No foreign keys reference table 'test1', or you do not have permissions on referencing tables.
No views with schema binding reference table 'test1'.
1> sp_help test2;
2> go
Name                                                                                Owner                                                                                Type                            Created_datetime
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ------------------------------- -----------------------
test2                                                                                dbo                                                                                user table                      2021-08-17 02:52:06.880

Column_name                                                                                Type                                                                                Computed                            Length      Prec  Scale Nullable                            TrimTrailingBlanks                  FixedLenNullInSource                Collation
-------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------- ----------------------------------- ----------- ----- ----- ----------------------------------- ----------------------------------- ----------------------------------- --------------------------------------------------------------------------------------------------------------------------------
RANK                                                                                int                                                                                no                                            4 10    0     yes                                 (n/a)                               (n/a)                               NULL

Identity                                                                                Seed                                     Increment                                Not For Replication
-------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------- ---------------------------------------- -------------------
No identity column defined.                                                                                NULL                                     NULL                NULL

RowGuidCol
--------------------------------------------------------------------------------------------------------------------------------
No rowguidcol column defined.

Data_located_on_filegroup
--------------------------------------------------------------------------------------------------------------------------------
PRIMARY

The object 'test2' does not have any indexes, or you do not have permissions.

No constraints are defined on object 'test2', or you do not have permissions.

No foreign keys reference table 'test2', or you do not have permissions on referencing tables.
No views with schema binding reference table 'test2'.
1>

1> set quoted_identifier on;
2> go
1> create table test (rank int);
2> go
1> create table test1 ("rank" int);
2> go
1> create table test2 ("RANK" int);
2> go
1> select rank from test;
2> go
rank
-----------

(0 rows affected)
1> select rank from test1;
2> go
rank
-----------

(0 rows affected)
1> select rank from test2;
2> go
rank
-----------

(0 rows affected)
1>

I think that the conclusion of all of this is that if we introduce quoted identifier support into csv2db, it will have to be via an additional parameter, not just blank over everything.
There is still an outstanding question of what the quote characters should be for SQL Server, the legacy [] or the standard, yet apparently not turned on by default "".
Last but not least, identifiers also apply to table names.
If one would want to quote identifiers, it is to be assumed that it should apply for both, the column names, as well as the table name itself.

@gvenzl Thanks a lot for this big analysis. Let's break down the challenges followed by suggestions from me:
Quoted identifier via an additional parameter
That is a very good idea, I agree. This will not change the current behavior, but also add the possibility for all.
Let me work on this and modify this PR.

[ ] Add an additional parameter to quote fields and tables

Quote character (" vs. [])
What do you think about using " as default and adding yet another parameter to switch the quote character to [].
By this, the user can switch, because they know their setup best.
Quoting table names
Good point. Thanks for catching this.
Here, I agree as well. Table names should also be quotes once enabled.
Let me work on this and modify this PR.

[ ] When quoting is enabled, also quote table names

Lower vs. Uppercase of database systems
Maybe it is useful to document this knowledge because it seems to be applied once identifiers are quoted.
A table in the README can help here.
Your feedback
What do you think?
If these changes are applied, do you see any chance of adding this into the main branch?

Thanks @andygrunwald for breaking it down!
I agree with all the points you have made.
For the [] vs "" I still want to research a bit more what SQL Server actually recommends.
Adding a separate parameter for just that strikes me as a bit too excessive.
It could be that, for example, it turns out that [] is already deprecated/discouraged.
And if not, csv2db could perhaps be smart enough to check for the parameter at runtime and make the decision itself (if that parameter value is accessible to non-DBA database users that a user will most likely load data with).
Yeah, I think it we have tracked it all down, we can merge it into main.

We should also agree on the parameter name.
I think --quote-identifiers makes it quite explicit.
However, I just saw th-q (--quote) is already occupied for the string quotation of the actual data.
Perhaps we don't need a shorthand parameter for this?

Personally, I am a fan of being explicit and try to use long parameter names.
I am fine with --quote-identifiers, but also --use-quote-identifiers would work as well. Or --keyword-quoting or something like this.
I am also OK with dropping a shorthand.
Let me try to reserve some time in the next days to get something done. I will ping you for early reviews. Ok?

Great! quote in the case of --quote-identifiers is a verb, i.e. "Please csv2db, quote these identifiers for me".
For the use, technically it should be --use-quoted-identifiers, as they are generally referred to as "quoted identifiers". "Keyword" is technically not correct, as a keyword is different from an identifier.
Consider, for example, SELECT col1 FROM table1;: both col1 and table1 are identifiers, while SELECT and FROM are keywords.
Given your comments, I would say let's please go with --quote-identifiers.

Fair enough and good point. Thanks. Lets go for it.

Awesome, thanks!

@gvenzl I spent some time applying the changes we have discussed.
Read through it and let me know what you think:
Quoted identifier via an additional parameter
I introduced a new flag --quote-identifiers (see https://github.com/csv2db/csv2db/pull/51/commits/0deba4aa466a1df9a41737604edfc2133ee87377) and updated the docs (see https://github.com/csv2db/csv2db/pull/51/commits/0707922cdc6921020092b5472d9678c80c8d09c8).
Quote character for SQL-Server (" vs. [])
A bit more research needs to be done on this topic.
I am not that familiar with SQL-Server.
For now, I added a TODO to decide which SQL-Server quote character we use.
See https://github.com/csv2db/csv2db/pull/51/commits/301cb0c67adb3babb4bc107af2c461eec1bd4534
The question remains on how we progress here on this.
How can I help? Do you plan to do it?
One idea can be to document the limitation, create an issue to fix this.
This would have the benefit of not blowing up this PR further and not blocking it any longer.
What do you think?
Quoting table names
Done in https://github.com/csv2db/csv2db/pull/51/commits/63dc1da9b2734c672d921ee9b6a3e9eedf06aefe
Lower vs. Uppercase of database systems
As discussed, I documented the behavior in https://github.com/csv2db/csv2db/pull/51/commits/0707922cdc6921020092b5472d9678c80c8d09c8
Open topics
Unit/Integration tests
We don't have any automated tests yet.
Personally, I would prefer to wait for an easier test solution like described in https://github.com/csv2db/csv2db/issues/52
Feedback
That's it from my side.
Anything you have in mind what should be tackled?

Superseded by #61

authors: andygrunwald gvenzl


text:
make network compile using Box

One of the two or both need to be boxed to fix these errors:
   Compiling azure_mgmt_network v0.1.0 (/Users/cameron/rs/azure-sdk-for-rust/services/mgmt/network)
error[E0072]: recursive type `IpConfigurationPropertiesFormat` has infinite size
    --> services/mgmt/network/src/package_2020_06/models.rs:1503:1
     |
1503 | pub struct IpConfigurationPropertiesFormat {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ recursive type has infinite size
...
1511 |     pub public_ip_address: Option<PublicIpAddress>,
     |                            ----------------------- recursive without indirection
     |
help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `IpConfigurationPropertiesFormat` representable
     |
1511 |     pub public_ip_address: Box<Option<PublicIpAddress>>,
     |                            ^^^^                       ^

error[E0072]: recursive type `IpConfiguration` has infinite size
    --> services/mgmt/network/src/package_2020_06/models.rs:1516:1
     |
1516 | pub struct IpConfiguration {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^ recursive type has infinite size
...
1520 |     pub properties: Option<IpConfigurationPropertiesFormat>,
     |                     --------------------------------------- recursive without indirection
     |
help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `IpConfiguration` representable
     |
1520 |     pub properties: Box<Option<IpConfigurationPropertiesFormat>>,
     |                     ^^^^                                       ^

error[E0072]: recursive type `PublicIpAddressPropertiesFormat` has infinite size
    --> services/mgmt/network/src/package_2020_06/models.rs:5239:1
     |
5239 | pub struct PublicIpAddressPropertiesFormat {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ recursive type has infinite size
...
5245 |     pub ip_configuration: Option<IpConfiguration>,
     |                           ----------------------- recursive without indirection
     |
help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `PublicIpAddressPropertiesFormat` representable
     |
5245 |     pub ip_configuration: Box<Option<IpConfiguration>>,
     |                           ^^^^                       ^

error[E0072]: recursive type `models::PublicIpAddress` has infinite size
    --> services/mgmt/network/src/package_2020_06/models.rs:5264:1
     |
5264 | pub struct PublicIpAddress {
     | ^^^^^^^^^^^^^^^^^^^^^^^^^^ recursive type has infinite size
...
5270 |     pub properties: Option<PublicIpAddressPropertiesFormat>,
     |                     --------------------------------------- recursive without indirection
     |
help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `models::PublicIpAddress` representable
     |
5270 |     pub properties: Box<Option<PublicIpAddressPropertiesFormat>>,
     |                     ^^^^                                       ^

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0072`.
error: could not compile `azure_mgmt_network`

To use the network_fixed branch, these would be the dependencies:
[dependencies]
azure_mgmt_network = { branch = "network_fixed", git = "https://github.com/ctaggart/azure-sdk-for-rust" }
azure_identity = { branch = "network_fixed", git = "https://github.com/ctaggart/azure-sdk-for-rust" }
tokio = { version = "*", features = ["macros"] }
reqwest = { version = "*", features = ["json"] }

@bmc-msft, it will be in master once https://github.com/Azure/azure-sdk-for-rust/pull/76 is merged.

source: gharchive/pull-request

repo: ctaggart/azure-sdk-for-rust

license: MIT

license_type: permissive

license_source: github-api


text:
feat: create a bootstrap command to initialize users on the first run.

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Ability to bootstrap goiardi installation

What is the new behavior (if this is a feature change)?
Added new flag --bootstrap. When used it will introduce a clean exit from the app once core actors have been correctly created. Useful in situation of multi stage initial setup where you want to extract admin pem file and/or add a custom logic before actual goairdi deployment.

Does this PR introduce a breaking change? no

Huh, that's an interesting idea that hadn't occurred to me. I need to double check and make sure that there's not a reason that the default actor creation wasn't in that particular spot for a reason, but otherwise it looks good to me.

in theory we can leave it as it is, I just moved it because (since we are going to terminate execution flow early) it felt like a waste to do chore cleaning.

Absolutely; I just wanted to double check that there wasn't a reason I put it in that location. Turns out there isn't.

authors: alekc ctdk

repo: ctdk/goiardi

license_source: bigquery


text:
怎么分模块打包

您好，怎么根据不同模块分别打包不同的crn bundle

假设我们有两个业务，它们分别是通过crn-cli init flight和crn-cli init bus创建的。
我们分别进入flight和bus目录执行crn-cli pack。这时候会在工程目录生成对应打包后产物publish里面有rn_common和rn_flight,rn_bus。其中rn_common是公共部分，rn_flight和rn_bus对应业务包。
总结: 进入不同的工程目录，分别执行crn-cli pack进行打包。

假设我们有两个业务，它们分别是通过crn-cli init flight和crn-cli init bus创建的。
我们分别进入flight和bus目录执行crn-cli pack。这时候会在工程目录生成对应打包后产物publish里面有rn_common和rn_flight,rn_bus。其中rn_common是公共部分，rn_flight和rn_bus对应业务包。
总结: 进入不同的工程目录，分别执行crn-cli pack进行打包。

您好，非常感谢您的回答。这样建立两个项目是可以这样，那假如一个项目里，有三个模块，分别打包，有好的方法吗？

source: gharchive/issue

authors: blackwuxin fangcaiwen

repo: ctripcorp/CRN


text:
最近发现配置更新推送机制失效了，没有异常日志，只有5分钟一次的拉取机制

最近发现配置更新推送机制失效了，没有异常日志，只有5分钟一次的拉取机制，有碰到类似问题的吗？

你找一下客户端的日志，应该是有日志的。Warning级别的也看一下，估计是长连接有问题。

@LittleShrimp1987 之前在群里提这个问题的也是你吧，看群里的聊天记录应该解决了？

我的问题解决了，是我自己加一个spring mvc filter的时候，把http long polling那种异步请求结果DeferredResult 的response body给覆盖为空了，去掉这个filter就好了

我自己的问题，解决了。

authors: LittleShrimp1987 lepdou nobodyiam

repo: ctripcorp/apollo


text:
docker镜像层下载不下来

docker镜像有一层下载不下来
Status: Downloaded newer image for mysql:5.7
Pulling apollo-quick-start (nobodyiam/apollo-quick-start:)...
latest: Pulling from nobodyiam/apollo-quick-start
6c40cc604d8e: Downloading   这一层下载不了，试了好几次
e78b80385239: Download complete
f41fe1b6eee3: Download complete
f81fe3873b24: Download complete
6ee996dcbacb: Download complete
bf515fdbd069: Download complete
5e4fe6eab272: Download complete
7d18aca46713: Download complete
cdbb4cafaa13: Download complete
ERROR: error parsing HTTP 408 response body: invalid character '<' looking for beginning of value: "408 Request Time-out\nYour browser didn't send a complete request in time.\n\n\n"

检查下网络，或者弄一个镜像加速吧
Pulling apollo-quick-start (nobodyiam/apollo-quick-start:)...
latest: Pulling from nobodyiam/apollo-quick-start
6c40cc604d8e: Pull complete
e78b80385239: Pull complete
f41fe1b6eee3: Pull complete
f81fe3873b24: Pull complete
6ee996dcbacb: Pull complete
bf515fdbd069: Pull complete
5e4fe6eab272: Pull complete
7d18aca46713: Pull complete
cdbb4cafaa13: Pull complete
Creating apollo-dbdata ... done
Creating apollo-db     ... done
Creating apollo-quick-start ... done

case先关闭了，如还有问题，可以提供更多信息，或进群交流。

authors: abelzhyb nobodyiam


text:
openapi 是否支持对集群的操作

openapi 是否支持对集群的操作，比如创建集群、删除集群

目前不支持


text:
Add a backup of the desired output csv

Verified that code works.

Great job!

authors: KevinHanson StewartUF


text:
Repeated Wrong Perms on /var/run/chrony

Seems to be working, but I do see perm issue a lot in the log. Running in Docker on a RPi4 and an Intel Nuc not with the 'higher security option. Log is pulled from the rpi4, similar on the nuc. Volumes: /var/lib/chrony /etc/chrony /run/chrony Build: cturra/docker-ntp build-date:- 2022-02-27T03:59:53+0000
Thanks! And thanks for the docker image!
2022-07-06T01:54:05Z Wrong permissions on /var/run/chrony
2022-07-06T01:54:05Z Disabled command socket /var/run/chrony/chronyd.sock
2022-07-06T01:54:05Z Disabled control of system clock
2022-07-06T01:54:11Z Selected source 69.89.207.99 (0.north-america.pool.ntp.org)
2022-07-06T01:54:58Z chronyd exiting
2022-07-06T01:55:05Z chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP -SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 -DEBUG)
2022-07-06T01:55:05Z Wrong permissions on /var/run/chrony
2022-07-06T01:55:05Z Disabled command socket /var/run/chrony/chronyd.sock
2022-07-06T01:55:05Z Disabled control of system clock
2022-07-06T01:55:10Z Selected source 142.147.88.111 (2.north-america.pool.ntp.org)
2022-07-06T01:55:11Z Selected source 192.5.41.209 (ntp2.usno.navy.mil)
2022-07-06T02:45:40Z chronyd exiting
2022-07-06T02:45:56Z chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP -SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 -DEBUG)
2022-07-06T02:45:56Z Wrong permissions on /var/run/chrony
2022-07-06T02:45:56Z Disabled command socket /var/run/chrony/chronyd.sock
2022-07-06T02:45:56Z Disabled control of system clock
2022-07-06T02:47:34Z Forward time jump detected!
2022-07-06T02:47:40Z Selected source 192.5.41.209 (ntp2.usno.navy.mil)
2022-07-10T07:24:52Z Source 68.171.16.4 replaced with 45.32.207.136 (0.north-america.pool.ntp.org)
2022-07-12T15:41:16Z chronyd exiting
2022-07-12T15:41:32Z chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP -SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 -DEBUG)
2022-07-12T15:41:32Z Wrong permissions on /var/run/chrony
2022-07-12T15:41:32Z Disabled command socket /var/run/chrony/chronyd.sock
2022-07-12T15:41:32Z Disabled control of system clock
2022-07-12T15:43:07Z Selected source 192.5.41.209 (ntp2.usno.navy.mil)
2022-07-12T15:44:20Z Source 129.146.64.32 replaced with 72.14.183.239 (0.north-america.pool.ntp.org)
2022-07-19T14:33:34Z chronyd exiting
2022-07-19T14:33:51Z chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP -SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 -DEBUG)
2022-07-19T14:33:51Z Wrong permissions on /var/run/chrony
2022-07-19T14:33:51Z Disabled command socket /var/run/chrony/chronyd.sock
2022-07-19T14:33:51Z Disabled control of system clock
2022-07-19T14:35:30Z Forward time jump detected!
2022-07-19T14:35:36Z Selected source 192.5.41.209 (ntp2.usno.navy.mil)

hey @phantum29, sorry to hear you're having a rough time with directory permissions and apologies for my delayed response.
thanks for providing such detailed information! based on the details you've shared, it sounds like you're mounting /run/chrony with a volume, is that right? if so, there is probably ownership or permission issues with that external (to the docker container volume). during startup there is a script that checks these permissions, but that would only be effective if they can be modified by the root process of the container. you can see that here.
https://github.com/cturra/docker-ntp/blob/main/assets/startup.sh#L8-L9
from my locally running version of the container, here is what the run directory and it's contents look like (note: i am not using any volumes):
$> docker exec -ti ntp ls -l /run/
total 0
drwxr-x---    2 chrony   chrony          80 Jul 25 15:59 chrony

$> docker exec -ti ntp ls -l /run/chrony
total 4
-rw-r--r--    1 root     root             2 Jul 17 19:09 chronyd.pid
srwxr-xr-x    1 chrony   chrony           0 Jul 17 19:09 chronyd.sock

i hope this helps point you in the right direction. let me know how you make out.

Thank you! I thought the perms were correct but somehow they were wrong. Sorry I didn't double-check that and thank you for such a thorough response. Really appreciate the container!

repo: cturra/docker-ntp


text:
custom style not working

If i add custom style as follows
import * as customStyle from 'react-tabtab/lib/themes/bootstrap';
This works fine.
However, if i create my own style  following instructions and put into themes/index.js. Import as follows
import * as customStyle from '../themes';
Then it does not work. Not work meaning the styles are not picked up from my index.js, there are no errors either.
My index.js is exact copy of https://github.com/ctxhou/react-tabtab/tree/master/src/themes/bootstrap

Hi @prodigylabs
Could you paste your copy code to let me know more?
Do you change this line to import {styled} from 'react-tabtab'?

authors: ctxhou prodigylabs

repo: ctxhou/react-tabtab


text:
Contact Details
No response
What would you like to ask or discuss?

正常情况hdfs日志应该是 /data/ds2hdfs/dolphinscheduler/2023-09-22/4292/1149520/3552154.log 这个格式

正常情况hdfs日志应该是 /data/ds2hdfs/dolphinscheduler/2023-09-22/4292/1149520/3552154.log 这个格式

是因为日志格式 1149520/3552154.log 有带 .（dot）号，我们这边解析escape了，查看一下，
https://github.com/cubefs/compass/blob/main/task-application/src/main/java/com/oppo/cloud/application/util/EscapePathUtil.java#L26
    public static String escape(String str) {
        if (str != null) {
            return str.replaceAll("\\s+|:|\\.+|~", "_");
        }
        return null;
    }

所以这个是正常的逻辑处理吗？

所以这个是正常的逻辑处理吗？

之前我们使用flume上传日志，发现:有异常，替换为下划线了，如果不使用flume可以改下，但奇怪都是dot也需要替换，我们再确认下，你可以先去掉看看

所以这个是正常的逻辑处理吗？

@cn-tingguo 这里有个hadoop文件合理标准，可以看下
https://hadoop.apache.org/docs/r3.2.2/hadoop-project-dist/hadoop-common/filesystem/model.html#File_references

但是我通过flume上传目录的时候是这种格式，hdfs 版本是2.6。

我注释掉住特殊字符转移的代码后还是会提示_log 路径不存在，是还有在其他抵挡校验吗

但是我通过flume上传目录的时候是这种格式，hdfs 版本是2.6。
我注释掉住特殊字符转移的代码后还是会提示_log 路径不存在，是还有在其他代码中校验吗

不应该，你clean下，另外使用新的数据看看， 只要改return str.replaceAll("\\s+|:|\\.+|~", "_");

修改代码 return str.replaceAll("\s+|:|~", "_"); 重新编译，目前正常获取日志路径

good, nice!
| |
zhuangzebo
|
|
@.***
|
---- 回复的原邮件 ----
| 发件人 | @.> |
| 发送日期 | 2023年9月22日 17:04 |
| 收件人 | @.> |
| 抄送人 | @.> ,
@.> |
| 主题 | Re: [cubefs/compass] [Question]: 日志路径解析的，为什么会出现_log结尾呢 (Issue #126) |
修改代码 return str.replaceAll("\s+|:|~", "_"); 重新编译，目前正常获取日志路径
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>

authors: cn-tingguo zebozhuang

repo: cubefs/compass


text:
Minimum text size: Only check text nodes with actual text in them

We're raising failures for elements that have no text (or just whitespace) in them.

Fixed in https://github.com/cucumber-ltd/bbc-a11y/pull/86

authors: joshski mattwynne


text:
Add a release workflow

Adds an automated release workflow. So far this only works for publishing a Ruby gem, and will need to be extended to publish other language/platform packages.
See https://github.com/cucumber/common/issues/1688
Checklist:

[x] Generate a new RubyGems API token and add it as RUBYGEMS_API_KEY secret in the Release environment.
[x] Generate a new NPM API token and add it as NPM_TOKEN secret in the Release environment.
[x] Add Go publishing
[x] Add Java publishing
[x] Add JavaScript publishing

Great work @mattwynne. I have many questions.

Where in the process is a git tag created?
Who will the creator of the git tag?
Will that git tag be signed?
Will the git tag be on a commit on main or on releases/*?
Do we want to be able to use the Merge Button to merge unsigned PRs?
Are we ok with unsigned commits on main?
Do we want to make sure all commits on releases/* are signed? If so, do we need to squash-merge from main?
The workflow uses various cucumber-actions/* - let's add some links to https://github.com/cucumber-actions in the scripts. (Can you invite me again to that org @mattwynne)
Where is the release version number picked up from? The branch name? If so, what happens when a 2nd commit is pushed to the same releases/* branch?

I feel that the tag should be created locally by the person triggering the release, and that the release action should only be triggered when a new tag is pushed to the releases/* branch (rather than for every commit pushed to the branch).

Another thing to consider is retries. The package managers are occasionally down or unresponsive (especially sonatype, where maven artifacts are published). If a tag is pushed, and the release action fails, we should be able to re-trigger the action manually via GitHub's web interface.

Would it make sense to have separate release-java.yml, release-ruby.yml etc workflows? That way we can manually rerun just the ones that have failed, and not the others.

@mattwynne we have made some tests here: https://github.com/cucumber/release-tests

@mattwynne we have made some tests here: https://github.com/cucumber/release-tests

@aurelien-reeves I like the approach of splitting the release / publish workflows and using the release published event to trigger the package publishing!
Let's pair / ensemble on this on Wednesday?

I've added an NPM publish action and the secret for it, so Ruby and NPM are good to go.

Thanks for the explanations @mattwynne - makes a lot more sense to me now.
For Maven publishing we can try https://github.com/marketplace/actions/action-maven-publish (there are more here)
For Go releases we just need to create and push a go/v$version git tag.
If one of the publish actions fail, I don't think we have an automated way to retry. That worries me.

The version numbers in the various package decriptors (and go code) will have to be bumped before we start the release process. We should figure out how to automate this. Maybe we can reuse some of the scripts from common.

We need to add several secrets to the Release environment. We should document how to do this, and where to find the secrets. I assume we can get most of them from the secrets repo, but the NPM_TOKEN is not in that repo.
@mattwynne I assume you added a new one in https://www.npmjs.com/settings/cukebot/tokens - but once added they cannot be read. If we want a token per repo, that's fine, but then the tokens must be named. Right now there are way too many tokens in there - we should delete as many as possible and start fresh.

We need to merge https://github.com/cucumber-actions/create-release/pull/6 and make a new release of that action before we can merge this PR. Then I think we can test the release process.

We need to add several secrets to the Release environment. We should document how to do this, and where to find the secrets. I assume we can get most of them from the secrets repo, but the NPM_TOKEN is not in that repo.

Yes, we need to document how to do it. Where would be a good place do you think?
No, they've all been generated fresh. I think this is good practice.

@mattwynne I assume you added a new one in https://www.npmjs.com/settings/cukebot/tokens - but once added they cannot be read. If we want a token per repo, that's fine, but then the tokens must be named. Right now there are way too many tokens in there - we should delete as many as possible and start fresh.

As far as I can tell there's no facility for naming tokens in npmjs.com 🤷 FWIW the one I generated for this repo is the one starting 1604. The other recent one (starting 95d2) is used by the tests for the https://github.com/cucumber-actions/publish-npm/ action.
I have no idea what the others are for, or why there are so many. I would assume that once we've finished automating all the releases of our javascript packages we can just delete all the older ones.

If one of the publish actions fail, I don't think we have an automated way to retry. That worries me.

Do you mean you want to automatically retry if the publish fails? Or you want to be able to manually re-run the automated release workflow? I expect you mean the latter.
I think we have a couple of approaches we could take:

Make sure that the publish jobs are idempotent, so we can just re-run the whole workflow if one of them fails.
Split the different platform publish jobs into different workflows, so we can easily re-run individual ones.

I have a slight preference for (1) since making them idempotent feels sensible anyway in case something gets triggered unintentionally, but (2) is probably a quicker win. I suggest we do that for now.
I liked what you did in https://github.com/cucumber/release-tests to chain the actual publish jobs off of the release published event. Maybe we could do that?

If one of the publish actions fail, I don't think we have an automated way to retry. That worries me.

Do you mean you want to automatically retry if the publish fails? Or you want to be able to manually re-run the automated release workflow? I expect you mean the latter.

I meant manually retrying a publish for just a single language.

I think we have a couple of approaches we could take:
1. Make sure that the publish jobs are idempotent, so we can just re-run the whole workflow if one of them fails.

The whole workflow also includes create-release, so that would have to be idempotent too. If we want to make them idempotent and still error when something is wrong is to check if the release has already been made and then do nothing. That means querying github releases, rubygems, npm, nexus/sonatype (maven) etc.
They are hopefully all easy to query, but I'm worried about nexus/sonatype - not sure if it's possible there.

2. Split the different platform publish jobs into different workflows, so we can easily re-run individual ones.

This would be my preference. @aurelien-reeves and I experimented with this yesterday in https://github.com/cucumber/release-tests/tree/main/.github/workflows (a throwaway repo).
We tried to make the publish-* workflows trigger on the on.release event, but couldn't make it work. I'm not even sure we can make it work - we still want to make sure the job only runs in the Release environment, and I don't see how that could be activated unless the event is a on.push to a release/* branch.

I have a slight preference for (1) since making them idempotent feels sensible anyway in case something gets triggered unintentionally, but (2) is probably a quicker win. I suggest we do that for now.
I liked what you did in https://github.com/cucumber/release-tests to chain the actual publish jobs off of the release published event. Maybe we could do that?

Not sure - see comment above.

I'm not even sure we can make it work - we still want to make sure the job only runs in the Release environment, and I don't see how that could be activated unless the event is a on.push to a release/* branch.

Ah yes. We don't have enough security around Releases - they could be created manually by anyone with the commit bit.
So we need to stick to triggering these when there's a push to the protected branch.

The whole workflow also includes create-release, so that would have to be idempotent too. If we want to make them idempotent and still error when something is wrong is to check if the release has already been made and then do nothing. That means querying github releases, rubygems, npm, nexus/sonatype (maven) etc.

I've actually done this already in the tests for the rubygems and npm publish actions.

They are hopefully all easy to query, but I'm worried about nexus/sonatype - not sure if it's possible there.

Yeah that's a risk until we've done it.
curl https://search.maven.org/solrsearch/select\?q\=cucumber\&wt\=json looks pretty good (from here)?

I liked what you did in https://github.com/cucumber/release-tests to chain the actual publish jobs off of the release published event. Maybe we could do that?

Not sure - see comment above.

I reckon we can have several separate workflows all going off the push event on the release/* branches, which should give us the best of both worlds.

I think this is good to go, eh? We can easily / safely factor out a publish-go action later.

I guess you have heavily tested the releases workflows as part of https://github.com/cucumber/release-tests?
If so, it looks good to me :)

authors: aslakhellesoy aurelien-reeves mattwynne

repo: cucumber/cucumber-expressions


text:
shared binary

The following is a proposal for how cucumber could be built in the future. There is binary that is responsible for all shared logic (CLI parsing, reading gherkin files, compiling pickles, basic infrastructure running, formatting results). This binary would be written in go or some other language that allows us to compile binaries for each OS. Then there are a series of language specific libraries which use the binary to run tests.
Logic for the language specific libraries:

If needed, fetch operating system specific binary (this could also be done during the install process where possible)

Store in .cucumber/

Execute binary as a child process (passing all command line options). Communicate with the binary over stdin / stdout via lines of JSON. The binary requests the language specific library to do the following things:

Load support code

Request includes: paths to load
Reply with

array of step definitions (id, expression text, expression type)
array of parameter types (id, regular expression)

Setup test run

Run before all hooks - reply with possible error when done

Setup test case

Run before each hooks - reply with possible error when done

Run test step

Request includes

Id
Arguments (each has a parameter type ids if it needs to be transformed)

Run step with given id - reply with possible error when done

Teardown test case

Run after each hooks - reply with possible error when done

Teardown test run

Run after all hooks - reply with possible error when done

Print to stdout

Request includes: text

Print to stderr

Request includes: text

Exit

Request includes: exit code

Generate step definition snippet

Request includes:

Text
Type - cucumber expression or regular expression

Reply with a step definition snippet

This is similar to the cucumber wire protocol but built in a way that the ruby dependency is removed and allows language specific code to be the entry point.
I want to spike this out on cucumber-js with the shared binary being written in node for the purposes of the spike. Primary goals would be to pull the language specific code and see how the interface feels.
I’m uncertain how custom formatters / plugins would fit into this but those could potentially be done with a formatter streaming to a named pipe.
Please bring up any issues you can think of. I’m sure there are features in some of the other cucumber flavors that I am unaware of.

Thanks for bringing this up @charlierudolph! Inthink this would be a great topic for discussion at Cukenspace (preferrably Sunday as I'm busy Saturday).
I have a lot of ideas that are similar to yours and I'll dump them here when I find time, hopefully before cukenspace.

Neither Cucumber-Ruby not Cucumber-JVM have built in support for parallel execution, but there are third solutions for achieving that (parallel_cucumber, cucumber-jvm-parallel-plugin). In that direction, I have imagined what massive parallel execution on a computing grid could look like. We already have the Pickle abstraction and the Gherkin to Pickle compiler implemented in several languages, so it seems natural to use that as a foundation. I imagine a central controller dispatching Pickles Events to the different executors in the computing grid, the executors creates Test Cases from the Pickles, executes them and pass back a Test Case Result Event.
In a more detailed view I imagine that an executor is generating (the normal) Test Case Started/Finished, and Test Step Started/Finished Events, but over the network they are compressed to a Test Case Result Event, from which the original events can be recreated on the controller side.
    Controller            |               Network        |        Executor(s)
                          |         Pickle Event         |
                          |      ---------------->       |
                          |                              |    Test Case Started Event
                          |                              |    <--------------------
                          |                              |    Test Step Started Event
                          |                              |    <--------------------
                          |                              |    Test Step Finished Event
                          |                              |    <--------------------
                          |                              |    Test Case Finished Event
                          |                              |    <--------------------
                          |    Test Case Result Event    |
                          |    <--------------------     |
 Test Case Started Event  |                              |
 <--------------------    |                              |
 Test Step Started Event  |                              |
 <--------------------    |                              |
 Test Step Finished Event |                              |
 <--------------------    |                              |
 Test Case Finished Event |                              |
 <--------------------    |                              |

This way less events will be sent over the network (which may or may not be important), and formatters listening to event of the controller have the events from test case execution serialized which definitely simplify their implementation.
With this structure it would be possible to

execute suites in parallel, that is some executors execute end-to-end and others execute directly against the the domain layer.
have the executors use different languages for step definitions, like in the suites case the end-to-end testing use one step definitions language, and the domain layer testing use another step definitions language.

Cucumber is a good library connect tester and developer.
Using cucumber ,developer could write less code but add more test case by Tester.
I alway suggest my team and our customer use cucumber to improve poor unit test.
I dont like gauge because it can not embed in source code.it's not friendly for developer.

Some brief thoughts from me to share before we get to talk about this face-to-face.

I like the idea of having less codeabases doing the same / similar thing in different languages
I like the idea of making behaviour more consistent across implementations
I worry that we'd inhibit contributions to Cucumber by using a lower-level language like Go for most of the guts of it.
I worry that trying to build one giant binary that does everything might be a big project
I worry that if we end up having to start servers or whatever in order to "serve" platform-specific glue code to the cross-platform binary, the overall UX might end up clunky. That's why SpecFlow turned out to be better than Cuke4Nuke.

I think I'd like to see us figure out where the seams are, and think about budding off smaller pieces, like a console formatter binary/ies that takes a stream of results NJSON and emits a stream of text, or a runtime binary that takes a stream of pickles as input, calls step definitions and emits results NDJSON. To me, building smaller, compose-able pieces like this would be a less risky approach. Gradually hollowing out the individual implementations, rather than trying to replace them in one go.

I worry that if we end up having to start servers or whatever in order to "serve" platform-specific glue code to the cross-platform binary, the overall UX might end up clunky. That's why SpecFlow turned out to be better than Cuke4Nuke.

I'm was thinking of hosting the binaries on github attached to releases (example). The individual libraries can pack the binaries with their source code if they like. I was against that to start because it means a user has the binaries for all supported os on their machine when they only need one. Pulling the binary can be done during the install process where possible or it can be pulled down and cached locally on first run.

Attempting to split this large binary into smaller pieces I think we could potentially break it into the following:

gherkin-parser binary

input

current working directory
feature paths
tag filters
name filters

output

streaming event protocol for events of type: 'source', 'gherkin-document', 'pickle', 'pickle-accepted', 'pickle-rejected''

pickle-runner binary

input

accepted pickles
other runtime config (fail-fast, dry-run)
step definition configs (for each step definition it needs an id and the pattern)
hook definition configs (for each hook definition it needs an id and the tags)

interacts with calling process telling it to run hooks / steps and is back the results
output

streams event protocol for events of type: 'test-case-prepared', 'test-case-started', 'test-step-started', 'test-step-finished', 'test-case-finished'

formatter-binary - probably one binary for each type or a single binary with all the built ins

input

stream of event protocol

output

stream of text

The first is mostly extracted with the gherkin library but requires implementations in every language and we could shave that down to 1. After implementing the event protocol on cucumber-js, a lot of logic moved into the formatter as that was the only place that needed it.

Yeah the interesting part of this will be building the pick-runner binary.

@charlierudolph shall we open this issue again?
Want to join the Slack discussion? https://cucumberbdd.slack.com/archives/C62D0FK0E/p1520406289000034

This is currently in progress over at https://github.com/cucumber/cucumber-pickle-runner
/cc @mpkorstanje

Currently, the pickle runner binary is a WIP I will be experimenting with on cucumber-js, once it gets to a workable state. I am happy to get feedback if the current api is not sufficient for a particular implementation.

I'm closing this as cucumber-engine is now a thing.
Please see the roadmap for details about how we'll get there.

Woohoo! So glad to have this rolling now!

Big thanks to you @charlierudolph for putting so much momentum behind it!

authors: aslakhellesoy brasmusson charlierudolph lxbzmy mattwynne

repo: cucumber/cucumber

license: mit


text:
fix: version command

What
fix: version command

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: cujarrett/spellcheckme


text:
Add default context to users context constructor

In addition to #4, it would be nice if our own context constructor, was provided with the default context. So we can use the context in our injected methods.
import initServices from './services';

initialize({
  context: async ({ userId, db }) => ({
    services: initServices({ userId, db }),
  }),
});

// services
export default ({ userId, db }) => ({
  users: {
    find: ({ organisation }) => {
      const hasAccess = !!db.organisations.findOne({ _id: organisation, members: userId });
      if (!hasAccess) {
        return [];
      }

      return db.users.find({ organisation }).fetch();
    },
  },
});

// resolvers
{
  Query: {
    getUsers(_, { organisation }, { services }) {
      return services.users.find({ organisation });
    }
  }
}

Understood. Good idea.

authors: smeijer theodorDiaconu

repo: cult-of-coders/apollo


text:
🛑 DDL Service is down

In cb1cbc2, DDL Service (https://dl.culturecloud.gq) was down:

HTTP code: 0
Response time: 0 ms

Resolved: DDL Service is back up in 76506c9.

repo: culturecloud/status


text:
Latest update

BRAT is telling me that the update failed as there is no main.js

The same here

Sorry, because that was an unfinished version that has now been released.

repo: cumany/obsidian-floating-toc-plugin


text:
[backport] Use _csr_row_index for CSR matrix major-axis slicing with step

Backport of #3852

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit f40bae62ccb150f7c749146cd2533f4c68ef1c7f, target branch v8) failed with status FAILURE.

Jenkins, test this please.

Jenkins CI test (for commit f40bae62ccb150f7c749146cd2533f4c68ef1c7f, target branch v8) failed with status FAILURE.

Jenkins, test this please.

Jenkins CI test (for commit f40bae62ccb150f7c749146cd2533f4c68ef1c7f, target branch v8) failed with status FAILURE.

Jenkins, test this please.

Jenkins CI test (for commit f40bae62ccb150f7c749146cd2533f4c68ef1c7f, target branch v8) failed with status FAILURE.

Jenkins, test this please.

Jenkins CI test (for commit f40bae62ccb150f7c749146cd2533f4c68ef1c7f, target branch v8) succeeded!

LGTM.

authors: asi1024 chainer-ci toslunar

repo: cupy/cupy


text:
[WIP] ROCm: Fix getDeviceProperties for HIP

Close #4107. Follow-up of #3858.
Output without any error:
$ python -c "import cupy; cupy.show_config()"
OS                           : Linux-5.4.0-42-generic-x86_64-with-debian-buster-sid
CuPy Version                 : 8.0.0rc1
NumPy Version                : 1.19.1
SciPy Version                : 1.5.2
CUDA Root                    : /usr
CUDA Build Version           : 0
CUDA Driver Version          : 313700
CUDA Runtime Version         : 3137
cuBLAS Version               : 22200
cuFFT Version                : 10003839
cuRAND Version               : 201001
cuSOLVER Version             : (3, 5, 0)
cuSPARSE Version             : 0
NVRTC Version                : (9, 0)
Thrust Version               : 100902
CUB Build Version            : 201001
cuDNN Build Version          : None
cuDNN Version                : None
NCCL Build Version           : None
NCCL Runtime Version         : None
cuTENSOR Version             : None
Device 0 Name                : Vega 20
Device 0 Compute Capability  : 96

Thanks!

Jenkins, test this please

Jenkins CI test (for commit 32e6cb89ec739c5e00b9aebf3ab320801fc4c0cc, target branch master) succeeded!

authors: chainer-ci emcastillo leofang


text:
Fix cuFFT callback compilations - v2

Close #4746.
This is an alternative of #4743 (proposal v2 mentioned there). The solution here is to avoid cimporting any CuPy modules so that we don't expose Cython-level APIs. The incurred overhead is OK (which I will post later): about +/- 5 us (yes, it can be faster in some cases, which I didn't expect), see https://github.com/cupy/cupy/pull/4853#issuecomment-794903196.
TODO:

[x] Fix https://github.com/cupy/cupy/issues/4746#issuecomment-785543235

Looks like if I mark it slow (f3523ab), all tests in tests/cupy_tests/fft_tests/test_callback.py do not run. @emcastillo Is this OK? Should I undo it? (The entire file takes about 3 mins to run, so not marking it slow is perhaps fine?)

I reverted it.
Jenkins, test this please

Jenkins CI test (for commit 4ec88e8d5e70d69d6540e09ffde94f66cb87a660, target branch master) succeeded!

/test

Thanks @kmaehashi @emcastillo! Sorry for the all the troubles with the fft callbacks...Hope this time we fix it for good!

authors: chainer-ci kmaehashi leofang


text:
Add title Icon

Hi, there this is Pratik Srivastava I am a participator in the GSSOC'22 and I would make a change bu adding title Icon to your website which will make the website more attractive

.

go ahead @pratiksrivastava01

repo: curiomind-e-learning/curiomind


text:
[Accordion] Update Accordion.Container-based Styling

This PR sets out to make the following changes to the Accordion component:

Update the box-shadow property.
Add a default 4px border-radius.
Add the following border-radius behavior: only the top-most and bottom-most accordion elements should be rounded.

The first two updates are relatively trivial. The third update required expanding the styling functionality of Accordion.Container, which has additional CSS selectors that handle the border-radius & focus outline requirements.
border-radius is set via long-hand properties border-top-left-radius, border-top-right-radius, border-bottom-left-radius, and border-bottom-right-radius.
This PR also updates all documentation instances of <Accordion> to be wrapped with <Accordion.Container>.
You can play with the Review App here: https://curology-radiance-pr-371.herokuapp.com/
Before:

After:

Need to refactor the styling since the box-shadows are not applying accurately anymore in TitleWrapper.

repo: curology/radiance-ui


text:
Add tests with timed mouseMove events

In Karma tests we're unable (or I don't know about it) to trigger mouseMove events with given timing information -- that is essential in our case. :)

Currently, we have tests to cover events with synthetic timestamps (test/trap.time-property.test.js), and tests to cover various timeouts, including buffer timeouts and idle timeouts (test/trap.{buffer,idle}-timeout.test.js).

repo: cursorinsight/ci-trap-web


text:
Support "every <scope>" / "<ordinal> <scope>"

The goal
For example:

"every line"
"every funk"
"every line in class"
"first funk"
"last line in funk"

See https://github.com/pokey/cursorless-vscode/wiki/Target-overhaul for many more examples

[x] Also support "past last", so eg "past last item air", "past last funk air".  This would target from the scope containing the mark through the last instance of the scope in its iteration scope
[ ] Add expansion tests (see also #883)

Implementation

This implementation will rely on #210 and #69.
See https://github.com/cursorless-dev/cursorless/issues/797

Notes

This functionality subsumes today's every funk and first char / last word etc

Questions

How do we handle ranges such as today's first past third word or the future first past third funk?

This one will be great once we have full compositionality

Is there more work to be done on this?

Looks done to me

authors: AndreasArvidsson pokey

repo: cursorless-dev/cursorless


text:
Unknown action ':protect_from_spam' error on default Ruby on Rails 7.1 projects

Describe the bug
The gem causes Ruby on Rails projects with version 7.1.0 or higher to break for all routes if the setting
config.action_controller.raise_on_missing_callback_actions = true is present in an environment (default for development and test).
To Reproduce
Steps to reproduce the behavior:

run rails _7.1.3.4_ new example
cd example
add gem 'honeypot-captcha' to Gemfile
run bundle install
run bin/rails s
go to localhost:3000
see error below

Unknown action
The create action could not be found for the :protect_from_spam
callback on Rails::WelcomeController, but it is listed in the controller's
:only option.
Raising for missing callback actions is a new default in Rails 7.1, if you'd
like to turn this off you can delete the option from the environment configurations
or set `config.action_controller.raise_on_missing_callback_actions` to `false`.

Expected behavior
The gem should work out of the box with a RoR application. I didn't find a configuration option or documentation to avoid this error except disable the configuration in Rails.
Screenshots
Screenshot with the error

Desktop:

OS: Ubuntu 22.04
Browser Firefox
Version 127.0.1

Smartphone:

Not applicable

Additional context

The setting can be found in the Rails project in config/environments/development.rb

+1 experiencing this. Can turn off with the development.rb and test.rb switches for missing callback actions.

Same here.. @curtis did you find something to fixx this?

repo: curtis/honeypot-captcha


text:
not validate the integration

Describe the bug
is there a problem with the integration? today it stopped working and does not validate the connection from my cell phone in amazon
Screenshots

System details

Home-assistant (2021.1.5):
Hassio (2021.01.7):

Logs
Logger: homeassistant
Source: runner.py:99
First occurred: 22:21:18 (2 occurrences)
Last logged: 22:21:18
Error doing job: Unclosed client session
Error doing job: Unclosed connector

Enable 2FA.

Enable 2FA.


text:
Unable to control echo dot

Describe the bug
Changes made by echo dot visible in home assistant, but the command given by HA is not processed.
Screenshots

System details

Home-assistant (version): 0.114.2
Hassio (Yes/No): (Please note you may have to restart hassio 2-3 times to load the latest version of alexapy after an update. This looks like a HA bug).
alexa_media  (version from const.py or HA startup): v2.10.6
alexapy (version from pip show alexapy or HA startup):

Logs
2020-09-03 11:14:14 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-09-03 11:14:14 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for alexa_media which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-09-03 11:14:33 DEBUG (MainThread) [custom_components.alexa_media] Nothing to import from configuration.yaml, loading from Integrations
2020-09-03 11:14:34 INFO (MainThread) [custom_components.alexa_media]
alexa_media
Version: 2.10.6
This is a custom component
If you have any issues with this you need to open an issue here:
https://github.com/custom-components/alexa_media_player/issues
2020-09-03 11:14:34 INFO (MainThread) [custom_components.alexa_media] Loaded alexapy==1.13.1
2020-09-03 11:14:34 DEBUG (MainThread) [alexapy.alexalogin] Trying to load pickled cookie from file /config/.storage/alexa_media.@gmail.com.pickle
2020-09-03 11:14:35 DEBUG (MainThread) [alexapy.alexalogin] Trying to load aiohttpCookieJar to session
2020-09-03 11:14:35 DEBUG (MainThread) [alexapy.alexalogin] Loaded 8 cookies
2020-09-03 11:14:35 DEBUG (MainThread) [alexapy.alexalogin] Using cookies to log in
2020-09-03 11:14:38 DEBUG (MainThread) [alexapy.alexalogin] GET:
2020-09-03 11:14:38 DEBUG (MainThread) [alexapy.alexalogin] Logged in as @gmail.com with id: ********
2020-09-03 11:14:38 DEBUG (MainThread) [alexapy.alexalogin] Log in successful with cookies
2020-09-03 11:14:38 DEBUG (MainThread) [custom_components.alexa_media] Testing login status: {'login_successful': True}
2020-09-03 11:14:38 DEBUG (MainThread) [custom_components.alexa_media] Setting up Alexa devices for r1@gm
2020-09-03 11:14:38 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Websocket created: <alexapy.alexawebsocket.WebsocketEchoClient object at 0x6d65ecb8>
2020-09-03 11:14:47 DEBUG (MainThread) [alexapy.alexawebsocket] Initating Async Handshake.
2020-09-03 11:14:47 DEBUG (MainThread) [alexapy.alexawebsocket] Starting message parsing loop.
2020-09-03 11:14:47 DEBUG (MainThread) [alexapy.alexawebsocket] Received WebSocket: 0x37a3b607 0x0000009c {"protocolName":"A:H","parameters":{"AlphaProtocolHandler.maxFragmentSize":"16000","AlphaProtocolHandler.receiveWindowSize":"16"}}TUNE
2020-09-03 11:14:47 DEBUG (MainThread) [alexapy.alexawebsocket] Encoding WebSocket Handshake MSG.
2020-09-03 11:14:47 DEBUG (MainThread) [alexapy.alexawebsocket] Encoding Gateway Handshake MSG.
2020-09-03 11:14:47 DEBUG (MainThread) [alexapy.alexawebsocket] Encoding Gateway Register MSG.
2020-09-03 11:14:47 DEBUG (MainThread) [alexapy.alexawebsocket] Encoding PING.
2020-09-03 11:14:47 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Websocket succesfully connected
2020-09-03 11:14:47 DEBUG (MainThread) [custom_components.alexa_media] Creating coordinator
2020-09-03 11:14:47 DEBUG (MainThread) [custom_components.alexa_media] Refreshing coordinator
2020-09-03 11:14:48 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/devices-v2/device returned 200:OK:application/json
2020-09-03 11:14:48 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/dnd/device-status-list returned 200:OK:application/json
2020-09-03 11:14:48 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/bluetooth?cached=false returned 200:OK:application/json
2020-09-03 11:14:48 DEBUG (MainThread) [alexapy.alexawebsocket] Received WebSocket: MSG 0x0000036...............END FABE
2020-09-03 11:14:48 DEBUG (MainThread) [alexapy.alexawebsocket] Received ACK MSG for Registration.
2020-09-03 11:14:48 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/bootstrap returned 200:OK:application/json
2020-09-03 11:14:48 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/device-preferences returned 200:OK:application/json
2020-09-03 11:14:48 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/notifications returned 200:OK:application/json
2020-09-03 11:14:48 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Found 3 devices, 3 bluetooth
2020-09-03 11:14:49 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/notifications returned 200:OK:application/json
2020-09-03 11:14:49 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Updated 0 notifications for 1 devices at 2020-09-03 11:14:49.460967+05:30
2020-09-03 11:14:50 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/activities?startTime=&size=10&offset=1 returned 200:OK:application/json
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Updated last_called: {'serialNumber': '0e33', 'timestamp': 1587348562948}
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: last_called changed:  to {'serialNumber': '0e33', 'timestamp': 1587348562948}
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] raj's Echo Dot: Locale en-in timezone Asia/Kolkata
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] raj's Echo Dot: DND False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] This Device: Locale en-us timezone None
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] This Device: DND False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] raj's Alexa Apps: Locale en-us timezone None
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] raj's Alexa Apps: DND False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Existing: [] New: ["raj's Echo Dot", 'This Device', "raj's Alexa Apps"]; Filtered out by not being in include: [] or in exclude: []
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] Loading media_player
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media] Finished fetching alexa_media data in 2.791 seconds
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.helpers] alexa_media.notify.async_get_service: Trying with limit 5 delay 2 catch_exceptions True
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.notify] r1@gm: Media player G09F not loaded yet; delaying load
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.helpers] alexa_media.notify.async_get_service: Try: 1/5 after waiting 0 seconds result: False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.media_player] r1@gm: Refreshing This Device
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.media_player] This Device: Last_called check: self: 2712 reported:
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.helpers] r1@gm: Adding [<Entity raj's Echo Dot: unavailable>, , <Entity raj's Alexa Apps: unavailable>]
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Loading switches
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Found G09F dnd switch with status: False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Found G09F shuffle switch with status: False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Found G09F repeat switch with status: False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Found 2712 dnd switch with status: False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Skipping shuffle for 2712
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Skipping repeat for 2712
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Found 0e33 dnd switch with status: False
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Skipping shuffle for 0e33
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.switch] r1@gm: Skipping repeat for 0e33
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.helpers] r1@gm: Adding [<Entity raj's Echo Dot do not disturb switch: off>, <Entity raj's Echo Dot shuffle switch: off>, <Entity raj's Echo Dot repeat switch: off>, , <Entity raj's Alexa Apps do not disturb switch: off>]
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.sensor] r1@gm: Loading sensors
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.sensor] r1@gm: Found G09F Alarm sensor (0) with next: unavailable
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.sensor] r1@gm: Found G09F Timer sensor (0) with next: unavailable
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.sensor] r1@gm: Found G09F Reminder sensor (0) with next: unavailable
2020-09-03 11:14:50 DEBUG (MainThread) [custom_components.alexa_media.helpers] r1@gm: Adding [<Entity raj's Echo Dot next Alarm: unavailable>, <Entity raj's Echo Dot next Timer: unavailable>, <Entity raj's Echo Dot next Reminder: unavailable>]
2020-09-03 11:14:52 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/phoenix returned 200:OK:application/json
2020-09-03 11:14:52 DEBUG (MainThread) [custom_components.alexa_media.alarm_control_panel] r1@gm: No Alexa Guard entity found
2020-09-03 11:14:52 DEBUG (MainThread) [custom_components.alexa_media.alarm_control_panel] r1@gm: Skipping creation of uninitialized device:
2020-09-03 11:14:54 DEBUG (MainThread) [custom_components.alexa_media.helpers] alexa_media.notify.async_get_service: Try: 2/5 after waiting 4 seconds result: <custom_components.alexa_media.notify.AlexaNotificationService object at 0x69c29640>
2020-09-03 11:14:54 DEBUG (MainThread) [custom_components.alexa_media.helpers] alexa_media.notify.async_get_service: Trying with limit 5 delay 2 catch_exceptions True
2020-09-03 11:14:54 DEBUG (MainThread) [custom_components.alexa_media.helpers] alexa_media.notify.async_get_service: Try: 1/5 after waiting 0 seconds result: <custom_components.alexa_media.notify.AlexaNotificationService object at 0x6fe31b08>
2020-09-03 11:15:00 DEBUG (MainThread) [custom_components.alexa_media.media_player] Disabling polling for raj's Echo Dot
2020-09-03 11:15:00 DEBUG (MainThread) [custom_components.alexa_media.media_player] r1@gm: Refreshing This Device
2020-09-03 11:15:00 DEBUG (MainThread) [custom_components.alexa_media.media_player] This Device: Last_called check: self: 2712 reported: 0e33
2020-09-03 11:15:00 DEBUG (MainThread) [custom_components.alexa_media.media_player] Disabling polling for This Device
2020-09-03 11:15:00 DEBUG (MainThread) [custom_components.alexa_media.media_player] Disabling polling for raj's Alexa Apps
2020-09-03 11:24:51 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/dnd/device-status-list returned 200:OK:application/json
2020-09-03 11:24:51 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/notifications returned 200:OK:application/json
2020-09-03 11:24:51 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/bluetooth?cached=false returned 200:OK:application/json
2020-09-03 11:24:51 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/device-preferences returned 200:OK:application/json
2020-09-03 11:24:51 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/devices-v2/device returned 200:OK:application/json
2020-09-03 11:24:51 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Found 3 devices, 3 bluetooth
2020-09-03 11:24:51 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/notifications returned 200:OK:application/json
2020-09-03 11:24:51 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Updated 0 notifications for 1 devices at 2020-09-03 11:24:51.694741+05:30
2020-09-03 11:24:52 DEBUG (MainThread) [alexapy.alexaapi] static GET: https://alexa.amazon.com/api/activities?startTime=&size=10&offset=1 returned 200:OK:application/json
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Updated last_called: {'serialNumber': '0e33', 'timestamp': 1587348562948}
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] raj's Echo Dot: Locale en-in timezone Asia/Kolkata
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] raj's Echo Dot: DND False
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] This Device: Locale en-us timezone None
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] This Device: DND False
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] raj's Alexa Apps: Locale en-us timezone None
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] raj's Alexa Apps: DND False
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Existing: [<Entity raj's Echo Dot: unavailable>, , <Entity raj's Alexa Apps: unavailable>] New: []; Filtered out by not being in include: [] or in exclude: []
2020-09-03 11:24:52 DEBUG (MainThread) [custom_components.alexa_media] Finished fetching alexa_media data in 2.809 seconds
2020-09-03 11:31:02 DEBUG (MainThread) [alexapy.alexawebsocket] Received WebSocket: MSG
2020-09-03 11:31:02 DEBUG (MainThread) [alexapy.alexawebsocket] Received Standard MSG.
2020-09-03 11:31:02 DEBUG (MainThread) [custom_components.alexa_media] r1@gm: Received websocket command: PUSH_EQUALIZER_STATE_CHANGE : {'destinationUserId': 'AS', 'dopplerId': {'deviceType': 'C', 'deviceSerialNumber': 'G***F'}, 'bass': 0, 'midrange': 0, 'treble': 0}
Additional context
Add any other context about the problem here.

Please confirm your region is amazon.com.

authors: alandtse patraRajesh


text:
Intergration not found hacs

Hello,
I am currently on a fresh installation of HASS.IO on docker. the path in docker for hassio is /user/share/hassio/homeassistant/
I created the folder custom_components and downloaded the git files / hacs files.
hacs is placed into /custom_components.
In the configration.yaml i placed the this:
hacs:
   token: 4878f7a6265xxxxxxxxxxxxxxxxxxxxxxxxxf9a4

However, HA will not restart due this error:
Integration not found: hacs
What am i doing wrong? I

Restart HA one time before adding it to config.

I had a fully working install of HACS till about a week ago, I had to restart my machine and when it came back up I no longer have the ingress menu and I receive the  "Invalid config" message in HA, I've reinstalled HACS from fresh and also had 2 HA upgrades this week and still no luck.
Also a few of our guys in our group have had similar issues, but the error shows as below so this could be further issue and not just a single install error:
Fri Jul 26 2019 11:06:37 GMT+0100 (British Summer Time)
Error during setup of component hacs
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/setup.py", line 153, in _async_setup_component
hass, processed_config)
File "/config/custom_components/hacs/init.py", line 69, in async_setup
await configure_hacs(hass, config[DOMAIN], config_dir)
File "/config/custom_components/hacs/init.py", line 171, in configure_hacs
hacs.store.restore_values()
File "/config/custom_components/hacs/hacsbase/data.py", line 102, in restore_values
store = self.read()
File "/config/custom_components/hacs/hacsbase/data.py", line 41, in read
content = json.loads(content)
File "/usr/local/lib/python3.7/json/init.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python3.7/json/decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Unterminated string starting at: line 3426 column 13 (char 122870)

Hi,
I had the same problem.
I removed hacs:
token: 4878f7a6265xxxxxxxxxxxxxxxxxxxxxxxxxf9a4
and rebooted and found hacs in integrations section.

authors: Chimestrike eterpstra gmkfak ludeeus

repo: custom-components/hacs


text:
Issue #513: Implemented fallback value for color prop of BaseSnackbar…

… and removed the color prop from its consumers.

Issue number
Relevant issue number

Resolves #513

Please check the following

[x] Do the tests still pass? (see Run the Tests)
[x] Is the code formatted properly? (see Linting (Formatting))
For New Features:

[ ] Have tests been added to cover any new features or fixes?
[ ] Has the documentation been updated accordingly?

Please describe additional details for testing this change

Thanks for your feedback! Just pushed another commit.

Done.

repo: cuttle-cards/cuttle


text:
about the line_match module

hello, i want to change the match module to like superglue method. it is possible to get a better match?

Hi, I am sorry, I can't understand your question.
Are you asking whether one could obtain better line matches by using techniques as in SuperGlue? If so, the answer is yes, and we already published a work on that: https://github.com/cvg/GlueStick.

yes，i have the same ideal, thank you very much
发自我的iPhone

在 2023年8月3日，下午10:17，Rémi Pautrat @.***> 写道：

Hi, I am sorry, I can't understand your question.
Are you asking whether one could obtain better line matches by using techniques as in SuperGlue? If so, the answer is yes, and we already published a work on that: https://github.com/cvg/GlueStick.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.

authors: atomishcv rpautrat


text:
Slug in URL issue

i want to display some details from a table no foreign key using slug url but i am having issue with it. here below is my code.
public function getView($slug) {
$cstool = CsTool::where('slug',$slug)->first();
if ($cstool) {
return View::make('childict.softview')
->with('cstool', $cstool);
}
}

What's the issue? That code looks fine to me (although you don't have any code to handle the case where there is no object with the given slug.  Maybe ->firstOrFail() would be better?

authors: Unstinted cviebrock

repo: cviebrock/eloquent-sluggable


text:
🛑 Paid - Node SG 2 is down

In 46fbf17, Paid - Node SG 2 (cxenode-2.hexagonn.my.id) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Paid - Node SG 2 is back up in 8802761.

repo: cxe-miex-dev/uptimes


text:
Bump version to 2.1.6

What does this PR do?
Bump version to 2.1.6 in preparation for release
What ticket does this PR close?
Resolves #73
Checklists
Change log

[X] The CHANGELOG has been updated, or
[ ] This PR does not include user-facing changes and doesn't require a CHANGELOG update

Test coverage

[ ] This PR includes new unit and integration tests to go with the code changes, or
[X] The changes in this PR do not require tests

Documentation

[ ] Docs (e.g. READMEs) were updated in this PR, and/or there is a follow-on issue to update docs, or
[X] This PR does not require updating any documentation

@izgeri Yes, the notices were updated as part of this commit:
https://github.com/cyberark/cloudfoundry-conjur-buildpack/commit/5ab18790822dd996c9ea8bdc975280c88c12436c

@izgeri Yes, the notices were updated as part of this commit:
https://github.com/cyberark/cloudfoundry-conjur-buildpack/commit/5ab18790822dd996c9ea8bdc975280c88c12436c

repo: cyberark/cloudfoundry-conjur-buildpack


text:
Run go mod tidy

Desired Outcome
Prepare for 1.7.16 release.
Implemented Changes

Update golang.org/x/crypto to v0.5.0
Update CyberArk packages to latest versions
Update NOTICES.txt

Connected Issue/Story
N/A
Definition of Done
At least 1 todo must be completed in the sections below for the PR to be
merged.
Changelog

[ ] The CHANGELOG has been updated, or
[x] This PR does not include user-facing changes and doesn't require a
CHANGELOG update

Test coverage

[ ] This PR includes new unit and integration tests to go with the code
changes, or
[x] The changes in this PR do not require tests

Documentation

[ ] Docs (e.g. READMEs) were updated in this PR
[ ] A follow-up issue to update official docs has been filed here: [insert issue ID]
[x] This PR does not require updating any documentation

Behavior

[ ] This PR changes product behavior and has been reviewed by a PO, or
[ ] These changes are part of a larger initiative that will be reviewed later, or
[x] No behavior was changed with this PR

Security

[ ] Security architect has reviewed the changes in this PR,
[ ] These changes are part of a larger initiative with a separate security review, or
[ ] There are no security aspects to these changes

Sorry, @szh - I pushed a commit fixing Changelog links right as you approved. Quick re-review?

repo: cyberark/secretless-broker


text:
Backup to Google Cloud Storage

Hello, I am trying and failing to store backups to Google Cloud Storage.
I have set up Workload Identity to give the k8s service account the permissions to access the bucket.
I have also tried defining the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY variables.
Still I get
Error: failed to take a full dump: failed to put dump.tar: operation error S3: PutObject, https response error StatusCode: 403, RequestID: , HostID: , api error SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.
Is there anybody who made backups to GCS working?
Thank you!

Backup to GCS is not supported now.
It can be added by implementing Bucket interface for GCS in this package.
https://github.com/cybozu-go/moco/tree/main/pkg/bucket
We are welcome to a pull request for adding GCS support.

@filiprafaj
GCS supports the S3 compatibility API. (Sorry, I have not verified this.)
Could you please refer to the documentation and try again?
refs:

https://cloud.google.com/storage/docs/interoperability#xml_api
https://vamsiramakrishnan.medium.com/a-study-on-using-google-cloud-storage-with-the-s3-compatibility-api-324d31b8dfeb

If it still doesn't work, it would be helpful if you could report it again, including the definition of BackupPolicy 🙏
https://cybozu-go.github.io/moco/usage.html#backuppolicy

Hi @d-kuro , I have tried now with interoperability credentials and I am getting:
Error: failed to take a full dump: failed to put dump.tar: operation error S3: PutObject, https response error StatusCode: 403, RequestID: , HostID: , api error SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method. failed to take a full dump: failed to put dump.tar: operation error S3: PutObject, https response error StatusCode: 403, RequestID: , HostID: , api error SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.
the backup file looks like this:
apiVersion: moco.cybozu.com/v1beta2
kind: BackupPolicy
metadata:
  namespace: default
  name: daily
spec:
  schedule: "@daily"
  jobConfig:
    serviceAccountName: moco-test-mysqlcluster
    env:
    - name: AWS_ACCESS_KEY_ID
      value: ***
    - name: AWS_SECRET_ACCESS_KEY
      value: ***
    bucketConfig:
      bucketName: ***
      endpointURL: https://storage.googleapis.com
    workVolume:
      emptyDir: {}
    memory: 1Gi
    maxMemory: 1Gi
    threads: 1

Hi @filiprafaj  ,
This issue seems to be a good initiation of my journey towards contribution to FOSS projects.
Can you please assign this to me?

Hii @filiprafaj i want to contribute to this issue

@Prakharkarsh1
Hi,
Thank you for your intention to contribute to this project.
We will review your pull request when it's ready.

@Prakharkarsh1
MOCO uses aws-sdk-go-v2 to connect to s3-compatible storage.
However, aws-sdk-go-v2 is not compatible with third-party platforms and therefore cannot connect GCS.
https://github.com/aws/aws-sdk-go-v2/issues/1816
So it would be better to implement for gcs bucket in moco/pkg/bucket/gcs.

We use minio to test S3 bucket implementation.
Likewise, we may use these tools to test GCS bucket implementation.

https://github.com/oittaa/gcp-storage-emulator
https://github.com/fsouza/fake-gcs-server

@Prakharkarsh1
Hello,
Do you still want to contribute to this feature?

Released https://github.com/cybozu-go/moco/releases/tag/v0.16.1

repo: cybozu-go/moco


text:
question: TLS possible

i now use PubSubClient v2.8 for a ESP32-S3 Arduno IDE project
and want use TLS with HIVEMQ FREE ACCOUNT
possible?

Hi, you can refer the functions here

authors: MyRaspberry cyijun


text:
Add cpplint to style check cpp

https://github.com/cpplint/cpplint

This is added

repo: cylondata/cylon


text:
🛑 cypggs is down

In 4a9c49e, cypggs (https://www.cypggs.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: cypggs is back up in bf8c025.

repo: cypggs/uptime