slim-starterkit-python

Template for a basic Python application implementing build, release and publish automation.

https://github.com/nasa-ammos/slim-starterkit-python

Science Score: 31.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.1%) to scientific vocabulary

Keywords

development python3 template
Last synced: 6 months ago · JSON representation ·

Repository

Template for a basic Python application implementing build, release and publish automation.

Basic Info
  • Host: GitHub
  • Owner: NASA-AMMOS
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 72.3 KB
Statistics
  • Stars: 10
  • Watchers: 7
  • Forks: 1
  • Open Issues: 1
  • Releases: 3
Topics
development python3 template
Created over 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Governance

README.md


[INSERT YOUR LOGO IMAGE HERE (IF APPLICABLE)]

[INSERT YOUR REPO / PROJ NAME HERE]

[INSERT A SINGLE SENTENCE DESCRIBING THE PURPOSE OF YOUR REPO / PROJ]

[INSERT YOUR BADGES HERE (SEE: https://shields.io)] SLIM <!-- Add badges via: https://shields.io e.g. -->

[INSERT SCREENSHOT OF YOUR SOFTWARE, IF APPLICABLE] <!-- Screenshot of your software (if applicable) via -->

[INSERT MORE DETAILED DESCRIPTION OF YOUR REPOSITORY HERE] <!-- Replace with a more detailed description of your repository, including why it was made and whom its intended for. -->

[INSERT LIST OF IMPORTANT PROJECT / REPO LINKS HERE] <!-- example links> Website | Docs/Wiki | Discussion Board | Issue Tracker -->

Features

  • [INSERT LIST OF FEATURES IMPORTANT TO YOUR USERS HERE]
  • Python build tooling based on PEP-517 and PEP-518 standards
  • Build, release and publish automation takes place automatically using GitHub Actions.

Contents

Quick Start

This guide provides a quick way to get started with our project. Please see our docs for a more comprehensive overview.

Requirements

  1. [INSERT LIST OF REQUIREMENTS HERE]

Build System Requirements

Certain properties and permission settings are necessary in GitHub for builds to run automatically. On local development systems builds may be tested in similar fashion with proper tooling installed.

Required repository settings
  1. Shared PyPi API Token installed in GitHub Repository Secrets named PYPI_API_TOKEN.
  2. Permissions to execute GitHub Actions and perform software tag and release. <!-- If necessary, update with a numbered list of your build requirements, including hardware if applicable -->
Required local tooling
  1. Build tooling modules pip3 install --upgrade build setuptools_scm twine wheel
  2. Product required modules (requirements.txt) pip3 --exists-action w install -r requirements.txt
    <!-- If necessary, update with a numbered list of your build requirements, including hardware if applicable -->

Setup Instructions

  1. [INSERT STEP-BY-STEP SETUP INSTRUCTIONS HERE, WITH OPTIONAL SCREENSHOTS]

Run Instructions

  1. [INSERT STEP-BY-STEP RUN INSTRUCTIONS HERE, WITH OPTIONAL SCREENSHOTS]

Usage Examples

  • [INSERT LIST OF COMMON USAGE EXAMPLES HERE, WITH OPTIONAL SCREENSHOTS]

Build Instructions

A GitHub Action configuration specifies the series of commands to release and publish the product. Commands are staged and carried out automatically when a tagged release is published to the main branch.

Automated Build Kickoff

  1. Edit the [INSERT YOUR PACKAGE NAME]/version.py file with the next release version using the web UI on GitHub main branch.
  2. Perform a release using the web UI on GitHub main branch
  3. Build, packaging and release to PyPi will execute automatically using GitHub Actions Workflows

Manual Build

These instructions must be entered from the local directory checked out from source control. 1. Manually update [INSERT YOUR PACKAGE NAME]/version.py with the next release version, commit and push to the main branch: git add [INSERT YOUR PACKAGE NAME]/version.py && git commit -m "Issue #<issue_number>: Updated version for release." && git push 2. Tag using the Git command line: git tag -a -m "Issue #<issue_number>: Release version <version>" <version> Note: The <version> must match that in the [INSERT YOUR PACKAGE NAME]/version.py file. 3. Package the product: - Package an sdist and a tarball: (traditional) git checkout [INSERT YOUR PACKAGE NAME]/version.py && python3 -m build --wheel - ... or package an sdist and a zip ... python3 -m build --wheel && python3 setup.py sdist --format=zip 4. Publish product to PyPi for public distribution by using Twine: twine check dist/* && twine upload --verbose ... or as a ZIP ... twine check dist/* && twine upload --verbose dist/*.whl dist/*.zip

Test Instructions (if applicable)

  1. [INSERT STEP-BY-STEP TEST INSTRUCTIONS HERE, WITH OPTIONAL SCREENSHOTS]

Local Build Testing

These instructions must be entered from the local directory checked out from source control. A simplified build and release workflow is available for testing locally. Publishing directly to PyPi is not recommended as PyPi permits one upload per release version.

  1. Clean application: rm -r build dist __pycache__ *.egg* .egg* ; git checkout [INSERT YOUR PACKAGE NAME]/version.py ; pip3 uninstall [INSERT YOUR PACKAGE NAME] -y
  2. Build and install release locally: python3 -m build --wheel && python3 setup.py sdist --format=zip pip3 install [INSERT YOUR PACKAGE NAME] --no-index --find-links file://${PWD}/dist/
    ... alternately, install an editable build using Pip tooling ... pip install -e
  3. Testing publication to Test PyPi
    Twine will prompt for your Test PyPi username and password. twine check dist/* twine upload --repository testpypi --verbose dist/* <!-- If necessary, update with numbered list of your test instructions, including expected results / outputs with optional screenshots -->

Changelog

See our CHANGELOG.md for a history of our changes.

See our releases page for our key versioned releases.

Frequently Asked Questions (FAQ)

[INSERT LINK TO FAQ PAGE OR PROVIDE FAQ INLINE HERE] <!-- example link to FAQ PAGE> Questions about our project? Please see our: FAQ -->

Contributing

Interested in contributing to our project? Please see our: CONTRIBUTING.md

For guidance on how to interact with our team, please see our code of conduct located at: CODEOFCONDUCT.md

For guidance on our governance approach, including decision-making process and our various roles, please see our governance model at: GOVERNANCE.md

License

See our: LICENSE <!-- Replace with the text of your copyright and license, or directly link to your license file -->

Support

[INSERT CONTACT INFORMATION OR PROFILE LINKS TO MAINTAINERS AMONG COMMITTER LIST]

Owner

  • Name: NASA Advanced Multi-Mission Operations System
  • Login: NASA-AMMOS
  • Kind: organization
  • Location: NASA

Administrator contacts: Aniwat.Nik.Sheurpukdi@jpl.nasa.gov and shawn.n.nguyen@jpl.nasa.gov For AMMOS tech support, please contact the developers.

Citation (CITATION.md)

# Citation

If you use any of these algorithms in your work, please directly cite this repository.

GitHub Events

Total
  • Watch event: 2
  • Issue comment event: 8
  • Push event: 5
  • Pull request review comment event: 2
  • Pull request review event: 7
  • Pull request event: 3
Last Year
  • Watch event: 2
  • Issue comment event: 8
  • Push event: 5
  • Pull request review comment event: 2
  • Pull request review event: 7
  • Pull request event: 3

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 18
  • Average time to close issues: N/A
  • Average time to close pull requests: 10 days
  • Total issue authors: 0
  • Total pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 0.72
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 9
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.89
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • ingyhere (16)
  • riverma (6)
  • jpl-jengelke (3)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/python-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
requirements.txt pypi
  • colorama *
.github/workflows/codeql/codeql-config.yml actions
.github/workflows/codeql.yml actions
  • actions/checkout v4 composite
  • actions/upload-artifact v4 composite
  • github/codeql-action/analyze v3 composite
  • github/codeql-action/init v3 composite
.github/workflows/pylint.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
.github/workflows/secrets-detection.yml actions
  • actions/checkout v4 composite
pyproject.toml pypi
setup.py pypi