Free Software Directory:Hack
This is a work in progress. We'll be adding more info as we go, but this should be a good start if you want to hack on the Free Software Directory.
Create a user account and login so you can follow along with this guide. To learn about Semantic MediaWiki, first you need to cover some basics about MediaWiki. Start out learning from these links:
The Free Software Directory makes heavy use of The Semantic MediaWiki extension, so in order to help with development, take a look at the following introduction on SMW's site: Introduction to SMW. For a briefer introduction, you could start by reading up on the following topics:
The Free Software Directory
A few details about how the directory is organized:
- Form:Entry is used to conveniently edit values that are stored on a program's page. Those values are passed through Template:Entry. Within Template:Entry, all of the displaying of values is performed by Template:Show, which queries the semantic values that are set by the rest of Template:Entry.
- all logged-in users have the ability to edit pages in the User: and Review namespaces
- See Category:Documentation, particularly FSD:Workflow.
Think before you edit:
- do not casually edit Templates that are in wide use, especially by every program in the directory. This will create a huge work queue that will take hours to complete, slowing down the site. If a mistake gets made, it could render the site broken until the introduced bugs get fixed (after another long wait to update all the pages.) We have a development site (directory-dev.fsf.org) that we use to test systemic changes before implementing them.
The idea behind the Free Software Directory relaunch is that we would like a system where all users can submit changes and new entries, and where elevated users can implement those changes on the actual entries themselves.
We would also like the FSD to be more than just a directory of programs. We have different FSD:Features in mind that we would like to implement. One of those would be the ability for users to list which programs they use, either by tagging a program page itself, or by creating a queryable list of programs on user talk pages that would be displayed in any number of ways. If you have other ideas, we would be happy to hear about them and get your help in developing a number of ideas.