diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..912e377 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,36 @@ +--- +name: Bug Report +about: Report a bug in the LLMs.txt extension +title: "[BUG] " +labels: bug +assignees: '' +--- + +## Environment + +- **TYPO3 version**: (e.g., 13.4.2) +- **PHP version**: (e.g., 8.3) +- **Extension version**: (e.g., 1.0.7) +- **Web server**: (e.g., Apache, nginx) + +## Description + +A clear and concise description of the bug. + +## Steps to Reproduce + +1. ... +2. ... +3. ... + +## Expected Behavior + +What you expected to happen. + +## Actual Behavior + +What actually happened. Include error messages or log output if available. + +## Additional Context + +Add any other relevant information, screenshots, or configuration details. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..0b894be --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,23 @@ +--- +name: Feature Request +about: Suggest a new feature or improvement +title: "[FEATURE] " +labels: enhancement +assignees: '' +--- + +## Problem + +A clear description of the problem or limitation this feature would address. + +## Proposed Solution + +Describe the feature or change you would like. + +## Alternatives Considered + +Any alternative solutions or workarounds you have considered. + +## Additional Context + +Add any other context, mockups, or examples. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..223752f --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,23 @@ +## Description + +Brief description of the changes in this PR. + +## Related Issue + +Closes # + +## Type of Change + +- [ ] Bug fix +- [ ] New feature +- [ ] Refactoring (no functional change) +- [ ] Documentation + +## Checklist + +- [ ] Unit tests pass (`vendor/bin/phpunit --configuration=phpunit.xml`) +- [ ] PHPStan clean (`vendor/bin/phpstan analyse --configuration=phpstan.neon`) +- [ ] PHP-CS-Fixer clean (`vendor/bin/php-cs-fixer fix --dry-run`) +- [ ] Rector clean (`vendor/bin/rector process --dry-run --config=rector.php`) +- [ ] New/changed functionality includes tests +- [ ] Documentation updated (if applicable) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..585d0dd --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,98 @@ +# Contributing to LLMs.txt for TYPO3 + +Thank you for considering a contribution! This guide explains how to get started. + +## Branching Model + +1. Fork the repository on GitHub. +2. Create a feature branch **from `develop`**: `git checkout -b feature/my-change develop` +3. Open a pull request **targeting `develop`**. +4. The `main` branch is protected and only updated via reviewed PRs from `develop`. + +## Development Setup + +### Option A: DDEV (recommended) + +```bash +git clone https://github.com//llms-txt.git +cd llms-txt +ddev start +ddev composer install +``` + +### Option B: Standalone Composer + +```bash +git clone https://github.com//llms-txt.git +cd llms-txt +composer install +``` + +## Running Tests + +```bash +vendor/bin/phpunit --configuration=phpunit.xml +``` + +## Code Quality + +All checks must pass before a PR can be merged. + +### PHPStan (level 8) + +```bash +vendor/bin/phpstan analyse --configuration=phpstan.neon +``` + +### PHP-CS-Fixer + +```bash +# Check only +vendor/bin/php-cs-fixer fix --dry-run + +# Auto-fix +vendor/bin/php-cs-fixer fix +``` + +### Rector + +```bash +# Check only +vendor/bin/rector process --dry-run --config=rector.php + +# Auto-fix +vendor/bin/rector process --config=rector.php +``` + +## Coding Standards + +- PSR-12 coding style (enforced via PHP-CS-Fixer `@PER-CS` rule set) +- `declare(strict_types=1);` in every PHP file +- Full type hints on all parameters and return types +- PHPStan level 8 with zero errors +- PHPUnit 10+ attributes (`#[Test]`, `#[DataProvider]`) + +## Pull Request Checklist + +Before submitting your PR, please confirm: + +- [ ] All unit tests pass (`vendor/bin/phpunit --configuration=phpunit.xml`) +- [ ] PHPStan reports no errors (`vendor/bin/phpstan analyse --configuration=phpstan.neon`) +- [ ] PHP-CS-Fixer reports no issues (`vendor/bin/php-cs-fixer fix --dry-run`) +- [ ] Rector reports no issues (`vendor/bin/rector process --dry-run --config=rector.php`) +- [ ] New features include tests +- [ ] Commit messages follow the format: `[TYPE] Short description` (e.g., `[BUGFIX] Fix cache key collision`) + +## Commit Message Prefixes + +| Prefix | Usage | +|--------------|------------------------------| +| `[FEATURE]` | New functionality | +| `[BUGFIX]` | Bug fix | +| `[TASK]` | Maintenance, refactoring | +| `[DOCS]` | Documentation only | +| `[RELEASE]` | Version release | + +## Questions? + +Open a [discussion](https://github.com/rtfirst/llms-txt/issues) or reach out via the issue tracker. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..c72cae2 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,30 @@ +# Security Policy + +## Reporting a Vulnerability + +If you discover a security vulnerability in this extension, **please do not open a public issue**. + +Instead, report it privately by emailing: + +**roland@tfirst.de** + +Include as much detail as possible: + +- Description of the vulnerability +- Steps to reproduce +- Affected versions +- Potential impact + +## Response Time + +- **Acknowledgement**: within 48 hours +- **Initial assessment**: within 7 days +- **Fix or mitigation**: as soon as reasonably possible, depending on severity + +## Supported Versions + +Security fixes are provided for the latest released version. Older versions may receive fixes on a case-by-case basis. + +## Disclosure + +We follow coordinated disclosure. Once a fix is released, we will credit the reporter (unless anonymity is requested) and publish details in the CHANGELOG.