Fandom Developers Wiki
m (+cat)
No edit summary
(22 intermediate revisions by 10 users not shown)
Line 1: Line 1:
  +
<noinclude>{{LangSelect}}</noinclude><includeonly>{{Languages}}
The '''repository''' is the central place where the code that runs Wikia and related projects is stored. Versions are tracked by the repository and histories are preserved. Wikia currently uses the [http://subversion.tigris.org subversion] open source revision control system as its code repository.
+
The [[github:Wikia/app|Fandom codebase]] is stored in our '''GitHub repository'''. It is the central place where the code that runs Fandom and related projects is stored. Versions are tracked by the repository and histories are preserved. Fandom currently hosts its repositories on [[github:Wikia|GitHub]] using the [https://git-scm.org Git] version control system.
   
==Downloading from the repository==
+
== Downloading from the repository ==
*You need to have the subversion client installed. Please see the [http://subversion.tigris.org subversion] website for the appropriate package for your operating system.
+
* You need to have Git installed. Please see the [https://help.github.com/articles/set-up-git GitHub's setup page] for the appropriate information on getting started.
  +
* Navigate to [[github:Wikia/app|Fandom's application repository on GitHub]] for instructions on how to clone the project repo.
*Perform a checkout or export of the repository (The repository URL is http://svn.wikia-code.com/)
 
   
==Structure of the Repository==
+
== Finding the latest version of the Fandom codebase ==
  +
Deployed code is available in the tag view on GitHub. The most recent <code>release-*</code> branch should be the latest deployable code. The dev branch is the location of incoming changes, that should be released in the next week.
The Wikia repository differs from the usual branches, tags, and trunk layout of most subversion repositories. The structure is enumerated below:<br/>
 
*''/'' : ''root''
 
**'''lib''' : ''Libraries on which the codebase is dependent''
 
**'''utils''' : ''Utility scripts, used for manipulating the codebase or data''
 
**'''vendor''' : ''Unmodified vendor libraries (mirrors of other codebases)''
 
**'''wikia''' : ''The Wikia Codebase (extensions, customized mediawiki codebase, and extensions)''
 
***'''branches''' : ''Various purpose modified versions of the main Wikia codebase''
 
***'''releases''' : ''Main development areas for the Wikia Codebase''
 
   
  +
== Branches ==
==Finding the latest version of the Wikia codebase==
 
  +
We use branches to maintain and manage our code:
Deployed code is located under the ''/wikia/releases'' directory of the repository. The format for the latest development release is YYYYMM.{Week number} (Example: 200807.4). With some exceptions the typical production release is the same as the development release with a decremented week number.
 
  +
; <code>dev</code>
  +
: contains the most current version of the code
  +
; <code>release-*</code>
  +
: contains snapshots of the development branch for release
  +
; <code>PROJECT-NUMBER</code>
  +
: contains per ticket copies of the development branch with changes for a specific ticket (normally a bug fix or feature implementation) in the format where PROJECT represents the project the ticket relates to, and NUMBER represents the number of the ticket in the project's queue. These branches are then merged back into the development branch once code review has been completed.
   
  +
== File layout ==
==Finding your way around the codebase==
 
  +
This section details the organization of our <code>[[github:Wikia/app/tree/dev|dev]]</code> branch. Paths are relative to <code>dev</code> root. Everything that is not listed here comes from MediaWiki core (note: this list might still be incomplete).
If you're looking for a specific extension, see the page for the extension for the path of the active codebase. The page for the extension may be found by perusing the [[List of Wikia Extensions]]. Extensions maintained on core (at svn.wikimedia.org) should be altered there and an upgrade request sent to community@wikia.com.
 
  +
; <code>[[github:Wikia/app/tree/dev/extensions/wikia/|extensions/wikia/]]</code>
 
  +
: Most Wikia features, packaged as stand-alone extensions
[[Category:Guides]]
 
  +
; <code>[[github:Wikia/app/tree/dev/includes/wikia/|includes/wikia/]]</code>
  +
: Dependencies, services and helper classes used in different places in the code
  +
; <code>[[github:Wikia/app/tree/dev/maintenance/wikia/|maintenance/wikia/]]</code>
  +
: Maintenance scripts, some DB schemas and misc. scripts
 
[[Category:Guides]]</includeonly>

Revision as of 15:48, 16 June 2019

The Fandom codebase is stored in our GitHub repository. It is the central place where the code that runs Fandom and related projects is stored. Versions are tracked by the repository and histories are preserved. Fandom currently hosts its repositories on GitHub using the Git version control system.

Downloading from the repository

Finding the latest version of the Fandom codebase

Deployed code is available in the tag view on GitHub. The most recent release-* branch should be the latest deployable code. The dev branch is the location of incoming changes, that should be released in the next week.

Branches

We use branches to maintain and manage our code:

dev
contains the most current version of the code
release-*
contains snapshots of the development branch for release
PROJECT-NUMBER
contains per ticket copies of the development branch with changes for a specific ticket (normally a bug fix or feature implementation) in the format where PROJECT represents the project the ticket relates to, and NUMBER represents the number of the ticket in the project's queue. These branches are then merged back into the development branch once code review has been completed.

File layout

This section details the organization of our dev branch. Paths are relative to dev root. Everything that is not listed here comes from MediaWiki core (note: this list might still be incomplete).

extensions/wikia/
Most Wikia features, packaged as stand-alone extensions
includes/wikia/
Dependencies, services and helper classes used in different places in the code
maintenance/wikia/
Maintenance scripts, some DB schemas and misc. scripts
Text above can be found here (edit)