- fixed detection of a CM artifact using 'cm info .' when inside virtual env entries.
- added "cmind.utils.debug_here" function to attach remote Python debugger and tested with Visual Studio Code.
- added test to avoid checking out CM repo that was not pulled
- added utils.safe_load_json to return empty dict if file doesn't exist
- added utils.compare_versions to check min version requirements for automations and entries
- removed outdated convert_path (#1219)
- added utils.check_if_true_yes_on (#1216)
- check "min_cm_version" in CM automations and CM scripts (use _cm.yaml or _cm.json)
- added support for deps on other CM repos (if conflict = True - then fail if this repo is already installed otherwise print that repo is missing)
- added --skip-zip-parent-dir to "cm pull repo --url=..." to support downloading of stable CM-MLOps repositories from https://github.com/mlcommons/cm4mlops/releases .
- changed outdated version of CM in requirements when creating new repos
- fixed minor bug in
cm add automation {name}
- added dependency on giturlparse to support private repos in containers
- fixed bug when adding automation in the local repository: "cm add . {automation_name}"
- moved cm-mlops repo to a standalone MLCommons repo: https://github.com/mlcommons/cm4mlops
- added skip of delayed help to simplify output of
cmr [tags] --help
- revisited automatically generated READMEs for CM scripts (automation recipes) based on user feedback: #1169
- improved deleting of CM artifacts (entries) on Windows
- print tags when deleting CM artifacts (entries)
- added support to handle broken CM repositories: #1177
- added "cm checkout repo mlcommons@ck --branch=dev" to make it easier to switch branches
- added "cm pull repo mlcommons@ck --checkout=dev" to make it easier to switch branches
- added "cm import repo" to import repository in the current directory
- added support to update all CM Git repos in one go: "cm pull repo"
- added support to show extra info about CM Git repos: "cm show repo"
- added explicit support for Private Access Token (PAT) when pulling private CM repos: cm pull repo ctuning@mlcommons-ck-reproduce-inference-v4.0 --pat={GITHUB PAT}
- added support to remove CM repositories via "cm rm repo" even if read only (required for Windows)
- added support to self-fix CM repo list if repository was manually deleted
- added setuptools as dependency to detect package versions
- a major update with the new CM automation recipes and GUI to compose modular AI systems and optimize them across diverse models, datasets, software and hardware:
- improved --help for common automations and CM scripts (automation recipes)
- fixed a few minor bugs
- added support to print directories and files for a given CM entry via "cm info {automation} {artifact|--tags}"
- fixed "cm pull repo" if repo already exists
- added support for Python 3.12 (removed "pkg" dependency)
- added --depth to "cm pull repo" to reduce size of stable repos
- added possibility to download zip repository in "cm pull repo --url={...}.zip" to download small and stable repositories with CM automation recipes
- updated core documentation
- fixed error when adding artifacts with --common flag
- fixed minor bug with auto-initializion of cmind for cmind.error and cmind.halt for external scripts
- added --min to
cm find repo xyz --min
to print path to CM xyz repo without any extra info Needed for artifact evaluation at ACM MICRO'23 - added
cm where repo xyz
to print path to xyz CM repo without any extra info Needed for artifact evaluation at ACM MICRO'23
- fixed a bug with merging dictionaries in variations (detected when running MLPerf inference with GPT-J): #858
- fixed a serious (though rare) bug in indexing when mixing entries with UIDs and aliases
- added cme binary as a shortcut for "cm run experiment"
- added cmr binary as a shortcut for "cm run script"
- fixed minor bug with repo/automation/artifact detection in the current path with "."
- various improvements in CM-MLOps repository to support TinyMLPerf
- Turned on artifact indexing by default (can be turned off by setting CM_INDEX to "no", "off" or "false")
- Turned on --silent mode in "cm run script" by default Can be turned off via --verbose or -v flags
- Fixed duplicate version detection for Python packages
- added --new_tags for "cm copy" to add new tags to newly created artifacts
- added --new_tags for "cm add" to add new tags to newly created artifacts
- added basic check for forbidden artifact names such as "."
- Fixed minor bug during cm detect repo (turn off indexing)
- Fixed Bug in indexing (avoiding duplicate entries when wildcards are used)
- Major update: transparent indexing of all artifacts to speed up search and scripts by ~10..50x (off by default for further testing: use ENV CM_INDEX=yes|on|true to turn it on)
- added "cm print_input automation"
- updated link to the MLCommons taskforce on automation and reproducibility
- added support for CLI with -- {something} . Everything after -- will be available in the CM input dictionary under "unparsed_cmd" key (list). We need it to support universal experiments in CM: cm run experiment -- {any script with any command line}
- added utils.call_internal_module to break automation modules into sub-modules
- improved removal of CM entries on Windows
- fixed #574
- improved detection of CM entries with "."
- added --yaml option in "cm add" to save meta in YAML
- added --save_to_json to save output to JSON (useful for web services)
- extended "cm info {automation} {artifact}" (copy to clipboard)
- added --checkout and --branch to "cm pull repo' for more determinism and reproducibility
- detect if repository and its forks already exist during "cm pull repo" (#397)
- support = inside argument of a key (--key="x=y") (#453)
- redesigned documentation
- added support utils to generate lists of all automations and scripts
- '\r' is removed on Windows when writing files with meta information (json or yaml)
- minor fix in reporting errors
- we now do not overwrite repo alias in .cmr.yaml when pulling forks to avoid ambiguities
- minor fix to properly self-reference running automation script
- updated and simplified all docs
- fixed links in PYPI docs
- Prepared public workgroup to continue CM developments to modularize ML Systems and automate their benchmarking using the MLPerf methodology as a community effort!
- Added multiple tests for CM core, scripts and "automation" script features: https://github.com/mlcommons/ck/actions
- Extended "cm info artifact"
- Added support to copy CID of a given CM artifact to a clipboard (cm info {artifact})
- Updated docs and tutorials for V1.0.0 release!
- added link to GitHub repo with CM automation scripts
- handle errors when loading artifact meta
- added text output when can't detect tool version
- Added "cm info" to print various info about artifacts
- Fixed bug with printing help for actions when they are substituted (rm -> delete)
- Added utils.filter_tags to filter tags starting from "-" (used in artifact add and update)
- Added tags filter to "cm add" and "cm update"
- fixed bug in "cm move" when moving to a repository with a prefix
- redirect "cm version" to "cm version core"
- redirect "cm --version" to "cm version core"
- fixed bugs in the old "utils.list_all_files" function
- fixed "cm copy" when copying to a repository with a prefix
- fixed "cm copy" and "cm ren" if target artifact already exists
- fixed bug with python_version
- removed FullLoader from yaml load to be compatible with older Python versions
- added cm copy & cm cp
- added python_version to CM class to make automations more portable
- fixed minor bug with target repo in "cm move"/"cm ren"/"cm mv"
- fixed --help when no automation is specified (to print help for the default CM database automation)
- fixed "cm update" function (added --search-tags and changed --new-tags back to tags)
- fail by default if automation is not found (can be changed using cmind.cfg['fail_if_automation_not_found']=False)
- fixed "cm update" function (added --new-tags to separate from search tags)
- report error if automation is not defined or found
- fixed search function when tags == ''
- fixed cm access when automation == '' and tags!=''
- added "-tags" in search function
- improved "--help" option for common automations
- enhanced common "update" function (replace tags)
- added "utils.convert_env_to_dict" to support intelligent components
- extended "utils.load_text" to split strings and detect versions
- fixed bug with "no_tags" in search function
- added "utils.sub_input"
- added "cfg['artifact_keys']" to make it easier to create sub-inputs to search for artifacts from original input
- described CM env variables in the docs (#224)
- moved "get_host_os_info" from CM core utils to CM automation "utils" to keep CM core small and simple
- added "utils.load_python_module" function to customize intelligent components
- added "utils.update_dict_if_empty" function to update the state in the intelligent component
- added '\n' in save_json
- fixed minor bug in the "find" function (when searching in the root directory of a CK repo)
- fixed bug when pulling new repo with prefix
- added "gen_tmp_file" from CK to utils
- added "get_host_os_info" from CK to utils to support new "intelligent components"
- started prototyping "intelligent component"
- documented all internal APIs
- changed a few ambiguous internal and environment variables
- moved new and unstable components for MLOps to octoml@cm-mlops for further prototyping
- fixed bug when detecting repo in "internal" repo
- added dummy automations for env, ic and docker: #220
- added dummy automation experiment
- added support to detect current repo in artifacts in CLI: "cm add automation .:mlperf"
- added utils.get_current_date_time
- added utils.assemble_cm_object1
- added "cm move/rename": #213
- adding "requirements.txt" when initializing new CM repositories: #204
- when "cm help {automation}" print path to the automation python module: #218
- print equivalent Collective DB actions: #219
- various minor enhancements and bug fixes
- when updating artifact, if it doesn't exist, add it
- fixed tags processing when adding CM artifacts
- improved CLI (change - -> _ in keys to be more user friendly)
- added "cm update" and fixed minor bugs with cm load/update
- fixed problems with non-serializable keys when --out=json
- fixed major bug with inheritance (_base)
- fixed a bug in "cm search" when automation is created without UID
- fixed a bug with @input.json
- fixed minior bugs in a core
- added support to detect repo, automation and artifact in a current directory when using CM CLI: "cm search . --tags=..." "cm load ."
- added "--out=json" to print automation action output in JSON format
- do not wait until the end of search to print entries (otherwise may be slow)
- treat uid and alias as case insensitive (the same on Linux and Windows)
- fixed "cm init repo" - just import when repo description already exists
- fixed bug with printing the same error recursively
- major fix of search with wildcards
- fixed repository handling (search, unpack, etc)
- changed "cm status core" to "cm test core"
- changed ambiguous "default" repo to "internal" repo
- changed ambiguous "default_automation" to "common_automation"
- changed ambiguous key "name" in "repo" automation to "desc"
- moved "parsed_cli" from core module to cli module
- Added "cm status"
- Changed CM CLI to "cm action automation artifact(s) flags @input.yaml @input.json"
- Added "cm help" and "cm {action} --help"