diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index b63f1efadfb..0df08375c52 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -5,7 +5,7 @@ labels: bug, triage --- - + **Description** diff --git a/.github/ISSUE_TEMPLATE/epic.md b/.github/ISSUE_TEMPLATE/epic.md index 5c077bf1696..ae58a488273 100644 --- a/.github/ISSUE_TEMPLATE/epic.md +++ b/.github/ISSUE_TEMPLATE/epic.md @@ -5,7 +5,7 @@ labels: epic, triage --- - + [Description of body of work] diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 4741f64aa55..0583b35278b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -5,7 +5,7 @@ labels: feature request, triage --- - + diff --git a/.github/tools/deephaven-gh-runner-init.sh b/.github/tools/deephaven-gh-runner-init.sh index 6a0c05c1fa9..8fe38c88001 100644 --- a/.github/tools/deephaven-gh-runner-init.sh +++ b/.github/tools/deephaven-gh-runner-init.sh @@ -8,7 +8,7 @@ set -e ######################################## GH_RUNNER_VERSION=${GH_RUNNER_VERSION:="2.277.1"} -GH_RUNNER_REPO_URL=${GH_RUNNER_REPO_URL:="https://github.com/deephaven/core"} +GH_RUNNER_REPO_URL=${GH_RUNNER_REPO_URL:="https://github.com/deephaven/deephaven-core"} GH_RUNNER_TOKEN=${GH_RUNNER_TOKEN:?""} GH_RUNNER_NAME=${GH_RUNNER_NAME:=$HOSTNAME} GH_RUNNER_LABELS=${GH_RUNNER_LABELS:="gce-runner,benchmark"} diff --git a/BenchmarkSupport/src/main/java/io/deephaven/benchmarking/impl/PersistentBenchmarkTableBuilder.java b/BenchmarkSupport/src/main/java/io/deephaven/benchmarking/impl/PersistentBenchmarkTableBuilder.java index 2f936b06d8d..40864515d60 100644 --- a/BenchmarkSupport/src/main/java/io/deephaven/benchmarking/impl/PersistentBenchmarkTableBuilder.java +++ b/BenchmarkSupport/src/main/java/io/deephaven/benchmarking/impl/PersistentBenchmarkTableBuilder.java @@ -59,7 +59,7 @@ public BenchmarkTable build() { throw new IllegalStateException("Grouping requested on the following nonexistant columns " + StringUtils.joinStrings(missingGroupingColumns,", ")); } - // TODO (deephaven/core/issues/147): Replace this with a Parquet-backed table, or delete this entirely and use in-memory always + // TODO (deephaven/deephaven-core/issues/147): Replace this with a Parquet-backed table, or delete this entirely and use in-memory always return new InMemoryBenchmarkTable(name, size, rngSeed, getColumnGenerators()); } } diff --git a/ClientSupport/src/main/java/io/deephaven/treetable/TreeTableClientTableManager.java b/ClientSupport/src/main/java/io/deephaven/treetable/TreeTableClientTableManager.java index f6796684964..e7284ea76f5 100644 --- a/ClientSupport/src/main/java/io/deephaven/treetable/TreeTableClientTableManager.java +++ b/ClientSupport/src/main/java/io/deephaven/treetable/TreeTableClientTableManager.java @@ -23,7 +23,7 @@ public enum TreeTableClientTableManager { DEFAULT; - // TODO (deephaven/core/issues/37): Refine this type into something useful, or refactor entirely. + // TODO (deephaven/deephaven-core/issues/37): Refine this type into something useful, or refactor entirely. public interface Client> { void addDisconnectHandler(@NotNull Consumer handler); void removeDisconnectHandler(@NotNull Consumer handler); diff --git a/DB/src/main/java/io/deephaven/db/tables/utils/TableTools.java b/DB/src/main/java/io/deephaven/db/tables/utils/TableTools.java index 5367f00ae16..a24b3746db9 100644 --- a/DB/src/main/java/io/deephaven/db/tables/utils/TableTools.java +++ b/DB/src/main/java/io/deephaven/db/tables/utils/TableTools.java @@ -1414,7 +1414,7 @@ public static Table merge(Collection tables) { */ public static Table merge(Table... tables) { return QueryPerformanceRecorder.withNugget("merge", () -> { - // TODO (deephaven/core/issues/257): When we have a new Table proxy implementation, we should reintroduce remote merge for proxies. + // TODO (deephaven/deephaven-core/issues/257): When we have a new Table proxy implementation, we should reintroduce remote merge for proxies. // If all of the tables are proxies, then we should ship this request over rather than trying to do it locally. // Table proxyMerge = io.deephaven.db.tables.utils.TableTools.mergeByProxy(tables); // if (proxyMerge != null) { diff --git a/DB/src/main/java/io/deephaven/db/util/DBColorUtil.java b/DB/src/main/java/io/deephaven/db/util/DBColorUtil.java index 123585164c4..ca559bd876b 100644 --- a/DB/src/main/java/io/deephaven/db/util/DBColorUtil.java +++ b/DB/src/main/java/io/deephaven/db/util/DBColorUtil.java @@ -18,7 +18,7 @@ * For foreground colors, one of the remaining 7 bits denotes * no foreground color overriding when the cell is highlighted in the table. * This means the foreground color will stay the same when the cell is highlighted. - * TODO (deephaven/core/issues/175): Move this to a new module and package + * TODO (deephaven/deephaven-core/issues/175): Move this to a new module and package */ @SuppressWarnings({"UnusedDeclaration", "WeakerAccess"}) public class DBColorUtil extends DBColorUtilImpl { diff --git a/DB/src/main/java/io/deephaven/db/util/DBColorUtilImpl.java b/DB/src/main/java/io/deephaven/db/util/DBColorUtilImpl.java index 76ae44e0986..0157bbe4e3a 100644 --- a/DB/src/main/java/io/deephaven/db/util/DBColorUtilImpl.java +++ b/DB/src/main/java/io/deephaven/db/util/DBColorUtilImpl.java @@ -15,7 +15,7 @@ * without importing the color fields. * TODO: remove once {@link DBColorUtil} field and {@link Color} field conflicts are resolved. * TODO: This class won't be necessary once we can import DBColorUtil as static again. - * TODO (deephaven/core/issues/175): Move this to a new module and package + * TODO (deephaven/deephaven-core/issues/175): Move this to a new module and package */ public class DBColorUtilImpl { public static final long COLOR_SET_BIT = 0x01; diff --git a/DB/src/main/java/io/deephaven/db/util/config/MutableInputTable.java b/DB/src/main/java/io/deephaven/db/util/config/MutableInputTable.java index 783dedc7e43..889e5314563 100644 --- a/DB/src/main/java/io/deephaven/db/util/config/MutableInputTable.java +++ b/DB/src/main/java/io/deephaven/db/util/config/MutableInputTable.java @@ -103,7 +103,7 @@ default boolean hasColumn(String columnName) { * Queries whether this MutableInputTable is editable in the current context. * * @return true if this MutableInputTable may be edited, false otherwise - * TODO (deephaven/core/issues/255): Add AuthContext and whatever else is appropriate + * TODO (deephaven/deephaven-core/issues/255): Add AuthContext and whatever else is appropriate */ boolean canEdit(); } diff --git a/DB/src/main/java/io/deephaven/db/v2/utils/AsyncErrorLogger.java b/DB/src/main/java/io/deephaven/db/v2/utils/AsyncErrorLogger.java index 06383c45b8d..28a59acfabe 100644 --- a/DB/src/main/java/io/deephaven/db/v2/utils/AsyncErrorLogger.java +++ b/DB/src/main/java/io/deephaven/db/v2/utils/AsyncErrorLogger.java @@ -44,7 +44,7 @@ public static void log(DBDateTime time, UpdatePerformanceTracker.Entry entry, Up failingOperationNumberSetter.setInt(sourceEntry.getOperationNumber()); failingDescriptionSetter.set(sourceEntry.getDescription()); } - // TODO (deephaven/core/issues/159): Do we continue supporting this? If so, we should consider fixing host name and worker name. + // TODO (deephaven/deephaven-core/issues/159): Do we continue supporting this? If so, we should consider fixing host name and worker name. workerNameSetter.set(null); hostNameSetter.set(null); causeSetter.set(originalException); diff --git a/DB/src/main/java/io/deephaven/gui/color/Color.java b/DB/src/main/java/io/deephaven/gui/color/Color.java index a2f283faa5f..92867e3b132 100644 --- a/DB/src/main/java/io/deephaven/gui/color/Color.java +++ b/DB/src/main/java/io/deephaven/gui/color/Color.java @@ -12,7 +12,7 @@ /** * A color. * @IncludeAll - * TODO (deephaven/core/issues/175): Move this to a new module and package + * TODO (deephaven/deephaven-core/issues/175): Move this to a new module and package */ @SuppressWarnings("WeakerAccess") public class Color implements Paint, Serializable { diff --git a/DB/src/main/java/io/deephaven/gui/color/Colors.java b/DB/src/main/java/io/deephaven/gui/color/Colors.java index aaa522d0253..e2b31f8b417 100644 --- a/DB/src/main/java/io/deephaven/gui/color/Colors.java +++ b/DB/src/main/java/io/deephaven/gui/color/Colors.java @@ -13,7 +13,7 @@ * * Methods and colors moved from DBColorUtil to here. They are left in DBColorUtil * for backward compatibility. - * TODO (deephaven/core/issues/175): Move this to a new module and package + * TODO (deephaven/deephaven-core/issues/175): Move this to a new module and package */ public enum Colors { //color constants from https://www.w3schools.com/colors/colorsnames.asp diff --git a/DB/src/test/java/io/deephaven/db/tables/utils/TestTableManagementTools.java b/DB/src/test/java/io/deephaven/db/tables/utils/TestTableManagementTools.java index 27cc4ceff33..a6ec094b162 100644 --- a/DB/src/test/java/io/deephaven/db/tables/utils/TestTableManagementTools.java +++ b/DB/src/test/java/io/deephaven/db/tables/utils/TestTableManagementTools.java @@ -199,7 +199,7 @@ public void testWriteTableEmpty() throws IOException { @Test public void testWriteTableMissingColumns() { - // TODO (deephaven/core/issues/321): Fix the apparent bug in the parquet table writer. + // TODO (deephaven/deephaven-core/issues/321): Fix the apparent bug in the parquet table writer. // final Table nullTable = TableTools.emptyTable(10_000L).updateView( // "B = NULL_BYTE", // "C = NULL_CHAR", diff --git a/DB/src/test/java/io/deephaven/db/v2/TestMapCodecColumns.java b/DB/src/test/java/io/deephaven/db/v2/TestMapCodecColumns.java index 0293d3197f4..5e63fbc683a 100644 --- a/DB/src/test/java/io/deephaven/db/v2/TestMapCodecColumns.java +++ b/DB/src/test/java/io/deephaven/db/v2/TestMapCodecColumns.java @@ -88,7 +88,7 @@ public class TestMapCodecColumns { public void doColumnsTest() throws IOException { final File dir = Files.createTempDirectory(Paths.get(""), "CODEC_TEST").toFile(); TableManagementTools.writeTable(TABLE, dir, storageFormat); - // TODO (deephaven/core/issues/322): Infer the definition + // TODO (deephaven/deephaven-core/issues/322): Infer the definition final Table result = TableManagementTools.readTable(dir, TABLE_DEFINITION); TableTools.show(result); TestCase.assertEquals(TABLE_DEFINITION, result.getDefinition()); diff --git a/DB/src/test/java/io/deephaven/db/v2/locations/TestGroupingProviders.java b/DB/src/test/java/io/deephaven/db/v2/locations/TestGroupingProviders.java index 9f3e16bb8f6..ff46e72d13e 100644 --- a/DB/src/test/java/io/deephaven/db/v2/locations/TestGroupingProviders.java +++ b/DB/src/test/java/io/deephaven/db/v2/locations/TestGroupingProviders.java @@ -156,7 +156,7 @@ private void doTest(final boolean missingGroups) { .mapToObj(pcv -> new File(dataDirectory, "IP" + File.separator + String.format("%04d", pcv) + File.separator + tableKey.getTableName())) .toArray(File[]::new) ); - // TODO (deephaven/core/issues/321): Re-add this part of the test when the parquet bug is fixed + // TODO (deephaven/deephaven-core/issues/321): Re-add this part of the test when the parquet bug is fixed // TableManagementTools.writeTable(TableTools.emptyTable(0).updateView("Sym=NULL_CHAR", "Other=NULL_LONG"), partitionedDataDefinition, // new File(dataDirectory, "IP" + File.separator + "XXXX" + File.separator + tableKey.getTableName()), TableManagementTools.StorageFormat.Parquet); diff --git a/LICENSE.md b/LICENSE.md index 89fad1cd324..8bded594bdb 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -24,7 +24,7 @@ Deephaven Community License Agreement (the "Agreement"). Software provided to the original licensee with this Agreement. The Software may include third party owned code. Each third party module is subject to the terms of its respective license; the details of which can be found in the notices -served at [https://github.com/deephaven/core](https://github.com/deephaven/core). +served at [https://github.com/deephaven/deephaven-core](https://github.com/deephaven/deephaven-core). Since licensees may contribute back to the Software as provided for in Section 3(b), the Software may include any such contributions. diff --git a/Plot/src/main/java/io/deephaven/db/plot/FigureWidgetTranslator.java b/Plot/src/main/java/io/deephaven/db/plot/FigureWidgetTranslator.java index b088a1a1d0e..039e39a822c 100644 --- a/Plot/src/main/java/io/deephaven/db/plot/FigureWidgetTranslator.java +++ b/Plot/src/main/java/io/deephaven/db/plot/FigureWidgetTranslator.java @@ -77,7 +77,7 @@ public FigureDescriptor translate(DisplayableFigureDescriptor descriptor) { clientFigure.setUpdateInterval(figure.getUpdateInterval()); - // TODO (deephaven/core/41): Update this to match new DisplayableFigureDescriptor and whatever the JS plotting API needs post-GRPC. + // TODO (deephaven/deephaven-core/41): Update this to match new DisplayableFigureDescriptor and whatever the JS plotting API needs post-GRPC. // final int[] tableHandleIds = new int[descriptor.getDeflatedTables().size()]; // for (int i = 0; i < descriptor.getDeflatedTables().size(); i++) { // final ExportedTableDescriptorMessage t = (ExportedTableDescriptorMessage) descriptor.getDeflatedTables().get(i); diff --git a/README.md b/README.md index f3a2d06e534..22a713db761 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ to that data, and build rich queries, dashboards, and representations with the r Deephaven Community Core is an open version of [Deephaven Enterprise](https://deephaven.io), which functions as the data backbone for prominent hedge funds, banks, and financial exchanges. -![Build CI](https://github.com/deephaven/core/actions/workflows/build-ci.yml/badge.svg) -![Check CI](https://github.com/deephaven/core/actions/workflows/check-ci.yml/badge.svg) -![Long Check CI](https://github.com/deephaven/core/actions/workflows/long-check-ci.yml/badge.svg) -![Nightly Check CI](https://github.com/deephaven/core/actions/workflows/nightly-check-ci.yml/badge.svg) -![Nightly Benchmarks](https://github.com/deephaven/core/actions/workflows/nightly-benchmarks.yml/badge.svg) -![Workflow Sync](https://github.com/deephaven/core/actions/workflows/workflow-sync.yml/badge.svg) +![Build CI](https://github.com/deephaven/deephaven-core/actions/workflows/build-ci.yml/badge.svg) +![Check CI](https://github.com/deephaven/deephaven-core/actions/workflows/check-ci.yml/badge.svg) +![Long Check CI](https://github.com/deephaven/deephaven-core/actions/workflows/long-check-ci.yml/badge.svg) +![Nightly Check CI](https://github.com/deephaven/deephaven-core/actions/workflows/nightly-check-ci.yml/badge.svg) +![Nightly Benchmarks](https://github.com/deephaven/deephaven-core/actions/workflows/nightly-benchmarks.yml/badge.svg) +![Workflow Sync](https://github.com/deephaven/deephaven-core/actions/workflows/workflow-sync.yml/badge.svg) ## Supported Languages @@ -122,7 +122,7 @@ docker run hello-world Once all of the required dependencies are installed and functioning, run: ``` - git clone git@github.com:deephaven/core.git + git clone git@github.com:deephaven/deephaven-core.git cd core ./gradlew prepareCompose docker-compose build diff --git a/TRIAGE.md b/TRIAGE.md index a755c6b1f85..78776942dbf 100644 --- a/TRIAGE.md +++ b/TRIAGE.md @@ -2,22 +2,22 @@ Loosely based on the [VSCode triage process](https://github.com/microsoft/vscode/wiki/Issues-Triaging) (not as automated - yet). -1. File an issue using the [Bug Report](https://github.com/deephaven/core/issues/new?assignees=&labels=bug%2C+triage&template=bug_report.md) or the [Feature Request](https://github.com/deephaven/core/issues/new?assignees=&labels=feature+request%2C+triage&template=feature_request.md) template. The issue will be created with the `Triage` label. -2. The issue triager (weekly rotating role) goes through the unassigned [`triage` issues](https://github.com/deephaven/core/labels/triage), assigning to the appropriate feature area owner. By assigning it directly to someone, they will see the issue on their issue list, and can see it needs triaging because of the `triage` label. If you are unsure who to assign it to, take your best guess and the owner can re-assign if it is not for them: - - [web ui](https://github.com/deephaven/core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3A%22web+ui%22) - Bender - - [core](https://github.com/deephaven/core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3Acore+) - Ryan - - [build](https://github.com/deephaven/core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3Abuild+) - Devin - - [grpc](https://github.com/deephaven/core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3Agrpc+) - Nate - - [community](https://github.com/deephaven/core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3Acommunity) - Chip -3. Area owners [triage tickets assigned to them](https://github.com/deephaven/core/issues?q=is%3Aopen+label%3Atriage+assignee%3A%40me+) by adding appropriate labels, any additional comments, and adding to the backlog if it is an accepted issue. +1. File an issue using the [Bug Report](https://github.com/deephaven/deephaven-core/issues/new?assignees=&labels=bug%2C+triage&template=bug_report.md) or the [Feature Request](https://github.com/deephaven/deephaven-core/issues/new?assignees=&labels=feature+request%2C+triage&template=feature_request.md) template. The issue will be created with the `Triage` label. +2. The issue triager (weekly rotating role) goes through the unassigned [`triage` issues](https://github.com/deephaven/deephaven-core/labels/triage), assigning to the appropriate feature area owner. By assigning it directly to someone, they will see the issue on their issue list, and can see it needs triaging because of the `triage` label. If you are unsure who to assign it to, take your best guess and the owner can re-assign if it is not for them: + - [web ui](https://github.com/deephaven/deephaven-core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3A%22web+ui%22) - Bender + - [core](https://github.com/deephaven/deephaven-core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3Acore+) - Ryan + - [build](https://github.com/deephaven/deephaven-core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3Abuild+) - Devin + - [grpc](https://github.com/deephaven/deephaven-core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3Agrpc+) - Nate + - [community](https://github.com/deephaven/deephaven-core/issues?q=is%3Aopen+is%3Aissue+no%3Amilestone+label%3Acommunity) - Chip +3. Area owners [triage tickets assigned to them](https://github.com/deephaven/deephaven-core/issues?q=is%3Aopen+label%3Atriage+assignee%3A%40me+) by adding appropriate labels, any additional comments, and adding to the backlog if it is an accepted issue. - Tickets may have additional labels added, dependencies linked, and/or comments added. - - If more information is required, add the [`needs more info` label](https://github.com/deephaven/core/labels/needs%20more%20info), and re-assign to the creator. - - If it's a duplicate of an existing issue, add the [`duplicate` label](https://github.com/deephaven/core/labels/duplicate), and close the issue with a comment linking to the issue it duplicates. - - If the issue is important, such as a blocking issue or a security vulnerability, add the [`important`](https://github.com/deephaven/core/labels/important) label, and assign to the current milestone as necessary. - - After the issue has been validated, add an appropriate area label, remove the `triage` label, unassign yourself as the owner, and add it to the [Backlog milestone](https://github.com/deephaven/core/milestone/11). It will be assigned to a milestone when doing monthly planning. -4. Developers work on tickets assigned to them within the current milestone. Since only tickets that you are working on will be assigned to you, [your issue list](https://github.com/deephaven/core/issues/assigned/@me) should stay trim/easy to manage. -5. Anybody (within the company or community) can vote on issues in the backlog using reactions. The issues with the most upvotes will be prioritized higher in the [backlog issue list](https://github.com/deephaven/core/issues?q=is%3Aopen+milestone%3ABacklog+sort%3Areactions-%2B1-desc). + - If more information is required, add the [`needs more info` label](https://github.com/deephaven/deephaven-core/labels/needs%20more%20info), and re-assign to the creator. + - If it's a duplicate of an existing issue, add the [`duplicate` label](https://github.com/deephaven/deephaven-core/labels/duplicate), and close the issue with a comment linking to the issue it duplicates. + - If the issue is important, such as a blocking issue or a security vulnerability, add the [`important`](https://github.com/deephaven/deephaven-core/labels/important) label, and assign to the current milestone as necessary. + - After the issue has been validated, add an appropriate area label, remove the `triage` label, unassign yourself as the owner, and add it to the [Backlog milestone](https://github.com/deephaven/deephaven-core/milestone/11). It will be assigned to a milestone when doing monthly planning. +4. Developers work on tickets assigned to them within the current milestone. Since only tickets that you are working on will be assigned to you, [your issue list](https://github.com/deephaven/deephaven-core/issues/assigned/@me) should stay trim/easy to manage. +5. Anybody (within the company or community) can vote on issues in the backlog using reactions. The issues with the most upvotes will be prioritized higher in the [backlog issue list](https://github.com/deephaven/deephaven-core/issues?q=is%3Aopen+milestone%3ABacklog+sort%3Areactions-%2B1-desc). # Monthly Planning/Backlog Grooming -Each feature area owner (with support from their team) will do backlog grooming by looking at the [backlog issue list](https://github.com/deephaven/core/issues?q=is%3Aopen+milestone%3ABacklog+sort%3Areactions-%2B1-desc), breaking down issues into concise chunks with a clear definition of done, and assigning what they think they can get done in the next month. Be aware of dependencies, and work with the product manager in addition to the upvotes for prioritization. For example, the product manager may add a label for a new initiative to focus on for the next month and tag issues in the backlog with those labels, then area owner knows to focus on those issues. +Each feature area owner (with support from their team) will do backlog grooming by looking at the [backlog issue list](https://github.com/deephaven/deephaven-core/issues?q=is%3Aopen+milestone%3ABacklog+sort%3Areactions-%2B1-desc), breaking down issues into concise chunks with a clear definition of done, and assigning what they think they can get done in the next month. Be aware of dependencies, and work with the product manager in addition to the upvotes for prioritization. For example, the product manager may add a label for a new initiative to focus on for the next month and tag issues in the backlog with those labels, then area owner knows to focus on those issues. diff --git a/grpc-api/server/docker/gradle.properties b/grpc-api/server/docker/gradle.properties index 69801f7502a..2517570d8d3 100644 --- a/grpc-api/server/docker/gradle.properties +++ b/grpc-api/server/docker/gradle.properties @@ -3,5 +3,5 @@ grpc-api-docker.baseImage=deephaven/grpc-api-base grpc-api-docker.vendor=Deephaven Data Labs grpc-api-docker.title=Deephaven gRPC API grpc-api-docker.description=The Deephaven API - TODO -grpc-api-docker.source=https://github.com/deephaven/core +grpc-api-docker.source=https://github.com/deephaven/deephaven-core grpc-api-docker.licenses=Deephaven Community License