Current status

See the progress at https://github.com/bkabrda/devassistant. Currently, we're finishing C/Java/Python assistants, we decided to include other languages later on (we'll probably do a non-disruptive update before beta freeze).

Detailed Description

This feature aims on setting up development environment for various languages. Target groups include beginning developers but also experienced developers not used to GNU/Linux as well as experienced Linux developers not used to Fedora.

This feature will cover a basic set of tasks which will prepare Fedora for later additions. The first part of the feature is a review of comps groups which would lead to better granularity of package sets necessary for development in different languages. Another part is about providing tool or tools for simple start of a project in terms of creating project template based on different languages and/or frameworks which the project should use.

There are other optional activities like vim/eclipse/emacs/... plugins, integration of rpm build tools, .... These optional parts are not goal for F19 but they will be integrated in time.

Assistants can be written either as YAML configuration files or as python module.

Ruby on Rails - create a default Ruby on Rails application and install all necessary dependencies; running "rails s" in the project directory starts the web server and allows to try the application in web browser

All Ruby assistants: create a git repository in the directory of the project; can register project repo on github

Python (bkabrda)

Django - create a Django project with sane settings and install dependencies; running "manage.py runserver" in the project directory works straight away with no needed changes

Flask - create a Flask project with sane settings and install dependencies; running "manage.py runserver" in the project directory works straight away with no needed changes

All Java assistants: create a git repository in the directory of the project; build the project; create tarball; can setup eclipse project which user can import to his workspace; can register project repository on github

Javascript

Other activities:

vim (phracek)

clarify whether is possible to include into vimrc file row which will enable devassistant

eclipse (phracek)

integrate project into eclipse environment

test basic eclipse functionality like compilation, debugging, etc.

rpm build tools

each assistant should have one spec file for building RPM package

create sample subroutine in YAML configuration file which can be used by each language

git integration

create local repository

call git commands from configuration script (YAML)

registration project on GitHub repository

downloading project from GitHub repository

Benefit to Fedora

Make the development on Fedora easier for beginners.

Scope

Adding new (leaf) packages, which will contain setup scripts.

Comps: a review of existing development-related package groups will take place

cleanup of some groups will be necessary

new groups might be created to meet the demand for per-language tool and library sets

How To Test

Try to install package containing setup for your favourite language.

User Experience

Entry barrier for development on Linux should be lower. Inexperienced users will be able to setup their development faster.

Dependencies

None at the moment, none expected. We intend to build on top of current state of Fedora.

Contingency Plan

Do not ship the result if not ready. Since the feature is not required for anything else in the system, there will be no complications if not shipped. Changes in comps groups will be consulted before pushed and if necessary, changes can be simply reverted.

Documentation

Blog posts will be released to make some publicity. Man pages will be primary source of documentation for the functionality. The documentation will be developed along with the functionality

GitHub Integration

one part of that feature was to have a possibility export projects to the GitHub repository.

This part is mostly done but has one restriction.

User has to have already created account on the GitHub server. Without that it is not possible to upload projects on the GitHub server.

Release Notes

Developers Assistant feature will provide packages containing skeletons, settings, which will provide help to developers. Also new or improved yum groups are part of this feature.