Release Notes#
0.59 / 2025-02-17#
A few bug fixes in this, but one big new feature - the ability to copy entries, specifications, and records from another dataset! See documentation for details.
Notable PRs:
0.58 / 2025-01-31#
This release has some big new features! These new features should be stable, but report any bugs you may find.
1. Dataset views can now be attached to a dataset and stored in S3-compatible storage. The views are created server-side, which is very efficient. 2. Dataset record submission can now be handled server-side as well. A call to background_submit will return immediately, while the submission happens via an internal job on the server 3. New manybody implementation
Note: The new manybody implementation is not compatible with old manybody data. The upgrade will check if manybody records exist and will not upgrade if any are present. I don’t expect this to cause issues, but if it does, contact me.
In addition, there are many other small features and fixes
Notable PRs:
(PR 866) Better error message with snowflake import of qcfractalcompute
(PR 867) Fix an awkward exception when a dataset record could not be found
(PR 869) Allow for manual specification of snowflake host
(PR 871) Improvement for the way specifications are added to the database
(PR 872) Simplification of how task queue sorts records that belong to services
(PR 874) Improvements to internal job handling
(PR 876) Ability to specify times in configurations files as user-friendly strings
(PR 877) Option to shut down managers that are idle for too long (ie, do not pick up tasks)
(PR 878) Dataset internal jobs, external files, and server-side view creation
(PR 879) New manybody implementation
(PR 880) Ability to create a portal client object from environment variables
(PR 881) Ability to submit dataset records as a background job
(PR 882) Improvements to processing of returned data
(PR 885) Use officially-released geometric
(PR 886) Use retries for JWT fetching (to help with some sporadic errors)
(PR 889) Implement jitter for manager heartbeats and updates
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.
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.
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.
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 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.