Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking issue for Treelite 3.9 and 4.0 #465

Open
30 of 32 tasks
hcho3 opened this issue Mar 28, 2023 · 0 comments
Open
30 of 32 tasks

Tracking issue for Treelite 3.9 and 4.0 #465

hcho3 opened this issue Mar 28, 2023 · 0 comments

Comments

@hcho3
Copy link
Collaborator

hcho3 commented Mar 28, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant