tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Google Summer of Code 2013 Application: Version control config files

Hi Kaylee!

Thanks for your proposal.

I have a few questions.

On Fri, May 03, 2013 at 07:01:06AM +0000, Kaylee Breshon wrote:
> About your project
> What is the goal of the project?
> The goal of this project is to set up a version control system to monitor 
> changes and updates in config files installed by pkgsrc.
> What will be the deliverables of the project?
> The deliverables will be a working program that completes the above goal, and 
> additionally includes automated and manual check-ins, and allows the user to 
> choose a version control system and location. All code and documentation will 
> be provided.
> Give an overview of how you intend to reach the project's goal in the form of 
> milestones and a schedule.
> Now – June 17: Gain more experience with NetBSD, pkgsrc and anything else 
> relevant to the project.  Contact mentor to begin discussing project
> June 13: Finish current school year
> June 13 – 17: Finalize project specification, design, and plan
> June 17: Begin coding.
> June 17 – September 16:
> Create basic repository using CVS (1 week)
> Implement UI for merging conflicting changes and doing manual check-ins (4 
> weeks)

I thought for the manual stuff, we'd use the command line tools for
now, and that the project would be more about tracking the automated
changes that NetBSD is doing.

Perhaps a first step would be to track the changes done by the
pkg_install tools on a vendor branch in CVS, and commit any changes
files to a different branch before every pkg_add or pkg_delete.

I.e. Whenever pkg_add or pkg_delete notices it will work on a file in
${PREFIX}/etc/, do the following:

. commit unchanged files to SYSTEM branch
. checkout PKGSRC branch of the affected files
(do the usual changes pkg_add/pkg_delete do)
. switch back to SYSTEM branch
. merge PKGSRC branch

If there are conflicts during merging, inform the user to resolve them.

That's just a basic idea how it could be done. Digging in the details
will be part of the project. Of course, later steps would then be
supporting other version control systems, configuring the locations
etc. as you suggest.

I'm not so much interested in a GUI for this.

Does that make sense?

If yes, please adapt your proposal.


> Make schedule of automated check-ins (2 weeks)
> Maintain compatibility with other VCS (3 weeks)
> Enhance UI to allow user to change VCS and location of repository (3 weeks)
> Document all progress
> Give regular status updates to mentor and community
> Test and debug code as it is written
> July 29 – August 2: Midterm evaluations
> September 16-23: Do final coding, testing and documentation
> September 23: End project
> Is similar software already available elsewhere, e.g. for Linux or any other 
> BSD?
> Not that I am currently aware of.
> Is the project a port of software, or a rewrite?
> This project is not a port or rewrite of already created software.
> About your project and NetBSD
> If your working area is the core NetBSD operating system: have you installed 
> NetBSD and made first experiences with hands-on configuration? Have you 
> rebuilt the kernel and the userland, either in full or in parts? If you plan 
> to work on pkgsrc, have you installed packages from source and binary? Have 
> you created a package on your own?
> I have installed NetBSD, but have not done extensive configuration yet.  The 
> main OS I use is Ubuntu Linux.
> Have you found the relevant places that your project is based on in the 
> source code, and read through it?
> I plan on reading through all relevant source code and documentation related 
> to pkgsrc and version control systems before I begin coding.  If I am 
> accepted, I can begin this immediately, before the current school year is 
> over.
> How will your project integrate into NetBSD?
> This is a pkgsrc project.
> What interfaces in NetBSD will your project use? (Go into details here! What 
> module/file names, functions, data structures etc. are of relevance for your 
> project?)
> Obviously I will be making heavy use of VCS and all the functions that go 
> along with those, such as check out, commit, update, diff, patch, etc.   The 
> project will be working with config files in etc/.  The project also involves 
> pkgsrc, though I am not familiar enough with this to give any specifics.   
> However, I plan to learn more before summer (by reading the pkgsrc guide, and 
> creating and installing packages, for example) and I will be able to give 
> more details soon.
> To what degree are you familiar with those interfaces? (not/some/very, 
> details?)
> I am familiar VCS, specifically CVS though I will become familiar with others 
> for this project.
> Is knowledge on other topics required for this project, e.g. on hardware, 
> software other than NetBSD, APIs, protocols, etc.? If so, give details and 
> references.
> This project requires a knowledge of pkgsrc, config files and version control 
> systems
> To what degree are you familiar with those? (not/some/very, details?)
> I am not entirely familiar with pkgsrc, though I will review this before I 
> begin work on this project.  I am fairly knowledgeable of config files, 
> though I not specifically those installed by pkgsrc.  I have experience using 
> version control systems, specifically CVS.
> If the project involves hardware (e.g. writing drivers, doing a port to new 
> hardware, ...): do you own the hardware or have access to?
> The project does not require any specific hardware.  I have access to a 
> computer running NetBSD.
> About you
> Can you list some prior projects that you have worked on so far? Include 
> details like programming language, duration, number of people involved, 
> project goal, if you used CVS, SVN or similar, and whatever else we may find 
> thrilling! If you have a CV/resume online, feel free to include a link.
> My current project is writing a shell for Linux in C.  It is an individual 
> project for a class and will be completed over the course of 11 weeks.  I use 
> CVS and Makefiles for this project.  I would be happy to provide sample code 
> from this project if you would like to view it.  All previous projects have 
> also been class projects done either individually or in pairs.  I have worked 
> with data structures such a tree, heaps, stacks and queues, and graphs.  Most 
> of the projects I have done have had a duration of approximately two weeks to 
> one month.  I am most comfortable in C and Ada, but I have also used Java, 
> C#, VB and Scheme among others, and am able to quickly learn new languages.
> Do you have any prior experience with programming NetBSD?
> I do not have prior experience programming NetBSD, though I have done 
> development in Linux.
> Have you previously discussed your project within NetBSD, either on a mailing 
> list or with some specific developers?
> This is my first contact regarding this project.
> How do we contact you for question, comments, suggestions, etc.?
> My email is:  I have also subscribed to 
> several mailing lists.
> Is there anything else you'd like us to know? Did we forget any important 
> details or questions?
> My name is Kaylee Breshon and I am currently a sophomore attending Western 
> Washington University, pursuing a degree in Computer Science.  Though I do 
> not have very much real world experience, the knowledge I have gained in 
> classes will allow me to complete this project.  Classes I have completed 
> include Data Structures, Computer Systems, and Analysis of Algorithms, and 
> this quarter I will complete a second Analysis of Algorithms class and Unix 
> Software Development, taught by Phil Nelson who has worked with NetBSD and 
> been a Google Summer of Code Mentor in the past.  I have no other commitments 
> during the summer, so I will be able to work on this project full time.  I am 
> extremely hardworking and dedicated, and almost always at the top of my 
> classes with a 3.97 GPA.  I am completely confident that I will be able to 
> complete this project within the allotted time frame.  Additionally, of the 
> suggested GSoC projects this was the one I felt most comfortable with, but I 
> would be willing and able to complete other projects if you think my time 
> would be better spent elsewhere.

Home | Main Index | Thread Index | Old Index