Photo by Agence Olloweb / Unsplash
14 posts tagged with "concepts"
View All TagsSharing Pants plugins
Photo by Elaine Casap / Unsplash
If you need to make some functionality available to all engineers in your company, you can author and release a Pants plugin (either internally or via a public PyPI index) independently of the rest of the codebase...
Environments: simpler multi-platform workflows
Photo by Milada Vigerova / Unsplash
Now you can cross-test or cross-build your code on multiple different platforms concurrently, using Environments. Pants uses its precise knowledge of your build's deps to run exactly the relevant processes inside reusable Docker containers (or evenly remotely on a cluster of workers)…
Challenges in choosing a Python packaging format
Photo by Kira auf der Heide / Unsplash
Alexey reviews the Python packaging landscape. You'll learn more about the options you have, their pros and cons, and how to find the best approach to distribute your Python applications.
How we get quick feedback on new features via "experimental" backends
Image by NTNU, Faculty of Natural Sciences (license)
Pants balances release velocity and end-user stability via judicious use of deprecation cycles. Experimental backends are a way to get quick feedback on new functionality, before "graduating" it to the formal deprecation policy. Experimental features are still well-supported, and not to be feared!
Dependency inference: Pants's special sauce
Unlike earlier build systems, Pants v2 automatically infers your code's internal and external dependencies. And it does this at the file level, so that you get optimal invalidation, caching, and concurrency performance without having to manually create and maintain mountains of BUILD file metadata.
Visualize your dependencies with Graph My Repo
GraphMyRepo.com in action, graphing the dependencies and code structure of pantsbuild/pants. Source: Toolchain.com
To make it easier to understand the value and power of dependency inference, Toolchain (the lead sponsor of Pants) has built a new site: Graph My Repo. As its name suggests, Graph My Repo shows you an interactive graph of a public GitHub repo of your choice…
Monorepository linting via Pants's project introspection
Pantsbuild provides a common interface to run all code quality tools in parallel. This post explores how Pants augments excellent linters such as bandit, flake8, shellcheck, etc. by offering its own linting mechanisms, too, including regex matches, dependency analysis, and metadata checks.
Better CI/CD caching with Pants
Terminal output of a Pants run that retrieved test results from a remote cache instead of having to run the tests.
Multiple lockfiles in Python repos
Photo by Georgia de Lotz / Unsplash
Rather than forcing global or per-project lockfiles, Pants uses a hybrid approach...This allows a repo to operate with the minimum number of lockfiles required to support their conflicting library versions, without necessarily going to the costly extreme of per-project lockfiles.
Talk Notes: PyCon US 2022 - Hermetic Environments in Pantsbuild
Photo by Charles Salutan / Unsplash
Effective monorepos with Pants
Image by Markus Spiske / CC0 1.0
Working effectively in a monorepo requires appropriate tooling. While Pants can be a really useful system in repos of all sizes and architectures, it has some features that make it particularly appealing in a monorepo setting…
The monorepo approach to code management
pants-vs-bazel
Photo by Jeremy Bezanger / Unsplash
Many considerations go into evaluating and adopting a new build system: performance, scalability language and framework support, ease of adoption and use, extensibility, compatibility with existing practices, and more.…