Contributing to SMF From Online Manual

Jump to: navigation, search

Open Source SMF

SMF 2.0 and later versions are BSD licensed, SMF 2.1 is currently in development. SMF 2.1 development can be found on github. Anyone can contribute code to the project with a pull request to release-2.1 branch. It is also helpful to report issues that are found to github. It is not recommended to use 2.1 on a live forum as it is in heavy development and may have bugs.

How to install SMF from github

Download the zip from the github repository at (this link immediately starts the download of the most recent revision of the "release-2.1" branch that is the code intended to become SMF 2.1).

File structure of the repo

Once you have downloaded and extracted the package, you will find the following files:

 |- attachments
 |- avatars
 |- cache
 |- other
 |- Packages
 |- Smileys
 |- Sources
 |- Themes
 |- agreement.txt
 |- changelog.txt
 |- DCO.txt
 |- favicon.ico
 |- index.php
 |- SSI.php
 |- ssi_examples.php
 |- ssi_examples.shtml
 |- subscriptions.php

Missing files

Compared to a normal install package, you don't have some files, namely:

  • Settings.php
  • Settings_bak.php
  • install.php
  • install_2-1_mysql.sql
  • install_2-1_postgresql.sql

You can find these files in the directory other except for Settings_bak.php, so first thing enter the other directory and copy those files to the root directory. When this is done, make a copy of Settings.php and rename it to Settings_bak.php

Useless files

Delete the following files and directories since they are not necessary:

  • other
  • changelog.txt
  • DCO.txt


And that's all. You now have all that you need to properly install SMF. Move all that you have in the directory to your server (remote or local) and point your browser as usual.

Upgrade package

From the same starting zip, you can also obtain an upgrade package as the differences are minimal. Instead of copying the files specified in the #Missing files section, copy the following:

  • upgrade.php
  • upgrade_1-0.sql
  • upgrade_1-1.sql
  • upgrade_2-0_mysql.sql
  • upgrade_2-0_postgresql.sql
  • upgrade_2-1_mysql.sql
  • upgrade_2-1_postgresql.sql

All the other steps are exactly the same.