We should scrap the existing version of the directory, rebuild it from scratch using PHP, and begin automating processes.
Additionally, I believe we should move to a push-based model, where extension maintainers submit new versions directly to the directory instead of relying on GitHub release pulls.
- Managing release histories and artifacts ourselves would ensure they remain immutable and tamper-proof once added to the directory.
- We could allow maintainers to connect their CI/CD pipelines via actions so new versions can be automatically pushed upon tagging a release.
- We could have a version validation pipeline. When an extension is pushed, the directory should:
- Validate metadata (manifest.json, license, compatibility, etc.)
- Run automated tests or linting
- Perform a security scan for known vulnerabilities
We also should improve the integration within the FOSSBilling core:
- Auto-update integration: FOSSBilling installations should check for and install updates directly from the new directory.
- Allow all types of extensions, not just modules and payment gateways.
Additional features:
- A unified web interface for developers and FOSSBilling maintainers to manage extensions, view validation results, and monitor performance.
- Webhook notifications for new submissions, validation outcomes, and update approvals.
- Signing extensions to verify authenticity and ensure release integrity.
- Public metrics: Display download counts, update frequency, and release activity to improve transparency.
- Opt-in telemetry: Allow FOSSBilling instances to anonymously report active installation counts per extension, helping maintainers track real-world usage.
We should scrap the existing version of the directory, rebuild it from scratch using PHP, and begin automating processes.
Additionally, I believe we should move to a push-based model, where extension maintainers submit new versions directly to the directory instead of relying on GitHub release pulls.
We also should improve the integration within the FOSSBilling core:
Additional features: