Releases: intel/code-base-investigator
Releases · intel/code-base-investigator
Code Base Investigator v2.0.0
Warning
Code Base Investigator 2.0.0 is a major release that includes several breaking changes.
New Features
- Errors and warnings are written to a cbi.log file, to reduce verbosity and improve the user experience.
- Warning messages are aggregated into "meta-warnings" with suggested corrective actions.
- Progress in parsing and preprocessing is reported via progress bars.
- A new
cbi-tree
utility enables users to identify which files in a code base contribute to divergence. - A new
cbi-cov
utility enables users to export coverage information in JSON format, for use with the P3 Analysis Library. - Compiler support is expanded, enabling users to define argument handling that approximates compiler behavior more accurately.
For more information on using these features, see the online documentation.
Bug Fixes
- Added support for
#include
files with non-standard extensions. - Added support for very large unsigned constants.
- Relaxed preprocessor error handling to permit C source files ending in a backslash-newline.
- Enabled the repository to be cloned on Windows.
What's Changed
- Remove --root-dir option by @Pennycook in #90
- Remove --batchmode option by @Pennycook in #89
pyproject.toml
migration by @laserkelvin in #94- CI pre-commit alignment by @laserkelvin in #93
- Simplify the --report option by @Pennycook in #95
- Remove etc/ directory by @Pennycook in #91
- Remove --dump option by @Pennycook in #92
- Remove YAML configuration files by @Pennycook in #97
- Refactor codebase dictionary into CodeBase class by @Pennycook in #98
- Format help strings by @Pennycook in #104
- Add CompilationDatabase class by @Pennycook in #103
- Force run pre-commit by @Pennycook in #110
- Add tree walk function by @Pennycook in #105
- Remove unused walkers by @Pennycook in #106
- Switch to per-module loggers by @Pennycook in #109
- Add coverage configuration to pyproject.toml by @Pennycook in #107
- Move code from bin/codebasin to main.py by @Pennycook in #111
- Improve warning message for missing includes by @Pennycook in #113
- Write logs to cbi.log by default by @Pennycook in #112
- Remove functionality to merge duplicates by @Pennycook in #116
- Add a custom log formatter class by @Pennycook in #118
- Introduce meta-warnings by @Pennycook in #115
- Add progress bars to finder.find() by @Pennycook in #117
- Optimize path handling by @Pennycook in #122
- Ensure main() catches all exceptions by @Pennycook in #123
- Replace PlatformMapper with a function by @Pennycook in #120
- Add visit() function to source tree by @Pennycook in #121
- Remove PlatformMapper from test_duplicates by @Pennycook in #124
- Replace TreeAssociator with a function by @Pennycook in #125
- Remove walkers by @Pennycook in #126
- Remove legacy_warnings by @Pennycook in #127
- Remove unused functions from util.py by @Pennycook in #128
- Replace is_whitespace function with str.isspace by @Pennycook in #130
- Fix definition and implementation of divergence by @Pennycook in #137
- Fix associate() handling of #include from symlink by @Pennycook in #131
- Fix handling of symlink files by @Pennycook in #133
- Add ability to compute code utilization by @Pennycook in #136
- Improve tables by @Pennycook in #134
- Improve schema validation error messages by @Pennycook in #140
- Refactor ensure_ext by @Pennycook in #141
- Add duplicates report by @Pennycook in #138
- Add files report by @Pennycook in #139
- Improve coverage tool for P3 Analysis Library integration by @Pennycook in #41
- Fix use of ensure_ext in coverage by @Pennycook in #148
- Align formatting of all reports by @Pennycook in #150
- Rename cbicov to cbi-cov by @Pennycook in #153
- Add coverage workflow to GitHub Actions by @Pennycook in #154
- Attempt to fix non-deterministic tests by @Pennycook in #160
- Fix coverage action by @Pennycook in #162
- Force coverage.yml to check out all commits by @Pennycook in #163
- Refactor Token class using dataclass by @Pennycook in #143
- Implement common argument parsing with argparse by @Pennycook in #146
- Refactor Node using dataclass by @Pennycook in #144
- Add custom argparse actions by @Pennycook in #155
- Add instructions for virtual environments by @Pennycook in #157
- Add test of summary report by @Pennycook in #158
- Add compiler customization schema by @Pennycook in #156
- Rework the metrics used by the FileTree by @Pennycook in #161
- Move MetaWarning classes into new module by @Pennycook in #142
- Improve Compiler class design by @Pennycook in #164
- Fix bug in FileTree's handling of unused files by @Pennycook in #166
- Add compiler definitions by @Pennycook in #168
- Use f-string to format
log.warning
message by @Pennycook in #174 - Fix bug in handling of unsigned constants by @Pennycook in #173
- Recommend using cmake -G Ninja in the tutorial by @Pennycook in #175
- Fix several issues with custom argparse actions by @Pennycook in #170
- Expose tree report as standalone cbi-tree utility by @Pennycook in #167
- Enable
ArgumentParser
to handle custom compilers by @Pennycook in #176 - Switch to finalized coverage schema by @Pennycook in #178
- Add
--debug
option by @Pennycook in #177 - Fix condition in FileTree insert by @Pennycook in #181
- Generate version string dynamically by @Pennycook in #180
- Ignore empty .cbi/config files by @Pennycook in #183
- Defer .cbi/config loading until required by @Pennycook in #184
- Add definition of sycl-nvptx64-nvidia-cuda pass by @Pennycook in #186
- Add documentation for new features by @Pennycook in #185
- Accept C files ending in a backslash-newline by @Pennycook in #187
- Add progress tracker for identifying source files by @Pennycook i...
Code Base Investigator v1.2.0
Although a minor release, Code Base Investigator v1.2.0 includes a few significant changes.
Important
In previous releases of Code Base Investigator, the main script was called codebasin.py
. The old naming was a bug that needed to be fixed, and we made the difficult decision to rename the script ahead of the next major release.
New Features
- Filter platforms with
--platform
(or-p
). - Exclude files from an analysis with
--exclude
(or-x
). - Use git-like "pathspec" patterns to describe exclude files instead of globs.
- Configure analysis with a new, simplified, TOML file format.
- Define implicit compiler behaviors (e.g., version macros, system include paths).
For more information on using these features, see the new and improved online documentation.
Bug Fixes
- Added support for
#include
files with non-standard extensions. - Improved handling of duplicate files.
- Renamed
codebasin.py
tocodebasin
.
Preparation for Code Base Investigator v2.0.0
- Several features are deprecated and will be removed in the next major release.
What's Changed
- Fix divergent-source example by @Pennycook in #17
- Pre-commit workflow by @laserkelvin in #21
- Improve usability for large projects by @Pennycook in #22
- Add warning for missing include files by @Pennycook in #23
- Improve warning message for unrecognized directive by @Pennycook in #24
- Permit include files with non-standard extensions by @Pennycook in #26
- Add ability to recognize compilers by @Pennycook in #27
- Fix codebasin package by @Pennycook in #29
- Fix bug in multi-pass compiler handling by @Pennycook in #30
- Update code style by @Pennycook in #31
- Update contributing guidelines by @Pennycook in #34
- Refactor usage of args (excluding *args) to argv by @itsjayway in #33
- Fix incorrect usage of _representation_string by @Pennycook in #37
- Simplify schema handling and fix several bugs by @Pennycook in #35
- Remove unused configuration files by @Pennycook in #38
- Deprecate the codebasin package by @Pennycook in #40
- Add support for exclude patterns by @Pennycook in #42
- Templates for pull requests and issues by @laserkelvin in #44
- Adjust pull request template formatting by @Pennycook in #48
- Catch all exceptions and convert them to errors by @Pennycook in #51
- Fix unintended skipping of
bandit
inpre-commit
hooks and added scan specifications by @laserkelvin in #52 - Remove flake8-bandit from pre-commit by @Pennycook in #53
- Update dependency versions by @Pennycook in #55
- Replace importcfg.json with config TOML file by @Pennycook in #56
- Restore missing {} to report outputs by @Pennycook in #57
- Add option to define platforms on the command line by @Pennycook in #49
- Replace --rootdir (-r) with --source-dir (-S) by @Pennycook in #59
- Add schema file required by functionality from #56 by @Pennycook in #63
- Deprecate unmaintained functionality by @Pennycook in #62
- Rename codebasin.py to codebasin by @Pennycook in #64
- Add Github action to run
unittest
by @laserkelvin in #65 - Add TOML files required by tests from #56 by @Pennycook in #61
- Replace YAML config files with TOML analysis files by @Pennycook in #60
- Separate deprecated options in -h output by @Pennycook in #68
- Make all deprecation warnings DeprecationWarnings by @Pennycook in #69
- Deprecate passing more than one value to --report by @Pennycook in #70
- Ignore SciPy UserWarning about axis limits by @Pennycook in #74
- Check if codebase section exists in analysis file by @Pennycook in #75
- Remove --source-dir (-S) option by @Pennycook in #78
- Simplify platform option by @Pennycook in #76
- Fix broken dendrogram names by @Pennycook in #77
- Fix double percent symbol in report output by @Pennycook in #80
- Add --version option by @Pennycook in #83
- Improve compile command handling by @Pennycook in #82
- Remove duplicate detection by @Pennycook in #79
- Rewrite the documentation by @Pennycook in #85
- Bump version to 1.2.0 by @Pennycook in #88
New Contributors
- @laserkelvin made their first contribution in #21
- @itsjayway made their first contribution in #33
Full Changelog: 1.1.0...1.2.0
Code Base Investigator v1.1.0
What's Changed
- Macro expansion overhaul by @jasonsewall-intel in #3
- Refactor walkers, add optional code passthrough, and add etc/preprocess script by @jasonsewall-intel in #4
- Improve readability of dendrograms by @Pennycook in #5
- Add support for 'exclude_files' configuration option by @jasonsewall-intel in #6
- Fix duplicate detection by @jasonsewall-intel in #7
- Improve search path handling by @jasonsewall-intel in #7
- Support basic assembly source files by @jasonsewall-intel in #7
- Dump detailed source region annotation by @jasonsewall-intel in #7
- Handle quotes in "command" field in compilation databse by @al42and in #8
- Validate inputs against schema by @Pennycook in #10
- Check if token is None before accessing attributes by @Pennycook in #11
- Export coverage for P3 Analysis Library by @Pennycook in #12
New Contributors
Full Changelog: 1.05...1.1.0