All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.10.0 - 2024-09-12
- 🚨 Bumped minimum python version from 3.8 -> 3.9.
- Updated all conda dependencies in
env.lock
. - Removed Intel's
openmp
fromenv.yaml
since they seem to have removed their channel. Replaced it withllvm-openmp
. - Updated to
qcelemental 0.28.0
as this is required forpsi4 1.9
. - Upgraded all python package dependencies.
- Dropped
black
andisort
in favor ofruff
. - Updated typing syntax to python 3.9.
- Updated base image from
mambaorg/micromamba:1.4-jammy
->mambaorg/micromamba:1.5-jammy
.
- Support for CREST conformer searches (interface support via new
qcop
. Binary via conda).
0.9.0 - 2024-07-19
- Updated to qcop ^0.8.0 and qcio ^0.11.0.
0.8.1 - 2024-07-12
release.py
script.
- Updated
qcop
andqcio
. Reverts back toStructure.identifiers
overStructure.ids
. Adds 10x performance gain toxtb
by solving their overthreading issue.
0.8.0 - 2024-07-10
- 🚨 Updated
qcio
andqcop
to use newStructure
instead ofMolecule
0.7.2 - 2024-06-13
- Updated to
qcio 0.9.3
which properly registers all concrete classes ofProgramOutput[InputType, ResultsType
onoutput.py
module for celery serializers. - Updated to
qcop 0.6.2
which properly setsexc.program_output
on all exception classes. - Updated all packages with
poetry lock
. - Updated syntax in
examples
scripts to be more comprehensive.
0.7.1 - 2024-06-10
- Updated
qcio
0.6.0
->0.6.1
to fixAdapterError
subclasses not passing the.program_output
argument correctly to parent classes socelery
was failing to serialize this attribute on the exception object. - Updated all dependencies to the latest versions in
poetry.lock
. (poetry lock
)
0.7.0 - 2024-04-23
- Updated to
qcop=^0.6.0
andqcio=^0.9.0
to use latest Generic data structures includingProgramOutput[InputType, ResultsType]
as a replacement for all other output models.
0.6.9 - 2024-04-12
- Updated
qcop=^0.5.5
to captureexception.program_failure
more comprehensively onadapter.compute(...)
calls. - Updated
qcop
also has nativextb
adapter now to avoid >1s overhead associated withqcengine
.
0.6.8 - 2024-04-05
- Updated
celery
from buggy5.3.1
that would feed gradients toparallel_hessian
in random orders causing the wrong gradients to be applied to the wrong atoms. Now using^5.3.4
which fixes this issue. - Tightened many
>=
package dependencies to more tight^
dependencies to avoid breaking changes in the future. - Changed tests for
parallel_hessian
andparallel_frequency_analysis
to test for correctness of the results rather than just that the function runs without error. This would capture a future regression wherecelery
returns results in the wrong order. - Updated all dependencies to the latest versions. (
poetry update
)
0.6.7 - 2024-03-29
-
- Upgraded to
qcop>=0.5.1
andqcio>=0.8.1
to fix QCElemental behavior that auto-rotates Molecules without user consent.
- Upgraded to
0.6.6 - 2024-03-26
- Documentation for a SLURM deploy of BigChem.
BIGCHEM_RESULT_EXPIRES
environment variable to set the expiration time of results in the database.
- Example scripts are all standalone runnable and don't require the
.xyz
files to be present in the directory.
version: 3.8
tag from docker-compose files as per new docs suggesting this is no longer necessary.
0.6.5 - 2024-03-16
- Updated
qcop
from0.4.8
to0.5.0
which setsraise_exc=True
by default oncompute(...)
function. - Updated
black
from23.x.x
->24.x.x
.
0.6.4 - 2024-01-12
- Updated
qcop
from0.4.7
to0.4.8
to fix the bug when geometric exceptions were raised. - Updated
qcio
from0.7.1
to0.8.0
.
0.6.3 - 2023-09-27
- Updated
qcop
from0.4.6
to0.4.7
to use latestqcparse
encoding of TeraChem input files.
0.6.2 - 2023-09-26
- Added
dftd3
conda package forpsi4
to enable dispersion corrections. Updated other worker packages to latest versions.
0.6.1 - 2023-09-22
- Updated
qcop
from0.4.4
->0.4.6
to incorporate bugfix forcollect_wfn=True
on adapters that don't support it.
0.6.0 - 2023-09-20
- Updated
qcio
to>=0.7.0
which renamedDualProgramArgs
toSubProgramArgs
. - Updated
/docker/fire.yaml
stack configuration to use the latest BigChem image.
- Fixed typo in
multistep_opt
algorithm where the loop was selecting programs[:1]
instead of[1:]
for the second and subsequent steps.
0.5.4 - 2023-09-08
- Installing BigChem to
/opt/
in docker container instead of/code/
. - Updated
qcio
from>=0.5.0
to>=0.6.0
. - Updated
qcop
from>=0.4.3
to>=0.5.0
.
- Device configuration to
/docker/terachem.yaml
. - Test to ensure exception objects raised in workers have
.program_failure
object returned to the client.
0.5.3 - 2023-09-03
- Moved
qcengine
andgeometric
to be optional dependencies so that client applications can install and use BigChem without these packages.
0.5.2 - 2023-09-02
- Updated to
qcop>=0.4.2
for patch fixing TeraChem input fileruntime
variable. - Updated all package dependencies.
0.5.1 - 2023-09-02
- Typos spell check to pre-commit and GitHub actions.
- The
energy
kwarg forfrequency_analysis
task since the electronic energy is correctly passed to the underlying geomeTRIC function from the hessian calculation. tcpb
,pyberny
- Updated to
qcop
v0.4.1
so that we can accessexception.program_failure
objects. Settings
can now accept extra types. This makes it possible to install BigChem inside other apps--like ChemCloud--and not have theSettings
object raise an exception if there are values in a.env
file or other secrets for the second application. BigChem'sSettings
object will pick them up too, but they are never accessed so it doesn't matter.
0.5.0 - 2023-08-31
- Multiple scripts to
/examples/
directory to show basic utilization of BigChem. - docs/swarm-gpu.md write up covering GPU support in Docker Swarm.
- TeraChem compose and swarm yaml specifications.
- Quickstart documentation to README.md.
qcio
andqcop
as main data structures and QC program driver packages.
- Dropped
docker-compose
from yaml filenames in/docker
to make commands less verbose. - Modified
docker-compose.yaml
to work for bothcompose
andswarm
. - Removed support for Python 3.7 (reached end of life).
- Updated worker container from
micromamba:1.3-jammy
->micromamba:1.4-jammy
. - Upgraded pydantic from
v1
->v2
.
- Removed support for
QCElemental
andQCEngine
. scripts/hacking
directory with old, unused files.
0.4.0 - 2023-02-3
multistep_opt
algorithm and associatedmultistep_opt.py
script to demonstrate how multiple QC packages can be used in unison to optimize a molecule.result_to_input
task to transform results from one process (like an optimization) into inputs for the next (perhaps a subsequent optimization step). This enables easy chaining together of multiple packages inmultistep_opt
.
- Modified
env.yaml
to allow flexible versions for worker packages and created a newenv.lock
file for workers. - Updated
tcpb>=0.13.0
to better returnstdout
data from a crashed TeraChem server.
0.3.0 - 2022-12-16
- Added extensive documentation to README.md to guide new users and developers.
- Switched default worker environment from
conda
tomicromamba
to accelerate build times (dramatically!). - Created
env.lock
file for reproducible builds ofmicromamba/conda
installs - Updated
psi4==1.5 -> 1.7
- Updated
qcengine==0.21.0 -> 0.26.0
- Updated
qcelemental==0.24.0 -> 0.25.1
- Switched geomeTRIC from personal patched version to new 1.0 release.
0.2.0 - 2022-07-19
- Changed name from
BigQC
toBigChem
to highlight that backend packages and routines may be related to any computational chemistry algorithm, not just quantum chemistry.
0.1.3 - 2022-06-20
C_FORCE_ROOT=true
environment variable to the worker image so the variable doesn't have to be passed to a container at instantiation.- Added
:latest
tag tobuild_worker.sh
script. - Added
push_worker.sh
scripts so I don't forget to push the tag and the image as thelatest
tag to the docker repo.
0.1.2 - 2022-06-15
- Wrapped
qcng.compute
andqcng.compute_procedure
directly withbigqc.task
rather than redefining each function - Simplified settings by removing
get_settings
function in favor of globally definedsettings
object. (No advantage to using a callable since we are not using dependency injection of a settings callable.) - Updated app name to
bigqc
fromtasks
inapp.py
.
0.1.1 - 2022-06-14
docker-compose.web.yaml
to specify middleware services for a deployment behindtraefik
reverse proxy.
- Separated out dependencies only required for the worker.
- Cleaned up root of project by moving files to
docker
directory - Cleaned up
docker-compose.xstream.yaml
stack specification
0.1.0 - 2022-06-14
- Initial release of core BigQC feature set. Tasks for
compute
(single point energy, gradient, hessian, and properties calculations) andcompute_procedure
(geometry optimization routine). Algorithms for distributed hessian and normal mode analysis with their associated tasks.