Skip to content

RDKEMW-12279 RALF Support for EntOS - PackageManager integration#722

Open
SKumarMetro wants to merge 12 commits intodevelopfrom
topic/RDKEMW-12279
Open

RDKEMW-12279 RALF Support for EntOS - PackageManager integration#722
SKumarMetro wants to merge 12 commits intodevelopfrom
topic/RDKEMW-12279

Conversation

@SKumarMetro
Copy link
Contributor

No description provided.

Copilot AI review requested due to automatic review settings January 29, 2026 17:44
@SKumarMetro SKumarMetro requested a review from a team as a code owner January 29, 2026 17:44
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for RALF (Runtime Application Lifecycle Framework) integration with EntOS PackageManager by introducing a new failure reason enum value.

Changes:

  • Added GENERAL_FAILURE enum value to the FailReason enumeration in IPackageInstaller interface


enum class FailReason : uint8_t {
NONE, // XXX: Not in HLA
GENERAL_FAILURE,
Copy link

Copilot AI Jan 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The enum value GENERAL_FAILURE is missing the required @text annotation. According to the Enum Naming convention, enum values in interfaces marked with @JSON should include @text annotations to define their JSON RPC representation.

For example, similar patterns can be seen in:

  • apis/FirmwareUpdate/IFirmwareUpdate.h:30 - VALIDATION_FAILED = 1 /* @text VALIDATION_FAILED */
  • apis/USBMassStorage/IUSBMassStorage.h:35 - READ_ONLY = 1 /* @text READ_ONLY */

The @text annotation should be added in the format: GENERAL_FAILURE /* @text GENERAL_FAILURE */,

Refer: https://github.com/rdkcentral/entservices-apis/blob/develop/.github/instructions/api_headers.instructions.md#enum-naming

Copilot generated this review using guidance from repository custom instructions.
Copilot AI review requested due to automatic review settings February 3, 2026 19:45
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings February 5, 2026 23:29
@github-actions
Copy link

github-actions bot commented Feb 5, 2026

Documentation Auto-Generated

Documentation has been automatically generated for the changed plugins and committed to this PR branch.

The generated documentation files have been added to the PR for review.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

| [download](#download) | Downloads a resource file for an application. |
| [getConfigForPackage](#getConfigForPackage) | getConfigForPackage |
| [getLockedInfo](#getLockedInfo) | GetLockedInfo |
| [getStorageInformation](#getStorageInformation) | GetStorageInformation |
Copy link

Copilot AI Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation for the getLockedInfo API has been removed from this file, but the corresponding method GetLockedInfo still exists in the IPackageHandler interface (IAppPackageManager.h lines 322-333). This creates an inconsistency between the header file and the documentation. Either the method should be removed from the header file, or the documentation should be retained. If getLockedInfo is deprecated in favor of getLockInfo, this should be documented clearly.

Copilot uses AI. Check for mistakes.
Copilot AI review requested due to automatic review settings February 17, 2026 01:07
@github-actions
Copy link

Documentation Auto-Generated

Documentation has been automatically generated for the changed plugins and committed to this PR branch.

The generated documentation files have been added to the PR for review.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 13 comments.

Comment on lines 196 to 198
| params.options.priority | bool | |
| params.options.retries | integer | |
| params.options.rateLimit | integer | |
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parameter descriptions for the Options struct fields are empty. According to documentation best practices and custom coding guideline 1000003, all parameters should have meaningful descriptions. Add descriptions such as:

  • priority: "Indicates whether this download should be prioritized"
  • retries: "Number of retry attempts if download fails"
  • rateLimit: "Maximum download rate limit in bytes per second"

Refer: https://github.com/rdkcentral/entservices-apis/blob/develop/.github/instructions/api_headers.instructions.md#documentation-tags-guidelines

Copilot uses AI. Check for mistakes.
Comment on lines 532 to 535
| result.storageinfo.EXTERNAL | struct | |
| result.storageinfo.path | string | |
| result.storageinfo.quotaKB | string | |
| result.storageinfo.usedKB | string | |
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The StorageInfo structure documentation doesn't match the interface definition in IPackageManager.h. According to the header file (lines 75-86), StorageInfo contains two StorageDetails structs: "apps" and "persistent", each with path, quotaKB, and usedKB fields. The documentation shows "EXTERNAL" as a field which doesn't exist in the interface. The correct structure should be:

  • result.storageinfo.apps (StorageDetails)
  • result.storageinfo.apps.path (string)
  • result.storageinfo.apps.quotaKB (string)
  • result.storageinfo.apps.usedKB (string)
  • result.storageinfo.persistent (StorageDetails)
  • result.storageinfo.persistent.path (string)
  • result.storageinfo.persistent.quotaKB (string)
  • result.storageinfo.persistent.usedKB (string)
Suggested change
| result.storageinfo.EXTERNAL | struct | |
| result.storageinfo.path | string | |
| result.storageinfo.quotaKB | string | |
| result.storageinfo.usedKB | string | |
| result.storageinfo.apps | StorageDetails | |
| result.storageinfo.apps.path | string | |
| result.storageinfo.apps.quotaKB | string | |
| result.storageinfo.apps.usedKB | string | |
| result.storageinfo.persistent | StorageDetails | |
| result.storageinfo.persistent.path | string | |
| result.storageinfo.persistent.quotaKB | string | |
| result.storageinfo.persistent.usedKB | string | |

Copilot uses AI. Check for mistakes.
Comment on lines 266 to 268
| result.installedIds | IPackageKeyIterator | |
| result.installedIds[#].id | string | |
| result.installedIds[#].version | string | |
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a mismatch between the parameter documentation and the example response. The parameters show "result.installedIds[#].id" and "result.installedIds[#].version", but the example response shows the result as a direct array without the "installedIds" wrapper.

Based on the IPackageManager.h interface (line 178) which returns an IPackageKeyIterator, the JSON-RPC representation typically serializes iterators as arrays. The parameter documentation should either:

  1. Match the example and show "result[#].id" and "result[#].version", or
  2. The example should wrap the array in an "installedIds" field

Consistency between parameter documentation and examples is important for API consumers.

Copilot uses AI. Check for mistakes.
## *uninstall*

Resume
Uninstall
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The brief description has been changed from "Uninstalls an application" to just "Uninstall". While "Uninstalls an application" was already brief, changing it to just "Uninstall" makes it even less informative. Method descriptions should be complete sentences.

Suggested change
Uninstall
Uninstalls an application package.

Copilot uses AI. Check for mistakes.
| params.version | string | |
| params.version | string | Version |
| params.additionalMetadata | IKeyValueIterator | Additional Metadata |
| params.additionalMetadata[#].name | string | |
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The KeyValue struct field naming is inconsistent between interfaces. In IAppPackageManager.h (lines 208-213), the KeyValue struct used by IPackageInstaller has "name" and "value" fields. However, in IPackageManager.h (lines 96-99), the KeyValue struct has "key" and "value" fields.

Since this documentation now references IPackageManager.h (line 5), but documents the install method from IPackageInstaller (which uses "name"), there's a naming inconsistency that should be resolved. Ensure the correct struct definition is used based on which interface is actually being implemented.

Suggested change
| params.additionalMetadata[#].name | string | |
| params.additionalMetadata[#].key | string | |

Copilot uses AI. Check for mistakes.
Comment on lines 331 to 333
| result.result | LockInfo | |
| result.result.reason | string | |
| result.result.owner | string | |
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The result structure documentation appears incorrect. It shows "result.result.reason" and "result.result.owner", which suggests a nested "result.result" structure. However, based on the IPackageManager.h interface (line 207), the GetLockInfo method returns a LockInfo struct directly. The documentation should be:

  • result (object containing LockInfo fields)
  • result.reason (string)
  • result.owner (string)

Not "result.result.reason" and "result.result.owner".

Suggested change
| result.result | LockInfo | |
| result.result.reason | string | |
| result.result.owner | string | |
| result.reason | string | |
| result.owner | string | |

Copilot uses AI. Check for mistakes.
## *cancel*

Cancels a previously issued asynchronous request.
Cancel
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The brief description has been changed from "Cancels a previously issued asynchronous request" to just "Cancel". This makes the documentation less descriptive and harder to understand. Method descriptions should be complete sentences that clearly explain what the method does, not just restate the method name.

Copilot uses AI. Check for mistakes.
## *install*

PackageState
Install
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The brief description has been changed from "Downloads and installs an application bundle" to just "Install". This reduces the clarity of the documentation. Method descriptions should be complete sentences that clearly explain what the method does.

Suggested change
Install
Installs the specified package on the device.

Copilot uses AI. Check for mistakes.
# PackageManager Plugin

**Version: [1.0.0](https://github.com/rdkcentral/entservices-apis/tree/main/apis/PackageManager/IAppPackageManager.h)**
**Version: [1.0.0](https://github.com/rdkcentral/entservices-apis/tree/main/apis/PackageManager/IPackageManager.h)**
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version link has been changed from IAppPackageManager.h to IPackageManager.h. However, according to the repository's README (apis/PackageManager/README.md), IPackageManager.h is the old interface that will be deleted after transitioning to the new PackageManager, while IAppPackageManager.h contains the new interfaces (IPackageDownloader, IPackageHandler, IPackageInstaller).

The documented APIs in this file appear to be from the new interfaces in IAppPackageManager.h (e.g., download with Options struct, install with additionalMetadata), not from IPackageManager.h. The reference should point to IAppPackageManager.h instead, or the PR title should clarify that this is documenting the old IPackageManager interface.

Copilot uses AI. Check for mistakes.
| params.packageId | string | Package Id |
| params.version | string | |
| params.type | string | |
| params.id | string | package id |
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parameter descriptions for "id" and "version" now include descriptions ("package id" and "Version"), which improves clarity. However, there's an inconsistency in capitalization: "package id" is lowercase while "Version" is capitalized. For consistency, either both should be lowercase (e.g., "package id" and "version") or both should follow a consistent capitalization pattern.

Suggested change
| params.id | string | package id |
| params.id | string | Package ID |

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants