Skip to content

Latest commit

 

History

History
171 lines (113 loc) · 3.45 KB

File metadata and controls

171 lines (113 loc) · 3.45 KB

Contributing to nr-vault

Thank you for your interest in contributing to nr-vault! This document provides guidelines and information for contributors.

Code of Conduct

Please be respectful and constructive in all interactions. We welcome contributions from everyone.

Getting Started

Prerequisites

  • PHP 8.2 or higher
  • Composer 2.x
  • TYPO3 v13.4 or v14
  • Docker and DDEV (recommended for local development)

Development Setup

  1. Clone the repository:

    git clone https://github.com/netresearch/t3x-nr-vault.git
    cd nr-vault
  2. Install dependencies:

    composer install
  3. Start the development environment (if using DDEV):

    ddev start
    ddev composer install

Development Workflow

Branch Naming

Use descriptive branch names with prefixes:

  • feature/ - New features
  • fix/ - Bug fixes
  • docs/ - Documentation updates
  • refactor/ - Code refactoring
  • test/ - Test additions or fixes

Commit Messages

Follow Conventional Commits:

feat: add secret rotation support
fix: resolve memory leak in encryption service
docs: update installation instructions
test: add unit tests for VaultService
refactor: simplify access control logic

Code Style

This project follows PER-CS 2.0 coding standards. Run the fixer before committing:

composer cs-fix

Check for code style issues:

composer cs-check

Static Analysis

We use PHPStan at the maximum level (10). Run analysis:

composer phpstan

Testing

Run all tests:

composer test

Run specific test suites:

# Unit tests
composer ci:test:php:unit

# Functional tests
composer ci:test:php:functional

Pull Request Process

  1. Fork and branch: Create a feature branch from main

  2. Make changes: Implement your changes following the coding standards

  3. Test: Ensure all tests pass and add new tests for your changes

  4. Commit: Use conventional commit messages

  5. Push: Push your branch to your fork

  6. Open PR: Create a pull request with:

    • Clear description of changes
    • Link to any related issues
    • Screenshots for UI changes

PR Requirements

  • All tests pass
  • PHPStan reports no errors
  • Code style is correct
  • Documentation is updated (if applicable)
  • CHANGELOG.md is updated

Reporting Issues

Bug Reports

When reporting bugs, please include:

  • TYPO3 version
  • PHP version
  • Steps to reproduce
  • Expected behavior
  • Actual behavior
  • Error messages (if any)

Feature Requests

For feature requests, please describe:

  • The problem you're trying to solve
  • Your proposed solution
  • Alternative solutions considered

Security Vulnerabilities

DO NOT create public issues for security vulnerabilities.

Use GitHub's private security reporting feature: Report a vulnerability

See SECURITY.md for details.

Documentation

  • Update documentation for any user-facing changes
  • Use RST format in Documentation/ directory
  • Keep README.md synchronized with documentation

License

By contributing, you agree that your contributions will be licensed under the GPL-2.0-or-later license.

Questions?

If you have questions about contributing, please open a discussion on GitHub.


Thank you for contributing to nr-vault!