From Fedora Project Wiki
m (Add {{autolang}})
 
(19 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= Introduction =
{{autolang}}


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.
= Fedora Developer Portal =
[https://fedoraproject.org/wiki/Websites/Developer Project Page]  |  [https://github.com/developer-portal/content '''Content Repository''']  |  [https://github.com/developer-portal/website '''Website Repository''']


= Main Purpose =
== About The Project ==
The project would provide information to developers working on Fedora. To be clear, I am talking about developers buildong *on* Fedora, rather than contributin *to* Fedora.
'''Fedora Developer Portal''' is a place for developers. Providing information about tools, technology and other features that are packaged in Fedora. It aims to raise awareness about new and existing projects among users.


== Target Audience ==
The target audience are developers working on Fedora.
Specifically: developers '''building on''' Fedora; not '''contributing to''' Fedora.
They might be either:
#  '''Newcomers''':  Either choosing their Linux distribution or looking for information about how to start developing. Also searching recommendations.
#  '''Existing Fedora Developers''':  Discovering what else Fedora offers and learning how to use it.
#  '''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:
The site would help developers to:
# '''Explore''': What tools and tech Fedora offers? (DevAssistant, Vagrant, Python, Ruby, ...)
# '''Explore''': What tools and tech Fedora offers? (DevAssistant, Vagrant, Python, Ruby, ...)
# '''Build''': How to use this tech? How it is packaged in Fedora?  
# '''Build''': How to use this tech? How it is packaged in Fedora?  
# '''Deploy''': Which deployment technology should I use? (Copr, Nulecule, xdg-apps, Software Collections, ...)
# '''Deploy''': Which deployment technology should I use? (Copr, Nulecule, xdg-app, Software Collections, OpenShift ...)


= Resources =
 
= Project Resources =
== Testing instance ==
Testing instance of the portal - http://developer.fedorainfracloud.org
 
== Repositories ==
* Content Repo - https://github.com/developer-portal/content
* Content Repo - https://github.com/developer-portal/content
* Website Repo - https://github.com/developer-portal/website
* Website Repo - https://github.com/developer-portal/website
* Design Mockups Repo - https://github.com/developer-portal/mockups
* Design Mockups Repo - https://github.com/developer-portal/mockups
* Project Tracking - http://taiga.cloud.fedoraproject.org/project/fedora-developer-portal


= Milestones & Progress =
== Communication ==
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:
* #developer-portal at FreeNode - http://webchat.freenode.net/?channels=#developer-portal
* Jul 30, 2015 - Working prototype, testing instance deployed
* Fedora Devel Mailing List - https://lists.fedoraproject.org/mailman/listinfo/devel
* Aug 13, 2015 - Design mockups ready
 
* Aug 27, 2015 - Design implemented
== Project Tracking ==
* Sep 10, 2015 - Beta release, Content 100% completed
* Tasks + Issue Tracking: part of GitHub repositories mentioned above
* Sep 24, 2015 - Project ready for release


= Content =
= Content =
== Structure ==
== Home Page ==
# Homepage (Main features of the current Fedora release)
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.
# The Tools:
 
#* DevAssistant
== Start ==
#* Docker
Guides on "How to start a new project" starting from the problem-to-be-solved perspective and guiding developers trough possible options.
#* Vagrant
 
# The Tech:
'''Pages:'''
## Languages:
#Application:
##* Python
#* Web application
##* Ruby
#* Command line application
##* PHP
#* Desktop GUI application
##* Perl
#* Mobile application
##* GO
#Hardware:
##* C
#* Raspberry Pi
##* Node.js
#* Arduino devices
##* Java
#* Other embedded devices
## Database:
#Tips:
##* PostgreSQL
#* Provide online documentation
##* MariaDB
#* Collaborate effectively
##* Sqlite
# Distribution & Deployment
#* Copr (RPM)
#* 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)
# Resources [to download]
#* Docker Images
#* Vagrant Boxes
# Blogs
# Next Release


== Possible Views ==
== Tools ==
* Web Application (What are the ways of creating a web application on Fedora)
Show what tools are available in Fedora, how they can help developers and some example use-cases.
** Flask
** Django
** Ruby on Rails
** PostgreSQL
** ...
To be completed...


== Example ==
'''Pages:'''
=== Ruby ===
* Docker
* Installation (both RPM and upstream)
* Vagrant
* 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 https://github.com/zuhao/isitfedoraruby
* Let them know there is something like Fedora Ruby SIG that they can join


=== Vagrant ===
=== An example: Vagrant page structure ===
* how to get packaged Vagrant
* how to get packaged Vagrant
* providers
* providers
Line 86: Line 78:
* Fedora Vagrant boxes (links)
* Fedora Vagrant boxes (links)


=== "I am a Ruby developer" view ===
== Technology ==
* combination/listing of pages we have and are relevant
Mostly language/framework-specific guides about how to install it on Fedora, what is different in Fedora (if), what might be the best practise.
* Ruby, Rails, Vagrant, docker, DevAssistant would show up
 
Each language section should include a link to a DevAssistant Assistant with hello world.
 
'''Pages:'''
#Languages:
#* Python
#* Ruby
#* PHP
#* Perl
#* GO
#* C and C++
#* Node.js
#* Java
#Database:
#* PostgreSQL
#* MariaDB
#* Sqlite
 
=== An example: Ruby page structure ===
See the Ruby page in the prototype: http://developer.fedorainfracloud.org/tech/languages/ruby/ruby-installation.html
* 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 https://github.com/zuhao/isitfedoraruby
* 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
 
== Deployment ==
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 ....
 
'''Pages:'''
* 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)
 
== Resources ==
Docker images and Vagrant boxes to download.
 
== Blogs ==
Aggregation of interesting developer blogs.

Latest revision as of 23:08, 12 September 2019

Fedora Developer Portal

Project Page | Content Repository | Website Repository

About The Project

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

Target Audience

The target audience are developers working on Fedora. Specifically: developers building on Fedora; not 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 - http://developer.fedorainfracloud.org

Repositories

Communication

Project Tracking

  • Tasks + Issue Tracking: part of GitHub repositories mentioned above

Content

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.

Start

Guides on "How to start a new project" starting from the problem-to-be-solved perspective and guiding developers trough possible options.

Pages:

  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

Tools

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

Pages:

  • 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)

Technology

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.

Pages:

  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: http://developer.fedorainfracloud.org/tech/languages/ruby/ruby-installation.html

  • 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 https://github.com/zuhao/isitfedoraruby
  • 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

Deployment

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 ....

Pages:

  • 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)

Resources

Docker images and Vagrant boxes to download.

Blogs

Aggregation of interesting developer blogs.