Releases: microsoft/Qcodes
QCoDeS 0.18.0 - September 2020
Changelog for QCoDeS 0.18.0
The September 2020 release of QCoDeS.
Breaking Changes:
There are no breaking changes in this release of QCoDeS.
New:
- Support nested
Measurement
context managers; in particular, only create
one background writer thread for multiple datasets (#2124) - Interactive widget to explore datasets in Jupyter Notebooks (#1967, #2163)
Improved:
- Jump to value when trying to set a parameter that cannot be set in steps
(can't be swept) (#2128) - Raise exception if
get_cmd
is not defined in aGroup
of
GroupParameter
s (#2133) - Add new
set_parameters
method toGroup
and remove the old deprecated
set
method (#2137) - Update ArrayParameter Docs (#2126)
- Add a docs page listing projects to QCoDeS project (#2142)
Improved drivers:
- Keysight B1500: fix measure range bug,
measure_config
method is deprecated (#2150) - Remove warning about complex numbers in R&S ZNB driver (#2140)
Under the hood:
- Simplify instrument destructor (#2132)
- Add types to
RunDescriber
dict representations (#2134) - Rework
RunDescriber
and update to version 2 (#2135) - Allow
from_dict_to_current
to deserializeRunDescriber
from new versions (#2144) - Add
python_requires
as key tosetup.py
(#2123)
Dependencies:
- Constrain all requirements and their dependencies in requirements.txt (#2164)
- Use
pip
s new resolver when installing dependencies (#2168) - Fix docs and test requirements to minor version (#2148)
- Restrict pyvisa to less than 1.11 (#2162)
- Install pyqt for python 3.8 (#2157)
- Require latest opencensus packages (#2141)
- Remove no longer needed apt dependecies from travis (#1843)
- Update nbconvert requirement from 5.6.1 to ~=6.0.3 (#2146, #2152, #2160)
- Update pytest requirement from ~=6.0.1 to ~=6.0.2 (#2151)
- Update coverage requirement from ~=5.2.1 to ~=5.3 (#2154)
- Update sphinx-jsonschema requirement from ~=1.16.1 to ~=1.16.2 (#2155)
- Update hypothesis requirement from ~=5.5.5 to ~=5.35.3 (#2158)
QCoDeS 0.17.0 - August 2020
Changelog for QCoDeS 0.17.0
The August 2020 release of QCoDeS.
Note: QCoDeS no longer officially supports Python 3.6
.
Breaking Changes:
There are no breaking changes in this release of QCoDeS.
New:
- Add in-memory cache representation for data of
DataSet
(#2062)
Improved drivers:
- Keithley 2600: Add linefreq to pyvisa-sim yml file (#2100)
- Keysight B1500: convert dummy values to NaN for spot measurement (#2108)
Improved:
- Station: Pass name as kwarg so that its order in instrument class is not relevant (#2099)
- Add support for matplotlib 3.3 (#2101)
- fix matplotlib deprecation warning (#2120)
- Docs: update qcodes usage link (#2091)
- Docs: Python version 3.6 is updated to 3.7 in
Getting Started->Requirements
(#2107) - Docs: Updating the broken link for conda-environment-update in Qcodes documentation (#2111)
- Update error message for instruments pickling (#2094)
- Fix: convert spyder kernels site print statement to logging message (#2097)
Under the hood:
QCoDeS 0.16.0 - July 2020
Changelog for QCoDeS 0.16.0
The July 2020 release of QCoDeS.
Note: this will be the last QCoDeS release to support python 3.6
Breaking Changes:
math
has been renamed tomath_utils
(#2040).- The deprecated
default_measurement
of theStation
is now removed (#2058) - The deprecated methods
get_data
andget_values
of theDataSet
have now been removed (#2067) - The
get_setpoints
method of theDataSet
has been deprecated (#2068)
New drivers:
Improved drivers:
- The Keithley 2450 driver got a bunch of new parameters and methods (#1970, #2052)
- The Keysight B1500 driver now checks errors after setting each parameter (#2041) and outputs
NaN
instead of199.999e99
when compliance is reached (#2074) - The Keysight B1520A driver saw a bunch of improvements:
- The Keysight B1517A driver had the following improvements:
Improved:
- All master-slave references from drivers have been removed or deprecated (#2066)
- QCoDeS now comes with a code of conduct (#2078)
Under the hood:
- Better execution of the test suite and hardening of tests (#2016, #2037, #2038, #2039, #2040, #2042, #2045, #2056, #2057, #2063, #2064, #2070, #2073, #2077, #2076). Special highlights from this massive work:
- The test suite now runs in parallel, a major win for all developers
- Much better handling of the QCoDeS config system as a result
- Update of dependencies to
mypy
0.782 (#2034, #2075) andpyqtgraph
0.11.0 (#2036) - The
measurements.py
module is now slightly better type-annotated (#2065) - Documentation is built with Spinx 3.1.2 (#2069, #2072)
- Added support for (upcoming)
pytest
6 and explicit dependency onpackaging
(#2076)
QCoDeS 0.15.0 - June 2020
Changelog for QCoDeS 0.15.0
The June 2020 release of QCoDeS. This release also includes all the changes
mentioned in alpha release of June 2020 (0.15.0a1
).
Breaking Changes:
GroupParameter.group
,Group.parameters
andGroup.instrument
are now all read only properties (#2031).- The public attributes
Group.get_cmd
andGroup.get_cmd
have been removed (#2031). - It is now an error to supply get/set_cmd, if get/set_raw is not abstract (#2015).
- The sweep parameters such as 'sweep_mode', 'sweep_start', 'sweep_end', 'sweep_steps' in Keysight B1520A driver is moved from class is moved from B1520A class to CVSweeper class (#2044).
New drivers:
- Add Zurich Instruments drivers. The old ZIUHFLI driver is deprecated. The actual implementation is in
zhinst-qcodes
as described in this blog (#2025).
Improved drivers:
- New features are added to Keysight B1517A driver to allow IV staircase sweep measurements (#2028).
- Various improvements are done on Keysight B1520A driver, such as, parsing correctly the wrong output floats ('-0.-1') from the instrument until new firmware release (#2023), improved testing (#2027), fixing spot measurement of capacitance checking for wrong impedance model, and working with ac_dc_volt_monitor=True (#2020), CVSweepMeasurements supports all impedance models (#2047).
- The measurement status are added to current and voltage parameters of B1517A driver (#2051).
- Added a method to obtain the measurement status summary of IV and CV Sweep measurements (#2050).
- The get functionality for sweep_auto_abort and post_sweep_auto_abort parameters is added in Keysight B1517A and B1520A driver (#2049).
- The error handling of Keysight B1500 driver is improved. Now each time a parameter is set the instruments queries for the error and throws exception is an error is received (#2041).
- Now on_off_val_mapping is used instead of a custom parser in Agilent E8527D (#2030).
- The parameter limits are added for the R&S ZNB-40 VNA R&S (#2029).
- Add a few system functions to the Keithley 2450 driver (#2052)
Improved:
- The DelegateParameter is now allowed to change source and also support a
None
source (#2005). - The GroupParameter now correctly update their cache when a single parameter in the group has been set or captured (#2031).
- The GroupParameter now correctly implements mappings between
value
andraw_value
e.g.scale
andoffset
(#2031). - Snapshot_base introduce new
update=None
, and use cache in parameter'ssnapshot_base
(#1833). - Now initial cache value can be set to the Parameter using kwarg
initial_cache_val
(#1840). - The snapshots of stations and instruments can also be diffed now using diff_param_values (#2021).
Under the hood:
- New lines are now handled correctly on windows (#2026).
- In the
Parameter
class, the gettable/settable have become read only property (#2024). - Parameter cache.get is refactored to make the logic a bit more clear. Its functionality remains the same (#2008).
- The loop data location in channels test is changed for pytest-xdist to work (#2010).
- Added new dependency: "typing_extensions" (#2048)
QCoDeS 0.15.0 - June 2020 first alpha release
Changelog for QCoDeS 0.15.0a1
The June 2020 alpha release of QCoDeS
Breaking Changes:
GroupParameter.group
,Group.parameters
andGroup.instrument
are
now all read only properties (#2031).- The public attributes
Group.get_cmd
andGroup.get_cmd
have
been removed (#2031). - It is now an error to supply get/set_cmd, if get/set_raw is not abstract
(#2015).
New drivers:
- Add Zurich Instruments drivers. The old ZIUHFLI driver is deprecated. The
actual implementation is in
zhinst-qcodes <https://github.com/zhinst/zhinst-qcodes/>
_
as described in
this blog <https://blogs.zhinst .com/andrea/2020/05/24/control-your-measurements-with-qcodes-and-labber/>
_
(#2025).
Improved drivers:
- New features are added to Keysight B1517A driver to allow IV
staircase sweep measurements (#2028). - Various improvements are done on B1520A driver, such as, parsing correctly
the wrong output floats ('-0.-1') from the instrument until new firmware
release (#2023), improved testing (#2027), fixing spot measurement of
capacitance checking for wrong impedance model, and working with
ac_dc_volt_monitor=True (#2020). - Now on_off_val_mapping is used instead of a custom parser in Agilent
E8527D (#2030). - The parameter limits are added for the R&S ZNB-40 VNA R&S (#2029).
Improved:
- The DelegateParameter is now allowed to change source and also support a
None source (#2005). - The GroupParameter now correctly update their cache when a single
parameter in the group has been set or captured (#2031). - The GroupParameter now correctly implements mappings between
value
andraw_value
e.g.scale
andoffset
(#2031). - Snapshot_base introduce new update=None, and use cache in parameter's
snapshot_base (#1833). - Now initial cache value can be set to the Parameter using kwarg
initial_cache_val
(#1840). - The snapshots of stations and instruments can also be diffed now using
diff_param_values (#2021).
Under the hood:
- New lines are now handled correctly on windows (#2026).
- In the
Parameter
class, the gettable/settable have become read only
property (#2024). - Parameter cache.get is refactored to make the logic a bit more clear. Its
functionality remains the same (#2008). - The loop data location in channels test is changed for pytest-xdist to work
(#2010).
QCoDeS 0.14.0 - May 2020
Changelog for QCoDeS 0.14.0
The May 2020 release of QCoDeS
Breaking Changes:
- Community drivers that were shipped with
QCoDeS
, and were deprecated
and moved to
qcodes_contrib_drivers <https://github.com/QCoDeS/Qcodes_contrib_drivers>
_
some months ago, are now removed fromQCoDeS
. - Remove deprecated
make_unique
helper function (#1985) - Remove deprecated
LogCapture
that is now inlogger.logger
module (#1984) - Remove deprecated
DataSet.make_complete
method (without "d") (#1978) - Remove deprecated
is_number
helper function frommeasurements.py
(#1979) - Remove deprecated setter for parameter's
raw_value
property (#1982) - Remove deprecated layouts/dependencies/paramspecs-related sqlite queries (#1986)
- Remove deprecated
zmq_helpers.py
withPublisher
andUnboundedPublisher
(#1983) - Remove deprecated
_save_val
method of_BaseParameter
(#1980) - Remove deprecated
qcodes.dataset.sqlite_base
andqcodes.dataset.database
modules (#1981) - The
name
and theshort_name
attributes of the _BaseParameter have become read-only. It is not
possible to change the name or short_name of the parameter after instantiation. (#1989)
Improved drivers:
- Improvements to
KeysightB1520A
to fix the following two issues. First,is_enabled
function outputs
False
instead of throwing an error if channels are not enabled. Second, the values ofvoltage_dc
,
voltage_ac
, andfrequency
parameters can be raised/decreased at a specified rate by defining the
step attribute of these parameters. (#1998) - New method to increase or decrease the range of the
Keysight344xx
drivers. This method
can access and search ranges and implements them into the setter. (#1996) - Coerce
KeysightB1500
coefficient for nplc settings to int. The b1500 instrument does not update
integration time if it receives a non-int value. (#1987) - Added parameters to
KeysightB1520A
driver to allow CV staircase sweep. Thesetup_staircase_cv
method can be used to set-up the state of the CMU for CV staircase sweep andrun_sweep
method to
run the sweep measurements. Look at CV Sweep section of example notebook for more description. (#2011)
Improved:
Parameter
name and short name are now a read only property and thus immutable. (#1989)- Add settable/gettable attribute to
Parameter
. This enables any user to detect if a
parameter can be get/set without having to use getattr/hasattr introspection on the parameter. (#1976) - Fixed
DelegateParameter
unit test that previously would not run. (#2004) - Ensure
DelegateParameter
cache matches source parameter. (#2000) - Do not overwrite
get
at init ofGroupParameter
. (#1994)
Under the hood:
- Proper changes in tests of doNd utility so that temporary databases are used.
This change is necessary for parallel processing of tests. (#2002) - Exclude pylint version 2.5.0, this version produces ImportError
on collection of module. (1991) - Fix for slack module when a user has not send any messages. (#1990)
- Pytest fixtures are now used for tmp dir creation in tests. (#1988)
- Fix test for legacy combined loop necessary for pytest-xdist. (#2009)
QCoDeS 0.13.0 - April 2020
Changelog for QCoDeS 0.13.0
The April 2020 release of QCoDeS
Breaking Changes:
-
The dictionary
station.components['config']
representing a Station
configuration loaded from a YAML file has been moved tostation.config
.
The same change is reflected in the snapshot and the config can now
be accessed viastation_snapshot['config']
. (#1913) -
The
QCoDeS
configuration module has moved fromqcodes.config
toqcodes.configuration
to disambiguate it from the current active config which is defined inqcodes.config
as always (#1682) -
It is now an error to overwrite get and set in a
_BaseParameter
subclass. Users have been warned against this
for a long time (#1946) -
The legacy api such as Loop, active_loop, active_data_set, Measure, DataSet, new_data, load_data, Task, Wait, BreakIf,
FormatLocation, DataArray, Formatter, GNUPlotFormat, HDF5Format, DiskIO, are no more imported inQCoDeS
namespace
by default. The core config now contains a new flagimport_legacy_api
that can be set to True if the legacy api
needs to be imported in theQCoDeS
namespace. (#1962) -
The Deprecated
log_analysis
module has been retired (#1950)
Improved drivers:
- Types have been added to init functions of the concrete Keysight DMM drivers classes (#1969)
Improved:
- The public QCoDeS api imported from the toplevel qcodes namespace can also be imported from
their respective modules for exqcodes.dataset
,qcodes.instrument
etc. (#1962) - Complete types have been added to the qcodes station (#1913)
get_last_run
has been improved to match the signature ofget_runs
(#1960)- The Snapshot of
station.config
(and other UserDicts) has been improved so that it can
be reloaded back into a dict (#1961)
Documentation:
- Improvements to several notebooks showing a better way of customizing parameters (#1973)
- An option to execute Jupyter notebooks via Binder has been added (#1943, #1948)
- A note that measurement context managers do not nest has been added (#1949)
- A Typo in a Dynacool docstring has been corrected (#1952)
- A note on limitations in delegate parameter has been added (#1953)
- The attribute documentation for parameter has been improved (#1956)
- B1500 documentation is included in the docs (#1971)
Deprecations:
get_data
andget_values
methods in dataset have been deprecated (#1941)
Under the hood:
- Use pytest retry to re-execute known flaky test (#1940)
- Update azure pipelines images (#1938)
- Remove the debug log from data_set (#1942)
- Code simplifications (#1944)
Recommended dependencies:
- Typechecking is performed with mypy 0.770 (#1935)
- Documentation is build with latest sphinx patch release (2.4.4) (#1954)
- Recommended version of h5py is 2.10 (#1955, #1958)
- Hypothesis version installed for testing is limited to <5.6.0 (#1959)
- Python version installed into conda env updated to 3.7.7 (#1963)
QCoDeS 0.12.1 - March 2020 update
Changelog for QCoDeS 0.12.1
This release contains a feature that was announced in 0.12.0 but not correctly included.
New Features:
New suite of sweep functions now in QCoDeS! The famous doNd functions
from the Copenhagen labs are now part of the QCoDeS library (#1895).
QCoDeS 0.12.0 - March 2020
Changelog for QCoDeS 0.12.0
The March 2020 release of QCoDeS
New Features:
- New suite of sweep functions now in QCoDeS! The famous
doNd
functions from the Copenhagen labs are now part of the QCoDeS library (#1895).
Breaking Changes:
- The
DataSet.add_results
method no longer returns anint
, but now returnsNone
.
New Instrument drivers:
- Keithley 3706A High Performance DMM/Switch System. (#1884)
- QDevil QDAC High Precision Voltage Generator. (#1613)
Improved drivers:
- Yokogawa GS200 no longer throws snapshot exception during initialization. (#1930)
- Keysight 34465A DMM now returns ±
numpy.inf
for out-of-range values and not9e±37
. (#1929)
Improved:
- The
DataSet
andMeasurement
classes now support out-of-thread data saving. Shave off up to 50% of your measurement time! (#1896)
Documentation:
No documentation updates in this release.
Deprecations:
The methods set_measurement
and measure
on the Station object have been deprecated.
They relied on the QCoDeS legacy dataset and were not frequently used. (#1937)
Under the hood:
- The database version is now 9. An index was added for the
captured_run_id
. (#1925)
QCoDeS 0.12.0 - March 2020 (prerelease)
Changelog for QCoDeS 0.12.0 Prerelease
The March 2020 release of QCoDeS Prerelease
Breaking Changes:
- The
DataSet.add_results
method no longer returns anint
, but now returnsNone
.
New Instrument drivers:
- Keithley 3706A High Performance DMM/Switch System. (#1884)
- QDevil QDAC High Precision Voltage Generator. (#1613)
Improved drivers:
- Yokogawa GS200 no longer throws snapshot exception during initialization. (#1930)
- Keysight 34465A DMM now returns ±
numpy.inf
for out-of-range values and not9e±37
. (#1929)
Improved:
- The
DataSet
andMeasurement
classes now support out-of-thread data saving. Shave off up to 50% of your measurement time! (#1896)
Documentation:
No documentation updates in this release.
Deprecations:
Nothing deprecated :)
Under the hood:
- The database version is now 9. An index was added for the
captured_run_id
. (#1925)