Funtoo:Wikiverse/Project Pages

From Funtoo
< Funtoo:Wikiverse
Revision as of 20:47, March 1, 2022 by Drobbins (talk | contribs) (→‎What is Stored On A Project Page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Project pages are sets of pages on the Funtoo wiki under the Project Namespace which are used to organize Funtoo development efforts.

This page is here to get you acquainted with the entire Funtoo Project Page system and how it works. It consists of a MediaWiki namespace, a MediaWiki Page Form, database integration using the MediaWiki Cargo Extension written by Yaron Koren, and several MediaWiki templates.

Project Namespace

This section explains what the Project namespace is and how it works.

In MediaWiki terminology, a "namespace" is a special section of the wiki that is distinct (see this MediaWiki Namespace documentation for more information.) The "main" part of the wiki is in the Main namespace and you can find these pages at the following URLs: Regular Page

There is also a User namespace, which holds pages that can be used by individual users. This is your user page, which may not exist yet. When creating new content on the wiki, it's expected that you will use a subpage of your user page as its initial home.

MediaWiki also has a special namespace called the Project namespace. This namespace was added to MediaWiki to provide "meta-discussions related to the operation and development of the wiki". For Funtoo, we use this namespace not just for wiki development but also for content related to Funtoo Linux projects.

Project namespace URLs are special, because you can get to them two ways:

The URLs above are equivalent. This is because the Project namespace has a special property where it has two names -- one is the literal Project which is hard-coded into all MediaWiki implementations. The other URL varies from wiki to wiki, and is determined based on the wiki name -- specifically the $wgSitename configuration parameter. Since the Funtoo wiki has $wgSiteName set to "Funtoo", this is also an alternate name for the Project namespace on the Funtoo wiki -- Funtoo. In fact, if you go to the first URL displayed above, the wiki will redirect you to the one with the Funtoo: prefix since they are considered equivalent.


OK, now that we've covered the Project namespace, let's give a brief overview of Project Pages. Project Pages are a Funtoo thing, which uses MediaWiki's Project namespace to organize Funtoo development and other efforts. The idea is that each of these efforts has its own page which is used to organize the effort as well as offer a means for Funtoo users to be informed of project status as well as find ways to get more directly involved in specific Funtoo efforts.

One thing to keep in mind about Project pages is that we are constantly adding new stuff -- not only new projects, but also new functionality to the project pages. So this information will likely change often and you are encouraged to come back here often.

Form and Template Basics

Project pages use a page form located at Form:Project, which can be used to create a new Project. This "Form" is part of the Page Forms MediaWiki extension and provides a "user interface" to populate your new Project page with several templates that are necessary for the Project page to function. The primary template to enable Project page functionality is Template:Project. This template defines various project metadata, and also handles storing this metadata in a database using the Cargo MediaWiki extension. Therefore, your project page must contain this template.


Each Project Page must use the Template:Project template, which is best created using Form:Project.

What is Stored On A Project Page

A Project Page can hold the following metadata, via the Template:Project template. You can also view shorter descriptions of each of these fields by going to Form:Project and using "Create or Edit" to view/edit a Project Page (but don't save your results).

Here's what we can define:

Leads, Members, Contributors
These are people who are involved in the project. Leads run the project, and members participate in the project in some way. Contributors may or may not be active but have made active contributions to the project. I recommend linking to User pages on the wiki when possible (use your wiki username -- if you've created your user page, then your username will link to this page rather than be static text.)
This shows up in an infobox on the left, and is also stored in the Cargo database as the official project description.
Category and Keywords
Category is a general category of the type of project, and keywords allow the definition of free-form text strings to tag projects with certain keyword values. This is not currently used.
Subpages and Related Pages
Subpages are pages that will appear at MyProjectPage/Foo, but you only type in the Foo part into this field. Any subpages listed here will appear in an infobox on the right side for easy access. Related Pages works similarly except that you must specify the full wiki path to the page. Related pages will show up in their own infobox.
This is a boolean flag that can be toggled on if you have enabled page translation. Typically this is left off.
Components are used to define the scope of a project and are offered as an organizational tool. Whenever we define a project, we want to understand what is fully in scope of the project, what is only partially in scope, and what is not in scope. Use the support setting for each component to define the level of support for each element. This allows you to track what things you fully support, partially support, and definitely are not supporting in the project scope. Components are database-enabled.
Updates are used to define status information for the project. These status updates are each tied to a date, and are database-enabled. This allows us to display the most recent status updates for all projects on the main page of the wiki. You can also add a {{Project/UpdateList}} template to your 'free form' text area (typically under a == Status Updates == heading ) to display these chronological updates in a handy list.

Due to current memcached caching of Funtoo Wiki pages, you will likely need to go to More -> Purge Cache after adding new Updates to your project page to get them to display. This is due to asynchronous way the DB gets updated and queried -- the page gets cached just before the DB update is "live".

Free text
The free text area defines "the rest" of your wikitext. If you prefer, you can edit this area using the Edit button after saving the page if you need a larger workspace.