Difference between revisions of "Free Software Directory:Backlog Admin Group"

From Free Software Directory
Jump to: navigation, search
(Added ==Members==)
(David Hedlund approved to add myself in the BAG)
 
(136 intermediate revisions by 6 users not shown)
Line 1: Line 1:
The Backlog Admin Group is a dedicated group started by [[User:David_Hedlund|David Hedlund]] to work on our [[Free_Software_Directory:Backlog|Backlog]].
+
<onlyinclude>The '''Backlog Admin Group''' ('''BAG''') is a group dedicated to work on client-side technical issues of our [[Free_Software_Directory:Backlog|Backlog]].</onlyinclude>
  
==Members==
+
{| class="wikitable sortable" border="1"
* '''Team Captain''': [[User:David_Hedlund|David Hedlund]] (Sweden/Umeao, UTC +1)
+
|-
* '''Participant''': [[User:Adfeno|Adfeno]] (America/Sao_Paulo, UTC -2)
+
! colspan="3" | Group info
* '''Participant''': [[User:Saper|Saper]] (proposed admin)
+
! colspan="4" | User info
 +
|-
 +
! Administrator
 +
! Role
 +
! Reference
 +
! Real name
 +
! [[Template:Participate text|libera.chat nick]]
 +
! Time zone
 +
! Title
 +
|-
 +
! [[User:Adfeno|Adfeno]]
 +
| Member
 +
|
 +
| Adonay Felipe Nogueira
 +
| adfeno
 +
| America/Sao_Paulo
 +
|
 +
|-
 +
! [[User:Andi89gi|Andi89gi]]
 +
| Member
 +
|
 +
| Andreas Artz
 +
| andi89gi
 +
| Europe/Wettenberg
 +
|
 +
|-
 +
! [[User:David Hedlund|David_Hedlund]]
 +
| Team captain
 +
|
 +
| David Hedlund
 +
| David_Hedlund
 +
| Europe/Stockholm
 +
|
 +
|-
 +
! [[User:Mmcmahon|Mmcmahon]]
 +
| Server administrator (see [[#Server upgrade logs|logs]])
 +
|
 +
| Michael McMahon
 +
| thomzane
 +
| America/New_York
 +
| [https://www.fsf.org/about/staff-and-board#michael FSF Web Developer]
 +
|-
 +
! [[User:Saper|Saper]]
 +
| Member
 +
|
 +
| Marcin Cieślak
 +
| saper
 +
| Europe/Warsaw
 +
|
 +
|-
 +
! [[User:Noisytoot|Noisytoot]]
 +
| Member
 +
|
 +
| Ron Nazarov
 +
| Noisytoot
 +
| Europe/London
 +
|
 +
|-
 +
! [[User:Panos_Alevropoulos|Panos Alevropoulos]]
 +
| Member
 +
|
 +
| Panos Alevropoulos
 +
| panosalevro
 +
| Europe/Athens
 +
| Lawyer
 +
|}
  
==Tools==
+
For internal meetings, the column about <code>Time zone</code> from the above table can be used to display what would be the members' local time when the meeting start, given  this example: <code>TZ="MEMBER_TIME_ZONE" date --date='TZ="America/New_York" 12:00 this Fri'</code>.
* [[Sandbox]] -- for a software/entry
+
 
* [[Free_Software_Directory:Sandbox]] -- for a page which isn't an entry
+
==Server upgrade logs==
 +
{| class="wikitable sortable" border="1"
 +
|-
 +
! MediaWiki
 +
! Date
 +
! Extensions
 +
! Date
 +
! Modules
 +
! Date
 +
|-
 +
| [Version]
 +
| [Date]
 +
| Only foo, and bar
 +
| [Date]
 +
| All modules (except...)
 +
| [Date]
 +
|-
 +
| [Version]
 +
| [Date]
 +
| All extension
 +
| [Date]
 +
| All modules
 +
| [Date]
 +
|}
 +
 
 +
Example policy:
 +
* 2023 and later: upgrade MediaWiki, all MediaWiki modules, and all MediaWiki extensions, the final quarter each year. This could be automated with a script.
 +
 
 +
== Pages ==
 +
{{Special:PrefixIndex/Free Software Directory:Backlog Admin Group/|stripprefix=yes}}
 +
 
 +
== We need more members ==
 +
People at [irc://chat.freenode.net/#mediawiki Freenode#mediawiki] and [irc://chat.freenode.net/#semantic-mediawiki Freenode#semantic-mediawiki] should be skilled in MediaWiki. We could gently ask if someone in those IRC channels wants to candidate to be a member of our team so we can solve more complex tasks in our [[Free_Software_Directory:Backlog_active|Backlog]] faster.
 +
:Example of a generic participation request:
 +
::Hi <i>$firstName</i>,<br><br>I am an <i>$senderRole</i> of the Free Software Directory (FSD: <https://$currentDirectoryDomain/>), an ever-growing and user-editable web catalog of free software. We are searching for free software enthusiasts who are willing to dedicate their time and skills into volunteering for our project, with the ultimate aim of promoting free software and assisting end users. Your help is needed to translate or create the pages and/or, if you have computer science expertise, in verifying the existing pages and improving the functionalities of the FSD's infrastructure.<br>We await for your contributions during the weekly IRC meetings of the Free Software Foundation, don't miss out! (guide: <https://$currentDirectoryDomain/wiki/Free_Software_Directory:Participate>)<br><br>Best regards,<br><i>%senderName</i>
 +
 
 +
== Membership policy ==
 +
 
 +
* The Backlog Admin Group only accept volunteers with [[Special:ListUsers/sysop|Administrator]] privileges.
 +
 
 +
==Routine work==
 +
* Check entries that not yet have been marked with "Runs on: GNU/Linux" (example: https://directory.fsf.org/wiki?title=Python&diff=86049&oldid=86048)
 +
* Merge ideas and tasks from the directory-discuss mailing to the Directory. Lots of people have good ideas how to improve the Directory but often don't remember to add something about it in the Directory (or don't even think about it), or don't know where they should add it in the Directory.
 +
 
 +
== Schedule ==
 +
 
 +
* We'll schedule meetings every year or so to actually operate in group activity.
 +
 
 +
== Guidelines ==
 +
 
 +
* Specially when doing layouts and designs, pay attention to [[FSD:Website guidelines]].
 +
 
 +
== Testing instance ==
 +
 
 +
During David's internship: The BAG members got full access to a fresh copy of the main server to investigate setting files etc:
 +
* Browser: https://directory2p.fsf.org/wiki/Main_Page
 +
* SSH: root@directory2p.fsf.org
 +
 
 +
The FSF will consider if we will keep it after David's internship.
 +
 
 +
I think we should keep these permissions for two reasons 1) the FSF will get gratis sysadmin work 2) the members in BAG will learn to work with the backend. For the moment only saper is a skilled MW admin but other group members would like learn how to maintain MW.
 +
 
 +
===Why it's needed===
 +
The Backlog Admin Group once had access to that server for the purpose of
 +
testing and implementing changes on pages with a high transclusion
 +
(read: reuse) count (this includes templates). This was done so that a
 +
potential breaking change on the development server would not negatively
 +
impact the main instance. For the surface of the complexity, go to ([https://directory.fsf.org/wiki/Special:ReplaceText Special:ReplaceText])
 +
again, but look for the sections afterward which talk about form editing.
 +
 
 +
Back when I had more time to participate on the meetings, I saw that it
 +
was very helpful to have that instance running, specially since many of
 +
the BAG members were not familiar with administration of Semantic
 +
MediaWiki and MediaWiki in general. On top of that, the fact that both
 +
of these are actually websites full of server-side processing along with
 +
some client-side JavaScript, for more than 15,000 pages, makes
 +
preventing stalls/overloads very difficult, the same can be said to
 +
setup a local testing instance for those not skilled on setting up a server.
 +
 
 +
Back then, many contributors were comfortable using tools such as a text
 +
editor, a web browser (for testing stuff using dummy/sandbox wiki pages
 +
on the FSD), and others had average skill on using other tools.
 +
 
 +
Before we had the development instance, an attempt was made to use
 +
[[Special:ReplaceText]] ([https://directory.fsf.org/wiki/Special:ReplaceText Special:ReplaceText]) to make the FSD follow the SPDX, so to
 +
allow the SPDX Group (that is, the FSD project team of that name), to
 +
work on the FSD, but that attempt caused a massive MediaWiki job queue
 +
([https://directory.fsf.org/wiki?title=Free_Software_Directory:Backlog_active&oldid=88496#Replace_License_text_in_program_entries ref]).
 +
 
 +
=== Alternative ===
 +
 
 +
See [[#Editing multiple pages]].
 +
 
 +
== Testing pages in the main instance ==
 +
 
 +
See the [[:Category:Test|test category]].
 +
 
 +
== How to modify [[Form:Entry]] ==
 +
 
 +
First read the [[FSD:Hack|hacking section]]. After this pick an aspect to modify.
 +
 
 +
If you don't know the property name that you want to work on, go to [[Form:Entry]] (or the <code>Submit a new entry</code> link in the navigation menu), then click on '''Edit'''. This is the form that appears for editing both new and existing entries, and to do so it uses many templates, all of which are responsible for actually setting the properties for each entry (look for lines with <code>{{{for template</code>). When done, [[Form:Entry]] automatically makes or updates a page which uses {{Tl|Entry}}, that is to be discussed later in this section.
 +
 
 +
Following along with the templates used by [[Form:Entry]], as an example, {{Tl|Project license}} sets [[Property:License]], and the form itself restricts it so that each usage [https://directory.fsf.org/wiki/Special:AllPages?from=&to=&namespace=502 must refer to an existing page in the License namespace]. In summary this is an example of a restriction/constraint defined inside the form.
 +
 
 +
When a page is being viewed by a visitor/guest, {{Tl|Entry}} calls {{Tl|Show}}, which in turn makes use of a series of other templates, all responsible for printing not only the properties set by {{Tl|Entry}} but by many other templates. On {{Tl|Show}}, look for <code>#ask:</code> and <code>#show:</code> Semantic MediaWiki queries.
 +
 
 +
Now that you know the property name, in order to edit it as well as its type and other constraints, look at <code>Property:<Property name></code>. For example, [[Property:License]], is of type {{#show: Property:License |?Has type }}. This is an example of a restriction/constraint set inside the property's page (visit [[Property:License]] and click '''Edit''').
 +
 
 +
Some times, form constraints conflict with ones on the property's page, so templates might need to make intermediary changes.
 +
 
 +
== Editing multiple pages ==
 +
 
 +
See [[FSD:Participate/Editing multiple pages]].
 +
 
 +
== How to add file upload to form edit ==
 +
 
 +
To do.
 +
 
 +
== Special pages not found in [[Special:SpecialPages]] ==
 +
 
 +
* [[MediaWiki:Common.css]]
 +
* [[MediaWiki:Common.js]]
 +
* [[MediaWiki:Deletereason-dropdown]]
 +
 
 +
== Special workarounds ==
 +
 
 +
=== Unlisted name spaces ===
 +
 
 +
* Move the page
 +
* Use (Main) as name space.
 +
* Set "NAMESPACE:<title>" in the title wpNewTitleMain text form, example: "Draft:Main page"
 +
 
 +
== External links ==
  
==External links==
 
 
* [https://www.mediawiki.org/wiki/Help:Magic_words Magic words]
 
* [https://www.mediawiki.org/wiki/Help:Magic_words Magic words]
 +
* [https://www.mediawiki.org/wiki/ResourceLoader/Core_modules MediaWiki's ResourceLoader Core Modules], which exposes many things that can be used for example, on [[MediaWiki:Common.js]] and similar JavaScript files.
 +
 +
[[Category:Project Team]]

Latest revision as of 14:39, 12 May 2023

The Backlog Admin Group (BAG) is a group dedicated to work on client-side technical issues of our Backlog.

Group info User info
Administrator Role Reference Real name libera.chat nick Time zone Title
Adfeno Member Adonay Felipe Nogueira adfeno America/Sao_Paulo
Andi89gi Member Andreas Artz andi89gi Europe/Wettenberg
David_Hedlund Team captain David Hedlund David_Hedlund Europe/Stockholm
Mmcmahon Server administrator (see logs) Michael McMahon thomzane America/New_York FSF Web Developer
Saper Member Marcin Cieślak saper Europe/Warsaw
Noisytoot Member Ron Nazarov Noisytoot Europe/London
Panos Alevropoulos Member Panos Alevropoulos panosalevro Europe/Athens Lawyer

For internal meetings, the column about Time zone from the above table can be used to display what would be the members' local time when the meeting start, given this example: TZ="MEMBER_TIME_ZONE" date --date='TZ="America/New_York" 12:00 this Fri'.

Server upgrade logs

MediaWiki Date Extensions Date Modules Date
[Version] [Date] Only foo, and bar [Date] All modules (except...) [Date]
[Version] [Date] All extension [Date] All modules [Date]

Example policy:

  • 2023 and later: upgrade MediaWiki, all MediaWiki modules, and all MediaWiki extensions, the final quarter each year. This could be automated with a script.

Pages

We need more members

People at Freenode#mediawiki and Freenode#semantic-mediawiki should be skilled in MediaWiki. We could gently ask if someone in those IRC channels wants to candidate to be a member of our team so we can solve more complex tasks in our Backlog faster.

Example of a generic participation request:
Hi $firstName,

I am an $senderRole of the Free Software Directory (FSD: <https://$currentDirectoryDomain/>), an ever-growing and user-editable web catalog of free software. We are searching for free software enthusiasts who are willing to dedicate their time and skills into volunteering for our project, with the ultimate aim of promoting free software and assisting end users. Your help is needed to translate or create the pages and/or, if you have computer science expertise, in verifying the existing pages and improving the functionalities of the FSD's infrastructure.
We await for your contributions during the weekly IRC meetings of the Free Software Foundation, don't miss out! (guide: <https://$currentDirectoryDomain/wiki/Free_Software_Directory:Participate>)

Best regards,
%senderName

Membership policy

  • The Backlog Admin Group only accept volunteers with Administrator privileges.

Routine work

  • Check entries that not yet have been marked with "Runs on: GNU/Linux" (example: https://directory.fsf.org/wiki?title=Python&diff=86049&oldid=86048)
  • Merge ideas and tasks from the directory-discuss mailing to the Directory. Lots of people have good ideas how to improve the Directory but often don't remember to add something about it in the Directory (or don't even think about it), or don't know where they should add it in the Directory.

Schedule

  • We'll schedule meetings every year or so to actually operate in group activity.

Guidelines

Testing instance

During David's internship: The BAG members got full access to a fresh copy of the main server to investigate setting files etc:

The FSF will consider if we will keep it after David's internship.

I think we should keep these permissions for two reasons 1) the FSF will get gratis sysadmin work 2) the members in BAG will learn to work with the backend. For the moment only saper is a skilled MW admin but other group members would like learn how to maintain MW.

Why it's needed

The Backlog Admin Group once had access to that server for the purpose of testing and implementing changes on pages with a high transclusion (read: reuse) count (this includes templates). This was done so that a potential breaking change on the development server would not negatively impact the main instance. For the surface of the complexity, go to (Special:ReplaceText) again, but look for the sections afterward which talk about form editing.

Back when I had more time to participate on the meetings, I saw that it was very helpful to have that instance running, specially since many of the BAG members were not familiar with administration of Semantic MediaWiki and MediaWiki in general. On top of that, the fact that both of these are actually websites full of server-side processing along with some client-side JavaScript, for more than 15,000 pages, makes preventing stalls/overloads very difficult, the same can be said to setup a local testing instance for those not skilled on setting up a server.

Back then, many contributors were comfortable using tools such as a text editor, a web browser (for testing stuff using dummy/sandbox wiki pages on the FSD), and others had average skill on using other tools.

Before we had the development instance, an attempt was made to use Special:ReplaceText (Special:ReplaceText) to make the FSD follow the SPDX, so to allow the SPDX Group (that is, the FSD project team of that name), to work on the FSD, but that attempt caused a massive MediaWiki job queue (ref).

Alternative

See #Editing multiple pages.

Testing pages in the main instance

See the test category.

How to modify Form:Entry

First read the hacking section. After this pick an aspect to modify.

If you don't know the property name that you want to work on, go to Form:Entry (or the Submit a new entry link in the navigation menu), then click on Edit. This is the form that appears for editing both new and existing entries, and to do so it uses many templates, all of which are responsible for actually setting the properties for each entry (look for lines with {{{for template). When done, Form:Entry automatically makes or updates a page which uses {{Entry}}, that is to be discussed later in this section.

Following along with the templates used by Form:Entry, as an example, {{Project license}} sets Property:License, and the form itself restricts it so that each usage must refer to an existing page in the License namespace. In summary this is an example of a restriction/constraint defined inside the form.

When a page is being viewed by a visitor/guest, {{Entry}} calls {{Show}}, which in turn makes use of a series of other templates, all responsible for printing not only the properties set by {{Entry}} but by many other templates. On {{Show}}, look for #ask: and #show: Semantic MediaWiki queries.

Now that you know the property name, in order to edit it as well as its type and other constraints, look at Property:<Property name>. For example, Property:License, is of type Page. This is an example of a restriction/constraint set inside the property's page (visit Property:License and click Edit).

Some times, form constraints conflict with ones on the property's page, so templates might need to make intermediary changes.

Editing multiple pages

See FSD:Participate/Editing multiple pages.

How to add file upload to form edit

To do.

Special pages not found in Special:SpecialPages

Special workarounds

Unlisted name spaces

  • Move the page
  • Use (Main) as name space.
  • Set "NAMESPACE:<title>" in the title wpNewTitleMain text form, example: "Draft:Main page"

External links



Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.