Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 111 lines (86 sloc) 3.101 kB
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
1 = Developers information
2
3 == Required software
4
5 The tests need the following software installed:
6
ff059ca @FooBarWidget Change some names for trademark compliance.
FooBarWidget authored
7 * All the usual Phusion Passenger dependencies.
56360e6 @FooBarWidget Continue refactoring the tests and test multiple Rails versions.
FooBarWidget authored
8 * Ruby on Rails 1.2.x
9 * Ruby on Rails 2.0.x
10 * Ruby on Rails 2.2.x
0fb563d @FooBarWidget Upgrade Rails stub apps to 2.3 for Ruby 1.9 compatibility.
FooBarWidget authored
11 * Ruby on Rails 2.3.x
0b26450 @FooBarWidget Improve RVM support.
FooBarWidget authored
12 * Ruby on Rails 3.0.x
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
13 * rspec >= 1.1.2
14 * mime-types >= 1.15
0b26450 @FooBarWidget Improve RVM support.
FooBarWidget authored
15 * sqlite3-ruby
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
16
17 The following software is optional:
18
a72b5b5 @FooBarWidget Add RCov support.
FooBarWidget authored
19 * RCov, for code coverage
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
20 * RDoc, for generating HTML Ruby API documentation
21 * Doxygen, for generating HTML C++ API documentation
22 * dot (part of Graphviz), for generating diagrams in HTML API documentation
23 * The font "Bitstream Vera Sans", used in the class diagrams. See http://www.gnome.org/fonts
24 * AsciiDoc >= 8.2.5, for converting various doc/*.txt documents to HTML
25
ff059ca @FooBarWidget Change some names for trademark compliance.
FooBarWidget authored
26 == Compiling Phusion Passenger
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
27
28 Run the following command to compile everything:
29
30 rake
31
aec2f85 @FooBarWidget Document directory structure.
FooBarWidget authored
32 == Directory structure
33
34 The most important directories are:
71d1513 @FooBarWidget Remove 'passenger' directory to 'phusion_passenger'.
FooBarWidget authored
35 [ lib/phusion_passenger ]
aec2f85 @FooBarWidget Document directory structure.
FooBarWidget authored
36 The source code for the spawn server, which is written in Ruby.
71d1513 @FooBarWidget Remove 'passenger' directory to 'phusion_passenger'.
FooBarWidget authored
37 [ ext/phusion_passenger ]
aec2f85 @FooBarWidget Document directory structure.
FooBarWidget authored
38 Native extensions for Ruby, used by the spawn server.
39 [ ext/apache2 ]
48e82bf @FooBarWidget Update the directories explanation in DEVELOPERS.TXT.
FooBarWidget authored
40 Apache 2-specific source code.
41 [ ext/nginx ]
42 Nginx-specific source code.
43 [ ext/common ]
44 Source code shared by the Apache and Nginx modules.
aec2f85 @FooBarWidget Document directory structure.
FooBarWidget authored
45 [ bin ]
46 Executables.
47 [ doc ]
48 Various documentation.
49 [ test ]
50 Unit tests and integration tests.
51 [ test/support ]
52 Support/utility code, used in the tests.
53 [ test/stub ]
54 Stub code, used in the tests.
55
56 Less important directories:
57 [ ext/boost ]
71d1513 @FooBarWidget Remove 'passenger' directory to 'phusion_passenger'.
FooBarWidget authored
58 A stripped-down and customized version of the Boost C++ library
59 (www.boost.org).
60 [ ext/oxt ]
61 The "OS eXtensions for boosT" library, which provides various important
62 functionality necessary for writing robust server software. It provides
63 things like support for interruptable system calls and portable backtraces
64 for C++. Boost was modified to make use of the functionality provided by OXT.
aec2f85 @FooBarWidget Document directory structure.
FooBarWidget authored
65 [ benchmark ]
66 Benchmark tools.
48e82bf @FooBarWidget Update the directories explanation in DEVELOPERS.TXT.
FooBarWidget authored
67 [ debian ]
68 Debian packaging files.
69 [ man ]
70 Man pages.
aec2f85 @FooBarWidget Document directory structure.
FooBarWidget authored
71 [ misc ]
72 Miscellaneous tools.
3bc0282 @FooBarWidget Rake tasks are now in 'build'.
FooBarWidget authored
73 [ build ]
74 Rake tasks used by the build system.
aec2f85 @FooBarWidget Document directory structure.
FooBarWidget authored
75
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
76 == Tests
77
78 Run all tests:
79
0fb563d @FooBarWidget Upgrade Rails stub apps to 2.3 for Ruby 1.9 compatibility.
FooBarWidget authored
80 rake test
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
81
0fb563d @FooBarWidget Upgrade Rails stub apps to 2.3 for Ruby 1.9 compatibility.
FooBarWidget authored
82 Run only the unit tests for the C++ components:
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
83
0fb563d @FooBarWidget Upgrade Rails stub apps to 2.3 for Ruby 1.9 compatibility.
FooBarWidget authored
84 rake test:cxx
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
85
86 Run just the unit tests for the Ruby spawn server:
87
88 rake test:ruby
89
90 Run just the integration tests:
91
0fb563d @FooBarWidget Upgrade Rails stub apps to 2.3 for Ruby 1.9 compatibility.
FooBarWidget authored
92 rake test:integration # All integration tests.
93 rake test:integration:apache2 # Just integration tests for Apache 2.
94 rake test:integration:nginx # Just integration tests for Nginx.
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
95
56360e6 @FooBarWidget Continue refactoring the tests and test multiple Rails versions.
FooBarWidget authored
96 Notes:
97 - Some tests, such as the ones that test privilege lowering, require
98 root privileges. Those will only be run if Rake is run as root.
99 - Some tests will be run against multiple Rails versions in order to
100 test compatibility. This can take a long time. If you want to test
101 against only a single Rails version, then set the environment variable
102 ONLY_RAILS_VERSION to one of the subdirectory names in
103 test/stub/rails_apps, e.g. 'export ONLY_RAILS_VERSION=2.3'
58632cb @FooBarWidget Split developer documentation to seperate file
FooBarWidget authored
104
105 == Documentation
106
107 Various developer documents can be found in 'doc/*.html'.
108
109 The Ruby part's API reference is located in 'doc/rdoc/'.
110 The C++ part's API reference is located in 'doc/cxxapi/'.
Something went wrong with that request. Please try again.