From Fedora Project Wiki
m (Add {{autolang}})
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= About The Project =
{{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''']
 
== 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 ==
== 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'''.
The target audience are developers working on Fedora.
Specifically: developers '''building on''' Fedora; not '''contributing to''' Fedora.


They might be either:
They might be either:
# '''Newcomers''': Either choosing their Linux distribution or looking for information about how to start developing. Also searching recommendations.
# '''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 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.
# '''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.
Targeting on developers using Mac or even Windows and deploying to Fedora/CentOS might be considered for later iterations.
Line 21: Line 26:


= Project Resources =
= Project Resources =
== Testing instance ==
Testing instance of the portal - http://developer.fedorainfracloud.org
== Repositories ==
== Repositories ==
* Content Repo - https://github.com/developer-portal/content
* Content Repo - https://github.com/developer-portal/content
Line 31: Line 39:


== Project Tracking ==
== Project Tracking ==
* Kanban Board - http://taiga.cloud.fedoraproject.org/project/fedora-developer-portal/kanban
* Tasks + Issue Tracking: part of GitHub repositories mentioned above
* Tasks + Issue Tracking - part of GitHub repositories mentioned above
 
=== 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
 


= Content =
= Content =
Line 48: Line 46:


== Start ==
== Start ==
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.
Guides on "How to start a new project" starting from the problem-to-be-solved perspective and guiding developers trough possible options.


'''Pages:'''
'''Pages:'''
Line 68: Line 66:


'''Pages:'''
'''Pages:'''
* DevAssistant
* Docker
* Docker
* Vagrant
* Vagrant
Line 102: Line 99:


=== An example: Ruby page structure ===
=== An example: Ruby page structure ===
See the Ruby page in the prototype: https://developer-phracek.rhcloud.com/content/tech/languages/ruby/ruby-installation.html
See the Ruby page in the prototype: http://developer.fedorainfracloud.org/tech/languages/ruby/ruby-installation.html
* Installation (both RPM and upstream)
* Installation (both RPM and upstream)
* Explain them why we have ruby-mri bin and why we use rubypick
* Explain them why we have ruby-mri bin and why we use rubypick

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.