forked from speedcrunch/SpeedCrunch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHACKING
93 lines (67 loc) · 3.93 KB
/
HACKING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
--------------------------------------------------------------------------------
BUGS AND FEATURE REQUESTS
--------------------------------------------------------------------------------
The issue tracker location is http://code.google.com/p/speedcrunch/issues/list.
Report any known bugs and other annoyances as a new issue in our issue tracker.
This makes sure that the report will not get lost.
Contributed patch can be filed as an issue, with the patch attached to the
issue.
For a feature request, file it also as a new issue but tag is with
"Label:Enhancement" (instead of "Label:Defect").
If possible, tag every issue with appropriate milestone, e.g. "Milestone:0.8" is
this feature is supposed to be fixed/implemented in the upcoming version 0.8. If
the targeted milestone is not available yet, add it using tab Administer, Issue
Tracking.
--------------------------------------------------------------------------------
TEST SUITE
--------------------------------------------------------------------------------
In order to catch regressions as early as possible, automatic test suite is
already implemented (and should always be updated).
At the moment, it comprises of two programs: testhmath and testevaluator.
These programs are available only if you build using CMake. Generally it is
recommended to run these both test programs as often as possible, preferably
after changing something and before committing the changes.
New feature which breaks the test suite or without a corresponding test case
is subjected to be reverted.
Program 'testhmath' checks all the functionalities of the core math library.
Some corner-cases are necessary to ensure the library is well behaved.
If you change hmath.h/hmath.cpp, make sure to run 'testhmath' to verify that
your change does not break anything. If you add new feature(s), add the proper
feature(s) tests into testhmath.cpp.
Program 'testevaluator' mainly checks expression parser and evaluator. This
includes all the supported built-in functions. If you add a new function,
make sure also to add test cases for that function (the more, the better)
in testevaluator.cpp.
--------------------------------------------------------------------------------
WEBSITE
--------------------------------------------------------------------------------
Files for the web site are stored at
http://gitorious.org/projects/speedcrunch-org
When making changes to HTML files, please make sure that the HTML code is still
valid. Use http://validator.w3.org/ to verify it.
For convenience, the ChangeLog is linked directly to the file in the repository
http://gitorious.org/projects/speedcrunch/repos/mainline/blobs/master/ChangeLog
The web site pages must be updated just prior to make a release.
The web site can also be updated without a release. This is the case e.g. when
putting a new interesting screenshot or adding a question (and answer) in FAQ
section.
--------------------------------------------------------------------------------
RELEASES
--------------------------------------------------------------------------------
This is a checklist of things that must be done to prepare a release:
* Make sure that ChangeLog is up to date
* Create the source code package, e.g. speedcrunch-0.8-beta.tar.gz. Place it
in the download location.
* Notify packagers to make them aware of the new release.
* Update the website. Most important is the link to new source code package.
* Update main content in download.html
* Add or change features description in features.html
* Create new screenshots for screenshots.html
* Update link to ChangeLog in the sidebar of download.html
--------------------------------------------------------------------------------
PORTABLE EDITION
--------------------------------------------------------------------------------
Build the "portable version" by configuring the project as below (use only one
of the approaches):
cmake -DCMAKE_CXX_FLAGS:STRING="-DSPEEDCRUNCH_PORTABLE"
qmake "DEFINES+=SPEEDCRUNCH_PORTABLE"