Recent Releases of alchemiscale

alchemiscale - Release v0.6.2

This is an incremental bugfix release, featuring small usability improvements from user feedback. In particular: - it is now possible to set required arguments for the AlchemiscaleClient via environment variables, namely ALCHEMISCALE_URL, ALCHEMISCALE_ID, and ALCHEMISCALE_KEY. - users of the AlchemiscaleClient can now disable local on-disk caching with use_local_cache=False - compute services can now be configured to use a local on-disk cache where possible, or disable it completely - Tasks now record the identity of the user that created them; this may be used in the future as a queryable

Thanks to all our contributors, including @LilDojd, @ianmkenney, @mikemhenry, and @dotsdl!

What's Changed

  • feat: add environment variable support for client initialization params by @LilDojd in https://github.com/OpenFreeEnergy/alchemiscale/pull/368
  • Fix docs by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/381
  • Make RTD fail on warning by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/382
  • Allow users to disable AlchemiscaleClient disk cache by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/380
  • Update to current type annotation syntax and clean out general diagnostic issues by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/354
  • Prevent warnings when environment variable is not set, and parameter is supplied by @LilDojd in https://github.com/OpenFreeEnergy/alchemiscale/pull/390
  • switch to using setuptools_scm by @mikemhenry in https://github.com/OpenFreeEnergy/alchemiscale/pull/379
  • Added ability to set cache location, size, or disable entirely for compute services by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/392
  • Record the creator of new tasks by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/397

Full Changelog: https://github.com/OpenFreeEnergy/alchemiscale/compare/v0.6.1...v0.6.2

- Python
Published by dotsdl about 1 year ago

alchemiscale - Release v0.6.1

This is a bugfix release in response to a serious bug identified and addressed in #370. We recommend not using the v0.6.0 release due to this bug.

What's Changed

  • Fix broken codepath in compute API for resolving task restarts for failed ProtocolDAGResults by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/370

Full Changelog: https://github.com/OpenFreeEnergy/alchemiscale/compare/v0.6.0...v0.6.1

- Python
Published by dotsdl over 1 year ago

alchemiscale - Release v0.6.0

This release introduces several major features aimed at improving the overall user experience and result retrieval performance: - Task restart policies, which allow users to automate Task restarts for failure modes they encounter from unreliable compute resources - compression-at-rest of ProtocolDAGResult objects by compute services, and use of the compact KeyedChain representation for these objects underneath - user-configurable ProtocolDAGResult on-disk caching in the AlchemiscaleClient, reducing wait times for pulling results when they have been previously requested

This release also includes the following stack requirements: - gufe > 1.2.0 - pydantic > 2

What's Changed

  • Restart policy: resolve restarts by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/286
  • Implement task restart policies by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/280
  • Use pydantic > 1 by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/192
  • Add use of zstd compression on compute services by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/336
  • Remove Python 3.10 from CI, add SPEC0 badge by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/359
  • Use diskcache for caching ProtocolDAGResults in the Alchemiscale client by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/271
  • Updated gufe and openfe versions in conda envs, added cuda-version > 12 to avoid pulling cudatoolkit by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/360
  • Added CITATION.cff file with authors involved in alchemiscale working group over the last year by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/362
  • Update user guide install instructions by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/361
  • Pin libsqlite to <3.49 by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/365
  • Fix sporadic test failures by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/367
  • Prep for release 0.6.0 by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/363

Full Changelog: https://github.com/OpenFreeEnergy/alchemiscale/compare/v0.5.3...v0.6.0

- Python
Published by dotsdl over 1 year ago

alchemiscale - Release v0.5.3

Small patch release, addressing a bug in protocol filtering in SynchronousComputeService.

What's Changed

  • SynchronousComputeService now properly claims tasks with protocols filter by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/337
  • Update deployment envs, user guide to use release 0.5.3. by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/339

Full Changelog: https://github.com/OpenFreeEnergy/alchemiscale/compare/v0.5.2...v0.5.3

- Python
Published by dotsdl over 1 year ago

alchemiscale - Release v0.5.2

This patch release includes fixes/changes to alchemiscale internals; there are no new user-facing features or changes in this release. Please note that at minimum gufe v1.1.0 is now required.

Exceptional thanks to both @LilDojd and @ianmkenney for their work in this release cycle, in particular quickly addressing Cypher injection vulnerabilities identified by @LilDojd. This work greatly improves the security posture of alchemiscale, and should also come with performance benefits. :rocket:

What's Changed

  • Addressing failures in CI by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/317
  • Switch to matching against SettingsBaseModel instead of Settings in gufe_to_subgraph by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/316
  • Changes to address #292 by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/323
  • Adopt code from py2neo to remove the use of the id function in cypher queries by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/302
  • Closes #297 by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/324
  • Use python < 3.13 for building docs by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/325
  • Use query parameters wherever possible in Neo4jStore by @LilDojd in https://github.com/OpenFreeEnergy/alchemiscale/pull/330
  • Replace passlib with bcrypt by @LilDojd in https://github.com/OpenFreeEnergy/alchemiscale/pull/306
  • Replace the alchemiscale KeyedChain with new gufe KeyedChain by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/329
  • Release v0.5.2 preparation by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/334

New Contributors

  • @LilDojd made their first contribution in https://github.com/OpenFreeEnergy/alchemiscale/pull/330

Full Changelog: https://github.com/OpenFreeEnergy/alchemiscale/compare/v0.5.1...v0.5.2

- Python
Published by dotsdl over 1 year ago

alchemiscale - Release v0.5.1

This patch release includes small fixes identified from the 0.5.0 release, as well as changes needed due to the migration of alchemiscale to the OpenFreeEnergy GitHub org. We now also include openfe 1.1.0 in deployment environments.

Please note that new deployable Docker images for both server and compute are now published to GCR under the openfreeenergy namespace instead of the openforcefield namespace.

What's Changed

  • Set default claim_limit back to 1 by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/289
  • Switch pip installs to conda packages where possible, add restart policies to docker-compose containers by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/288
  • Added UNWIND to cancel tasks query by @ianmkenney in https://github.com/OpenFreeEnergy/alchemiscale/pull/299
  • Deploy openfe 1.1.0, update deployment apparatus for OpenFreeEnergy namespace by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/308
  • Update tutorial notebook for openfe 1.0, latest cinnabar by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/311
  • Prepping prod environments for v0.5.1 release by @dotsdl in https://github.com/OpenFreeEnergy/alchemiscale/pull/309

Full Changelog: https://github.com/OpenFreeEnergy/alchemiscale/compare/v0.5.0...v0.5.1

- Python
Published by dotsdl over 1 year ago

alchemiscale - Release v0.5.0

This release features changes required to support the following: - openfe and gufe versions >=1.0 - Folding@Home execution via alchemiscale-fah

If upgrading an existing alchemiscale deployment to this release, result objects (ProtocolDAGResults) produced with openfe and/or gufe versions <1.0 existing in the database will not be usable. Many settings options for common Protocols, such as the RelativeHybridTopologyProtocol, have been refined as part of these 1.0 releases, and these will settings remain relatively stable through the 1.0 series. Extract any results of importance from an existing alchemiscale deployment before upgrading to this release!

What's Changed

  • Added support for NonTransformations by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/270
  • More HTTPExceptions in the interface API endpoints by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/269
  • Test new openfe & gufe rc by @mikemhenry in https://github.com/openforcefield/alchemiscale/pull/254
  • Fix regular expression matching in query_networks by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/275
  • Update operations manual to address changes in Neo4j database management by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/272
  • Fix for create_network in interface API, properly deserializing AlchemicalNetwork by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/276
  • Test TaskHub Task claiming by Protocol by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/279
  • Changes needed to support execution via alchemiscale-fah by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/218
  • Increment compute env to use cudatoolkit 11.8 by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/278
  • release 0.5.0 prep by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/283

Full Changelog: https://github.com/openforcefield/alchemiscale/compare/v0.4.0...v0.5.0

- Python
Published by dotsdl almost 2 years ago

alchemiscale - Release v0.4.0

This release focused on performance improvements throughout alchemiscale, both user-facing and compute-facing. In particular: - performance improvements to Task creation, actioning, and claiming by compute services - new client methods for getting and setting many network weights at once - new client methods for getting Tasks statuses and actioned Tasks for many networks at once - added concept of network state, allowing users to set networks to inactive, deleted, or invalid when no longer relevant - now using neo4j 5.x, and the official neo4j Python driver for database communication

If upgrading an existing alchemiscale deployment to this release, please follow the migration guide.

What's Changed

  • Fix version menu by @mikemhenry in https://github.com/openforcefield/alchemiscale/pull/231
  • Fix moto imports in conftest by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/233
  • Bulk reformat project with Black by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/234
  • fix small typo by @mikemhenry in https://github.com/openforcefield/alchemiscale/pull/240
  • remove py2neo as primary database driver by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/235
  • Fixes a bug identified by @JenkeScheen in #236 by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/238
  • Support Neo4j 5.x by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/242
  • Optimizations for TaskHub task claiming by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/244
  • Simplify action_tasks by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/249
  • Use mamba-org/setup-micromamba by @mattwthompson in https://github.com/openforcefield/alchemiscale/pull/253
  • Adding bulk task creation server side by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/250
  • Added DeprecationWarning to AlchemiscaleClient.getscopedkey by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/256
  • Add more bulk methods to the Alchemiscale client by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/255
  • Added logo to README, docs by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/262
  • Added a test to check that ComputeService deregistration resets claimed Tasks to status waiting by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/260
  • User-defined Network state implementation with the NetworkState GufeTokenizable by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/257
  • Unimplemented tests marked with xfail by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/263
  • Release 0.4.0 testing by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/264

New Contributors

  • @mattwthompson made their first contribution in https://github.com/openforcefield/alchemiscale/pull/253

Full Changelog: https://github.com/openforcefield/alchemiscale/compare/v0.3.0...v0.4.0

- Python
Published by dotsdl about 2 years ago

alchemiscale - Release v0.3.0

This release focused on improving users' ability to influence compute effort allocation on their Tasks, as well as enabling support for large AlchemicalNetworks. This includes: - the ability to set and get Task priority, set and get AlchemicalNetwork weight relative to others, and set and get actioned Task weights. These give users several levers of control for getting results of greater interest more quickly. Big thanks to @ianmkenney for working on these pieces in detail. - vast improvement to AlchemicalNetwork submission and AlchemicalNetwork, Transformation, and ChemicalSystem retrieval through smarter serialization via use of keyed dicts, thanks to work by @ianmkenney and @dotsdl to solve alchemiscale#216: - users should see very fast submission times compared to previously, even on relatively slow internet connections - "large" networks (>1000 chemical systems) should be ingestible without issue

What's Changed

  • Set minimum for openmmforcefields version in conda envs to 0.12.0 by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/193
  • Fixing broken CI due to lomap import failures by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/196
  • Update prod envs to use gufe 0.9.5, openfe 0.14.0 by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/197
  • Make test env use latest release of openfe and gufe instead of main by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/203
  • Add the visualize kwarg to the create_network method by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/207
  • Add ability to sort ScopedKeys by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/199
  • Remove return_gufe kwarg from AlchemiscaleClient.query_networks by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/206
  • Add client/API getter and setter methods for network weights by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/212
  • Add weight kwarg to AlchemiscaleClient.action_tasks method by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/209
  • Add getters and setters for Task priority in AlchemiscaleClient by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/213
  • Add get_network_actioned_tasks and get_task_actioned_networks to AlchemicaleClient by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/214
  • Network representation optimizations for JSON encoding by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/217
  • Optimization to gufe_to_digraph to avoid repeated traversals, calls to GufeTokenizable.to_shallow_dict by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/219
  • Added docs on getting and setting AlchemicalNetwork weights, Task actioned weights, and Task priorities by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/223
  • Attempting to fix seemingly random failures on CI by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/224
  • Adding KeyedChain class by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/227
  • QA tests for impending 0.3.0 release by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/226

Full Changelog: https://github.com/openforcefield/alchemiscale/compare/v0.2.1...v0.3.0

- Python
Published by dotsdl over 2 years ago

alchemiscale - Release v0.2.1

This is a bugfix release for the v0.2.x release series.

What's Changed

  • Added n_retries usage for SynchronousComputeService by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/186
  • Added validation guardrail for AlchemicalNetworks with self-Transformations by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/189
  • Updates for release 0.2.1 by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/190

Full Changelog: https://github.com/openforcefield/alchemiscale/compare/v0.2.0...v0.2.1

- Python
Published by dotsdl over 2 years ago

alchemiscale - Release v0.2.0

This release focused on adding documentation for alchemiscale, including a user guide, a first tutorial, deployment, compute, and operations guides, a developer guide, and an API reference. It also added efficient methods for getting network-wide results to the AlchemiscaleClient in #178, and some smaller fixes to the alchemiscale CLI.

What's Changed

  • Fixed version mismatch of alchemiscale in conda environments by @ianmkenney in https://github.com/openforcefield/alchemiscale/pull/165
  • Add user guide to docs, restructure some other documentation pages by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/166
  • Added compute doc, adding other operations docs (e.g. backups) by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/167
  • Support adding and removing multiple scopes from identity with single CLI call by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/172
  • Add developer-facing docs by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/175
  • Review and refinement of API docs by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/177
  • Added get_network_results method to AlchemiscaleClient by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/178
  • Add Alchemiscale Demo as first tutorial by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/174
  • Updated prod-oriented conda envs to use latest openfe, gufe, and python 3.11 by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/181

New Contributors

  • @ianmkenney made their first contribution in https://github.com/openforcefield/alchemiscale/pull/165

Full Changelog: https://github.com/openforcefield/alchemiscale/compare/v0.1.4...v0.2.0

- Python
Published by dotsdl over 2 years ago

alchemiscale - Release v0.1.4

This release focused on bugfixes for user-facing issues, in particular opportunities for mismatches between Transformation and ProtocolDAGResult gufe keys in the objectstore and statestore (#161). It also added initial documentation structure (#157), and guardrails on the allowed Task statuses for actioning (#162).

What's Changed

  • Update prod envs to use openfe 0.11.0 by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/158
  • Add deplyoment docs v2 by @mikemhenry in https://github.com/openforcefield/alchemiscale/pull/157
  • Make ProtocolDAGResult push and pull keys self-consistent by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/161
  • Set pydantic version less than 2.0 for all conda envs by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/160
  • Only action Tasks that are status 'waiting', 'error', or 'running' by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/162

Full Changelog: https://github.com/openforcefield/alchemiscale/compare/v0.1.3...v0.1.4

- Python
Published by dotsdl almost 3 years ago

alchemiscale - Release v0.1.3

This release focused on bugfixes and user-facing features and performance improvements in the AlchemiscaleClient. In particular, it added: - visual feedback for method calls that push or retrieve large data structures - asyncio-based result retrieval - LRU caching where appropriate to methods that retrieve large data structures, allowing for fast repeated calls for the same objects - bulk API points for methods that get or set properties of many individual objects, allowing efficient batching and fast execution - Task status methods at the scope and network levels - fast accessor methods for related components, such as get_transformation_tasks, get_chemicalsystem_networks, get_network_transformations, etc.

Mismatches in the gufe key of an object between the client and the server should also no longer lock users out of their data, using the accessor methods mentioned above.

What's Changed

  • Update deployment envs with openfe=0.7.4, gufe=0.7.3 by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/135
  • Use pyproject.toml by @mikemhenry in https://github.com/openforcefield/alchemiscale/pull/141
  • Add AlchemiscaleClient API points for simpler status, result retrieval by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/143
  • AlchemiscalClient async+bulk for results, other methods; add request, response compression for large objects by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/150
  • AlchemiscaleClient LRU caching by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/155
  • Updated dependencies in conda envs, both testing and deployment by @dotsdl in https://github.com/openforcefield/alchemiscale/pull/152

Full Changelog: https://github.com/openforcefield/alchemiscale/compare/v0.1.2...v0.1.3

- Python
Published by dotsdl almost 3 years ago

alchemiscale - Release v0.1.2

Quality of life improvements on AlchemiscaleClient, SynchronousComputeService logging.

- Python
Published by dotsdl about 3 years ago

alchemiscale - Release v0.1.1

Bugfix release from deployment issues from release 0.1.0.

- Python
Published by dotsdl about 3 years ago

alchemiscale - Release v0.1.0

This marks the first release of alchemiscale. All components are deployable and usable, although there are certainly rough edges, performance bottlenecks, and insufficient documentation. These will be addressed in the releases to follow, informed by user feedback.

- Python
Published by dotsdl about 3 years ago