Feat(Project): New function to make the dependency management of a project with releases more flexible #1838
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
1. Introduction
This manual aims to introduce the Dependency Network feature. Refer issue: #1538
The dependency network feature is a new function to make the dependency management of a project more flexible by allowing the users to customize the dependency graphs of their projects.
To help the reviewers test and review this new feature more quickly and easily, TSDV makes this manual.
2. How to test?
This feature modifies the GUI of the “Linked Releases And Projects” tab on the “project edits” page.
Now the “Linked Releases” table could show all dependencies of a project (both direct and transitive ones). Users can modify these dependencies as well.
2.1. The changes of GUI
In this section, we will introduce the changes in GUI behaviors. 5 sub-functions are modified or added including
a. Modify the “Add Releases” button: This button will add a direct dependency (release) in the dependency graph of this project.
b. A new icon button to add a dependency (release) to another dependency (release) in the dependency graph. Note that this dependency added is seen as the transitive dependency of this project.
c. A new icon button to load the default dependency graph of a dependency (release) by importing the dependency information stored on the component page. Note that this button will load all dependencies (both direct and transitive ones) of the corresponding dependency (release).
d. The combo box allows the user to modify the version of a dependency.
e. The “Check Dependency Network” button will compare and show the different dependency information which is not consistent with the default one stored on the component page by highlighting them. The inconsistency usually happens after users modified the dependency graph or imported an old project.
2.2 Related functions
This section will introduce what is changed because of this new feature.
Projects detail page
Table view
Tree view
Export Spreadsheet button (Projects with linked releases)
Generate License Info button
Generate Source Code Bundle button
Add License Info to Release button
Project view page
Projects edit page
Components detail page
Releases detail page
Delete release function (Cannot remove release if it used by project)
Clearing request edit page
Modified Rest API
New Rest API
3. How to review?
This chapter introduces which file is modified to achieve the corresponding function.
3.1. Rest API
Table 1: RestAPI functions
3.2. GUI
** Table 2: UI functions **
- frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/LinkedReleasesAndProjectsAwarePortlet.java
- frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/projects/ProjectPortlet.java
- frontend/sw360-portlet/src/main/java/org/eclipse/sw360/portal/portlets/projects/ProjectPortlet.java
- Administration tab (Clearing details numbers)
- Obligations tab
- Attachment Usages tab
- Vulnerabilities tab
+ Used By Project table
+ Used By Project table
Reference documents:
PR for Dependency network feature.docx
A New Dependency Management Function for SW360_qiu.pdf