Package Management
Package Overview
Understand the package lifecycle, concepts, and management in Game Framework.
What is a Package?
A package is a reusable Flutter library that contains:
- Dart/Flutter code
- Assets and resources
- Documentation
- Metadata (pubspec.yaml)
- Multiple versions
Package Lifecycle
graph LR
Create[Create Package] --> Publish[Publish Version]
Publish --> Use[Use in Projects]
Use --> Update[Publish Update]
Update --> Use
Use --> Deprecate[Deprecate]
Deprecate --> Delete[Delete]1. Creation
curl -X POST https://registry.yourcompany.com/v1/workspaces/ws_ID/packages \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"name":"my_package","description":"My package"}'2. Publishing Versions
flutter pub publish --server=https://registry.yourcompany.com3. Distribution
Team members install via pubspec.yaml:
dependencies:
my_package:
hosted:
name: my_package
url: https://registry.yourcompany.com
version: ^1.0.04. Updates
Publish new versions:
# Update version in pubspec.yaml
version: 1.1.0
# Publish
flutter pub publish --server=https://registry.yourcompany.com5. Deprecation
Mark packages as deprecated:
curl -X POST https://registry.yourcompany.com/v1/packages/pkg_ID/deprecate \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"message":"Use new_package instead"}'6. Deletion
Permanently delete packages (requires owner permission):
curl -X DELETE https://registry.yourcompany.com/v1/packages/pkg_ID \
-H "Authorization: Bearer YOUR_TOKEN"Package Structure
my_package/
├── lib/
│ ├── my_package.dart # Main export file
│ └── src/
│ ├── feature_a.dart
│ └── feature_b.dart
├── test/
│ └── my_package_test.dart
├── example/
│ └── main.dart
├── CHANGELOG.md
├── LICENSE
├── README.md
└── pubspec.yamlPackage Metadata
Essential fields in pubspec.yaml:
name: my_package # Required: unique name
version: 1.0.0 # Required: semantic version
description: Description... # Required: 60+ characters
homepage: https://github... # Recommended
repository: https://github... # Recommended
publish_to: https://registry.yourcompany.com # Important!
environment:
sdk: '>=3.0.0 <4.0.0'
flutter: ">=3.10.0"
dependencies:
flutter:
sdk: flutterPackage Types
1. Pure Dart Packages
No Flutter dependency:
dependencies:
http: ^1.1.0
# No flutter dependency2. Flutter Packages
Depend on Flutter SDK:
dependencies:
flutter:
sdk: flutter3. Plugin Packages
Platform-specific code:
flutter:
plugin:
platforms:
android:
package: com.company.plugin
pluginClass: MyPlugin
ios:
pluginClass: MyPluginPackage Limits
| Plan | Max Packages | Storage | Bandwidth |
|---|---|---|---|
| Free | 5 | 5 GB | 50 GB/month |
| Pro | 50 | 100 GB | 500 GB/month |
| Enterprise | Unlimited | Unlimited | Unlimited |
See Billing Plans for details.
Package Operations
List Packages
curl https://registry.yourcompany.com/v1/workspaces/ws_ID/packages \
-H "Authorization: Bearer YOUR_TOKEN"Get Package Details
curl https://registry.yourcompany.com/v1/packages/my_package \
-H "Authorization: Bearer YOUR_TOKEN"Update Package Metadata
curl -X PATCH https://registry.yourcompany.com/v1/packages/pkg_ID \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"description":"Updated description"}'Search Packages
curl "https://registry.yourcompany.com/v1/packages?q=auth" \
-H "Authorization: Bearer YOUR_TOKEN"Next Steps
- Publishing Packages - Publish workflow
- Versioning - Semantic versioning guide
- Dependencies - Manage dependencies
Ready to publish? See Publishing Guide