From Fedora Project Wiki
(→‎Development Method: don't use old langdon-modularity Taiga URL, mention differentiation between normal sprints and roadmap)
(Replaced content with "{{admon/important|This page is deprecated| All Fedora Modularity Documentation has moved to the new [https://docs.pagure.org/modularity/ Fedora Modularity Documentation we...")
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Introduction to the Modularization initiative in Fedora=
{{admon/important|This page is deprecated| All Fedora Modularity Documentation has moved to the new [https://docs.pagure.org/modularity/ Fedora Modularity Documentation website] with source hosted along side the code in the [https://pagure.io/modularity Fedora Modularity website git repository]}}
 
* [[Modularization]]—here's the gist: <!-- includes the summary from the Modularization page --> {{:Modularization}}
* [[Modularity_Working_Group|Modularity WG]]
 
Note we are all still getting organized and nothing's set in stone yet.
 
== Steps to get involved ==
 
{{Team contact|Modularization WG|devel|#fedora-modularization}}
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.
# 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].
# 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].
# Create an account on [https://pagure.io/ Pagure] and file an issue in the [https://pagure.io/group/modularization Fedora Modularization group] requesting membership.
 
== 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.
 
== Planning ==
 
Formal meetings are held once a week by the Modularity Working Group. See the [https://apps.fedoraproject.org/calendar/modularity/ Fedocal] to find out when the group is meeting.
 
== Development Method ==
 
We will use [https://en.wikipedia.org/wiki/Agile_software_development agile software development] methods for Modularization, more specifically: a hybrid of [https://en.wikipedia.org/wiki/Scrum_(software_development) Scrum] and [https://en.wikipedia.org/wiki/Kanban_(development) 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:
 
* [https://www.youtube.com/watch?v=_QfFu-YQfK4 Learn Scrum in 8 minutes]
* [https://www.youtube.com/watch?v=0EIMxyFw9T8 Kanban applied to Scrum]
 
Agile development methods often come with their own lingo that can be confusing to the "uninitiated"—like [http://agiledictionary.com/epic/ "epic"], [http://agiledictionary.com/iteration/ "sprint"] (or  [http://agiledictionary.com/iteration/ "iteration"]), [http://agiledictionary.com/spike/ "spike"]. Many of the terms used are explained over at the [http://agiledictionary.com/ Agile Dictionary].
 
We manage the project using [https://taiga.io/ Taiga] on Fedora Infrastructure, [http://taiga.fedorainfracloud.org/project/modularity/ one instance] for individual sprint work items and [http://taiga.fedorainfracloud.org/project/modularity-roadmap/ another] for higher-level stuff ("epics").
 
== Technical details ==
 
=== Architecture ===
 
The current idea we're working with comprises of three main parts, some more complex than others. This can change at any point.
 
# Module sources - not yet defined; these could be RPM repositories, comps files, simple component lists, COPRs, docker images...
# A service consuming the module sources and providing digested metadata for the end clients.
# The end clients communicating with the service, for example a standalone installation tool, a dnf plugin or a web service providing pretty module overview.
 
=== Code repositories ===
 
We currently host all of our code at [https://pagure.io/ Pagure]—the metadata service, its client, metadata 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 [https://pagure.io/group/modularization Pagure modularization group].
 
=== Documentation ===
 
This differs for every project.
 
Documentation for the client is hosted at [https://fm-dnf-plugin.readthedocs.org/en/latest/ ReadTheDocs.org] and is being automatically rebuilt every 15 minutes. This will be handled by Pagure commit hooks once that feature is implemented and deployed.
 
=== Metadata service ===
 
The metadata service was deployed on a test server and populated with testing data. The client is configured to use this instance at this point.
 
[[Category:Modularization]]

Latest revision as of 07:50, 20 February 2017

This page is deprecated
All Fedora Modularity Documentation has moved to the new Fedora Modularity Documentation website with source hosted along side the code in the Fedora Modularity website git repository