Skip to content

Releases: pasqal-io/Pulser

Release v0.20.0

20 Sep 10:37
499d961

Choose a tag to compare

Main changes

  • Reworking the NoiseModel interface (#710)
  • Allow modification of the EOM setpoint without disabling EOM mode (#708)
  • Enable definition of effective noise operators in all basis (#716)
  • Add leakage (#720)
  • Support differentiability through Torch tensors (#703)
  • Add from_abstract_repr to Device and VirtualDevice (#727)
  • [FEAT] Handle batches with partial results (#707)
  • Add open batches to pulser-pasqal (#701)

Deprecations

  • With the new NoiseModel interface, noise_types should no longer be explicitly provided and the default values are removed. Instead, only the relevant noise parameters should be provided and the associated noise types are activated accordingly.
  • With the addition of open batches, all references to "submission" as an identifier of a batch were replaced by "batch". This forced some deprecations, namely:
    • RemoteResults(submission_id:str, ...) is now RemoteResults(batch_id: str, ...)
    • RemoteResults.get_status() -> SubmissionStatus is deprecated in favor of RemoteResults.get_batch_status() -> BatchStatus

All changes were introduced in a backwards compatible way.

Changelog

499d961 Release v0.20.0
f14b81a Bump version to 0.20.0
c12306a Add open batches to pulser-pasqal (#701)
7af1d2d [FEAT] Handle batches with partial results (#707)
02122e2 Add from_abstract_repr to Device and VirtualDevice (#727)
2f5e56c Soften switching device with strict conditions (#724)
e21d3a8 Support differentiability through Torch tensors (#703)
6c12156 Allow specification of job IDs in RemoteResults (#718)
8550104 Make total_bottom_detuning mandatory (#728)
393526f Add leakage (#720)
c9f7957 Fix failing pipeline for test of relaxation noise in qutrit state (#719)
0455ed1 Enable definition of effective noise operators in all basis (#716)
5335305 Hide Rabi frequency when drawing DMM channels (#717)
82bedf5 Add leakage noise in NoiseModel (#714)
acf136f Defining dephasing and depolarizing operators with projectors (#715)
03fbb6e Allow modification of the EOM setpoint without disabling EOM mode (#708)
1b3735d Reworking the NoiseModel interface (#710)
e16257a Add states labels to Channels and SequenceSamples (#705)
31db5c7 Bump version to v0.20dev0

Contributors

A special shoutout goes to the contributors and reviewers involved in this release:

  • Antoine Cornillot
  • Henrique Silvério
  • Matthieu Moreau
  • Oliver Gordon
  • Vytautas Abramavicius

A huge thank you to all Pulser contributors, both to this and past versions.

Release v0.19.0

02 Jul 11:56
1304a5d

Choose a tag to compare

Main changes

  • Add option to switch the Sequence register (#684)
  • Support arbitrary phase-modulated pulses (#688)
  • Optionally skip JSON schema validation after serialization (#693)
  • Support for 3D registers and layouts in the abstract representation (#696)
  • Allow backends to mimic QPU validation locally (#685)

Fixes

  • Ignore the phase reference on the DMM channel's pulses (#700)

Changelog

1304a5d Release v0.19.0
7a89866 Bump version to v0.19.0
f224984 Allow backends to mimic QPU validation locally (#685)
e54c743 Ignore the phase reference on the DMM channel's pulses (#700)
acd8911 Support for 3D registers and layouts in the abstract representation (#696)
df8a77b Fix OS-precision-dependent unit test (#694)
a410687 Optionally skip JSON schema validation after serialization (#693)
873d3df Support arbitrary phase-modulated pulses (#688)
101ef6c Bring in changes from the v0.18.1 hotfix
51ea35e Fix typo in check-release CI job
3035554 Bump version to 0.19dev1
e81417b Bring in changes from v0.18.1 hotfix
3350807 Add lightshift coefficients to RydbergEOM (#687)
8083dee Add option to switch the Sequence register (#684)
131205f Bump version to 0.19dev0

Contributors

A special shoutout goes to the contributors and reviewers involved in this release:

  • Aleksander Wennersteen
  • Antoine Cornillot
  • Henrique Silvério
  • Matthieu Moreau

A huge thank you to all Pulser contributors, both to this and past versions.

Release v0.18.1

07 Jun 09:55
f4b8a1a

Choose a tag to compare

Bugfixes

  • Fixes in correct_phase_drift behaviour
  • More robust Pulse comparison
  • Python 3.12 support

Changelog

f4b8a1a Fixes in correct_phase_drift behaviour + more robust Pulse comparison + Python 3.12 support (#690)

Release v0.18.0

29 Apr 09:54
82c282b

Choose a tag to compare

New features

  • Enable digital simulation (#652)
  • Enabling definition of multiple noise channels and noise channels in XY (#647)
  • Improve access to output modulation durations (#663)
  • Adding relaxation noise channel (#675)
  • Centralize all backend imports from a single pulser.backends module (#678)
  • Add hyperfine dephasing rate to NoiseModel (#680)
  • Add optional default noise models to devices (#676)
  • Rectangular lattice register and layout (#665)

Removals

  • Remove Register.rotate() (#642)
  • Remove deprecated noise arguments (#674)

Fixes

  • Redefine slope of RampWaveform (#644)

Changelog

ddc6682 Bump version to v0.18.0
227b859 Sync 'master' and 'develop'
c695373 Rectangular lattice register and layout (#665)
d83c876 Add missing QPU validation fields to the Device class (#682)
4981ca6 Add optional default noise models to devices (#676)
831ca04 Update pasqal-cloud to ~=0.8.1 (#681)
96a8c34 Add hyperfine dephasing rate to NoiseModel (#680)
716b86b Centralize all backend imports from a single pulser.backends module (#678)
34b41b4 Fix CI tests on "macos" for python < 3.10 (#677)
f303138 Adding relaxation noise channel (#675)
188d21d Remove deprecated noise arguments (#674)
7df66e3 Block add() on DMM channels (#672)
0f6e3dd Improve access to output modulation durations (#663)
2ddd789 Merge pull request #670 from pasqal-io/v0.18dev4
6eb736d [HOTFIX] Restrict SciPy to < 1.13 due to breaking Qutip (#668)
71b8e03 Define max_step from minimum variations of samples, nsteps (#666)
85615c5 Upgrade black version to 24.3.0 to fix vulnerability (#662)
c8dcef0 Merge pull request #657 from pasqal-io/bump_v0.18dev3
ebed93a Merge v0.17.3 into develop
cadd576 Bump version to v0.18dev2
153b7cf Bring in changes from v0.17.2
bcb78cc Enable digital simulation (#652)
c2d5b6c Enabling definition of multiple noise channels and noise channels in XY (#647)
61d75f0 Merge pull request #650 from pasqal-io/release_v0.17.1
6a19445 Release v0.17.1
20e6765 FIX: Redefine slope of RampWaveform (#644)
7b7918b Update Github Actions (#641)
21a47f3 Remove Register.rotate() (#642)
d9125bc Bump version to 0.18dev0

Contributors

A special shoutout goes to the contributors to this release:

  • Aleksander Wennersteen
  • Antoine Cornillot
  • Henrique Silvério
  • Soufiane Kaghad

A huge thank you to all Pulser contributors, both to this and past versions.

Release v0.17.3

19 Mar 15:21
5817111

Choose a tag to compare

Bugfix

  • Fixed tutorial "Building 1D Rydberg Crystals"
  • Fixed update of amp_sigma in QutipEmulator.add_config

Changelog

5817111: Fix tutorial 1D Crystal and add config (#656)

Release v0.17.2

01 Mar 16:02
83894fe

Choose a tag to compare

Bugfix

  • Fixed deserialization of sized VariableItem instances

New features

  • Variable supports indexing from a list of indices (eg. var[[0, 1, 4]])
  • VariableItem supports __len__() on sized instances

Changelog

83894fe FIX: Deserialization of sized variable items (#653)

Release v0.17.1

15 Feb 10:13
b50a378

Choose a tag to compare

Bugfix

  • Fix definition of slope in RampWaveform. (#649)
  • Fix simulation of SPAM noise in XY in QutipEmulator. (#649)

Changelog

b50a378 FIX: SPAM noise in XY, Slope of RampWaveform (#649)

Release v0.17.0

06 Feb 11:09

Choose a tag to compare

Main Changes

  • Clarify confusion between kraus operators and collapse operators (#616): Simulations with noise channels now uniformly use collapse operators and rates, while the usage of Kraus operators and probabilities has been deprecated.

  • Support standalone serialization of Register and RegisterLayout to the abstract representation (#627): These objects can now be serialized to and deserialized from the abstract representation on their own through their to_abstract_repr() and from_abstract_repr() methods.

  • Hashing for coordinate collections (#627): Register now have an idempotent hash based exclusively on their coordinates (accessible through BaseRegister.coords_hash())

  • Explicitly define public symbols for all modules (#630): All classes needed for a standard usage of Pulser are now accessible through the top-level pulser namespace. This gives the option of trading code looking like this

    from pulser import Pulse, Register, Sequence
    from pulser.devices import MockDevice
    from pulser.waveforms import BlackmanWaveform, RampWaveform
    
    reg = Register.square(4)
    seq = Sequence(reg, MockDevice)
    
    pulse = Pulse(
        amplitude=BlackmanWaveform(1000, 3.14),
        detuning=RampWaveform(1000, -10, 10),
        phase=0,
    )

    for this

    import pulser
    
    reg = pulser.Register.square(4)
    seq = pulser.Sequence(reg, pulser.MockDevice)
    
    pulse = pulser.Pulse(
        amplitude=pulser.BlackmanWaveform(1000, 3.14),
        detuning=pulser.RampWaveform(1000, -10, 10),
        phase=0,
    )

Deprecations

  • In NoiseModel and SimConfig, dephasing_prob, depolarizing_prob and eff_noise_probs have been deprecated in favour of dephasing_rate, depolarizing_rate and eff_noise_rates.
  • Register.rotate() has been deprecated. The new and preferred Register.rotated() method returns a new register instance with the rotated coordinates instead of changing them in place.

Changelog

9e5f6fd Release v0.17.0
569f6b5 Bump version to 0.17.0
16f566c Reduce imports on main tutorials (#636)
824069a Modify deprecation of total_bottom_detuning to v0.18 (#638)
a8d17f2 Replace Register.rotate() with Register.rotated() (#639)
e5597b1 Unrestrict scipy<1.12 (#635)
154e9b3 [FIX] Restore compatibility with pytest 8.0.0 (#637)
f1637ae Explicitly define public symbols for all modules (#630)
0f50ccc Bump version to 0.17dev2
255baf7 Bring in changes from v0.16.2 hotfix
4601d6f FIX: Coordinate matching in WeightMap.get_qubit_weight_map() (#631)
80cf640 Support standalone serialization of Register and RegisterLayout to the abstract representation + Hashing for coordinate collections (#627)
007a0ae Clarify confusion between kraus operators and collapse operators (#616)
7026578 Bump to v0.17dev1
09ddc6b Merge changes from v0.16.1 hotfix
ab65b7f Refactoring QutipEmulator class (#602)
ed6f337 Bring in changes from v0.16.0 release
579aa59 Bump to version 0.17dev0

Contributors

A special shoutout goes to the contributors to this release:

  • Antoine Cornillot
  • Henrique Silvério

A huge thank you to all Pulser contributors, both to this and past versions.

Release v0.16.2

23 Jan 15:03
6925aaa

Choose a tag to compare

Bugfix

  • Temporarily restrict scipy<1.12 to avoid qutip incompatiblity (#632)

Changelog

6925aaa Temporarily restrict scipy<1.12 to avoid qutip incompatiblity (#632)

Release v0.16.1

14 Dec 15:05
104801a

Choose a tag to compare

Dependencies

  • Adds support for jsonschema == 4.17.3

Changelog

104801a Support version v4.17.3 Jsonschema (#625)