Project:Wiki/Development

This space is Article description::a landing page for development and maintenance of wiki 'features' added by the Gentoo wiki project. These include front page news items using the News template, wiki-wide templates such as Developer, Project, News, GenericCmd (including sub-templates RootCmd, Cmd),etc.) and forms such as Form:Developer and Form:Project.

Workflows
Each of the following subsections include wiki maintainer workflows. Following these workflows should help maintainers not miss any steps necessary to improve the existing 'infrastructure' facilitated by wiki admins for the Gentoo community.

Main page wiki news items
Main page news items utilize the protect News template. Review the template parameters before proceeding.

Workflow processes:


 * 1) Write up news item and place on the Main Page copy/paste it to the top of Gentoo_Wiki:News.
 * 2) On the Main Page Generally the latest 3 news items are visible...
 * 3) * Any more than news entries 3 and the page columns start to look unbalanced, so remove the oldest news entry so that only 3 are listed.

Developer and project 'profile' changes
Developer 'profiles' on the wiki consist of a wiki form combined with a developer template. The process workflow of modifying the existing template :


 * 1) Create new property relevant type (URL / Text / etc.).
 * 2) Modify Developer/sandbox to accept new parameter(s).
 * 3) * It is important to note that this test page will need to be edited via the Edit source link directly. The form edit will not work properly. This is expected.
 * 4) * Be sure to tag the data as a property for future queries.
 * 5) * Test via the Developer profile test page.
 * 6) * If it looks good, then proceed, if not, then continue development iteration.
 * 7) Once it works as expected, then modify the Developer to mirror the changes made in the Developer/sandbox template.
 * 8) Modify Form:Developer to accept new parameter(s), etc.
 * 9) * Test via the Developer profile test page.
 * 10) * Use this page to test changes made to Developer and Form:Developer.
 * 11) Publish a news announcement with improvement on the Main Page and consider sending a message to the wiki mailing list
 * 12) * If the change is big enough a news item could be written for www.g.o, however doing so has not been necessary in the past.

Special considerations
The goal of setting Properties (an extension provided by Symantec MediaWiki) in the Developer and Project templates is for querying the pages for data. They enable the possibility for exporting data to export to www.g.o and potentially other *.g.o sites in the future.

Queries can be also be made using wiki "magic word" which are built-in to MediaWiki:


 *  active users.
 *  articles (number inflated by translations).
 *  pages (number inflated by translations).

CSS, JavaScript, and wiki templates
When extending and/or improving wiki templates, try to use CSS for text formatting whenever possible. Some of our users run NoScript browser extension, which blocks JavaScript. Adding new JavaScript libraries also requires infrastructure access, therefore CSS styling is the preferred styling method.

That stated, all web assets should be hosted at the appropriate Gentoo owned infrastructure locations, such as assets.g.o or the equivalent.

Testing
This section details testing large, site wide changes. This includes new CSS

wikitest.g.o
The Gentoo wiki team has a separate wiki for test purposes available at https://wikitest.gentoo.org. Broad changes that affect the wiki at large should be thoroughly tested in this environment before deploying to wiki.g.o. This is a publicly visible website, so members of the community can create accounts and perform testing as well.

TODO

 * 1) Write up instructions for syncing the wiki.g.o production database and extensions to wikitest.g.o. Perhaps  could help write this section.
 * 2) Write section on setting up a local test wiki instance for infra developers using Docker.