Development documentation
This manual is for people working on Hop: contributors to the Hop codebase, and anyone writing a plugin for it. For using Hop, see the user manual.
New here?
Start with these, in order:
-
The Hop codebase — what the modules are and what lives where.
-
Setting up your development environment — IDE, fork, clone, formatting.
-
Building and testing — the Maven build, its profiles, and the checks that must pass.
-
Contributing changes — issues, pull requests, review.
If you came to write a plugin rather than to change Hop itself, read How plugins work and then find your plugin type in the plugin type catalogue.
The sections
- Getting started
-
Orientation, development environment, the build, how to contribute code and documentation.
- Architecture
-
How Hop works underneath: what happens when a pipeline runs, how variables and metadata resolve, how dependencies and classloaders are organised, logging and debugging, what to watch for on the row hot path, and what the security model means for a developer.
- Plugin development
-
The largest section, because almost everything in Hop is a plugin. The plugin type catalogue lists all of them; the pages around it go deeper on the ones with more to say — metadata, databases, value types, the GUI, i18n, engine compatibility — and on packaging and publishing a plugin.
- Testing
-
Unit tests, the integration test framework, and the SWTBot UI tests.
- Embedding and interfaces
-
Driving Hop from your own code with the SDK, the REST module, and Hop Web.
- Distribution and release
-
Container images and the Apache release process.
Something missing or wrong?
Pages in this manual are marked when they are still a scaffold rather than finished documentation. Filling one in is a genuinely useful contribution and a good first one — see Writing documentation.