langchain-ai/langchain
How to contribute
This section covers the conventions a contributor needs to know before opening a PR. All of it is enforced either by CI workflows in .github/workflows/ or by per-package lint rules.
The guidance below summarizes what's in CLAUDE.md / AGENTS.md at the repo root and adds pointers into the source.
- Development workflow — branch, code, test, PR, merge cycle
- Testing — unit vs integration, fixtures, snapshots, VCR
- Patterns and conventions — public API stability, type hints, docstrings
- Tooling —
uv,make,ruff,mypy, model-profile CLI, pre-commit
TL;DR for first-time contributors
- Find an issue tagged
good first issueor open one to discuss your change. - Fork, clone, branch.
cd libs/<package>for the package you're touching.uv sync --all-groupsto install everything in editable mode.- Make changes. Add tests in
tests/unit_tests/(andtests/integration_tests/if relevant). make format && make lint && make testfrom the package directory.- Open a PR with a Conventional Commits-style title (
feat(scope):,fix(scope):, …). - CI will run only the affected packages (driven by
.github/workflows/check_diffs.yml).
Code of conduct
The project follows a published Code of Conduct (linked from the GitHub repo's coc-ov-file tab). All contributions and review interactions are expected to be respectful and on-topic.
Where to ask questions
- Forum — https://forum.langchain.com
- Discord/Slack — links from the LangChain website
- GitHub Discussions — for design proposals or RFCs
For most code questions, opening a draft PR with a description of the problem is faster than waiting for a reviewer to chime in on a discussion thread.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.