python -m venv .venv && source .venv/bin/activate
make install# DigitalOcean
(cd examples/digital_ocean && make dev)
# Django
(cd examples/django && make dev)
# FastAPI
(cd examples/fast_api && make dev)
# Flask
(cd examples/flask && make dev)
# Tornado
(cd examples/tornado && make dev)Run before committing:
make pre-commitRun things individually:
make format-check
make lint
make type-check
make utest
# Changes code
make format
# Unit tests
make utest
# Integration tests
make itestWhen running make itest, there are some optional env vars:
# Disable (when you want to use an already-running Dev Server)
DEV_SERVER_ENABLED=0
# Specify port (uses a random available port by default)
DEV_SERVER_PORT=9000
# Show Dev Server stdout and stderr
DEV_SERVER_VERBOSE=1Change the package version in pyproject.toml and const.py.
Create and push a git tag that matches the package version. For example, the following command tags and releases version 1.2.3:
(export TAG=1.2.3 && git tag $TAG && git push origin $TAG)This will start CI for the tag, including publishing to PyPI.
ℹ️ Some modules have a
_libsuffix. The only purpose of this suffix is to avoid collisions with common variable names.
client_lib: Inngest client, which users can use to send events.comm: Framework agnostic communication layer between the Executor and functions.env: Stuff related to the runtime environment.function: Data structure for the user's functions.net: General networking stuff. Should not have business logic.result: Wrapper types for writing Rust-like errors-as-values code. Will probably expand its use.types: Low-level primitives for type annotations. Should not have business logic.
Kill orphaned Dev Servers using kill -9 $(pgrep inngest-cli).