Fedora Developer Portal – prototype

I wanted to try an interesting project called Jekyll – a static page generator. It consumes content in textual form like Markdown or Textile, Liquid templates, and HTML and CSS to generate static pages and blogs.

I should be able to install it with simple command:

$ gem install jekyll

But it wasn’t successful. What I’m going to do?

Good news for me is that I work on a project called Fedora Developer Portal! And there is a repo for content with the Ruby section already created. It explains how to install Ruby, Gems, etc. I used that information and successfully installed Jekyll on my machine.

That’s one of the purposes of our new portal – to help people start with new (new for them) technology on Fedora.

First Prototype is Here!

As you might have figured out from the introduction, and from the heading as well, the development slowly started! I just finished a prototype which is running on developer-phracek.rhcloud.com.

Please keep in mind that this is just a prototype that offers very limited content and functionality. The content is not final and will change according to your feedback and ideas 🙂

Project Resources

General Information

  • Wiki page – The main project page with description, links to resources, planning etc.

Code & Development

  • Content repo – Repo with all the content in a textual form with Markdown syntax. (Ruby content already created)
  • Website repo – Repo for Jekyll templates that would define the visual look and layout of the website.
  • Design mockups repo – Repo for layout sketches and mockups.
  • Prototype – Prototype of the website with limited content and functionality.

Communication

  • Taiga Project – Project tracking and planning
  • IRC channel #developer-portal on Freenode
  • Issue Trackers in the GitHub projects above

Copr, Dist Git and Patternfly

As in the last year, July, for some reason, happened to be a great time to post some news about our Copr Build Service. At this time, it’s about integrating Copr with:

  • Patternfly – an open interface project
  • Dist Git – a remote Git repository designed to hold RPM package sources

If you can’t wait to see it, you can check the development server that is hopefully running on copr-fe-dev.cloud.fedoraproject.org. But please, remember, it’s a development server – so all the projects built here are a subject of deletion, destruction and all kinds of randomization without notice.

Dist Git for Copr

It all started with a need of uploading sources to the Copr itself – as the only way of building your package was to provide a URL pointing to it. That, however, required all users to have their own public file storage.

We decided to go the Fedora way and use Dist Git – a combination of git repository to store spec files, lookaside cache to store sources, and Gitolite to manage access permissions. Each package will be stored in a repo named as ‘username/project/package’. Each repo will contain branches that represent a target platform. For example: ‘f22’ for Fedora 22, ‘epel7’ for Epel for Centos 7, etc.

It will be gradually deployed in production. The first step is to enable users to upload their .src.rpm files into Copr. At this step, Dist Git will be used as a storage only. Direct access to the repositories will come afterwards.

New User Interface  Patternfly

Enabling Dist Git required some changes to the user interface as well. We didn’t use any framework, that would help us to easily create new elements in the UI. Instead, we had a custom CSS that received new lines of code with each change. As you can imagine, each change took a bit longer than desired, the CSS became messy, and yes, the interface itself became messy as well. At this point, I decided that we need to do a step forward and we finally agreed to rewrite the user interface to Patternfly! Yay!

The Old Copr UI

The old Copr interface

The New Copr UI

The new Copr interface

We need your feedback!

I would like to make Copr as friendly as possible. If you want to help me with that, please provide a feedback as a comment. Do you like it? Do you hate it? Is there anything you miss in the interface? Your feedback is much appreciated!