From Fedora Project Wiki
No edit summary
(Cleanup)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
=== Nathan Cooper ===
** https://fedoraproject.org/wiki/User:ncoop


=== Contact Information ===
* '''Email Address''': ncoop@fedoraproject.org
* '''Blog URL''': https://ncoop.github.io/ (recently set up)
* '''Freenode IRC Nick''': ncoop, n_coop
* '''Code Forges (GitHub, GitLab, BitBucket, etc.)''':
** https://github.com/ncoop/ (public repos)
** https://bitbucket.org/ncoop/ (private repos)
* '''Social Media Accounts''':
** https://www.linkedin.com/in/ncoop
=== 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 [http://scummvm.org/ 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 [http://neovim.io/ 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 relevant ones.
* I am already 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 over the course of the program. The current phase of my education is coming to a conclusion, and I will be able to devote full attention to the project.
* 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.
* Finally, I should point out that over the course of working with a Fedora/RedHat mentor, I will be far more motivated and better able to give back to Fedora Project long after the summer is over.
==== 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 [https://code.google.com/archive/p/mame-rr/ mame-rr] and built [https://code.google.com/archive/p/macrolua/wikis/MacroLuaDocumentation.wiki macrolua]. These projects were conceived to help the [http://tasvideos.org/ 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 [http://combovid.com/?author=7 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 [https://github.com/cockpit-project/cockpit/labels/starter 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.
[[Category:Summer coding 2016]]

Latest revision as of 20:00, 22 April 2016