#4177·pycaret

PyCaret 4.0 is here — repository cleanup notice

Author: moezali1Created Apr 27, 2026Updated Apr 27, 2026
LabelsAuthor's Announcement

PyCaret 4.0 is here — repository cleanup

TL;DR: PyCaret 4.0 is a ground-up rewrite. The old issue and PR backlog (~400 items, almost all against 3.x) is being closed in bulk so we can start clean. If your issue still affects you in 4.0, please re-file it as a new issue.

What is 4.0?

4.0 is a complete redesign, not a 3.x point release. The headlines:

  • OOP-only API. setup() / compare_models() as module-level calls were removed. You instantiate an experiment instead:
    python
    from pycaret.classification import ClassificationExperiment
    exp = ClassificationExperiment(target="y").fit(df)
    best = exp.compare_models().best
  • sklearn-native engine. Pipelines are real sklearn.Pipeline objects. Output is set_output("pandas")-compliant. CV uses cross_validate. No more bespoke wrappers.
  • Python 3.11+, sklearn ≥ 1.7. Older versions are not supported.
  • React + FastAPI dashboard. Replaces the ipywidgets evaluate_model panel.
  • A leaner dependency surface. ~30 transitive deps removed.

Full release notes (44 development sessions) are in the blog and docs/revamp/release_notes_pycaret4.md.

What was removed

Before filing a 4.0 issue about a missing feature, please check the What's removed section on the relevant function page:

  • Initialize (replaces setup())
  • Train (create_model, compare_models)
  • Optimize (tune_model, ensemble_model, blend_models, stack_models, calibrate_model)
  • Analyze (predict_model + pycaret.plots.*; replaces removed plot_model, evaluate_model, interpret_model)
  • Deploy (finalize_model, save/load_model, FastAPI snippet)
  • Other functions (pull, models, get/set_config, add_metric)

Most removed features have direct replacements (a sklearn API, a dedicated library, or a constructor parameter). If you can't find one, file a new issue and we'll restore it or document the workaround.

Where to find things now

What Where
Documentation https://pycaret.org/docs
API reference https://pycaret.org/reference
Tutorials https://pycaret.org/docs/getting-started/tutorials
Migrate from 3.x https://pycaret.org/docs/guides/migrating-from-3-x
FAQ https://pycaret.org/docs/resources/faqs
Cheat sheet https://pycaret.org/docs/resources/cheat-sheet
Changelog https://pycaret.org/changelog
Release notes https://pycaret.org/blog
Bug reports https://github.com/pycaret/pycaret/issues/new (this repo)
Q&A https://github.com/pycaret/pycaret/discussions

The legacy gitbook (pycaret.gitbook.io) is frozen and will not be updated. Everything 4.0 lives in this repo's apps/site/ directory and auto-deploys to pycaret.org on every push.

Why we're closing the old backlog

The pre-4.0 backlog is ~400 issues and ~35 PRs. Almost all of them:

  • Reference APIs that no longer exist (setup(), plot_model(), evaluate_model(), interpret_model(), automl(), the legacy time-series module, the Streamlit dashboard, etc.).
  • Predate Python 3.11 / sklearn 1.7.
  • Were filed against branches that no longer exist.
  • Have been stale for 1–4 years with no triage.

Keeping them open is misleading — it suggests they're being worked on, when they're not. Closing them en masse with a redirect to 4.0 is honest, and lets the few that still apply re-surface as fresh, properly-tagged 4.0 issues.

How to file a 4.0 issue

  1. Confirm you're on PyCaret 4.0 (pip install -U pycaret, pycaret.__version__ reports 4.0.x).
  2. Reproduce against the OOP API — Experiment(...), not setup().
  3. Open a new issue with:
    • the experiment constructor call,
    • the operation that fails,
    • the full traceback,
    • your Python / sklearn / pycaret versions.

Bug reports with reproductions get triaged within a week. Feature requests are weighed against the kill list — we're keeping the surface small on purpose.

Maintenance model

Going forward, this library is maintained primarily by AI coding agents (with human review on every change). All artifacts — code, docs, release notes, this announcement — live in the repo, are versioned in git, and are regenerated on each CI build. See apps/site/AGENTS.md for the agent contract.

If you want to contribute, the project is MIT-licensed and PRs against 4.0 are welcome. Start with a discussion or issue describing the change before opening a PR.

— Moez & the PyCaret 4.0 team