treelite icon indicating copy to clipboard operation
treelite copied to clipboard

Tracking issue for Treelite 3.9 and 4.0

Open hcho3 opened this issue 1 year ago • 0 comments

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

  • [x] Create new repository dmlc/tl2cgen
  • [x] Set up directory skeleton for C++ source files
  • [x] Set up CMake build
  • [x] Set up directory skeleton for Python package
  • [x] Set up pyproject.toml and PEP 517 backend
  • [x] 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.
  • [x] Make dmlc/tl2cgen public
  • [x] Migrate relevant issues from dmlc/treelite to dmlc/tl2cgen
  • [x] Set up a working Sphinx doc
  • [x] Create a 0.1 release for tl2cgen
  • [x] Publish tl2cgen to PyPI
  • [x] Submit a pull request to Conda-forge's staged recipes repo

Release Treelite 3.9

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

Release Treelite 4.0

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

Tasks for Treelite 4.0

  • [x] #489
  • [x] #503
  • [x] #515
  • [ ] #469
  • [x] Breaking change: #463
  • [x] Breaking change: #445
  • [x] Breaking change: #467
  • [x] #446
  • [x] #429
  • [x] #426
  • [x] Breaking change: #468
  • [x] #492
  • [ ] #517

hcho3 avatar Mar 28 '23 03:03 hcho3