|
|
(5 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:Modularity]]
| |
| [[Category:Modularization]]
| |