Commit Graph

5 Commits

Author SHA1 Message Date
Alberto Schiabel 15a03c10fb ci: add dead-code detection (knip + vulture + orphaned-CI check) (#3787)
## What

Adds a **report-only** `Dead Code` CI workflow that surfaces
likely-orphaned code on every PR, across all three surfaces —
TypeScript, Python, and GitHub Actions. Follow-up to the root
`Dockerfile` cleanup (#3783) and the dead-code sweep in #3786: instead
of finding this stuff by hand, catch it automatically.

| Surface | Tool | Wiring |
|---|---|---|
| TypeScript | [**knip**](https://knip.dev) | `knip.json`; runs via
`pnpm dlx knip@5`. Finds unused files, exports, types, and dependencies.
|
| Python | [**vulture**](https://github.com/jendrikseipp/vulture) |
`dead_code` nox session + `make dead-code`; allowlist at
`python/config/vulture_allowlist.py`. Finds unused
functions/classes/variables (complements Ruff's F401/F841). |
| GitHub Actions | small bash script |
`.github/scripts/check-orphan-ci.sh` — flags reusable workflows and
composite actions with no callers. |

## Why report-only (not blocking)

Every job writes findings to the run's **Step Summary** and **never
fails the build**. These tools carry unavoidable false positives on a
library monorepo — public API surface, dynamic imports, import-map
targets (e.g. core's `#platform`), framework entry points. A red ❌ on
false positives would just train everyone to ignore the check. Once a
job's config is refined enough that a clean run is the steady state, it
can be flipped to blocking.

## Validation (ran each locally)

- **knip**: 0 unused *files* after scoping out the e2e-test workspaces
(knip crashes traversing `ts/e2e-tests/**` — pre-existing knip bug,
filed via `ignoreWorkspaces`) and build/docs artifacts. Export/dep
categories surface advisory items.
- **vulture**: clean run (report-only); allowlist suppresses the 3
`TYPE_CHECKING` re-exports in `custom_tool.py`; `build/`/`dist/`
excluded. Surfaces 4 genuine minor items (`bases`, `desc`×3).
- **orphan-CI script**: finds none — the repo has no orphaned CI
plumbing today.
- **Pinning**: `jk actions check` clean for this workflow;
`actions/checkout` is SHA-pinned, the two local composite actions need
no pin.

Local usage is documented under **Dead code detection** in
`CONTRIBUTING.md`.

## Note on scope

These cover TS/Python/GHA — they would *not* have caught the root
`Dockerfile` itself (an arbitrary root file no tool tracks). That class
stays a manual-review concern; the orphan-CI script is the closest
analogue for the CI surface.
2026-07-10 02:17:54 +04:00
Alberto Schiabel f254d1333a docs: update contributing guide for current repo (#3651)
This PR:

- supersedes https://github.com/ComposioHQ/composio/pull/3535 and
credits @eldar702 for the original `CONTRIBUTING.md` refresh
- closes https://github.com/ComposioHQ/composio/issues/3487
- refreshes the repo layout around `ts/`, `python/`, `docs/`, and root
release/install tests
- documents the current `mise.toml` toolchain and removes stale
Corepack, `.nvmrc`, `.bun-version`, and top-level `packages/` guidance
- replaces the strict file-header requirement with current
TypeScript/Python coding standards
- adds current TypeScript e2e, Python, docs-site, changeset, and
release-doc pointers
- verifies documented paths, package scripts, Python make targets,
Prettier, and whitespace checks locally

Co-authored-by: Eldar Shlomi <eldarshlomi7@gmail.com>
2026-06-24 21:32:26 +04:00
Kanak Waradkar 4b8c0360b5 fix: correct clone instructions for contributors
Previous git clone commands were:
git clone https://github.com/YOUR_USERNAME/sdk-v3.git
cd sdk-v3
which were not appropriate and are now fixed to:
git clone https://github.com/YOUR_USERNAME/composio.git
cd composio
2025-09-24 13:38:47 +05:30
Abhishek Patil 5f09df3814 fix: GitHub issue link in CONTRIBUTING.md (#1974) 2025-09-23 12:20:25 +05:30
haxzie 6dc0c93c3f Create extensive docs 2025-05-28 18:02:48 +05:30