Navigate

· Home page

· Latest News

· Download Links

· Donations

· More About LyX

· LyX Graphical Tour

· Mailing Lists

· Tips & Tricks

· LyX Wiki

· Give Feedback

· Development News

· Developers' Web Site

    · Main Devel page

    · Roadmap / Tasks

    · How to use SVN

    · How to mirror us

    · Translation

    · I18n status

    · Stuff to read

· Alternate LyX Sites

· Site Map

 

Customize

· Short titles

· Top navigation bar

· Fewer images

Getting source code with Subversion

LyX mascot

Introduction

Subversion (SVN) allows multiple people to work on code development at one time. You can get a lot more information on Subversion and/or download the code from its home page. We strongly recommend that you read the documentation and the Subversion FAQ.

Modules

There are three active modules in the current Subversion repository:

lyx-devel
This is the new development and stable branch. The development will progress in branches and the main trunk will stay stable. All future source code development will be done in this repository.
www-user
This is the Subversion repository holding the user www pages. The exact same pages you will see when you visit the LyX Home Page. Kept in this repository for ease for updating.

While they are not in use anymore, these ones are kept for their historical interest:

lyx-tests
This repository contains various .lyx files that may be useful for testing purposes.
lyx-1_0_x
This is the old stable release branch. No more work is being done on this branch.
lyx
This is the old and unstable development branch, and is not in use anymore.
www-devel
This used to hold the developer www pages. The contents has been merged into subdirectory devel of www-user
lyxdoc
Documentation for LyX 1.3.x is kept here (in the BRANCH_1_3_X branch) and folded in to the doc directory before release. It is not used anymore for the main trunk, since the documentation has been moved in the lyx-devel module.

Trac source browser

Using SVN, you can download a whole module with just one command. If you want to look at just one SVN file, consider using Trac source browser. Trac is a tool that allows, among other things, for browsing an SVN repository and gives the possibility to browse diffs between arbitrary versions as well as reading log files and the like.

The Trac source browser for the LyX SVN repository is at the LyX home page. Most probably, though, you want to download a whole module. If so, read on.

Anonymous SVN login

From within the directory where you want to place your local copy of the sources, do:

svn co svn://svn.lyx.org/lyx/lyx-devel/trunk lyx-devel

This will make a directory lyx-devel and download lots of files into that directory. (A fresh copy will need about 150MB. However, depending on which frontends you are compiling, you will need a lot more space for the compiled version, up to 800MB).

Of course you can say svn co svn://svn.lyx.org/lyx/www-user/trunk www-user instead, depending on which module you'd like to download.

After the first download

If the code is updated, just cd to the lyx-devel directory and say:

svn update

This will magically download or patch only those files which have been changed or added, saving you (and the server) lots of time.

If you just want to check what's changed in your local copy as opposed to the repository, do:

svn status

If you want to check what's changed on the server, but not yet updated to your local copy, do:

svn status -u

Compiling the source

Just follow the directions in INSTALL, as if you had downloaded a tar file. For the stable module, this is pretty much just configure, make, and make install.

If you want to compile and run the development module, things are somewhat more complicated than for the release module. You're going to need automake, autoconf, and gettext, which can be downloaded from your favorite GNU ftp site. (Start at gnu.org to find a mirror.) Once you've installed all of that stuff, just run the autogen.sh script written by Allan Rae, which will do things in the right order, and then tell you to run configure and make.


Changing the source

We strongly support any creative impulses you may have. Bug fixes, documentation, and new features will always be looked at carefully, and will usually be accepted, with a number of exceptions. New features will rarely be accepted for the stable release version. Documentation which does not follow the requirements of the DocStyle document will not be accepted. Aside from that, though, we love getting new contributions!

If you'd like to make changes to LyX, it will make everyone's life easier if you change the latest SVN sources rather than the latest release. Here's a quick rundown of what you would do:

Write access via ssh

If you find yourself creating lots of patches that the LyX team incorporates into the code, you may be granted SVN access. In that case, your life becomes even easier. Instead of the above anonymous login, you can checkout the sources with

svn co svn+ssh://svn.lyx.org/lyx/lyx-devel/trunk lyx-devel

If the user name on your operating system differs from your svn login, do instead:

svn co svn+ssh://username@svn.lyx.org/lyx/lyx-devel/trunk lyx-devel

Then you just run a svn commit to check changes in to the Subversion tree, instead of creating a patch and mailing it in.

The LyX developers web site and the LyX Home Page are also under Subversion. They're probably not worth downloading unless you have write access, of course. They're both in the www-user module.

SVN Branches

The main development in LyX is done in SVN branches, this is done to ensure the stability of the main branch (HEAD). If you are interested in helping develop or test work on these branches, you can check out a copy with a command like:

svn co svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_5_X lyx-1.5.x
Branch NameMaintainerStatusComment
trunk JMatosunstableMain Branch
BRANCH_1_5_X JSpitzmstableStable 1.5 series branch

There are also some older obsolete branches:

Branch NameMaintainerStatusComment
BRANCH_1_4_X JMstableStable 1.4 series branch
BRANCH_1_3_X JMstableStable 1.3 series branch
BRANCH-1_2_X JMstableStable 1.2 series branch
BRANCH_1_1_6 JMstableStabilizing of 1.1.6
BRANCH_new_insets Lgbinitialmake the NEW_INSETS current
BRANCH_NATBIB Angusinitialadd support for natbib
BRANCH_GUII John LevonunstableOriginal branch for GUI independence work

CCP2000 logo

dante e.V. the German TeX User Group, sponsored the 7th International LyX Developers Meeting. Thanks to ANSOL for kindly hosting the meeting.


Valid XHTML 1.1! Valid CSS!

Webmaster: lyx-devel at lists dot lyx dot org

Page last updated on 2008-03-17 (year-month-day).