Skip to content

Comments

BREAKING CHANGE(hubble): upgrade to new version 2.0 [WIP] #632

Open
FrostyHec wants to merge 238 commits intoapache:masterfrom
FrostyHec:hubble2.0
Open

BREAKING CHANGE(hubble): upgrade to new version 2.0 [WIP] #632
FrostyHec wants to merge 238 commits intoapache:masterfrom
FrostyHec:hubble2.0

Conversation

@FrostyHec
Copy link
Collaborator

Purpose of the PR

  • Upgrading Hubble ( Work in progress ). Currently I am trying to pass CI in fork repo.

Main Changes

Verifying these changes

  • Trivial rework / code cleanup without any test coverage. (No Need)
  • Already covered by existing tests, such as (please modify tests here).
  • Need tests and can be verified as follows:
    • Need sufficient test for functionality verification. I have checked manually to verify its functionality
    • Can also use hg-test for further verification.

Does this PR potentially affect the following parts?

  • Nope
  • Dependencies (add/update license info)
  • Modify configurations
  • The public API
  • Other affects (typed here)

Documentation Status

  • Doc - TODO
  • Doc - Done
  • Doc - No Need

@dosubot dosubot bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Oct 20, 2024
@github-actions github-actions bot added the hubble hugegraph-hubble label Oct 20, 2024
@dosubot dosubot bot added dependencies Pull requests that update a dependency file hubble-be labels Oct 20, 2024
@imbajin imbajin changed the title [WIP] feat(hubble): Upgrading Hubble to new version BREAKING CHANGE(hubble): upgrade to new version 2.0 [WIP] Oct 20, 2024
@github-actions github-actions bot added loader hugegraph-loader client hugegraph-client size:XXL This PR changes 1000+ lines, ignoring generated files. labels Nov 2, 2025
@github-actions github-actions bot removed the loader hugegraph-loader label Nov 5, 2025
Eliminated a redundant protected client() method definition in BaseApiTest to clean up the code and avoid confusion.
Refactored several code blocks in HugeGraphLoader.java and JDBCFetcher.java to improve readability by adding line breaks, consistent indentation, and clearer formatting. No functional changes were made.
Added Node modules caching to GitHub Actions workflow for faster CI builds. Updated the Maven build to use yarn with --frozen-lockfile and --prefer-offline for more reliable installs. Replaced 'node-sass' with 'sass' in frontend dependencies to ensure compatibility and maintainability.
@github-actions github-actions bot added the loader hugegraph-loader label Nov 5, 2025
Resolved a merge conflict in convertStringToJSON.js and removed unrelated Java code. Added a 'resolutions' field for 'pretty-format' in package.json to address dependency versioning. yarn.lock added to track dependencies.
Updated Node.js version requirements and setup from 16.x to 18.20.8 in CI workflow, documentation, and build configuration. Also removed the 'resolutions' field for 'pretty-format' from package.json.
Added CI and NODE_OPTIONS environment variables to both the GitHub Actions workflow and the Maven build configuration. This sets CI to false and increases Node.js memory allocation to 4096MB to improve build stability and provide clearer environment diagnostics.

