Luna 0.10.0

🚨 Includes Breaking Changes - Released on February 10, 2025

⚠️ 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 the qpu_backend parameter in solver_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
    The runtime 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.

Was this page helpful?