Ubuntu-Developer

Revision 9 as of 2008-11-10 07:38:15

Clear message

Project Description

At present it is easy to develop open source applications, but it is not as easy as it could be. Ubuntu needs an ubuntu-developer meta package/cd/dvd packaged distro that contains source packages for the applications installed in a vanilla ubuntu install, as well as appropriate development IDEs and relevant tools. Relevant docs easily accessible from the menu or local apache vhost, or help system or something. Perhaps some optimisations to make reporting more specific bugs (and patches) back to the relevant packages (i.e. packages compiled with gdb tracing). Ideally you might want to be able to install a "development" user which has things like launchpad as the homepage in firefox. This distribution could be tied nicely to the developer/ubuntu certification programme as it expands?

Project Goals

The project has the following goals: - Make it easy for newbies - Assist experience users - Support Ubuntu projects

Easy for Newbies

We want newbies to join Ubuntu, but they find it very difficult and time-consuming to get started, discouraging many. This project will aim to make it easy for them to setup everything they need so they can get to what they really want to... that is writing software.

Assist Experienced Users

Are you aware of all the plug-ins available for the IDE you are using? Have you ever found you IDE complaining about a missing plug-in and was simply not in the mode to find and install the package to see what it's about? Are you up to date with with the latest or greatest tools available. This project should help experienced users keep up to date and help them do the job even better.

Support Ubuntu Project

The more programmers join Ubuntu the better the quality of the offering. This project will aim to remove the initial effort of joining a project, i.e. figuring out which IDE, compiler, tools, source packages, manuals, etc. to use, and then figuring out which packages to install. If each Ubuntu project can have their own predefined setup, new programmers will find it easier to join and contribute.

== The method ===

The project goal will be achieved by : - Simplifying the setup - Promoting choice - Enable sharing

Simplify Setup

Unless you know exactly what you need setting up a development environment requires research and package hunting. Even when you do know what you need you often find that you've missed something once you start compiling. This project should remove that hassle by automatically setting up everything you need, IDE, compilers, tools, etc. once you've specified what you want to do.

Promote Choice

Never prescribe, but enable instead. All IDE's, compilers, tools should be offered allowing the user to install a very specific or even several environments if he/she wants to. The goal it to make it easy.

We are often locked up with our first choice because we don't want to go through the hassle of setting up another environment due to all the research and package hunting required. By making it easy we skip the first steps and jump straight to trying out different options and making a choice.

Enable Sharing

Ubuntu is about working together as a community. This project will enable you to share your experience in setting a development environment by creating a "Quick Setup" for this project. This can be shared with others allowing them to have everything they need to join the fun. This will be especially useful to the multitude of Ubuntu projects wanting others to join their projects.

Development

Although this project is for developers we would like to keep development to a minimum. All the tools are already there it just needs to be put together

The Installer

The success of this project will depend on the installer application. It should be designed around the goals of this project... to make it easy. If possible an existing installer should be used or modified for the task. We would much rather focus on package selection for the environments that on the installer.

The installer should give the user a few multiple choice question which is goal oriented, e.g.

Which type of programs would you like to write (Command line, GUI, Web, kernel, etc) What is your language preference (None, C++, Java, Python, etc)

The user will also be given the option then to drill down and make specific selection if he/she wants to, e.g. the preferred IDE. Or the user can opt to take several!

The Package Selector

The package selector is a tool used by the team to create a reference file for the installer which will tell it which packages to install based on the selection of the user. To promote contributions we should have a simple interface (or even a web page) that will allow contributors to quickly and easily enter their ideas.

Packages

Since we do not have a package selector yet, here are some ideas. Feel free to add...

Development categories to cater for

Command line programs

Kernel

GUI (Gnome, KDE, etc)

Web

Database

Good IDE's to include

Eclipse

KDevelop

Ajunta

MonoDevelop

Quanta Plus

Languages & Compilers

C++ : gcc, g++

Java :

PHP :

Server components

Database : MySQL, PostgreSQL, etc

Web : Apache, thttpd, etc

Version control : cvs, cvsd, etc

Necessary Packages

build-essential

debhelper

mcs

auto-tools (automake, autoconf, libtool)

Use full tools

Cachegrind (ValGrind) Cervisia Web browsers - usefull to have several for testing purpuses

Documentation

This is important enough to be separate category. This is really about helping programmers and should not be limited to just downloaded documents. How about:

- Man pages

- HTML docs

- Links to forums/newsgroups

- Links to useful webpages

Some documents mentioned were: dive into python Gnome Developer Docs UbuntuPackagingGuide

Interacting with the Ubuntu world

launchpad as homepage for and ubuntu user (maybe even store launchpad info in keyring or something, so that launchpad is an extension of the development desktop)

Graphics

We need our own string logo. Feel free to release your creativity. Here's some suggestions:

If nothing else it makes room for people in hard hats and flannel t-shirts, with tool belts to be arranged in an ubuntu circle. And room for another colour in the human theme.

Comments

wistle: The Wright brothers were also told their idea won't "fly". I'm glad they never listened.

Motin: I believe that a whole seperate distro for this would be an immense overkill. What's better could be a page in the help system. "How to transform your newly installed ubuntu system into an..." with sections like "Developer's machine", "Media Center", "Music Recording Studio" etc with ready to go cut-n-paste apt-get scripts for the neccessary packages and some links to further reading. Maybe you should write a Wiki page (this one?) and then propose the documentation team to include it in the default help?a

JonathanJesse: Please include the Ubuntu Packaging Guide as one of the documents here. The Doc Team has done a great job on this guide and it needs to be included here

Motin: One year later my comment withstand. Every developer has their own set of necessary tools, apps etc for different languages. Already it is dead easy to get up running with a developer variant of Ubuntu by selecting some packages in Synaptic and googling the rest. There is no need for a separate distro as the kernel, base apps, licensing ideology etc are the same.