#76 Consolidation of the introduction a community page
Merged 3 years ago by mcurlej. Opened 4 years ago by mcurlej.
fedora-docs/ mcurlej/modularity intro_community_nsvca  into  master

file modified
+2 -8
@@ -1,5 +1,6 @@ 

  * **What is Modularity**

- * xref:index.adoc[Quick Intro]

+ * xref:index.adoc[Introduction]

+ * xref:community.adoc[Community]

  * xref:architecture.adoc[Core Concepts]

  ** xref:architecture/building.adoc[Building Software]

  ** xref:architecture/consuming.adoc[Consuming Software]
@@ -22,7 +23,6 @@ 

  * xref:making-modules-policies.adoc[Making Modules — Policies]

  ** xref:making-modules/packaging-guidelines.adoc[Packaging Policy]

  ** xref:making-modules/naming-guidelines.adoc[Naming Policy]

- * xref:reporting-module-bugs.adoc[Reporting Module Bugs]

  * xref:faq.adoc[FAQ]

  

  * **Advanced**
@@ -32,12 +32,6 @@ 

  ** xref:architecture/module-version-prefix.adoc[Version Prefix]

  ** xref:architecture/consuming/naming-policy.adoc[NSVCA Definition]

  

- * **Community**

- * xref:community.adoc[Communication]

- * xref:community/teams.adoc[Teams and Working Groups]

- * xref:community/project-tracking.adoc[Project Tracking]

- * xref:reporting-issues.adoc[Reporting Project Issues]

- 

  * **Other**

  * xref:references.adoc[References]

  * xref:archive.adoc[Archive]

@@ -1,7 +1,9 @@ 

- = Communication

+ = Community

  

- This page lists the communication channels and meetings of members of the Modularity Working Group (Modularity WG).

+ This page lists the communication channels of members of the Modularity Working Group (Modularity WG), related projects and also how you can contribute to the project.

  

+ 1. **<<Channels>>**

+ 3. **<<Reporting issues>>**

  

  == Channels

  
@@ -9,23 +11,42 @@ 

  

  :hash: #

  

- https://webchat.freenode.net/?channels=fedora-modularity[{hash}fedora-modularity] on freenode::

+ https://webchat.freenode.net/?channels=fedora-modularity[{hash}fedora-modularity^] on freenode::

  Most of the discussions happen on this IRC channel.

  

- https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/[devel@lists.fedoraproject.org]::

+ https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/[devel@lists.fedoraproject.org^]::

  The Modularity WG doesn't have a dedicated mailing list.

  Instead, the Fedora Devel mailing list is used time to time for more complex decisions or announcements.

  

- https://lists.fedoraproject.org/archives/list/server@lists.fedoraproject.org/[server@lists.fedoraproject.org]::

- The https://fedoraproject.org/wiki/Server[Server SIG] also discusses Modularity at times as the Server Edition is a primary stakeholder in the goals of the https://fedoraproject.org/wiki/Objectives#Current[Modularity Objective].

+ https://lists.fedoraproject.org/archives/list/server@lists.fedoraproject.org/[server@lists.fedoraproject.org^]::

+ The https://fedoraproject.org/wiki/Server[Server SIG^] also discusses Modularity at times as the Server Edition is a primary stakeholder in the goals of the https://fedoraproject.org/wiki/Objectives#Current[Modularity Objective^].

  

- == Meetings

  

- Meetings are listed on the https://apps.fedoraproject.org/calendar/modularity/[Modularity calendar].

- Currently, there are two alternating meetings on Tuesday:

+ == Working Groups and Teams

  

- Modularity WG::

- A formal meeting of the Modularity WG to discuss, post updates, and make decisions.

+ Modularity is driven by Redhat and DNF team.

  

- Office Hours::

- No formal agenda, members of the Modularity WG promise to be present at this time for questions or discussion.

+ * Daniel Mach mailto:dmach@redhat.com[dmach@redhat.com] - modularity product owner and tech lead

+ * Jaroslav Mracek mailto:jmracek@redhat.com[jmracek@redhat.com] - modularity in DNF

+ * Martin Curlej mailto:mcurlej@redhat.com[mcurlej@redhat.com] - documentation and infrastructure

+ 

+ 

+ However, Modularity couldn’t happen without other working groups contributing a significant portion of effort into it, i.e.:

+ 

+ * https://fedoraproject.org/wiki/Server[Server Working Group^]

+ * https://docs.pagure.org/releng/[Fedora Release Engineering^]

+ * https://fedoraproject.org/wiki/Infrastructure[Fedora Infrastructure^]

