← Back to Site Policy
Cryo Lab Marketplace
Publishing Guidelines
Last updated: November 2024
These guidelines help ensure that all Packages on the Cryo Lab Marketplace maintain high quality standards and provide value to the community. Please read them carefully before publishing.
1. Package Naming
1.1 Naming Convention
All packages must follow the naming convention:
Must start with the cryo- prefix
Use lowercase letters, numbers, and hyphens only
Be descriptive and indicate the package's purpose
Maximum 50 characters
Good examples: cryo-shader-utils, cryo-scene-graph, cryo-texture-loader
Bad examples: my-module, CryoUtils, cryo_shader, cryo-awesome-super-mega-ultra-module-v2
1.2 Reserved Names
The following name patterns are reserved:
cryo-core-* - Reserved for official core modules
cryo-official-* - Reserved for official packages
cryo-lab-* - Reserved for Cryo Lab system packages
2. Package Structure
2.1 Required Files
Every package must include:
package.json with valid metadata
README.md with documentation
LICENSE file with your chosen license
Main entry point (as specified in package.json)
2.2 package.json Requirements
Your package.json must include:
{
"name": "cryo-your-module",
"version": "1.0.0",
"description": "A clear, concise description",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"license": "MIT",
"author": "Your Name",
"keywords": ["cryo-lab", "your", "keywords"],
"repository": {
"type": "git",
"url": "https://github.com/username/repo"
},
"engines": {
"node": ">=18.0.0"
},
"peerDependencies": {
"cryo-lab": "^1.0.0"
}
}
2.3 Recommended Structure
cryo-your-module/
├── src/
│ ├── index.ts
│ └── ...
├── dist/
│ ├── index.js
│ └── index.d.ts
├── tests/
│ └── ...
├── package.json
├── README.md
├── LICENSE
├── CHANGELOG.md
└── tsconfig.json
3. Documentation Requirements
3.1 README.md
Your README must include:
Package name and brief description
Installation instructions
Basic usage examples with code
API documentation or link to docs
Cryo Lab version compatibility
License information
3.2 Code Comments
For TypeScript packages:
Use JSDoc comments for all public APIs
Include type definitions (.d.ts files)
Document parameters, return values, and exceptions
4. Code Quality Standards
4.1 General Requirements
Code must be functional and tested
No syntax errors or runtime crashes
Follow consistent coding style (ESLint recommended)
Use TypeScript for type safety (strongly recommended)
4.2 Security Requirements
No hardcoded credentials or secrets
No network requests without user consent disclosure
No file system access outside designated directories
No execution of arbitrary code from external sources
Dependencies must be from trusted sources
Security Note: Packages with security vulnerabilities will be immediately unpublished. Repeated violations may result in account suspension.
4.3 Performance Guidelines
Optimize for Cryo Lab's real-time rendering environment
Avoid blocking operations in render loops
Use async/await for I/O operations
Minimize memory allocations in hot paths
Document performance characteristics
5. Versioning
5.1 Semantic Versioning
All packages must follow Semantic Versioning :
MAJOR (1.x.x): Breaking changes
MINOR (x.1.x): New features, backward compatible
PATCH (x.x.1): Bug fixes, backward compatible
5.2 Pre-release Versions
Use pre-release identifiers for unstable versions:
1.0.0-alpha.1 - Early development
1.0.0-beta.1 - Feature complete, testing
1.0.0-rc.1 - Release candidate
5.3 Changelog
Maintain a CHANGELOG.md file documenting all changes between versions.
6. Vue.js Project Guidelines
6.1 Structure
Vue.js projects should follow Vue 3 best practices:
Use Composition API
Include TypeScript support
Provide props/emits documentation
Support both light and dark themes (matching Cryo Lab)
6.2 Styling
Use scoped styles to avoid conflicts
Follow the Cryo Lab design system where applicable
Support CSS custom properties for theming
7. Dependencies
7.1 Dependency Guidelines
Minimize the number of dependencies
Use only well-maintained, trusted packages
Pin dependency versions appropriately
Regularly update dependencies for security
7.2 Peer Dependencies
Use peer dependencies for:
Cryo Lab core packages
Vue.js (for Vue components)
Any shared dependencies with the host application
8. Testing
While not strictly required, we strongly recommend:
Unit tests for core functionality
Integration tests with Cryo Lab
Documented test coverage
CI/CD pipeline for automated testing
9. Prohibited Practices
The following will result in immediate package removal:
Cryptocurrency miners or resource hijacking
Data collection without disclosure
Obfuscated code hiding malicious functionality
Packages that modify Cryo Lab core without consent
Name squatting or trademark infringement
Spam or duplicate packages
Packages with misleading descriptions
10. Review Process
10.1 Automated Checks
All packages undergo automated validation:
Package structure verification
Malware scanning
Dependency vulnerability scanning
License compatibility check
10.2 Manual Review
Packages may be subject to manual review for:
First-time publishers
Packages with native code
Packages requesting elevated permissions
Flagged or reported packages
11. Pre-Publish Checklist
Before publishing, verify:
Package name follows naming convention
package.json contains all required fields
README.md is complete and accurate
LICENSE file is included
All code is tested and functional
No security vulnerabilities in dependencies
Version number is correct (semver)
CHANGELOG.md is updated
No sensitive data or credentials included
Build artifacts are included (if applicable)
12. Support & Community
As a publisher, we encourage you to:
Respond to user issues and questions
Accept and review pull requests
Maintain your packages regularly
Mark packages as deprecated when no longer maintained
Participate in the Cryo Lab community
13. Contact
For questions about these guidelines or the publishing process, please visit our contact page .
© Patrice Chevillat. All rights reserved.