Skip to main content

Suggests incremental improvements for existing projects

Project description

advice-animal

Advice Animal answers the question of what do we do after running cookiecutter, or how to we avoid telling people we support to run a sed script.

Design Goals

Existing projects such as cookiecutter do a pretty solid job of initial project generation, and ones such as ruff, fixit, and pyupgrade do a solid job of suggesting universal (that is, applicable to everyone) changes.

Advice Animal is developed to serve a central team that has opinions, but wants to leave the application of that advice up to teams owning individual repos that have the interest and time to apply it.

  • The storage of fixes is decoupled from the release of the thing that runs them.
    • It's just a git repo, which gets pulled on each run.
    • But can also be a directory, if you want to manage distribution with puppet or your monorepo or are working on proposed changes.
  • Fixes are run with a trivial workflow engine.
    • Creates a branch-per-fix with git.
    • Expensive fixes can record that they're done, to avoid running again
    • Fixes can be manual (think "feature add")
    • Your fix repo can customize workflow, including branch naming and commands that get run (say you have a FUSE/mercurial setup or need to run tox -e stylefix and amend).
  • Your users choose what fixes they want (either by quality=their available time), or by declining a fix.
  • Third-party libraries are easy to use in your fixes, and they don't even need to be public.

Fix confidence

Using traffic light colors for simplicity:

  • FixConfidence.GREEN are high-confidence fixes that a) something is wrong and b) this won't make it worse (think, formatting). Trust your tests and land these.

  • FixConfidence.YELLOW ought to have human review (and definitely make sure the tests run), but are low-effort to apply (think, renaming python modules that have uppercase in them, or bumping a version to avoid a known CVE). Meets the bar for a passing mention in release notes.

  • FixConfidence.RED likely need a human to pick up the baton and finish it (think: you clearly use types, you probably should enable mypy in CI).

Version Compat

Usage of this library should work back to 3.7, but development (and mypy compatibility) only on 3.10-3.12. Linting requires 3.12 for full fidelity.

Versioning

This library follows meanver which basically means semver along with a promise to rename when the major version changes.

License

advice-animal is copyright Tim Hatch, and licensed under the MIT license. See the LICENSE file for details.

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

advice_animal-0.4.5.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

advice_animal-0.4.5-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file advice_animal-0.4.5.tar.gz.

File metadata

  • Download URL: advice_animal-0.4.5.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for advice_animal-0.4.5.tar.gz
Algorithm Hash digest
SHA256 75657c53f6c5067b0c283e9f7718c39eba20bdc47eb5a7f6737dd07e60f2856f
MD5 caca7c2c4b113365839ee56accca6f27
BLAKE2b-256 65917e1983154d318d9b767c8ead9da2cc189d08703f4d640ddd9b80b2655df3

See more details on using hashes here.

Provenance

The following attestation bundles were made for advice_animal-0.4.5.tar.gz:

Publisher: build.yml on advice-animal/advice-animal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file advice_animal-0.4.5-py3-none-any.whl.

File metadata

  • Download URL: advice_animal-0.4.5-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for advice_animal-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 466125c2e25f6443dee2861ad33de79f0a30e9b1fe4f8257ab11c49ba54710a8
MD5 ab74d257d34fee12989dcac83858438f
BLAKE2b-256 bf8cc0696e780f956373d082c5ff21421dc64e1a9e8d0f23e6c6b07bafae04e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for advice_animal-0.4.5-py3-none-any.whl:

Publisher: build.yml on advice-animal/advice-animal

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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