Thank you for helping improve Secure Package. Changes to cryptographic code, parsing, archive extraction, authentication, filesystem handling, and release integrity require careful review.
- Search existing issues and pull requests to avoid duplicates.
- For substantial changes, open an issue first to discuss behavior and compatibility impact.
- Keep changes focused and separate unrelated refactors, UI work, and security changes.
- Never include credentials, recovery keys, generated package contents, private release keys, environment files, or runtime storage.
- Do not change serialized package formats, magic values, extensions, or compatibility behavior as part of unrelated cleanup.
- PHP 8.2 or later.
- PHP Sodium and Zip extensions.
- Node.js for browser JavaScript syntax and compatibility tests.
- Composer for dependency installation and auditing.
Install dependencies from the committed lockfile when available:
composer install --no-interaction --prefer-dist --no-progresscomposer validate --strict --no-check-publish
composer audit --no-interaction
php bin/self-check.php
php bin/source-audit.php
php bin/security-test.php --full
find app bin public tests -type f -name '*.php' -print0 | xargs -0 -n1 php -l
find public/client -type f -name '*.js' -print0 | xargs -0 -n1 node --check
node tests/BrowserV13RoundTripTest.mjsDo not claim a command passed unless it was executed successfully. If an extension or dependency is missing, state the limitation.
- Explain the problem and proposed solution.
- Link related issues.
- Include tests for changed behavior.
- Describe compatibility impact and migration requirements.
- Update documentation when user-visible behavior changes.
- Keep comments factual and actionable; do not add comments solely to increase activity counts.
- Never weaken a test merely to make CI pass.
The root VERSION file is the application release version source. Server and browser package-format identifiers are separate compatibility contracts; see VERSIONING.md.
For sensitive vulnerability details, follow SECURITY.md instead of posting them publicly.