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.
Background
High-quality software projects demand more contribution effort. Syllabub makes assumptions so that:
- maintainers make fewer, less frequent project-level decisions
- contributors require less up-front learning, but can dive into detail when required
- Syllabub is not required as a dependency
Alternatives
Other Python scaffolding tools include:
These tools are general-purpose, allowing a maintainer to define an entire project template. Syllabub has fewer options and uses a built-in template.
Usage
- Set values in
pyproject.toml
. - Invoke
syllabub
to overwrite boilerplate files. - Review and modify diff.
- Commit changes.
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
Built Distribution
File details
Details for the file syllabub-0.1.6.tar.gz
.
File metadata
- Download URL: syllabub-0.1.6.tar.gz
- Upload date:
- Size: 65.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.5.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5290eb75066d0e2e4e7697d2893cb36c0c1447856e880f18db9f71b33293caca |
|
MD5 | d8d713a92678569d350f9f5190d63f1d |
|
BLAKE2b-256 | 6ec011226abfc67b688f0ec61fd672646fbdcfac82ac1fe81d3aa37b460df074 |
File details
Details for the file syllabub-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: syllabub-0.1.6-py3-none-any.whl
- Upload date:
- Size: 75.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.5.2 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03a33d8c7071b7dfa5a3a230bffde9861d97098d25985374e0f1ff18c79dcd6a |
|
MD5 | 6d0b46a64019079fd74f18fe22045dd7 |
|
BLAKE2b-256 | 29cefaa3b029e045bf4d9648c0d1fa1dce52eaf2221b958bfb654b1c122b9305 |