Skip to content

Repository files navigation

Tools

Why this repository exists

The utilities/tools in this repository used to live inside tooling. That repo works well for its main purpose, but it also pulls in a large and growing dependency graph because it bundles many unrelated concerns together.

That created a real cost for consumers: if you only needed one small, self-contained utility, building or depending on it meant pulling in the entire dependency graph of tooling, even though 99% of it was irrelevant to what you actually wanted.

This repository exists to fix that. It pulls a set of small, self-contained utilities out of tooling into their own home, so that depending on a utility costs you only what that utility actually needs — not the dependency footprint of an unrelated, much larger codebase.

Scope

This repo is intentionally narrow. To stay useful, it needs to stay narrow — the whole point of splitting it out was to avoid recreating the same problem in a new location.

In scope:

  • Small, self-contained, general-purpose utilities with minimal external dependencies.
  • Code with no coupling to tooling.
  • Utilities that are (or are likely to be) reused across multiple, otherwise-unrelated projects.

Out of scope:

  • Anything tied to a specific product, service, or domain — that belongs in the repo that owns that domain.
  • Utilities that only make sense in the context of tooling.
  • Anything that would pull in a large or heavyweight dependency for the benefit of a single utility. If a proposed addition needs a big dependency, prefer keeping it in whichever repo already depends on that library, or give it its own repo instead of adding it here.
  • Grab-bag/"misc" code with no clear justification for living here. When in doubt, ask whether this utility would want to be depended on by something that doesn't want any of the other dependencies this repo would then bring in. If the answer isn't clearly yes, it doesn't belong here.

Adding something new

Before adding a new utility here, check:

  1. Is it genuinely general-purpose, not tied to one product's domain logic?
  2. Does it avoid pulling in dependencies that most other things in this repo don't already need?
  3. Would splitting it into its own small repo/target actually serve consumers better than adding it here?

If any of these gives you pause, raise it for discussion before merging.

Repository Cache

The repo_cache component maintains a local, disposable Git checkout of every repository in a GitHub organization, for tools that need to operate across an entire organization without re-cloning on every run. Its entry point is score-repo-cache.

Repository Policy Sync

The repo_policy_sync component evaluates and optionally remediates repository policies across a GitHub organization. Its supported entry point is score-repo-policy-sync; start with plan mode and use apply mode only after reviewing the generated changes.

About

Home of score-tools, the new pypi based tools approach

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages