The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Valid subsections within a version are:
- Added
- Changed
- Deprecated
- Removed
- Fixed
- Security
Things to be included in the next release go here.
- Downgrade python-semantic-release to allow release workflow to run (#253)
- docs: Updated the signal generation docs to fix some bugs that were found (#252)
- Signal Generation Restructure and addition of high level methods (#246)
- gh-actions(deps): bump the gh-actions-dependencies group with 2 updates (#250)
- python-deps(deps-dev): bump the python-dependencies group with 3 updates (#242)
- gh-actions(deps): bump anchore/scan-action (#248)
- python-deps(deps-dev): bump the python-dependencies group with 2 updates (#238)
- gh-actions(deps): bump python-semantic-release/python-semantic-release (#244)
- ci: Add back file sorter hook to pre-commit (#243)
- python-deps(deps): bump the python-dependencies group with 3 updates (#241)
- gh-actions(deps): bump the gh-actions-dependencies group across 1 directory with 3 updates (#239)
- refactor: Miscellaneous refactors to reduce technical debt in variable declarations and comparison operations (#236)
- Added the constraint ranges for all signal generators
- Added drivers for AWG and AFG channels
- Added a property named
source_channel
in AWG's and AFG's. - Added drivers for the internal AFG in TekScopes.
- Added a property named
internal_afg
in TekScope. - Added implementation of
generate_function
for all AWG models. - Added two burst functions to
SignalGeneratorMixin
: one to set up burst and one to generate the burst by forcing trigger.- NOTE: Only the AFGs and Internal AFGs have these functions implemented.
- Added
OutputSignalPath
enum attribute in AWGs representing output signal path options. - Added two functions for loading waveform set files in the AWG70k and AWG5200 drivers: one for loading a waveform set file and another for loading a specific waveform from a waveform set file.
- Added
sample_waveform_set_file
attribute in the AWG70k and AWG5200 drivers to define the default waveform set file.
- BREAKING CHANGE. Changed the term "signal source" to "signal generator".
- All uses of this term are changed. Import paths now use
signal_generator
instead ofsignal_source
.
- All uses of this term are changed. Import paths now use
- BREAKING CHANGE. Changed the function name of
generate_waveform()
togenerate_function()
.generate_waveform()
only exists on AWGs now, however the functionality is entirely changed.
- BREAKING CHANGE. Changed the
generate_function()
function by removing burst functionality.- Any use of burst now must use
setup_burst()
andgenerate_burst()
instead.
- Any use of burst now must use
- Updated AWGs such that the
family_base_class
is at the series level.
- fix: Update the commands to have uniform spacing of arguments. (#234)
- ci: Update the updater workflow to skip running poetry-audit during the updater process (#235)
- python-deps(deps-dev): bump the python-dependencies group with 3 updates (#233)
- gh-actions(deps): bump the gh-actions-dependencies group with 2 updates (#218)
- docs: Properly sort modules when building the API documentation (#231)
- Enable Virtual GPIB connections to supported instruments (#230)
- ci: Update build and release workflows to verify the package can be installed for all supported Python versions and Operating Systems (#229)
- python-deps(deps-dev): bump the python-dependencies group with 2 updates (#225)
- Add workflows to check for changes that break public APIs (#227)
- gh-actions(deps): bump the gh-actions-dependencies group across 1 directory with 2 updates (#226)
- docs: Update the trademark symbols (#223)
- docs: Add analytics code for documentation (#222)
- Sign all published files (#221)
- Add attestations to artifacts (#220)
- python-deps(deps-dev): update pylint requirement from 3.2.0 to 3.2.1 in the python-dependencies group (#219)
- docs: Update wording of API package Modules section (#217)
- Update api template usage (#216)
- Cleanup init files and rename abstract classes (#215)
- gh-actions(deps): bump python-semantic-release/python-semantic-release from 9.6.0 to 9.7.2 in the gh-actions-dependencies group (#213)
- python-deps(deps-dev): update ruff requirement from 0.4.3 to 0.4.4 in the python-dependencies group (#214)
- docs: Update copy code button to not show up on doc signatures in the API documentation (#212)
- Added a new section in the documentation of each package/subpackage that shows the submodules (files) of that package/subpackage.
- Added signed build provenance attestations to workflow artifacts for the built package.
- Added signed build provenance attestations to the generated SBOMs.
- Documentation was added explaining how to verify the attestations on uploaded files.
- Enabled support for Virtual GPIB connections to supported devices.
- docs: Removed the copy code button from the Python API signatures in the documentation.
- Updated most
__init__.py
files to not include__all__
variable definitions. - Renamed some of the abstract base classes to separate them from the actual device driver classes.
- Updated the documentation templates to use the new jinja template style that
mkdocstrings-python
is switching to.
- Fixed the API documentation to properly sort all the modules so that the Table of Contents is readable.
- docs: Add a copy button to the code blocks in the documentation (#211)
- docs: Update mkdocs-ezglossary-plugin version used for building docs (#210)
- docs: Add styling for a new method label (#209)
- Added a click to copy button to all code blocks.
- Updated
mkdocs-ezglossary-plugin
to a version that allows linking to glossary entries from the home page of documentation that is hosted on ReadtheDocs.
- ci: Revert python-semantic-release version bump since the GitHub Action no longer properly signs commits (#208)
- gh-actions(deps): bump the gh-actions-dependencies group with 2 updates (#207)
- Update contribution guide to remove outdated instructions (#205)
- fix: Update Changelog template to prevent pre-commit failures. when creating new versions with python-semantic-version (#204)
- Updated the changelog template to not cause
pre-commit
failures when it is used to update the changelog. - Updated the readme to properly render on PyPI.
- Removed outdated instructions from the contribution guide.
- fix: Update release notes generator script to account for markdown formatting changes (#203)
- Update package to point to ReadtheDocs for official documentation (#201)
- Fix ReadtheDocs builds by installing nodejs (#200)
- docs: Switch from Sphinx to Mkdocs for building documentation. (#11)
- gh-actions(deps): bump python-semantic-release/python-semantic-release (#197)
- python-deps(deps): bump the python-dependencies group with 2 updates (#192)
- gh-actions(deps): bump the gh-actions-dependencies group with 2 updates (#191)
- gh-actions(deps): bump the gh-actions-dependencies group with 3 updates (#190)
- python-deps(deps-dev): update pyright requirement from 1.1.356 to 1.1.357 in the python-dependencies group (#189)
- Switched from using
sphinx
tomkdocs
for building the documentation. This enables building the documentation in under 10 minutes while using less than 6 GB of RAM and saving almost 2 GB of disk space. Fixes #77. - Switched from GitHub Pages to ReadtheDocs for official documentation hosting.
- Fixed the Readme to display as intended in GitHub and PyPI while maintaining all functionality in the generated documentation site.
- Updated the get_acquisition_data example to select source for the measurement. (#187)
- Updated get_acquisition_data example to select source for the measurement.
- Update SBOM scanning workflow to be able to upload artifacts to GitHub releases (#186)
- Updated the workflow that creates SBOMs to be able to upload the SBOM as an artifact to a GitHub release.
- Fix packaging workflows to correctly gate on the repo name. (#185)
- Convert PyPI upload workflows into reusable workflows. (#184)
- ci: Update docformatter version, it no longer causes issues. (#182)
- Add test results to job summary and pull request comments (#181)
- Convert workflows into reusable workflows (#178)
- Update file checker workflow (#179)
- gh-actions(deps): bump the gh-actions-dependencies group with 2 updates (#177)
- python-deps(deps-dev): bump the python-dependencies group with 1 update (#176)
- Update admonition in readme to fix a glitch/bug in GitHub web UI (#174)
- Update supported devices and VISA backends in the readme (#170)
- fix: Updated the measurement source selection command for the MDO3K, MDO4K, MSO4K and DPO4K models to work properly. (#173)
- ci: Update codecov-action to v4. (#140)
- Handle Visa IO Error on first connection (#172)
- Misc. workflow updates (#171)
- gh-actions(deps): Bump the gh-actions-dependencies group with 1 update (#158)
- python-deps(deps): Bump the python-dependencies group with 2 updates (#159)
- gh-actions(deps): Bump the gh-actions-dependencies group with 2 updates (#166)
- ci: Update documentation builds to use node.js version 20. (#163)
- refactor: Update the type aliases used by the
DeviceManager
add/get methods to returnTypeVar
s with default values that are bound to the appropriate device type. (#162) - ci: Add a step to upload the sarif file as a workflow artifact. (#157)
- refactor: Update the get_model_series() method to only warn the user if the model isn't contained in the list of supported models. (#156)
- test: Update tox to test building the package in a unique environment to prevent race conditions when running tox environments in parallel. (#155)
- ci: Add permissions to write security events for the SBOM scan. (#154)
- Add SBOM generation and scanning workflow (#153)
- Added TekVISA as one of the VISA backends supported.
- Updated the
get_model_series()
function to only warn the user if the model is not found in theSupportedModels
enumeration. This also eliminates false warnings during unit tests.
- Updated the measurement source selection command for the MDO3K, MDO4K, MSO4K and DPO4K models to work properly.
- python-deps(deps-dev): Bump the python-dependencies group with 1 update (#151)
- gh-actions(deps): Bump the gh-actions-dependencies group with 2 updates (#147)
- Update read only cached property for PyCharm auto-complete support (#149)
- Update release workflow to print out incoming changes in job summary for easy review (#148)
- ci: Created a workflow to update python linting dependencies and pre-commit hook versions inside of a PR. (#146)
- refactor: Updated the
get_model_series()
function to make it simpler for future maintenance and additions. (#145) - gh-actions(deps): Bump the gh-actions-dependencies group with 1 update (#144)
- Updated the
get_model_series()
function to use a regex mapping instead of complicated logic to reduce maintenance costs.
- Updated import statements for the
ReadOnlyCachedProperty
decorator to allow PyCharm auto-complete to work properly.
- fix: Removed unused command files. (#143)
- fix: modified API under MSO 2,4,5,6 modules (#142)
- Update PI Device close method to catch VisaIOErrors (#141)
- ci: Update pre-commit hooks and linter versions. (#139)
- gh-actions(deps): Bump the gh-actions-dependencies group with 1 update (#123)
- python-deps(deps): Bump the python-dependencies group with 1 update (#136)
- fix: Update the function that detects a VISA resource expression to work properly for SOCKET resource expressions. (#134)
- style: Update linting rules. (#132)
- Pin the linters used (ruff, pyright, pylint) to specific versions (#131)
- Update doc workflow runners (#128)
- build: Update version of ruff for pre-commit. Remove unused noqa comment. (#126)
- MSO5k, DPO5k, and DPO7k full driver support (#125)
- gh-actions(deps): Bump the gh-actions-dependencies group with 3 updates (#121)
- Update GitHub action versions used in workflows (#120)
- feat: Added a mechanism to reset cached properties whenever a device is rebooted. (#118)
- refactor(code-style): Switch to
ruff format
instead ofblack
for code formatting. (#117) - gh-actions(deps): Bump the gh-actions-dependencies group with 2 updates (#116)
- Added a step during a device reboot that will reset all the cached properties in the event that one of them changed.
- Added command API support for MSO5K, DPO5K, and DPO7K models.
- Added a custom, read-only implementation of the
cached_property
decorator. - Added default buffer API for SMU 26xx series models.
- Switched to ruff's formatter instead of black's formatter for python code.
- Updated the version of
python-semantic-release
that is used to avoid needing to store a copy of the previous changelog in the repo. - Pinned the linters (ruff, pyright, pylint, docformatter) to specific versions to reduce failures when updates are released that add new rules or break existing rules.
- Fixed the code that detects VISA resource expressions to be able to detect SOCKET resource expressions properly.
- Fixed PI device close method to catch VisaIOErrors and throw a warning, rather than an exception, when closing a PI device connection.
- Fixed APIs with query attributes missing under MSO4, MSO5, MSO6 and MSO2 model drivers.
- feat: Added support for MSO4B device (#115)
- gh-actions(deps): Bump the gh-actions-dependencies group with 1 update (#112)
- test: Update tests to try to eliminate false failures when running tests on macOS. (#114)
- ci: Add the admin team as reviewers to all Pull Requests. (#113)
- Update config docs and release workflow (#111)
- Added support for MSO4B device.
- Fix import error on mac with system integrity protection (#109)
- feat(rest_api_device): Enable sending raw data for restful api devices. (#107)
- build: Update package classifiers. (#106)
- Added an option to send raw data for RESTful API devices
- Updated the package classifiers for PyPI
- Fixed a crash observed on macOS when importing
tm_devices
, issue #108
- docs: Remove the TestPyPI badge from the readme, it is not important. (#105)
- Update the Readme (#100)
- ci: Increase timeout when installing tm_devices from pypi servers to avoid issues caused by long wheel build times for packages that tm_devices depends on (such as zeroconf). (#98)
- feat: Add USBTMC support for the 3706A device. (#97)
- Add new options for REST API devices (#96)
- ci: Update how the changelog generation macro selects PR numbers. (#95)
- gh-actions(deps): Bump the gh-actions-dependencies group with 5 updates (#93)
- ci: Added a workflow to scan for security issues in dependencies on all PRs. (#91)
- fix: Update a few comments to have better wording. (#85)
- Update the basic usage docs and Readme (#84)
- docs: Update basic usage with better wording for examples. (#83)
- refactor: Removed some API files that are no longer needed (outdated/broken) (#82)
- New examples added to the basic usage guide showing how to use the commands for some scope drivers
- Added an example showing how to change the VISA backend that is used for connecting to devices
- Added a new support table in the Readme showing the API support for Software Solutions
- Added an option to bypass SSL certificate verification for RESTful API devices
- Added an option to allow URL redirects for RESTful API devices
- Added the 3706a to the list of supported usb devices
- Updated the support level tables in the Readme
- Removed some outdated and broken API files
- fix: Build docs without parallelization to fix pop-up issues with sphinx-tippy (#80)
- Fixed the
tippy.js
pop-ups in the documentation
- fix: Handle non-standard software versions with alpha characters in the last part of the version. (#81)
- docs: Updated the custom styling for the badge table in the readme to make sure the badges are spaced vertically properly. (#79)
- Update contribution guide and documentation publishing workflow (#78)
- docs: Added new workflow which can deploy the documentation to GitHub Pages (#76)
- Update version of GitHub action used to build the package (#75)
- fix: Update auto-generated command API files to fix various issues. (#72)
- fix: Remove outdated comment. (#71)
- ci: Update workflow name and add Python 3.12 classifier (#70)
- Updated the auto-generated commands for a handful of models to fix various issues
- Updated the function responsible for converting version strings into
Version
objects to be able to handle software versions with non-standard formats.
- fix: Update the version of the semantic release action used to fix a bug with the output version. (#69)
- Fixed the package release workflow to use a version of the
python-semantic-release
GitHub action that doesn't have any bugs
- ci: Update macro to enable GitHub Release template to function properly. (#68)
- Fixed the GitHub Release template generation
- Add template for GitHub Releases (#67)
- Added a template for rendering custom Release Notes for GitHub Releases
- Update the code that checks for package updates (#66)
- Fixed a potential
PermissionsError
crash that occurred when trying to check for any available package updates
- A config flag to enable checking for updates when creating a new instance of the
DeviceManager
- The default behavior of the
DeviceManager
is changed to not check for updates
- Update badge displaying total number of downloads (#41)
- ci: Update permissions to allow the workflow to modify GitHub Releases. (#40)
- Updated permissions for the release workflow to allow it to upload the distribution files to the GitHub Release
- Updated the README to include the correct link to the badge displaying the total number of package downloads
- Fix readme links and release workflow (#39)
- Updated links in the README to properly redirect to GitHub when accessed from PyPI
- Updated the release workflow to be able to upload artifacts to the GitHub Release page
- Update package release workflow to build correct version (#38)
- Updated the release workflow to properly build the latest version after
python-semantic-release
updates the main branch
- ci: Update workflow to enable signed commits. (#37)
- ci: Add missing command to workflow. (#36)
- ci: Update semantic release step to not use the docker container. (#35)
- Update packaging workflow (#34)
- Update package release workflow with necessary permissions (#33)
- docs: Update links in readme. Also add badge for project publish workflow. (#32)
- Update changelog update process (#31)
- ci: Update git config during package release. (#30)
- ci: Added a workflow and necessary support scripts/templates to enable automated released via GitHub's workflow_dispatch trigger. (#29)
- Added a command-line script to print the available VISA resources. (#26)
- Update test.pypi.org upload workflow (#25)
- Add a wait time to allow for the package to be available to install. (#24)
- Custom testpypi version creation script (#23)
- Fix TestPyPI upload (#22)
- Update python-semantic-release config settings. (#21)
- Implement separate TestPyPI upload workflow (#20)
- Upload unique dev packages to test.pypi.org (#19)
- A command-line script to list all available VISA resources,
list-visa-resources
- Added support for Python 3.12.
- Fixed bug when generating a waveform using Burst Mode on an AFG.
- Support for DPOJET to TekScope5k7k70k models.
- Cache
*OPT?
on first access.
- Support for AWG7KB
- Support for
num_dig_bits_in_ch
andtotal_channels
properties to TekScope5k7k70k.
- Support for AWG5KB
- Changed waveform generation to enforce CustomStrEnum function type.
- Support for connecting to instruments created on top of the
pyvisa-mock
framework.
- Updated auto-generated API documentation to not show all inherited attributes and methods in order to speed up documentation build time.
SourceDeviceConstants.function_list
was changed to beSourceDeviceConstants.functions
, which is now an Enumeration of valid functions.
- Fixed bug with not allowing empty license lists.
- Updated syntax for AFG polarities.
channel
property to TekScope- Abstract mixin classes for licenses, analysis objects, and usb drives.
- @family_base_class to denote and enforce end of method definitions in the inheritance tree.
- Refactored abstract method inheritance to use Mixins for many methods and properties for ease of expandability.
- Channel specific functions now only accept strings as input.
all_channel_numbers_list
property since MSO2 breaks convention so can no longer rely on sequential channel numbering.
- Removed TRIANGLE from AFG function list.
- Added symmetry to waveform generation function call.
- Updated the add_new dynamic item methods to work with numbers higher than 9.
- Fixed malformed command syntax due to a bug in determining the preceding separator character.
- Added support for .dev versions.
- First release of
tm_devices
!