ck icon indicating copy to clipboard operation
ck copied to clipboard

Improving CM core

Open gfursin opened this issue 9 months ago • 0 comments

Aggregating tasks to improve CM core based on user feedback (this ticket is being gradually updated):

Functionality

  • [x] Add support to check min CM version for automations and scripts
  • [x] Move string checks to belong to [True, yes, on] to cmind.utils to avoid duplicates
  • [x] Add cm checkout repo to checkout pulled repos
  • [x] Add support to debug CM core and scripts (cmind.utils.debug_here) (tested with Visual Studio)
  • [x] Develop alias to pull mlcommons@cm4mlops instead of mlcommons@ck (when -b is not used)
  • [ ] Add portable md5sum to cmind.utils from here - it is often used in various CM scripts
  • [ ] Add portable tar and zip extractor to cmind.utils based on ABTF prototyping - used in many projects
  • [x] Add logging to CM core
    • [ ] Agree on CM logging names/streams
    • [ ] Convert CM prints to logging
    • [ ] Convert CM script prints to logging
  • [x] Print internal status (version, paths to repos, python used, etc): cm test core
  • [ ] URGENT: setup.py will be deprecated soon and we need to provide a new way to install CM - help is appreciated!

Tests

  • [ ] Unify GitHub test names
  • [ ] Add more unit tests to cover most/all CM internals across different platforms
  • [ ] Agree how to keep control of code quality of CM scripts and improve quality of existing CM scripts (from prototype to production)

Docs

  • [ ] Agree on how to show optional flags. Should be similar to Python parser: cm run script ... [--help] [--path PATH] ...
  • [x] Generate CM API docs per version with sphynx and upload to website
  • [ ] Improve basic CM framework docs/tutorials based on cmake/bazel/workflow concept
    • [ ] CLI
    • [ ] API
    • [ ] add new recipe
    • [ ] share new recipe
    • [ ] work with CM scripts
      • [ ] add new script
      • [ ] reuse new script
      • [ ] CM cache
      • [ ] workflow (env/state)
        • [ ] deps with conditions
        • [ ] customize
  • [ ] Provide guide for user contributions and to report issues

Tutorials

  • [ ] Basic CM concepts
  • [ ] CM automations (use, extend, add)
  • [ ] CM scripts

Brainstorm

  • [ ] Add possibility to have strict validation of inputs and types for production environments
  • [ ] Move CM index to sqlite to speed up search by tags and enable parallel execution - need to brainstorm
  • [ ] Check how to parallelize cmind.access runs (if needed)
  • [ ] Simplify get git, download file, extract file with custom CM cache entry ...
  • [ ] Simplify docker generation via separate docker automation
  • [ ] Test CM scripts with different versions of dependencies
    • [ ] Enable crowd-testing and reporting similar to cTuning

gfursin avatar Apr 24 '24 11:04 gfursin