Release Note 2.1.6

Search before asking

[X] I had searched in the issues and found no similar issues.

Description
Behavior changes

Removed the delete_if_exists option from create repository. #38192
Added the enable_prepared_stmt_audit_log session variable to control whether JDBC prepared statements record audit logs, with the default being no recording. #38624 #39009
Implemented fd limit and memory constraints for segment cache. #39689
When the FE configuration item sys_log_mode is set to BRIEF, file location information is added to the logs. (#39571)
Changed the default value of the session variable max_allowed_packet to 16MB. (#38697)
When a single request contains multiple statements, semicolons must be used to separate them. https://github.com/apache/doris/pull/38670
Added support for statements to begin with a semicolon. https://github.com/apache/doris/pull/39399
Aligned type formatting with MySQL in statements such as show create table. https://github.com/apache/doris/pull/38012
When the new optimizer planning times out, it no longer falls back to prevent the old optimizer from using longer planning times. https://github.com/apache/doris/pull/39499

New features
Lakehouse

Supported writeback for Iceberg tables: https://doris.apache.org/zh-CN/docs/2.1/lakehouse/datalake-building/iceberg-build
SQL interception rules now support external tables: https://doris.apache.org/zh-CN/docs/2.1/admin-manual/query-admin/sql-interception
Added the system table file_cache_statistics to view BE data cache metrics: https://doris.apache.org/docs/2.1/admin-manual/system-tables/file_cache_statistics
Async Materialized View
Supported transparent rewriting during inserts: https://github.com/apache/doris/pull/38115
Supported transparent rewriting when variant types exist in queries: https://github.com/apache/doris/pull/37929
Semi-Structured Data Management
Supported casting ARRAY MAP to JSON type: https://github.com/apache/doris/pull/36548
Supported the json_keys function: https://github.com/apache/doris/pull/36411
Supported specifying the JSON path $. when importing JSON: https://github.com/apache/doris/pull/38213
ARRAY MAP STRUCT types now support replace_if_not_null: https://github.com/apache/doris/pull/38304
ARRAY MAP STRUCT types now support adjusting column order: https://github.com/apache/doris/pull/39210
Added the multi_match function to match keywords across multiple fields, with support for inverted index acceleration: https://github.com/apache/doris/pull/37722

Query Optimizer

Filled in the original database name, table name, column name, and alias for returned columns in the MySQL protocol. https://github.com/apache/doris/pull/38126
Supported the aggregation function group_concat with both order by and distinct simultaneously. https://github.com/apache/doris/pull/38080
SQL cache now supports reusing cached results for queries with different comments. https://github.com/apache/doris/pull/40049
In partition pruning, supported including date_trunc and date functions in filter conditions. https://github.com/apache/doris/pull/38025 https://github.com/apache/doris/pull/38743
Allowed using the database name where the table resides as a qualifier prefix for table aliases. https://github.com/apache/doris/pull/38640
Supported hint-style comments. https://github.com/apache/doris/pull/39113
Others
Added the system table table_properties for viewing table properties: https://doris.apache.org/docs/2.1/admin-manual/system-tables/table_properties
Introduced deadlock and slow lock detection in FE: https://doris.apache.org/zh-CN/docs/2.1/admin-manual/maint-monitor/frontend-lock-manager

Improvements
Lakehouse

Reimplemented the external table metadata caching mechanism. For details, refer to the documentation: https://doris.apache.org/zh-CN/docs/2.1/lakehouse/metacache/
Added the session variable keep_carriage_return with a default value of false. By default, reading Hive Text format tables treats both \r\n and \n as newline characters. (#38099)
Optimized memory statistics for Parquet/ORC file read/write operations. (#37257)
Supported pushing down IN/NOT IN predicates for Paimon tables. (#38390)
Enhanced the optimizer to support Time Travel syntax for Hudi tables. (#38591)
Optimized Kerberos authentication-related processes. (#37301)
Enabled reading Hive tables after Rename column operations. (#38809)
Optimized the reading performance of partition columns for external tables. (#38810)
Improved the data shard merging strategy during external table query planning to avoid performance degradation caused by a large number of small shards. (#38964)
Added attributes such as location to SHOW CREATE DATABASE/TABLE. (#39644)
Supported complex types in MaxCompute Catalog. (#39822)
Optimized the file cache loading strategy by using asynchronous loading to avoid long BE startup times. (#39036)
Improved the file cache eviction strategy, such as evicting locks held for extended periods. (#39721)

Async Materialized View

Supported hourly, weekly, and quarterly partition roll-up construction. https://github.com/apache/doris/pull/37678
For materialized views based on Hive external tables, the metadata cache is now updated before refresh to ensure the latest data is obtained during each refresh. https://github.com/apache/doris/pull/38212
Improved the performance of transparent rewrite planning in storage-compute separation mode by batch fetching metadata. https://github.com/apache/doris/pull/39301
Enhanced the performance of transparent rewrite planning by prohibiting duplicate enumerations. https://github.com/apache/doris/pull/39541
Improved the performance of transparent rewrite for refreshing materialized views based on Hive external table partitions. https://github.com/apache/doris/pull/38525

Semi-Structured Data Management

Optimized memory allocation for TOPN queries to improve performance. https://github.com/apache/doris/pull/37429
Enhanced the performance of string processing in inverted indexes. https://github.com/apache/doris/pull/37395
Optimized the performance of inverted indexes in MOW tables. https://github.com/apache/doris/pull/37428
Supported specifying the row-store page_size during table creation to control compression effectiveness. https://github.com/apache/doris/pull/37145

Query Optimizer

Adjusted the row count estimation algorithm for mark joins, resulting in more accurate cardinality estimates for mark joins. https://github.com/apache/doris/pull/38270
Optimized the cost estimation algorithm for semi/anti joins, enabling more accurate selection of semi/anti join orders. https://github.com/apache/doris/pull/37951
Adjusted the filter estimation algorithm for cases where some columns have no statistical information, leading to more accurate cardinality estimates. https://github.com/apache/doris/pull/39592
Modified the instance calculation logic for set operation operators to prevent insufficient parallelism in extreme cases. https://github.com/apache/doris/pull/39999
Adjusted the usage strategy of bucket shuffle, achieving better performance when data is not sufficiently shuffled. https://github.com/apache/doris/pull/36784
Enabled early filtering of window function data, supporting multiple window functions in a single projection. https://github.com/apache/doris/pull/38393
When a NullLiteral exists in a filter condition, it can now be folded into False, further converted to an EmptySet to reduce unnecessary data scanning and computation. https://github.com/apache/doris/pull/38135
Expanded the scope of predicate derivation, reducing data scanning in queries with specific patterns. https://github.com/apache/doris/pull/37314
Supported partial short-circuit evaluation logic in partition pruning to improve partition pruning performance, achieving over 100% improvement in specific scenarios. https://github.com/apache/doris/pull/38191
Enabled the computation of arbitrary scalar functions within user variables. https://github.com/apache/doris/pull/39144
Maintained error messages consistent with MySQL when alias conflicts exist in queries. https://github.com/apache/doris/pull/38104

Query Execution

Adapted AggState for compatibility from 2.1 to 3.x and fixed coredump issues. #37104
Refactored the strategy selection for local shuffle when no joins are involved. #37282
Modified the scanner for internal table queries to an asynchronous approach to prevent blocking during internal table queries. #38403
Optimized the block merge process when building hash tables in Join operators. #37471
Reduced the lock holding time for MultiCast operations. #37462
Optimized gRPC's keepAliveTime and added a connection monitoring mechanism, reducing the probability of query failures due to RPC errors during query execution. #37304
Cleaned up all dirty pages in jemalloc when memory limits are exceeded. #37164
Improved the performance of aes_encrypt/decrypt functions when handling constant types. #37194
Optimized the performance of json_extract functions when processing constant data. #36927
Optimized the performance of ParseUrl functions when processing constant data. #36882

Backup Recovery / Cross-Cluster Synchronization

Restore now supports deleting redundant tablets and partition options. #39363
Checks storage connectivity when creating a repository. #39538
Enables binlog to support DROP TABLE, allowing CCR to incrementally synchronize DROP TABLE operations. #38541

Compaction

Improves the issue where high-priority compaction tasks were not subject to task concurrency control limits. #38189
Automatically reduces compaction memory consumption based on data characteristics. #37486
Fixes an issue where the sequential data optimization strategy could lead to incorrect data in aggregate tables or MOR UNIQUE tables. #38299
Optimizes the rowset selection strategy during compaction during replica replenishment to avoid triggering -235 errors. #39262

MOW (Merge-On-Write)

Optimizes slow column updates caused by concurrent column updates and compactions. #38682
Fixes an issue where segcompaction during bulk data imports could lead to incorrect MOW data. #38992 #39707
Fixes data loss in column updates that may occur after BE restarts. #39035

Storage Management

Adds FE configuration to control whether queries under hot-cold tiering prefer local data replicas. #38322
Optimizes expired BE report messages to include newly created tablets. #38839 #39605
Optimizes replica scheduling priority strategy to prioritize replicas with missing data. #38884
Prevents tablets with unfinished ALTER jobs from being balanced. #39202
Enables modifying the number of buckets for tables with list partitioning. #39688
Prefers querying from online disk services. #39654
Improves error messages for materialized view base tables that do not support deletion during synchronization. #39857
Improves error messages for single columns exceeding 4GB. #39897
Fixes an issue where aborted transactions were omitted when plan errors occurred during INSERT statements. #38260
Fixes exceptions during SSL connection closure. #38677
Fixes an issue where table locks were not held when aborting transactions using labels. #38842
Fixes gson pretty causing large image issues. #39135
Fixes an issue where the new optimizer did not check for bucket values of 0 in CREATE TABLE statements. #38999
Fixes errors when Chinese column names are included in DELETE condition predicates. #39500
Fixes frequent tablet balancing issues in partition balancing mode. #39606
Fixes an issue where partition storage policy attributes were lost. #39677
Fixes incorrect statistics when importing multiple tables within a transaction. #39548
Fixes errors when deleting random bucket tables. #39830
Fixes issues where FE fails to start due to non-existent UDFs. #39868
Fixes inconsistencies in the last failed version between FE master and slave. #39947
Fixes an issue where related tablets may still be in schema change state when schema change jobs are canceled. #39327
Fixes errors when modifying type and column order in a single statement schema change (SC). #39107

Data Loading

Improves error messages for -238 errors during imports. #39182
Allows importing to other partitions while restoring a partition. #39915
Optimizes the strategy for FE to select BEs during group commit. #37830 #39010
Avoids printing stack traces for some common streamload error messages. #38418
Improves handling of issues where offline BEs may affect import errors. #38256

Permissions

Optimizes access performance after enabling the Ranger authentication plugin. (#38575)
Optimizes permission strategies for Refresh Catalog/Database/Table operations, allowing users to perform these operations with only SHOW permissions. (#39008)

Bug fixes
Lakehouse

Fixes the issue where switching catalogs may result in an error of not finding the database. (#38114)
Addresses exceptions caused by attempting to read non-existent data on S3. (#38253)
Resolves the issue where specifying an abnormal path during export operations may lead to incorrect export locations. (#38602)
Fixes the timezone issue for time columns in Paimon tables. (#37716)
Temporarily disables the Parquet PageIndex feature to avoid certain erroneous behaviors.
Corrects the selection of Backend nodes in the blacklist during external table queries. (#38984)
Resolves errors caused by missing subcolumns in Parquet Struct column types. (#39192)
Addresses several issues with predicate pushdown in Jdbc Catalog. (#39082)
Fixes issues where some historical Parquet formats led to incorrect query results. (#39375)
Improves compatibility with ojdbc6 drivers for Oracle JDBC Catalog. (#39408)
Resolves potential FE memory leaks caused by Refresh Catalog/Database/Table operations. (#39186) (#39871)
Fixes thread leaks in JDBC Catalog under certain conditions. (#39666) (#39582)
Addresses potential event processing failures after enabling Hive Metastore event subscription. (#39239)
Disables reading Hive Text format tables with custom escape characters and null formats to prevent data errors. (#39869)
Resolves issues accessing Iceberg tables created via the Iceberg API under certain conditions. (#39203)
Fixes the inability to read Paimon tables stored on HDFS clusters with high availability enabled. (#39876)
Addresses errors that may occur when reading Paimon table Deletion Vectors after enabling file caching. (#39875)
Resolves potential deadlocks when reading Parquet files under certain conditions. (#39945)

Async Materialized View

Fixes the inability to use SHOW CREATE MATERIALIZED VIEW on follower FEs. (https://github.com/apache/doris/pull/38794)
Unifies the object type of asynchronous materialized views in metadata as tables to enable proper display in data tools. (https://github.com/apache/doris/pull/38797)
Resolves the issue where nested asynchronous materialized views always perform full refreshes. (https://github.com/apache/doris/pull/38698)
Fixes the issue where canceled tasks may show as running after restarting FEs. (https://github.com/apache/doris/pull/39424)
Addresses incorrect use of contexts, which may lead to unexpected failures of materialized view refresh tasks. (https://github.com/apache/doris/pull/39690)
Resolves issues that may cause varchar type write failures due to unreasonable lengths when creating asynchronous materialized views based on external tables. (https://github.com/apache/doris/pull/37668)
Fixes the potential invalidation of asynchronous materialized views based on external tables after FE restarts or catalog rebuilds. (https://github.com/apache/doris/pull/39355)
Prohibits the use of partition rollup for materialized views with list partitions to prevent the generation of incorrect data. (https://github.com/apache/doris/pull/38124)
Fixes incorrect results when literals exist in the select list during transparent rewriting for aggregation rollup. (https://github.com/apache/doris/pull/38958)
Addresses potential errors during transparent rewriting when queries contain filters like a = a. (https://github.com/apache/doris/pull/39629)
Fixes issues where transparent rewriting for direct external table queries fails. (https://github.com/apache/doris/pull/39041)

Semi-Structured Data Management

Removes support for prepared statements in the old optimizer. (https://github.com/apache/doris/pull/39465)
Fixes issues with JSON escape character handling. (https://github.com/apache/doris/pull/37251)
Resolves issues with duplicate processing of JSON fields. (https://github.com/apache/doris/pull/38490)
Fixes issues with some ARRAY and MAP functions. (https://github.com/apache/doris/pull/39307, https://github.com/apache/doris/pull/39699, https://github.com/apache/doris/pull/39757)
Resolves complex combinations of inverted index queries and LIKE queries. (https://github.com/apache/doris/pull/36687)

Query Optimizer

Fixed the potential partition pruning error issue when 'OR' condition exists in partition filter conditions. https://github.com/apache/doris/pull/38897
Fixed the potential partition pruning error issue when complex expressions are involved. https://github.com/apache/doris/pull/39298
Fixed the issue where nullable in agg_state subtypes might be planned incorrectly, leading to execution errors. https://github.com/apache/doris/pull/37489
Fixed the issue where nullable in set operation operators might be planned incorrectly, leading to execution errors. https://github.com/apache/doris/pull/39109
Fixed the incorrect execution priority issue of intersect operator. https://github.com/apache/doris/pull/39095
Fixed the NPE issue that may occur when the maximum valid date literal exists in the query. https://github.com/apache/doris/pull/39482
Fixed the occasional planning error that results in an illegal slot error during execution. https://github.com/apache/doris/pull/39640
Fixed the issue where repeatedly referencing columns in cte may lead to missing data in some columns in the result. https://github.com/apache/doris/pull/39850
Fixed the occasional planning error issue when 'case when' exists in the query. https://github.com/apache/doris/pull/38491
Fixed the issue where IP types cannot be implicitly converted to string types. https://github.com/apache/doris/pull/39318
Fixed the potential planning error issue when using multi-dimensional aggregation and the same column and its alias exist in the select list. https://github.com/apache/doris/pull/38166
Fixed the issue where boolean types might be handled incorrectly when using be constant folding. https://github.com/apache/doris/pull/39019
Fixed the planning error issue caused by 'default_cluster:' as a prefix for the database name in expressions. https://github.com/apache/doris/pull/39114
Fixed the potential deadlock issue caused by 'insert into'. https://github.com/apache/doris/pull/38660
Fixed the potential planning error issue caused by not holding table locks throughout the planning process. https://github.com/apache/doris/pull/38950
Fixed the issue where char(0), varchar(0) are not handled correctly when creating tables. https://github.com/apache/doris/pull/38427
Fixed the issue where 'show create table' may incorrectly display hidden columns. https://github.com/apache/doris/pull/38796
Fixed the issue where columns with the same name as hidden columns are not prohibited when creating tables. https://github.com/apache/doris/pull/38796
Fixed the occasional planning error issue when executing 'insert into as select' with CTEs. https://github.com/apache/doris/pull/38526
Fixed the issue where 'insert into values' cannot automatically fill null default values. https://github.com/apache/doris/pull/39122
Fixed the NPE issue caused by using cte in delete without using using. https://github.com/apache/doris/pull/39379
Fixed the issue where deleting from a randomly distributed aggregation model table fails. https://github.com/apache/doris/pull/37985

Query Execution

Fixed the issue where the pipeline execution engine gets stuck in multiple scenarios, causing queries not to end. #38657 #38206 #38885
Fixed the coredump issue caused by null and non-null columns in set difference calculations. https://github.com/apache/doris/pull/38737
Fixed the incorrect result issue of the width_bucket function. #37892
Fixed the query error issue when a single row of data is large and the result set is also large (exceeding 2GB). #37990
Fixed the incorrect result issue of stddev with DecimalV2 type. #38731
Fixed the coredump issue caused by the MULTI_MATCH_ANY function. #37959
Fixed the issue where insert overwrite auto partition causes transaction rollback. #38103
Fixed the incorrect result issue of the convert_tz function. #37358 #38764
Fixed the coredump issue when using the collect_set function with window functions. #38234
Fixed the coredump issue caused by the mod function with abnormal input. #37999
Fixed the issue where executing the same expression in multiple threads may lead to incorrect Java UDF results. #38612
Fixed the overflow issue caused by the incorrect return type of the conv function. #38001
Fixed the unstable result issue of the histogram function. #38608

Backup & Recovery / CCR

Fixed the issue where the data version after backup and recovery may be incorrect, leading to unreadability. #38343
Fixed the issue of using restore version across versions. #38396
Fixed the issue where the job is not canceled when backup fails. #38993
Fixed the NPE issue in ccr during the upgrade from 2.1.4 to 2.1.5, causing the FE to fail to start. #39910
Fixed the issue where views and materialized views cannot be used after restore. #38072 #39848

Storage Management

Fixed possible memory leaks in routineload when loading multiple tables from a single stream. #38824
Fixed the issue where delimiters and escape characters in routineload were not effective. #38825
Fixed incorrect show routineload results when the routineload task name contained uppercase letters. #38826
Fixed the issue where the offset cache was not reset when changing the routineload topic. #38474
Fixed the potential exception triggered by show routineload under concurrent scenarios. #39525
Fixed the issue where routineload might import data repeatedly. #39526
Fixed the data error caused by setNull when enabling group commit via JDBC. #38276
Fixed the potential NPE issue when enabling group commit insert to a non-master FE. #38345
Fixed incorrect error handling during internal data writing in group commit. #38997
Fixed the coredump that might be triggered when the group commit execution plan failed. #39396
Fixed the issue where concurrent imports into auto partition tables might report non-existent tablets. #38793
Fixed potential load stream leakage issues. #39039
Fixed the issue where transactions were opened for insert into select with no data. #39108
Ignored the single-replica import configuration when using memtable prefetching. #39154
Fixed the issue where background imports of stream load records might be abnormally aborted upon encountering db deletion. #39527
Fixed inaccurate error messages when data errors occurred in strict mode. #39587
Fixed the issue where streamload did not return an error URL upon encountering erroneous data. #38417
Fixed the issue with the combined use of insert overwrite and auto partition. #38442
Fixed parsing errors when CSV encountered data where the line delimiter was enclosed by the enclosing character. #38445

Data Exporting

Fixed the issue where enabling the delete_existing_files property during export operations might result in duplicate deletion of exported data. (#39304)

Permissions

Fixed the incorrect requirement of ALTER TABLE permission when creating a materialized view. https://github.com/apache/doris/pull/38011
Fixed the issue where the db was explicitly displayed as empty when showing routine load. https://github.com/apache/doris/pull/38365
Fixed the incorrect requirement of CREATE permission on the original table when using CREATE TABLE LIKE. https://github.com/apache/doris/pull/37879
Fixed the issue where grant operations did not check if the object existed. https://github.com/apache/doris/pull/39597

Use case
No response
Related issues
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

In Apache Doris 2.0.15, we introduced a new parameter: max_backup_tablets_per_job, which is used to limit the maximum number of tablets involved in a backup, to avoid OOM issues caused by excessive tablets. See doris.apache.org/docs/2.0/admin-manual/config/fe-config?_highlight=fe#max_backup_tablets_per_job.
This might prevent some existing backup tasks from running. If you have such issues, please adjust the parameter's upper limit accordingly.


Arduino Nano 33 IoT BSP exports v1 gpio module

The blinky example for the board gives a deprecation warning when defining the led pin, which seems to be because the bsp is exporting the v1 gpio module. The BSP uses the deprecated define_pins macro, which is the cause of this.

@Joeyh021, yes, that's a Tier 2 BSP (see #433), so it will no longer track master and is pinned to 0.13. We're preparing to remove the gpio::v1 code entirely, so that deprecation notice serves to warn anyone who might want to upgrade the HAL version.
If you'd like, you could create a PR to update the BSP. If you do, we will update its pinned HAL version to 0.14 whenever it's released.


dependency error while installing luv

When installing luv using opam install luv, it is required that the following operation need to be performed
The following actions will be performed:
  - install conf-pkg-config 1.3    [required by ctypes]
  - install ctypes          0.17.1 [required by luv]
  - install luv             0.5.6

However, conf-pkg-config required pkg-config to be installed on the system first
<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+- The following actions failed
| - build conf-pkg-config 1.3
+-
- No changes have been performed

The packages you requested declare the following system dependencies. Please make sure
they are installed before retrying:
    pkg-config

But it's not clear how to install pkg-config.
I confess that I should've reported this to https://github.com/freedesktop/pkg-config, but the project seems to not have been maintained for long, thus unable to file a ticket there. Any hints will be appreciated  🙂!

This is actually an issue in ctypes rather than in pkg-config — ctypes has a spurious dependency on pkg-config. I patched this upstream in ctypes in https://github.com/ocamllabs/ocaml-ctypes/pull/631, and it was released in ctypes 0.18.0, but it the release hasn't yet been merged into opam-repository. The opam-repository PR for that is here: https://github.com/ocaml/opam-repository/pull/17614.
You should be able to work around this by either pinning ctypes to the git commit that was release 0.18.0, or installing pkg-config, a system package, using either your system package manager, or with opam depext conf-pkg-config.

This is actually an issue in ctypes rather than in pkg-config — ctypes has a spurious dependency on pkg-config. I patched this upstream in ctypes in https://github.com/ocamllabs/ocaml-ctypes/pull/631, and it was released in ctypes 0.18.0, but it the release hasn't yet been merged into opam-repository. The opam-repository PR for that is here: https://github.com/ocaml/opam-repository/pull/17614.
You should be able to work around this by either pinning ctypes to the git commit that was release 0.18.0, or installing pkg-config, a system package, using either your system package manager, or with opam depext conf-pkg-config.

That’s helpful, thank you!

That’s helpful, thank you!

Ctypes 0.18.0 is now in opam, hopefully fully resolving this issue.

Cool, I’ll give it another try. Thanks


fix(tests): Fix unit test support in webpack.test.js

Add module dependencies to unit test providers

Can one of the admins verify this patch?


if timeframe-selector support cpu usage show?

it's perfect if timeframe-selector support cpu usage show .  Do you have a plan to show cpu usage just many points.

cpu and memory usage would be useful to have rendered in a timeframe or similar view; I have started experimenting locally with this myself. If I get it working I will PR it

@hjmhjms I added support for charts for the timeframe-selector and separately moved the ability to display charts to a separate plugin (in v2.3.0). Please give it a try and I'd love any feedback, especially on how easy it is to use the new feature. If you encounter any difficulties, you can report in this issue.)


Translate to preset option added

Might be useful to have patches imported and kept in Libratian as presets.

This is looking great Oleg! I actually tried to work out the preset format a while ago, because it is much more convenient with the librarian allowing you select ranges of patches. I couldn't work out why my attempts kept failing. I even emailed Korg to ask them, but Korg haven't replied to any my emails with these sorts of questions :) I'll need a few days to check your pull more carefully, but it looks good so far. I'll take the opportunity to clean up some other bugs I found in my code and try to push out a new version with your changes. Thanks for this!

@gazzar I tried to touch a minimum of the original code because I you're still WIP and may want to rafeactor anyway.
Currenlty implementing a sysex-to-program conversion option just to make sure one can get patches from any source.

@gazzar That's it for now from my side. Main goal achieved - I have all the available patches in XD librarian as presets as well as about 2K og the original minilogue patches gathered, sorted and also converted into XD presets!
Maybe I'll try to implement initial prologue-2-XD conversion which I interested in if I'll have time & mood. With the recent additions all 4 logues are partly supported now and I can see several points to refactor but don't want to push you. Also as you probably noticed, my code is quite dirty, so maybe it make sence to reissue PR into the dev branch.

I finally had a chance to look at this today. I think maybe I should look at merging my commandline and gui branches to simplify maintenance of the code. This might be annoying for you because it will add wxWindows as a dependency to the commandline tools, but I don't want to maintain two versions of the code indefinitely. For example, I already had some monologue support in the other branch so I have to change some things to merge that with the monologue changes in your code. The benefit will be to most people who use the gui because I'm very happy that you worked out the library file format and I definitely want to merge that. Regarding your comment about your code being dirty; it is no dirtier than my own and I'm impressed with how well you've understood everything.

Sorry I didn't check the gui branch for logue support :( I used to exploit model file prefixes as internal model(flavor) identifiers in my web oscillator patch injector.
For sure GUI tool is the best option for most of the users. I am not aware of this framework so worked on the command line version. Python is not my favorite language so I did only the functional part and omitted a lot of error checks.

Phew... prologue to XD translation done.
Sounds plausible but more tests needed. Again, like with the minilogue, several patches sounds too quit unless cutoff is increased.

Really? That's awesome work. Do you still have the original minilogue, and the xd, and prologue, so you can actually hear all the differences? If I had a few approximate filter setting values that correspond between the different pairs of synths, I could write functions to map between them properly. Also, regarding your comments, if I was starting the GUI again, I would probably use Qt instead of wx, but I just wanted to get something simple working and wx is good for that. Also, I think your Python skills must be pretty good, since you understood the existing code so well.

I only have NTS-1 and recently bought the XD :(
That was just a guess since several converted patches was obvoiusly too quiet and increasing cutoff fixes that for both Prologue and Minilogue sources.
Need to double check the timbre part of the prologue patch structure since there might be a typos, found several in the main patch section yesterday. But the recent version sounds pleasible, though a bit different anyway comparing to the Youtube demos. Going to add conversion from the monologue soon.
The first and the last time I was developing a GUI app in Python, I used TKinter since QT seemed too bulky.

Added monologue support and resolved major conflicts so you should be able to merge easily.

Merged and tested

Hi Oleg,
The NTS-1 looks like a fun little box and I love the minilogue xd and don't feel any desire to get a prologue, so for me your :( should be :)
I just merged all your changes into the master branch and did a bit of testing of the gui functionality but I haven't tested your changes to the commandline tools and I haven't added your functionality to the gui yet. If I broke something as I was merging, it should be easy enough to fix.
I'll add the changes to the gui next.
Thanks again for all your time and work on this!

PR merge should not break actually, since I pulled and merged your last changes in my last commit, to it could only break at that point ;)

@gazzar nope, looks like you cherry-picked it and something is missing. For axample I can't see the translate from the prologue/minilogue in your master now.

@gazzar I'm not sure how that actually happened and how those spaghetti appeared, but the commits marked with red was not merged:

One of the possible solutions is to rebase master back starting from 833aa8a and dropping all the merged commit from my branch. Then reopen pull request. The green marked commit is the last one merged from your master to my last commit just to fix merging issues. From that point pull request could be merged with no conflicts.
Let me know if you need assistance with the git operations.


[AutoPR monitor/resource-manager] Add two missing "by subscription" operations for completeness and compliance

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/3285

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/2120


Different criterion benchmark outputs for Vector Arrays

Code with problematic output attached below.
The issue is different measurements - if defaultMain has multiple vector benchmarks, the measurements seem to include time to build the function inputs as well. If I benchmark only one vector function, the measurement excludes the time to build the function input, as I expected it to. The code below has two bench functions "DoubleV" and "IntV". If I benchmark both, I get ~400ns for each.  I didn't see this issue when I initially created the functions using List. But, when I switched from List to unboxed Vectors, I saw this issue. So, it seems to be specific to vectors.
I can reproduce it only for the code below in question - I tried to reproduce it for functions built using basic operations like foldl but couldn't.
-- | Begin Haskell code
import Data.ByteString.Internal (unsafeCreate,ByteString)
import qualified Data.Vector.Unboxed as V (Vector, forM_, fromList, replicate, length, Unbox)
import Data.Bits (shiftR)
import GHC.Int (Int16,Int32,Int64)
import GHC.Word (Word8,Word16,Word32,Word64)
import Unsafe.Coerce (unsafeCoerce)
import Criterion.Main
import Foreign (Ptr, poke, plusPtr)
import Data.IORef (newIORef, readIORef, writeIORef)
-- | Write a Word32 in little endian format
putWord32le :: Word32 -> Ptr Word8 -> IO()
putWord32le w p = do
poke p (fromIntegral (w) :: Word8)
poke (p plusPtr 1) (fromIntegral (shiftR w  8)  :: Word8)
poke (p plusPtr 2) (fromIntegral (shiftR w  16) :: Word8)
poke (p plusPtr 3) (fromIntegral (shiftR w  24) :: Word8)
{-# INLINE putWord32le #-}
-- | Write a Word64 in little endian format
putWord64le :: Word64 -> Ptr Word8 -> IO()
putWord64le w p = do
poke p               (fromIntegral (w)           :: Word8)
poke (p plusPtr 1) (fromIntegral (shiftR w  8) :: Word8)
poke (p plusPtr 2) (fromIntegral (shiftR w 16) :: Word8)
poke (p plusPtr 3) (fromIntegral (shiftR w 24) :: Word8)
poke (p plusPtr 4) (fromIntegral (shiftR w 32) :: Word8)
poke (p plusPtr 5) (fromIntegral (shiftR w 40) :: Word8)
poke (p plusPtr 6) (fromIntegral (shiftR w 48) :: Word8)
poke (p plusPtr 7) (fromIntegral (shiftR w 56) :: Word8)
{-# INLINE putWord64le #-}
-- | Function to generate putWordleV functions, N = 16,32,64
genFnPutWordNleV :: (V.Unbox a) => (a -> Ptr Word8 -> IO()) -> Int -> V.Vector a ->  Ptr Word8 -> IO()
genFnPutWordNleV f n w p = do
addr <- newIORef p  -- Store the initial pointer address
V.forM_ w $ \x -> do -- loop over WordN list - output type is IO()
curAddr <- readIORef addr -- get the address for current wordN
writeIORef addr (curAddr plusPtr n) -- write the address for next wordN
f x curAddr -- put the current WordN - this must be last action in order to satisfy output type IO()
putWord64leV :: V.Vector Word64 -> Ptr Word8 -> IO()
putWord64leV = genFnPutWordNleV putWord64le 8
{-# INLINE putWord64leV #-}
putWord32leV :: V.Vector Word32 -> Ptr Word8 -> IO()
putWord32leV = genFnPutWordNleV putWord32le 4
{-# INLINE putWord32leV #-}
encodeDoubleV :: V.Vector Double -> ByteString
encodeDoubleV x = unsafeCreate (8*(V.length x)) (putWord64leV $ unsafeCoerce x)
encodeInt32V :: V.Vector GHC.Int.Int32 -> ByteString
encodeInt32V x = unsafeCreate (4*(V.length x)) (putWord32leV $ unsafeCoerce x)
main :: IO ()
main = do
let intv = V.fromList [1..10] :: V.Vector GHC.Int.Int32
doublev = V.fromList [1..10] :: V.Vector Double
defaultMain [
bench "DoubleV" $ whnf encodeDoubleV doublev
,bench "IntV" $ whnf encodeInt32V intv
]
-- | End Haskell Code

Criterion output for above code:
warming up
estimating clock resolution...
mean is 5.155132 us (160001 iterations)
found 275510 outliers among 159999 samples (172.2%)
135061 (84.4%) low severe
140449 (87.8%) high severe
estimating cost of a clock call...
mean is 47.38399 ns (35 iterations)
found 5 outliers among 35 samples (14.3%)
2 (5.7%) high mild
3 (8.6%) high severe
benchmarking DoubleV
mean: 407.7989 ns, lb 406.7614 ns, ub 409.2373 ns, ci 0.950
std dev: 6.238086 ns, lb 4.913598 ns, ub 9.148503 ns, ci 0.950
benchmarking IntV
mean: 401.6377 ns, lb 400.5134 ns, ub 402.9650 ns, ci 0.950
std dev: 6.253466 ns, lb 5.415961 ns, ub 7.395777 ns, ci 0.950

Criterion ouput when "intv" benchmark is commented out, only "doublev" is benchmarked:
warming up
estimating clock resolution...
mean is 5.142457 us (160001 iterations)
found 269135 outliers among 159999 samples (168.2%)
132865 (83.0%) low severe
136270 (85.2%) high severe
estimating cost of a clock call...
mean is 46.25240 ns (35 iterations)
found 2 outliers among 35 samples (5.7%)
2 (5.7%) high severe
benchmarking DoubleV
mean: 183.1018 ns, lb 182.2975 ns, ub 184.4998 ns, ci 0.950
std dev: 5.297046 ns, lb 3.595863 ns, ub 8.951493 ns, ci 0.950

Compile details:  ghc -O --make
Criterion Version: <IP_ADDRESS> (but cabal list shows installed versions as: <IP_ADDRESS>, <IP_ADDRESS>)
Compiler: GHC 7.0.3
OS: Mac Darwin Kernel Version 11.2.0, root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
StackOverflow post: http://stackoverflow.com/questions/8379191/forcing-evaluation-of-function-input-before-benchmarking-in-criterion (different title because I initially misunderstood the issue as problem of lazy evaluation of inputs)

I think it's inliner's work. When one benchmark is commented out genFnPutWordNleV is mentioned only once and thus gets inlined and specialized with corresponding performance boost. Marking it with NOINLINE reverts performance to old value.
P.S. Code is very unhaskellish. I'm surprised that it's even work with all unsafe functions (esp. unsafeCoerce). Did you consider binary or cereal for serialization?

I think it's inliner's work. When one benchmark is commented out genFnPutWordNleV is mentioned only once and thus gets inlined and specialized with corresponding performance boost. Marking it with NOINLINE reverts performance to old value.
P.S. Code is very unhaskellish. I'm surprised that it's even work with all unsafe functions (esp. unsafeCoerce). Did you consider binary or cereal for serialization?

You are right about inlining. When I explicitly marked genFnPutWordNleV as INLINE, that made the benchmark consistent. So, it seems to be inliner's doing. I will close this issue.
About binary/cereal - yes, I have tried them but they are too slow. So, I wrote code closer to metal to get high performance. There is nothing unhaskellish as long as logic is sound :)


undefined is not a function when running on('connect' over https

I have the following code
var io = require('socket.io-client'),
  globals = require('./globular.js'),
  user = globals.user;

var socket = io('https://localhost:3500');
socket.on('connect',
          { query: 'user=' + user.last_name }
         );

I get the following stack trace

_stream_0.js is identical to the first code snippet and points to the line
var socket = io('https://localhost:3500');

the name change must be due to browserify.

solution is to pass the query params like this
var socket = io('https://localhost:3500?user=' + user.last_name);


⚠ Bofrost.fr has degraded performance

In 1447020, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1334 ms

Resolved: Bofrost.fr performance has improved in 790cab1 after 9 minutes.


Attempt to measure affect on performance of new hook logic

WordPress 4.7 server performance has degraded.

How much of it is due to the new hook logic?
And how does attempting to measure the number of hooks invoked affect the performance?

Proposed solution
Add count-hooks.php to be run under oik-wp to produce timings for WordPress 4.6, 4.6.1 and 4.7

The following tables summarise the output from multiple runs of count-hooks.php under oik-wp.php ( part of oik-batch ).
oik-wp start up

Version
Start-up
Hooks
Hook calls
Average

4.6
2.74
973
5443
.000503

4.6
2.80
973
5443
.000514

4.6.1
2.79
973
5443
.000513

4.6.1
2.74
973
5443
.000503

4.7
2.86
979
5522
.000518

4.7
2.90
979
5522
.000525

Hooks is the number of registered hooks ( actions and filters )
Hook calls is the total number of invocations
Start-up is the start up time of my development system with:

57 active plugins
472 files loaded
129 registered widgets
48 post types
29 taxonomies
and 4 queries ( execution time 0.040685 secs )
trace activated

Performance affect of counting hook invocation - hook not implemented

Version
Hooked func
No count
Count
All

4.6
-
.0000043
.0000055
.0000078

4.6
-
.0000044
.0000056
.0000079

4.6.1
-
.0000045
.0000057
.0000081

4.6.1
-
.0000044
.0000054
.0000080

4.7
-
.0000010
.0000082
.0000105

4.7
-
.0000009
.0000082
.0000106

No count is when there is no hook function for 'all'
Count is for bw_trace_count_only hooked into 'all'
All is for bw_trace_count_all hooked into 'all'

Performance affect of counting hook invocation - hook implemented

Version
Hooked func
No count
Count
All

4.6
chl_out
.0000091
.0000097
.0000122

4.6
chl_out
.0000091
.0000095
.0000120

4.6.1
chl_out
.0000092
.0000099
.0000125

4.6.1
chl_out
.0000091
.0000095
.0000120

4.7
chl_out
.0000101
.0000168
.0000196

4.7
chl_out
.0000101
.0000168
.0000195

Performance of hook function
Average execution time of the hook function.

Function
Average

chl_out
.0000003

bw_trace_count_only
.0000006

bw_trace_count_all
.0000022


[cmd] Gracefully exit instead of crashing when cmd diff is missing a param

When CodeChecker cmd diff is invoked like this:
CodeChecker cmd diff -n new_run
it will crash instead of gracefully exiting and warning about the
missing -b flag. This patch fixes that.

Wouldn't it be a better solution to make -b and -n required fields? This could be simply forced by the argparse module. I can't come up with a use-case where either -b or -n is needed only.


NIFI-3600 Improve logging and relationship routing for failures in De…

…leteHDFS
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@jdye64 can you please solve the conflicts?
Cheers!

@trixpan I tried talking it out but that didn't seem to solve the conflict?? Will try more forceful procedures when I get off the road and near a computer ;) thanks for taking a look at this!

:rofl:

@trixpan refactoring due to NIFI-3204 #1561 which caused some conflicts

Glad you managed to get the  lines out of their conflict... 😀 will review

From a first look the code seems ok but I have a quick question:
Do we truly need a permission denied relationship? It seems like a deviation from the general nature of failure relationships (generally they are nearly all encompassing).
Perhaps we could add the failure reason to an attribute and route to failure?
Reason I ask is that I like the strong similarity between the *HDFS, the *File and *S3 processors and I suspect this change would introduce change that will move some of them appart?

My reasoning for adding the extra relationship was for end users to understand that certain directories or files had improper permissions and have a visible way to see that with the extra relationship. However your right we could just add something like a "error.code" and "error.message" attributes and route to failure. I would like the "error.code" for sure however since that would be easy to route against while error.message might contain different messages from the exceptions when dependency versions change

Reviewer consensus (see the Jira case for details) is to exclude the hdfs.error.code for now, rather than possibly reporting an incorrect cause of an IOException. Once we can tell the difference, we can add that attribute back in.  In that state, @bbende and I are a +1
Adding a unit test, removing the attribute, and merging to master.   Thanks much!


Getting it running?

Likely a config issue on my end...
I did npm install and that worked. No gulp: gulp: command not found. npm install gulp. No gulp. npm install gulp -g, and then gulp was found, but:
(node:90604) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
[10:35:45] Using gulpfile ~/src/Elmctron/gulpfile.js
[10:35:45] Starting 'elm-init'...
[10:35:45] Starting 'sass'...
[10:35:45] Starting 'watch'...
[10:35:45] Finished 'watch' after 12 ms
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: spawn elm-make ENOENT
    at exports._errnoException (util.js:1007:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:182:32)
    at onErrorNT (internal/child_process.js:348:16)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

@zeckalpha It looks like a problem with elm-make. Try to install it globally, manually,  by run npm install -g elm. Please, keep me posted  (:

That worked. I wonder if the local npm path wasn't getting picked up for some reason. I'll look into that a bit, and update the README and send you a PR.
–
Kyle Marek-Spartz

On Jul 30, 2016, at 02:41, Nir Galon<EMAIL_ADDRESS>wrote:
@zeckalpha It looks like a problem with elm-make. Try to install it globally, manually, by run npm install -g elm. Please, keep me posted (:
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.


Update sql-authentication.md

Simple completion of the script

@gabeteixeira : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

@vvasic-msft can you please take a look at the suggestion?

@gabeteixeira can you please take a few minutes to address the feedback from the doc author? we want to keep existing example in addition to the one you proposed. We can merge your PR after it's addressed.

#please-close  Unfortunately this change isn't approved as-is. Feel free to reopen to adjust the changes as discussed with the author. We appreciate the discussion and improvements to docs.


Arithmetic expressions should work with aggregations

select (-100 * mean(value) + 100) from /.*/ group by time(30m) where time > now() - 2d

My use case is to be able to aggregate rates of some event:
select derivative(i1.value) as d + derivative(i2.value) as f from "foo.i1" as i1 inner join "foo.i2" as i2 group by time(60s) limit 100

Server returned (400): Value cannot be evaluated for type &{derivative d 10 [0xc2081b9040] <nil> false}

Excellent use case writeup in #1299

I think this is no longer an issue. Closing issue.

@mjdesa I'm confused, is this no longer an issue because it's been implemented? It doesn't look like it's working.

Is this fixed or not? I see a lot of linked issues that are also closed, but on my <IP_ADDRESS> install I can not do math on aggregates:
This works: SELECT 1.5 + value FROM "processes_user" WHERE time > now() - 5m
This works: SELECT 1.5 + mean(value) FROM "processes_user" WHERE time > now() - 5m GROUP BY time(10s)
This does not work: SELECT 1.5 + derivative(mean(value)) FROM "processes_user" WHERE time > now() - 5m GROUP BY time(10s), returns the same as SELECT derivative(mean(value)) FROM "processes_user" WHERE time > now() - 5m GROUP BY time(10s) although the column name is gone.

@jessetan derivative isn't an aggregation. Please open an issue for the problem you've cited.

Thanks @mjdesa, opened #5571


Error: timeout waiting for build 01c... to start

Hi
Update:
I found that: kubectl logs brigade-brigade-vacuum-... is failing with the following:
Pruning records older than 2018-02-14 18:45:59.128294176 +0000 UTC m=-2591999.929197262
Error: secrets is forbidden: User "system:serviceaccount:default:brigade-brigade-vacuum" cannot list secrets in the namespace "default": Unknown user "system:serviceaccount:default:brigade-brigade-vacuum"

Following this tutorial from 1-4: https://azure.github.io/brigade/intro/tutorial03.html
I get a webhook error in GitHub that says: We couldn’t deliver this payload: Service Timeout
I am using the url as described in the tutorial: http://x.x.x.x:7744/events/github
Can I test that the http://x.x.x.x:7744/events/github is actually working?
Note I did get the external ip from: kubectl get service
Also if I do:
brig run -f brigade.js someAlias/uuid-generator
I get:
Error: timeout waiting for build 01c8q4zn6qc4g110dzn6fj134g to start
Note: I can see my project with: brig project list
Name, ID, Repo
someAlias/uuid-generator	brigade-aa680...	github.com/someAlias/uuid-generator
I also have a ton of:
brigade-server-brigade-vacuum-1521176400-dvncc      0/1       Pending             0          5h        <none>       <none>
when calling: kubectl get pods
Any help is appreciated
Regards
Christian

/cc @bacongobbler
I believe the source of this error is RBAC. When you installed Brigade, did you set rbac.enabled=true? (That may also be the issue with your Vacuum stuff)

Hey @technosophos
/cc @bacongobbler
You are so right, thanks it worked - really nice!
Now I can start to play :-)
Regards
Christian

Good!  Sorry that slowed you down.

Thanks
2018-03-19 19:01 GMT+01:00 Matt Butcher<EMAIL_ADDRESS>
Closed #372 https://github.com/Azure/brigade/issues/372.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Azure/brigade/issues/372#event-1529150672, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABxnFoeM_EfnRKnRN0SZFfS5lgSzthBkks5tf_KCgaJpZM4SswOI
.

Hi @technosophos
I am back with the same problem even with the rbac.enabled=true bouth for installing brigade and for the project.
brig run -f brigade.js deis/empty-testbed
Event created. Waiting for worker pod named "brigade-worker-01ch3gf2zmh249yjk1vy5p7b9t".
Error: pod failed to schedule:

I dont know how to debug this. There is no vacume I can kubectl log on.
Do you have any idea? Thanks
This time I am running on Google Kuberneres Engine
I am running Helm & kubectl:
helm version
Client: &version.Version{SemVer:"v2.10.0-rc.1", GitCommit:"aa98e7e3dd2356bce72e8e367e8c87e8085c692b", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.10.0-rc.1", GitCommit:"aa98e7e3dd2356bce72e8e367e8c87e8085c692b", GitTreeState:"clean"}

kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.7", GitCommit:"dd5e1a2978fd0b97d9b78e1564398aeea7e7fe92", GitTreeState:"clean", BuildDate:"2018-04-19T00:05:56Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"9+", GitVersion:"v1.9.7-gke.3", GitCommit:"9b5b719c5f295c99de68ffb5b63101b0e0175376", GitTreeState:"clean", BuildDate:"2018-05-31T18:32:23Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}


[BEAM-12602] Put reader back into the cache after getProgress()

This places the reader back into the cache after a getProgress() to avoid holding onto the reader.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[N/A] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] Update CHANGES.md with noteworthy changes.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @lukecwik

If you create an account on https://issues.apache.org/jira/, I can assign it to you for record tracking.

Done, I've created an account named alexkoay on the Apache Jira.


Download of supplementary file

Coverage decreased (-0.1%) to 73.208% when pulling bfc2c8b63caae5902e965e160dfccf54230f50af on download-supplementary-file into 5480827d94736c691863ca9346ad37a45e8ad573 on master.


operator: dsa: Handle initcontainer and ConfigMap updates

Closes #729

@bartosh @mythi
Thanks! Rebased, sorry for a  delay.

@mythi

intel-idxd-config-initcontainer?

Fixed, thanks!

Codecov Report

Merging #761 (4597371) into main (2f5275c) will decrease coverage by 0.55%.
The diff coverage is 1.28%.

:exclamation: Current head 4597371 differs from pull request most recent head fa6ae7a. Consider uploading reports for the commit fa6ae7a to get more accurate results

@@            Coverage Diff             @@
##             main     #761      +/-   ##
==========================================
- Coverage   54.59%   54.04%   -0.56%
==========================================
  Files          39       39
  Lines        3515     3551      +36
==========================================
  Hits         1919     1919
- Misses       1489     1525      +36
  Partials      107      107

Impacted Files
Coverage Δ

pkg/controllers/dsa/controller.go
10.75% <1.28%> (-3.18%)
:arrow_down:

Continue to review full report at Codecov.

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

I missed the linter check so "conditional approval". :-)

@mythi
Thanks! Changes:

Fixed linter checks


Can't add funds manually on behalf of existing user

Describe the bug
As a host admin, I am trying to manually add funds to a Collective that were donated outside the platform, but I'm getting an error because I'm trying to input the email of the admin of the donating organization and she already has an Open Collective user account.
Expected behavior
It seems like the system is expecting her to be able to log in and do this herself, but core contributors don't have access to this feature, only host admins, and host admins need to have the power to add funds manually on behalf of anyone regardless of if they already have an account. It should just associate this manual contribution with her profile automatically.
Screenshots

Additional context
This particular situation is a consequence of Collective to Collective transfers being disabled, as we're trying to work around that by using paypal and manually adding funds.
Open Collective UK also recently ran into the same problem.

@piamancini is there a better way to do this? it's a mess.

@alannallama can you edit the issue and provide the steps to reproduce (1. 2. 3. ...)

Go to add funds
Under source, select 'other' to create new
Use an email address of an existing registered user
See error, can't create source

On Fri, May 17, 2019, 21:00 François Hodierne<EMAIL_ADDRESS>wrote:

@alannallama https://github.com/alannallama can you edit the issue and
provide the steps to reproduce (1. 2. 3. ...)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/opencollective/opencollective/issues/2042?email_source=notifications&email_token=ABJ6P7VDH5AQX2MDWEHCKQTPVZX4PA5CNFSM4HNSJRMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVUF5QY#issuecomment-493379267,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABJ6P7W2T774O767VQYKVTTPVZX4PANCNFSM4HNSJRMA
.

@znarf @Betree I am running into problems with this constantly. Can this please be fixed with priority? If the user already exists, the donation should be attributed to their existing profile, not blocked.

@alanna the way to fix this is to enable you to search all collectives/users/organizations in the source of funds. IT used to be like that, but there was never a search and so finding someone was virtually impossible.
So @xdamman fixed it by showing only the organizations that already sponsor.
@xdamman should be able to fix this on Friday, @betree has already too much on plate.  @xdamman can you look at this tomorrow?

@znarf Not sure how to fix this without defeating the original purpose for which the check was added, according to the comment in the code:
// Form changes in frontend when trying to create an order with an
// existing email, asking user to login. So if user given in `order.user`
// already exists, that could mean two things:
    // 1. Email is registered under another account as Paypal address.
    // 2. We got a bad payload trying to impersonate another user.

I would simplify this by moving this addFund functionality in a dedicated GraphQL mutation. This is too complicated to have that in the createOrder one. It will be an opportunity to remove code from createOrder and make it simpler.
After that, in this new mutation, given that the acting user is root/superadmin, we should allow them to do the operation, even if the email is existing.


Proposing a logo for repo2docker

repo2docker doesn't have a logo which means its documentation page looks somewhat blank and makes it tricky to represent on slides. Also, what serious project doesn't have a logo :) Here is a proposal arrived at in #423:

To move this forward at a steady but consistent pace the idea is to agree the basic ideas of the logo (individual pages with a fork symbol on them (representing the repo) and a container) and then:

Colour scheme (e.g. do we want to adopt any of the Jupyter colors?)
Structure and layout

Like the code and documentation this logo doesn't have to be perfect on day one and the expectation is that we'd keep tweaking it for a while.
What do you think of this? If you'd like to change something can you try and make a specific suggestion for what to change and how. This would help us in actually making it happen. You can check #423 for how things evolved, other ideas and inspirations that lead to where we are now.
This issue will stay open for at least 5 November 2018. Unless there are strong objections by that time this would become "the logo".

A ping on this issue! @betatim perhaps we should turn this into a PR that gets merged on the 5th unless there is objection from somebody?


[RESOLVED] High ICMP ping response time

Problem started at 14:33:32 on 2023.07.31
Problem name: High ICMP ping response time
Host: S100-Santiago
Severity: Warning
Operational data: Value: 9ms
Original problem ID: 34498
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23518&eventid=34498

Problem has been resolved in 2m 0s at 14:35:32 on 2023.07.31
Problem name: High ICMP ping response time
Host: S100-Santiago
Severity: Warning
Original problem ID: 34498


Rename field_name -> model_field_name

Codecov Report

Merging #28 into master will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master      #28   +/-   ##
=======================================
  Coverage   98.16%   98.16%
=======================================
  Files          61       61
  Lines        7579     7579
=======================================
  Hits         7440     7440
  Misses        139      139

Impacted Files
Coverage Δ

iommi/form.py
99.09% <100.00%> (ø)

iommi/form__tests.py
99.20% <100.00%> (ø)

iommi/from_model.py
97.39% <100.00%> (ø)

iommi/query.py
98.89% <100.00%> (ø)

iommi/table.py
98.09% <100.00%> (ø)

Continue to review full report at Codecov.

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


Docs: CRD Upgrade Safety

User story
Describe the user story or stories for this epic:

As a user, I expect updates to a CRD to be rejected (install/upgrade fails) when:

the scope changes from Cluster --> Namespace or Namespace --> Cluster
an existing stored version is removed
a new required field is added to an existing version
an existing field is removed from an existing version
an existing field type is changed in an existing version
a valid enum value is removed for a field in an existing version

As a user, I expect updates to a CRD to be accepted (install/upgrade succeeds) when:

An enum value is added for a field in an existing version
An existing required field is updated to be optional in an existing version
The minimum value of an existing field is decreased in an existing version
The maximum value of an existing field is increased in an existing version
A new version of the CRD is added with no modifications to existing versions

As a user I should be able to disable the CRD Upgrade Safety validations for a particular ClusterExtension

List the user-facing issues in the epic that require documentation.

#745
#741
Could probably be grouped into a singular section:

#662
#663
#664
#665
#714
#715
#716
#713

Does this epic require new content or updates to existing content?

[x] Net-new content
[ ] Update existing content

What type of documentation is required for this epic?

[x] Release note
[x] Concept
[ ] Procedure
[x] Reference

Is there prior art or reference materials that would help write the documentation?

Once the feature is complete and in place, there will likely be some unit and e2e tests that could be used as reference for how CRDs with allowed and disallowed changes look

/assign


EBSI Verifiable Authorization type does not match the expected by the VCTypeAdapter

Verifiable Authorizations issued by EBSI Onboarding API have the type element "VerifiableAuthorisation" instead of "VerifiableAuthorization". This difference in the naming raises an error in the classFor function of this class:
https://github.com/walt-id/waltid-ssikit-vclib/blob/master/src/main/kotlin/id/walt/vclib/adapter/VCTypeAdapter.kt, as it doesn't recognize "VerifiableAuthorisation" as a valid type.

Please check, afair there are aliases defined for that case. So it should work anyway. Maybe the alias got lost with a recent update?

I am using waltid-ssikit-vclib-1.7-SNAPSHOT, and when I use the function VerifiableCredential.fromString(string) with an EBSI generated V.Auth, this errror appears VcLib: "Unknown credential type: JsonArray(value=[VerifiableCredential, VerifiableAuthorisation])". If I modify the V.Auth and change "VerifiableAuthorisation" for "VerifiableAuthorization", the error disappears. Am I doing something wrong here?


Recursively check for dependent property to fire events.

Description
EventedModel is capable of automatically detecting if a property has a field dependency, and if so, creating an event, and firing it . Consider the following example where M.a is used by M.x which is in turn used by M.y:
from napari.utils.events import EventedModel

class M(EventedModel):
    a = 1

    @property
    def x(self):
        return self.a * 2

    @x.setter
    def x(self, val):
        self.a = val // 2

    @property
    def y(self) -> int:
        return self.x * 10

    @y.setter
    def y(self, val: int):
        self.x = val // 10

m = M()
m.events.connect(lambda event: print(event.type, event.value))

print('> m.a = 2')
m.a = 2
print('> m.x = 3')
m.x = 3
print('> m.y = 50')
m.y = 50

If you run it on main, it will print the following:
> m.a = 2
a 2
x 4
> m.x = 3
a 1
x 2
x 2
> m.y = 50
a 2
x 4
x 4
y 40

As you can see, the m.y event is not fired when changing m.a or m.x; this is because the automatic search for dependent properties is not recursive. This PR changes that, so that the output becomes:
> m.a = 2
a 2
x 4
y 40
> m.x = 3
a 1
x 2
y 20
x 2
> m.y = 50
a 2
x 4
y 40
x 4
y 40

PS: You probably noticed that we also have an event duplication issue. This can/should be fixed by checking whether an event was already fired, but I'm not sure how to do that yet, and it can be done in a separate PR.

Type of change

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

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change
[ ] example: I check if my changes works with both PySide and PyQt backends
as there are small differences between the two Qt bindings.

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

@tlambert03 you might interested in including this change also for psygnal :)

I added tests to increase coverage; in doing so, I also noticed that I didn't change something I wanted to change: this machinery should work whether or not a property has a setter.
So I updated it, and now it works with just getters. I added tests to also cover this new functionality.

@Czaki I addressed your comments and fixed a couple of things. Coverage of EventedModel went up :) Can you take a look?


Field level tooltip to combobox

Fixes #1681
Additional description

Adding fieldLevelHelpTooltip to combobox component. Inspired by fieldLevelHelpTooltip prop on input component :)

CONTRIBUTOR checklist (do not remove)
Please complete for every pull request

[ ] First-time contributors should sign the Contributor License Agreement.  If you haven't before, wait a few minutes and a bot will comment on this pull request with instructions.
[ ] npm run lint:fix has been run and linting passes.
[ ] Mocha, Jest (Storyshots), and components/component-docs.json CI tests pass (npm test).
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[ ] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[ ] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

REVIEWER checklist (do not remove)

[ ] TravisCI tests pass. This includes linting, Mocha, Jest, Storyshots, and components/component-docs.json tests.
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[ ] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[ ] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

Required only if there are markup / UX changes

[ ] Add year-first date and commit SHA to last-slds-markup-review in package.json and push.
[ ] Request a review of the deployed Heroku app by the Salesforce UX Accessibility Team.
[ ] Add year-first review date, and commit SHA, last-accessibility-review, to package.json and push.
[ ] While the contributor's branch is checked out, run npm run local-update within locally cloned site repo to confirm the site will function correctly at the next release.

@hajiz No, it's just been the Christmas/New Year holiday delay. I took a quick glance. I think I can merge this into master tomorrow.


Issue 169 test suite failed fix

Solution: https://github.com/facebook/jest/issues/6769

Codecov Report

Merging #170 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #170   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files         128    128
  Lines        2424   2424
  Branches      411    411
=====================================
  Hits         2424   2424

Continue to review full report at Codecov.

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

Thanks for the fix @okersov !


extra toolbar buttons on wysiwyg title fields e.g. text alignment?

Now that it's possible to drag and drop images onto title fields or have FA icons etc it would be useful to allow control of text alignment too. Another example is the new caption option on the graphics and sound page where rather than have an additional optional property to align the caption centre or left having the toolbar options for that would be far simpler and more universal. Appreciate that this might make it difficult to keep that toolbar to a single line but if that's not a problem then I think would be a useful  enhancement.

It will remain a compromise between keeping this a one line menu and functionlaity..... But it is not hard to do.

I'd like to add the text alignment options (someone here has asked for it). I can get the buttons to appear on the toolbar and it seems to work ok...

...but then if you then change page in the editor & go back it has added extra p tags too...

Any idea why this would happen @torinfo? All I have done is add JustifyLeft, JustifyCenter & JustifyRight to the list of what's included in the menu in toolbox.js

Hmmm...
The problem is that we manipulate the results of the editor TextInputs in a way that is not working in this case.
The editor aways wraps the text in  tags, and we remove those. Because of the style attribute that obviously doesn't work.
What would be better (I think) is to add a class to the  tags that makes sure that for that paragraph the margins, padding etc are zero instead of removing the tag completely.
So instead of removing and adding the  tag we add/remove a class to the  tag.

Sorry I should have commented again as earlier as I found where the p tags were being added in the editor & have changed this slightly so that if the p tag is already there then it doesn't wrap it in p tags again. It seems to work ok but if there's a better way of dealing with this with classes then feel free to change it. Thanks

Regrettably this will solve the issue in the TextInputs itself, but now, you have a  around the text which can result in strange extra margins/padding in some of the pages.
They  will not be removed, because the code is explicitly looking for '' and not '<p.*>'

@torinfo maybe we can add the alignment buttons to the small wysiwyg toolbar now that you have fixed the issue with extra lines being added  (https://github.com/thexerteproject/xerteonlinetoolkits/issues/1261#event-10864905350)

Yes, I'll have a look at this. It might result in small changes in how the content looks, because now in some cases the code will be wrapped in  and in some case not... But it really depends on the themes.


Should the specification have an non-normative section on the mapping to Schema.org?

Ref DCAT v2 that has a section specifying how the vocabulary maps to Schema.org, is this something we should also add to the STIRData data-specification, in order to make it easier to combine/interpret the STIRData data in relation to existing data using Schema.org?
See DCAT v2: https://www.w3.org/TR/vocab-dcat-2/#dcat-sdo

The EBG data model - base of the STIRData model - already reuses parts of schema.org. However, there could definitely be a more complete mapping.
This mapping could also be materialized in the datasets.
Another point regarding this is that it seems that the Core Vocabularies community seems to dislike reuse of schema.org in core vocabularies because of its origin - American companies, and because of different maintenance policies.


Add a warning message to make people proofread before submitting

By default a message is shown to warn the user to proofread the tool's output.
The message can be suppressed by an optional parameter -s

Handled by https://github.com/ikks/tldrtranslate/commit/99c85f2f11d79bc4f879d4be39c00860e5c2357f


catch error if opening in the browser is not possible

I was running snowpack dev without having xdg-open installed.
 This PR tries to catch the error and give helpful instructions on how to proceed.

Thanks! I may change the catch behavior to just silently ignore (not a huge deal if it can't open) but overall this is a great improvement


Handle returned messages from channels

Functionality to handle messages that were published to RabbitMQ but returned via the channel's return event.
Return event documentation:
http://www.squaremobius.net/amqp.node/channel_api.html#channel_events

@rg1220 - this is great. Can you add coverage for this under the integration spec by creating a test scenario where an unroutable message is published and returned?
Before line 680 in spec/integration/integration.spec.js, add a nested describe block for returned messages. In the before block, set up a harness by calling harnessFn( done, 1 ) and then calling the handle call with the type of the message that will be returned. The harness will wait until it's received 1 returned message before calling the done callback in the before block so you'll publish a message with a mandatory flag that would be unroutable and then use an it to validate that the message you got back is what you sent.
Thank you again for the contribution, this is great!

@arobson Should be good to go now. I modified the function signature for topologyFn, hence all the changes in topology.spec.js and now all tests are passing.

Actually, I want to make the mandatory flag optional (unless you think otherwise) and I'll update the README as well.

@arobson Now I'm happy with it 👍 Let me know if you want something changed/feel free to modify it to your liking.


[TE9][TC-DESC-2.1] WindowCovering deviceType revision is incorrect

Problem
<what's wrong or missing, please include any applicable:

DeviceType revision is wrong for WindowCovering example since it is starting at 2 For Matter

Proposed Solution
<Update the revision with the .zap file from 1 to 2>

I ll do a PR for this !


Set Content-Type header of prerendered HTML response

W3c validator complained and therefore would not validate:
The Content-Type was null. Using the XML parser (not resolving external entities).

@yn5 Thanks for the PR. We are working on v2 of MERN. From now on, all the development will be done on V2.0.0 branch. Could you remake the PR against v2.0.0 branch?

@somus Sure: https://github.com/Hashnode/mern-starter/pull/148


Show daily build failure count in release activity page

Thanks so much for working on this!
I think, ideally, this information may be better off as a separate page, so we can pull it more often (say, every 3-4 hours?). I'd also love to have the list of most recent crates that failed cached so we can link to them on the page and try to diagnose the failure.
This is worth merging as-is, but if it's not too much trouble to make the extra page and the listing of recent failures, i'd love to have that.


Add 'node' as an option to lager_default_formatter [JIRA: RIAK-2333]

We've had to write a custom lager formatter because we wanted the node name to appear in the log. If lager_default_formatter supported (e.g.) node (analogous to date, time, severity, etc.) we could use the default formatter.

Thanks for the feedback. I think we ought to add that in a future release too.

But it's already supported, isn't it?
https://github.com/basho/lager#custom-formatting

The placeholders pid, file, line, module, function, and node will always exist if the parse transform is used.

Apparently, it is -- there's even a unit test for it in lager_console_backend.erl. I have no idea how I missed that.

I'm going to reopen this; it needs further investigation. In lager 3.2.1 (and possibly more recently), if I use the following config:
[date, " ", time, " ", node, " ", color, "[", severity, "]", ...

...then the node is often displayed as Undefined, particularly in the initial startup messages. If, instead, I use the following:
[date, " ", time, " ", {node, atom_to_list(node())}, " ", color, "[", severity, "]", ...

...then it works as expected.
Obviously, I can't use the second form in a configuration file, so I end up having to introduce a custom formatter module, as originally stated.

OK, thanks for the clarity. Hopefully someone can take a look at this soon.

Any update?

@mrallen1 yes, this seems to work. Thanks.


[HOW-TO] <How can I target iFrame within QuickCreate?>

How can I target iFrame within QuickCreate?
I am writing a test for QuickCreate and cannot set value for iFrame?
It has a FieldSectionItemContainer but I it's not working for setting value
// Textbox
        _xrmApp.QuickCreate.SetValue("ucl_details", TestSettings.GetRandomString(5, 15));

I got an error message that this field does not exist:

@Igormirowski is this a web resource you're attempting to interact with or a field such as the rich text editor? If its RTE I uploaded a change to my user branch if you want to take a look: https://github.com/microsoft/EasyRepro/tree/users/alyousse
Here's a direct link to a unit test: https://github.com/microsoft/EasyRepro/blob/c51933d88c3b83594d82706788e51d4b60898fe2/Microsoft.Dynamics365.UIAutomation.Sample/AzureDevOps/UCI/RegressionTests.cs#L894


Unknown props toastMessageFactory, toastType, preventDuplicates, newestOnTop

warning.js:44 Warning: Unknown props toastMessageFactory, toastType, preventDuplicates, newestOnTop on
tag. Remove these props from the element. For details, see https://fb.me/react-unknown-prop
in div (created by ToastContainer)
in ToastContainer (created by Notification)
in Notification (created by ToolBar)
in div (created by ToolBar)
in ToolBar (created by BootstrapTable)
in div (created by BootstrapTable)
in div (created by BootstrapTable)
in BootstrapTable (created by ListShipments)
in div (created by ListShipments)
in ListShipments (created by Dashboard)
in div (created by Dashboard)
in div (created by Dashboard)
in div (created by Dashboard)
in Dashboard

@jonasostrom Kindly share the version of React you are using.

devDependencies": {
"babel-core": "6.11.4",
"babel-preset-es2015": "6.9.0",
"babel-preset-react": "6.11.1",
"babel-register": "6.11.6",
"babelify": "7.3.0",
"browser-sync": "2.14.0",
"browserify": "13.1.0",
"eslint": "3.2.2",
"eslint-plugin-react": "6.0.0",
"exorcist": "0.4.0",
"gulp": "3.9.1",
"gulp-eslint": "3.0.1",
"gulp-if-else": "1.0.3",
"gulp-uglify": "2.0.0",
"jquery": "2.2.4",
"react": "15.3.0",
"react-dom": "15.3.0",
"react-router": "2.6.1",
"vinyl-buffer": "1.0.0",
"vinyl-source-stream": "1.1.0",
"watchify": "3.7.0",
"angular": "1.5.8",
"gulp-autoprefixer": "3.1.0",
"gulp-concat": "2.6.0",
"gulp-cssnano": "2.1.2",
"gulp-imagemin": "3.0.2",
"gulp-livereload": "3.8.1",
"gulp-newer": "1.2.0",
"gulp-notify": "2.2.0",
"gulp-plumber": "1.1.0",
"gulp-sass": "2.3.2",
"bootstrap": "4.0.0-alpha.2",
"babel-preset-stage-0": "6.5.0",
"classnames": "2.2.5",
"tether": "1.3.3",
"react-bootstrap-table": "2.3.9",
"react-dropzone": "3.5.3"
},

I would encourage you to check out this solved issue.
Please let us know if the issue persists.

I'm using React-15.4.1 and am running into this as well. What's weird is I only get it on initial load. I also confirmed that I'm using the latest version of react-toastr, which has the fix you linked to.

i'm using<EMAIL_ADDRESS>and<EMAIL_ADDRESS>i'm getting this error
Warning: Unknown props `newestOnTop`, `positionClass`, `closeMethod` on <div> tag. Remove these props from the element.

reproduced also in react 16

ok, i just figure this out.
in the last versions the API was changed:
newestOnTop -> moved from toast-options to ToastContainer property
preventDuplicates  -> moved from toast-options to ToastContainer property
closeMethod -> replaced by hideMethod
positionClass -> replaced by className
and the issue is react-toastr print all unknown props to the DOM...


pub use solana sdk

This allows a client to use TryFrom<PublicKey> for solana_sdk::pubkey::Pubkey without explicitly importing solana_sdk in their Cargo.toml.

It may feel a little bloaty, but:

it is behind a feature-gate, so "lean" builds can avoid it
I'd rather depend on the official SDK so as to minimize any error
There may be more to come, such as converting our private keys to Solana SDK private keys

If your point was to consider:
pub use solana_sdk::pubkey::Pubkey as SolanaPubkey

I usually only rename a type at local scope. I find exporting a rename to be super confusing usually, as compiler errors become super unhelpful.

If your point was to consider:
pub use solana_sdk::pubkey::Pubkey as SolanaPubkey

I usually only rename a type at local scope. I find exporting a rename to be super confusing usually, as compiler errors become super unhelpful.

Sorry no, my point was the pub use part.. as in you're re-exposing the solana-sdk as part of helium-crypto-rs, which is.. odd?

Sorry no, my point was the pub use part.. as in you're re-exposing the solana-sdk as part of helium-crypto-rs, which is.. odd?

I only do it because otherwise the client has to do the following
let solana_key: helium_crypto::solana_sdk::pubkey::Pubkey =
                    public_key.clone().try_into()?;

So they can include solana_sdk in their Cargo.toml or just pull it from here.
Maybe it's better that I remove the pub use and instead add:
impl PublicKey {
    #[cfg(feature = "solana")]
    pub fn to_solana(&self) -> Result<solana_sdk::pubkey::Pubkey> {
        self.clone().try_into()
    }
}

I personally prefer that I think...

Sorry no, my point was the pub use part.. as in you're re-exposing the solana-sdk as part of helium-crypto-rs, which is.. odd?

I only do it because otherwise the client has to do the following
let solana_key: solana_sdk::pubkey::Pubkey =
                    public_key.clone().try_into()?;

So they can include solana_sdk in their Cargo.toml or just pull it from here.
Maybe it's better that I remove the pub use and instead add:
impl PublicKey {
    #[cfg(feature = "solana")]
    pub fn to_solana(&self) -> Result<solana_sdk::pubkey::Pubkey> {
        self.clone().try_into()
    }
}

I personally prefer that I think...

Concur. Also please be liberal with the Solana sdk version. Wouldn’t be the first time a crate holds back updates

Also please be liberal with the Solana sdk version.

You mean you want me to be more explicit and assign 1.14 or something like that in Cargo.toml?

Also please be liberal with the Solana sdk version.

You mean you want me to be more explicit and assign 1.14 or something like that in Cargo.toml?

More liberal means less explicit. So like “1”

Right, so I think we're fine already?
solana-sdk = {version = "1", optional = true }

Right, so I think we're fine already?
solana-sdk = {version = "1", optional = true }

Whoops. We do indeed