From Fedora Project Wiki

Revision as of 14:12, 25 March 2016 by Ncoop (talk | contribs)

Nathan Cooper

https://fedoraproject.org/wiki/User:ncoop

Contact Information

Questions to answer

Why do you want to work with the Fedora Project?

I was introduced to Fedora by a teacher, and my Linux experience has come primarily from reading Fedora resources and progressively experimenting with Fedora. Therefore, I feel a bond to the Fedora community.

Have you participated in GSoC in the past? If so, what year(s) and which organization(s)?

I have kept track of GSoC for several years now, my first awareness being ScummVM. I'm more interested in contributing code for practical projects, and this is the first time I feel ready to commit as a participant.

Do you plan to continue contributing to the Fedora Project after GSoC? If yes, what sub-project(s) are you interested with?

I am initially interested in contributing to the projects I take personal interest in, such as Neovim, w3m, and Raspberry Pi. With some guidance, I can help update and package rpms and write documentation.

Why should we choose you over other applicants?

  • I have worked with a variety of programming languages, including the ones relevant to the project.
  • I am experienced with meeting professional expectations, and I work better under structured guidance and with established best-practices. (My favorite Vim plugin is Syntastic.)
  • I anticipate being able to contribute a large amount of time and devote full attention over the course of the program.
  • I am a native English speaker and a good writer.
  • My personal motivation to work with and learn about Cockpit comes from my need to maintain several Linux hosts as part of my work. It would make my job easier if I can convince management to use this tool, so that less-proficient users can securely access and work with the hosts, and updates can be installed more frequently and reliably.
  • Since I am already interested in contributing to Fedora, I will be well poised to give back to Fedora Project after working with a Fedora/RedHat mentor.

Have you contributed to any other open source organizations or projects? If so, do you have artifacts you can show so we can see your skill set(s)?

I have contributed to mame-rr and built macrolua. These projects were conceived to help the TASVideos and fighting game communities to record replayable sessions and to script replayable input sequences, respectively.

Do you have any other open source experience (even if not coding-related)?

Smaller scale coding projects are viewable on my Github page. Some of my older blog posts discussing my findings are also a form of open-sourcing.

Proposal Description

Overview and The Need

https://fedoraproject.org/wiki/Summer_coding_ideas_for_2016#OStree_Rebases_in_Cockpit

Cockpit provides an interface for updating the installed software on Atomic systems using rpm-ostree. Admins should be able to 'rebase' to a different operating system channel or timeline via Cockpit.

Any relevant experience you have

  • I can code in the languages in which the project is written: shell, Javascript with jQuery, Python, and C.
  • I have compiled some Fedora packages from source as well as Cockpit itself, although the project is not expected to require much C from me.
  • I use git properly: making atomic commits, writing neat commit messages, per-issue branching, and (when possible) resolving merge conflicts.
  • I have ongoing experience as a web developer.

How do you intend to implement your proposal

Prepare a page, accessible within the Cockpit web app, from the sidebar. The page displays any OSTrees available for the host in question. For each OSTree, nodes can be clicked and checked out.

A rough timeline for your progress

25 March - 21 April: Interim Period

  • Blog regularly about the Fedora-related things I am already doing.
  • Remain on top of Cockpit development, via IRC, the mailing list, and the Trello board.
  • Practice my Angular.

22 April - 22 May: Community Bonding Period

  • Decide who my mentor is and buddy up.
  • Make friends with other Fedora GSoC students.
  • Learn how integration tests are done for Cockpit.
  • Get on top of OStree. Make an OSTree image, with branches, using rpm-OSTree to version it. Know the interface.
  • Learn how to use the D-Bus API as relevant.
  • Learn how to use the libpam API as relevant.
  • Contribute to starter project issues, now with guidance.

23 May - 14 August: Work Period

  • Decide a design for the OSTree page: where it's accessed from, and what should go on it, and how the trees are presented.
  • Code the page.
  • Decide what gets AJAXed back when a node is clicked.
  • Code the request, presumably with Angular.
  • Convert the request to a D-Bus call.
  • Make sure the page knows how to handle asynchronicity.
  • Get the success or failure result and package it into an appropriate response.

15 August: Suggested 'pencils down' date

  • Take a week to scrub code, write tests, improve documentation, etc.

21 to 23 August: Final week

  • Tidy code, write tests, improve documentation and submit their code sample. Submit their final mentor evaluation.

Final deliverable

A integration-tested commit to the master cockpit branch enabling the OStree browser page with the desired functionality.

Any other details you feel we should consider

I hope you will find me to be an attentive and productive student.