Directory Comparison
SPECS
Production-ready packages with full support, timely CVE patches, and quality guarantees
SPECS-EXTENDED
Experimental packages for proof-of-concept, testing, and staging before promotion
Detailed Comparison
| Feature | SPECS | SPECS-EXTENDED |
|---|---|---|
| Published | ✅ Yes | ✅ Yes |
| Supported | ✅ Yes | ❌ No |
| CVE Maintenance | Timely patches required | Best effort only |
| Quality Requirements | Strict | Relaxed |
| Use Cases | Production systems | Development, experimentation |
| Viable Upstream | ✅ Required | ✅ Required |
| Project-Specific Code | ❌ Not allowed | ❌ Not allowed |
| Multiple Use Cases | ✅ Required | Not required |
SPECS Directory
TheSPECS directory contains packages that meet Azure Linux’s production quality standards.
Requirements
Viable Upstream Source
Viable Upstream Source
The package must have an active upstream project that:
- Regularly releases security updates
- Actively addresses CVE reports
- Maintains source code availability
- Provides reasonable support for users
No Project-Specific Code
No Project-Specific Code
Packages must be general-purpose software, not custom code for specific projects or organizations. This ensures broad applicability.
Multiple Use Case Value
Multiple Use Case Value
The package should provide value across different scenarios and user groups, not just a single narrow use case.
Test Coverage
Test Coverage
Packages must include a
%check section in the SPEC file that validates functionality during builds.Example Packages
SPECS-EXTENDED Directory
TheSPECS-EXTENDED directory serves as a staging area and experimental zone for packages.
Use Cases
New Package Testing
Test new packages before promoting to SPECS
Experimental Features
Try cutting-edge versions or experimental builds
Niche Software
Packages useful for specific scenarios
Development Tools
Tools needed for development but not production
Requirements
Viable upstream source with active CVE management
No project-specific code
Example Packages
Package Graduation Process
Packages can be promoted from SPECS-EXTENDED to SPECS when they demonstrate value and meet requirements.Add Changelog Entries
Document the promotion with these entries:
- “Package promoted from SPECS-EXTENDED to SPECS”
- “License verified”
Example Graduation PR Changes
- SPEC File Changes
- Directory Move
- Test Addition
Choosing the Right Directory
Use this decision tree to determine where your package belongs:Start in SPECS-EXTENDED if you’re unsure. You can always graduate packages later after proving their value and stability.
Best Practices
For SPECS Packages
- Monitor CVE databases regularly
- Keep patches up-to-date
- Maintain comprehensive tests
- Document all changes thoroughly
For SPECS-EXTENDED Packages
- Mark experimental status clearly
- Document known limitations
- Track graduation criteria
- Keep upstream in sync
Common Questions
Can I use SPECS-EXTENDED packages in production?
Can I use SPECS-EXTENDED packages in production?
While SPECS-EXTENDED packages are published and installable, they are not recommended for production use because they lack guaranteed CVE support and may have stability issues.
How long does graduation take?
How long does graduation take?
Graduation timeline depends on:
- Complexity of the package
- Quality of test coverage
- Review team availability
- Community feedback
What happens if a SPECS package loses upstream support?
What happens if a SPECS package loses upstream support?
If upstream becomes inactive or stops addressing CVEs, the package may be:
- Moved to SPECS-EXTENDED
- Replaced with an alternative
- Removed entirely (with advance notice)
Can packages move from SPECS to SPECS-EXTENDED?
Can packages move from SPECS to SPECS-EXTENDED?
Yes, packages can be demoted if they:
- Lose active upstream maintenance
- No longer provide broad value
- Have persistent quality issues
- Are replaced by better alternatives
Next Steps
Creating SPEC Files
Learn how to write RPM SPEC files for both directories
Package Repository
Understand the repository structure and organization