diff options
Diffstat (limited to 'python-cppcheck-codequality.spec')
-rw-r--r-- | python-cppcheck-codequality.spec | 343 |
1 files changed, 343 insertions, 0 deletions
diff --git a/python-cppcheck-codequality.spec b/python-cppcheck-codequality.spec new file mode 100644 index 0000000..9513eef --- /dev/null +++ b/python-cppcheck-codequality.spec @@ -0,0 +1,343 @@ +%global _empty_manifest_terminate_build 0 +Name: python-cppcheck-codequality +Version: 1.3.1 +Release: 1 +Summary: Convert a CppCheck XML report to a GitLab-compatible Code Quality JSON report. +License: MIT +URL: https://gitlab.com/ahogen/cppcheck-codequality +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/63/01/14f50fe018bf2c66ab58926809f7acf8d8e7653918a20948bb9945bc4fed/cppcheck-codequality-1.3.1.tar.gz +BuildArch: noarch + +Requires: python3-xmltodict + +%description +# cppcheck-codequality + +[](https://pypi.python.org/pypi/cppcheck-codequality/) + +[](https://pypi.org/project/cppcheck-codequality/) + + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/issues) + + +## About + +I wanted reports from CppCheck to appear in GitLab Merge Requests as [Code +Quality reports](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#implementing-a-custom-tool), +which is a JSON file defined by the Code Climate team/service. + +That's all this does: convert CppCheck XML to Code Climate JSON. + +### Usage + +It is primarily used as a console script. As such, ensure you have Python 3's "scripts" directory in your `PATH` variable. +For example, on Linux, that might be `$HOME/.local/bin`. + +To test, try the `--help` or `--version` flags: +```bash +cppcheck-codequality --help +``` + +CppCheck already has a script to convert its XML report to HTML for easy +human reading. See "Chapter 11 HTML Report" in the [CppCheck Manual](http://cppcheck.sourceforge.net/manual.pdf) + +This script follows that example and provides similar command-line options. +A typical workflow might look like this: + +```bash +# Generate CppCheck report as XML +cppcheck --xml --enable=warning,style,performance ./my_src_dir/ 2> cppcheck_out.xml +# Convert to a Code Climate JSON report +cppcheck-codequality --input-file cppcheck_out.xml --output-file cppcheck.json +``` + +If you wanted, you could invoke the script directly as a module, like this: + +```bash +# Run as a module instead (note the underscore in the module name here) +python -m cppcheck_codequality --input-file=cppcheck_out.xml --output-file=cppcheck.json +``` + +Now, in your GitLab CI script, [upload this file](https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html#artifactsreportscodequality) +as a Code Quality report. + +```yaml +my-code-quality: + script: + - [...] + artifacts: + reports: + codequality: cppcheck.json +``` + +### Contributing + +* Sign the contributor agreement (coming soon) +* Format with [black](https://pypi.org/project/black/) +* Check with [pylint](https://pypi.org/project/pylint/) + +### Credits & Trademarks + +CppCheck is an open-source project with a GPL v3.0 license. +* http://cppcheck.sourceforge.net +* https://github.com/danmar/cppcheck + +"Code Climate" may be a registered trademark of Code Climate, Inc. which provides +super-cool free and paid services to the developer community. +* https://codeclimate.com +* https://github.com/codeclimate + +"GitLab" is a trademark of GitLab B.V. +* https://gitlab.com +* https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html + +All other trademarks belong to their respective owners. + + +%package -n python3-cppcheck-codequality +Summary: Convert a CppCheck XML report to a GitLab-compatible Code Quality JSON report. +Provides: python-cppcheck-codequality +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-cppcheck-codequality +# cppcheck-codequality + +[](https://pypi.python.org/pypi/cppcheck-codequality/) + +[](https://pypi.org/project/cppcheck-codequality/) + + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/issues) + + +## About + +I wanted reports from CppCheck to appear in GitLab Merge Requests as [Code +Quality reports](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#implementing-a-custom-tool), +which is a JSON file defined by the Code Climate team/service. + +That's all this does: convert CppCheck XML to Code Climate JSON. + +### Usage + +It is primarily used as a console script. As such, ensure you have Python 3's "scripts" directory in your `PATH` variable. +For example, on Linux, that might be `$HOME/.local/bin`. + +To test, try the `--help` or `--version` flags: +```bash +cppcheck-codequality --help +``` + +CppCheck already has a script to convert its XML report to HTML for easy +human reading. See "Chapter 11 HTML Report" in the [CppCheck Manual](http://cppcheck.sourceforge.net/manual.pdf) + +This script follows that example and provides similar command-line options. +A typical workflow might look like this: + +```bash +# Generate CppCheck report as XML +cppcheck --xml --enable=warning,style,performance ./my_src_dir/ 2> cppcheck_out.xml +# Convert to a Code Climate JSON report +cppcheck-codequality --input-file cppcheck_out.xml --output-file cppcheck.json +``` + +If you wanted, you could invoke the script directly as a module, like this: + +```bash +# Run as a module instead (note the underscore in the module name here) +python -m cppcheck_codequality --input-file=cppcheck_out.xml --output-file=cppcheck.json +``` + +Now, in your GitLab CI script, [upload this file](https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html#artifactsreportscodequality) +as a Code Quality report. + +```yaml +my-code-quality: + script: + - [...] + artifacts: + reports: + codequality: cppcheck.json +``` + +### Contributing + +* Sign the contributor agreement (coming soon) +* Format with [black](https://pypi.org/project/black/) +* Check with [pylint](https://pypi.org/project/pylint/) + +### Credits & Trademarks + +CppCheck is an open-source project with a GPL v3.0 license. +* http://cppcheck.sourceforge.net +* https://github.com/danmar/cppcheck + +"Code Climate" may be a registered trademark of Code Climate, Inc. which provides +super-cool free and paid services to the developer community. +* https://codeclimate.com +* https://github.com/codeclimate + +"GitLab" is a trademark of GitLab B.V. +* https://gitlab.com +* https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html + +All other trademarks belong to their respective owners. + + +%package help +Summary: Development documents and examples for cppcheck-codequality +Provides: python3-cppcheck-codequality-doc +%description help +# cppcheck-codequality + +[](https://pypi.python.org/pypi/cppcheck-codequality/) + +[](https://pypi.org/project/cppcheck-codequality/) + + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/pipelines?scope=branches) + +[](https://gitlab.com/ahogen/cppcheck-codequality/-/issues) + + +## About + +I wanted reports from CppCheck to appear in GitLab Merge Requests as [Code +Quality reports](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#implementing-a-custom-tool), +which is a JSON file defined by the Code Climate team/service. + +That's all this does: convert CppCheck XML to Code Climate JSON. + +### Usage + +It is primarily used as a console script. As such, ensure you have Python 3's "scripts" directory in your `PATH` variable. +For example, on Linux, that might be `$HOME/.local/bin`. + +To test, try the `--help` or `--version` flags: +```bash +cppcheck-codequality --help +``` + +CppCheck already has a script to convert its XML report to HTML for easy +human reading. See "Chapter 11 HTML Report" in the [CppCheck Manual](http://cppcheck.sourceforge.net/manual.pdf) + +This script follows that example and provides similar command-line options. +A typical workflow might look like this: + +```bash +# Generate CppCheck report as XML +cppcheck --xml --enable=warning,style,performance ./my_src_dir/ 2> cppcheck_out.xml +# Convert to a Code Climate JSON report +cppcheck-codequality --input-file cppcheck_out.xml --output-file cppcheck.json +``` + +If you wanted, you could invoke the script directly as a module, like this: + +```bash +# Run as a module instead (note the underscore in the module name here) +python -m cppcheck_codequality --input-file=cppcheck_out.xml --output-file=cppcheck.json +``` + +Now, in your GitLab CI script, [upload this file](https://docs.gitlab.com/ee/ci/pipelines/job_artifacts.html#artifactsreportscodequality) +as a Code Quality report. + +```yaml +my-code-quality: + script: + - [...] + artifacts: + reports: + codequality: cppcheck.json +``` + +### Contributing + +* Sign the contributor agreement (coming soon) +* Format with [black](https://pypi.org/project/black/) +* Check with [pylint](https://pypi.org/project/pylint/) + +### Credits & Trademarks + +CppCheck is an open-source project with a GPL v3.0 license. +* http://cppcheck.sourceforge.net +* https://github.com/danmar/cppcheck + +"Code Climate" may be a registered trademark of Code Climate, Inc. which provides +super-cool free and paid services to the developer community. +* https://codeclimate.com +* https://github.com/codeclimate + +"GitLab" is a trademark of GitLab B.V. +* https://gitlab.com +* https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html + +All other trademarks belong to their respective owners. + + +%prep +%autosetup -n cppcheck-codequality-1.3.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-cppcheck-codequality -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.3.1-1 +- Package Spec generated |