Release Notes#

0.57 / 2024-12-12#

A couple new features, some nice improvements, and of course some bug fixes! This update should be backwards compatible - new clients can access old servers, and old clients can access new servers. Same for compute managers.

Note: this release drops support for Python 3.8, which is now EOL.

Notable PRs:

  • (PR 848) Pin APSW (an SQLite wrapper) to a recent version

  • (PR 851) Mark managers as modified when they claim or return something (to prevent busy managers from being inactivated)

  • (PR 852) Improve performance of task claiming by managers

  • (PR 853) Reduce number of SQLAlchemySocket instances created on startup

  • (PR 854) Extras fields of records should not be None/NULL

  • (PR 855) Improve script startup time by lazy-loading pandas

  • (PR 856) Drop support for python 3.8

  • (PR 857) Add option for opt-in usage tracking for Parsl

  • (PR 858) Pin pyjwt & enable invalid subject handling

  • (PR 861) Ability to add entries to a singlepoint dataset from other datasets

  • (PR 863) Remove channels from Parsl config

0.56 / 2024-07-09#

Two small bugfixes. One is related to how the cache works, the other is a slight modification of the NEB specification.

The fix to the caching behavior should help with a lot of unexpected behavior related to caching. See Issue 844.

  • (PR 841) Remove hessian_reset keyword from NEB (@hjnpark)

  • (PR 843) Write records to cache immediately after fetching

0.55 / 2024-05-23#

Some moderate improvements - mainly, the use of ASPW for SQLite, and the removal of the never-used manager log and serverinfo log tables. Also adds maintenance jobs for removing old access log and completed internal jobs.

This release also adds the ability to more-strictly handle queue tags (to prevent managers with * as a tag from pulling everything).

In addition, lots of smaller bug fixes and improvements.

Notable PRs:

  • (PR 819) Fix native_files fields return from server & ORM

  • (PR 821) Enable dumping a database from a snowflake

  • (PR 822) Fix missing client on cached dataset records

  • (PR 825) Fix database constraint violation when program version contains uppercase characters

  • (PR 826) Fix type of results in ServiceSubtaskRecord

  • (PR 829) Replace sqlite3 (python stdlib module) with APSW

  • (PR 830) Remove server stats & compute manager logs

  • (PR 831) Add internal job to delete old access log entries

  • (PR 832) Add internal job to delete old, finished internal jobs

  • (PR 834) Add property to get errored child records

  • (PR 835) Better handling of queue tags (strict queue tags and case insensitivity)

  • (PR 836) Replace gunicorn with waitress and fix logging issues

  • (PR 837) Commit to database after every returned task is processed (to help prevent deadlocks)

  • (PR 838) Better handling of passwords with init-db

0.54.1 / 2024-04-12#

This is a minor fix-up release that fixes a few issues from the v0.54 release.

  • (PR 815) Adds tag to the task queue sort index

  • (PR 816) Fixes a few issues related to caching

0.54 / 2024-04-09#

Two big features of this release is client-side caching (including views) and the ability to download more of records. As part of this, fetching lots of records from a server will automatically scale to keep a relatively constant request time, rather than use a fixed batch size.

Client-side caching is relatively functional, but this was a major change, so feel free to report issues as always.

In addition, there is some of the usual cleanup.

  • (PR 802) Implement client-side caching using SQLite

  • (PR 808) Better handling of missing tags/programs from managers

  • (PR 809) Improve fetching speed by allowing for including more of records

  • (PR 811) Improve task queue performance by storing time in the task queue table directly

0.53 / 2024-01-09#

The only real thing to report is fixing of molecules returned from the server. Other than that, a little bit of cleanup in preparation for implementing new features in the future No breaking changes. Upgrading qcportal is recommended, but is not required.

Notable pull requests and features:

  • (PR 798) Mark molecules coming from the server as already validated, and remove fix_com and fix_orientation from the database.

0.52 / 2023-11-29#

Some improvements and bugfixes, but no breaking changes. Upgrading qcportal is recommended due to fixes related to JWTs, but is not required. The same is true with compute managers.

Notable pull requests and features:

  • (PR 781) Fixes issues related to shutdown of snowflakes, particularly with Python 3.12

  • (PR 783, PR 793) Fixes JWT refresh issues that cause errors in clients

  • (PR 785) Some cleanups related to Python 3.12 (including removing use of removing pkg_resources module)

  • (PR 787) Pydantic v1/v2 dual compatibility (L. Naden @lnaden, M. Thompson @mattwthompson, L. Burns @loriab)

  • (PR 792) Add ability to get status overview of child records (such as optimizations of a torsiondrive)

  • (PR 794) Remove use of now-deprecated utctime function and improve handling of timezones

0.51 / 2023-10-19#

Many new improvements, but very little in the way of breaking changes. Upgrading qcportal is recommended due to efficiency gains, but is not required.

Notable pull requests and features:

  • (PR 745) Compute manager documentation (D. Dotson @dotsdl)

  • (PR 750) Use a computed/generated column for lower-case dataset names (lname)

  • (PR 751) Some cleanups, including removing dependence of geometric_nextchain.py on QCPortal

  • (PR 752) Tests requiring geoip test data are now automatically skipped if not available

  • (PR 753) Improve/Fix JWT handling

  • (PR 757) Gracefully handle missing User-Agent

  • (PR 758) Requests now will be automatically retried in case of connection or networking issues

  • (PR 759) Implement functionality for checking why a record is in the waiting state

  • (PR 760) Add existing_ok=True for add_dataset

  • (PR 761) Handle duplicates and renames in qcvars

  • (PR 762) Add display of number of records in a dataset, and ability to get number of records in a dataset

  • (PR 763) reset_records() only resets errored records now

  • (PR 764) Add ability to get a list of properties computed in a dataset

  • (PR 765) Improve compile_values and related functions (J. Nash @janash)

  • (PR 768) Enable use of environment variables when specifying paths in the compute manager config

  • (PR 769) Improve the efficiency of adding large numbers of entries to a dataset

  • (PR 773) Improve manager logging of task and record information

  • (PR 774) Removed forced version checks between client and server

  • (PR 775) Add automatic batching in ds.add_entries() and ds.submit()

0.50 / 2023-09-12#

Major refactoring of everything. Too many changes to enumerate, but see docs for details.