Skip to content

Tracking issue for Treelite 3.9 and 4.0 #465

Open
@hcho3

Description

@hcho3

As discussed in #438, we are spinning off the C codegen ("compiler") part of Treelite into a separate project (dubbed tl2cgen).

Goals

  • Keep Treelite small. It should do one thing well, namely serve as a universal exchange and serialization format for decision tree forests.
  • Hand off the control of tl2cgen to other contributor(s), as I do not have bandwidth to maintain it in the future.
  • Make it easy for other projects to adopt Treelite as serialization format.
  • Future-proof Treelite 4.0 by making breaking changes that will enable additional types of decision tree forests.

Functions to be migrated to tl2cgen + removed from Treelite 4.0

  • treelite.Annotator
  • treelite.Model.compile
  • treelite.Model.export_lib
  • treelite.Model.export_srcpkg
  • treelite.generate_makefile
  • The entire treelite_runtime package will be renamed to tl2cgen_runtime and will be moved to the tl2cgen project.
    • treelite_runtime.DMatrix
    • treelite_runtime.Predictor
  • The entire Java runtime will be moved to tl2cgen project.

Create new project tl2cgen

  • Create new repository dmlc/tl2cgen
  • Set up directory skeleton for C++ source files
  • Set up CMake build
  • Set up directory skeleton for Python package
  • Set up pyproject.toml and PEP 517 backend
  • Set up pytests. In particular, there should be integration tests to ensure that C codegen functions of Treelite can be replaced 1-to-1 with those in tl2cgen.
  • Make dmlc/tl2cgen public
  • Migrate relevant issues from dmlc/treelite to dmlc/tl2cgen
  • Set up a working Sphinx doc
  • Create a 0.1 release for tl2cgen
  • Publish tl2cgen to PyPI
  • Submit a pull request to Conda-forge's staged recipes repo

Release Treelite 3.9

  • Write a migration guide.
  • Add deprecation warnings to Model.export_lib and other related functions. Warnings should direct users to the migration guide.
  • Publish Treelite 3.9 to PyPI and Conda-forge

Release Treelite 4.0

  • Remove the functions in the list above.
  • Address the blockers (see below).
  • Create tl2cgen 0.2 to handle Treelite 4.0+ serialization format.
  • Publish Treelite 4.0 and tl2cgen 0.2 to PyPI and Conda-forge

Tasks for Treelite 4.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions