Thanks for your interest. This repo ships two SDKs in parallel — Python and Node.js — that must stay behavior-aligned, so most non-trivial changes touch both sides.
cd python
make dev-setup # creates venv, installs package + test extras + tooling
source venv/bin/activate
make test # runs offline + integration
make lint # flake8
make type-check # mypycd nodejs
make install
make test # mocha (all tiers)
make lint # eslint
make test-types # tsdWhen you change behavior, change it in both SDKs in the same PR unless there is a documented reason not to. Common targets that must stay in sync:
- Error taxonomy (
AirportNotFoundError,LoginError,CloudflareError,FlightRadarError). RetryPolicysemantics (which exceptions are transient, backoff math).- Cloudflare detection rules.
- The public surface —
FlightRadar24APImethods, theCountriesenum,FlightTrackerConfigfields, and theEntity/Airport/Flightattributes consumers depend on.
- Python: flake8 + mypy.
- Node: eslint + tsd.
- Comments must explain why, not what. The codebase has a few exemplars in
request.py/request.js— read those before adding new comments.
- Use a descriptive title with a conventional-commits prefix (
fix:,feat:,refactor:,docs:,ci:,test:). - For new endpoints or behavior tweaks, add a regression test alongside.
Before publishing a new release, the version must be bumped. The version lives in two places:
python/FlightRadarAPI/__init__.py(__version__)nodejs/package.json(version)
- Bugs: open a GitHub issue with the bug report template.
- Security: see
SECURITY.md. Do not report via GitHub issues.