<p dir="auto">Managed timestamp. Always incremental.</p>
<p dir="auto">Apache Druid 0.19.0 contains around 200 new features, bug fixes, performance enhancements, documentation improvements, and additional test coverage from 51 contributors. Refer to the <a href="https://github.com/apache/druid/compare/0.18.1...0.19.0">complete list of changes</a> and <a href="https://github.com/apache/druid/milestone/38">everything tagged to the milestone</a> for further details.</p>
<h1 dir="auto"><a name="user-content-19-new-features" href="#19-new-features">#</a> New Features</h1>
<h2 dir="auto"><a name="user-content-19-vectorize-default" href="#19-vectorize-default">#</a> GroupBy and Timeseries vectorized query engines enabled by default</h2>
<p dir="auto"><a href="https://github.com/apache/druid/issues/7093" data-hovercard-type="issue" data-hovercard-url="/apache/druid/issues/7093/hovercard">Vectorized query engines</a> for GroupBy and Timeseries queries were introduced in Druid 0.16, as an opt in feature. Since then we have extensively tested these engines and feel that the time has come for these improvements to find a wider audience. Note that not all of the query engine is vectorized at this time, but this change makes it so that any query which is eligible to be vectorized will do so. This feature may still be disabled if you encounter any problems by setting <code class="notranslate">druid.query.vectorize</code> to <code class="notranslate">false</code>.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="644260144" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/10065" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/10065/hovercard" href="https://github.com/apache/druid/pull/10065">#10065</a></p>
<h2 dir="auto"><a name="user-content-19-avro" href="#19-avro">#</a> Druid native batch support for Apache Avro Object Container Files</h2>
<p dir="auto">New in Druid 0.19.0, native batch indexing now supports <a href="https://avro.apache.org/docs/current/spec.html#Object+Container+Files" rel="nofollow">Apache Avro Object Container Format</a> encoded files, allowing batch ingestion of Avro data without needing an external Hadoop cluster. Check out <a href="https://druid.apache.org/docs/0.19.0/ingestion/data-formats.html#avro-ocf" rel="nofollow">the docs</a> for more details</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="598012658" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9671" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9671/hovercard" href="https://github.com/apache/druid/pull/9671">#9671</a></p>
<h2 dir="auto"><a name="user-content-19-sql-input-source" href="#19-sql-input-source">#</a> Updated Druid native batch support for SQL databases</h2>
<p dir="auto">An 'SqlInputSource' has been added in Druid 0.19.0 to work with the new native batch ingestion specifications first introduced in Druid 0.17, deprecating the <a href="https://druid.apache.org/docs/0.19.0/ingestion/native-batch.html#sqlfirehose" rel="nofollow">SqlFirehose</a>. Like the 'SqlFirehose' it currently supports MySQL and PostgreSQL, using the driver from those extensions. This is a relatively low level ingestion task, and the operator must take care to manually ensure that the correct data is ingested, either by specially crafting queries to ensure no duplicate data is ingested for appends, or ensuring that the entire set of data is queried to be replaced when overwriting. See <a href="https://druid.apache.org/docs/0.19.0/ingestion/native-batch.md#sql-input-source" rel="nofollow">the docs</a> for more operational details.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="574261231" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9449" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9449/hovercard" href="https://github.com/apache/druid/pull/9449">#9449</a></p>
<h2 dir="auto"><a name="user-content-19-ranger" href="#19-ranger">#</a> Apache Ranger based authorization</h2>
<p dir="auto">A new extension in Druid 0.19.0 adds an Authorizer which implements access control for Druid, backed by <a href="https://ranger.apache.org/" rel="nofollow">Apache Ranger</a>. Please see [the extension documentation]((<a href="https://druid.apache.org/docs/0.19.0/development/extensions-core/druid-ranger-security.html" rel="nofollow">https://druid.apache.org/docs/0.19.0/development/extensions-core/druid-ranger-security.html</a>) and <a href="https://druid.apache.org/docs/0.19.0/design/auth.html" rel="nofollow">Authentication and Authorization</a> for more information on the basic facilities this extension provides.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="589569444" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9579" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9579/hovercard" href="https://github.com/apache/druid/pull/9579">#9579</a></p>
<h2 dir="auto"><a name="user-content-19-aliyun-oss" href="#19-aliyun-oss">#</a> Alibaba Object Storage Service support</h2>
<p dir="auto">A new 'contrib' extension has been added for <a href="https://www.alibabacloud.com/product/oss" rel="nofollow">Alibaba Cloud Object Storage Service (OSS)</a> to provide both deep storage and usage as a batch ingestion input source. Since this is a 'contrib' extension, it will not be packaged by default in the binary distribution, please see <a href="https://druid.apache.org/docs/0.19.0/development/extensions.html#community-extensions" rel="nofollow">community extensions</a> for more details on how to use in your cluster.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="621487252" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9898" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9898/hovercard" href="https://github.com/apache/druid/pull/9898">#9898</a></p>
<h2 dir="auto"><a name="user-content-19-gce-autoscale" href="#19-gce-autoscale">#</a> Ingestion worker autoscaling for Google Compute Engine</h2>
<p dir="auto">Another 'contrib' extension new in 0.19.0 has been added to support ingestion worker autoscaling, which allows a Druid Overlord to provision or terminate worker instances (MiddleManagers or Indexers) whenever there are pending tasks or idle workers, for Google Compute Engine. Unlike the Amazon Web Services ingestion autoscaling extension, which provisions and terminates instances directly without using an Auto Scaling Group, the GCE autoscaler uses <a href="https://cloud.google.com/compute/docs/instance-groups#managed_instance_groups" rel="nofollow">Managed Instance Groups</a> to more closely align with how operators are likely to provision their clusters in GCE. Like other 'contrib' extensions, it will not be packaged by default in the binary distribution, please see <a href="https://druid.apache.org/docs/0.19.0/development/extensions.html#community-extensions" rel="nofollow">community extensions</a> for more details on how to use in your cluster.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="532513571" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/8987" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/8987/hovercard" href="https://github.com/apache/druid/pull/8987">#8987</a></p>
<h2 dir="auto"><a name="user-content-19-regexp-like" href="#19-regexp-like">#</a> REGEXP_LIKE</h2>
<p dir="auto">A new <code class="notranslate">REGEXP_LIKE</code> function has been added to Druid SQL and native expressions, which behaves similar to <code class="notranslate">LIKE</code>, except using regular expressions for the pattern.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="620649963" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9893" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9893/hovercard" href="https://github.com/apache/druid/pull/9893">#9893</a></p>
<h2 dir="auto"><a name="user-content-19-web-lookup" href="#19-web-lookup">#</a> Web console lookup management improvements</h2>
<p dir="auto">Druid 0.19 also web console also includes some useful improvements to the lookup table management interface. Creating and editing lookups is now done with a form to accept user input, rather than a raw text editor to enter the JSON spec.</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/37322608/78221645-fa2b5080-7480-11ea-9824-c74e121575f3.png"><img width="682" alt="Screen Shot 2020-04-02 at 1 14 38 AM" src="https://user-images.githubusercontent.com/37322608/78221645-fa2b5080-7480-11ea-9824-c74e121575f3.png" style="max-width: 100%;"></a></p>
<p dir="auto">Additionally, clicking the magnifying glass icon next to a lookup will now allow displaying the first 5000 values of that lookup.</p>
<p dir="auto"><a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/37322608/77206532-cd5c5e00-6abc-11ea-9ea0-0680fa5de8cb.png"><img width="1129" alt="Screen Shot 2020-03-20 at 3 09 24 PM" src="https://user-images.githubusercontent.com/37322608/77206532-cd5c5e00-6abc-11ea-9ea0-0680fa5de8cb.png" style="max-width: 100%;"></a></p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="585329014" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9549" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9549/hovercard" href="https://github.com/apache/druid/pull/9549">#9549</a><br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="590585684" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9587" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9587/hovercard" href="https://github.com/apache/druid/pull/9587">#9587</a></p>
<h2 dir="auto"><a name="user-content-19-datasource-loadstatus" href="#19-datasource-loadstatus">#</a> New Coordinator per datasource 'loadstatus' API</h2>
<p dir="auto">A coordinator API can make it easier to determine if the latest published segments are available for querying. This is similar to the existing coordinator 'loadstatus' API, but is datasource specific, may specify an interval, and can optionally live refresh the metadata store snapshot to get the latest up to date information. Note that operators should still exercise caution when using this API to query large numbers of segments, especially if forcing a metadata refresh, as it can potentially be a 'heavy' call on large clusters.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="628886067" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9965" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9965/hovercard" href="https://github.com/apache/druid/pull/9965">#9965</a></p>
<h2 dir="auto"><a name="user-content-19-batch-append" href="#19-batch-append">#</a> Native batch append support for range and hash partitioning</h2>
<p dir="auto">Part bug fix, part new feature, Druid native batch (once again) supports appending new data to existing time chunks when those time chunks were partitioned with 'hash' or 'range' partitioning algorithms. Note that currently the appended segments only support 'dynamic' partitioning, and when rolling back to older versions that these appended segments will not be recognized by Druid after the downgrade. In order to roll back to a previous version, these appended segments should be compacted with the rest of the time chunk in order to have a homogenous partitioning scheme.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="638438576" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/10033" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/10033/hovercard" href="https://github.com/apache/druid/pull/10033">#10033</a></p>
<h1 dir="auto"><a name="user-content-19-bugs" href="#19-bugs">#</a> Bug fixes</h1>
<p dir="auto">Druid 0.19.0 contains 65 bug fixes, you can see <a href="https://github.com/apache/druid/pulls?q=is%3Apr+milestone%3A0.19.0+is%3Aclosed+label%3ABug">the complete list here</a>.</p>
<h2 dir="auto"><a name="user-content-19-partition-non-atomic" href="#19-partition-non-atomic">#</a> Fix for batch ingested 'dynamic' partitioned segments not becoming queryable atomically</h2>
<p dir="auto">Druid 0.19.0 fixes an important query correctness issue, where 'dynamic' partitioned segments produced by a batch ingestion task were not tracking the overall number of partitions. This had the implication that when these segments came online, they did not do so as a complete set, but rather as individual segments, meaning that there would be periods of swapping where results could be queried from an incomplete partition set within a time chunk.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="637359859" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/10025" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/10025/hovercard" href="https://github.com/apache/druid/pull/10025">#10025</a></p>
<h2 dir="auto"><a name="user-content-19-partition-empty-buckets" href="#19-partition-empty-buckets">#</a> Fix to allow 'hash' and 'range' partitioned segments with empty buckets to now be queryable</h2>
<p dir="auto">Prior to 0.19.0, Druid had a bug when using hash or ranged partitioning where if data skew was such that any of the buckets were 'empty' after ingesting, the partitions would never be recognized as 'complete' and so never become queryable. Druid 0.19.0 fixes this issue by adjusting the schema of the partitioning spec. These changes to the json format should be backwards compatible, however rolling back to a previous version will again make these segments no longer queryable.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="635840083" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/10012" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/10012/hovercard" href="https://github.com/apache/druid/pull/10012">#10012</a></p>
<h2 dir="auto"><a name="user-content-19-bad-balancer" href="#19-bad-balancer">#</a> Incorrect balancer behavior</h2>
<p dir="auto">A bug in Druid versions prior to 0.19.0 allowed for (incorrect) coordinator operation in the event <code class="notranslate">druid.server.maxSize</code> was not set. This bug would allow segments to load, and effectively randomly balance them in the cluster (regardless of what balancer strategy was actually configured) if all historicals did not have this value set. This bug has been fixed, but as a result <code class="notranslate">druid.server.maxSize</code> must be set to the sum of the segment cache location sizes for historicals, or else they will not load segments.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="644897051" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/10070" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/10070/hovercard" href="https://github.com/apache/druid/pull/10070">#10070</a></p>
<h1 dir="auto"><a name="user-content-19-upgrading-from-previous" href="#19-upgrading-from-previous">#</a> Upgrading to Druid 0.19.0</h1>
<p dir="auto">Please be aware of the following issues when upgrading from 0.18.1 to 0.19.0. If you're updating from an earlier version than 0.18.1, please see the release notes of the relevant intermediate versions.</p>
<h2 dir="auto"><a name="user-content-19-server-size" href="#19-server-size">#</a> 'druid.server.maxSize' must now be set for Historical servers</h2>
<p dir="auto"><a href="#19-bad-balancer">A Coordinator bug fix</a> as a side-effect now requires <code class="notranslate">druid.server.maxSize</code> to be set for segments to be loaded. While this value should have been set correctly for previous versions, please be sure this value is configured correctly before upgrading your clusters or else segments will not be loaded.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="644897051" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/10070" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/10070/hovercard" href="https://github.com/apache/druid/pull/10070">#10070</a></p>
<h2 dir="auto"><a name="user-content-19-sys-segments-payload" href="#19-sys-segments-payload">#</a> System tables 'sys.segments' column 'payload' has been removed and replaced with 'dimensions', 'metrics', and 'shardSpec'</h2>
<p dir="auto">The removal of the 'payload' column from the <code class="notranslate">sys.segments</code> table should make queries on this table much more efficient, and the most useful fields from this, the list of 'dimensions', 'metrics', and the 'shardSpec', have been split out, and so are still available to devote to processing queries.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="619592476" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9883" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9883/hovercard" href="https://github.com/apache/druid/pull/9883">#9883</a></p>
<h2 dir="auto"><a name="user-content-19-segment-load-threads" href="#19-segment-load-threads">#</a> Changed default number of segment loading threads</h2>
<p dir="auto">The <code class="notranslate">druid.segmentCache.numLoadingThreads</code> configuration has had the default value changed from 'number of cores' to 'number of cores' divided by 6. This should make historicals a bit more well behaved out of the box when loading a large number of segments, limiting the impact on query performance.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="616683158" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9856" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9856/hovercard" href="https://github.com/apache/druid/pull/9856">#9856</a></p>
<h2 dir="auto"><a name="user-content-19-broadcast-colocated" href="#19-broadcast-colocated">#</a> Broadcast load rules no longer have 'colocated datasources'</h2>
<p dir="auto">A number of incomplete changes to facilitate more efficient join queries, based on the idea of utilizing broadcast load rules to propagate smaller datasources among the cluster so that join operations can be pushed down to individual segment processing, have been added to 0.19.0. While not a finished feature yet, as part of the changes to make this happen, 'broadcast' load rules no longer have the concept of 'colocated datasources', which would attempt to only broadcast segments to servers that had segments of the configured datasource. This didn't work so well in practice, as it was non-atomic, meaning that the broadcast segments would lag behind loads and drops of the colocated datasource, so we decided to remove it.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="629602337" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9971" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9971/hovercard" href="https://github.com/apache/druid/pull/9971">#9971</a></p>
<h2 dir="auto"><a name="user-content-19-broadcast-broker-load" href="#19-broadcast-broker-load">#</a> Brokers and realtime tasks may now be configured to load segments from 'broadcast' datasources</h2>
<p dir="auto">Another effect of the afforementioned preliminary work to introduce efficient 'broadcast joins', Brokers and realtime indexing tasks will now load segments loaded by 'broadcast' rules, if a segment cache is configured. Since the feature is not complete there is little reason to do this in 0.19.0, and it will not happen unless explicitly configured.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="629602337" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9971" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9971/hovercard" href="https://github.com/apache/druid/pull/9971">#9971</a></p>
<h2 dir="auto"><a name="user-content-19-lpad-rpad" href="#19-lpad-rpad">#</a> lpad and rpad function behavior change</h2>
<p dir="auto">The lpad and rpad functions have gone through a slight behavior change in Druids default non-SQL compatible mode, in order to make them behave consistently with PostgreSQL. In the new behavior, if the pad expression is an empty string, then the result will be the (possibly trimmed) original characters, rather than the empty string being treated as a null and coercing the results to null.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="635024975" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/10006" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/10006/hovercard" href="https://github.com/apache/druid/pull/10006">#10006</a></p>
<h2 dir="auto"><a name="user-content-19-interfaces" href="#19-interfaces">#</a> Extensions providing custom Druid expressions are now expected to implement equals and hashCode methods</h2>
<p dir="auto">A change to the <code class="notranslate">Expr</code> interface in Druid 0.19.0 requires that any extension which provides custom expressions via <code class="notranslate">ExprMacroTable</code> must also implement <code class="notranslate">equals</code> and <code class="notranslate">hashCode</code> methods to function correctly, especially with JOIN queries, which rely on filter and expression analysis for determining how to optimally process a query.</p>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="613106190" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/9830" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/9830/hovercard" href="https://github.com/apache/druid/pull/9830">#9830</a></p>
<h1 dir="auto"><a name="user-content-19-known-issues" href="#19-known-issues">#</a> Known Issues</h1>
<p dir="auto">For a full list of open issues, please see 
<a id="label-c8951c" href="https://github.com/apache/druid/labels/Bug" data-name="Bug" style="--label-r:252;--label-g:41;--label-b:41;--label-h:0;--label-s:97;--label-l:57;" data-view-component="true" class="IssueLabel hx_IssueLabel Label--inline">
  Bug</a>
.</p>
<h1 dir="auto"><a name="user-content-19-credits" href="#19-credits">#</a> Credits</h1>
<p dir="auto">Thanks to everyone who contributed to this release!</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/2bethere/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/2bethere">@2bethere</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/a-chumagin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/a-chumagin">@a-chumagin</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/a2l007/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/a2l007">@a2l007</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/abhishekrb19/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/abhishekrb19">@abhishekrb19</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/agricenko/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/agricenko">@agricenko</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ahuret/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ahuret">@ahuret</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alex-plekhanov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alex-plekhanov">@alex-plekhanov</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AlexanderSaydakov/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AlexanderSaydakov">@AlexanderSaydakov</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/awelsh93/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/awelsh93">@awelsh93</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bolkedebruin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bolkedebruin">@bolkedebruin</a><br>
@calvinhkf<br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/capistrant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/capistrant">@capistrant</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ccaominh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ccaominh">@ccaominh</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/chenyuzhi459/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/chenyuzhi459">@chenyuzhi459</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/clintropolis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/clintropolis">@clintropolis</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/damnMeddlingKid/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/damnMeddlingKid">@damnMeddlingKid</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/danc/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/danc">@danc</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/dylwylie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dylwylie">@dylwylie</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/egor-ryashin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/egor-ryashin">@egor-ryashin</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/FrankChen021/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/FrankChen021">@FrankChen021</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/frnidito/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/frnidito">@frnidito</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Fullstop000/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Fullstop000">@Fullstop000</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gianm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gianm">@gianm</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/harshpreet93/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/harshpreet93">@harshpreet93</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jihoonson/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jihoonson">@jihoonson</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jon-wei/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jon-wei">@jon-wei</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/josephglanville/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/josephglanville">@josephglanville</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kamaci/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kamaci">@kamaci</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kanibs/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kanibs">@kanibs</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/leerho/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/leerho">@leerho</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/liujianhuanzz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/liujianhuanzz">@liujianhuanzz</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/maytasm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/maytasm">@maytasm</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mcbrewster/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mcbrewster">@mcbrewster</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mghosh4/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mghosh4">@mghosh4</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/morrifeldman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/morrifeldman">@morrifeldman</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pjain1/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pjain1">@pjain1</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/samarthjain/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/samarthjain">@samarthjain</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/stefanbirkner/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/stefanbirkner">@stefanbirkner</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sthetland/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sthetland">@sthetland</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/suneet-s/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/suneet-s">@suneet-s</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/surekhasaharan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/surekhasaharan">@surekhasaharan</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tarpdalton/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tarpdalton">@tarpdalton</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/viongpanzi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/viongpanzi">@viongpanzi</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vogievetsky/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vogievetsky">@vogievetsky</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/willsalz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/willsalz">@willsalz</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wjhypo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wjhypo">@wjhypo</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/xhl0726/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/xhl0726">@xhl0726</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/xiangqiao123/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/xiangqiao123">@xiangqiao123</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/xvrl/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/xvrl">@xvrl</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/yuanlihan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/yuanlihan">@yuanlihan</a><br>
@zachjsh</p>