]> git.lyx.org Git - lyx.git/blob - lib/doc/Development.lyx
9a5512357b8c5aee07372071eee85890179910d8
[lyx.git] / lib / doc / Development.lyx
1 #LyX 2.1 created this file. For more info see http://www.lyx.org/
2 \lyxformat 474
3 \begin_document
4 \begin_header
5 \textclass scrbook
6 \options fleqn,bibliography=totoc,index=totoc,BCOR7.5mm,titlepage,captions=tableheading
7 \use_default_options false
8 \begin_modules
9 logicalmkup
10 theorems-ams
11 theorems-ams-extended
12 multicol
13 shapepar
14 \end_modules
15 \maintain_unincluded_children false
16 \begin_local_layout
17 Format 7
18 InsetLayout CharStyle:MenuItem
19 LyxType               charstyle
20 LabelString           menu
21 LatexType             command
22 LatexName             menuitem
23 Font
24 Family              Sans
25 EndFont
26 Preamble
27 \newcommand*{\menuitem}[1]{{\sffamily #1}}
28 EndPreamble
29 End
30 \end_local_layout
31 \language english
32 \language_package default
33 \inputencoding auto
34 \fontencoding global
35 \font_roman default
36 \font_sans default
37 \font_typewriter default
38 \font_math auto
39 \font_default_family default
40 \use_non_tex_fonts false
41 \font_sc false
42 \font_osf false
43 \font_sf_scale 100
44 \font_tt_scale 100
45 \graphics default
46 \default_output_format default
47 \output_sync 0
48 \bibtex_command default
49 \index_command default
50 \paperfontsize 12
51 \spacing single
52 \use_hyperref true
53 \pdf_title "LyX's Development manual"
54 \pdf_author "LyX Team"
55 \pdf_subject "LyX's development documentation"
56 \pdf_keywords "LyX, Documentation, Development"
57 \pdf_bookmarks true
58 \pdf_bookmarksnumbered true
59 \pdf_bookmarksopen true
60 \pdf_bookmarksopenlevel 1
61 \pdf_breaklinks false
62 \pdf_pdfborder false
63 \pdf_colorlinks true
64 \pdf_backref false
65 \pdf_pdfusetitle false
66 \pdf_quoted_options "linkcolor=black, citecolor=black, urlcolor=blue, filecolor=blue, pdfpagelayout=OneColumn, pdfnewwindow=true, pdfstartview=XYZ, plainpages=false"
67 \papersize a4paper
68 \use_geometry false
69 \use_package amsmath 1
70 \use_package amssymb 1
71 \use_package cancel 0
72 \use_package esint 0
73 \use_package mathdots 1
74 \use_package mathtools 0
75 \use_package mhchem 1
76 \use_package stackrel 0
77 \use_package stmaryrd 0
78 \use_package undertilde 0
79 \cite_engine basic
80 \cite_engine_type default
81 \biblio_style plain
82 \use_bibtopic false
83 \use_indices false
84 \paperorientation portrait
85 \suppress_date false
86 \justification true
87 \use_refstyle 0
88 \notefontcolor #0000ff
89 \index Index
90 \shortcut idx
91 \color #008000
92 \end_index
93 \secnumdepth 3
94 \tocdepth 3
95 \paragraph_separation indent
96 \paragraph_indentation default
97 \quotes_language english
98 \papercolumns 1
99 \papersides 2
100 \paperpagestyle headings
101 \tracking_changes false
102 \output_changes false
103 \html_math_output 0
104 \html_css_as_file 0
105 \html_be_strict true
106 \end_header
107
108 \begin_body
109
110 \begin_layout Title
111 Developing LyX
112 \end_layout
113
114 \begin_layout Subtitle
115 Version 2.2.x
116 \end_layout
117
118 \begin_layout Author
119 by the LyX Team
120 \begin_inset Foot
121 status collapsed
122
123 \begin_layout Plain Layout
124 \noindent
125 If you have comments or error corrections, please send them to the LyX Documenta
126 tion mailing list, 
127 \begin_inset Flex Code
128 status collapsed
129
130 \begin_layout Plain Layout
131 \noindent
132 <lyx-docs@lists.lyx.org>
133 \end_layout
134
135 \end_inset
136
137 .
138 \end_layout
139
140 \end_inset
141
142
143 \end_layout
144
145 \begin_layout Standard
146 \begin_inset CommandInset toc
147 LatexCommand tableofcontents
148
149 \end_inset
150
151
152 \end_layout
153
154 \begin_layout Chapter
155 Introduction
156 \end_layout
157
158 \begin_layout Standard
159 This manual documents some aspects of LyX development.
160  It is currently rather incomplete, but will hopefully be extended in the
161  future.
162  Meanwhile, additional information can be found in the 
163 \begin_inset Flex Code
164 status collapsed
165
166 \begin_layout Plain Layout
167 development
168 \end_layout
169
170 \end_inset
171
172  subfolder of the LyX source code distribution.
173  This document is not translated, since the development language of LyX
174  is english.
175  If you want to use LyX you don't need to read this manual.
176  However, if you want to learn more about how LyX is developed, or even
177  want to participate in LyX development, you may find some interesting informati
178 on.
179 \end_layout
180
181 \begin_layout Chapter
182 File formats
183 \end_layout
184
185 \begin_layout Standard
186 LyX uses several custom file formats for configuration files and documents.
187  This chapter contains some background concerning these file formats.
188  Several file formats are also described in detail in the regular user documenta
189 tion.
190 \end_layout
191
192 \begin_layout Section
193 File Format Numbers
194 \end_layout
195
196 \begin_layout Section
197 When is an update of the .lyx file format number needed?
198 \begin_inset CommandInset label
199 LatexCommand label
200 name "sec:When-is-an"
201
202 \end_inset
203
204
205 \end_layout
206
207 \begin_layout Standard
208 When you are working on a new feature you may ask yourself whether it needs
209  an update of the .lyx file format number.
210  Whether an update is needed or not is not always obvious.
211  Below you can find a list of reasons for file format updates with explanations:
212 \end_layout
213
214 \begin_layout Description
215 New
216 \begin_inset space ~
217 \end_inset
218
219 document
220 \begin_inset space ~
221 \end_inset
222
223 setting Whenever you introduce a new setting that is stored in the document
224  header, a file format update is needed.
225  This is also true if you add a new valid value to an existing setting,
226  e.
227 \begin_inset space \thinspace{}
228 \end_inset
229
230 g.
231 \begin_inset space \space{}
232 \end_inset
233
234 a new language that is stored in 
235 \begin_inset Flex Code
236 status collapsed
237
238 \begin_layout Plain Layout
239
240 \backslash
241 language
242 \end_layout
243
244 \end_inset
245
246 .
247 \end_layout
248
249 \begin_layout Description
250 Removed
251 \begin_inset space ~
252 \end_inset
253
254 document
255 \begin_inset space ~
256 \end_inset
257
258 setting If a certain setting becomes obsolete and gets removed, a file format
259  update is needed.
260 \end_layout
261
262 \begin_layout Description
263 New
264 \begin_inset space ~
265 \end_inset
266
267 inset Of course a new inset requires a file format update.
268 \end_layout
269
270 \begin_layout Description
271 New
272 \begin_inset space ~
273 \end_inset
274
275 style in any layout file or module shipped with LyX, or new shipped layout
276  file or module.
277  These requirements are currently under discussion and might change in the
278  future.
279 \end_layout
280
281 \begin_layout Description
282 Automatically
283 \begin_inset space ~
284 \end_inset
285
286 loaded
287 \begin_inset space ~
288 \end_inset
289
290 math
291 \begin_inset space ~
292 \end_inset
293
294 package Any new math package that is automatically loaded needs a file format
295  update.
296  The reason for this is that there is no true ERT inset for math formulas:
297  Each command is parsed, and if a user happens to defne a local command
298  with the same name as a command that triggers an automatic load of a package,
299  he needs to be able to switch off the automatic loading of that package.
300  This switch is stored by the 
301 \begin_inset Flex Code
302 status collapsed
303
304 \begin_layout Plain Layout
305 use_package
306 \end_layout
307
308 \end_inset
309
310  header setting.
311 \end_layout
312
313 \begin_layout Standard
314 If you are still unsure, please ask on the development list.
315 \end_layout
316
317 \begin_layout Section
318 How to update the file format number of .lyx files
319 \end_layout
320
321 \begin_layout Standard
322 Once you came to the conclusion that a file format update is needed you
323  should use the following procedure to perform the update:
324 \end_layout
325
326 \begin_layout Enumerate
327 Implement and test the new feature, including the reading and writing of
328  .lyx files.
329  Note that any file produced at this stage does not use a valid format,
330  so do not use this version of LyX for working on any important documents.
331 \end_layout
332
333 \begin_layout Enumerate
334 Describe the new format in 
335 \begin_inset Flex Code
336 status collapsed
337
338 \begin_layout Plain Layout
339 development/FORMAT
340 \end_layout
341
342 \end_inset
343
344 .
345 \end_layout
346
347 \begin_layout Enumerate
348 Update the LyX file format number in 
349 \begin_inset Flex Code
350 status collapsed
351
352 \begin_layout Plain Layout
353 src/version.h
354 \end_layout
355
356 \end_inset
357
358 .
359 \end_layout
360
361 \begin_layout Enumerate
362 Add an entry to both format lists (for conversion and reversion) in
363 \begin_inset Newline newline
364 \end_inset
365
366
367 \begin_inset Flex Code
368 status collapsed
369
370 \begin_layout Plain Layout
371 lib/lyx2lyx/lyx_2_2.py
372 \end_layout
373
374 \end_inset
375
376 .
377  Add a conversion routine if needed (e.
378 \begin_inset space \thinspace{}
379 \end_inset
380
381 g.
382 \begin_inset space \space{}
383 \end_inset
384
385 a new header setting always needs a conversion that adds the new setting,
386  a new document language does not need one).
387  Add a reversion routine if needed.
388  While the conversion routine is required to produce a document that is
389  equivalent to the old version, the requirements of the reversion are not
390  that strict.
391  If possible, try to produce a proper reversion, using ERT if needed, but
392  for some features this might be too complicated.
393  In this case, the minimum requirement of the reversion routine is that
394  it produces a valid document which can be read by an older LyX.
395  If absolutely needed, even data loss is allowed for the reversion.
396 \end_layout
397
398 \begin_layout Enumerate
399 Since tex2lyx has several implicit file format dependencies caused by sharing
400  code with LyX, updating the file format of .lyx files produced by tex2lyx
401  at the same time as updating the main .lyx file format is strongly recommended.
402  Therefore, a compiler warning will be issued if the LyX and tex2lyx .lyx
403  file format numbers differ.
404  In many cases the tex2lyx update requires only the first and last item
405  of the list below:
406 \end_layout
407
408 \begin_deeper
409 \begin_layout Enumerate
410 Update the tex2lyx file format number in 
411 \begin_inset Flex Code
412 status collapsed
413
414 \begin_layout Plain Layout
415 src/version.h
416 \end_layout
417
418 \end_inset
419
420 .
421 \end_layout
422
423 \begin_layout Enumerate
424 If the lyx2lyx conversion from the old to the new format is empty, or if
425  tex2lyx does not yet output the changed feature, you do not need any further
426  tex2lyx changes.
427  Otherwise, search for the changed feature in tex2lyx, and adjust the output
428  according to the lyx2lyx changes.
429 \end_layout
430
431 \begin_layout Enumerate
432 Update the tex2lyx test references as described in 
433 \begin_inset CommandInset ref
434 LatexCommand formatted
435 reference "sec:Updating-test-references"
436
437 \end_inset
438
439 .
440 \end_layout
441
442 \end_deeper
443 \begin_layout Enumerate
444 If you did not implement full tex2lyx support of the new feature, add a
445  line to 
446 \begin_inset Flex Code
447 status collapsed
448
449 \begin_layout Plain Layout
450 src/tex2lyx/TODO.txt
451 \end_layout
452
453 \end_inset
454
455  describing the missing bits.
456  Note that it is perfectly fine if you do not add full tex2lyx support for
457  a new feature: The updating recommendation above is only issued for the
458  syntax of the produced .lyx file.
459  It is no problem if some features supported by LyX are still output as
460  ERT by tex2lyx, since the problems in the past that resulted in the update
461  recommendation were related to mixed version syntax, not ERT.
462 \end_layout
463
464 \begin_layout Section
465 Backporting new styles to the stable version
466 \end_layout
467
468 \begin_layout Standard
469 Starting with the stable LyX 2.1 branch, there is a mechanism in place to
470  backport new styles to the stable version without the need to update the
471  file format.
472  The basic idea is that the new style definition is automatically copied
473  to the document preamble, so that it can even be used by older minor revisions
474  that did not yet include the style.
475  To backport a new style to the stable version, the following steps are
476  needed:
477 \end_layout
478
479 \begin_layout Enumerate
480 Add the line 
481 \begin_inset Flex Code
482 status collapsed
483
484 \begin_layout Plain Layout
485 ForceLocal -1
486 \end_layout
487
488 \end_inset
489
490  to the style definition in the development version.
491 \end_layout
492
493 \begin_layout Enumerate
494 Copy the style definition to the stable version, but use 
495 \begin_inset Flex Code
496 status collapsed
497
498 \begin_layout Plain Layout
499 ForceLocal 1
500 \end_layout
501
502 \end_inset
503
504  instead.
505  If needed adjust the format to the one used by the stable version (see
506  the customization manual for details of the layout file format).
507 \end_layout
508
509 \begin_layout Enumerate
510 For each update of the style in a later stable version, increase the argument
511  of 
512 \begin_inset Flex Code
513 status collapsed
514
515 \begin_layout Plain Layout
516 ForceLocal
517 \end_layout
518
519 \end_inset
520
521  by one (in the stable version, the development version should not be touched).
522 \end_layout
523
524 \begin_layout Standard
525 For details about the 
526 \begin_inset Flex Code
527 status collapsed
528
529 \begin_layout Plain Layout
530 ForceLocal
531 \end_layout
532
533 \end_inset
534
535  flag see the customization manual.
536  No 
537 \begin_inset Flex Code
538 status collapsed
539
540 \begin_layout Plain Layout
541 lyx2lyx
542 \end_layout
543
544 \end_inset
545
546  support is needed for backported styles: Since the style of the development
547  version has an infinite version number, it will always be used.
548  Furthermore, since its version number is less than one, the style will
549  not be written anymore to the document header for files saved by the new
550  version.
551 \end_layout
552
553 \begin_layout Chapter
554 Tests
555 \end_layout
556
557 \begin_layout Standard
558 Automated tests are an important tool to detect bugs and regressions in
559  software development.
560  Some projects like gcc even require each bug fix to be accompanied by a
561  test case for the automatic test suite, that would detect this bug.
562  Testing interactive features automatically is of course very hard, but
563  core functionality like document import and export can be tested quite
564  easily, and some tests of this kind exist.
565 \end_layout
566
567 \begin_layout Section
568 LyX tests
569 \end_layout
570
571 \begin_layout Standard
572 Some tests are located in the 
573 \begin_inset Flex Code
574 status collapsed
575
576 \begin_layout Plain Layout
577 development/autotests
578 \end_layout
579
580 \end_inset
581
582  subfolder of the LyX source code distribution.
583 \end_layout
584
585 \begin_layout Subsection
586 Running the tests
587 \end_layout
588
589 \begin_layout Standard
590 The LyX tests can be run by the commands 
591 \begin_inset Flex Code
592 status collapsed
593
594 \begin_layout Plain Layout
595 make test
596 \end_layout
597
598 \end_inset
599
600  (cmake) in the 
601 \begin_inset Flex Code
602 status collapsed
603
604 \begin_layout Plain Layout
605 autotests
606 \end_layout
607
608 \end_inset
609
610  subfolder of the build directory.
611 \begin_inset Note Note
612 status open
613
614 \begin_layout Plain Layout
615 FIXME: Is this possible with autotools?
616 \end_layout
617
618 \end_inset
619
620
621 \end_layout
622
623 \begin_layout Section
624 tex2lyx tests
625 \end_layout
626
627 \begin_layout Standard
628 The tex2lyx tests are located in the 
629 \begin_inset Flex Code
630 status collapsed
631
632 \begin_layout Plain Layout
633 src/tex2lyx/test
634 \end_layout
635
636 \end_inset
637
638  subfolder of the LyX source code distribution.
639  The actual testing is performed by the simple python script 
640 \begin_inset Flex Code
641 status collapsed
642
643 \begin_layout Plain Layout
644 src/tex2lyx/test/runtests.py
645 \end_layout
646
647 \end_inset
648
649 .
650  Each test consists of two files: 
651 \begin_inset Flex Code
652 status collapsed
653
654 \begin_layout Plain Layout
655 <test name>.tex
656 \end_layout
657
658 \end_inset
659
660  contains the LaTeX code that should be tested.
661  
662 \begin_inset Flex Code
663 status collapsed
664
665 \begin_layout Plain Layout
666 <test name>.lyx.lyx
667 \end_layout
668
669 \end_inset
670
671  contains the expected output of tex2lyx.
672  When a test is run, the actual produced output is compared with the stored
673  reference output.
674  The test passes if both are identical.
675  The test machinery is also able to generate a file 
676 \begin_inset Flex Code
677 status collapsed
678
679 \begin_layout Plain Layout
680 <test name>.lyx.tex
681 \end_layout
682
683 \end_inset
684
685  by exporting the produced .lyx file with LyX again.
686  This may be useful for roundtrip comparisons.
687 \end_layout
688
689 \begin_layout Subsection
690 Running the tests
691 \end_layout
692
693 \begin_layout Standard
694 The tex2lyx tests can be run by the commands 
695 \begin_inset Flex Code
696 status collapsed
697
698 \begin_layout Plain Layout
699 make test
700 \end_layout
701
702 \end_inset
703
704  (cmake) or 
705 \begin_inset Flex Code
706 status collapsed
707
708 \begin_layout Plain Layout
709 make alltests
710 \end_layout
711
712 \end_inset
713
714  (autotools) in the 
715 \begin_inset Flex Code
716 status collapsed
717
718 \begin_layout Plain Layout
719 src/tex2lyx
720 \end_layout
721
722 \end_inset
723
724  subfolder of the build directory.
725  If a test fails, the differences between the expected and actual results
726  are output in unified diff format.
727 \end_layout
728
729 \begin_layout Subsection
730 Updating test references
731 \begin_inset CommandInset label
732 LatexCommand label
733 name "sec:Updating-test-references"
734
735 \end_inset
736
737
738 \end_layout
739
740 \begin_layout Standard
741 In some cases a changed tex2lyx output is not a test failure, but wanted,
742  e.
743 \begin_inset space \thinspace{}
744 \end_inset
745
746 g.
747 \begin_inset space \space{}
748 \end_inset
749
750 if a tex2lyx bug was fixed, or a new feature was added.
751  In these cases the stored references need to be updated.
752  To do so if using autotools, call 
753 \begin_inset Flex Code
754 status collapsed
755
756 \begin_layout Plain Layout
757 make updatetests
758 \end_layout
759
760 \end_inset
761
762  in the 
763 \begin_inset Flex Code
764 status collapsed
765
766 \begin_layout Plain Layout
767 src/tex2lyx
768 \end_layout
769
770 \end_inset
771
772  subdirectory of the build directory.
773  If instead using CMake, call 
774 \begin_inset Flex Code
775 status collapsed
776
777 \begin_layout Plain Layout
778 make updatetex2lyxtests
779 \end_layout
780
781 \end_inset
782
783  in the build directory or in the 
784 \begin_inset Flex Code
785 status collapsed
786
787 \begin_layout Plain Layout
788 src/tex2lyx/test
789 \end_layout
790
791 \end_inset
792
793  subdirectory of the build directory
794 \begin_inset Foot
795 status collapsed
796
797 \begin_layout Plain Layout
798 Note that this is a case where a make target in the build directory can
799  affect the source directory, which might not be advisable.
800 \end_layout
801
802 \end_inset
803
804 .
805  For convenience, these commands also produce re-exported roundtrip .lyx.tex
806  files.
807  Please examine the changed output carefully before committing the changed
808  files to the repository: Since the test machinery does not do a roundtrip
809  test .tex 
810 \begin_inset Formula $\Rightarrow$
811 \end_inset
812
813  .lyx 
814 \begin_inset Formula $\Rightarrow$
815 \end_inset
816
817  .tex, and does not compare the produced dvi or pdf output, it assumes that
818  the stored .lyx reference produces correct output if processed by LyX.
819  There is only one chance to detect wrong output: before committing a new
820  reference.
821  Once it is committed, it is quite difficult to verify whether it is correct.
822 \end_layout
823
824 \begin_layout Standard
825 Please 
826 \emph on
827 do not
828 \emph default
829  update the test references by opening them with LyX or directly running
830  lyx2lyx on them.
831  This would not work, since lyx2lyx and LyX produce slightly different files
832  regarding insignificant whitespace and line breaks.
833 \end_layout
834
835 \begin_layout Subsection
836 Adding a new test
837 \end_layout
838
839 \begin_layout Standard
840 In many cases tests for new features may be added to one of the existing
841  test files, but sometimes this is not possible or not wanted.
842  Then a new test file needs to be added:
843 \end_layout
844
845 \begin_layout Enumerate
846 Create the new file 
847 \begin_inset Flex Code
848 status collapsed
849
850 \begin_layout Plain Layout
851 src/tex2lyx/test/<test name>.tex
852 \end_layout
853
854 \end_inset
855
856  and run tex2lyx in roundtrip mode to produce the file 
857 \begin_inset Flex Code
858 status collapsed
859
860 \begin_layout Plain Layout
861 src/tex2lyx/test/<test name>.lyx.lyx
862 \end_layout
863
864 \end_inset
865
866 .
867  This file will be the new reference.
868 \end_layout
869
870 \begin_layout Enumerate
871 Once you confirmed that the tex2lyx output is correct, add the new files
872  to the corresponding lists in 
873 \begin_inset Flex Code
874 status collapsed
875
876 \begin_layout Plain Layout
877 src/tex2lyx/test/runtests.py
878 \end_layout
879
880 \end_inset
881
882
883 \begin_inset Flex Code
884 status collapsed
885
886 \begin_layout Plain Layout
887 src/tex2lyx/Makefile.am
888 \end_layout
889
890 \end_inset
891
892  and 
893 \begin_inset Flex Code
894 status collapsed
895
896 \begin_layout Plain Layout
897 src/tex2lyx/test/CMakeLists.txt
898 \end_layout
899
900 \end_inset
901
902 .
903 \end_layout
904
905 \begin_layout Enumerate
906 Commit the changes to the repository, or send a patch to the development
907  list and ask for committing if you do not have commit rights.
908 \end_layout
909
910 \begin_layout Chapter
911 Development policies
912 \end_layout
913
914 \begin_layout Standard
915 This chapter lists some guidelines that should be followed.
916  This list is not complete, and many guidelines are in separate chapters,
917  such as 
918 \begin_inset Quotes eld
919 \end_inset
920
921 When is an update of the .lyx file format number needed?
922 \begin_inset Quotes erd
923 \end_inset
924
925  in Section 
926 \begin_inset CommandInset ref
927 LatexCommand ref
928 reference "sec:When-is-an"
929
930 \end_inset
931
932 .
933 \end_layout
934
935 \begin_layout Section
936 When to set a fixed milestone?
937 \end_layout
938
939 \begin_layout Standard
940 Only set a fixed milestone (like 2.1.4 or 2.2.0) if at least one of the following
941  holds:
942 \end_layout
943
944 \begin_layout Enumerate
945 Somebody is actively working on a fix.
946 \end_layout
947
948 \begin_layout Enumerate
949 The bug is so severe that it would block the release if it is not fixed.
950 \end_layout
951
952 \begin_layout Standard
953 If a bug is important, but nobody is working on it, and it is no showstopper,
954  use a milestone like 2.1.x or 2.2.x.
955  For all other bugs, do not set a milestone at all.
956 \end_layout
957
958 \begin_layout Section
959 Can we add rc entries in stable branch?
960 \end_layout
961
962 \begin_layout Standard
963 No.
964  We are supposed to increase the prefs2prefs version number with such things.
965 \end_layout
966
967 \begin_layout Chapter
968 Documentation policies
969 \end_layout
970
971 \begin_layout Standard
972 The main documentation consists of these files:
973 \end_layout
974
975 \begin_layout Description
976 splash.lyx it is the first file you see after an installation.
977  We assume that a new user sees this.
978  It is therefore designed to be as simple as possible.
979  Therefore please don't add any new formatting, only fix typos etc.
980  Splash.lyx is up to date for LyX 2.1.x, currently maintained by Uwe Stöhr.
981 \end_layout
982
983 \begin_layout Description
984 Intro.lyx This is the manual new users will read to learn LyX.
985  It therefore uses a limited set of formatting.
986  For example a standard document class.
987  Since new users will first learn about the formatting possibilities of
988  LyX please keep this file that simple.
989  Intro.lyx is up to date for LyX 2.1.x, currently maintained by Uwe Stöhr.
990 \end_layout
991
992 \begin_layout Description
993 Tutorial.lyx our tutorial.
994  It must be always up to date.
995  Normally there is nothing to add since we don't want to overwhelm new users
996  with too much details.
997  The will learn these details while using LyX and we have special manuals.
998  Tutorial.lyx is up to date for LyX 2.1.x, currently maintained by Uwe Stöhr.
999 \end_layout
1000
1001 \begin_layout Description
1002 UserGuide.lyx our main user guide.
1003  It covers a mixture of basic and detailed information.
1004  Some information is also in the Math and EmbeddedObjects manual so that
1005  the UserGuide refers to these files.
1006  UserGuide.lyx is up to date for LyX 2.1.x, currently maintained by Uwe Stöhr.
1007 \end_layout
1008
1009 \begin_layout Description
1010 EmbeddedObjects.lyx a special manual to explain things like tables floats
1011  boxes etc.
1012  in all detail.
1013  EmbeddedObjects.lyx is up to date for LyX 2.1.x, currently maintained by Uwe
1014  Stöhr.
1015 \end_layout
1016
1017 \begin_layout Description
1018 Math.lyx a special manual to explain everything regarding math in all detail.
1019  Math.lyx is up to date for LyX 2.1.x, currently maintained by Uwe Stöhr.
1020 \end_layout
1021
1022 \begin_layout Description
1023 Additional.lyx this manual covers information that would be too much detail
1024  for the UserGuide or would make the UserGuide uncompilable or only compilable
1025  when installing a lot of special LaTeX-packages.
1026  What should be in the UserGuide or better in Additional is a matter of
1027  taste.
1028  it is up to you to decide that.
1029  Additional.lyx is not completely up to date for LyX 2.1.x.
1030  Only chapter
1031 \begin_inset space ~
1032 \end_inset
1033
1034 8 is up to date and currently maintained by Uwe Stöhr.
1035  It certainly needs a rewrite and update.
1036  For example many info in chapter
1037 \begin_inset space ~
1038 \end_inset
1039
1040 2 and 3 are already covered by the UserGuide and/or the EmbeddedObjects
1041  manual.
1042 \end_layout
1043
1044 \begin_layout Description
1045 Customization.lyx this manual covers information how to customize LyX for
1046  certain output formats, operating systems, languages etc.
1047  It is currently completely out of date and needs a major rewrite and update.
1048  If you do this please assure that your information are given for all OSes
1049  and LaTeX distributions (meaning be as objective as possible).
1050 \end_layout
1051
1052 \begin_layout Standard
1053 There are only 4
1054 \begin_inset space ~
1055 \end_inset
1056
1057 rules in editing the docs:
1058 \end_layout
1059
1060 \begin_layout Enumerate
1061 If you are not the maintainer of a doc file or a chapter/section, you MUST
1062  use change tracking so that the maintainer could review your changes
1063 \end_layout
1064
1065 \begin_layout Enumerate
1066 Respect the formatting of the document.
1067  The different files use different formatting styles.
1068  That is OK and has historic reasons nobody fully know ;-).
1069  But it is important to be consistent within one file.
1070 \end_layout
1071
1072 \begin_layout Enumerate
1073 All changes you make to a file in one language MUST also go the file in
1074  the other actively maintained languages.
1075  Normally the maintainer does this for you, if you are the maintainer, you
1076  must do this by copying or changing the changed or added text to the other
1077  files so that the translators sees the blue underlined text and know what
1078  they have to translate and what was changed.
1079 \end_layout
1080
1081 \begin_layout Enumerate
1082 You MUST assure that the document is compilable as 
1083 \begin_inset Quotes eld
1084 \end_inset
1085
1086 PDF (pdflatex)
1087 \begin_inset Quotes erd
1088 \end_inset
1089
1090  after your changes.
1091 \end_layout
1092
1093 \end_body
1094 \end_document