Skip to content

Student projects

Ravi Shankar edited this page Nov 29, 2016 · 44 revisions

These projects are high-impact, and are designed to cover 1.5-2.5 months of work. They are often comprised of many smaller parts, so simply completing a subset of prioritized work would also be totally acceptable. This is a live document, so check back often.

  • Automated service like Greenkeeper that files PRs that upgrade Cargo dependencies

    • post links to the commits include in the upgrade
    • probably needs to use JSON data from crates.io
    • also consider automatically updating Servo's rustc and cargo (./rust-nightly-date and ./cargo-nightly-date)
  • Scripts that aid in creating This Week in Servo

    • Needs to merge information for all of the relevant repos - see servo-org-stats
    • Want to identify new contributors each week
    • Pull all landed PRs from all repositories for "interestingness"
    • Identify other awesome stuff we could be reporting each week - new repos, percentage of r+s by community vs. staff, etc.
  • Implement ChatOps: Hook up our Salt configuration to IRC

    Salt is a tool we use for configuration management, remote execution, and more. One of its great strengths is its easy extensibility via custom modules, but it currently lacks IRC modules (although it has modules for various other chat services).

    Subtasks:

    • servo/saltfs#437: Write a custom Salt returner that will automatically log our highstate runs to disk semi-permanently (with automatic log rotation/retention), and ideally with information about:
      • git commit of saltfs used for the highstate
      • any changes made in the override dir/was the dir dirty?
    • Update our nginx configuration in the saltfs repo to expose highstate logs (NOTE: these need to be checked carefully to ensure no sensitive secrets/tokens are leaked! Will likely require updating some Salt states to prevent display file diffs, or configuring this in the custom returner)
    • Write a new Salt returner that will watch for highstates to be completed (using the Salt event bus) and fire off notification messages to the Servo irc channel (#servo on irc.mozilla.org) with a link to the highstate results (and ideally a short summary).
    • Write some kind of a bot that will allow interacting with Salt from IRC. This is just an idea and may not be feasible/desirable due to security issues. Questions to investigate:
      • Can we re-use Hubot or another bot framework? Should this be folded into crowbot? (Note that crowbot already has an "infrastructure report".)
      • How can we authenticate IRC users to only allows to run commands?
      • How should this be connected to Salt?
      • Can we support investigative commands (Is cowsay installed on the builders? If so, which version?)? Can w expose these to all users, safely? (What if our OpenSSL is old and someone could discover this?)
      • What kind of UI is optimal for chatops?
    • Update the aforementioned returner/nginx configuration to support streaming output, and fire IRC notifications at the start of a highstate run as well as the end? (Not sure if this is possible)
Clone this wiki locally