Deploying LuxCoreRender: Difference between revisions
| Line 20: | Line 20: | ||
= Prequisites = | = Prequisites = | ||
== Admin rights == | == Admin rights == | ||
| Line 35: | Line 29: | ||
Please check you are entitled with such rights. | Please check you are entitled with such rights. | ||
== Clean Branches == | |||
The following process assumes the releases are created from the <i>default branches</i> in each repository, namely (2026-04-19): | |||
* <code>master</code> for LuxCore | |||
* <code>main</code> for BlendLuxCore | |||
Please check the above branches contain all the history you target for your releases and, if not, make the required git plumbing. | |||
== LuxCore Buildability == | == LuxCore Buildability == | ||
Revision as of 16:24, 19 April 2026
Audience and Scope
This document is intended to LuxCoreRender administrators only.
In this document:
- Releasing refers to the process of finalizing a version of LuxCore, i.e. defining a state of LuxCore which can be made available to end-users.
- Deployment refers to the process of making a new release of LuxCoreRender available to end-users.
The scope of Deployment includes the following components:
- Python Wheels (aka
pyluxcore) - Samples (aka
luxcoreuiandluxcoreconsole) - BlendLuxCore
Please note we deliberately exclude the dependencies (aka LuxCoreDeps) from the deployment scope. Indeed:
- Dependencies are not intended for end-users, so deployment is not applicable.
- Up-to-date dependencies are necessary for LuxCore development and tests, so they should have been released for a while when LuxCore deployment occurs.
Prequisites
Admin rights
The process requires that the administrator running the Release and Deploy process be:
- granted with sufficient rights on LuxCoreRender repositories on Github, including running actions, producing releases etc.
- granted with sufficient rights on LuxCoreRender repository on PyPI and PyPI-test, including adding and deleting versions
- skilled enough in Github administration and, especially, able to run Github actions
- and skilled enough in PyPI administration
Please check you are entitled with such rights.
Clean Branches
The following process assumes the releases are created from the default branches in each repository, namely (2026-04-19):
masterfor LuxCoremainfor BlendLuxCore
Please check the above branches contain all the history you target for your releases and, if not, make the required git plumbing.
LuxCore Buildability
The process required that targeted LuxCore components be buildable.
The component must by buildable by Continuous Integration. This can be checked by running the following Github Actions:
- Wheels:
LuxCore Python Wheel Builder(in LuxCore repository) - Samples:
LuxCore Python Sample Builder(in LuxCore repository) - BlendLuxCore:
BlendLuxCore Build Bundle(in BlendLuxCore)
Please check the components fulfill those requirements before any Release/Deploy approach. This should be done by running the 3 actions above.
Consistent Version Numbers
You'll need 2 version numbers:
- One for LuxCore
- One for BlendLuxCore
These version numbers must enforce Semantic Versioning, as stated in Building LuxCoreRender
Please note also that the version numbers should not have been used in anyway in previous releases. It is particularly important for PyPI (and PyPI-test), that will reject any upload declaring a version that has already been in use before, event for a short time.
Sufficient space on PyPI and PyPI-test
The space on PyPI and PyPI-test is limited to 10GB (as of now, 2026-04-19).
This can look quite comfortable, however we must not forget we release 20 wheels each time (about 80-100MB each), so the space required for one release is 1.5GB!
Procedure
Pre-Flight Review
As stated above, before starting the core procedure, carry out the following actions:
- Ensure the default branches are up-to-date
- Check your admin rights, on Github and on PyPI
- Check LuxCore buildability: run the 3 actions listed above.
- Define and Check Release Version Numbers (for LuxCore and BlendLuxCore): they should neither have been allocated before, nor used on PyPI.
- Check the space on PyPI and PyPI-test. If not sufficient, clean oldest versions.
Wheels Releasing and Deployment
- Run action
LuxCore Python Wheels Releaser.