Luna 0.10.0
β οΈ Breaking Changes
- π Streamlined Security - Removal of custom encryption key
We've upgraded our encryption architecture to provide stronger security while eliminating the need for manual key management. This change removes the custom encryption key feature, which required additional configuration and maintenance, in favor of built-in industry-standard encryption that works seamlessly in the background. Users now benefit from enhanced security without any additional setup steps or technical overhead.
Re-Add Your QPU Tokens
This change requires users to re-add their QPU Tokens. You can add them using:
# Set your personal token to access DWaves hardware
personal_token = ls.qpu_token.create(
name="My Personal D-Wave Token",
provider="dwave",
token="<TOKEN>",
token_type="personal"
)
For more information, visit QPU Tokens.
π New Features
- π Documentation & Changelog
A dedicated Changelog page has been added to Luna's documentation to keep users updated on new features, improvements, bug fixes, breaking changes, and security updates.
π οΈ Improvements
-
β‘ D-Wave QPU Backend Selection
Users can now define the backend for D-Wave quantum solvers using theqpu_backend
parameter insolver_parameters
. If left unspecified or set to'default'
, D-Wave automatically selects an appropriate backend. Providing an invalid or unavailable backend will result in an error. Supported solvers include QA and RRQA. To specify a backend, use:solver_parameters = { ... "qpu_backend": "Advantage_system4.1", ... }
-
𧩠Optimization Name Passed to D-Wave Leap
Luna now passes the optimization name and ID to D-Wave Leap, allowing users to easily identify their optimizations with the format"<optimization_name>_<optimization_id>"
. If no optimization name is provided, it defaults to"unnamed"
. -
π Format Tracking
Users can now track optimization problem formats for better transparency:stored_format
: Lists all formats the optimization has been translated into.used_format
: Indicates the format used in the solution.
... original_format: LP stored_format: [LP, BQM] ...
-
π§ Adjustable Verbosity
The LunaSolve and LunaQ solution and optimization objects have been streamlined to provide a clearer and more adjustable level of detail. Users can now configure the verbosity of outputs.optimization = ls.optimization.get(job.id) print(optimization) # Outputs a concise summary by default. print(optimization.details()) # Outputs full details. optimization.verbose = True print(optimization) # Now prints full details.
π Bug Fixes
-
π Consistent Runtime Information
Theruntime
field is now consistently available, whether the solution succeeds or encounters an error. This ensures users can always access reliable runtime details, enhancing traceability and consistency, even when a solution doesnβt complete as expected. -
π SCIP and D-Wave Solver Improvements
We identified and resolved issues with the SCIP and D-Wave solvers where solutions appeared to be stuck. These bugs have been fixed, ensuring smoother and more reliable solver performance moving forward.