summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-miss-hit.spec598
-rw-r--r--sources1
3 files changed, 600 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..3062cfb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/miss_hit-0.9.38.tar.gz
diff --git a/python-miss-hit.spec b/python-miss-hit.spec
new file mode 100644
index 0000000..115d2bb
--- /dev/null
+++ b/python-miss-hit.spec
@@ -0,0 +1,598 @@
+%global _empty_manifest_terminate_build 0
+Name: python-miss-hit
+Version: 0.9.38
+Release: 1
+Summary: Static analysis and other utilities for programs written in the MATLAB/Simulink and Octave languages.
+License: GNU Affero General Public License v3
+URL: https://misshit.org
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6b/14/3fa0da63fa728830c9d3bbdcdb9848c24e90ed0e6912910e5cb2da3ebfc2/miss_hit-0.9.38.tar.gz
+BuildArch: noarch
+
+Requires: python3-miss-hit-core
+
+%description
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3967056.svg)](https://doi.org/10.5281/zenodo.3967056)
+
+# MATLAB Independent, Small & Safe, High Integrity Tools
+
+http://misshit.org
+
+MATLAB is a popular programming language in many engineering
+disciplines, intended for the fast development of prototypes. But as
+we all know, prototypes make it into production all the time, so now
+you're stuck. Unfortunately, there are no style checkers or "good"
+static analysis tools for MATLAB. This project attempts to fill this
+gap.
+
+If you have MATLAB (or MATLAB embedded in Simulink models) in your
+production code and want to improve code quality then this tool-suite
+is for you.
+
+## Tools & Documentation
+
+MISS_HIT comes with the following tools, all of which come with user
+manuals and setup instructions:
+https://florianschanda.github.io/miss_hit/
+
+* Style Checker `mh_style`
+
+ A simple coding style checker and code formatter for MATLAB or
+ Octave code, including MATLAB embedded inside Simulink models.
+
+* Code Metrics `mh_metric`
+
+ A simple code metric tool for MATLAB or Octave code, including
+ MATLAB embedded inside Simulink models.
+
+* Bug finding `mh_lint`
+
+ A simple linter for MATLAB or Octave code, including
+ MATLAB embedded inside Simulink models.
+
+* Code/Test traceability `mh_trace`
+
+ A simple tool to extrace tags from test and code to demonstrate
+ requirements traceability.
+
+* Diff helper `mh_diff`
+
+ A tool for diffing MATLAB code inside Simulink models. Note that
+ other changes (e.g. different connections) are not detected; this is
+ only working for embedded MATLAB.
+
+* Copyright notice helper `mh_copyright`
+
+ A tool that can update or adjust copyright notices in bulk. Helpful
+ if your company changes name, or you have year ranges that need
+ updating.
+
+Please refer to the [release notes](https://github.com/florianschanda/miss_hit/blob/master/CHANGELOG.md)
+for a summary of recent changes and known issues.
+
+We intend to provide more tools later, please refer to the
+[roadmap](https://github.com/florianschanda/miss_hit/blob/master/ROADMAP.md)
+for more information.
+
+## Installing and using MISS_HIT
+
+### Installation via pip
+
+```
+$ pip3 install --user miss_hit
+```
+
+This installation also adds five executable scripts `mh_style`,
+`mh_metric`, `mh_lint`, `mh_copyright`, and `mh_diff` into
+`.local/bin`, so please make sure that this is on your `PATH`.
+
+You can also use the `python -m` syntax to directly invoke the
+program. This might be useful if you're on a heavily locked-down
+corporate Windows environment:
+```
+$ python3 -m miss_hit.mh_style
+```
+
+To use MISS_HIT you just give it a set of files or directories to
+process, for example:
+```
+$ mh_style my_file.m
+$ mh_style --process-slx my_model.slx
+$ mh_style src/
+```
+
+Configuration and setup is described in the
+[user manuals](https://florianschanda.github.io/miss_hit)
+
+### Installation by checkout
+
+It is recommended to use pip, as that gets you the latest stable
+release. However, it is possible to directly use MISS_HIT from a
+checkout. MISS_HIT does not require *any* python packages or
+libraries. Just check out the repository and put it on your
+path. That's it.
+
+The version of Python I am using is `3.6` but any later version should
+also work. I am not using any overly fancy language features.
+
+### Additional requirements for developing MISS_HIT
+
+If you want to help develop you will need Linux as the test-suite
+doesn't really work on Windows. You will also need Pylint,
+PyCodeStyle, Coverage, and Graphviz. Install as follows:
+
+```
+$ apt-get install graphviz
+$ pip3 install --user --upgrade pylint pycodestyle coverage
+```
+
+For publishing releases (to GitHub and PyPI) you will also need:
+```
+$ pip3 install --user --upgrade setuptools wheel requests
+```
+
+## Challenges
+
+There are serious issues present in the MATLAB and Octave languages on
+all levels (lexical structure, parsing, and semantics) that make it
+very difficult to create any tool processing them. In fact, GitHub is
+littered with incomplete attempts and buggy parsers. The usual
+question is "but what about Octave?"; it is a similar language, but it
+is not compatible with MATLAB. If your problem is parsing MATLAB then
+the Octave parser will not help you. Even very simple statements such
+as `x = [1++2]` mean different things (`3` in MATLAB, syntax error in
+Octave).
+
+I have [documented the key
+issues](https://github.com/florianschanda/miss_hit/blob/master/CHALLENGES.md)
+we've faced and how we've resolved them.
+
+## Copyright & License
+
+The basic framework, style checker and code metrics tool of MISS_HIT
+(everything under `miss_hit_core`) are licensed under the GNU GPL
+version 3 (or later) as described in
+[LICENSE](https://github.com/florianschanda/miss_hit/blob/master/LICENSE).
+
+The advanced analysis tools of MISS_HIT (everything under `miss_hit`)
+are licensed under the GNU Affero GPL version 3 (or later) as
+described in
+[LICENSE.AGPL](https://github.com/florianschanda/miss_hit/blob/master/LICENSE.AGPL).
+
+The vast majority of this work is (C) Florian Schanda. Contributions
+from the following people and entities are under their copyright, with
+the same license:
+
+* Alina Boboc (Documentation style)
+* Benedikt Schmid (MATLAB integration)
+* Remi Gau (CI/CD templates)
+* Veoneer System Software GmbH (JSON Metrics)
+* Zenuity AB (Key parts of the lexer)
+
+### Copyright of octave tests
+
+This project includes verbatim and modified/adapted parts of the GNU
+Octave testsuite under `tests/parser/octave_*` and
+`tests/style/octave_annotations`. These are (c) their original
+authors. Each file there describes from which file they derive.
+
+### Note on parser tests
+
+Some of the parser tests include code samples and documentation
+snippets from the publicly available MathWorks website. An
+attribution (in comment form) is always included in these cases.
+
+### Note on the documentation assets
+
+The documentation uses [feather
+icons](https://github.com/feathericons/feather/blob/master/LICENSE)
+which are licensed under the MIT License.
+
+
+%package -n python3-miss-hit
+Summary: Static analysis and other utilities for programs written in the MATLAB/Simulink and Octave languages.
+Provides: python-miss-hit
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-miss-hit
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3967056.svg)](https://doi.org/10.5281/zenodo.3967056)
+
+# MATLAB Independent, Small & Safe, High Integrity Tools
+
+http://misshit.org
+
+MATLAB is a popular programming language in many engineering
+disciplines, intended for the fast development of prototypes. But as
+we all know, prototypes make it into production all the time, so now
+you're stuck. Unfortunately, there are no style checkers or "good"
+static analysis tools for MATLAB. This project attempts to fill this
+gap.
+
+If you have MATLAB (or MATLAB embedded in Simulink models) in your
+production code and want to improve code quality then this tool-suite
+is for you.
+
+## Tools & Documentation
+
+MISS_HIT comes with the following tools, all of which come with user
+manuals and setup instructions:
+https://florianschanda.github.io/miss_hit/
+
+* Style Checker `mh_style`
+
+ A simple coding style checker and code formatter for MATLAB or
+ Octave code, including MATLAB embedded inside Simulink models.
+
+* Code Metrics `mh_metric`
+
+ A simple code metric tool for MATLAB or Octave code, including
+ MATLAB embedded inside Simulink models.
+
+* Bug finding `mh_lint`
+
+ A simple linter for MATLAB or Octave code, including
+ MATLAB embedded inside Simulink models.
+
+* Code/Test traceability `mh_trace`
+
+ A simple tool to extrace tags from test and code to demonstrate
+ requirements traceability.
+
+* Diff helper `mh_diff`
+
+ A tool for diffing MATLAB code inside Simulink models. Note that
+ other changes (e.g. different connections) are not detected; this is
+ only working for embedded MATLAB.
+
+* Copyright notice helper `mh_copyright`
+
+ A tool that can update or adjust copyright notices in bulk. Helpful
+ if your company changes name, or you have year ranges that need
+ updating.
+
+Please refer to the [release notes](https://github.com/florianschanda/miss_hit/blob/master/CHANGELOG.md)
+for a summary of recent changes and known issues.
+
+We intend to provide more tools later, please refer to the
+[roadmap](https://github.com/florianschanda/miss_hit/blob/master/ROADMAP.md)
+for more information.
+
+## Installing and using MISS_HIT
+
+### Installation via pip
+
+```
+$ pip3 install --user miss_hit
+```
+
+This installation also adds five executable scripts `mh_style`,
+`mh_metric`, `mh_lint`, `mh_copyright`, and `mh_diff` into
+`.local/bin`, so please make sure that this is on your `PATH`.
+
+You can also use the `python -m` syntax to directly invoke the
+program. This might be useful if you're on a heavily locked-down
+corporate Windows environment:
+```
+$ python3 -m miss_hit.mh_style
+```
+
+To use MISS_HIT you just give it a set of files or directories to
+process, for example:
+```
+$ mh_style my_file.m
+$ mh_style --process-slx my_model.slx
+$ mh_style src/
+```
+
+Configuration and setup is described in the
+[user manuals](https://florianschanda.github.io/miss_hit)
+
+### Installation by checkout
+
+It is recommended to use pip, as that gets you the latest stable
+release. However, it is possible to directly use MISS_HIT from a
+checkout. MISS_HIT does not require *any* python packages or
+libraries. Just check out the repository and put it on your
+path. That's it.
+
+The version of Python I am using is `3.6` but any later version should
+also work. I am not using any overly fancy language features.
+
+### Additional requirements for developing MISS_HIT
+
+If you want to help develop you will need Linux as the test-suite
+doesn't really work on Windows. You will also need Pylint,
+PyCodeStyle, Coverage, and Graphviz. Install as follows:
+
+```
+$ apt-get install graphviz
+$ pip3 install --user --upgrade pylint pycodestyle coverage
+```
+
+For publishing releases (to GitHub and PyPI) you will also need:
+```
+$ pip3 install --user --upgrade setuptools wheel requests
+```
+
+## Challenges
+
+There are serious issues present in the MATLAB and Octave languages on
+all levels (lexical structure, parsing, and semantics) that make it
+very difficult to create any tool processing them. In fact, GitHub is
+littered with incomplete attempts and buggy parsers. The usual
+question is "but what about Octave?"; it is a similar language, but it
+is not compatible with MATLAB. If your problem is parsing MATLAB then
+the Octave parser will not help you. Even very simple statements such
+as `x = [1++2]` mean different things (`3` in MATLAB, syntax error in
+Octave).
+
+I have [documented the key
+issues](https://github.com/florianschanda/miss_hit/blob/master/CHALLENGES.md)
+we've faced and how we've resolved them.
+
+## Copyright & License
+
+The basic framework, style checker and code metrics tool of MISS_HIT
+(everything under `miss_hit_core`) are licensed under the GNU GPL
+version 3 (or later) as described in
+[LICENSE](https://github.com/florianschanda/miss_hit/blob/master/LICENSE).
+
+The advanced analysis tools of MISS_HIT (everything under `miss_hit`)
+are licensed under the GNU Affero GPL version 3 (or later) as
+described in
+[LICENSE.AGPL](https://github.com/florianschanda/miss_hit/blob/master/LICENSE.AGPL).
+
+The vast majority of this work is (C) Florian Schanda. Contributions
+from the following people and entities are under their copyright, with
+the same license:
+
+* Alina Boboc (Documentation style)
+* Benedikt Schmid (MATLAB integration)
+* Remi Gau (CI/CD templates)
+* Veoneer System Software GmbH (JSON Metrics)
+* Zenuity AB (Key parts of the lexer)
+
+### Copyright of octave tests
+
+This project includes verbatim and modified/adapted parts of the GNU
+Octave testsuite under `tests/parser/octave_*` and
+`tests/style/octave_annotations`. These are (c) their original
+authors. Each file there describes from which file they derive.
+
+### Note on parser tests
+
+Some of the parser tests include code samples and documentation
+snippets from the publicly available MathWorks website. An
+attribution (in comment form) is always included in these cases.
+
+### Note on the documentation assets
+
+The documentation uses [feather
+icons](https://github.com/feathericons/feather/blob/master/LICENSE)
+which are licensed under the MIT License.
+
+
+%package help
+Summary: Development documents and examples for miss-hit
+Provides: python3-miss-hit-doc
+%description help
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3967056.svg)](https://doi.org/10.5281/zenodo.3967056)
+
+# MATLAB Independent, Small & Safe, High Integrity Tools
+
+http://misshit.org
+
+MATLAB is a popular programming language in many engineering
+disciplines, intended for the fast development of prototypes. But as
+we all know, prototypes make it into production all the time, so now
+you're stuck. Unfortunately, there are no style checkers or "good"
+static analysis tools for MATLAB. This project attempts to fill this
+gap.
+
+If you have MATLAB (or MATLAB embedded in Simulink models) in your
+production code and want to improve code quality then this tool-suite
+is for you.
+
+## Tools & Documentation
+
+MISS_HIT comes with the following tools, all of which come with user
+manuals and setup instructions:
+https://florianschanda.github.io/miss_hit/
+
+* Style Checker `mh_style`
+
+ A simple coding style checker and code formatter for MATLAB or
+ Octave code, including MATLAB embedded inside Simulink models.
+
+* Code Metrics `mh_metric`
+
+ A simple code metric tool for MATLAB or Octave code, including
+ MATLAB embedded inside Simulink models.
+
+* Bug finding `mh_lint`
+
+ A simple linter for MATLAB or Octave code, including
+ MATLAB embedded inside Simulink models.
+
+* Code/Test traceability `mh_trace`
+
+ A simple tool to extrace tags from test and code to demonstrate
+ requirements traceability.
+
+* Diff helper `mh_diff`
+
+ A tool for diffing MATLAB code inside Simulink models. Note that
+ other changes (e.g. different connections) are not detected; this is
+ only working for embedded MATLAB.
+
+* Copyright notice helper `mh_copyright`
+
+ A tool that can update or adjust copyright notices in bulk. Helpful
+ if your company changes name, or you have year ranges that need
+ updating.
+
+Please refer to the [release notes](https://github.com/florianschanda/miss_hit/blob/master/CHANGELOG.md)
+for a summary of recent changes and known issues.
+
+We intend to provide more tools later, please refer to the
+[roadmap](https://github.com/florianschanda/miss_hit/blob/master/ROADMAP.md)
+for more information.
+
+## Installing and using MISS_HIT
+
+### Installation via pip
+
+```
+$ pip3 install --user miss_hit
+```
+
+This installation also adds five executable scripts `mh_style`,
+`mh_metric`, `mh_lint`, `mh_copyright`, and `mh_diff` into
+`.local/bin`, so please make sure that this is on your `PATH`.
+
+You can also use the `python -m` syntax to directly invoke the
+program. This might be useful if you're on a heavily locked-down
+corporate Windows environment:
+```
+$ python3 -m miss_hit.mh_style
+```
+
+To use MISS_HIT you just give it a set of files or directories to
+process, for example:
+```
+$ mh_style my_file.m
+$ mh_style --process-slx my_model.slx
+$ mh_style src/
+```
+
+Configuration and setup is described in the
+[user manuals](https://florianschanda.github.io/miss_hit)
+
+### Installation by checkout
+
+It is recommended to use pip, as that gets you the latest stable
+release. However, it is possible to directly use MISS_HIT from a
+checkout. MISS_HIT does not require *any* python packages or
+libraries. Just check out the repository and put it on your
+path. That's it.
+
+The version of Python I am using is `3.6` but any later version should
+also work. I am not using any overly fancy language features.
+
+### Additional requirements for developing MISS_HIT
+
+If you want to help develop you will need Linux as the test-suite
+doesn't really work on Windows. You will also need Pylint,
+PyCodeStyle, Coverage, and Graphviz. Install as follows:
+
+```
+$ apt-get install graphviz
+$ pip3 install --user --upgrade pylint pycodestyle coverage
+```
+
+For publishing releases (to GitHub and PyPI) you will also need:
+```
+$ pip3 install --user --upgrade setuptools wheel requests
+```
+
+## Challenges
+
+There are serious issues present in the MATLAB and Octave languages on
+all levels (lexical structure, parsing, and semantics) that make it
+very difficult to create any tool processing them. In fact, GitHub is
+littered with incomplete attempts and buggy parsers. The usual
+question is "but what about Octave?"; it is a similar language, but it
+is not compatible with MATLAB. If your problem is parsing MATLAB then
+the Octave parser will not help you. Even very simple statements such
+as `x = [1++2]` mean different things (`3` in MATLAB, syntax error in
+Octave).
+
+I have [documented the key
+issues](https://github.com/florianschanda/miss_hit/blob/master/CHALLENGES.md)
+we've faced and how we've resolved them.
+
+## Copyright & License
+
+The basic framework, style checker and code metrics tool of MISS_HIT
+(everything under `miss_hit_core`) are licensed under the GNU GPL
+version 3 (or later) as described in
+[LICENSE](https://github.com/florianschanda/miss_hit/blob/master/LICENSE).
+
+The advanced analysis tools of MISS_HIT (everything under `miss_hit`)
+are licensed under the GNU Affero GPL version 3 (or later) as
+described in
+[LICENSE.AGPL](https://github.com/florianschanda/miss_hit/blob/master/LICENSE.AGPL).
+
+The vast majority of this work is (C) Florian Schanda. Contributions
+from the following people and entities are under their copyright, with
+the same license:
+
+* Alina Boboc (Documentation style)
+* Benedikt Schmid (MATLAB integration)
+* Remi Gau (CI/CD templates)
+* Veoneer System Software GmbH (JSON Metrics)
+* Zenuity AB (Key parts of the lexer)
+
+### Copyright of octave tests
+
+This project includes verbatim and modified/adapted parts of the GNU
+Octave testsuite under `tests/parser/octave_*` and
+`tests/style/octave_annotations`. These are (c) their original
+authors. Each file there describes from which file they derive.
+
+### Note on parser tests
+
+Some of the parser tests include code samples and documentation
+snippets from the publicly available MathWorks website. An
+attribution (in comment form) is always included in these cases.
+
+### Note on the documentation assets
+
+The documentation uses [feather
+icons](https://github.com/feathericons/feather/blob/master/LICENSE)
+which are licensed under the MIT License.
+
+
+%prep
+%autosetup -n miss-hit-0.9.38
+
+%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-miss-hit -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.9.38-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..feb03c7
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+ace14480fc37e5e52ea0f4c01b352b85 miss_hit-0.9.38.tar.gz