bokeh/bokeh
Grade a repo

96

/ 100

GradeA

A top-tier open source project. Docs, tests, and CI are all in excellent shape.

Top 5% of 5,156 graded repos

Interactive Data Visualization in the browser, from Python

TypeScript20,407BSD-3-Clause1mo ago

Outstanding. A score of 96/100 puts this repo in a very small tier of truly well-engineered projects.

Top fixes

Highest-impact changes first, ranked by point weight

4 to address
  1. 1
    Install and run instructions9pt

    Add a .env.example listing all required environment variables so contributors know what to set up.

  2. 2
    Reproducibility6pt

    Add a Dockerfile, .nvmrc, or .python-version to pin the runtime version and make the environment reproducible.

  3. 3
    Reproducibility6pt

    Add .github/dependabot.yml with at least one package-ecosystem entry so dependencies are updated automatically.

  4. 4
    Contributing guide5pt

    Move the file to the repo root or docs/CONTRIBUTING.md so its setup, style, test, and PR sections can be graded.

Working through the fixes? Let every push regrade itself.

The free GitHub App rescans this repo on every push and posts the grade as a commit check, so the score climbs without coming back to rescan by hand.

Install the GitHub App

Scorecard

Every check, grouped by category and sorted worst-first

Documentation

94

Contributing guide5pt77

CONTRIBUTING guide found.

Install and run instructions9pt90

README documents how to install the project.

README12pt100

README is present.

License6pt100

Licensed under BSD-3-Clause.

Engineering

96

Reproducibility6pt70

Lockfile present (bokehjs/package-lock.json). Installs are reproducible.

Tests18pt100

Test files detected (bokehjs/test).

CI/CD14pt100

CI is configured (.github/workflows/bokeh-ci-full.yml).

Linting and formatting5pt100

Linter or formatter configured (bokehjs/eslint.config.mjs).

Issue and PR templates6pt100

Issue or PR templates present.

Project health

100

Dependency manifest6pt100

Dependency manifest found (pyproject.toml).

Repository metadata5pt100

Repository has a description.

Activity5pt100

Actively maintained (pushed within the last month).

Housekeeping3pt100

.gitignore present.

Repository health signals

Activity, community, and responsiveness at scan time

Activity

  • 22 / 56
    Commits (30d / 90d)
  • 4,261
    Forks
  • 0
    Releases

Community

  • 100% - Good
    Community health
  • 2 bus factor
    authors own >50% of commits
  • 20,407
    Watchers

Responsiveness

  • 5d 5h
    Median issue response
  • 14h
    Median PR merge time
  • 897
    Open issues
Repository files17 root entries
  • .github
    Good: CONTRIBUTING guide found.
    Issue: CONTRIBUTING guide contents could not be read (−28 pts vs a readable file).Fix: Move the file to the repo root or docs/CONTRIBUTING.md so its setup, style, test, and PR sections can be graded.
    Good: CI is configured (.github/workflows/bokeh-ci-full.yml).
    Good: Issue or PR templates present.
  • bokehjs
    Good: Test files detected (bokehjs/test).
    Good: Linter or formatter configured (bokehjs/eslint.config.mjs).
    Good: Lockfile present (bokehjs/package-lock.json). Installs are reproducible.
  • conda
  • docs
    Good: Code of conduct present.
    Good: Security policy present.
  • examples
  • release
  • scripts
  • src
  • tests
  • .gitattributes
  • .gitignore
    Good: .gitignore present.
  • .pre-commit-config.yaml
  • LICENSE.txt
    Good: Licensed under BSD-3-Clause.
  • MANIFEST.in
  • pyproject.toml
    Good: Dependency manifest found (pyproject.toml).
  • README.md
    Good: README is present.
    Good: README is well structured with multiple sections.
    Good: README includes screenshots or visuals. Great for first impressions.
    Good: README has code examples.
    Good: README links to a live demo or deployed app.
    Good: README includes status badges.
    Good: README documents how to install the project.
    Good: README documents how to run the project.
  • setup.py
RepoGrade badge preview

Add this badge to your README

It updates automatically each time the repo is re-graded.

[![RepoGrade](https://www.repo-grade.com/api/badge/bokeh/bokeh)](https://www.repo-grade.com/report/bokeh/bokeh)

More graded TypeScript repos