summaryrefslogtreecommitdiff
path: root/python-agile-analytics.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-agile-analytics.spec')
-rw-r--r--python-agile-analytics.spec297
1 files changed, 297 insertions, 0 deletions
diff --git a/python-agile-analytics.spec b/python-agile-analytics.spec
new file mode 100644
index 0000000..f7ab10a
--- /dev/null
+++ b/python-agile-analytics.spec
@@ -0,0 +1,297 @@
+%global _empty_manifest_terminate_build 0
+Name: python-agile-analytics
+Version: 0.15.2
+Release: 1
+Summary: Pulls data from agile systems and analyzes it.
+License: MIT License
+URL: https://github.com/cmheisel/agile-analytics
+Source0: https://mirrors.aliyun.com/pypi/web/packages/90/41/6e0bcd3bae9f0680bed97247754364ba23525d9165b41b288142deb7ff0a/agile-analytics-0.15.2.tar.gz
+BuildArch: noarch
+
+
+%description
+# jira-agile-extractor
+
+[![Build Status](https://travis-ci.org/cmheisel/agile-analytics.svg?branch=master)](https://travis-ci.org/cmheisel/agile-analytics)
+[![Coverage Status](https://coveralls.io/repos/github/cmheisel/agile-analytics/badge.svg?branch=master)](https://coveralls.io/github/cmheisel/agile-analytics?branch=master)
+[![Stories in Ready](https://badge.waffle.io/cmheisel/agile-analytics.svg?label=ready&title=Ready)](http://waffle.io/cmheisel/agile-analytics)
+
+Extract data about items from JIRA, output raw data and interesting reports
+
+## Architecture
+
+The agile extractor is composed of several different components. Fetchers gather data, which is fed to one or more analyzer/reporters/writer combos.
+
+### Components
+
+#### Fetchers
+
+Fetchers are responsible for getting raw data about tickets from agile data sources (JIRA, Trello, etc.)
+
+They depend on fetcher specific configuration including things like API end points, credentials and search criteria.
+
+They produce a set of AgileTicket objects with a known interface.
+
+#### Analyzers
+
+Analyzers take in a set of AgileTicket objects and an analysis configuration and return a set of AnalyzedTicket objects that contain the original AgileTicket as well as additional data calculated in light of the analysis context.
+
+For example, a CycleTime analyzer would look for a start_state and an end_state in the configuration, and calculate the days between those and store it as cycle_time on the AnalyzedTicket object.
+
+#### Reporters
+
+Reporters take in a set of AnalyzedTicket objects and a report configuration and return a Report object. It has two standard attributes:
+* Table - A representation of the report as a 2 dimensional table, provides column headers, row labels, and values for each row/column combo
+* Summary - A key/value store of report specific data
+
+#### Writers
+
+Writers take in a Report and a WriterConfig can write it out a particular source. Examples:
+* CSV to standout
+* CSV to a file
+* Google spreadsheet
+* Plotly
+
+### Diagram
+
+```
+ +-----------> Reporter: Distribution
+ | title=Cycle Time Distribution
+ | start_date=1/1/2015
+ | end_date=3/31/2015
+ | field=cycle_time
+ |
+ +-----------> Reporter: Throughput
+ | title=Weekly Throughput
+ | start_date=1/1/2015
+ | end_date=3/31/2015
+ | period=weekly
+ |
+ |
+ |
+ +-----------------> Analyzer: Cycle Time +
+ | start_state=Backlog
+ | end_state=Deployed
+ | issue_types=Story
+ |
+Fetcher | +-----------> Reporter: Throughput
+ source=JIRA +----------------> Analyzer: Defect + title=Escaped Defects
+ filter=1111 | defect_types=Bug,Incident start_date=1/1/2015
+ auth=user,pass | end_date=3/31/2015
+ |
+ |
+ +----------------> Analyzer: Cycle Time +-----------> Reporter: Throughput
+ start_state=Analysis title=Weekly Analysis Throughput
+ end_state=Dev start_date=1/1/2015
+ end_date=3/31/2015
+ period=weekly
+```
+
+%package -n python3-agile-analytics
+Summary: Pulls data from agile systems and analyzes it.
+Provides: python-agile-analytics
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-agile-analytics
+# jira-agile-extractor
+
+[![Build Status](https://travis-ci.org/cmheisel/agile-analytics.svg?branch=master)](https://travis-ci.org/cmheisel/agile-analytics)
+[![Coverage Status](https://coveralls.io/repos/github/cmheisel/agile-analytics/badge.svg?branch=master)](https://coveralls.io/github/cmheisel/agile-analytics?branch=master)
+[![Stories in Ready](https://badge.waffle.io/cmheisel/agile-analytics.svg?label=ready&title=Ready)](http://waffle.io/cmheisel/agile-analytics)
+
+Extract data about items from JIRA, output raw data and interesting reports
+
+## Architecture
+
+The agile extractor is composed of several different components. Fetchers gather data, which is fed to one or more analyzer/reporters/writer combos.
+
+### Components
+
+#### Fetchers
+
+Fetchers are responsible for getting raw data about tickets from agile data sources (JIRA, Trello, etc.)
+
+They depend on fetcher specific configuration including things like API end points, credentials and search criteria.
+
+They produce a set of AgileTicket objects with a known interface.
+
+#### Analyzers
+
+Analyzers take in a set of AgileTicket objects and an analysis configuration and return a set of AnalyzedTicket objects that contain the original AgileTicket as well as additional data calculated in light of the analysis context.
+
+For example, a CycleTime analyzer would look for a start_state and an end_state in the configuration, and calculate the days between those and store it as cycle_time on the AnalyzedTicket object.
+
+#### Reporters
+
+Reporters take in a set of AnalyzedTicket objects and a report configuration and return a Report object. It has two standard attributes:
+* Table - A representation of the report as a 2 dimensional table, provides column headers, row labels, and values for each row/column combo
+* Summary - A key/value store of report specific data
+
+#### Writers
+
+Writers take in a Report and a WriterConfig can write it out a particular source. Examples:
+* CSV to standout
+* CSV to a file
+* Google spreadsheet
+* Plotly
+
+### Diagram
+
+```
+ +-----------> Reporter: Distribution
+ | title=Cycle Time Distribution
+ | start_date=1/1/2015
+ | end_date=3/31/2015
+ | field=cycle_time
+ |
+ +-----------> Reporter: Throughput
+ | title=Weekly Throughput
+ | start_date=1/1/2015
+ | end_date=3/31/2015
+ | period=weekly
+ |
+ |
+ |
+ +-----------------> Analyzer: Cycle Time +
+ | start_state=Backlog
+ | end_state=Deployed
+ | issue_types=Story
+ |
+Fetcher | +-----------> Reporter: Throughput
+ source=JIRA +----------------> Analyzer: Defect + title=Escaped Defects
+ filter=1111 | defect_types=Bug,Incident start_date=1/1/2015
+ auth=user,pass | end_date=3/31/2015
+ |
+ |
+ +----------------> Analyzer: Cycle Time +-----------> Reporter: Throughput
+ start_state=Analysis title=Weekly Analysis Throughput
+ end_state=Dev start_date=1/1/2015
+ end_date=3/31/2015
+ period=weekly
+```
+
+%package help
+Summary: Development documents and examples for agile-analytics
+Provides: python3-agile-analytics-doc
+%description help
+# jira-agile-extractor
+
+[![Build Status](https://travis-ci.org/cmheisel/agile-analytics.svg?branch=master)](https://travis-ci.org/cmheisel/agile-analytics)
+[![Coverage Status](https://coveralls.io/repos/github/cmheisel/agile-analytics/badge.svg?branch=master)](https://coveralls.io/github/cmheisel/agile-analytics?branch=master)
+[![Stories in Ready](https://badge.waffle.io/cmheisel/agile-analytics.svg?label=ready&title=Ready)](http://waffle.io/cmheisel/agile-analytics)
+
+Extract data about items from JIRA, output raw data and interesting reports
+
+## Architecture
+
+The agile extractor is composed of several different components. Fetchers gather data, which is fed to one or more analyzer/reporters/writer combos.
+
+### Components
+
+#### Fetchers
+
+Fetchers are responsible for getting raw data about tickets from agile data sources (JIRA, Trello, etc.)
+
+They depend on fetcher specific configuration including things like API end points, credentials and search criteria.
+
+They produce a set of AgileTicket objects with a known interface.
+
+#### Analyzers
+
+Analyzers take in a set of AgileTicket objects and an analysis configuration and return a set of AnalyzedTicket objects that contain the original AgileTicket as well as additional data calculated in light of the analysis context.
+
+For example, a CycleTime analyzer would look for a start_state and an end_state in the configuration, and calculate the days between those and store it as cycle_time on the AnalyzedTicket object.
+
+#### Reporters
+
+Reporters take in a set of AnalyzedTicket objects and a report configuration and return a Report object. It has two standard attributes:
+* Table - A representation of the report as a 2 dimensional table, provides column headers, row labels, and values for each row/column combo
+* Summary - A key/value store of report specific data
+
+#### Writers
+
+Writers take in a Report and a WriterConfig can write it out a particular source. Examples:
+* CSV to standout
+* CSV to a file
+* Google spreadsheet
+* Plotly
+
+### Diagram
+
+```
+ +-----------> Reporter: Distribution
+ | title=Cycle Time Distribution
+ | start_date=1/1/2015
+ | end_date=3/31/2015
+ | field=cycle_time
+ |
+ +-----------> Reporter: Throughput
+ | title=Weekly Throughput
+ | start_date=1/1/2015
+ | end_date=3/31/2015
+ | period=weekly
+ |
+ |
+ |
+ +-----------------> Analyzer: Cycle Time +
+ | start_state=Backlog
+ | end_state=Deployed
+ | issue_types=Story
+ |
+Fetcher | +-----------> Reporter: Throughput
+ source=JIRA +----------------> Analyzer: Defect + title=Escaped Defects
+ filter=1111 | defect_types=Bug,Incident start_date=1/1/2015
+ auth=user,pass | end_date=3/31/2015
+ |
+ |
+ +----------------> Analyzer: Cycle Time +-----------> Reporter: Throughput
+ start_state=Analysis title=Weekly Analysis Throughput
+ end_state=Dev start_date=1/1/2015
+ end_date=3/31/2015
+ period=weekly
+```
+
+%prep
+%autosetup -n agile-analytics-0.15.2
+
+%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-agile-analytics -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.15.2-1
+- Package Spec generated