spiff-element-units/TODO.md

2.9 KiB

TODOs

v0.3.1

  1. document the supported element units
  2. document the expected call pattern
    1. full workflow with main process id x2
    2. lazy load with subprocess id x2
    3. restore main process id/something related to call activity
  3. in the integration tests, do some save/restore (maybe on human task?)
    1. or after each task and requery for that element id? perf?

mostly unordered queue

  1. write log under each cache key
  2. new api to get element units without using the cache
  3. new api to write existing element units to the cache
  4. split cache into spiff-element-units-disk-cache
  5. split spiffworkflow-specs to own lib
  6. add support for the all_specs structure
  7. cleanup the auto generated descriptions (pypi page is blank)
  8. are there too many to_strings?
    1. yes tied into domain objects vs serde objects
  9. there is some issue in the tests when after an rmtree the cache dir can't be created again
    1. create a test for it?
    2. not sure if it affects callers that own the cache dir
    3. ^ wtf was i thinking about here?
  10. there is some issue where it takes two integration test runs for multiple-call-activities to catch up
    1. no its on run of the integration tests hashes for the ResumableSubprocess and index order change
    2. stable order in the manifest problem?
  11. can dmn decision_tables be lazy loaded for BusinessRuleTasks?
    1. for "free" if we make a subprocess out of them and swap the node for a CallActivity?
    2. or (in some situations?) "compiled"?
  12. using the serde objects as domain objects is too expensive/restrictive
    1. have intermediate objects that are ref/slice based?
    2. most likely just do for element units before returning them out
    3. could help with spec mixin interactions?
    4. specific task types?
  13. need to have test versions of element units
    1. build.rs? read from disk? just hardcode?
    2. how much do we leverage the integration tests vs rust tests?
    3. when we don't use the serde objects, unit tests become easier?
  14. port/use/something the env macros from typeahead
  15. more macro leverage?
  16. push to crates.io

good first issues

  1. when pushing for keys, if the last index is what is about to be pushed, can skip duplicating the index
    1. see simple call activity main manifest
  2. "mutliple-call-activities/multiple_call_activities.json" naming has tripped me up 2x now
  3. look at more (self) -> X to transition objects instead of clone
    1. must reduce the number of clones or somehow else be cleaner
    2. manifest from_element_units?
  4. move more things to Iterator (element_ids, processes, etc)
  5. maybe not run full build matrix on pr?
    1. nothing real arch/os specific happening so just linux/x86_64 and sdist?
  6. fill out the rest of the specs.rs is_empty function
  7. run integration tests as part of CI
  8. run cargo tests as part of CI
    1. https://github.com/actions-rs/cargo
    2. also maybe just build the dev image and use make to also get integration tests?