### Todo #### Overall - [ ] Create the basic structure of the plugin. - [ ] Python version setup - [ ] Version Enum (alpha, rc, normal) - do not support automatic build for new python release - [ ] Build target platform setup - [ ] Platform-specific min sdk setting - [ ] Check Kotlin-side enabled build target - [ ] Hot reload / Code Push - [ ] Expose direct run button for hot reload server - [ ] SourceSet setup (dependencies) - [ ] implementation - [ ] integration - [ ] etcs (src/resource path, sourceset naming, ...) - [ ] Implement a setup for detecting and downloading necessary external tools. - [ ] Nuitka - [ ] Host Python - [ ] MSVC, Clang - [ ] Poetry or UV - [ ] Crossenv or something equivalent - [ ] Define behavior for different compilation modes (e.g., debug/release, project flavors). - [ ] Support build variants - [ ] Support project flavors - [ ] Support methods per compile levels - [ ] instant (pure python) - [ ] bytecode (debug: .py+.pyc / release: .pyc only - use debugable flag internally for this so that users can override the settings) - [ ] mixed (compiled site-packages, pure user code) - [ ] native (fully compiled code via nuitka or lpython) #### Build Tools - [ ] Configure Nuitka as the primary build tool for Python files. - [ ] But, give option to choose different compile tool for future. * Description: Frontend(PyPackPack) <=> MiddleWare(Nuitka) <=> Backend(Clang, ...) - [ ] Create scripts for automating the setup of Nuitka and its dependencies. - [ ] Test the compatibility of generated builds with Android targets. - [ ] Python code minification ### Decisions - Determine the installation path for Python (and any user libraries). - Decide whether to extract libraries for every build or cache them locally. - Define the storage location for files required during the build process.
Todo
Overall
Build Tools
Decisions