Background
Wikimedia developers occasionally create small scripts or tools which serve a specialized purpose and often remain in ~/bin before eventually getting shared via ad-hoc methods (code dumped on wiki, paste[1], gist, etc.)
Proposal:
In order to encourage Developer Productivity through the sharing of time-saving tools and scripts, we should create a LocalDevTools[2] repository that will be a home to various small tools and utilities that are specifically useful Wikimedia developers and site reliability engineers, and serve as a catch-all for tools that do not have another more appropriate home.
- A single git repository of scripts and tools
- Contributor-friendly, Inclusive contribution conditions
- Accept just about anything in order to encourage sharing small tools that don't have a more appropriate home.
- I expect that this will be mostly bash and python, ideally written to work across recent versions of Debian and Mac OS X but I don't think ruby, php or your favorite scripting language should be necessarily excluded.
- Accept just about anything in order to encourage sharing small tools that don't have a more appropriate home.
- Developer-friendly setup and dependency management:
- Developers should be able to just clone the repository and run any script within it without too much fuss.
- We could have a one time setup process that requires making appropriate symlinks or configuring a few environment variables, just as long as it's easy and only needs to be done once.
- Include most small dependencies in-repo as much as possible when they aren't available from common os repositories.
Footnotes
- The example that motivated me to finally create this task was P5608 but onboarding two new members of the RelEng team has recently brought the issue to light a few times - there are a ton of useful tools, snippets, and other small utilities that are shared among wikimedia developers through very inefficient means and newcomers are severely disadvantaged by reinventing a lot of wheels. This leads to a lot of lost productivity, especially during the first few months of work.
- The name LocalDevTools is just my proposal, feel free to bike-shed about it in the comments 😄