From Fedora Project Wiki
(Renaming Modularization to Modularity and adding references to the Infra and Developer Notes documents, replacing the long obsolete paragraphs in the Technical Details section)
(Renaming the main IRC channel)
Line 8: Line 8:
== Steps to get involved ==
== Steps to get involved ==


{{Team contact|Modularity WG|devel|#fedora-modularization}}
{{Team contact|Modularity WG|devel|#fedora-modularity}}
To get involved with the Modularity Working Group, please follow the following steps for becoming a part of the team.
To get involved with the Modularity Working Group, please follow the following steps for becoming a part of the team.
# Read this wiki page and understand the development methods and technical details.
# Read this wiki page and understand the development methods and technical details.
# Get in touch with us on the [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/ devel mailing list] and our IRC channel, [https://webchat.freenode.net/?channels=fedora-modularization #fedora-modularization].
# Get in touch with us on the [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/ devel mailing list] and our IRC channel, [https://webchat.freenode.net/?channels=fedora-modularity #fedora-modularity].
# Attend one of our [https://apps.fedoraproject.org/calendar/modularity/ weekly meetings] and introduce yourself.
# Attend one of our [https://apps.fedoraproject.org/calendar/modularity/ weekly meetings] and introduce yourself.
# Become familiar with the Agile project management and create an account on the [http://taiga.fedorainfracloud.org/project/modularity/ Fedora Taiga].
# Become familiar with the Agile project management and create an account on the [http://taiga.fedorainfracloud.org/project/modularity/ Fedora Taiga].
Line 18: Line 18:
== Get in touch ==
== Get in touch ==


There's no dedicated mailing list yet and everything regarding this topic should be discussed on the general [https://lists.fedoraproject.org/admin/lists/devel.lists.fedoraproject.org/ Fedora Development list].  Most of us also hang out on the #fedora-modularization channel on Freenode.
There's no dedicated mailing list yet and everything regarding this topic should be discussed on the general [https://lists.fedoraproject.org/admin/lists/devel.lists.fedoraproject.org/ Fedora Development list].  Most of us also hang out on the #fedora-modularity channel on Freenode.


== Planning ==
== Planning ==

Revision as of 14:16, 8 July 2016

Introduction to the Modularity initiative in Fedora

Modularity (formerly, Modularization) is an ongoing initiative in Fedora to resolve the issue of divergent, occasionally conflicting lifecycles of different components. A module provides functionality (for instance a web server) and includes well-integrated and -tested components (for instance Apache httpd and the libraries on which it depends). It can be deployed into production in various ways, for instance as "classic" RPM packages or a container image, and is updated as a whole. Different modules can emphasize new features, stability, security, etc. differently.

Note we are all still getting organized and nothing's set in stone yet.

Steps to get involved

How to contact the Modularity WG team
Mailing list: devel
Visit this link to sign up for the email list for the Modularity WG team.
Chat: #fedora-modularity[?]
This is where real-time chat with Modularity WG team members happens.

To get involved with the Modularity Working Group, please follow the following steps for becoming a part of the team.

  1. Read this wiki page and understand the development methods and technical details.
  2. Get in touch with us on the devel mailing list and our IRC channel, #fedora-modularity.
  3. Attend one of our weekly meetings and introduce yourself.
  4. Become familiar with the Agile project management and create an account on the Fedora Taiga.
  5. Create an account on Pagure and file an issue in the Fedora @modularity group requesting membership.

Get in touch

There's no dedicated mailing list yet and everything regarding this topic should be discussed on the general Fedora Development list. Most of us also hang out on the #fedora-modularity channel on Freenode.

Planning

Formal meetings are held once a week by the Modularity Working Group. See the Fedocal to find out when the group is meeting.

Development Method

We will use agile software development methods for Modularity, more specifically: a hybrid of Scrum and Kanban adapted to the constraints we have in Fedora. For instance, not all contributors can commit to be involved like a regular, full-time employee, meaning that rigid use of 2-week-long Scrum Sprints can be an obstacle to participating for some people.

If you're not familiar with agile development or the methods we use, here are some links to get you started:

Agile development methods often come with their own lingo that can be confusing to the "uninitiated"—like "epic", "sprint" (or "iteration"), "spike". Many of the terms used are explained over at the Agile Dictionary.

We manage the project using Taiga on Fedora Infrastructure, one instance for individual sprint work items and another for higher-level stuff ("epics").

Technical details

Architecture

Refer to Modularity/Infra.

Code repositories

We currently host all of our code at Pagure — the infrastructure, the client-side tooling, metadata specification drafts and even a couple of proof-of-concept modules. Repositories typically start with the fm- prefix and are open to all members of the Pagure @modularity group.

Services and tools

Refer to Modularity/Developer_Notes.