private void judgeFileExist(String filePath) {
File file = new File(filePath);
if (!file.exists()) {

Check failure

Code scanning / CodeQL

Uncontrolled data used in path expression

This path depends on a [user-provided value](1). This path depends on a [user-provided value](2). This path depends on a [user-provided value](3).
model, ernieClientId, ernieClientSecret);

// 构造ProcessBuilder对象
ProcessBuilder pb = new ProcessBuilder(args1);

Check failure

Code scanning / CodeQL

Uncontrolled command line

This command line depends on a [user-provided value](1).
// 执行Python文件,并传入参数
List<String> lineList = new ArrayList<>();
try {
Process proc = Runtime.getRuntime().exec(args1);

Check failure

Code scanning / CodeQL

Uncontrolled command line

This command line depends on a [user-provided value](1). This command line depends on a [user-provided value](2).
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
String fileName = String.format("%s_%s.schema", graphSpace, graph);
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);

Check warning

Code scanning / CodeQL

HTTP response splitting

This header depends on a [user-provided value](1), which may cause a response-splitting vulnerability. This header depends on a [user-provided value](2), which may cause a response-splitting vulnerability.

private void judgeFileExist(String filePath) {
File file = new File(filePath);
if (!file.exists()) {

Check failure

Code scanning / CodeQL

Uncontrolled data used in path expression High

This path depends on a
user-provided value
.
This path depends on a
user-provided value
.
This path depends on a
user-provided value
.
model, ernieClientId, ernieClientSecret);

// 构造ProcessBuilder对象
ProcessBuilder pb = new ProcessBuilder(args1);

Check failure

Code scanning / CodeQL

Uncontrolled command line Critical

This command line depends on a
user-provided value
.
// 执行Python文件,并传入参数
List<String> lineList = new ArrayList<>();
try {
Process proc = Runtime.getRuntime().exec(args1);

Check failure

Code scanning / CodeQL

Uncontrolled command line Critical

This command line depends on a
user-provided value
.
This command line depends on a
user-provided value
.
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
String fileName = String.format("%s_%s.schema", graphSpace, graph);
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);

Check warning

Code scanning / CodeQL

HTTP response splitting Medium

This header depends on a
user-provided value
, which may cause a response-splitting vulnerability.
This header depends on a
user-provided value
, which may cause a response-splitting vulnerability.
Introduces the .serena directory with onboarding documentation, project architecture, code style, workflows, and related memory files for HugeGraph Toolchain.

These files provide guidelines and quick start information for new developers, covering project overview, design patterns, code conventions, testing, and development workflows.
@codecov
Copy link

codecov bot commented Nov 10, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 51.55%. Comparing base (b066b80) to head (f06e02a).
⚠️ Report is 67 commits behind head on master.

❗ There is a different number of reports uploaded between BASE (b066b80) and HEAD (f06e02a). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (b066b80) HEAD (f06e02a)
2 1
Additional details and impacted files
@@              Coverage Diff              @@
##             master     #632       +/-   ##
=============================================
- Coverage     62.49%   51.55%   -10.95%     
+ Complexity     1903      973      -930     
=============================================
  Files           262      111      -151     
  Lines          9541     5858     -3683     
  Branches        886      754      -132     
=============================================
- Hits           5963     3020     -2943     
+ Misses         3190     2576      -614     
+ Partials        388      262      -126     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@imbajin imbajin mentioned this pull request Nov 14, 2025
3 tasks
…lified

# Conflicts:
#	hugegraph-client/assembly/travis/install-hugegraph-from-source.sh
# Conflicts:
#	.github/workflows/client-ci.yml
#	hugegraph-client/assembly/travis/install-hugegraph-from-source.sh
#	hugegraph-client/pom.xml
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/graph/GraphMetricsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/graphs/GraphsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/ip/WhiteIpListAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/kvstore/KvStoreAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/task/ComputerDisAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/AdamicAdarAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/AllShortestPathsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/CountAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/CrosspointsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/EgonetAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/JaccardSimilarityAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/NeighborRankAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/PathsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/PersonalRankAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/RaysAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/ResourceAllocationAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/RingsAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/SameNeighborsBatchAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/ShortestPathAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/traverser/VariablesAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/api/vermeer/VermeerAPI.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/client/RestClient.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/ComputerManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/GraphManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/GraphsManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/HStoreManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/HugeClient.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/PDManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/SchemaTemplateManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/ServiceManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/TraverserManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/VermeerManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/WhiteIpListManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/driver/factory/PDHugeClientFactory.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/auth/Role.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/auth/UserManager.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/space/HStoreNodeInfo.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/CountResponse.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/Egonet.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/EgonetRequest.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/KneighborRequest.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/KoutRequest.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/PathOfVertices.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/PathWithMeasure.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/Prediction.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/RanksWithMeasure.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/SameNeighbors.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/SameNeighborsBatch.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/SameNeighborsBatchRequest.java
#	hugegraph-client/src/main/java/org/apache/hugegraph/structure/traverser/Steps.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/GraphsApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/AdamicAdarAPITest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/FusiformSimilarityApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/KneighborApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/KoutApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/api/traverser/SameNeighborsBatchApiTest.java
#	hugegraph-client/src/test/java/org/apache/hugegraph/functional/HugeClientHttpsTest.java
# Conflicts:
#	hugegraph-loader/src/main/java/org/apache/hugegraph/loader/HugeGraphLoader.java
# Conflicts:
#	hugegraph-hubble/hubble-dist/pom.xml
#	hugegraph-hubble/hubble-fe/package-lock.json
#	hugegraph-hubble/hubble-fe/package.json
#	hugegraph-hubble/hubble-fe/yarn.lock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client hugegraph-client dependencies Pull requests that update a dependency file hubble hugegraph-hubble hubble-be inactive loader hugegraph-loader size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants