Release Notes

v3.0.1 August 2020

  • Requirement changes:
    • OpenEye-drconvert==1.1.1
      • Minor documentation fix for OEDUConverter

v3.0.0 August 2020

  • Support for Python versions that are less than or equal to 3.6 is being deprecated in the next Orion release.

  • Design Unit support has been added to FileToRecordConverter and RecordsToFileConverter

  • Requirement changes:

    • OpenEye-floe==0.11.0

      Changes since 0.9.6

      • CubeTestRunner.set_parameters has been modified to trigger parameter validation and conversion on the underlying cube in order to support testing parameters which override get_runtime_value.
      • An issue that resulted in errors running a floe due to very slow Python imports has been resolved.
      • Issues with Cube inheritance and constructor parameters are now more thoroughly validated.
      • An issue related to memory overflows has been fixed.
      • floe detect now enables the Python fault handler.
      • Cube parameters and parameter groups are copied as cube instance attributes.
      • cube.modify_parameter(cube.param, **fields) checks if param belongs to cube.
      • When promoting parameter it is sufficient to provide promoted_name only.
      • The documentation of the disk_space and memory_mb parameters has been fixed to reflect the backend implementation. The units of both parameters are mebibytes (MiB == 1048576 B) rather than megabytes (MB). Also, notes regarding taking into account overheads by requesting a couple hundred MiB more than is required have been added.
      • The instance_tags parameter is deprecated and will be removed in the future.
      • Issue where running floes outside of Orion would not honor item_count has been resolved.
      • An issue causing local parallel cubes in a cycle to hang has been fixed.
      • An issue preventing large cube groups from passing validation has been fixed.
      • floe.api.ordering.cube_precedents now correctly returns upstream cubes.
      • An issue where the max value of Parallel Cube parameter item_count would allow overflows has been resolved and reduced from 100000 to 65535.
      • An issue where sink Cubes would hang when using an initializer has been resolved.
      • An issue where parameters with many and required set would allow no input to be set has been resolved.
      • An issue related to the default validation of parameters with many=False has been resolved.
      • An issue where the required attribute of promoted parameters would be ignored has been fixed.

      Breaking Changes

      • cube.parameters() and cube.parameter_groups() methods now list parameters that are attributes of cube instance, not attributes of cube class.
      • A ValidationError is now raised when the name of a Parameter or Port is the same as the name of one of the cube attributes, which previously caused this cube attribute to be shadowed unintentionally.
    • OpenEye-datarecord==3.0.0

      • Changed type string for field type DesignUnit from “DesignUnit” to “Chem.DesignUnit”
      • datarecord.utils.TemporaryPath has been deprecated. orionclient.utils.TemporaryPath should be used instead.
      • A field type DesignUnit for storing OEDesignUnits has been added.

      Breaking Changes

      • The implementation of datarecord has mostly moved to C++ in the toolkits.
    • OpenEye-drconvert==1.1.0

      • Support for OEDesignUnit has been added
      • The dependency on structlog has been removed
      • The log level of INFO statements has been decreased to DEBUG
    • OpenEye-orionclient==3.0.0

      • Added OEDesignUnit support for dataset upload and download
      • Support for uploading OEDU files to datarecords has been added to upload()
      • Orion server API version has been increased to require 5.0 or later.
      • A new type, Balance, has been added.
      • Support for retrieving cost information on a WorkFloeJob has been added. Cube cost will show automatically when using the --wait flag on jobs in the command line.
      • get_current_workfloe_job() has been added to help cubes running in Orion get the WorkFloeJob that the cube is running in.
      • A flag with-token has been added to ocli config profile to optionally create a profile using a token value.
      • datarecord.utils.TemporaryPath has been deprecated. TemporaryPath should be used instead.
      • The dependency on Click has been updated to >=6.7,<8.0.
      • To improve debugging capabilities, an additional request header has been added.
      • An issue where providing an organization id when sharing with Organizations would not make the data available globally.
      • orionclient.types.Datarecord.records now yields OEMolRecord
      • orionclient.session.in_orion() now correctly returns a boolean.

      Breaking Changes

      • Datetimes on Orion Client objects now contain seconds, format %Y-%m-%d %H:%M:%S

Bugfixes:

  • An issue with too frequent flushing in DatasetUpdaterCube has been fixed.
  • The DatasetAppenderCube now finalizes datasets.

v2.4.6 May 2020

  • Requirement changes:
    • OpenEye-floe==0.9.6
      • An issue causing memory overflows has been fixed

v2.4.5 April 2020

  • Requirement changes:
    • OpenEye-orionclient==2.6.3
      • The efficiency and reliability of ShardCollection.list_shards has been improved.

v2.4.4 March 2020

  • Requirement changes:
    • OpenEye-OrionClient==2.6.2
      • The dependency on OpenEye-Datarecord has been updated to >=0.13.0,<0.15.0.
      • An issue that broke python 3.5 support has been resolved.
      • An issue with the encoding of credentials has been fixed.
      • An issue in which uploading shards would not correctly retry has been fixed.
    • OpenEye-Floe==0.9.5
      • An issue that resulted in errors running a floe due to very slow Python imports has been resolved.
      • Issues with Cube inheritance and constructor parameters are now more thoroughly validated.

v2.4.3 March 2020

  • Issues with finding the primary molecule field and logging in RecordsToCollectionCube have been fixed.
  • The max parallelism of ParallelCloseShardsCube is now limited to 10.
  • Requirement changes:
    • OpenEye-floe==0.9.3
      • floe detect now has a flag --no-json to not inspect JSON files as Workfloes.
      • Validation of ports has been improved.
    • OpenEye-Datarecord==0.14.0
      • Infinite bounds in Range fields produce valid JSON.
    • OpenEye-Drconvert==0.7.3
      • The datarecord dependency has been updated to >=0.13.0,<0.15.0.

v2.4.2 February 2020

  • Requirement changes:
    • OpenEye-orionclient==2.6.1
      • Supports the OpenEye-floe 0.9.* series.
    • OpenEye-Drconvert==0.7.2
      • Support added for Float and Int vectors
      • Drconvert CLI now supports going from records to mols
    • OpenEye-floe==0.9.2
      • floe lint now incorporates errors and returns a non-zero exit code if it encounters an error.
      • floe.api.parameter has been deprecated in favor of floe.api.parameters. floe.api.parameter will be removed in the next major release of the OpenEye-floe package.
      • An issue that resulted in the loss of parameter groups at package ingestion has been resolved.
      • An issue that resulted in Cubes and Workfloes not being detected if the same UUID was used has been resolved.

v2.4.1 January 2020

  • Requirement changes:
    • OpenEye-floe==0.9.1
      • Internal Floe code, which was deprecated in previous Orion releases, and is no longer used, was removed.

v2.4.0 December 2019

  • Support for the OEZ format has been added to the following cubes:
    • CollectionResizeCube
    • CollectionToRecordsCube
    • RecordsToCollectionCube
  • orionplatform.cubes.files.RecordsToRecordFileConverter now uploads its files in parts reducing the disk usage
  • Requirement changes:
    • OpenEye-floe==0.9.0
      • New parameters, which optionally enable metric collection for cubes have been added.
    • OpenEye-OrionClient==2.6.0
      • A new field owner has been added to ShardCollection.
      • Support for sharing and unsharing with organizations without ``ID``s have been added.

v2.3.0: November 2019

  • Requirement changes:
    • OpenEye-floe==0.8.11
      • A new method WorkFloe.check_arguments(), which performs basic validation of runtime arguments without actually running a floe has been added.
      • ImportError for floe parameters when calling WorkFloe.from_json(no_imports=True) is no longer raised.
      • Parameter defaults are now validated when calling WorkFloe.validate(), unless the parameter requires a value to be given.
      • Validation of command line arguments for floes created with no_imports=True has been improved.
      • A ValidationError is now raised for unknown command line arguments.
      • The WorkFloe UUID in a specification is now included in the WorkFloe object upon instantiation.
    • OpenEye-Datarecord==0.13.0
      • Sets lower bound on OpenEye-toolkits>=2019.10.2
    • OpenEye-Drconvert==0.7.0
      • Sets lower bound on OpenEye-toolkits>=2019.10.2
    • OpenEye-orionclient==2.5.0
      • Sets lower bound on OpenEye-toolkits>=2019.10.2

v2.2.1 November 2019

Bugfixes:

  • The constructors of FieldParameter and its subclasses have been made compatible with floe.api.parameters.BaseParameter

v2.2.0 November 2019

  • Requirement changes:
    • OpenEye-floe==0.8.9
      • Raises error when attempting to emit more than the maximum allowed bytes onto a port.
      • An issue where re-use of a cube having an UUID assigned is incorrectly detected more than once has been fixed.

Bugfixes:

  • A duplicate of output_tags in the DatasetWriterCube Options parameter group has been removed.

v2.1.0 October 2019

  • BooleanSwitch and ParallelBooleanSwitch have been added.
  • FieldSelectorParameter which allows selecting fields by name has been added.
  • RecordBinaryOutPort allowing emitting records as bytes without having to deserialize them has been added.
  • limit parameter added to ShardReaderCube to allow streaming only some shards from a collection.
  • Requirement changes:
    • OpenEye-orionclient==2.4.0
      • Support for uploading files by parts added.
      • orionclient.types.Token added.
      • Closing shards in the same cube as it was created now logs a warning.
    • OpenEye-Datarecord==0.12.12
      • Support for reading records from stdin added.
    • OpenEye-floe==0.8.8
      • A new command floe html path/to/file to generate a simple HTML representation of a floe has been added.
      • Avoid importing code from cubes outside a cube group.
      • A bug related to exporting cycle information to JSON when ProxyCubes are involved has been fixed.
      • from_json() has new arguments to optionally remove rank and cycle details when reading a spec so that it can be resorted.

v2.0.1 September 2019

Bugfixes:

  • RecordsToCollectionCube now recovers from rare write errors.
  • Shard upload attempts have been increased to 10.

v2.0.0 August 2019

  • Requirement changes:
    • OpenEye-orionclient==2.2.0
      • Support for uploading packages via url has been added.
      • Support for Floe package deprecation and un-deprecation has been added. (Requires 3.0 API version)
      • A new command ocli packages download to download packages has been added.
      • A new command ocli config delete to delete profiles has been added.
      • Arguments --limit and --offset to listing commands for the CLI have been added.
      • Various bugfixes have been made.

v1.1.4 August 2019

  • Requirement changes:
    • OpenEye-floe==0.8.7
      • Promoted parameters can now be given a default name by using modify_parameter.

v1.1.2 August 2019

  • Requirement changes:
    • OpenEye-drconvert==0.6.19
      • The handling of conformer data on OEMolRecords and OEMols has been improved.

v1.1.0 August 2019

  • LinkFieldParameter has been added.
  • Requirement changes:
    • OpenEye-Floe==0.8.5
      • Minor bugfixes have been made.
    • OpenEye-OrionClient==1.2.0
      • The ability to untag resources has been added.
      • Additional fields have been added to ShardCollection and Shard objects

Bugfixes:

  • Occasional traceback in RecordsToCollectionCube has been fixed.
  • The name argument to orionplatform.parameters.FieldParameter and its derived classes is now optional, to match the defaults in Floe.
  • Input parameters can now be None if they are not required.

v1.0.2 July 2019

  • The verbosity of RecordsToCollectionCube has been decreased.
  • Documentation about using collections and batching work has been added.
  • Requirement changes:
    • OpenEye-Floe==0.8.4
      • The argument validation to the main thread has been moved and now delivers a cleaner error message.
      • Parsing parameters without any imports to enable Orion Client validation has been enabled.
    • OpenEye-Floe==0.8.3
      • Command line parameter messages to facilitate determining which parameters are unsatisfied has been improved.

v1.0.1 July 2019

v1.0.0 June 2019

  • Requirement changes:
    • OpenEye-datarecord==0.12.11
      • The OEField names that are non-empty strings are now validated.
    • OpenEye-orionclient==1.0.0
      • The latest available HTTP endpoints can now be used.
      • API version validation is now performed upon communication with the server.
      • The --verify-ssl flag has been removed for ocli config profile
      • Prompts for Secrets values on CLI have been added.
    • OpenEye-Floe==0.8.0
      • New simplified syntax for ports, parameters and Cubes have been added that allow for their names to be omitted.

Bugfixes:

  • An issue that prevented using files named with special characters (e.g., |, /, and >) has been fixed.

v0.3.2 June 2019

  • Requirement changes:
    • OpenEye-Floe==0.7.1
      • An issue with initializers that caused upstream cubes to hang indefinitely has been fixed.

v0.3.1 May 2019

Bugfixes:

v0.3.0 May 2019

  • Requirement changes:
    • OpenEye-Floe==0.7.0
      • Handling of parameter validation has been improved.
      • The validate_default() method has been removed.

v0.2.3 May 2019

  • Requirement changes:
    • OpenEye-Floe==0.6.27
      • An issue that caused messages to be duplicated when sent from a Cube group to multiple downstream Cubes has been fixed.
    • OpenEye-Drconvert==0.6.18
      • An issue that caused an isomeric conf test to be enabled by default for SDF and MOL2 files, resulting in fewer records than expected, has been fixed.
      • Blob data is no longer written into CSV files.
      • An option to add the title of molecules to a field on the record has been added.

Bugfixes:

  • A default value of a FieldParameter no longer becomes the title if no title is provided.
  • FileInputParameter now correctly supports a dictionary with a single key file.

v0.2.2 May 2019

  • Requirement changes:
    • OpenEye-datarecord==0.12.10
      • A bug in datarecord.types.IntVec that stored certain values incorrectly has been fixed. All previous records that have such a field may be corrupt.
        • An datarecord.types.IntVec that is known to only contain positive numbers is safe.
    • OpenEye-Floe==0.6.26
      • Floe detection has been improved to catch more issues before runtime and show the path where issues occurred in all cases.
      • Multiple cubes in a WorkFloe ca no longer have the same name.
      • All required ports now must be used at runtime.
      • The min_parallel default value has been reduced from of 1 to 0 to avoid running allocations when there is no work to be done.

Bugfixes:

  • ORION_CPU, ORION_GPU, ORION_MEM, ORION_DISK, ORION_TAGS, ORION_JOB_ID, and ORION_PROJECT, ORION_INSTANCE constants for Orion environment variables have been added.

  • DatasetAppenderCube, FileInputParameter, FileOutputParameter, BinaryFileReaderCube, CloseShardsCube, and ParallelCloseShardsCube have been added.

  • Types have been added to FieldParameters.

  • Optional validation has been added to CollectionResizeCube.

  • Requirement changes:

    • Requirements are now fully pinned

    • OpenEye-Floe==0.6.25

      • An issue where a required parameter with choices would require that the default is in the choices has been fixed. None is now a valid choice.
      • An issue where validate_default() for StringParameters to handle None defaults incorrectly has been fixed.
      • An issue that caused min_parallel and max_parallel parameters to not have a description field has been fixed.
    • OpenEye-orionclient==0.6.14

      • Collection commands on the CLI have been improved.
    • OpenEye-orionclient==0.6.13

      • orionclient.helpers.try_hard_to_create_shard() and orionclient.helpers.try_hard_to_download_shard() have been added.
      • Log messages for failures and retries have been clarified.
      • Logs now display retry statistics if total time of request exceeds 60 seconds.

      Bugfixes:

      • Silent failure of uploading datasets with files that aren’t supported has been fixed.
      • An internal server error that caused an issue with requests has been fixed. All requests are now retried.
      • Shard uploads on 400s are now retried.

Bugfixes

  • Shards are now emitted in the “ready” state only, by default, from CollectionStream and CollectionReaderCube.
  • The ParallelCollectionToRecordsCube item and prefetch counts are now set to 1.
  • orionclient.helpers.collections.try_hard_to_create_shard() and orionclient.helpers.collections.try_hard_to_download_shard() can now be used to improve reliability of large scale floes.
  • All errors that occur when processing shards are now caught and logged as failures.
  • Shard-related retry logging has been clarified.
  • Collections from orionplatform.cubes.collections.CollectionReaderCube are now emitted.

v0.2.1 March 2019

  • Requirement changes:
    • OpenEye-Floe>=0.6.24,<0.7.0
      • Minor bugfixes have been made.
      • Additional features for the CubeTestRunner have been added.
      • Improvements have been made to the network protocol.
    • OpenEye-drconvert>=0.6.16,<0.7.0
      • Minor bug fixes have been made.

Bugfixes

  • RecordToCollectionCube no longer crashes when given records without metadata.

v0.2.0 January 2019

  • Cuberecord has been removed as a dependency in favor of simplified API added to the orionplatform library.
    • This API will replace Cuberecord going forward, though Cuberecord will continue to be usable within Orion.

v0.1.14 February 2019

  • Requirement changes:
    • OpenEye-drconvert>=0.6.15,<0.7.0
      • More options for conversions have been added. In addition, only a single pass for molecular formats that don’t contain SD data is now required.
    • OpenEye-datarecord>=0.12.9,<0.13.0
      • A new Link type and support with links have been added.
    • OpenEye-orionclient>=0.6.12,<0.7.0
      • New APIs have been provided for creating links from Orion Resources and retrieving the link data.
    • OpenEye-Floe>=0.6.22,<0.7.0
      • Local failures of parallel jobs has been fixed.
      • The default memory usage of cubes has been reduced from 2048 MB to 1800 MB.
      • The many argument to Parameters is now supported.
    • OpenEye-schemagen>=0.3.4,<0.4.0
      • More options for generating schemas has been added.

v0.1.13 January 2019

  • Requirement changes:
    • OpenEye-drconvert>=0.6.13,<0.7.0
      • Now calls:py:meth:flush() before returning records from MolFileConverter.
    • OpenEye-datarecord>=0.12.7,<0.13.0
      • A new method flush() has been added to OERecord that writes all cached values to bytes.
    • OpenEye-schemagen>=0.3.3,<0.4.0
      • Minor cleanup has been performed.

