cache: refactor cache with targets and config
There are now 3 cache targets along with associated config options:
- cache.local
- cache.remote
- cache.source
cache.source is only enabled when VCS is available, other cache targets are unaffected by VCS and are enabled by default.
Caching apkg commands require following cache targets:
- make-archive: source
- get-archive: remote
- srcpkg: local (archive), source (templates unless --upstream)
- build: local (source package)
This leads to cache only being disabled for relevant commands working on project source when VCS isn't available as opposed to disabling all caching.
Logging was vastly improved to get useful cache information when using
apkg -L verbose $COMMAND
Docs were expanded with a new cache.md as well as upated with clearly worded requirements for working cache (VCS and proper make_archive_script).
Simple test on examples/minimal-no-git is included in ci/tests/test_apkg.py for testing operation without VCS.
Closes: #73 (closed)