Skip to content
/ PyPackIT Public template

Cloud-Native Continuous Software Engineering Automation for Python Packages on GitHub

License

Notifications You must be signed in to change notification settings

RepoDynamics/PyPackIT

PyPackIT: Cloud-Native Continuous Software Engineering Automation for Python Packages on GitHub


Intro  Manual  News  Contribute  About  Help


Automation Cloud-Native Development Continuous Integration Continuous Delivery Continuous Deployment Continuous Testing Continuous Refactoring Continuous Configuration Automation Continuous Software Engineering DevOps Infrastructure as Code Agile Dynamic Project Management Template Repository Python Package Skeleton Sphinx Website Test Suite Skeleton FAIR Software GitHub Actions Bot

PyPackIT [ˈpaɪˌpækɪt] is a comprehensive cloud-based automation tool for production of FAIR and professional software on GitHub, in accordance with the latest engineering best practices and standards. It is a ready-to-use software suite that streamlines the initiation, configuration, development, publication, management, and maintenance of high-quality software libraries in Python. By taking charge of repetitive tasks and automatically enforcing best practices throughout the software development life-cycle, PyPackIT enables users to solely focus on the creative aspects of their projects, while improving quality and lowering production costs. Using state-of-the-art tools and methodologies, PyPackIT offers a robust project infrastructure, including a build-ready Python package skeleton, a fully operational test suite, a complete documentation website, and a comprehensive control center facilitating Continuous Configuration Automation (CCA) and dynamic project management. PyPackIT establishes a complete cloud-native development environment on GitHub, integrating with its version control system, issue tracker, and pull-based model to provide a fully automated software development workflow, complete with features like issue management, branching model, and version scheme. Leveraging GitHub Actions (GHA), PyPackIT implements a cloud-native development process with specialized Continuous Integration (CI), Deployment (CD), Testing (CT), Refactoring (CR), and Maintenance (CM) pipelines, using Agile, Continuous software engineering, and DevOps methodologies. PyPackIT is a free and open-source software suite that readily integrates with both new and existing projects to ensure their long-term sustainability and high quality, thus enabling developers to rapidly implement their ideas and easily maintain their software.

10.5281/zenodo.14359838  pypackit  pypackit -c repodynamics  ghcr.io/repodynamics/pypackit:latest  PyPackIT  try online

Highlights

Ready to Use

PyPackIT is fully preconfigured and readily installed in both new and existing repositories, requiring most users to only fill project-specific metadata. PyPackIT then takes over, automatically setting up the repository and generating a complete infrastructure for the project where the only remaining steps in the software development process are adding your code, unit-tests, and documentation content.

Customizability and Dynamism

While fully configured out of the box, PyPackIT is highly customizable, allowing users to tailor every aspect of their project and development pipeline to their specific needs. PyPackIT's control center provides detailed configuration options in a declarative format, while enabling the dynamic generation of custom specifications and metadata during runtime. These can be used to generate and augment other configurations and files, rendering the entire project dynamic and eliminating redundancy.

Cloud Development

PyPackIT is a cloud-based solution that integrates with GitHub and uses GitHub Actions to automate the software development process. It provides a cloud-native development environment that eliminates the need for initial setup and configuration, enabling users to immediately begin the actual implementation of software, even directly from the web browser. This promotes collaboration, which is essential for project sustainability.

Continuous Configuration Automation

PyPackIT provides a centralized user interface based on DevOps practices like Infrastructure-as-Code (IaC) to enable Continuous Configuration Automation (CCA) for the entire project. PyPackIT's control center simplifies project configuration, customization, and management via automatic data templating and augmentation, cross-repository inheritance, and synchronization features that instantly apply modifications to all project components.

Python Package

PyPackIT includes a fully-configured and build-ready package skeleton automatically maintained via the control center. Users only need to add application code in the provided source files, while PyPackIT automates all integration, packaging, and deployment tasks. To facilitate software findability and usage, each new release is published to GitHub, PyPI, and Zenodo, with a persistent DOI ensuring reproducibility and reliable citations.

Test Suite

PyPackIT's fully operational testing infrastructure enables the immediate adoption of test-driven methodologies, requiring users to only provide test cases in the provided skeleton. Testing is then automatically performed throughout the development life-cycle, while improving awareness of software health status via notifications and reports. The test suite is automatically packaged and distributed along each release, allowing for verification of software functionality and performance by its users.

Documentation Website

PyPackIT offers an automated solution for maintaining a comprehensive documentation website, requiring users to simply provide docstrings. A fully designed website is included, prefilled with content that is automatically customized with project-specific information and continuously complemented throughout the development process. The website is automatically deployed to GitHub Pages and ReadTheDocs, requiring no web development knowledge.

Version Control

PyPackIT fully integrates with Git to automate tasks like branch and commit management, versioning, tagging, and merging. It implements a specialized branching model and version scheme for simultaneous publication and support of multiple releases, thus enabling rapid project evolution according to Agile and Continuous software engineering methodologies, while ensuring the availability and sustainability of earlier releases.

Issue Management

PyPackIT dynamically maintains the project's issue tracking system, providing type-specific submission forms designed according to best practices. These collect user inputs in a structured and machine-readable format, allowing PyPackIT to automate issue management activities such as ticket formatting, labeling and organization, task assignment, design documentation, issue–commit linkage, and progress monitoring. PyPackIT can also execute tests from issue comments, greatly simplifying bug triage.

Continuous Integration & Deployment

PyPackIT's CI/CD pipelines automate tasks such as code style formatting, static code analysis, type checking, testing, dependency monitoring, versioning, packaging, build, release, and distribution. They eliminate the need for dedicated integration and deployment teams, while increasing control, integrity, scalability, security, and transparency of the Agile development process.

Continuous Refactoring & Testing

PyPackIT ensures long-term project sustainability by periodically performs automated testing, refactoring, and maintenance tasks such as testing previous releases with updated dependencies, analyzing and formatting code according to the latest standards, upgrading development tools and project infrastructure, and maintaining the health of the project and its development environment by automatically creating issues and pull requests for applying updates and fixes.

Copyright & Licensing

PyPackIT is fully integrated with the SPDX license standard and supports all SPDX License List entries as well as user-defined licenses. Projects can define complex licenses simply by providing an SPDX expression. PyPackIT will then automatically retrieve the required license data, customize it with project-specific information, produce visually appealing and valid license files, and integrate license information into all project components and releases.

Security & Transparency

PyPackIT improves project security while supporting community collaboration by incorporating security measures like branch/tag protection, vulnerability scanning, dependency monitoring, and private security advisories. All workflows and Actions are developed according to the latest security standards to prevent unauthorized access, data breaches, and code injection attacks. To ensure that PyPackIT itself is highly secure, its entire infrastructure is natively implemented and self-contained.

Upcoming Release

0.0.0  major  2024-12-13  10.5281/zenodo.14359839  PyPackIT == 0.0.0  PyPackIT == 0.0.0 -c RepoDynamics  ghcr.io/repodynamics/pypackit:0.0.0  ver/0.0.0  try online

Project Initialization

This is an initial emtpy release.

Latest Developmental Release

10.5072/zenodo.141305

Requirements

⚙️ Operating System any any any

Python 3.10 | 3.11 | 3.12 | 3.13 any

📦 Dependencies any

Interfaces

API pypackit

CLI PyPackIT

Statistics

Project

Repository creation date  Repository contributors  Programming Languages  Top Programming Language  Repository Size  Code Size

Health

Test Coverage  SourceRank  Dependency Status  Dependency Status  Website Status

Standards

Pytest  mypy  Ruff  CodeQL  Black

Downloads

PyPI Downloads PyPI Downloads PyPI Downloads PyPI Downloads  Conda Downloads  GitHub Downloads

Users

Dependents  Dependents

Issues

Open Issues CountClosed Issues Count  Open Issues CountClosed Issues Count  Open Issues CountClosed Issues Count  Open Issues CountClosed Issues Count  

PRs

Open Pulls CountClosed Pulls Count  Open Pulls CountClosed Pulls Count  Open Pulls CountClosed Pulls Count  Open Pulls CountClosed Pulls Count  

Commits

Total commits  Commits/Year  Commits/Month  Commits/Week  Commits since latest release  Last commit

Discussions

Discussions Search Hits (category:"Branding")  Discussions Search Hits (category:"Bug Report")  Discussions Search Hits (category:"General")  Discussions Search Hits (category:"Installation")  Discussions Search Hits (category:"New Features")  Discussions Search Hits (category:"Polls")  Discussions Search Hits (category:"Release")  Discussions Search Hits (category:"Show and tell")  Discussions Search Hits (category:"Usage")

Community

Forks  Stars  Repository Watchers

DevOps

Workflow Status  Deployment Status  Deployment Status  Deployment Status  Deployment Status  Deployment Status  Deployment Status  Deployment Status  Deployment Status  Website Build Status

Acknowledgements

PyPackIT was developed in Volkamer Lab.


PyPackIT: Copyright © 2023–2024 RepoDynamics SPDX-License-Identifier: AGPL-3.0-or-later