+ 

+ == Reporting issues

+ 

+ Issues such as bugs or feature requests can be created by anyone in the Modularity issue tracker. This issue tracker is then processed by the team and new cards or even epics may be created as a result. Separating user feedback from the work lowers the pressure on the person who reports the feedback — they don’t have to understand our tracking system.

+ 

+ * https://pagure.io/modularity/issues[General Modularity issue tracker^] — For general issues or when it is not clear where to report specifically

+ 

+ * Bugs against Fedora modules are reported in https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20Modules&short_desc=%5Bmodularity%5D&component=dnf[Bugzilla^].

+ 

+ === Project and Components related to Modularity:

+ 

+ * https://pagure.io/fm-orchestrator/issues[MBS (Module Build Service) issue tracker^] — Issues regarding MBS upstream project specifically. If your issue or RFE changes the syntax or semantics of the MBS input or the MBS output (RPMs built in a module or resulting modular metadata), it does belong to https://pagure.io/modularity/issues[General Modularity issue tracker^]. If your issue is related to particular module build in Fedora infrastructure, it belongs to https://pagure.io/fedora-infrastructure/[Fedora Infrastructure issue tracker^]. 

+ * https://github.com/fedora-modularity/libmodulemd/issues[libmodulemd issue tracker^] — Issues regarding the modulemd specification and the libmodulemd library.

+ * https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&short_desc=%5Bmodularity%5D&component=dnf[Bugzilla^] — Issues regarding the "dnf module" command. 

\ No newline at end of file

@@ -1,43 +0,0 @@ 

- = Project Tracking

- 

- The work and an overall progress is being coordinated and tracked on the https://tree.taiga.io/project/modularity-wg/epics[**Modularity WG Kanban Board**].

- 

- User feedback such as bugs and feature requests is being collected in the https://pagure.io/modularity/issues[**Modularity issue tracker**].

- 

- == What is being tracked

- 

- 1. https://tree.taiga.io/project/modularity-wg/epics[**Goals (epics)**] — A specific definition of a state we want to achieve, ideally a https://en.wikipedia.org/wiki/SMART_criteria[SMART] goal. Sets the direction of the project.

- 2. https://tree.taiga.io/project/modularity-wg/kanban[**Actions (cards)**] — Tasks that get us closer to a specific goal. Defines actionable work items contributors can complete.

- 3. https://pagure.io/modularity/issues[**Feedback (issues)**] — User feedback such as bugs, ideas, questions. Influences the project from outside.

- 

- == How we operate

- 

- We work with an Agile mindset. We have designed our system to transparently communicate our goals and intentions without the need to understand every single piece of work that is being done. It also allows us to display actionable tasks that are clearly defined and prioritized so anyone can help us move forward.

- 

- Because Agile is not making things up as we go, but rather iteratively working towards specific goals, the first thing that needs to exist are goal definitions.

- 

- === Setting and tracking the goals

- 

- Goal definitions are ideally SMART — specific, measurable, actionable, relevant, and time-bound. At the absolute minimum, they always must have a clearly defined purpose — so we know why do we want to achieve them, and a definition of done — so we know when exactly are they achieved. This way we can communicate the direction of the project.

- 

- Goals (epics) are owned by a single person who acts as a feature driver. The owner doesn't necessarily do all the work, but makes sure that actionable tasks that lead towards a completion exist at all times, and is responsible for the goal being completed. This way the project can be scaled across a large community of contributors.

- 

- Epics are defined in the https://tree.taiga.io/project/modularity-wg/epics[Epics view of our board]. This view is used for strategic planning and for monitoring the overall progress of the project. It also allows to drill down into idividual epics for more specific details about each goal.

- 

- The specific epic detail shows the purpose of the goal, the definition of done, and other information such as a delivery deadline. It also lists all the actions (cards) that lead to a completion of this epic. Epic owners use this view to define and manage individual cards.

- 

- === Making progress

- 

- To work on the project, contributors visit the https://tree.taiga.io/project/modularity-wg/kanban[Kanban view of our board] showing all existing cards sorted into different columns, each representing a specific state. Contributors can choose any card in the "Next" column they want to work on.

- 

- To work on a specific card, contributors can simply assign themselves to any card in the "Next" column and move it to the "In Progress" column. This way they indicate to other contributors that this card is already being worked on.

- 

- While working on a card, updates can be posted to the comment section of the card. Contributors can also mention other people in the comments to ask questions or to notify them about specific information. It is also encouraged to coordinate with other using the xref:community.adoc#_channels[usual communication channels] such as IRC.

