Metadata-Version: 2.1
Name: pds-github-util
Version: 0.3.3
Summary: util functions for software life cycle enforcement on github
Home-page: https://github.com/NASA-PDS-Incubator/pds-github-util
Author: thomas loubrieu
Author-email: loubrieu@jpl.nasa.gov
License: apache-2.0
Download-URL: https://github.com/NASA-PDS-Incubator/pds-github-util/releases/download/0.0.1/pds_github_util-0.0.1.tar.gz
Keywords: github,action,github action,snapshot,release,maven
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: github3.py (>=1.3)
Requires-Dist: lxml (>=4.5)
Requires-Dist: mdutils (>=1.2)
Requires-Dist: packaging (>=20.4)

# PDS utility function for github

Enforces the PDS engineering node software lifecycle:
  - releases


# Prerequisites

libxml2 is used. It needs to be deployed as follow:

## 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

    sudo apt-get update && sudo apt-get install libxml2-dev libxslt-dev python-dev
    pip install lxml

# deploy and run

Deploy:

    pip install pds-gihub-util

Some environment variable need to be set (they are defined by default in github action 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>


Get command arguments:

    maven-snapshot-release --help
    python-snapshot-release --help
    requirement-report --help




# Development

    git clone ...
    cd pds-github-util
    python -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt

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.

## Manually publish the package

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/*




