Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

clarify pack: name behavior (draft) #1936

Open
ReinhardKeil opened this issue Jan 27, 2025 · 1 comment
Open

clarify pack: name behavior (draft) #1936

ReinhardKeil opened this issue Jan 27, 2025 · 1 comment
Assignees
Labels
discussion done indicates an issue's discussion is completed enhancement New feature or request proposal Proposal for change or extension

Comments

@ReinhardKeil
Copy link
Collaborator

ReinhardKeil commented Jan 27, 2025

The Problem To Be Solved

This is a proposal how pack names should behave regarding the sematic versioning fields -<pre-release> and +<build> and case sensitivity.

cbuild/csolution:

YML Input files: pack names only accept version without the fields +<build>. Thus it is not possible to specify a specific build of pack. Clarify in the specification and update schema removing +<build>.

Using path: allows to reference packs with -<pre-release> and/or +<build> information This is no change to the current specification.

New requirement: Treat pack filenames as case insensitive, meaning that Arm::Cmsis is identical to ARM:CMSIS.

PDCS files: allow in the element package to specify -<pre-release> and +<build> information. This is no change to the current specification.

*.cbuild-pack.yml: records in resolved-pack: the +<build> information that is used. With option --frozen-packs an error is issued even when only the +<build> information changes. Without option --frozen-packs it is accepted that +<build> information changes and the new version is recorded.

Public pack service (arm.com)

CMSIS Pack index files collecting a list of public packs should only list *.pdsc files with a version history specifying versions without <pre-release> and/or +<build> information.

ToDo: define how such packs are indexed (suggestion is to reject packs with <pre-release> and/or +<build> information)
Note: Current pack importer does import pack versions with <pre-release> and/or +<build> information and stores the full version in the index.pidx file.

cpackget

Allows to install packs with <pre-release> and +<build> information only using these syntax variants:

  • cpackget add <path>/Vendor.PackName.x.y.z[-<pre-release>][+<build>].pack - this installs in CMSIS_PACK_ROOT (see note)
  • cpackget add https://vendor.com/example/Vendor.PackName.x.y.z[-<pre-release>][+<build>].pack - this installs in CMSIS_PACK_ROOT (see note)
  • cpackget add Vendor.PackName.pdsc - this installs as local pack

Thus Open-CMSIS-Pack/cpackget#385 is not considered as a bug, but should be rejected with an error.

Note: the directory in CMSIS_PACK_ROOT will be always without [+<build>] information. Thus packs which only differ in the +<build> information are considered "equal" from the CMSIS_PACK_ROOT point of view (need better wording).

The directory name used in CMSIS_PACK_ROOT considers the case used in the *.PDSC file. However an existing directory name will kept identical (meaning that changes in a later version to the case of vendor or pack name are not reflected in the directory name).

When the CMSIS_PACK_ROOT contains both, a standard pack and a local pack (registered in local_repository.pidx) with the same semantic version (excluding +<build> information), the pack in local_repository.pidx takes precedence.

Relates to:

@ReinhardKeil ReinhardKeil added the enhancement New feature or request label Jan 27, 2025
@ReinhardKeil ReinhardKeil self-assigned this Jan 27, 2025
@ReinhardKeil ReinhardKeil added proposal Proposal for change or extension discussion Indicates an issue being in discussion labels Jan 27, 2025
@iomint
Copy link

iomint commented Feb 11, 2025

After internal discussion in ST side, we are going to stop using "+buildmetadata" in pack naming.

@jkrech jkrech added discussion done indicates an issue's discussion is completed and removed discussion Indicates an issue being in discussion labels Feb 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion done indicates an issue's discussion is completed enhancement New feature or request proposal Proposal for change or extension
Projects
None yet
Development

No branches or pull requests

3 participants