|
|
(10 intermediate revisions by 4 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.
| |
| | |
| ==Get in touch==
| |
| | |
| There's no dedicated mailing list yet and everything regarding this topic should be discussed on the general Fedora Development list [https://lists.fedoraproject.org/admin/lists/devel.lists.fedoraproject.org/]. Most of us also hang out on the #fedora-modularization channel on Freenode.
| |
| | |
| ==Planning==
| |
| | |
| Formal meetings will be held by the Modularity Working Group, once established. See the [[Modularity_Working_Group|Modularity Working Group page]] for more information.
| |
| | |
| ==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 a [http://taiga.fedorainfracloud.org/project/langdon-modularity/ Fedora Taiga instance].
| |
| | |
| ==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 Pagure [https://pagure.io/] - 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 Pagure modularization group [https://pagure.io/group/modularization].
| |
| | |
| ===Documentation===
| |
| | |
| This differs for every project.
| |
| | |
| Documentation for the client is hosted at ReadTheDocs.org [http://fm-dnf-plugin.readthedocs.org/en/latest/] 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]]
| |