Conversation
Bumps [org.apache.maven.plugins:maven-pmd-plugin](https://github.com/apache/maven-pmd-plugin) from 3.27.0 to 3.28.0. - [Release notes](https://github.com/apache/maven-pmd-plugin/releases) - [Commits](apache/maven-pmd-plugin@maven-pmd-plugin-3.27.0...maven-pmd-plugin-3.28.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-pmd-plugin dependency-version: 3.28.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@v3...v4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [org.codehaus.mojo:animal-sniffer-maven-plugin](https://github.com/mojohaus/animal-sniffer) from 1.24 to 1.26. - [Release notes](https://github.com/mojohaus/animal-sniffer/releases) - [Commits](mojohaus/animal-sniffer@animal-sniffer-1.24...animal-sniffer-1.26) --- updated-dependencies: - dependency-name: org.codehaus.mojo:animal-sniffer-maven-plugin dependency-version: '1.26' dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||
CI Feedback 🧐A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
|
@logart, can you mark it as a draft so it does not trigger reviews and builds? Alos your comment will be unnecessary in such case. |
…n, 2) initialize itself as early as possible and ignore records that were created after the iteration has started.
…cified collections
Sorry, I am new to this 🙂 |
### **User description**
Previous implementation of `RecordIteratorCollection` had a flaw: it
could return records that were created after the iteration has started.
This can seem like a minor and tolerable problem, but because of it we
had issues with the following simple Gremlin query:
```java
g.V().addVertex("XXX");
```
The `V()` step started iteration over a bunch of collections, and for
each returned vertex it created a new one. The amount of created
vertices for this query must be equal to the total amount of vertices
that existed before the query was run. But because of the problem
described above, such queries could create more vertices than they were
expected to.
This change addresses this issue and improves some of the internals of
the collection iteration logic inside the database core. More
specifically:
1. `RecordIteratorCollection` was completely re-written. Now it uses the
storage-level `browseCollection` method, also loading new records from
the active transaction. The crucial moment here is that now it is
initialized as early as possible and remembers the lower negative record
id from the current transaction (that corresponds to the latest of the
newly created records). This allows the iterator to ignore all records
that were created in the current transaction after the iteration has
already started.
2. Some obsolete methods (related to collection iteration) were removed
from `DatabaseSession` and `FrontendTransaction`.
3. `Storage#browseCollection` was extended to support backward
iteration.
4. Some duplicating code was removed from `CollectionPositionMapV2`.
(See `ceilingPositionsImpl` and `floorPositionsImpl`)
5. Some changes were also made to the SQL engine: 1)
`FetchFromClassExecutionStep` is refactored to work directly with
`RecordIteratorCollections` instead of creating child
`FetchFromCollectionExecutionStep`s; 2) Obsolete
`FetchTemporaryFromTxStep` was removed.
6. New unit tests were added
___
### **PR Type**
Bug fix, Enhancement
___
### **Description**
- Fixed `RecordIteratorCollection` to ignore records created after
iteration starts
- Refactored collection iteration to use storage-level
`browseCollection` with backward support
- Removed obsolete transaction methods for fetching
first/last/next/previous RIDs
- Simplified SQL execution steps by removing `FetchTemporaryFromTxStep`
and refactoring `FetchFromClassExecutionStep`
___
### Diagram Walkthrough
```mermaid
flowchart LR
A["RecordIteratorCollection"] -- "uses" --> B["Storage.browseCollection"]
A -- "tracks" --> C["minTxPosition"]
C -- "filters" --> D["new records"]
E["FetchFromClassExecutionStep"] -- "directly uses" --> A
F["FrontendTransaction"] -- "updated" --> G["getNextRidInCollection"]
F -- "updated" --> H["getPreviousRidInCollection"]
```
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>15
files</summary><table>
<tr>
<td><strong>RecordIteratorCollection.java</strong><dd><code>Complete
rewrite to use storage browsing and track transaction
</code><br><code>boundaries</code></dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-c249449ff5cb66291fe5f6523f2c355acf0e718dc0cb9f33c256ea783b783609">+141/-98</a></td>
</tr>
<tr>
<td><strong>DatabaseSessionEmbedded.java</strong><dd><code>Removed
obsolete RID fetching methods and simplified record
loading</code></dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-3c777f924fbf985c3359b6e5cdc1fc1bc4a7c60c2ee1aa40b5db3d7994fd4858">+72/-360</a></td>
</tr>
<tr>
<td><strong>CollectionPositionMapV2.java</strong><dd><code>Refactored
position lookup methods to eliminate code duplication</code></dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-9d9e057f3e9bebdbf7caf0878676aa01f6ff1a66501edb805ca6f5195ef5a902">+202/-99</a></td>
</tr>
<tr>
<td><strong>FrontendTransactionImpl.java</strong><dd><code>Updated RID
navigation methods with boundary parameters</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-26b69080948d95b696417d1d7100a2b8e293b4695ccc1951fddedc9419df6e41">+23/-62</a>
</td>
</tr>
<tr>
<td><strong>AbstractStorage.java</strong><dd><code>Added
forward/backward support to `browseCollection` method</code></dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-c7fcdc04e6cb32a418540581105e7020a1cd6ae785f3b47b9c3bd5fe0ab5bc9e">+20/-39</a>
</td>
</tr>
<tr>
<td><strong>FetchFromClassExecutionStep.java</strong><dd><code>Refactored
to use `RecordIteratorCollections` directly</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-b017f278f620509cade0460171fdb622565cd3114f9dbc5640d151812c582c26">+20/-112</a></td>
</tr>
<tr>
<td><strong>FrontendTransaction.java</strong><dd><code>Updated interface
signatures for RID navigation methods</code> </dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-f1d198cf5719404f27b035b65404f5218d9f38767f8988cf111d6ecd4b1ecb08">+3/-11</a>
</td>
</tr>
<tr>
<td><strong>DatabaseSessionInternal.java</strong><dd><code>Simplified
`executeReadRecord` method signature</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-540333e93601bc669e56faeb7819373a513328e2a0f4b54e46307da9d628a8e3">+18/-19</a>
</td>
</tr>
<tr>
<td><strong>Storage.java</strong><dd><code>Simplified `readRecord`
method signature</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-f978f656279d1bd3352f31f714947b375f6e53c2abab808e226b6776756181e4">+1/-3</a>
</td>
</tr>
<tr>
<td><strong>CollectionBrowsePage.java</strong><dd><code>Removed
redundant `lastPosition` constructor parameter</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-05e4359a87c0374482835a21bd64e5ca5dd6aee15172f4aae6bec6f548733a78">+2/-2</a>
</td>
</tr>
<tr>
<td><strong>PaginatedCollectionV2.java</strong><dd><code>Updated
`nextPage` to support forward and backward iteration</code></dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-bb58f10c8b88e48843a6889b425ac0ecaf52983bcbc374cad6a39008ee945f49">+11/-7</a>
</td>
</tr>
<tr>
<td><strong>RecordIteratorCollections.java</strong><dd><code>Added early
initialization of collection iterators</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-9c79047c861faebe3c45cdca937e49e84b1888250151ae5ece8e1c8d29f4ad86">+13/-1</a>
</td>
</tr>
<tr>
<td><strong>FetchFromCollectionExecutionStep.java</strong><dd><code>Simplified
iterator creation logic</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-c352b5e42083baaa60cc40902ba6dda09b757ceecd454cc9229710f103532c42">+5/-11</a>
</td>
</tr>
<tr>
<td><strong>FrontendTransactionNoTx.java</strong><dd><code>Updated
method signatures to match interface changes</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-d304e5ac893894f3e20089414af694f9090b3cab227e97c588d435f81e34acd4">+7/-16</a>
</td>
</tr>
<tr>
<td><strong>StorageCollection.java</strong><dd><code>Added `forward`
parameter to `nextPage` method</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-3627d11ffaaf00acb14c0eb8c2ddecf448adca3445f917f7e2e9054e9bf51fb3">+1/-1</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>RecordIteratorCollectionTest.java</strong><dd><code>Added
comprehensive tests for forward and backward iteration</code></dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-657f94d32895a7bb21b5f41d78aa29833a2e495e2dcbaf8f87852ff59fcf5be1">+78/-0</a>
</td>
</tr>
<tr>
<td><strong>DatabaseDocumentTxTest.java</strong><dd><code>Added tests
for vertex creation during iteration</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-d15f01a0845a931b370f9c1b85539e65821837be4958891dd8b3697b559fb583">+88/-0</a>
</td>
</tr>
<tr>
<td><strong>CommandExecutorSQLSelectTest.java</strong><dd><code>Updated
tests for RID ordering validation</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-fe252fc37570376782f4c70affe8d00534896653b1b7793de2eb53f49fa6a059">+34/-29</a>
</td>
</tr>
<tr>
<td><strong>BrowseCollectionTest.java</strong><dd><code>Added tests for
forward and backward collection browsing</code> </dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-f1cb5aeb39e39b36cbc1d827993f9fb814804f18e7075cf01bb6a1bfe521f1d9">+30/-8</a>
</td>
</tr>
<tr>
<td><strong>YTDBAddVertexProcessTest.java</strong><dd><code>Added
Gremlin tests for vertex creation during iteration</code>
</dd></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-3f37ed8e04cc55aaee3c20c2151a5b2708cf9cbe8555b0c068a73b781a0e4ef7">+51/-0</a>
</td>
</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>9 files</summary><table>
<tr>
<td><strong>StorageCollectionRemote.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-f47141e663060c2d2df25860dcb8d555efffe6e95c10d132785466aec92e0ed9">+1/-1</a>
</td>
</tr>
<tr>
<td><strong>LoadRecordResult.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-9dc46689b14a30118ec14f0d5e3090ac9ba6405bb9624227c3337461b6ee5bb0">+0/-10</a>
</td>
</tr>
<tr>
<td><strong>DatabaseCompare.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-b34116bc928c48e90529a00bf92020cca60deac2521a20428e46f2ab3b4fbd5e">+2/-4</a>
</td>
</tr>
<tr>
<td><strong>RecordIteratorClass.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-10c73ade981e71e68af32ed0aec306c269ffa8eff4f19c207e5c9a53b655b81d">+8/-3</a>
</td>
</tr>
<tr>
<td><strong>FetchTemporaryFromTxStep.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-eed0349122c08e64c33a3a17dc3ad14869913341071f2e04165c5054a1c8e00d">+0/-147</a>
</td>
</tr>
<tr>
<td><strong>ReadRecordResult.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-8041922ef2b14f1a78901328a0e23ea3470c4656ba18ae505056723995e6ab42">+0/-11</a>
</td>
</tr>
<tr>
<td><strong>DiskStorage.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-b6bb9d3c7d6cb1157cf88d919fce9e2e9bc11fe9e31cedac858e685e222f7f04">+3/-6</a>
</td>
</tr>
<tr>
<td><strong>PostponedEngineStartTest.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-dea20a170e093adcd0b17982acc1346f731168605cdb782e29688593e3fade72">+2/-4</a>
</td>
</tr>
<tr>
<td><strong>YTDBGremlinProcessTests.java</strong></td>
<td><a
href="https://github.com/JetBrains/youtrackdb/pull/564/files#diff-2769b2267e07f41ec36bb8a3718bc50d048baf68913a2a73c7f092bb5643056b">+2/-0</a>
</td>
</tr>
</table></details></td></tr></tr></tbody></table>
</details>
___
### **User description** This change enables and fixes the standard TinkerPop gherkin tests for embedded mode: `YTDBGraphFeatureTest`. Also, there is a disabled gherkin tests suite for remote mode that is failing at the moment: `YTDBRemoteGraphFeatureTest`. Those tests will be addressed as a separate task. Details of the change: 1. A `data` folder has been added to the `core` module with data for TinkerPop `io` tests. 2. Several fixed has been provided to make all tests work, namely: - null check in `YTDBGraphImplAbstract` - special handling of `P.eq(null)` and `P.neq(null)` predicates in `YTDBGraphQueryBuilder` - `YTDBGraphStepStrategy` has been extended to handle cases when string IDs are being used in `ReferenceVertex` and `ReferenceEdge` 3. A new cucumber suite `YTDBGraphFeatureTest` for running the standard TinkerPop gherkin features has been added. It is discovered automatically by `maven-surefire-plugin`. 4. There is an issue with the logs from cucumber tests: when run via maven, the tests don't produce any output, unless they fail - in this case it can be seen which test has failed and what exception has occurred. Gemini suggested that the problem might be related to the surefire's specifics of working with system output. Setting surefire's config option `redirectTestOutputToFile` to false seems to resolve the problem partially, the logs start to appear, but they are quite useless: there is no information about what scenarios are being executed. I haven't spent much on this issue, @andrii0lomakin WDYT? At the moment those logs don't seem to be much needed. ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Enable TinkerPop Gherkin tests for embedded mode with `YTDBGraphFeatureTest` - Fix null handling in element queries and `P.eq(null)`/`P.neq(null)` predicates - Handle string IDs in `ReferenceVertex` and `ReferenceEdge` via side effects rebuilding - Add remote mode Gherkin tests suite (currently disabled) and test data files ___ ### Diagram Walkthrough ```mermaid flowchart LR A["TinkerPop Gherkin Tests"] --> B["YTDBGraphFeatureTest<br/>Embedded Mode"] A --> C["YTDBRemoteGraphFeatureTest<br/>Remote Mode Disabled"] D["Null Handling Fixes"] --> E["YTDBGraphImplAbstract<br/>Filter null IDs"] D --> F["YTDBGraphQueryBuilder<br/>Handle P.eq/neq null"] G["Side Effects Fixes"] --> H["YTDBGraphStepStrategy<br/>Convert String IDs to RID"] B --> I["Test Data Files<br/>JSON/XML/Kryo"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Bug fix</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>YTDBGraphImplAbstract.java</strong><dd><code>Add null filtering for element IDs</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-e6c162ecde29684f797970119d4cd26d11edacdc7475410ae6dba4a109bb2d91">+3/-1</a> </td> </tr> <tr> <td><strong>YTDBGraphQueryBuilder.java</strong><dd><code>Handle null predicates and improve condition building</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-65d542f511015af37b9f347a9d8c09aee1988d0919dc5b34ceb2d8b55d558c96">+54/-20</a> </td> </tr> <tr> <td><strong>YTDBGraphStepStrategy.java</strong><dd><code>Convert string IDs to RID in side effects</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-2510599dea7fac4847bd60eca0557c8598619ea99b06738eabdbae1ee1161153">+49/-1</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>8 files</summary><table> <tr> <td><strong>YTDBGraphFeatureTest.java</strong><dd><code>Add embedded mode Gherkin test suite</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-cb14eba39a600bb65a33398b464ca198e5c5476e77d437f8384987a5a0e2ac1f">+173/-0</a> </td> </tr> <tr> <td><strong>YTDBGraphInitUtil.java</strong><dd><code>Extract shared graph initialization configuration</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-66275bdb11ae675911ee9caa1144417640eb62faf14624bd430f6a9ea95492b6">+39/-0</a> </td> </tr> <tr> <td><strong>YTDBGraphProvider.java</strong><dd><code>Refactor to use shared initialization utility</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-081f5f6a105906ae35a2c104ecbc482df7cdce3d974a00a898040f17b199003c">+1/-26</a> </td> </tr> <tr> <td><strong>YTDBAbstractRemoteGraphProvider.java</strong><dd><code>Add connection cleanup method for tests</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-0d4ef68c1fc964095e1879f2382a4e92d90ad8b8f6e264f32c924c6dea9a16ec">+12/-0</a> </td> </tr> <tr> <td><strong>YTDBRemoteGraphFeatureTest.java</strong><dd><code>Add remote mode Gherkin test suite disabled</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-165889ccc90cc119fe14ab149b6fd60e9e4ea5d45417807405dfe146cbeac43c">+119/-0</a> </td> </tr> <tr> <td><strong>tinkerpop-modern.json</strong><dd><code>Add TinkerPop modern graph test data JSON</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-76775f79500d30caff8f6b5f4056b71f3c351a6f569bb6f10fe71e96ae75d11f">+6/-0</a> </td> </tr> <tr> <td><strong>tinkerpop-modern.kryo</strong><dd><code>Add TinkerPop modern graph test data Kryo</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-76a8d4873c3fae6b0c65faa751004f65ec23f312f908aff51e0b5fb2c0f3898c">[link]</a> </td> </tr> <tr> <td><strong>tinkerpop-modern.xml</strong><dd><code>Add TinkerPop modern graph test data XML</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-f3393d5e41dc65e1dbbc0a2361898ad16fe72afe48e5658406d00a65a0c614a4">+1/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Configuration changes</strong></td><td><details><summary>4 files</summary><table> <tr> <td><strong>pom.xml</strong><dd><code>Add Guice dependency and JVM module exports</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-8d04401f1cc51365fe3e32f019cd720135ba920a1a7da7f19e9c9208478701fc">+21/-1</a> </td> </tr> <tr> <td><strong>cucumber.properties</strong><dd><code>Configure Cucumber Guice injector source</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-81af79a206c548caa401c8db2c244b38b234890a06269047e55c5d059f92d20b">+1/-0</a> </td> </tr> <tr> <td><strong>pom.xml</strong><dd><code>Add Guice dependency and JVM module exports</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-499f9785514a81b7e7e70d390700ba3314a034a444221a5b83f9c7cd05426340">+24/-0</a> </td> </tr> <tr> <td><strong>cucumber.properties</strong><dd><code>Configure Cucumber Guice injector source</code> </dd></td> <td><a href="https://github.com/JetBrains/youtrackdb/pull/565/files#diff-ba47115a7e75b7fbd6ca885486f1e1d8907bfd43544c7807aaa30924c0b73b81">+1/-0</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___
This change introduces a new interface `YTDBProperty` that extends the standard TinkerPop's `Property` with a new `PropertyType type()` method for obtaining the type of the property. All properties that can be obtained from YouTrackDB Elements now extends this interface. This change came with several challenges: 1. Previously YTDB elements returned standard `Property` and `VertexProperty`. This allowed us to make use of TinkerPop's `EmptyProperty` and `EmptyVertexProperty`. Now that we must return `YTDBProperty`, we've added two new "empty" implementations: `YTDBEmptyProperty` and `YTDBEmptyVertexProperty`. 2. Unfortunately, two of the standard TinkerPop structure tests expect concrete "empty" types: `EmptyProperty` and `EmptyVertexProperty`. In order to fix this we had to replace those suites with the new ones that override those failing scenarios.
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/github/codeql-action/releases">github/codeql-action's releases</a>.</em></p> <blockquote> <h2>v3.30.8</h2> <h1>CodeQL Action Changelog</h1> <p>See the <a href="https://github.com/github/codeql-action/releases">releases page</a> for the relevant changes to the CodeQL CLI and language packs.</p> <h2>3.30.8 - 10 Oct 2025</h2> <p>No user facing changes.</p> <p>See the full <a href="https://github.com/github/codeql-action/blob/v3.30.8/CHANGELOG.md">CHANGELOG.md</a> for more information.</p> <h2>v3.30.7</h2> <h1>CodeQL Action Changelog</h1> <p>See the <a href="https://github.com/github/codeql-action/releases">releases page</a> for the relevant changes to the CodeQL CLI and language packs.</p> <h2>3.30.7 - 06 Oct 2025</h2> <p>No user facing changes.</p> <p>See the full <a href="https://github.com/github/codeql-action/blob/v3.30.7/CHANGELOG.md">CHANGELOG.md</a> for more information.</p> <h2>v3.30.6</h2> <h1>CodeQL Action Changelog</h1> <p>See the <a href="https://github.com/github/codeql-action/releases">releases page</a> for the relevant changes to the CodeQL CLI and language packs.</p> <h2>3.30.6 - 02 Oct 2025</h2> <ul> <li>Update default CodeQL bundle version to 2.23.2. <a href="https://redirect.github.com/github/codeql-action/pull/3168">#3168</a></li> </ul> <p>See the full <a href="https://github.com/github/codeql-action/blob/v3.30.6/CHANGELOG.md">CHANGELOG.md</a> for more information.</p> <h2>v3.30.5</h2> <h1>CodeQL Action Changelog</h1> <p>See the <a href="https://github.com/github/codeql-action/releases">releases page</a> for the relevant changes to the CodeQL CLI and language packs.</p> <h2>3.30.5 - 26 Sep 2025</h2> <ul> <li>We fixed a bug that was introduced in <code>3.30.4</code> with <code>upload-sarif</code> which resulted in files without a <code>.sarif</code> extension not getting uploaded. <a href="https://redirect.github.com/github/codeql-action/pull/3160">#3160</a></li> </ul> <p>See the full <a href="https://github.com/github/codeql-action/blob/v3.30.5/CHANGELOG.md">CHANGELOG.md</a> for more information.</p> <h2>v3.30.4</h2> <h1>CodeQL Action Changelog</h1> <p>See the <a href="https://github.com/github/codeql-action/releases">releases page</a> for the relevant changes to the CodeQL CLI and language packs.</p> <h2>3.30.4 - 25 Sep 2025</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/github/codeql-action/blob/main/CHANGELOG.md">github/codeql-action's changelog</a>.</em></p> <blockquote> <h2>3.29.4 - 23 Jul 2025</h2> <p>No user facing changes.</p> <h2>3.29.3 - 21 Jul 2025</h2> <p>No user facing changes.</p> <h2>3.29.2 - 30 Jun 2025</h2> <ul> <li>Experimental: When the <code>quality-queries</code> input for the <code>init</code> action is provided with an argument, separate <code>.quality.sarif</code> files are produced and uploaded for each language with the results of the specified queries. Do not use this in production as it is part of an internal experiment and subject to change at any time. <a href="https://redirect.github.com/github/codeql-action/pull/2935">#2935</a></li> </ul> <h2>3.29.1 - 27 Jun 2025</h2> <ul> <li>Fix bug in PR analysis where user-provided <code>include</code> query filter fails to exclude non-included queries. <a href="https://redirect.github.com/github/codeql-action/pull/2938">#2938</a></li> <li>Update default CodeQL bundle version to 2.22.1. <a href="https://redirect.github.com/github/codeql-action/pull/2950">#2950</a></li> </ul> <h2>3.29.0 - 11 Jun 2025</h2> <ul> <li>Update default CodeQL bundle version to 2.22.0. <a href="https://redirect.github.com/github/codeql-action/pull/2925">#2925</a></li> <li>Bump minimum CodeQL bundle version to 2.16.6. <a href="https://redirect.github.com/github/codeql-action/pull/2912">#2912</a></li> </ul> <h2>3.28.21 - 28 July 2025</h2> <p>No user facing changes.</p> <h2>3.28.20 - 21 July 2025</h2> <ul> <li>Remove support for combining SARIF files from a single upload for GHES 3.18, see <a href="https://github.blog/changelog/2024-05-06-code-scanning-will-stop-combining-runs-from-a-single-upload/">the changelog post</a>. <a href="https://redirect.github.com/github/codeql-action/pull/2959">#2959</a></li> </ul> <h2>3.28.19 - 03 Jun 2025</h2> <ul> <li>The CodeQL Action no longer includes its own copy of the extractor for the <code>actions</code> language, which is currently in public preview. The <code>actions</code> extractor has been included in the CodeQL CLI since v2.20.6. If your workflow has enabled the <code>actions</code> language <em>and</em> you have pinned your <code>tools:</code> property to a specific version of the CodeQL CLI earlier than v2.20.6, you will need to update to at least CodeQL v2.20.6 or disable <code>actions</code> analysis.</li> <li>Update default CodeQL bundle version to 2.21.4. <a href="https://redirect.github.com/github/codeql-action/pull/2910">#2910</a></li> </ul> <h2>3.28.18 - 16 May 2025</h2> <ul> <li>Update default CodeQL bundle version to 2.21.3. <a href="https://redirect.github.com/github/codeql-action/pull/2893">#2893</a></li> <li>Skip validating SARIF produced by CodeQL for improved performance. <a href="https://redirect.github.com/github/codeql-action/pull/2894">#2894</a></li> <li>The number of threads and amount of RAM used by CodeQL can now be set via the <code>CODEQL_THREADS</code> and <code>CODEQL_RAM</code> runner environment variables. If set, these environment variables override the <code>threads</code> and <code>ram</code> inputs respectively. <a href="https://redirect.github.com/github/codeql-action/pull/2891">#2891</a></li> </ul> <h2>3.28.17 - 02 May 2025</h2> <ul> <li>Update default CodeQL bundle version to 2.21.2. <a href="https://redirect.github.com/github/codeql-action/pull/2872">#2872</a></li> </ul> <h2>3.28.16 - 23 Apr 2025</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/github/codeql-action/commit/a841c540b73bac7685691a2f930006ba52db3645"><code>a841c54</code></a> Scratch <code>uploadSpecifiedFiles</code> tests, make <code>uploadPayload</code> tests instead</li> <li><a href="https://github.com/github/codeql-action/commit/aeb12f6eaaa7419b7170f27dc3e2b5710203ff2d"><code>aeb12f6</code></a> Merge branch 'main' into redsun82/skip-sarif-upload-tests</li> <li><a href="https://github.com/github/codeql-action/commit/6fd4ceb7bbb8ec2746fd4d3a64b77787dffd9afc"><code>6fd4ceb</code></a> Merge pull request <a href="https://redirect.github.com/github/codeql-action/issues/3189">#3189</a> from github/henrymercer/download-codeql-rate-limit</li> <li><a href="https://github.com/github/codeql-action/commit/196a3e577b477ffb129cb35c7ed3ba72e6e2dbe7"><code>196a3e5</code></a> Merge pull request <a href="https://redirect.github.com/github/codeql-action/issues/3188">#3188</a> from github/mbg/telemetry/partial-config</li> <li><a href="https://github.com/github/codeql-action/commit/98abb870dcd6421594724ae220643e13baf90298"><code>98abb87</code></a> Add configuration error for rate limited CodeQL download</li> <li><a href="https://github.com/github/codeql-action/commit/bdd2cdf891a0a89c6680bd54c9ba63c80e440f75"><code>bdd2cdf</code></a> Also include <code>language</code> in error status report for <code>start-proxy</code>, if available</li> <li><a href="https://github.com/github/codeql-action/commit/fb148789ab863424b005147b4b018fe5691e5ccc"><code>fb14878</code></a> Include <code>languages</code> in <code>start-proxy</code> telemetry</li> <li><a href="https://github.com/github/codeql-action/commit/2ff418f28a66dd71cd80701e95ec26db12875f15"><code>2ff418f</code></a> Parse <code>language</code> before calling <code>getCredentials</code></li> <li>See full diff in <a href="https://github.com/github/codeql-action/compare/v3...v4">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
…557) Bumps [org.apache.maven.plugins:maven-pmd-plugin](https://github.com/apache/maven-pmd-plugin) from 3.27.0 to 3.28.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/apache/maven-pmd-plugin/releases">org.apache.maven.plugins:maven-pmd-plugin's releases</a>.</em></p> <blockquote> <h2>3.28.0</h2> <!-- raw HTML omitted --> <h2>🚀 New features and improvements</h2> <ul> <li>Bump pmdVersion from 7.16.0 to 7.17.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/661">#661</a>) <a href="https://github.com/timpeeters"><code>@timpeeters</code></a></li> <li>Bump pmdVersion from 7.15.0 to 7.16.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/652">#652</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump pmdVersion from 7.14.0 to 7.15.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/643">#643</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> </ul> <h2>📝 Documentation updates</h2> <ul> <li>Update historical PMD version in docs (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/662">#662</a>) <a href="https://github.com/slawekjaranowski"><code>@slawekjaranowski</code></a></li> <li>Document that excludes takes priority over includes (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/645">#645</a>) <a href="https://github.com/elharo"><code>@elharo</code></a></li> </ul> <h2>👻 Maintenance</h2> <ul> <li>feat: enable prevent branch protection rules (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/653">#653</a>) <a href="https://github.com/sparsick"><code>@sparsick</code></a></li> <li>Add Apache 2.0 LICENSE file (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/650">#650</a>) <a href="https://github.com/Ndacyayisenga-droid"><code>@Ndacyayisenga-droid</code></a></li> <li>Prefer JDK built-in methods for string joining (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/646">#646</a>) <a href="https://github.com/elharo"><code>@elharo</code></a></li> <li><a href="https://issues.apache.org/jira/browse/MPMD-412">[MPMD-412]</a> - More specific catch blocks (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/642">#642</a>) <a href="https://github.com/elharo"><code>@elharo</code></a></li> </ul> <h2>📦 Dependency updates</h2> <ul> <li>Bump org.apache.commons:commons-lang3 from 3.8.1 to 3.18.0 in ITs (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/648">#648</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump pmdVersion from 7.16.0 to 7.17.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/661">#661</a>) <a href="https://github.com/timpeeters"><code>@timpeeters</code></a></li> <li>Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/658">#658</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.plexus:plexus-resources from 1.3.0 to 1.3.1 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/654">#654</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.plexus:plexus-i18n from 1.0-beta-10 to 1.0.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/655">#655</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump pmdVersion from 7.15.0 to 7.16.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/652">#652</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump commons-io:commons-io from 2.19.0 to 2.20.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/651">#651</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump mavenVersion from 3.9.10 to 3.9.11 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/649">#649</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/647">#647</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump resolverVersion from 1.9.23 to 1.9.24 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/644">#644</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump pmdVersion from 7.14.0 to 7.15.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/pull/643">#643</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/f152a3a9c284aa53ea9c7ce90553917fd9975358"><code>f152a3a</code></a> [maven-release-plugin] prepare release maven-pmd-plugin-3.28.0</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/0678fd1745e49d9953f661699683568a9adfd0a1"><code>0678fd1</code></a> Update historical PMD version in docs</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/41d5069a387acb232cf562b3f7a025b08a268888"><code>41d5069</code></a> Bump org.apache.commons:commons-lang3 from 3.8.1 to 3.18.0 in ITs (<a href="https://redirect.github.com/apache/maven-pmd-plugin/issues/648">#648</a>)</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/3ef805b36e7ab454ed4e4fefc7d81ec804b4a9e4"><code>3ef805b</code></a> Bump pmdVersion from 7.16.0 to 7.17.0</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/592d703ba4df69a9c2c3f6ff35b3eec9cbc0c0f9"><code>592d703</code></a> Add hacktoberfest label to project</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/ced9373304941f0b171377f52043748513c3b5e9"><code>ced9373</code></a> Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/issues/658">#658</a>)</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/3cf5bc12c44e548b6a43a49b5c32dd628b7646df"><code>3cf5bc1</code></a> Bump org.codehaus.plexus:plexus-resources from 1.3.0 to 1.3.1 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/issues/654">#654</a>)</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/9077c3b0386bb04a1895cbd9eaa65518a83f647f"><code>9077c3b</code></a> Bump org.codehaus.plexus:plexus-i18n from 1.0-beta-10 to 1.0.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/issues/655">#655</a>)</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/12ed57a181da37f2c6c032d24146d5ac026b832b"><code>12ed57a</code></a> feat: enable prevent branch protection rules (<a href="https://redirect.github.com/apache/maven-pmd-plugin/issues/653">#653</a>)</li> <li><a href="https://github.com/apache/maven-pmd-plugin/commit/fff2b951e79d671a3119ffa8c62a4d24a7faeada"><code>fff2b95</code></a> Bump pmdVersion from 7.15.0 to 7.16.0 (<a href="https://redirect.github.com/apache/maven-pmd-plugin/issues/652">#652</a>)</li> <li>Additional commits viewable in <a href="https://github.com/apache/maven-pmd-plugin/compare/maven-pmd-plugin-3.27.0...maven-pmd-plugin-3.28.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
…562) Bumps [org.codehaus.mojo:animal-sniffer-maven-plugin](https://github.com/mojohaus/animal-sniffer) from 1.24 to 1.26. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mojohaus/animal-sniffer/releases">org.codehaus.mojo:animal-sniffer-maven-plugin's releases</a>.</em></p> <blockquote> <h2>1.26</h2> <!-- raw HTML omitted --> <h2>📦 Dependency updates</h2> <ul> <li>Bump org.apache.maven.enforcer:enforcer-api from 3.6.1 to 3.6.2 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/308">#308</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.ow2.asm:asm from 9.8 to 9.9 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/310">#310</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 93 to 94 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/309">#309</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.maven.plugins:maven-shade-plugin from 3.6.0 to 3.6.1 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/306">#306</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/307">#307</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 92 to 93 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/305">#305</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.maven.enforcer:enforcer-api from 3.5.0 to 3.6.1 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/304">#304</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 in /animal-sniffer-maven-plugin (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/303">#303</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 91 to 92 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/300">#300</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 87 to 91 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/299">#299</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.ow2.asm:asm from 9.7.1 to 9.8 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/296">#296</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump release-drafter/release-drafter from 6.0.0 to 6.1.0 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/294">#294</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 86 to 87 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/295">#295</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 85 to 86 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/291">#291</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.ow2.asm:asm from 9.7 to 9.7.1 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/293">#293</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.plexus:plexus-utils from 4.0.1 to 4.0.2 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/292">#292</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.ant:ant from 1.10.14 to 1.10.15 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/290">#290</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.commons:commons-lang3 from 3.16.0 to 3.17.0 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/289">#289</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 84 to 85 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/288">#288</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.commons:commons-lang3 from 3.15.0 to 3.16.0 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/287">#287</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.15.0 (<a href="https://redirect.github.com/mojohaus/animal-sniffer/pull/286">#286</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/a2d9596a701cc8c7a4b1741d5f09e8c16316d442"><code>a2d9596</code></a> [maven-release-plugin] prepare release animal-sniffer-1.26</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/8ddba10891aacc752764ba1e650a11f0f7924c70"><code>8ddba10</code></a> Bump org.apache.maven.enforcer:enforcer-api from 3.6.1 to 3.6.2</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/9769fedb3e9fe0848da50dff0e69e042092bbb76"><code>9769fed</code></a> Bump org.ow2.asm:asm from 9.8 to 9.9</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/9068888c1cfcbac9555e9355563ef1183d701aec"><code>9068888</code></a> Bump org.codehaus.mojo:mojo-parent from 93 to 94</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/e5511564882de3ef5cc6a2b0a301259520a256dd"><code>e551156</code></a> Bump org.apache.maven.plugins:maven-shade-plugin from 3.6.0 to 3.6.1</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/ae8fee6139ec7c59fe1c2e2ae8f142ff3ddc3bcd"><code>ae8fee6</code></a> Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/7077f45bf291b1cc524c5142c30a652cd74c3513"><code>7077f45</code></a> Bump org.codehaus.mojo:mojo-parent from 92 to 93</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/7e996d83dfaa30bf8678f9ea21c1ad75e81ee5d3"><code>7e996d8</code></a> Bump org.apache.maven.enforcer:enforcer-api from 3.5.0 to 3.6.1</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/3a1de2d92177553de6c253700634b27f112940ca"><code>3a1de2d</code></a> Bump org.apache.commons:commons-lang3 in /animal-sniffer-maven-plugin</li> <li><a href="https://github.com/mojohaus/animal-sniffer/commit/9f6d51f0f0efd8a96b92f55a14778fc156f121c2"><code>9f6d51f</code></a> Bump org.codehaus.mojo:mojo-parent from 91 to 92</li> <li>Additional commits viewable in <a href="https://github.com/mojohaus/animal-sniffer/compare/animal-sniffer-1.24...animal-sniffer-1.26">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
) Public API: This PR adds a public API to work with databases on the server using `YouTracks#instance(host, port, user, password)` method to connect to the server. After that, the user can add server-level users to the server using the YouTrackDB#createSystemUser method. The following PRs will add more methods to handle server user methods. Internal implementation: 1. `YTDBGremlinSaslAuthenticationHandler` was added to send dbName to the server as authorizationId. That will allow future PRs to perform user queries to the server, not on behalf of server-wide (system users), but on behalf of a user registered in a single database. 2. `YTDBDriverRemoteConnection` and `YTDBDriverRemoteTraversal` are now tracking the changes of RIDs of new records instead of `YTDBGremlinResponseHandler` that in new implementation only passes this mapping to the respective classes. That allows us to update RIDs of committed vertices not only at the level of a single query but on the level of several queries that are executed inside a single transaction. 3. Tests for handling of TX on the server level were added, though we need to have more tests for TX tracking in the future. 4. YTDB-specific OpProcessors were added. They are, in a nutshell, a reflection of the original implementation with two important differences: - We use only ANTL for parsing of Gremlin-Script, so no Groovy anymore, as it is a big security hole. - We work with only a single database on a single traversal level, which allows us to integrate Gremlin Server lifecycle with our own lifecycle seamlessly.
Fixing IT tests failing on CI. The following bugs were fixed: 1. Storage close was not robust enough to correctly close the database after the file system crash. 2. FreeSpaceMapTestIT did not calculate the expected free space correctly. 3. Tests used the GlobalConfiguration (JVM-wide) parameter for encryption of data instead of test-local. 4. DefaultCollectionTest uses an incorrect path to the file system.
It is no longer possible to access YTDB by Graph instance using the public API. That is done to ensure that there is only one data source that works uniformly over all deployments, both remote and embedded. As a result: 1. YourTracks methods for fetching the Graph instance were removed. 2. Console README.md example was redeveloped. 3. An example of the usage of an embedded database was added as a standalone project module. 4. Scripts that are used to start the console were restored as they were removed by previous changes. 5. YTDBGraph interface was moved to internal API packages.
…g console deployment on Docker. (#586)
It is a POC to check the timing of execution of this pipeline on GitHub actions and understand if it is feasible for us or not.
RatioTest.asyncRatio seemed to collect the data for a short interval of 100 milliseconds, which appeared to be too low for a precise ratio calculation with current metrics collection mechanism. This PR increases that value to 1000 milliseconds which improves metrics accuracy and hopefully will stop the sporadic RatioTest failures on our TeamCity build.
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v6.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update README to include Node.js 24 support details and requirements by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li> <li>Persist creds to a separate file by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li> <li>v6-beta by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li> <li>update readme/changelog for v6 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p> <h2>v6-beta</h2> <h2>What's Changed</h2> <p>Updated persist-credentials to store the credentials under <code>$RUNNER_TEMP</code> instead of directly in the local git config.</p> <p>This requires a minimum Actions Runner version of <a href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a> to access the persisted credentials for <a href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker container action</a> scenarios.</p> <h2>v5.0.1</h2> <h2>What's Changed</h2> <ul> <li>Port v6 cleanup to v5 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p> <h2>v5.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update actions checkout to use node 24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li> <li>Prepare v5.0.0 release by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2238">actions/checkout#2238</a></li> </ul> <h2>⚠️ Minimum Compatible Runner Version</h2> <p><strong>v2.327.1</strong><br /> <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Release Notes</a></p> <p>Make sure your runner is updated to this version or newer to use this release.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4...v5.0.0">https://github.com/actions/checkout/compare/v4...v5.0.0</a></p> <h2>v4.3.1</h2> <h2>What's Changed</h2> <ul> <li>Port v6 cleanup to v4 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4...v4.3.1">https://github.com/actions/checkout/compare/v4...v4.3.1</a></p> <h2>v4.3.0</h2> <h2>What's Changed</h2> <ul> <li>docs: update README.md by <a href="https://github.com/motss"><code>@motss</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li> <li>Add internal repos for checking out multiple repositories by <a href="https://github.com/mouismail"><code>@mouismail</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li> <li>Documentation update - add recommended permissions to Readme by <a href="https://github.com/benwells"><code>@benwells</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>v6.0.0</h2> <ul> <li>Persist creds to a separate file by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li> <li>Update README to include Node.js 24 support details and requirements by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li> </ul> <h2>v5.0.1</h2> <ul> <li>Port v6 cleanup to v5 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li> </ul> <h2>v5.0.0</h2> <ul> <li>Update actions checkout to use node 24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li> </ul> <h2>v4.3.1</h2> <ul> <li>Port v6 cleanup to v4 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li> </ul> <h2>v4.3.0</h2> <ul> <li>docs: update README.md by <a href="https://github.com/motss"><code>@motss</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li> <li>Add internal repos for checking out multiple repositories by <a href="https://github.com/mouismail"><code>@mouismail</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li> <li>Documentation update - add recommended permissions to Readme by <a href="https://github.com/benwells"><code>@benwells</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li> <li>Adjust positioning of user email note and permissions heading by <a href="https://github.com/joshmgross"><code>@joshmgross</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li> <li>Update README.md by <a href="https://github.com/nebuk89"><code>@nebuk89</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li> <li>Update CODEOWNERS for actions by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li> <li>Update package dependencies by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li> </ul> <h2>v4.2.2</h2> <ul> <li><code>url-helper.ts</code> now leverages well-known environment variables by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li> <li>Expand unit test coverage for <code>isGhes</code> by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li> </ul> <h2>v4.2.1</h2> <ul> <li>Check out other refs/* by commit if provided, fall back to ref by <a href="https://github.com/orhantoy"><code>@orhantoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li> </ul> <h2>v4.2.0</h2> <ul> <li>Add Ref and Commit outputs by <a href="https://github.com/lucacome"><code>@lucacome</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li> <li>Dependency updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>- <a href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>, <a href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li> </ul> <h2>v4.1.7</h2> <ul> <li>Bump the minor-npm-dependencies group across 1 directory with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li> <li>Bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li> <li>Check out other refs/* by commit by <a href="https://github.com/orhantoy"><code>@orhantoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li> <li>Pin actions/checkout's own workflows to a known, good, stable version. by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li> </ul> <h2>v4.1.6</h2> <ul> <li>Check platform to set archive extension appropriately by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li> </ul> <h2>v4.1.5</h2> <ul> <li>Update NPM dependencies by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li> <li>Bump github/codeql-action from 2 to 3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li> <li>Bump actions/setup-node from 1 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li> <li>Bump actions/upload-artifact from 2 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/checkout/commit/8e8c483db84b4bee98b60c0593521ed34d9990e8"><code>8e8c483</code></a> Clarify v6 README (<a href="https://redirect.github.com/actions/checkout/issues/2328">#2328</a>)</li> <li><a href="https://github.com/actions/checkout/commit/033fa0dc0b82693d8986f1016a0ec2c5e7d9cbb1"><code>033fa0d</code></a> Add worktree support for persist-credentials includeIf (<a href="https://redirect.github.com/actions/checkout/issues/2327">#2327</a>)</li> <li><a href="https://github.com/actions/checkout/commit/c2d88d3ecc89a9ef08eebf45d9637801dcee7eb5"><code>c2d88d3</code></a> Update all references from v5 and v4 to v6 (<a href="https://redirect.github.com/actions/checkout/issues/2314">#2314</a>)</li> <li><a href="https://github.com/actions/checkout/commit/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3"><code>1af3b93</code></a> update readme/changelog for v6 (<a href="https://redirect.github.com/actions/checkout/issues/2311">#2311</a>)</li> <li><a href="https://github.com/actions/checkout/commit/71cf2267d89c5cb81562390fa70a37fa40b1305e"><code>71cf226</code></a> v6-beta (<a href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li> <li><a href="https://github.com/actions/checkout/commit/069c6959146423d11cd0184e6accf28f9d45f06e"><code>069c695</code></a> Persist creds to a separate file (<a href="https://redirect.github.com/actions/checkout/issues/2286">#2286</a>)</li> <li><a href="https://github.com/actions/checkout/commit/ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493"><code>ff7abcd</code></a> Update README to include Node.js 24 support details and requirements (<a href="https://redirect.github.com/actions/checkout/issues/2248">#2248</a>)</li> <li><a href="https://github.com/actions/checkout/commit/08c6903cd8c0fde910a37f88322edcfb5dd907a8"><code>08c6903</code></a> Prepare v5.0.0 release (<a href="https://redirect.github.com/actions/checkout/issues/2238">#2238</a>)</li> <li><a href="https://github.com/actions/checkout/commit/9f265659d3bb64ab1440b03b12f4d47a24320917"><code>9f26565</code></a> Update actions checkout to use node 24 (<a href="https://redirect.github.com/actions/checkout/issues/2226">#2226</a>)</li> <li>See full diff in <a href="https://github.com/actions/checkout/compare/v4...v6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
`YTDBGraphManager` was deleted in commit 32662da, but the `server/config/gremlin-server.yaml` still referenced it, causing `ClassNotFoundException` at server startup. The test config was updated but the prod config was missed. Changes: - Fix runtime `ClassNotFoundException` caused by reference to removed `YTDBGraphManager` class in gremlin config - Add test to catch similar issues at build time
The first workflow runs every time a PR is created, added to the merge queue, or merged into the develop branch. When running this workflow in the develop branch, build artifacts are deployed to Maven Central, both as SNAPSHOT versions and as SNAPSHOT versions with a short commit SHA suffix. That allows users to work with a fixed SNAPSHOT version. The first workflow utilizes disk-backed storage for Ubuntu x86 builds and memory-backed storage for ARM and Windows builds. The second workflow runs periodically, once a day, in case new changes are submitted after the last successful run of this workflow. The second workflow uses the disk-backed storage for all types of databases. In all workflows, failures are reported to Zulip chat. In all workflows, tests run on Windows, Ubuntu x86, and Ubuntu ARM nodes on JDK 21 and JDK 25 in parallel. --------- Co-authored-by: Vladislav <39089602+lesley29@users.noreply.github.com>
…eference of GitHub action. (#592) The reference to build server was removed, as we now use GitHub Actions. There are also minor fixes to job naming,
Bumps [com.github.jnr:jnr-posix](https://github.com/jnr/jnr-posix) from 3.1.20 to 3.1.21. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jnr/jnr-posix/commit/612485cad530c6d712783de46c578b5c5ef9f2ef"><code>612485c</code></a> Updates for central publishing</li> <li><a href="https://github.com/jnr/jnr-posix/commit/c57c8c0e46031c5a6bdb2e90e70fcd130ef59377"><code>c57c8c0</code></a> Update version and jnr-ffi for release</li> <li><a href="https://github.com/jnr/jnr-posix/commit/7941d66eaf7d3d7db2cc437b298441e98b2ab61c"><code>7941d66</code></a> Switch to Sonatype central plugin</li> <li><a href="https://github.com/jnr/jnr-posix/commit/dabcf397af2e4bf3ef21091843787b58aeb523e0"><code>dabcf39</code></a> [maven-release-plugin] prepare for next development iteration</li> <li>See full diff in <a href="https://github.com/jnr/jnr-posix/compare/jnr-posix-3.1.20...jnr-posix-3.1.21">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrii Lomakin <andrii0lomakin@gmail.com>
**Implementation of Docker distribution for our YTDB server.** This distribution defines the mapped volumes for: 1. Configuration -> `/opt/ytdb-server/conf` 2. Logs -> `/opt/ytdb-server/log` 3. Databases -> `/opt/ytdb-server/databases` 4. Directory to map root password during server start -> `/opt/ytdb-server/secrets/root_password` 5. Memory dumps in case of out of memory exceptions -> `/opt/ytdb-server/memory-dumps` The following parameters can be passed as environment variables: 1. `YOUTRACKDB_OPTS_MEMORY` -> typical JVM memory settings for min and max heap memory. Server configuration can be overwritten using a YAML settings file that is an extension of the Gremlin Settings YAML file. The following extension properties were added: 1. users : (name, password, resources) -> list of server users with a list of resources that they can access. 2. properties: (key, value) -> YTDB configuration for the server that overrides the default values set in `com.jetbrains.youtrackdb.api.config.GlobalConfiguration` enum. The server is listening on port 8182 by default. **Implementation details** A new module to test Docker containers, `docker-tests`, has been added. It contains TP feature tests for server distribution and Groovy scripts for the REPL console that are excerpts from our console readme. Though they need the `docker-images` profile to be activated, as I do not want users to be forced to have Docker during normal builds. Containers inside those tests can be started in debug mode. Console uses port 6006, and server uses port 5005. Additionally, our GitHub workflow now runs with `docker-images` profile enabled and deploys both ARM and x64 versions on Docker Hub for both console and server. The separate community-distribution project was removed as it was deemed unnecessary. The names of directories for both console and server were unified to support a consistent naming pattern. Gremlin server was directly integrated into our server instead of using it as a plugin. Functionality of server plugins was removed, as it relies on a private API that we should not expose and it is not safe by desing for server stability. There are plans to replace it with WASM-based services and lifecycle. --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Because of the recent issue with Maven builds on GitHub workflows when Maven had issues with downloading artifacts from the Maven Central repository, all workflows use the YTDB mirror for the Maven Central.
Deployment of Docker artifacts is failing on GitHub actions because Maven tasks also try to publish artifacts to the Maven repository. That is not needed as those artefacts are published in the previous `deploy` task and contradict the separation of concerns principle. To fix this issue: 1. Deployment of Maven artifacts to the Sonatype repository is disabled during the publishing of Docker artifacts. 2. console, docker-tests, examples, test-commons, and tests artefacts are not published at all.
`docker-deploy` job in GitHub actions used incorrect credentials for the Maven mirror repository. They were changed to the correct ones.
… new secrets for mirror authentication. (#605) `deploy-docker` job in GitHub actions used credentials from the wrong Maven repository. It was fixed by providing credentials that related to the YTDB Maven mirror.
As we have several repositories under our control, we need a script that will synchronize settings between them. Proposed action synchronizes both rule sets and PR settings between the YTDB repository and secondary repositories.
#### Motivation: Our requirements for PRs have become stricter, but this is not reflected in the PR template. The structuring of the PR template will enable all developers to follow a consistent structure, simplifying the writing of the PR description. #### Changes: `Motivation` and `Changes` sections with corresponding descriptions were added to the PR template. --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
) Bumps [org.codehaus.mojo:versions-maven-plugin](https://github.com/mojohaus/versions) from 2.19.1 to 2.20.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mojohaus/versions/releases">org.codehaus.mojo:versions-maven-plugin's releases</a>.</em></p> <blockquote> <h2>2.20.1</h2> <!-- raw HTML omitted --> <h2>🐛 Bug Fixes</h2> <ul> <li>Fixed <a href="https://redirect.github.com/mojohaus/versions/issues/1313">#1313</a>: Do not show existing version as update (<a href="https://redirect.github.com/mojohaus/versions/pull/1315">#1315</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> </ul> <h2>2.20.0</h2> <!-- raw HTML omitted --> <h2>🚀 New features and improvements</h2> <ul> <li>Allow filtering out pre releases in use-latest-versions (<a href="https://redirect.github.com/mojohaus/versions/pull/1283">#1283</a>) <a href="https://github.com/Artur"><code>@Artur</code></a>-</li> <li><a href="https://redirect.github.com/mojohaus/versions/issues/979">#979</a>: Output file is not overwritten by default (<a href="https://redirect.github.com/mojohaus/versions/pull/1279">#1279</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> </ul> <h2>🐛 Bug Fixes</h2> <ul> <li>Fixed a problem with dependency management filtering in the logged results (<a href="https://redirect.github.com/mojohaus/versions/pull/1298">#1298</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> <li>Fixes <a href="https://redirect.github.com/mojohaus/versions/issues/1295">#1295</a>: getAllUpdates(boolean) should respect currentVersionRange (<a href="https://redirect.github.com/mojohaus/versions/pull/1297">#1297</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> <li>Fixed <a href="https://redirect.github.com/mojohaus/versions/issues/1287">#1287</a> - Versionless dependencies in dependencyManagement accepted by maven, but not bij resolve-ranges (<a href="https://redirect.github.com/mojohaus/versions/pull/1288">#1288</a>) <a href="https://github.com/maroschutte"><code>@maroschutte</code></a></li> <li>Artifact comparison should use semantic version comparison. (<a href="https://redirect.github.com/mojohaus/versions/pull/1281">#1281</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> <li>Resolves <a href="https://redirect.github.com/mojohaus/versions/issues/1150">#1150</a>: Resolve multiple level properties (properties resolving to properties) (<a href="https://redirect.github.com/mojohaus/versions/pull/1276">#1276</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> </ul> <h2>📝 Documentation updates</h2> <ul> <li>Add more examples of ignoredVersions config parameter (<a href="https://redirect.github.com/mojohaus/versions/pull/1296">#1296</a>) <a href="https://github.com/mikkoi"><code>@mikkoi</code></a></li> <li>Fix broken href link in site (<a href="https://redirect.github.com/mojohaus/versions/pull/1294">#1294</a>) <a href="https://github.com/mikkoi"><code>@mikkoi</code></a></li> <li>Added remaining javadoc comments. (<a href="https://redirect.github.com/mojohaus/versions/pull/1293">#1293</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> <li>Getting rid of javadoc warnings (<a href="https://redirect.github.com/mojohaus/versions/pull/1292">#1292</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> </ul> <h2>👻 Maintenance</h2> <ul> <li>ResolverAdapter: a thin adapter over Resolver (<a href="https://redirect.github.com/mojohaus/versions/pull/1301">#1301</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> <li>Fixed a problem with dependency management filtering in the logged results (<a href="https://redirect.github.com/mojohaus/versions/pull/1298">#1298</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> <li>Fix broken href link in site (<a href="https://redirect.github.com/mojohaus/versions/pull/1294">#1294</a>) <a href="https://github.com/mikkoi"><code>@mikkoi</code></a></li> <li>Added remaining javadoc comments. (<a href="https://redirect.github.com/mojohaus/versions/pull/1293">#1293</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> <li>Getting rid of javadoc warnings (<a href="https://redirect.github.com/mojohaus/versions/pull/1292">#1292</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> <li>Removed a redundant integration test (<a href="https://redirect.github.com/mojohaus/versions/pull/1280">#1280</a>) <a href="https://github.com/andrzejj0"><code>@andrzejj0</code></a></li> </ul> <h2>📦 Dependency updates</h2> <ul> <li>Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0 (<a href="https://redirect.github.com/mojohaus/versions/pull/1312">#1312</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump byteBuddyVersion from 1.18.0 to 1.18.1 (<a href="https://redirect.github.com/mojohaus/versions/pull/1311">#1311</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.plexus:plexus-archiver from 4.10.3 to 4.10.4 (<a href="https://redirect.github.com/mojohaus/versions/pull/1307">#1307</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump byteBuddyVersion from 1.17.7 to 1.18.0 (<a href="https://redirect.github.com/mojohaus/versions/pull/1309">#1309</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump commons-codec:commons-codec from 1.19.0 to 1.20.0 (<a href="https://redirect.github.com/mojohaus/versions/pull/1303">#1303</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump commons-io:commons-io from 2.20.0 to 2.21.0 (<a href="https://redirect.github.com/mojohaus/versions/pull/1305">#1305</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.plexus:plexus-i18n from 1.0.0 to 1.1.0 (<a href="https://redirect.github.com/mojohaus/versions/pull/1306">#1306</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.plexus:plexus-interactivity-api from 1.4 to 1.5.1 (<a href="https://redirect.github.com/mojohaus/versions/pull/1308">#1308</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.3.0 to 3.4.0 (<a href="https://redirect.github.com/mojohaus/versions/pull/1302">#1302</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.plexus:plexus-archiver from 4.10.2 to 4.10.3 (<a href="https://redirect.github.com/mojohaus/versions/pull/1290">#1290</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> <li>Bump org.codehaus.mojo:mojo-parent from 93 to 94 (<a href="https://redirect.github.com/mojohaus/versions/pull/1285">#1285</a>) @<a href="https://github.com/apps/dependabot">dependabot[bot]</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/mojohaus/versions/commit/b296a4f7cbc57a787a691ae78439d856d3e657b1"><code>b296a4f</code></a> [maven-release-plugin] prepare release 2.20.1</li> <li><a href="https://github.com/mojohaus/versions/commit/b243939ff413dcbba754f3dc0244e8027e834bdb"><code>b243939</code></a> Fixed <a href="https://redirect.github.com/mojohaus/versions/issues/1313">#1313</a>: Do not show existing version as update (<a href="https://redirect.github.com/mojohaus/versions/issues/1315">#1315</a>)</li> <li><a href="https://github.com/mojohaus/versions/commit/773d0f37d2b78d6fa4d91118079bdabe0c38d5d6"><code>773d0f3</code></a> [maven-release-plugin] prepare for next development iteration</li> <li><a href="https://github.com/mojohaus/versions/commit/2467d99166c6d15bd4e5755f5c500f6ee53ccbaa"><code>2467d99</code></a> [maven-release-plugin] prepare release 2.20.0</li> <li><a href="https://github.com/mojohaus/versions/commit/4c240e7af2fc05d1b0719ee6c9e7e1ccb2618abc"><code>4c240e7</code></a> Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0</li> <li><a href="https://github.com/mojohaus/versions/commit/6d64537083fa7cd7cd6f452dd35a1fb469e82c22"><code>6d64537</code></a> Bump byteBuddyVersion from 1.18.0 to 1.18.1</li> <li><a href="https://github.com/mojohaus/versions/commit/7736ca686c7aefe37c79df1160d863129ae9030d"><code>7736ca6</code></a> Bump org.codehaus.plexus:plexus-archiver from 4.10.3 to 4.10.4</li> <li><a href="https://github.com/mojohaus/versions/commit/37a53308a657eb6cddabe9a19bb9feb9159c3ca6"><code>37a5330</code></a> Bump byteBuddyVersion from 1.17.7 to 1.18.0</li> <li><a href="https://github.com/mojohaus/versions/commit/edeb5e7f01c47ef5d3e2670ecd05601400d82bc8"><code>edeb5e7</code></a> Bump commons-codec:commons-codec from 1.19.0 to 1.20.0</li> <li><a href="https://github.com/mojohaus/versions/commit/88874e07091d4a59005cd5ab66196999383346b6"><code>88874e0</code></a> Bump commons-io:commons-io from 2.20.0 to 2.21.0</li> <li>Additional commits viewable in <a href="https://github.com/mojohaus/versions/compare/2.19.1...2.20.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#### Motivation: There were two issues that had to be fixed: 1. IT tests were not running in `Java CI/CD Integration Tests Pipeline` GitHub action. 2. GitHub action was also failing to start on the latest changes: #### Changes: 1. Integration tests are actually not running because they are called in `verify` step. 2. The location of settings.xml was provided incorrectly in the workflow.
#607) #### Motivation: A critical issue was that the workflow did not fail, despite test failures being fixed. #### Changes: The Issue was fixed by adding one more step that analyzes both surefire and failsafe reports and fails the workflow in case of test failures. Additionally, Zulip notifications are sent when workflow failures are fixed. The workflow that synced settings between projects was removed because it was unreliable
…d so it will work with multimodule project. (#608) #### Motivation: Despite the fact that we have a step in GitHub workflows that checks the test state, it is implemented incorrectly as it uses incorrect locations of Surefire/Failsafe reports. #### Changes: `Publish Test Results` step in GitHub jobs now uses a wildcard pattern at the beginning of the locations of Surefire/Failsafe reports to fix the given issue.
User description
THIS IS WIP, PLEASE DO NOT MERGE.
Replace interfaces to use FileHandler instead of fileId to see which part of the code is affected. Try to do high level algorithm modifications to move from CHM to CASObjectArray in read cache.
What does this PR do?
A brief description of the change being made with this pull request.
PR Type
Enhancement
Description
Replace
ConcurrentHashMap<PageKey, CacheEntry>withConcurrentHashMap<Long, FileHandler>in read cacheIntroduce
FileHandlerrecord containingfileIdandCASObjectArrayfor page entriesUpdate cache interfaces to use
FileHandlerinstead of rawfileIdparametersModify page lookup logic to search within
CASObjectArrayper fileDiagram Walkthrough
File Walkthrough
10 files
Add new FileHandler record with fileId and casArrayUpdate interface methods to accept FileHandler parameterReplace PageKey-based CHM with FileHandler-based CHM implementationUpdate policy to use FileHandler-based data structureLoad FileHandler before calling cache read methodsUpdate to load FileHandler before cache operationsAdd loadFileHandler method and update signatures with FileHandlerImplement loadFileHandler and update page loading with FileHandlerUpdate page loading methods to use FileHandlerImplement loadFileHandler and update load methods with FileHandler