Upstream/Downstream cooperation in Ruby
Description of the project: The Debian Ruby team has a lot of experience in package Ruby projects for Debian. During this work, they identified several issues in upstream codebases that makes it more difficult to build a Debian package out of Ruby gems. This project has two goals: 1) raise awareness of those issues among upstream maintainers in the Ruby community, so that the lifes of Debian maintainers, and of distribution maintainers in general, is easier; and 2) provide tools to automatically detect those issues, and fix them if possible.
Confirmed Mentor: Antonio Terceiro
How to contact the mentor: terceiro@debian.org
Confirmed co-mentors: David Rodriguez
Deliverables of the project:
- A guide for rubygems.org on good practices for upstream maintainers
A tool that can detect as many problems as possible, and if possible, fix them automatically
- Packaged and released in rubygems.org
- Packaged and releases in the Debian archive
- good documentation, specially instructions on how to add it to upstream CI pipelines (travis, github, gitlab etc)
- the tool is initially targetted at Ruby, but should be designed as to be extensible for other languages. in special, try to make it easy for people who don't do Ruby to add support for their favorite language.
Desirable skills:
- Debian Ruby packaging
- Ruby programming
- Good online communication skills (IRC, email)
What the intern will learn: the intern will learn good practices for packaging Ruby projects upstream (i.e. for rubygems) that make the life of downstream packagers (Debian, but also all other GNU/Linux distributions) easier, and how to avoid the practices that cause problem. They will also learn how to package and release a tool by themselves.
Application tasks:
- to be defined
Related projects:
- lintian, rubocop, and other static analyzers.
Debian Ruby team info page for upstream maintainers (maybe outdated, but can serve as a basis for the work)
Mentors affiliation with Debian: AT is a DD, DR is an upstream maintainer for the Ruby toolchain