From Fedora Project Wiki

< Websites

Revision as of 20:02, 30 September 2015 by Phracek (talk | contribs) (Project Resources)

About The Project

Fedora Developer Portal would be a new place for developers, providing information about tools, technology and other features that are packaged in Fedora. It would raise awareness about new and existing projects among users.

Target Audience

The target audience is developers working on Fedora. To be clear, I am talking about developers building *on* Fedora, rather than contributing *to* Fedora.

They might be either:

  1. Newcomers: Either choosing their Linux distribution or looking for information about how to start developing. Also searching recommendations.
  2. Existing Fedora Developers: Discovering what else Fedora offers and learning how to use it.
  3. Existing Developers: Learning about how to use their existing open source toolsets on Fedora.

Targeting on developers using Mac or even Windows and deploying to Fedora/CentOS might be considered for later iterations.

Main Purpose

The site would help developers to:

  1. Explore: What tools and tech Fedora offers? (DevAssistant, Vagrant, Python, Ruby, ...)
  2. Build: How to use this tech? How it is packaged in Fedora?
  3. Deploy: Which deployment technology should I use? (Copr, Nulecule, xdg-app, Software Collections, OpenShift ...)

Project Resources

Testing instance

Testing instance of the portal -



Project Tracking

Milestones & Progress

The project will run in five two-week scrums, started on Jul 16, 2015 and ready to be released on Sept 24, 2015. Expected results at the end of each scrum are as follows:

  • Jul 30, 2015 - Working prototype, testing instance deployed
  • Aug 13, 2015 - Design mockups ready
  • Aug 27, 2015 - Design implemented
  • Sep 10, 2015 - Beta release, Content 100% completed
  • Sep 24, 2015 - Project ready for release


Home Page

The homepage need to explain clearly what is it all about and how/why you would use it. It would also show the main features from current release.


Guides on "How to start a new project" starting from the problem-to-be-solved perspective and guiding developers trough possible options. The 'comprehensive' part of the guides will be focused on DevAssistant.


  1. Application:
    • Web application
    • Command line application
    • Desktop GUI application
    • Mobile application
  2. Hardware:
    • Raspberry Pi
    • Arduino devices
    • Other embedded devices
  3. Tips:
    • Provide online documentation
    • Collaborate effectively


Show what tools are available in Fedora, how they can help developers and some example use-cases.


  • DevAssistant
  • Docker
  • Vagrant

An example: Vagrant page structure

  • how to get packaged Vagrant
  • providers
    • libvirt
    • how to run libvirt with vagrant without sudo
  • list of plugins we maintain
  • troubleshooting, how to report problems
  • Fedora Vagrant boxes (links)


Mostly language/framework-specific guides about how to install it on Fedora, what is different in Fedora (if), what might be the best practise.

Each language section should include a link to a DevAssistant Assistant with hello world.


  1. Languages:
    • Python
    • Ruby
    • PHP
    • Perl
    • GO
    • C and C++
    • Node.js
    • Java
  2. Database:
    • PostgreSQL
    • MariaDB
    • Sqlite

An example: Ruby page structure

See the Ruby page in the prototype:

  • Installation (both RPM and upstream)
  • Explain them why we have ruby-mri bin and why we use rubypick
  • Answers to how our Ruby differs from upstream
  • Let users know we have a lot or RubyGems packaged
  • Show them our
  • Let them know there is something like Fedora Ruby SIG that they can join
  • 'I am a Ruby dev subpage':
    • combination/listing of pages we have and are relevant
    • Ruby, Rails, Vagrant, docker, DevAssistant would show up


Ways of deploying a service or distributing an app to the end users. A guide that would recommend the best option for a particular app type.

Could also include a flowchart of 1) identify app type 2) identify pkg type 3) pkg ....


  • Copr (Custom RPM repositories)
  • Software Collections (decoupling update cycles from host OS)
  • Nulecule (multi-container network services)
  • xdg-app (containers for desktop applications)
  • Rolekit (package installation & configuration flows)
  • OpenShift (autoscaling network application hosting)


Docker images and Vagrant boxes to download.


Aggregation of interesting developer blogs.