---
# System prepended metadata

title: Skeleton / repo infrastructure synchronization
tags: [Collecting-feedback]

---

# Skeleton / repo infrastructure synchronization

## 1 Goal and scope
### Goal:

Establish a streamlined and consistent framework for Nipreps collaboration repositories.

### Scope:
* Unified Project Structure:The skeleton enforces a consistent and standardized structure across Nipreps collaboration repositories.
* Efficient Automation:The skeleton provides automated tools and processes for streamlined project initialization and integration, minimizing manual setup and reducing errors.
* Built-in Code Quality Tools: Integrated tools, such as Ruff settings and Codespell, enhance code quality by identifying and addressing issues proactively.
* Comprehensive Testing and CI Integration: The skeleton includes testing procedures and seamless integration with GitHub Actions.


## 2 Services that would be supported

* Code linting
    * Ruff settings
    * Codespell (typos)
* Continuous integration
    * GHA
        * Build sdist/wheels
        * Test install from sdist/wheel + pytest passes tests (xfails okay)
        * Test repo install + pytest on all supported Python versions
            * Installing data files is okay here
        * [OIDC uploads to PyPI](https://docs.pypi.org/trusted-publishers/)
            * Use [environment](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment) to require manual approval of upload. Checking CircleCI or other conditions can be listed for reviewers to consider.
        * Images? (CJM: Not sure what you mean here? Building docker images?)
    * CircleCI
        * Base machines?
        * ~~twine/pypi deployment~~
        * docker hub deployment
    * ReadTheDocs
        * .readthedocs.yml to enable PR builds if using
* Maintenance
    * Packaging/versioning
        * Hatchling
        * pyproject.toml
            * Python version
            * Major deps - numpy, nipype, etc.
                * Follow [SPEC0](https://scientific-python.org/specs/spec-0000/), more or less
            * Internal - sdcflows, niworkflows, templateflow
    * Dockerfile skeleton
    * Governance documents
        * Roadmaps
        * Maintainers list
    * Changelogs
* Docker images?
* GitHub:
    * Issue templates
    * Issue Labels

* Documentation building?
    * RTD for 

## Links

* https://blog.jaraco.com/skeleton/
* https://github.com/jaraco/skeleton