- 

- When a card is complete, contributors are expected to post an update to the comments, and move the card to the "Done" column in the https://tree.taiga.io/project/modularity-wg/kanban[Kanban view of our board]. This step updates the progress of the epic the card belongs to which is useful for tracking progress.

- 

- If new actions appear as a result of a card completion, contributors should coordinate with the Epic owner about creating new cards for the new actions to ensure there is always next step in the queue.

- 

- === Reporting issues

- 

- Issues such as bugs or feature requests can be created by anyone in the https://pagure.io/modularity/issues[Modularity issue tracker]. This issue tracker is then processed by the team and new cards or even epics may be created as a result. Separating user feedback from the work lowers the pressure on the person who reports the feedback — they don't have to understand our tracking system.

@@ -1,9 +0,0 @@ 

- = Working Groups and Teams

- 

- Modularity is driven by the https://fedoraproject.org/wiki/Modularity_Working_Group[Modularity Working Group]

- 

- However, Modularity couldn't happen without other working groups contributing a significant portion of effort into it, i.e.:

- 

- * https://fedoraproject.org/wiki/Server[Server Working Group]

- * https://docs.pagure.org/releng/[Fedora Release Engineering]

- * https://fedoraproject.org/wiki/Infrastructure[Fedora Infrastructure] 

\ No newline at end of file

file modified
+15 -12
@@ -1,26 +1,29 @@ 

- = Modularity

+ = Introduction
dmach commented 3 years ago

This whole page needs rewrite, but I think we should do it in the next iterations.
Nothing we should work on now, we will improve it after we process the survey results.

  

- Modularity enables you to choose a particular stream (major version) of content that has been natively built and tested for your system, and to receive the right updates for it.

+ Welcome to the Modularity project documentation.

+ 

+ **Modularity** can be described as a set of tools that enables you to build your packages in an alternate way to the standard rpm packages. The major feature of Modularity is that it enables you to build multiple major versions of your software for multiple versions of Fedora releases. Modularity is a part of the “packaging ecosystem” that already exists and is used for building rpm packages in the Fedora. 

  

  image::fedora-without-modularity.png[,100%,]

  

  image::fedora-with-modularity.png[,100%,]

  

- That means you're no longer limited to a single version of each package for a given Fedora release. And because many streams are now available in multiple Fedora releases, you can install a specific version of software regardless of what Fedora release you're running.

+ == Multiple versions of software

  

- == Examples

+ Fedora provides only one supported major version of software per release. This means if you need to use an unsupported version you are on your own, you have to build it yourself or rely on some unofficial repository. Examples below can better illustrate the situation:

  

- **Scenario 1**: Some users install packages coming from a different Fedora release in order to consume a specific version of a database that is compatible with their application. But thanks to Modularity they might not need to do that anymore, because multiple versions of the database can available in each Fedora release. All they need to do is to consume the specific stream of that database right from the Fedora repositories for their system.

+ === Examples

  

- **Scenaro 2:** There were cases when users couldn't upgrade their system to a new Fedora release because their application wouldn't function with the new version of a language runtime coming with the upgrade. Modularity can fix this problem by providing the same language versions in both Fedora releases. With that, the user can consume a specific stream of the language and keep it even when they upgrade their system. And when the application is ready for the new language version, it can be upgraded later, independently from the OS, by switching to a different stream.

+ **Scenario 1**: Some users install packages coming from a different Fedora release in order to consume a specific version of a database that is compatible with their application. But thanks to Modularity they might not need to do that anymore, because multiple versions of the database can be available in each Fedora release. All they need to do is to consume the specific stream of that database right from the Fedora repositories for their system.

  

- == Compatibility

+ **Scenario 2:** There were cases when users couldn't upgrade their system to a new Fedora release because their application wouldn't function with the new version of a language runtime coming with the upgrade. Modularity can fix this problem by providing the same language versions in both Fedora releases. With that, the user can consume a specific stream of the language and keep it even when they upgrade their system. And when the application is ready for the new language version, it can be upgraded later, independently from the OS, by switching to a different stream.

  

- Modularity is built to be 100% compatible with existing expectations and workflows. The installation and update experience continues to work the same way — even when there are multiple versions of packages — thanks to default streams.

+ == Module

+ Module is a modular package, but instead of being only one rpm file as a non-modular package would be, it represents a collection of one or multiple rpm packages and metadata files which are the artifact of the module build process. The metadata of a module can define multiple rpm files and modules, which are bundled and installed on the host system.

  

