Skip to content

Releases: pcdshub/pytmc

v2.18.0 (2024-12-19)

20 Dec 19:39
fa216ab
Compare
Choose a tag to compare

Changes

  • Adds support for arrays of strings. Previously, using a pv pragma on an array of
    strings would result in pytmc attempting and failing to create waveform record with
    FTVL set to STRING, which was specifically disallowed. Now it will create a separate
    string pv for each element of the array, similar to arrays of enums or complex types

Maintenance

  • Add setuptools_scm to conda recipe build section

Contributors

  • tangkong
  • KaushikMalapati

Full Changelog: v2.17.0...v2.18.0

v2.17.0

16 Sep 22:24
c30a7c9
Compare
Choose a tag to compare

This version fixes an issue where there was no way for ads-ioc to enforce read-only behavior on the _RBV variants. This led to confusing behavior because the IOC will accept these writes and not respond to them in an intuitive way.

pytmc will now generate input/rbv records as having the NO_WRITE ASG.
This will affect all PVs that represent data read from the PLC code. It will not affect the setpoints.

ads-ioc can now implement a NO_WRITE ASG and it will be applied to all of these PVs.
This is expected in ads-ioc at R0.7.0.

What's Changed

New Contributors

Full Changelog: v2.16.0...v2.17.0

v2.16.0

31 Jul 22:46
2c4f412
Compare
Choose a tag to compare

What's Changed

Changes

  • pytmc template, which takes a TwinCAT project and jinja template source code to generate project-specific output, now expects all platforms to use the same delimiter (":") for template filename patterns. Examples include:

    • Read template from a.template and write expanded version to a.txt:
      pytmc template my.tsproj --template a.template:a.txt
    • Read template from a.template and write results to standard output:
      pytmc template my.tsproj --template a.template
    • Read template from standard input and write results to standard output:
      pytmc template my.tsproj --template -
    • Read template from standard input and write results to /path/to/a.txt:
      pytmc template my.tsproj --template -:/path/to/a.txt
  • Extended support for projects not correctly configured in TwinCAT with "Independent Files" for all supported options. Generating EPICS IOCs from such projects that also include NC axes should succeed with a number of loud warnings to the user.

Maintenance

  • Fixed old release note syntax.

Pull Requests

  • MNT: warn on misconfiguration of TwinCAT IDE/project settings by @klauer in #318
  • REF: always use colon delimiter for pytmc template by @klauer in #320
  • MNT: back-compat for 'pytmc template' delimiter-less filename by @klauer in #321

Full Changelog: v2.15.1...v2.16.0

v2.15.1 (2023-06-30)

30 Jun 21:18
73bd2d9
Compare
Choose a tag to compare

Bugfixes

  • Type aliases will now find pytmc pragmas defined on their base types.
    Previously these were ignored.
  • ST_MotionStage is now the canonical name for the motor struct,
    matching our twincat style guide. Backwards compatibility is retained
    for projects using DUT_MotionStage.
  • Fix an issue where macro substitution did not load properly for
    motor base PVs in the st.cmd file generation.
  • Fix an issue where the version could fail to load in an edge case
    where a git clone was included via symbolic link.

Maintenance

  • Ensure workflow secrets are used properly.
  • Fix issues related to documention building on the Github actions CI.

v2.15.0 (2023-04-04)

05 Apr 01:08
f53641f
Compare
Choose a tag to compare

Python 3.9 is now the minimum supported version for pytmc.

Maintenance

  • Fixes pre-commit repository settings for flake8.
  • Migrates from Travis CI to GitHub Actions for continuous integration testing, and documentation deployment.
  • Updates pytmc to use setuptools-scm, replacing versioneer, as its version-string management tool of choice.
  • Syntax has been updated to Python 3.9+ via pyupgrade.
  • pytmc has migrated to modern pyproject.toml, replacing setup.py.
  • Sphinx 6.0 now supported for documentation building.
  • docs-versions-menu is now used for documentation deployment on GitHub Actions.

Contributors

v2.14.1

28 Sep 20:13
20d35b3
Compare
Choose a tag to compare

What's Changed

  • TST: test suite was using old kwarg, swap to new by @ZLLentz in #296

This release doesn't change any behavior of the library, but it does fix an error in the test suite that causes false failures.

Full Changelog: v2.14.0...v2.14.1

v2.14.0

29 Aug 20:31
85fa86d
Compare
Choose a tag to compare

What's Changed

  • REF: sort generated records by TwinCAT symbol name (tcname) by @klauer in #293
    • The order of records in EPICS process database (.db) files will change for most users after this release. After the initial rebuild, users should expect to see smaller diffs on subsequent PLC project rebuilds.
  • FIX: safety PLC files loaded from _Config/SPLC by @klauer in #289
  • ENH: add all hooks required to allow transition of pytmc stcmd -> template by @klauer in #290
    • Adds helper commands to pytmc template, which can be used in Jinja templates:
      • generate_records (create .db and .archive files)
      • get_plc_by_name
      • get_symbols_by_type
    • Adds variables to pytmc template environment, which can be used in Jinja templates:
      • pytmc_version
    • Adds --macro option to pytmc template
    • Fixes some annotations + uncovered/untested functionality
    • Allows pytmc template to read/write multiple templates with parsing a project only once

Full Changelog: v2.13.0...v2.14.0

v2.13.0

30 Jun 18:23
233acfb
Compare
Choose a tag to compare

What's Changed

  • ENH: autosave field additions by @klauer in #287
    • Adds description field to autosave for all records, input and output
    • Adds alarm severity and limit fields to autosave for all relevant input and output records
    • Adds control limit (drive low/high) fields to autosave for relevant output records

Full Changelog: v2.12.0...v2.13.0

v2.12.0

27 May 16:25
1dbcf37
Compare
Choose a tag to compare

What's Changed

  • FIX: CP link instead of CPP link by @klauer in #283
  • MNT: address CI-related failures and update pre-commit settings by @klauer in #285

Full Changelog: v2.11.1...v2.12.0

v2.11.1

24 Mar 23:14
bd25291
Compare
Choose a tag to compare

What's Changed

  • CLN: remove evalcontextfilter usage by @klauer in #280
    • Jinja2 3.1 compatibility fix
  • TST: does linking work as expected? by @klauer in #279
    • Additional tests

Full Changelog: v2.11.0...v2.11.1