Skip to main content

rulebearing-rules

Rulebearing's framework presets as a versioned library, published with every Rulebearing release at the release version to npm (rulebearing-rules), NuGet (Rulebearing.Rules) and PyPI (rulebearing-rules). Install it from whichever registry your repository already uses, then extend a preset by the same name everywhere. Source, documentation and releases: https://github.com/benbahrenburg/rulebearing

npm install --save-dev rulebearing-rules          # node_modules/rulebearing-rules/
dotnet add package Rulebearing.Rules              # the NuGet global packages folder, after restore
pip install rulebearing-rules                     # site-packages/rulebearing_rules/
extends: [rulebearing:typescript, rulebearing:recommended, rulebearing-rules/nextjs]

Rulebearing looks for the package in node_modules/, then the NuGet global packages folder, then a Python environment's site-packages (docs/config.md). The binary bundles the same files as rulebearing:<preset>; the package lets a repository pin the rules' version through its package manager.

Preset What it is
nextjs The boundaries a Next.js application's folders imply, for the App Router and the Pages Router
clean-architecture Clean architecture's dependency rule, Domain <- Application <- Infrastructure and Presentation, read from paths so it holds for a .NET solution and for a source tree
django The layering a Django project's file names imply: models innermost, views reached through URL configurations
fastapi The layering most FastAPI services are written in: routers call services, which hold the logic
vertical-slices A feature never imports another feature, and the shared kernel never imports a feature back
recommended Rulebearing's rulebearing:recommended: the three language presets and the rules every language shares

Each framework preset is an opinion, not a default. Nothing extends one unless a configuration names it (design § The developer relations hat: "off by default, each a documented opinion"). Every rule's comment carries a decision token, and every rule's examples pass rulebearing test, which this repository's CI runs on each preset. What each preset forbids, and what it leaves out on purpose, is in presets/frameworks/README.md.

MIT licence.

How the packages are built

The presets live once, in presets/frameworks/ and presets/rulebearing/recommended.yaml; this folder holds the three package definitions and no copy of them (ADR-0071, FR-REACH-04, plan 0003 Step 23). pack.sh packs them at one version; the committed metadata carries none, and nothing in the source tree is edited.

Registry Definition Version Layout installed
npm package.json, staged with the presets, README.md and LICENSE in a temporary folder npm pkg set version= on the staged copy node_modules/rulebearing-rules/<preset>.yaml
NuGet Rulebearing.Rules.csproj, a content package with no assembly -p:Version, else the workspace version (eng/Rulebearing.Packages.props) <global packages>/rulebearing.rules/<version>/rulebearing-rules/<preset>.yaml
PyPI pyproject.toml and the hatchling hook hatch_rules.py, a wheel and a source distribution RULEBEARING_VERSION, else the workspace version; a pre-release as PEP 440 site-packages/rulebearing_rules/<preset>.yaml
wrappers/rules/pack.sh <version> <out-dir> [npm] [nuget] [pypi]   # none named: all three

The release workflow calls it from its existing packing jobs, install-checks each package on macOS, Linux and Windows by resolving extends: rulebearing-rules/nextjs from it, and publishes it beside the other packages (docs/release.md). pytest wrappers/rules --cov=wrappers/rules tests the hook and packs all three packages, then resolves the preset from each installed layout with the binary built from this checkout.

Metadata

Release files for rulebearing-rules 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rulebearing-rules 0.1.3
File Size Uploaded
rulebearing_rules-0.1.3.tar.gz 13.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rulebearing-rules 0.1.3
File Interpreter ABI Platform
rulebearing_rules-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 26.8 kB

Release files / rulebearing_rules-0.1.3.tar.gz

Download URL rulebearing_rules-0.1.3.tar.gz
Size 13.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e3639610bbbf3f9416f2f4c19afb8853421a8cc43c93a055e767c133fce3b3dd
BLAKE2b-256 checksum
How to use checksums
8477da076d59a0e0ea977e439ac5fc450d93faba3198e67689d49b45b7f1fbce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release files / rulebearing_rules-0.1.3-py3-none-any.whl

Download URL rulebearing_rules-0.1.3-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4be7ac09a01624a2d8a26e41f8a8ed5bb559aa534d201de7aa194fffe7c72df9
BLAKE2b-256 checksum
How to use checksums
e7b4d4e7bab2bd9f943817959adf0cd25a6998c0be999b89cee239126152abde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page