This project requires Python 3.10+ and several runtimes for testing generated code.
Install Python 3.10 or later. The prerequisites are listed in requirements.txt:
pip install -r requirements.txtInstall the following runtimes separately:
| Runtime | Version | Purpose |
|---|---|---|
| .NET SDK | 6.0+ | C# code generation |
| OpenJDK | 21+ | Java code generation |
| Node.js | 14+ | TypeScript code generation |
| Go | 1.21+ | Go code generation |
| Docker | Latest | Test containers (brokers) |
For running tests that validate generated output, install these CLI tools:
npm install -g azure-functions-core-tools@4 --unsafe-perm true
npm install -g @asyncapi/cli
npm install -g @openapitools/openapi-generator-cliTests use PyTest with Docker-based testcontainers for message brokers (Kafka, MQTT, AMQP).
# Run all tests (30+ minutes)
pytest
# Run targeted tests (recommended)
pytest test/py/test_python.py::test_kafkaproducer_contoso_erp_py
# Always redirect output to preserve error details
pytest test/cs/test_csharp.py > tmp/test_output.txt 2>&1Important: Full test runs take 30+ minutes. Target specific tests when validating changes.
The generated C# code depends on an experimental extension to the C# CloudEvents SDK that is not yet available from NuGet.
Setup steps:
-
Create a local directory for extension packages and set the environment variable
CEDISCO_NUGET_LOCAL_FEEDto point to it. -
Clone the repository: CloudNative.CloudEvents.Endpoints
-
Build the project in the
sourcedirectory withdotnet buildand copy the resulting packages fromsource/packagesto your local feed directory.
The generated Java code depends on an experimental extension to the Java CloudEvents SDK that is not yet available from Maven Central.
Setup steps:
-
Clone the repository: io.cloudevents.experimental.endpoints
-
Build with
mvn installto install packages into your local Maven repository.
TypeScript templates require Node.js 14+ (already listed in Required Runtimes above). No additional dependencies are needed beyond the npm packages installed during project generation.