-
Notifications
You must be signed in to change notification settings - Fork 18
Contributing
Philip Helger edited this page Mar 2, 2026
·
1 revision
Contributions to phoss-ap are welcome! Whether you are a Peppol service provider, an integrator, or a developer interested in e-invoicing infrastructure, there are many ways to get involved.
Contributions are not limited to core code. Here are some areas where help is appreciated:
- Fixing bugs -- Reproduce, diagnose, and fix issues reported in the issue tracker.
- Improving documentation -- Clarify existing wiki pages, add missing details, or fix inaccuracies.
- Adding deployment examples -- Docker, Kubernetes, systemd, cloud-specific deployment guides, etc.
- Writing integration guides -- Walkthroughs for connecting phoss-ap with specific ERP systems, document platforms, or national Peppol infrastructures.
- Adding test cases -- Increase test coverage for existing modules, especially edge cases in retry logic, duplicate detection, and MLS handling.
- Performance tuning -- Profiling, benchmarking, and optimizing database queries, connection pooling, or AS4 message processing.
- Security improvements -- Reviewing configuration defaults, hardening deployment guides, or identifying potential vulnerabilities.
- Supporting new Peppol requirements -- Implementing changes from new Peppol Network Policy releases, updated MLS specifications, or new document types.
- Fork the repository and clone it locally.
- Build the project:
mvn clean install -DskipTests - Review the Maven Module Structure to understand how the codebase is organized.
- Read the Architecture Overview for a high-level understanding of the system.
- Look for issues labeled
good first issuein the issue tracker -- these are scoped tasks suitable for newcomers. - Issues labeled
help wantedindicate areas where maintainer bandwidth is limited and community contributions are especially welcome. - If you want to work on something not yet tracked, open an issue first to discuss the approach.
- Create a feature branch from
main. - Keep commits focused -- one logical change per commit.
- Ensure the project compiles:
mvn clean compile - Run existing tests:
mvn test(if applicable) - Open a pull request with a clear description of what the change does and why.
- Java 21 language level, runs with latest Java LTS version
- No need to follow the existing code style - my formatter will resolve it afterwards
- Use constants from
APConfigurationPropertiesfor all configuration keys -- no hardcoded strings in business logic. - No Spring dependencies outside
phoss-ap-webapp.
When reporting a bug, please include:
- Steps to reproduce the problem.
- Expected vs. actual behavior.
- Relevant log output or stack traces.
- phoss-ap version and Java version.
It is appreciated if you star the GitHub project if you like it.
Donation link: https://paypal.me/PhilipHelger
- Home
- News and noteworthy
- Running phoss AP
- Architecture Overview
- API Specification
- Configuration Properties
- Code Lists
- Database Design Notes
- Maven Module Structure
- Runtime Extensions
- OpenTelemetry Integration
- Security Considerations
- Peppol Specifics
- Testing Without Peppol Network
- Known Users
- Migrating from phase4-peppol-standalone
- Contributing