.. index:: Developing LFS ============== Developing LFS ============== This section describes how to develop LFS. .. warning:: This is only for development. Don't use this version in production. We might break the head, add stuff which need database migrations or introduce some security issues, etc. Creating a Development Environment =================================== There is an installer based on `zc.buildout `_, which should make the installation straightforward: #. $ git clone https://github.com/diefenbach/lfs-buildout-development.git #. $ cd lfs-buildout-development #. $ python bootstrap.py #. $ bin/buildout -v #. $ bin/django syncdb #. $ bin/django migrate #. $ bin/django lfs_init #. $ bin/django test lfs.core #. $ bin/django runserver #. Browse to http://localhost:8000 .. note:: You might want to fork LFS on `GitHub `_ and point to it within buildout.cfg first. Contributing Code to the Core ============================= If you consider to contribute code to LFS, please read the following statements first: #. First of all, you are very welcome! #. Generally, it would be great if you would discuss new stuff first. We are very reluctant to add new things. Every new feature should have a real live use case. Find us on `IRC `_ or the `LFS Google Group `_. #. Fork LFS `GitHub `_ and send us pull requests. #. Please make sure that you just add related code to your fork. This makes it easier to review and pull your code. #. The code must be put under a `permissive free software licenses `_ like BSD, otherwise we can't add it. For instance, code under the GPL or a other `copyleft software licenses `_ won't be added to the core. #. Python code must follow `PEP 8 `_. The maximum of 79 characters per line is the only exception. You may want to check your code with `pep8 `_. The following statement should run without complaints:: $ pep8 --repeat --ignore=E501 /path/to/lfs #. Every new feature must have unit tests and documentation. #. :doc:`All tests must pass `. Please check this with:: $ bin/django test lfs.core #. New features shouldn't make LFS slower. Please see :doc:`benchmarking`. #. Add yourself to `CREDITS.txt `_. Contributing Translations ========================= Please refer to :doc:`/misc/contributing_translations`.