joelpkg - Package Manager
joelpkg is the package manager for JOEL, handling dependency management, versioning, and package distribution.
Installation
joelpkg is included with JOEL:
joelpkg --versionQuick Start
# Initialize new package
joelpkg init
# Install dependencies
joelpkg install
# Add dependency
joelpkg add math
# Build package
joelpkg buildPackage Management
Initialize Package
# Initialize new package
joelpkg init
# Initialize with name
joelpkg init --name mypackage
# Initialize workspace
joelpkg init --workspaceInstall Dependencies
# Install all dependencies
joelpkg install
# Install specific package
joelpkg install math
# Install from registry
joelpkg install @joel/stdlib/math
# Install from Git
joelpkg install https://github.com/user/repo.git
# Install from local path
joelpkg install ../local-package
# Install dev dependencies
joelpkg install --dev test-frameworkAdd Dependencies
# Add dependency
joelpkg add math
# Add with version
joelpkg add math@1.2.0
# Add dev dependency
joelpkg add --dev test-framework
# Add from registry
joelpkg add @joel/stdlib/httpRemove Dependencies
# Remove package
joelpkg remove math
# Remove dev dependency
joelpkg remove --dev test-frameworkVersion Management
# Show package version
joelpkg version
# Bump version
joelpkg version patch # 1.0.0 -> 1.0.1
joelpkg version minor # 1.0.0 -> 1.1.0
joelpkg version major # 1.0.0 -> 2.0.0
# Set version
joelpkg version set 1.2.3Publishing
# Publish package
joelpkg publish
# Publish to registry
joelpkg publish --registry https://registry.joel-lang.org
# Publish with tag
joelpkg publish --tag beta
# Dry run (test publish)
joelpkg publish --dry-runWorkspaces
Manage multi-package workspaces:
# Create workspace
joelpkg workspace create monorepo
# Add package to workspace
joelpkg workspace add packages/utils
# List workspace packages
joelpkg workspace list
# Run command in all packages
joelpkg workspace run build
# Install all workspace dependencies
joelpkg workspace installLock Files
Manage dependency lock files:
# Generate lock file
joelpkg lock
# Update lock file
joelpkg lock --update
# Verify lock file
joelpkg lock --verifyPackage Registry
Interact with package registry:
# Search packages
joelpkg search math
# Show package info
joelpkg info math
# Show package versions
joelpkg versions math
# Login to registry
joelpkg login
# Logout from registry
joelpkg logoutExamples
Create New Package
# Initialize package
joelpkg init --name mymath
# Add dependencies
joelpkg add @joel/stdlib/core
# Build package
joelpkg build
# Publish package
joelpkg publishPackage Configuration
package.joel:
package {
name: "mymath",
version: "1.0.0",
description: "Math utilities for JOEL",
author: "Your Name",
license: "MIT",
dependencies: {
"@joel/stdlib/core": "^1.0.0"
},
devDependencies: {
"@joel/test": "^1.0.0"
}
}Command Reference
Package Commands
joelpkg init- Initialize packagejoelpkg install- Install dependenciesjoelpkg add <package>- Add dependencyjoelpkg remove <package>- Remove dependencyjoelpkg update- Update dependencies
Version Commands
joelpkg version- Show versionjoelpkg version patch|minor|major- Bump versionjoelpkg version set <version>- Set version
Publish Commands
joelpkg publish- Publish packagejoelpkg unpublish- Unpublish package
Workspace Commands
joelpkg workspace create <name>- Create workspacejoelpkg workspace add <path>- Add packagejoelpkg workspace list- List packagesjoelpkg workspace run <command>- Run in all packages