[build-system] requires = ["maturin>=1.0,<2.0"] build-backend = "maturin" [project] name = "ruff" version = "0.7.2" description = "An extremely fast Python linter and code formatter, written in Rust." authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }] readme = "README.md" requires-python = ">=3.7" license = { file = "LICENSE" } keywords = [ "automation", "flake8", "pycodestyle", "pyflakes", "pylint", "clippy", ] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Rust", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Quality Assurance", ] [project.urls] Repository = "https://github.com/astral-sh/ruff" Documentation = "https://docs.astral.sh/ruff/" Changelog = "https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md" [tool.maturin] bindings = "bin" manifest-path = "crates/ruff/Cargo.toml" module-name = "ruff" python-source = "python" strip = true exclude = [ "crates/ruff_linter/resources/test/fixtures/**/*", "crates/ruff_linter/src/rules/*/snapshots/**/*" ] include = [ "rust-toolchain.toml" ] [tool.ruff] extend-exclude = [ "crates/red_knot_vendored/vendor/", "crates/ruff/resources/", "crates/ruff_linter/resources/", "crates/ruff_python_formatter/resources/", "crates/ruff_python_parser/resources/" ] [tool.ruff.lint] ignore = [ # Conflicts with the formatter "COM812", "ISC001" ] [tool.black] force-exclude = ''' /( | crates/red_knot_vendored/vendor | crates/ruff_linter/resources | crates/ruff_python_formatter/resources | crates/ruff_python_parser/resources )/ ''' [tool.rooster] major_labels = [] # Ruff never uses the major version number minor_labels = ["breaking"] # Bump the minor version on breaking changes changelog_ignore_labels = ["internal", "ci", "red-knot"] changelog_sections.breaking = "Breaking changes" changelog_sections.preview = "Preview features" changelog_sections.rule = "Rule changes" changelog_sections.formatter = "Formatter" changelog_sections.server = "Server" changelog_sections.cli = "CLI" changelog_sections.configuration = "Configuration" changelog_sections.bug = "Bug fixes" changelog_sections.documentation = "Documentation" changelog_sections.__unknown__ = "Other changes" # We exclude contributors from the CHANGELOG file # Generate separately with `rooster contributors` for the GitHub release page changelog_contributors = false version_files = [ "README.md", "docs/integrations.md", "crates/ruff/Cargo.toml", "crates/ruff_linter/Cargo.toml", "crates/ruff_wasm/Cargo.toml", "scripts/benchmarks/pyproject.toml", ]