Skip to content

Latest commit

 

History

History
94 lines (64 loc) · 1.94 KB

CONTRIBUTING.md

File metadata and controls

94 lines (64 loc) · 1.94 KB

Setup

python -m venv .venv && source .venv/bin/activate
make install

Start example servers

# 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)

Test

Run before committing:

make pre-commit

Run things individually:

make format-check
make lint
make type-check
make utest

# Changes code
make format

# Unit tests
make utest

# Integration tests
make itest

When 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=1

Publish

Change 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.

Architecture

Internal modules

ℹ️ Some modules have a _lib suffix. 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.

Troubleshooting

Kill orphaned Dev Servers using kill -9 $(pgrep inngest-cli).