summaryrefslogtreecommitdiff
path: root/python-pds-github-util.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-10 07:59:49 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-10 07:59:49 +0000
commit04ae8c8020d12890a7f81fe2e12774f0f4376da7 (patch)
treeea95b928fc844b8deeda0e5b3c7c8c0bed4d49b9 /python-pds-github-util.spec
parentba503ee6bcb9995c6874aa743c357a7517bafefa (diff)
automatic import of python-pds-github-util
Diffstat (limited to 'python-pds-github-util.spec')
-rw-r--r--python-pds-github-util.spec642
1 files changed, 642 insertions, 0 deletions
diff --git a/python-pds-github-util.spec b/python-pds-github-util.spec
new file mode 100644
index 0000000..ea74b53
--- /dev/null
+++ b/python-pds-github-util.spec
@@ -0,0 +1,642 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pds-github-util
+Version: 0.29.0
+Release: 1
+Summary: util functions for software life cycle enforcement on github
+License: apache-2.0
+URL: https://github.com/NASA-PDS/pds-github-util
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/27/b6/0af3854c3161c4086c2bb9a77550ee89e63d7f6b1ecfdc255fd4ca221fcd/pds_github_util-0.29.0.tar.gz
+BuildArch: noarch
+
+
+%description
+# PDS Utility Function for GitHub
+
+Enforces the PDS engineering node software lifecycle:
+- publish snapshot releases for python (`python-release --snapshot`) or maven (`maven-release --snapshot`) projects
+- create requirements reports (`requirement-report`)
+- ping a repository, ie creates an empty commit & push e.g. to trigger github action (`git-ping`)
+- create build summaries from .gitmodule file (`summaries`)
+
+These routines are called from [GitHub Actions](https://github.com/features/actions).
+
+They are orchestrated around the [pdsen-corral](https://github.com/nasa-pds/pdsen-corral/) repository.
+
+**👉 Note:** You cannot use `pds-github-util` on `pds-github-util` because it does not follow the PDS standard directory layout with its source code under `src`. Do _not_ try to "Roundup" it or run `python-release` on it.
+
+
+# Prerequisites
+
+libxml2 is used to do publish a snapshot release of a maven project (`maven-release --snapshot`). It needs to be deployed as described in the following subsections.
+
+
+## macOS
+
+ brew install libxml2
+ cd ./venv/lib/python3.7/site-packages/ # chose the site package of the used python
+ ln -s /usr/local/Cellar/libxml2/2.9.10/lib/python3.7/site-packages/* .
+
+## Ubuntu, Debian, Mint, or Similar Linux
+
+ sudo apt-get update && sudo apt-get install libxml2-dev libxslt-dev python-dev
+ pip install lxml
+
+
+# Deployment and Execution
+
+Deploy:
+
+ pip install pds-gihub-util
+
+Some environment variables need to be set (they are defined by default in GitHub Actions but need to be set manually otherwise):
+
+ export GITHUB_WORKSPACE=<where the repository which we want to publish a snapshot is cloned>
+ export GITHUB_REPOSITORY=<full name of the repository which we want to publish for example NASA-PDS-Incubator/pds-app-registry>
+
+
+# Usage
+
+Get command arguments for each of the available utilities using `--help` flag. e.g.
+
+ maven-release --help
+ python-release --help
+ requirement-report --help
+ git-ping --help
+ summaries --help
+ milestones --help
+
+
+## Milestones
+
+Tool for managing Github milestones.
+
+Example of creating milestones:
+- for a single repo
+- specified in a config file
+- prepended by a number
+- first due date is 2021-02-25
+
+For example:
+
+ milestones --create --sprint-name-file conf/milestones_2021.yaml \
+ --prepend-number 3 --due-date 2021-02-25 \
+ --github-org NASA-PDS --github-repos pds-registry-common
+
+## PDS Issues
+
+Tool for generating simple Markdown issue reports.
+
+⚠️ **Warning:** not well tested beyond this example use case.
+
+Example of generating a report for open [NASA-PDS/validate repo](https://github.com/NASA-PDS/validate) issues:
+
+ pds-issues --github_repos validate --issue_state open
+
+Currently outputs to file: `pdsen_issues.md`.
+
+For the RDD generation for specific repo(s):
+
+ pds-issues --github-repos validate --issue_state closed --format rst --start-time 2020-10-26T00:00:00+00:00
+
+Generates `pdsen_issues.rst`.
+
+or for tickets specifically tagged with the Build label (e.g. B11.1)
+
+ pds-issues --github-repos validate --issue_state closed --format rst --build B11.1
+Generates `pdsen_issues.rst`
+
+For TRR/DDR metrics:
+
+ pds-issues --issue_state closed --format metrics --start-time 2020-04-19T00:00:00+00:00 --end-time 2021-10-31T00:00:00+00:00
+
+Move issues from one obsolete repository to a new one:
+
+ move-issues --source-repo NASA-PDS/api-search-query-lexer --target-repo NASA-PDS/registry-api --label lexer
+
+# SLOC reports
+
+## SLOC updates
+
+This is very manual so far,but the process is:
+
+1. clone the repository, for example:
+
+ cd /path/
+ git clone https://github.com/NASA-PDS/registry-api.git
+
+2. Identify the tag range where which you want to report updated SLOC, you can get the versions from the software summaries, see for example [build 13.0 component versions](https://nasa-pds.github.io/releases/13.0/) and [build 12.1 component versions](https://nasa-pds.github.io/releases/12.1/)
+
+As a note you should switch the lower tag patch version to 0 since . build are done during the build period on which we report.
+
+3. launch the report
+
+ python ./pds_github_util/sloc/repo_sloc.py --repo-path /path/registry-api --tag-range v1.1.10...v1.0.0
+
+
+# Milestones
+
+**Obsolete** - Sprints are now auto-magically handled by Zenhub
+
+Example of creating milestones:
+- for a single repo
+- specified in a config file
+- prepended by a number
+- first due date is 2021-02-25
+
+For example:
+
+ milestones --create --sprint_name_file conf/milestones_2021.yaml \
+ --prepend_number 3 --due_date 2021-02-25 \
+ --github_org NASA-PDS --github_repos pds-registry-common
+
+
+To close a milestone and move the open ticket to the next milestone use, for example:
+
+ milestones --github-org NASA-PDS --close --sprint-names 06.Mary.Decker.Slaney
+
+Note that the next milestone is automatically retrieved from the number (here 06) in the prefix. That might not work if the next sprint is not found this way.
+
+
+
+# Development
+
+ git clone ...
+ cd pds-github-util
+ python -m venv venv
+ source venv/bin/activate
+ pip install --editable '.'
+
+Update the code.
+
+Test the code:
+
+ export GITHUB_TOKEN=<personal access token for github>
+ python setup.py test
+
+Create package and publish it. Set the version in setup.py. Tag the code:
+
+ git tag <version>
+ git push origin --tags
+
+The package will be published to pypi automatically though GitHub Action.
+
+
+## Documentation Generation
+
+To manually create the project documentation:
+
+ pip install sphinx-rtd-theme sphinx-argparse
+
+
+## Manual Publications
+
+Create the package:
+
+ python setup.py sdist
+
+Publish it as a GitHub release.
+
+Publish on pypi (you need a pypi account):
+
+ pip install twine
+ twine upload dist/*
+
+
+%package -n python3-pds-github-util
+Summary: util functions for software life cycle enforcement on github
+Provides: python-pds-github-util
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pds-github-util
+# PDS Utility Function for GitHub
+
+Enforces the PDS engineering node software lifecycle:
+- publish snapshot releases for python (`python-release --snapshot`) or maven (`maven-release --snapshot`) projects
+- create requirements reports (`requirement-report`)
+- ping a repository, ie creates an empty commit & push e.g. to trigger github action (`git-ping`)
+- create build summaries from .gitmodule file (`summaries`)
+
+These routines are called from [GitHub Actions](https://github.com/features/actions).
+
+They are orchestrated around the [pdsen-corral](https://github.com/nasa-pds/pdsen-corral/) repository.
+
+**👉 Note:** You cannot use `pds-github-util` on `pds-github-util` because it does not follow the PDS standard directory layout with its source code under `src`. Do _not_ try to "Roundup" it or run `python-release` on it.
+
+
+# Prerequisites
+
+libxml2 is used to do publish a snapshot release of a maven project (`maven-release --snapshot`). It needs to be deployed as described in the following subsections.
+
+
+## macOS
+
+ brew install libxml2
+ cd ./venv/lib/python3.7/site-packages/ # chose the site package of the used python
+ ln -s /usr/local/Cellar/libxml2/2.9.10/lib/python3.7/site-packages/* .
+
+## Ubuntu, Debian, Mint, or Similar Linux
+
+ sudo apt-get update && sudo apt-get install libxml2-dev libxslt-dev python-dev
+ pip install lxml
+
+
+# Deployment and Execution
+
+Deploy:
+
+ pip install pds-gihub-util
+
+Some environment variables need to be set (they are defined by default in GitHub Actions but need to be set manually otherwise):
+
+ export GITHUB_WORKSPACE=<where the repository which we want to publish a snapshot is cloned>
+ export GITHUB_REPOSITORY=<full name of the repository which we want to publish for example NASA-PDS-Incubator/pds-app-registry>
+
+
+# Usage
+
+Get command arguments for each of the available utilities using `--help` flag. e.g.
+
+ maven-release --help
+ python-release --help
+ requirement-report --help
+ git-ping --help
+ summaries --help
+ milestones --help
+
+
+## Milestones
+
+Tool for managing Github milestones.
+
+Example of creating milestones:
+- for a single repo
+- specified in a config file
+- prepended by a number
+- first due date is 2021-02-25
+
+For example:
+
+ milestones --create --sprint-name-file conf/milestones_2021.yaml \
+ --prepend-number 3 --due-date 2021-02-25 \
+ --github-org NASA-PDS --github-repos pds-registry-common
+
+## PDS Issues
+
+Tool for generating simple Markdown issue reports.
+
+⚠️ **Warning:** not well tested beyond this example use case.
+
+Example of generating a report for open [NASA-PDS/validate repo](https://github.com/NASA-PDS/validate) issues:
+
+ pds-issues --github_repos validate --issue_state open
+
+Currently outputs to file: `pdsen_issues.md`.
+
+For the RDD generation for specific repo(s):
+
+ pds-issues --github-repos validate --issue_state closed --format rst --start-time 2020-10-26T00:00:00+00:00
+
+Generates `pdsen_issues.rst`.
+
+or for tickets specifically tagged with the Build label (e.g. B11.1)
+
+ pds-issues --github-repos validate --issue_state closed --format rst --build B11.1
+Generates `pdsen_issues.rst`
+
+For TRR/DDR metrics:
+
+ pds-issues --issue_state closed --format metrics --start-time 2020-04-19T00:00:00+00:00 --end-time 2021-10-31T00:00:00+00:00
+
+Move issues from one obsolete repository to a new one:
+
+ move-issues --source-repo NASA-PDS/api-search-query-lexer --target-repo NASA-PDS/registry-api --label lexer
+
+# SLOC reports
+
+## SLOC updates
+
+This is very manual so far,but the process is:
+
+1. clone the repository, for example:
+
+ cd /path/
+ git clone https://github.com/NASA-PDS/registry-api.git
+
+2. Identify the tag range where which you want to report updated SLOC, you can get the versions from the software summaries, see for example [build 13.0 component versions](https://nasa-pds.github.io/releases/13.0/) and [build 12.1 component versions](https://nasa-pds.github.io/releases/12.1/)
+
+As a note you should switch the lower tag patch version to 0 since . build are done during the build period on which we report.
+
+3. launch the report
+
+ python ./pds_github_util/sloc/repo_sloc.py --repo-path /path/registry-api --tag-range v1.1.10...v1.0.0
+
+
+# Milestones
+
+**Obsolete** - Sprints are now auto-magically handled by Zenhub
+
+Example of creating milestones:
+- for a single repo
+- specified in a config file
+- prepended by a number
+- first due date is 2021-02-25
+
+For example:
+
+ milestones --create --sprint_name_file conf/milestones_2021.yaml \
+ --prepend_number 3 --due_date 2021-02-25 \
+ --github_org NASA-PDS --github_repos pds-registry-common
+
+
+To close a milestone and move the open ticket to the next milestone use, for example:
+
+ milestones --github-org NASA-PDS --close --sprint-names 06.Mary.Decker.Slaney
+
+Note that the next milestone is automatically retrieved from the number (here 06) in the prefix. That might not work if the next sprint is not found this way.
+
+
+
+# Development
+
+ git clone ...
+ cd pds-github-util
+ python -m venv venv
+ source venv/bin/activate
+ pip install --editable '.'
+
+Update the code.
+
+Test the code:
+
+ export GITHUB_TOKEN=<personal access token for github>
+ python setup.py test
+
+Create package and publish it. Set the version in setup.py. Tag the code:
+
+ git tag <version>
+ git push origin --tags
+
+The package will be published to pypi automatically though GitHub Action.
+
+
+## Documentation Generation
+
+To manually create the project documentation:
+
+ pip install sphinx-rtd-theme sphinx-argparse
+
+
+## Manual Publications
+
+Create the package:
+
+ python setup.py sdist
+
+Publish it as a GitHub release.
+
+Publish on pypi (you need a pypi account):
+
+ pip install twine
+ twine upload dist/*
+
+
+%package help
+Summary: Development documents and examples for pds-github-util
+Provides: python3-pds-github-util-doc
+%description help
+# PDS Utility Function for GitHub
+
+Enforces the PDS engineering node software lifecycle:
+- publish snapshot releases for python (`python-release --snapshot`) or maven (`maven-release --snapshot`) projects
+- create requirements reports (`requirement-report`)
+- ping a repository, ie creates an empty commit & push e.g. to trigger github action (`git-ping`)
+- create build summaries from .gitmodule file (`summaries`)
+
+These routines are called from [GitHub Actions](https://github.com/features/actions).
+
+They are orchestrated around the [pdsen-corral](https://github.com/nasa-pds/pdsen-corral/) repository.
+
+**👉 Note:** You cannot use `pds-github-util` on `pds-github-util` because it does not follow the PDS standard directory layout with its source code under `src`. Do _not_ try to "Roundup" it or run `python-release` on it.
+
+
+# Prerequisites
+
+libxml2 is used to do publish a snapshot release of a maven project (`maven-release --snapshot`). It needs to be deployed as described in the following subsections.
+
+
+## macOS
+
+ brew install libxml2
+ cd ./venv/lib/python3.7/site-packages/ # chose the site package of the used python
+ ln -s /usr/local/Cellar/libxml2/2.9.10/lib/python3.7/site-packages/* .
+
+## Ubuntu, Debian, Mint, or Similar Linux
+
+ sudo apt-get update && sudo apt-get install libxml2-dev libxslt-dev python-dev
+ pip install lxml
+
+
+# Deployment and Execution
+
+Deploy:
+
+ pip install pds-gihub-util
+
+Some environment variables need to be set (they are defined by default in GitHub Actions but need to be set manually otherwise):
+
+ export GITHUB_WORKSPACE=<where the repository which we want to publish a snapshot is cloned>
+ export GITHUB_REPOSITORY=<full name of the repository which we want to publish for example NASA-PDS-Incubator/pds-app-registry>
+
+
+# Usage
+
+Get command arguments for each of the available utilities using `--help` flag. e.g.
+
+ maven-release --help
+ python-release --help
+ requirement-report --help
+ git-ping --help
+ summaries --help
+ milestones --help
+
+
+## Milestones
+
+Tool for managing Github milestones.
+
+Example of creating milestones:
+- for a single repo
+- specified in a config file
+- prepended by a number
+- first due date is 2021-02-25
+
+For example:
+
+ milestones --create --sprint-name-file conf/milestones_2021.yaml \
+ --prepend-number 3 --due-date 2021-02-25 \
+ --github-org NASA-PDS --github-repos pds-registry-common
+
+## PDS Issues
+
+Tool for generating simple Markdown issue reports.
+
+⚠️ **Warning:** not well tested beyond this example use case.
+
+Example of generating a report for open [NASA-PDS/validate repo](https://github.com/NASA-PDS/validate) issues:
+
+ pds-issues --github_repos validate --issue_state open
+
+Currently outputs to file: `pdsen_issues.md`.
+
+For the RDD generation for specific repo(s):
+
+ pds-issues --github-repos validate --issue_state closed --format rst --start-time 2020-10-26T00:00:00+00:00
+
+Generates `pdsen_issues.rst`.
+
+or for tickets specifically tagged with the Build label (e.g. B11.1)
+
+ pds-issues --github-repos validate --issue_state closed --format rst --build B11.1
+Generates `pdsen_issues.rst`
+
+For TRR/DDR metrics:
+
+ pds-issues --issue_state closed --format metrics --start-time 2020-04-19T00:00:00+00:00 --end-time 2021-10-31T00:00:00+00:00
+
+Move issues from one obsolete repository to a new one:
+
+ move-issues --source-repo NASA-PDS/api-search-query-lexer --target-repo NASA-PDS/registry-api --label lexer
+
+# SLOC reports
+
+## SLOC updates
+
+This is very manual so far,but the process is:
+
+1. clone the repository, for example:
+
+ cd /path/
+ git clone https://github.com/NASA-PDS/registry-api.git
+
+2. Identify the tag range where which you want to report updated SLOC, you can get the versions from the software summaries, see for example [build 13.0 component versions](https://nasa-pds.github.io/releases/13.0/) and [build 12.1 component versions](https://nasa-pds.github.io/releases/12.1/)
+
+As a note you should switch the lower tag patch version to 0 since . build are done during the build period on which we report.
+
+3. launch the report
+
+ python ./pds_github_util/sloc/repo_sloc.py --repo-path /path/registry-api --tag-range v1.1.10...v1.0.0
+
+
+# Milestones
+
+**Obsolete** - Sprints are now auto-magically handled by Zenhub
+
+Example of creating milestones:
+- for a single repo
+- specified in a config file
+- prepended by a number
+- first due date is 2021-02-25
+
+For example:
+
+ milestones --create --sprint_name_file conf/milestones_2021.yaml \
+ --prepend_number 3 --due_date 2021-02-25 \
+ --github_org NASA-PDS --github_repos pds-registry-common
+
+
+To close a milestone and move the open ticket to the next milestone use, for example:
+
+ milestones --github-org NASA-PDS --close --sprint-names 06.Mary.Decker.Slaney
+
+Note that the next milestone is automatically retrieved from the number (here 06) in the prefix. That might not work if the next sprint is not found this way.
+
+
+
+# Development
+
+ git clone ...
+ cd pds-github-util
+ python -m venv venv
+ source venv/bin/activate
+ pip install --editable '.'
+
+Update the code.
+
+Test the code:
+
+ export GITHUB_TOKEN=<personal access token for github>
+ python setup.py test
+
+Create package and publish it. Set the version in setup.py. Tag the code:
+
+ git tag <version>
+ git push origin --tags
+
+The package will be published to pypi automatically though GitHub Action.
+
+
+## Documentation Generation
+
+To manually create the project documentation:
+
+ pip install sphinx-rtd-theme sphinx-argparse
+
+
+## Manual Publications
+
+Create the package:
+
+ python setup.py sdist
+
+Publish it as a GitHub release.
+
+Publish on pypi (you need a pypi account):
+
+ pip install twine
+ twine upload dist/*
+
+
+%prep
+%autosetup -n pds-github-util-0.29.0
+
+%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-pds-github-util -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.29.0-1
+- Package Spec generated