Part of #11
As a developer, I want to add qbit packages to my project with version constraints so I can manage dependencies.
qctl qbit add <package>[@version] # Examples: qctl qbit add @qrun/auth-sso # Latest version qctl qbit add @qrun/auth-sso@2.0.0 # Exact version qctl qbit add @qrun/auth-sso@^2.0 # Compatible with 2.x qctl qbit add @qrun/auth-sso@~2.0.1 # Patch updates only
RegistryClient
qbits.lock
qctl-qbit/src/main/java/io/qrun/qctl/qbit/AddCommand.java
qbit add
qctl-qbit/src/main/java/io/qrun/qctl/qbit/PackageSpec.java
name@version
qctl-qbit/src/main/java/io/qrun/qctl/qbit/lock/LockfileIO.java
qctl-qbit/src/main/java/io/qrun/qctl/qbit/QbitCommand.java
AddCommand
PackageInfo
PackageSpec
LockfileIO.write()
QbitCommand.subcommands
qbit add @qrun/auth-sso
qbit add @qrun/auth-sso@2.0.0
qbit add @qrun/auth-sso@^2.0
No dependencies set.
The note is not visible to the blocked user.
Part of #11
User Story
As a developer, I want to add qbit packages to my project with version constraints so I can manage dependencies.
Design
Command Interface
Workflow
RegistryClientfrom #27)qbits.lockwith new entryFiles to Create/Modify
qctl-qbit/src/main/java/io/qrun/qctl/qbit/AddCommand.javaqbit addqctl-qbit/src/main/java/io/qrun/qctl/qbit/PackageSpec.javaname@versionstringsqctl-qbit/src/main/java/io/qrun/qctl/qbit/lock/LockfileIO.javaqctl-qbit/src/main/java/io/qrun/qctl/qbit/QbitCommand.javaAddCommandDependencies
RegistryClientandPackageInfoImplementation Tasks
PackageSpecclass to parsename@versionstringsAddCommandwith Picocli annotationsLockfileIO.write()AddCommandinQbitCommand.subcommandsPackageSpecparsingAcceptance Criteria
qbit add @qrun/auth-ssoinstalls latest versionqbit add @qrun/auth-sso@2.0.0installs exact versionqbit add @qrun/auth-sso@^2.0installs latest 2.x