Open
Description
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 totl2cgen_runtime
and will be moved to thetl2cgen
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
- Replace setup.py with pyproject.toml #489
- Document Treelite serialization format. #503
- Implement v4 serialization format #515
- Documentation for library writers #469
- Breaking change: Update task_type enum to distinguish between regressors and binary classifiers #463
- Breaking change: Allow vector global_bias #445
- Breaking change: Add first-class support for multi-output models in Treelite 4.0 #467
- Support boosting from the average in sckit-learn #446
- Set up pre-commit hook to automatically check formatting #429
- Reformat Python code with black and isort #426
- Breaking change: API refactors #468
- Treelite crashes with XGBoost 2.0 dev #492
- Revamp JSON importer to make it easy to use #517
Metadata
Metadata
Assignees
Labels
No labels