GithubHelp home page GithubHelp logo

reef-technologies / cookiecutter-rt-pkg Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 64 KB

Reef Technologies opinionated cookiecutter for python packages

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%
cookiecutter python

cookiecutter-rt-pkg's Introduction

cookiecutter-rt-pkg

Opinionated cookiecutter for Python packages.

Features

Packages created from this template get following features:

  • CI with GitHub Actions
  • Trusted Publishing to PyPI with GitHub Actions
  • Signed release files using sigstore
  • Pre-configured nox for testing (pytest), autoformatting and auto linting (ruff)
  • Testing against multiple Python versions, operating systems, and optionally, Django versions
  • Testing utils for testing ApiVer interfaces
  • Package layout and release process with SemVer & ApiVer in mind
  • Towncrier for conflict free changelogs

Template features

  • CI for cookiecutter template itself

Planned features

  • CD should require CI tests to pass first
  • excluding some django-python combos in nox test matrix (allow to test of Django5+Python3.12 and Django4+Python3.9 but not Django5+Python3.9)
  • Contributing guidelines
  • PR templates
  • ability to build binary & python version-specific wheels

Usage

cruft is used to manage the template, you can install it with:

pip install cruft

To generate a new package:

  1. Setup empty repository on GitHub
  2. Run:
cruft create https://github.com/reef-technologies/cookiecutter-rt-pkg
  1. Configure Trusted Publishers to allow GitHub Actions to publish to PyPI, follow instructions in {{cookiecutter.package_name}}/.github/workflows/publish.yml

When you wish to update your project to the latest version of the template:

cruft update

Before committing make sure to review changes listed in docs/3rd_party/cookiecutter-rt-pkg/CHANGELOG.md.

Linking an existing repository

If you have an existing repo, you can link it to the template by running:

cruft link https://github.com/reef-technologies/cookiecutter-rt-pkg

Contributing

When proposing new features or changes, make sure to consider the context of the application template cookiecutter-rt-django as well. It is important we do not try to solve the same problem in two different ways.

License

This project is licensed under the terms of the BSD-3 License

Changelog

Breaking changes are documented in the CHANGELOG

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.