GSOC 2012/Student Application Dzack/JBossFedoraSpin

From FedoraProject

Jump to: navigation, search

Contents

Contact Information

Why do you want to work with the Fedora Project?

I've had a long standing interest in open source software, but never felt as though was skilled enough to make any significant contributions. However, after reading the documentation and getting up to speed, I've discovered that any contributions are greatly appreciated and that the community is respectful and inviting. To me, this aspect is really what makes Fedora's community stand out. Working with Fedora would also present a rare learning opportunity for me - I hope to spend much more time working on open source software projects in the future for this very reason. Ideally, I would like to find a career in open source development, and so this would be a perfect chance for me to begin understanding the structure and organization of such projects.


Do you have any past involvement with the Fedora project or with any another open source project as a contributor?

This would mark my first contribution to a major open source project. My only other involvement has been in trying to help revive another small project over at http://quickplay.sourceforge.net/. So far, I've been able to repair parts of the main website (which was previously defunct) and am now making an effort to help centralize the project's version control system so people will be able to once again contribute to its codebase.

Did you participate with the past GSoC programs, if so which years, which organizations?

No - I only recently discovered the program.

Will you continue contributing/ supporting the Fedora project after the GSoC 2012 program, if yes, which team(s)/area(s), you are interested with?

Absolutely yes! Ideally, I would like to become a package maintainer and help ensure that we get this platform working in as many environments as possible. I would also like to continue to maintain this spin as new Fedora releases are rolled out, updating it and adding features accordingly.

Why should we choose you over the other applicants?

  • I am familiar with the Linux environment and comfortable using the command line.
  • I've successfully built small test RPM packages.
  • I have taken the time to pore over the project's documentation and feel that I'm well acquainted with the resources I will need to finish the project.
  • I've set up an environment in which I can easily build and deploy packages. In addition to this, I will also be able to simulate and quickly test many of the conditions for which this spin would be used such as installing to remote server, unattended installations, using an intranet Repo, and quickly testing Live CDs.
  • I have experience writing kickstart files.
  • I am somewhat familiar with Java and may be able to help contribute patches.
  • This project also aligns with my personal interests and coincides with concepts I would like to learn outside of my classes and schoolwork.
  • Lastly, I am willing to learn whatever knowledge I am lacking

Create a Fedora JBoss Spin

Proposal

My proposal is to aid in the development of 2 distinct Spins of Fedora centered around application development with JBoss software.

This project aims to create a bloat-free, yet fully featured environment by integrating various open source tools into one cohesive distribution. This will include all of the libraries, packages, and dependencies necessary to begin development with as little initial setup as possible.

The first version will be focused on desktop environments, with an emphasis on the ability to quickly develop, test, and deploy applications. This would include everything necessary to begin development out of the box, including an IDE, plugins and dependencies, version control, etc. A Live CD image will also be made so that the it is easily portable and testable on a variety of hardware. The second version will be focused on creating a server environment upon which Java applications can be quickly and easily deployed. This distribution could then be easily expanded and tailored to suit any number of platforms in the future.

The need you believe it fulfills

This spin would provide a platform for developers to get up and running as quickly as possible without having to spend time finding and installing specific IDEs, plugins, or stacks of deployment software. It would also make the entire application development process much more efficient, giving developers all of the tools they need to deploy their applications as quickly as possible. As a result, application development on this spin would be simpler and much more efficient, letting programmers spend their time developing applications instead of setting up a specific environment.In addition to this, this spin will also tie well into concurrent efforts seeking to merge the cloud with desktop Fedora and provide easy access to the variety of tools available in the JBoss community.

Relevant Experience

I'm currently pursuing a degree in Software Engineering and have had exposure to several of the technologies involved. I have experience working in Linux-based environments and am comfortable using the command line tools that would be used in creating this spin. I have also had exposure to Java in school and am familiar with its semantics and structure. I am comfortable debugging software, so I may also be able to implement patches and resolve dependency issues.

Implementation

I intend to become as familiar as possible with the process on converting open source Java applications into RPM packages. In addition to this, I intend to memorize Fedora's packaging and review guidelines in order to make the process much easier for all of those involved. The first major goal will be work on the JBoss community packages in order to get them to build properly. The second goal will then be getting them accepted upstream into Rawhide. The last step will then be to bundle all of these packages into their appropriate remixes which will then be submitted for spin approval.

Deliverables

The outcome of this project will be producing both a desktop version of this spin with an accompanying Live CD as well as a sever variant with a corresponding kickstart file for unattended installation. The Spin itself will contain everything needed to immediately start developing and deploying applications in both environments.

Timeline

  • April 21st --> May 26th
    (Pre-GSOC)
Familiarize myself with Java packaging -
Writing proper .spec files
Building from source
Debugging and dependency resolution
Familiarize myself with package review process -
Learn all guidelines
Submit test packages for review
Look for sponsor as a package collection maintainer
Develop list of decisions that must be made:
What packages should each spin contain?
Scope: How many features are viable to add given the timeframe?
What are the highest priority packages?
Prioritize order in which packages will be worked on
Eclipse vs. maven Repository
Miscellany
Develop wiki page
Roll a base Fedora Remix
Continue working on compiling test packages
  • May 26th --> June 7th
    (Coding Begins)
Begin working on compiling packages
Hibernate
HornetQ
mod_cluster
Others, as time permits
Work with upstream developers to get packages accepted into Rawhide
Test packages in Rawhide, address bugs
Simultaneous development of kickstart files
  • June 7th
    Midterm Evaluation
We should have an installable base image with whatever packages are complete at this point.
  • June 7th --> July 20th
Continue work on packages
Add to base Fedora, test inclusion
  • July 20th: Submit Spins to SIG for Review
  • July 21st --> August 9th
Finish adding in features
QA and Testing
Deploy to remote servers
Create Live CDs
Install to flash drives, etc.
Address any bugs, review notes
  • August 10th
    Deadline
  • Beyond
Refine documentation and update Beats
Maintain Spins and individual packages
Address bugs or security issues
Aim for official release with Fedora 18
Possible expansion into all purpose Java Development Environment



Release Schedule

  • Alpha
Release Date: June 7th (For midterm evaluation)
Criteria:
Installer launches anaconda + kickstart without any issues
Installer boots and runs on 32 + 64 bit architectures
Boots into a graphical environment
No prohibitive boot/install bugs
A minimum of JBoss AS7 and Eclipse installed, should be able to deploy quickstarts (i.e. Helloworld) to demo
  • Beta
Release Date: June 28th (Allowing 3 weeks for testing)
Criteria:
Includes all JBoss packages that have all bugs closed and all dependencies resolved
Kickstart validates and compresses properly
Bugs/Defects constantly decreasing since alpha
Workarounds for open bugs documented
Inclusion of all non-JBoss packages (IDEs, GUI finalized, etc)
+ All alpha criteria
  • Final
Release Date: July 19th
Criteria:
All completed packages included
All desired features implemented
Workflow of boot, installation, rpm updates, application development and deployment must be free of any prohibitive bugs to allow testing in actual usage scenarios
+ All beta and alpha criteria

Any other details you feel we should consider

The amount of community features integrated into the spin will be a variable here, depending on what issues arise, and will likely be an ongoing project beyond the length of GSOC.

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

Yes - at this point, I have heard from Marek Goldmann and Carlo de Wolf.