Skip to main content

Keep Python project conventions up-to-date and worry less about trifling matters. 🍰

Project description

Syllabub project bolt-on

Keep Python project conventions up-to-date and worry less about trifling matters. 🍰

Status

Unstable prototype. Please wear goggles.

TODO:

Background

High-quality software projects demand more effort to contribute. Syllabub makes simplifying assumptions and toolchain/workflow decisions, so that:

  • maintainers make fewer, less frequent project-level decisions
  • contributors require less up-front learning, but can dive into detail when required
  • syllabub can be used as a bolt-on, not a dependency (maintainers can declare it as a dependency if they prefer)

Usage (syllabub tool)

  • Set values in pyproject.toml.
  • Invoke syllabub to overwrite boilerplate files.
  • Review diff.
  • Commit changes.

Usage (syllabub workflow)

See "Development environment" below.

Use case scenarios

Feature: Syllabub Project Generation

  Scenario: Create a new Syllabub-style project

    Given a valid pyproject.toml file
    And an empty folder
    When Syllabub is executed
    Then pyproject.toml will be updated
    And all project files will be created
    And code and placeholders will be generated

  Scenario: Update an existing Syllabub-style project

    Given a project with a valid pyproject.toml file
    When Syllabub is executed
    Then pyproject.toml will be updated
    And all project files will be overwritten
    But existing entry points will not be overwritten
    And changes must be reviewed before committing

  Scenario: Migrate an existing project to Syllabub conventions

    Given a project with a valid pyproject.toml file
    When Syllabub is executed
    Then pyproject.toml will be updated
    And all project files will be overwritten
    But existing entry points will not be overwritten
    And non-syllabub project files must be removed
    And changes must be reviewed before committing

Development environment

Install prerequisites

  • Python 3.10
  • pdm
  • make

Instructions

  • Fork the upstream repository.
  • git clone [fork-url]
  • cd [project-folder]
  • Run make develop to initialise your development environment.

You can use any text editor or IDE that supports virtualenv / pdm. See the Makefile for toolchain details.

Please make test and make lint before submitting changes.

Make targets

USAGE: make [target]

help    : Show this message.
develop : Set up Python development environment.
run     : Run from source.
clean   : Remove all build artefacts.
test    : Run tests and generate coverage report.
lint    : Fix or warn about linting errors.
build   : Clean, test, lint, then generate new build artefacts.
publish : Upload build artefacts to PyPI.

Sharing and contributions

Syllabub project bolt-on
https://lofidevops.neocities.org
Copyright 2022 David Seaward and contributors
SPDX-License-Identifier: AGPL-3.0-or-later

Shared under AGPL-3.0-or-later. We adhere to the Contributor Covenant 2.1, and certify origin per DCO 1.1 with a signed-off-by line. Contributions under the same terms are welcome.

Submit security and conduct issues as private tickets. Sign commits with git commit --signoff. For a software bill of materials run reuse spdx. For more details see CONDUCT, COPYING and CONTRIBUTING.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syllabub-0.0.4.tar.gz (64.9 kB view details)

Uploaded Source

Built Distribution

syllabub-0.0.4-py3-none-any.whl (75.3 kB view details)

Uploaded Python 3

File details

Details for the file syllabub-0.0.4.tar.gz.

File metadata

  • Download URL: syllabub-0.0.4.tar.gz
  • Upload date:
  • Size: 64.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.4.9 CPython/3.10.6

File hashes

Hashes for syllabub-0.0.4.tar.gz
Algorithm Hash digest
SHA256 57f5c176137962e9a2e7e089584f1adfbea2c2b5c123faabb1746ae62106037c
MD5 6d16a7dca259cbf512b87baa6cf43910
BLAKE2b-256 c561e930214eccea0567c9ad4f51af793cf3b5dd56b6579a40a0a880d693dfce

See more details on using hashes here.

File details

Details for the file syllabub-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: syllabub-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 75.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.4.9 CPython/3.10.6

File hashes

Hashes for syllabub-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 454e0f64dc3d120c68e9263edd54886a6a3db16aa0f9b503a7931ba0a5c519d2
MD5 ec045f51a74a4d6b21db847ae52f1845
BLAKE2b-256 96d1a144e5c9c0dd047b9f891df3112bbde4e61a63505a63dd028b44a295672f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page