From Fedora Project Wiki

Revision as of 19:41, 20 March 2014 by Alexandermezin (talk | contribs) (Created page with "=== An overview of your proposal === A daemon that listens to requests from system shell and responds with command line prompt dependant on context and user configuration. Mai...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

An overview of your proposal

A daemon that listens to requests from system shell and responds with command line prompt dependant on context and user configuration. Main target is showing current git repository status.

The need you believe it fulfills

It is possible to show repository status in command prompt without daemon, and there are solutions for almost every shell already. But if you try to use one of these solutions when working, for example, with kernel repository, you'll notice terrible delays. When entering kernel repo for first time, zsh could stop responding for more than minute.

Any relevant experience you have

  • I have some experience of writing simple python scripts. Also I've contributed a bugfix to Guake, which is a relatively large project written in Python.
  • I got some experience of writing shell scripts when I worked on Laptop Mode Tools.
  • I have a lot of experience with Git. Almost every project in which I participated was using Git as version control system.

How do you intend to implement your proposal

I'll implement the daemon in Python, as usually every useful library have python bindings, so there won't be any problems with adding support for new version control system. Also, Python is present on almost every machine working under Linux.

  • Support of different VCSes will be implemented through plugins.
  • Maybe I'll also add support for Subversion and Mercurial.
  • I'll implement some form of caching and/or preloading. Trial and error method here.

Final deliverable of the proposal at the end of the period

  • Daemon written in Python.
  • Possibly - client written in python too (if there will be problems in communicating with the daemon directly from shell).
  • I can do packaging if it is needed.

A rough timeline for your progress

  • 21 April: Start working on the project.
  • 19 May: Daemon responding with some simple prompt, working with bash.
  • 23 June: Daemon working with git repos, but without any caching/preloading.
  • 11 August: Optimized daemon

Any other details you feel we should consider

I study until end of May. Also, I have exams in June, but they won't take much time.

Have you communicated with a potential mentor? If so, who?

Potential mentor - Mikolaj Izdebski