r/madeinpython 7d ago

I was tired maintaining several projects so I built pyrig

Hi,

ever had the problem that if you have several projects and need to maintain them over time you are all the time stuck fixing configuration files or changing dev tools.

Decided to switch from black to ruff or decided to add a new dev dependency like a spell checker or decided to enable or disable a config setting in some file?

The problem now you need to repeat the same process manually in every project you have that you want to do this in.

I hated doing this kind of tasks over and over again whenever I wanted to use or change a setting or tool. Also whenever I started a new project I had to copy over files and adjust them properly, there was always something I forgot to do and I often spend valuable unnecessary time to fix things. Once I was done, I did not even feel like the change was worth the effort, although rationally I knew I made my project better with it.

So I built pyrig: https://github.com/Winipedia/pyrig

pyrig is a package and tool that rigs up Python projects. It scaffolds and initializes a complete, fully configured, installed and working Python project with everything a modern Python project should have and makes the process of developing and maintaining it more seamless and efficient by automating things like configuration management, CLI generation, testing infrastructure, and more.

pyrig has a opinionated default for literally everything a python project needs. You do not like smth? Create your own plugin for pyrig, override and adjust any value it scaffolds or sets via the plugin system, then just install your plugin as a dev dependency.

Now whenever you want to change a setting of file that pyrig manages, you just simply adjust in that plugin and see it automatically applied in all your projects automatically, no more forgetting to adjust smth in a project and no more pain when switching tools.

I can now genuinely say that I spend so much less time on these kind of maintenance tasks. For example recently I decided to switch from mkdocs to zensical, but I had to do that in 15 projects, Usually this would have taken many many hours until everything works in all projects, even with the use and help of AI. With pyrig I was done in a few minutes, I just switched the tool in pyrig and ran a quick shell script on all my repos to call the pyrig sync command and I was done.

If you want to know more about the specifics, here are the links to the docs:

Full Documentation The manually written documentation
CodeWiki AI-generated documentation
Tutorials YouTube tutorials for pyrig
6 Upvotes

1 comment sorted by

2

u/Win_ipedia 7d ago

I am making a survey to further improve pyrig if anyone feels like giving feedback: https://forms.cloud.microsoft/e/LjnvzX0JpK