Replies: 6 comments 6 replies
-
+1 for the strategy steps. No core feature updates at the moment, first get the build pipeline, platforms and dependencies updates, then resume work on the core. From my past expierence with development, the first pain point mentioned above is something I am also thinking about. Not just because of the BlendLuxCore + wheels system, but also because of Blenders new extension system. Maybe I just still need to understand it better, but still I'm wondering at the moment:
Before working on new core features, it would also be helpful to clear out the GitHub issues. Either by fixing what is possible, closing what became obsolete, or otherwise transfer it to. This is also a bit of a question of personal taste, i.e. are issues just for bugs, or also feature requests, or other ToDo-lists? At the moment, it even contains rather trivial things such as "improve documentation", which is a neverending topic and within issues quickly drops to the very bottom.
|
Beta Was this translation helpful? Give feedback.
-
Totally agree with LTS considerations. VFX however may conflict with wheel and Github ecosystem (especially compilers versions): to be kept as a guidance, maybe.
Very good idea! We could package the core of BlendLuxCore as a Python package and just distribute a "boot" module, that
a is right. b and c would be slightly different from what you're describing, though. In fact, building the core for development and building the wheels cannot be sequential. Building wheels amounts to building the core for a complete matrix of <platform / Python version> configurations and, what's more, under very standardized conditions (see pypa manylinux on this subject).
I totally agree. It's not a task I particularly enjoy, but it's really necessary! And same opinion as yours about Discord... |
Beta Was this translation helpful? Give feedback.
-
Great attention to detail! I can confirm with you guys and especially with bug (issues) fixes... |
Beta Was this translation helpful? Give feedback.
-
@ALL, This post outlines an action plan to overhaul the LuxCore build system, starting with the wheel maker (https://github.com/howetuft/LuxCoreWheel). Guidelines for the New Build System
Build System Action Plan
Additional Proposals:
|
Beta Was this translation helpful? Give feedback.
-
Picking up on some comments regarding automatic updates in this issue: #948 There it is mentioned that latest versions of the wheel will be fetched automatically, i.e. an auto-update mechanism. That is, assuming that I understood it correctly. Such auto-updates should be carefully considered. Users working on large production projects would not like it if there are changes that affect the rendering output. Doesn't matter if this is due to bugfixes, feature deprecation or new implementations (that could not be done with backward-compatibility with reasonable effort). Of course, we always want to avoid breaking changes, but its bound to happen sometimes. Same point when it comes to compatibility with multiple Blender LTS versions. This will be covered by separate wheel distributions. Also for development/bugfixing we need control which subversion to use when analyzing bug reports. |
Beta Was this translation helpful? Give feedback.
-
Plus to it we also need to add release notes features when will be a new releases: what is fixed, whas is added or like so. P.s.: Blender Projects platform like Gitea has this kind of issues: |
Beta Was this translation helpful? Give feedback.
-
Proposed Plan to Get LuxCore "Back on Track"
Dear all,
Following our discussions on Discord, I would like to present a proposed plan to get LuxCore fully functional again now and in the future.
Diagnosis (as of early 2025)
LuxCore development has been halted for several months, and most of the core developers have left the project. The consequences are as follows:
What we still have
pyluxcore.so
for four platforms, against the latest versions of dependencies, and packages it into Python wheel format ("wheels"). These wheels have been published on PyPI.About the Wheel Maker
Strengths:
for_blender4.1
branch of LuxCore (no dedicated branch yet, though this has resulted in some patches).Pain Points:
sed
and similar tools) to adapt it to new dependency versionsThose limitations are not definitive and mainly due to lack of time. However, an effort is required to complete this work in full.
Proposed Strategy: "Back on Track"
The task ahead is significant, and we need to set clear priorities to avoid burnout. I propose the following three priorities:
pyluxcore.so
, deprecate C++ samples (e.g.,pyluxcoreconsole
,pyluxcoreui
), and replace them with Python equivalents. Use a package manager to control dependency versions.To the contrary, for now, while the build system is being reconstructed, I would recommend postponing any major functional changes to the core codebase. I would also propose to focus on Blender integration only (BlendLuxCore),
We should also be conservative about adding new features to BlendLuxCore, focusing primarily on bug fixes at this stage and features that don't need any evolution on the C++ part.
Prerequisite: Staffing and Governance
It's a pretty big job, and requires a team and a governance. In my opinion, we would need at least 2 lead devs (vision, reviews, git plumbing and so on), one for C++ and one for BlendLuxCore, and a good staffing behind them.
Please note that, personally, I can only reasonably free up bandwidth on one subject, specifically the build system.
We should then ask for contributors...
If we agree on these guidelines, I can prepare an action plan with more details.
Your feedback is welcome.
Beta Was this translation helpful? Give feedback.
All reactions