v0.1.12 December 2018

  • Requirement changes:
    • OpenEye-drconvert>=0.6.12,<0.7.0
      • Whitespace in SD data is now handled.
    • OpenEye-floe>=0.6.19,<0.7.0
      • A bug where ProxyCubes had their specs cleared has been fixed.
    • OpenEye-orionclient>=0.6.10,<0.7.0
      • The Orion Client is now more robust to handling API changes.
      • Sharing no longer requires default permissions.
      • An issue with unsharing resources shared with organizations has been fixed.

v0.1.11 November 2018

  • Requirement changes:
    • OpenEye-floe>=0.6.18,<0.7.0
      • parameter_overrides are now honored locally.
    • OpenEye-datarecord>=0.12.6,<0.13.0
      • An issue which caused conformer titles to be missing has been fixed.

v0.1.10 November 2018

  • Requirement changes:

    • OpenEye-schemagen>=0.3.2,<0.4.0
    • SD data consisting of only whitespace now survives.
    • OpenEye-datarecord>=0.12.5,<0.13.0
    • More testing for metadata has been added.
    • A new metadata flag, Meta.Flags.Predicted, has been added to datarecord.
    • OpenEye-floe>=0.6.17,<0.7.0
    • A default value of 1000 for max_parallel parameter on Parallel cubes has been added.
    • The assumption that platform supports POSIX signal handling has been fixed.

v0.1.9 October 2018

  • Requirement changes:
    • OpenEye-schemagen>=0.3.1,<0.4.0
      • Delimiters now ordered by descending priority.
    • OpenEye-orionclient>=0.6.9,<0.7.0
      • 0.6.9
        • Adds headers to improve debugging capabilities.
      • 0.6.8
        • A new exception, OrionTimeout, has been added that indicates that a request couldn’t be made to the specified Orion within the expected time.
        • Several exceptions that were being raised in the CLI have been resolved.
    • OpenEye-floe>=0.6.15,<0.7.0
      • 0.6.15
        • An issue that caused parallel workers to incorrectly propagate failures when run in Orion has been fixed.
      • 0.6.14
        • A bug with promoted parameter titles in hypercubes has been fixed.
      • 0.6.13
        • Workfloe specification validation has been improved.
    • cuberecord>=0.16.3,<0.17.0
      • An issue with using fast_read parameter outside of Orion has been fixed.

v0.1.8 October 2018

  • Requirement changes:
    • OpenEye-orionclient>=0.6.7,<0.7.0
      • The reliability of configuring profiles using ocli config profile has been improved.
      • Uploading and downloading of shards is now retried.
      • A new ocli jobs watch command has been added.
      • The memory footprint of Dataset.records() iterator has been reduced.
    • OpenEye-datarecord>=0.12.4,<0.13.0
      • A minor bug where child records would get a extra field when deserialized has been fixed.
    • OpenEye-cuberecord>=0.16.2,<0.17.0
      • A memory leak in DatasetReaderCube has been fixed.
      • Improves the robustness of Collection handling

v0.1.6 September 2018

  • Requirement changes:
    • OpenEye-floe>=0.6.12,<0.7.0
      • 0.6.12
        • Includes parameter name in all validation errors.
        • A flag has been added to input buffers for whether an input request has been sent has been added.
    • OpenEye-orionclient>=0.6.5,<0.7.0
      • 0.6.5
        • A new organization_feedback_email attribute has been added to UserProfile.
      • 0.6.4
        • An open method has been added to ShardCollection.
        • open and close sub-commands have been added to the collections command.
        • Additional keyword arguments to list commands on the CLI.
        • ocli files list now has the --name and --project filters.
        • ocli datasets list now has the --name and --project filters.
        • ocli workfloes list now has the --name and --package filters.
        • ocli collections list-shards now has the --name filter.
        • ocli jobs list now has the --name filter.
        • ocli secrets list now has the --name filter.
        • ocli services list now has the --name filter.
        • An issue that caused the lose of filters on pagination when paginating large numbers of resources has been fixed.

v0.1.5 September 2018

  • Requirement changes:
    • OpenEye-cuberecord>=0.16.1,<0.17.0
    • OpenEye-datarecord>=0.12.3,<0.13.0
    • OpenEye-drconvert>=0.6.11,<0.7.0
    • OpenEye-schemagen>=0.3.0,<0.4.0
    • OpenEye-floe>=0.6.11,<0.7.0
    • OpenEye-orionclient>=0.6.3,<0.7.0

v0.1.4 September 2018

  • Explicit requirements for drconvert and schemagen have been added.
  • Trust semantic versioning is being honored for patches