- For example, the following two commands work the same way on systems with and without Modularity:

+ == Stream

+ A “stream”, in the context of the Modularity project, usually represents one major version of a software, but is not exclusive to. With a stream you can then distinguish between multiple versions of software for a Fedora release. Modules can also have a default stream which is chosen if no specific stream is defined by the user, when installing the software.

  

-     $ dnf install httpd

-     $ dnf update

+ == Compatibility

  

- On systems with multiple httpd streams available, the default stream is automatically enabled and consumed. xref:using-modules.adoc[Learn more about using modules]. 

\ No newline at end of file

+ As we already established earlier, Modules are only bundles of rpm packages which are installed together. This means that existing rpm packages can be bundled into a module. The workflow of installing modules is mostly the same as it is with non-modular packages. This is described in detail in the section xref:using-modules.adoc[Using modules].

@@ -1,13 +0,0 @@ 

- = Reporting Issues

- 

- TIP: This page is about reporting project issues against Modularity. To report bugs against Fedora content — modules and RPMs — in their respective Bugzilla space, see the xref:reporting-module-bugs.adoc[Reporting Module Bugs] page.

- 

- There is a main issue tracker to report general issues. However, if you know you need to report an issue for a specific component, there is a list of below, too.

- 

- * https://pagure.io/modularity/issues[**General Modularity issue tracker**] — For general issues or when it is not clear where to report specifically

- 

- Specific components:

- 

- * https://pagure.io/fm-orchestrator/issues[MBS (Module Build Service) issue tracker] — Issues regarding MBS upstream project specifically. If your issue or RFE changes the syntax or semantics of the MBS input or the MBS output (RPMs built in a module or resulting modular metadata), it does belong to https://pagure.io/modularity/issues[**General Modularity issue tracker**]. If your issue is related to particular module build in Fedora infrastructure, it belongs to https://pagure.io/fedora-infrastructure/[Fedora Infrastructure issue tracker]. Any other MBS issue can be filed in the MBS issue tracker.

- * https://github.com/fedora-modularity/libmodulemd/issues[libmodulemd issue tracker] — Issues regarding the modulemd specification and the libmodulemd library.

- * https://src.fedoraproject.org/rpms/dnf[DNF issue tracker] — Issues regarding the "dnf module" command.

@@ -1,7 +0,0 @@ 

- = Reporting Module Bugs

- 

- NOTE: This page needs to be written

- 

- TIP: This page is about reporting bugs against Fedora content — modules and RPMs — in their respective Bugzilla space. To report project issues against Modularity, see the xref:reporting-issues.adoc[Reporting Project Issues] page.

- 

- Bugs against Fedora modules are reported in http://bugzilla.redhat.com[Bugzilla]. 

\ No newline at end of file

FIrst of multiple PR targeted to consolidate the documentation of Modularity.

Introduction page was little bit bland about explaining what modularity is. The community
page spanned several pages with few information in each. Put the community page right after
the introduction so people find help faster. Fixed some grammar bugs and word ordering. WDYT? @dmach @frostyx

Issue: modularity#174

Signed-off-by: Martin Curlej mcurlej@redhat.com

The link is misleading.
It's driven by Red Hat's Software Management team nowadays:
Daniel Mach dmach@redhat.com - modularity product owner and tech lead
Jaroslav Mracek jmracek@redhat.com - responsible for modularity in DNF
* Martin Curlej mcurlej@redhat.com - write something about yourself :)

Shouldn't we move this to a standalone section with stakeholders?
It's not just these groups, there were changes in DNF, Anaconda, Pulp and many other tools.

This link is useless. There's no modularity component. We should also prepopulate some fields for the reporters.
I'd document that due to lack of better options, users should report bugs on DNF and clearly indicate that it's a modularity bug:
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dnf&short_desc=[modularity]%20

This link is simply wrong, we're not watching the pagure PRs that much.
It's better to direct people to bugzilla (the same link as above):
https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dnf&short_desc=[modularity]%20

This whole section needs a massive rewrite.
I'd remove all of it and ask for filing bugs and contacting me (dmach) if they want to be involved in modularity.
I don't think it makes sense to come up with any rules or workflows now.
We should do it when there are real contributors outside Red Hat involved.
Using bugzilla as the collaboration and bug tracking tool should be good enough for now.

This whole page needs rewrite, but I think we should do it in the next iterations.
Nothing we should work on now, we will improve it after we process the survey results.

rebased onto 9c4ae04

3 years ago

Pull-Request has been merged by mcurlej

3 years ago