|
|
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 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 [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]]
| |