annotate etc/HACKING.md @ 31439:38139b13192c stable

doc: Update Markdown syntax for HACKING.md. * HACKING.md: Correct multiple instances where spacing was not quite right producing odd results from Markdown processor. Update list of directories under scripts/. Use code operators `` around configure.ac variables.
author Rik <rik@octave.org>
date Tue, 15 Nov 2022 14:34:28 -0800
parents 83f9f8bda883
children 59ca7d2805f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28704
c435048c2796 doc: tidy up Doxygen and no longer build qt help files with Doxygen by default
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 28676
diff changeset
1 Hacking Octave
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
2 ==============
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
3
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
4 This file attempts to describe the rules to use when hacking the
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
5 Octave sources cloned from the Savannah source code
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
6 [repository](https://hg.savannah.gnu.org/hgweb/octave/).
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
7 **DO NOT** put this file into the distribution. These requirements
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
8 do not apply when building from a distribution tarball.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
9
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
10 Quick start
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
11 -----------
16664
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
12
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
13 1. Install all the required dependencies. Precisely how to do that
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
14 depends on what type of system you are using. There are more
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
15 details below.
16664
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
16
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
17 2. Clone the Octave sources:
16664
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
18
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
19 hg clone https://www.octave.org/hg/octave
16664
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
20
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
21 3. Change to the top-level directory of the Octave source tree and
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
22 run the `bootstrap` script:
16664
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
23
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
24 cd octave
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
25 ./bootstrap
16664
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
26
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
27 4. Create a build directory, `cd` to it, then run `configure` and
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
28 `make`, or `make -jX` (to run `X` simultaneous jobs):
16664
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
29
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
30 mkdir .build
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
31 cd .build
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
32 ../configure
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
33 make -j2
16664
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
34
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
35 Requirements
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
36 ------------
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 We've opted to keep only the highest-level sources in the repository.
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
39 This eases our maintenance burden (fewer merges, etc.), but imposes
14646
f40c355491cc doc: Modify the language in HACKING concerning cloning and git subrepo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 14138
diff changeset
40 more requirements on anyone wishing to build from the just-cloned
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
41 sources. For example, you have to use the latest stable versions of
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
42 the maintainer tools we depend upon. These include:
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
44 - [Autoconf](https://www.gnu.org/software/autoconf/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
45 - [Automake](https://www.gnu.org/software/automake/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
46 - [Bison](https://www.gnu.org/software/bison/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
47 - [Flex](https://www.gnu.org/software/flex/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
48 - [Gnulib](https://www.gnu.org/software/gnulib/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
49 - [GNU Make](https://www.gnu.org/software/make/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
50 - [gperf](https://www.gnu.org/software/gperf/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
51 - [Gzip](https://www.gnu.org/software/gzip/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
52 - [Libtool](https://www.gnu.org/software/libtool/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
53 - [Mercurial](https://www.mercurial-scm.org/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
54 - [Perl](https://www.cpan.org/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
55 - [Rsync](https://samba.anu.edu.au/rsync/)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
56 - [Tar](https://www.gnu.org/software/tar/)
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
57
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
58 In addition to these maintainer tools, Octave makes use of many
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
59 external libraries and packages. See `doc/interpreter/install.txi`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
60 for the complete list of required and optional dependencies.
18286
de72c443ed3f HACKING: Refer to install.txi for the full dependency list (bug #41233)
Mike Miller <mtmiller@ieee.org>
parents: 17800
diff changeset
61
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
62 Only building the initial full source tree will be a bit painful.
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
63 Later, after synchronizing from the repository, a plain `make` should
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
64 be sufficient.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
65
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
66 First clone
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
67 -----------
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
68
14646
f40c355491cc doc: Modify the language in HACKING concerning cloning and git subrepo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 14138
diff changeset
69 If you are reading these notes, you may have already managed to clone
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
70 this package from the repository. For the record, you will find all
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
71 the relevant information on downloading sources at:
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
72
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
73 <https://www.octave.org/download.html>
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
74
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
75 After cloning Octave, you will need to run the `bootstrap` script:
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
76
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
77 ./bootstrap
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
78
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
79 This script will examine the source tree and generate some `Makefile`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
80 fragments, then run autotools scripts to generate `Makefile.in` files
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
81 from `Makefile.am` files and create the `configure` script. The
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
82 `bootstrap` script comes from gnulib, but is kept in the Octave
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
83 source archive. It should be updated from the gnulib sources as
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
84 necessary.
9949
a6308dcad5ac update HACKING file
John W. Eaton <jwe@octave.org>
parents: 9946
diff changeset
85
a6308dcad5ac update HACKING file
John W. Eaton <jwe@octave.org>
parents: 9946
diff changeset
86 If you have a copy of gnulib in some directory apart from the Octave
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
87 source tree, then pass the name of the directory containing
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
88 `gnulib-tool` to the `bootstrap` script using the option:
9949
a6308dcad5ac update HACKING file
John W. Eaton <jwe@octave.org>
parents: 9946
diff changeset
89
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
90 --gnulib-srcdir=DIRNAME
9949
a6308dcad5ac update HACKING file
John W. Eaton <jwe@octave.org>
parents: 9946
diff changeset
91
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
92 If you have downloaded gnulib directly, `DIRNAME` will be the
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
93 directory where gnulib was unpacked. If you have installed gnulib
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
94 using a package manager, `DIRNAME` is likely to be `/usr/bin` or
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
95 `/usr/local/bin` (where the gnulib-tool script resides).
9977
711aa22ff83d Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents: 9949
diff changeset
96
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
97 By using an external gnulib directory, you can share a single gnulib
28765
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
98 source tree among several projects. From 2011 until 2020, the gnulib
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
99 sources were a Mercurial subrepository of the Octave repository, so they
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
100 will be automatically updated to the corresponding Mercurial revision if
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
101 you update the working directory to a revision in that time period.
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
102 In 2020, the gnulib Mercurial subrepository was deleted. Instead, the
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
103 `bootstrap` script is used to fetch and update to a marked revision of
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
104 the gnulib git repository. A working copy of the gnulib git repository
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
105 will be automatically updated to the matching revision (see the default
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
106 value of `GNULIB_REVISION` in `bootstrap.conf`) when you run the
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
107 `bootstrap` script after you updated the working directory to a revision
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
108 after that point in time. A working `git` installation is necessary.
9949
a6308dcad5ac update HACKING file
John W. Eaton <jwe@octave.org>
parents: 9946
diff changeset
109
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
110 Additional options besides `--gnulib-srcdir` can be passed to
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
111 `bootstrap` and they will be forwarded without modification to the
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
112 gnulib `bootstrap` script.
9977
711aa22ff83d Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents: 9949
diff changeset
113
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
114 Once the `bootstrap` script completes successfully, you may configure
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
115 and build Octave. We recommend that you build Octave in a separate
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
116 directory tree from the sources. For example, if you have just
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
117 finished running the `bootstrap` script in the top-level source
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
118 directory, run the following commands to create a build tree,
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
119 configure, and build Octave:
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
120
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
121 mkdir .build
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
122 cd .build
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
123 ../configure
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
124 make -j2
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
125 make check
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
126
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
127 The `-j2` after the first `make` call means, that two jobs run
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
128 simultaneously. This number may be increased depending on your
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
129 system. At this point, there should be no difference between your
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
130 working tree and the currently visited hg revision:
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
131
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
132 hg diff
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
133
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
134 should output no difference.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
135
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
136 Coding style
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
137 ------------
12139
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
138
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
139 The most important advice is to follow any conventions you detect
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
140 in the file being edited. In addition, Octave maintainers have
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
141 written a lot on the subject. See
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
142 <https://wiki.octave.org/Contribution_guidelines>.
12139
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
143
30467
ce42e027cd40 doc: etc/HACKING.md: incorporate sparse content of etc/PROJECTS.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 30462
diff changeset
144 Projects
ce42e027cd40 doc: etc/HACKING.md: incorporate sparse content of etc/PROJECTS.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 30462
diff changeset
145 --------
ce42e027cd40 doc: etc/HACKING.md: incorporate sparse content of etc/PROJECTS.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 30462
diff changeset
146
ce42e027cd40 doc: etc/HACKING.md: incorporate sparse content of etc/PROJECTS.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 30462
diff changeset
147 A list of proposed projects is maintained at
ce42e027cd40 doc: etc/HACKING.md: incorporate sparse content of etc/PROJECTS.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 30462
diff changeset
148 <https://wiki.octave.org/Projects>.
ce42e027cd40 doc: etc/HACKING.md: incorporate sparse content of etc/PROJECTS.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 30462
diff changeset
149
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
150 Bugs and patches
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
151 ----------------
12139
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
152
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
153 See the file `BUGS` in this directory for more guidance on reporting bugs
12139
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
154 and preparing patches.
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
155
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
156 Source code directory layout
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
157 ----------------------------
12139
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
158
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
159 An overview of the directory layout of Octave's source files:
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
160
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
161 - `build-aux`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
162 scripts which support the build process.
17794
7e9382588570 HACKING: Update information for impending 3.8 release.
Rik <rik@octave.org>
parents: 17744
diff changeset
163
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
164 - `doc`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
165 Texinfo and Doxygen documentation for Octave.
17794
7e9382588570 HACKING: Update information for impending 3.8 release.
Rik <rik@octave.org>
parents: 17744
diff changeset
166
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
167 - `etc`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
168 miscellaneous files, such as this `HACKING` howto.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
169
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
170 - `examples`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
171 some example files (`mkoctfile` and mex samples, old class
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
172 programming interface).
15198
c3d463c93604 * HACKING: Update for libinterp and libgui changes.
John W. Eaton <jwe@octave.org>
parents: 15194
diff changeset
173
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
174 - `gnulib`
28765
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
175 gnulib repository. This is a working copy of the gnulib git
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
176 repository. We usually don't want to update gnulib sources when
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
177 going from one stable point release to the next.
17794
7e9382588570 HACKING: Update information for impending 3.8 release.
Rik <rik@octave.org>
parents: 17744
diff changeset
178
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
179 - `libgnu`
28765
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
180 gnulib sources that we use. These files are copied here from the
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
181 gnulib directory by the `bootstrap` script.
15198
c3d463c93604 * HACKING: Update for libinterp and libgui changes.
John W. Eaton <jwe@octave.org>
parents: 15194
diff changeset
182
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
183 - `liboctave`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
184 C++ interfaces to the numerical libraries, Fortran numerical
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
185 libraries, various OS facilities, and utility functions.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
186 - `array`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
187 the base `Array`, `NDArray`, `Matrix`, and `Sparse` classes.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
188 - `external`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
189 various numerical libraries (mostly Fortran).
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
190 - `amos` bessel functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
191 - `blas-xtra` wrappers for blas functions used in Octave
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
192 - `daspk` large scale differential algebraic equation solver
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
193 - `dasrt` differential algebraic equation solver with root finding
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
194 - `dassl` differential-algebraic system solver
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
195 - `fftpack` subroutines for fast fourier transforms
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
196 - `lapack-xtra` wrappers for lapack functions used in Octave
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
197 - `odepack` ordinary differential equation solver
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
198 - `quadpack` subroutines for numerical integration
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
199 - `ranlib` random number generators
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
200 - `slatec-err` slatec error handling library
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
201 - `slatec-fn` various special function subroutines
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
202 - `numeric`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
203 C++ numerical algorithms and interfaces to the Fortran
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
204 algorithms.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
205 - `operators`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
206 code for operators that act on base classes (such as `Array`).
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
207 - `system`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
208 OS-related functions.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
209 - `util`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
210 utility and miscellaneous functions.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
211 - `wrappers`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
212 C++ wrappers for gnulib functions written in C.
15198
c3d463c93604 * HACKING: Update for libinterp and libgui changes.
John W. Eaton <jwe@octave.org>
parents: 15194
diff changeset
213
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
214 - `libinterp`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
215 the interpreter itself plus lots of infrastructure around it.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
216 Octave's extensive `octave_value` class hierarchy for
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
217 polymorphically handling all Octave types is defined here.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
218 The built-in functions are also defined here.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
219 - `octave-value`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
220 the `octave_value` class hierarchy. These are the container
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
221 classes that hold various Octave data types like struct
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
222 numerical arrays, structure arrays, and cell arrays.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
223 - `parse-tree`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
224 Classes that define the parse tree for the interpreter.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
225 - `corefcn`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
226 statically linked `DEFUN` functions (callable from the
27967
6628a284d56d fix more spelling errors (bug #57613)
Mike Miller <mtmiller@octave.org>
parents: 27812
diff changeset
227 scripting language) as well as internal C++ functions used by
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
228 the interpreter.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
229 - `dldfcn`
28765
ecb8ffc51cfa etc/HACKING.md: Adapt for deleted gnulib subrepository.
Markus Mützel <markus.muetzel@gmx.de>
parents: 28704
diff changeset
230 dynamically linked `DEFUN_DLD` functions (callable from the
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
231 scripting language). If you see `help foo` telling you that
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
232 `foo` is defined in `foo.oct`, then `foo.cc` will be found
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
233 here and contain the source code.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
234 - `operators`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
235 definitions and template instantiations for operators for all
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
236 possible Octave type combinations.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
237 - `template-inst`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
238 some C++ template instantiations.
15198
c3d463c93604 * HACKING: Update for libinterp and libgui changes.
John W. Eaton <jwe@octave.org>
parents: 15194
diff changeset
239
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
240 - `libgui`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
241 the graphical user interface of GNU Octave.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
242 - `graphics`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
243 Qt graphics toolkit (OpenGL plotting).
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
244 - `kb-layouts`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
245 various files need by the qterminal widget that has been
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
246 derived from Konsole.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
247 - `languages`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
248 translation files and list of translators.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
249 - `qterminal`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
250 Qt terminal widget.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
251 - `src`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
252 source files for the GUI
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
253 - `icons`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
254 icon files that will be compiled into the executable via a
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
255 resource file.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
256 - `m-editor`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
257 source files for the m-file editor.
15198
c3d463c93604 * HACKING: Update for libinterp and libgui changes.
John W. Eaton <jwe@octave.org>
parents: 15194
diff changeset
258
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
259 - `m4` m4 scripts used by configure during the build process.
17794
7e9382588570 HACKING: Update information for impending 3.8 release.
Rik <rik@octave.org>
parents: 17744
diff changeset
260
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
261 - `scripts` functions written in the Octave language.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
262 - `@ftp` ftp object class
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
263 - `+containers` container classes (Map)
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
264 - `+matlab` various functions under Matlab namespace
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
265 - `audio` play and record sound files (system dependent)
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
266 - `deprecated` older deprecated functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
267 - `elfun` elementary mathematical functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
268 - `general` utility functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
269 - `geometry` geometry algorithms
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
270 - `gui` User-Interface (UI) functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
271 - `help` help subsystem functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
272 - `image` image processing
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
273 - `io` input/output functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
274 - `java` java/Octave interface
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
275 - `legacy` functions not recommended for use, but not deprecated
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
276 - `linear-algebra` linear algebra
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
277 - `miscellaneous` stuff that doesn't fit anywhere else
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
278 - `ode` Ordinary Differential Equations
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
279 - `optimization` zero finders and minimizers
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
280 - `path` functions for path manipulation
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
281 - `pkg` the package manager
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
282 - `plot` plotting functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
283 - `polynomial` polynomial manipulation
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
284 - `prefs` user-defined preferences
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
285 - `profiler` code profiler for performance
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
286 - `set` set manipulation
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
287 - `signal` signal processing
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
288 - `sparse` sparse matrix support
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
289 - `specfun` special mathematical functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
290 - `special-matrix` functions for generating special types of matrices
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
291 - `startup` initialization functions
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
292 - `statistics` statistical functions, distributions, and tests
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
293 - `strings` character string manipulation
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
294 - `testfun` unit testing
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
295 - `time` time and date functions
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
296 - `web` web-related functions
15198
c3d463c93604 * HACKING: Update for libinterp and libgui changes.
John W. Eaton <jwe@octave.org>
parents: 15194
diff changeset
297
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
298 - `src`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
299 code for the actual executables that are created. This includes
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
300 `octave`, `octave-cli`, `octave-gui`, as well as `mkoctfile`.
15198
c3d463c93604 * HACKING: Update for libinterp and libgui changes.
John W. Eaton <jwe@octave.org>
parents: 15194
diff changeset
301
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
302 - `test`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
303 tests for the interpreter.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
304 - `*.tst`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
305 fixed tests for the interpreter.
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
306 - `fntests.m`
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
307 script to run function tests embedded in C++ and .m files.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
308
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
309 Release Numbering
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
310 -----------------
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
311
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
312 Since version 5, Octave uses the following rules for release numbering:
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
313
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
314 Version Dev. Phase When
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
315
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
316 5.0.0 (experimental) active development of Octave 5 on default branch
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
317 5.0.1 (pre-release) stabilization period of Octave 5 on stable branch
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
318 5.0.90 (pre-release) first release candidate for 5.1.0
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
319 5.0.91 (pre-release) continued stabilization of Octave 5 on stable branch
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
320 6.0.0 (experimental) active development of Octave 6 on default branch
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
321 5.1.0 (release) first release of Octave 5 from stable branch
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
322 5.1.1 (pre-release) bug fixing on stable branch after 5.1.0 release
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
323 5.2.0 (release) second release of Octave 5 from stable branch
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
324 5.2.1 (pre-release) bug fixing on stable branch after 5.2.0 release
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
325 ... ... ...
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
326
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
327 To summarize, the first release of Octave 5 will be Octave 5.1.0 while
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
328 development snapshots will be Octave 5.0.0 and snapshots from the
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
329 release branch Octave 5.n.1.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
330
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
331 With this numbering scheme:
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
332
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
333 * Any version X.0.0 means "this is an experimental development
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
334 version".
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
335
26615
3945d8dd56a1 * HACKING.md: Explain release candidate version numbers.
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
336 * Any version X.Y.Z with Z > 0 means, "this is a pre-release version
3945d8dd56a1 * HACKING.md: Explain release candidate version numbers.
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
337 meant for bug fixing and testing". In practice, Z will be either 1
3945d8dd56a1 * HACKING.md: Explain release candidate version numbers.
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
338 (stabilization period after and before making release candidates) or
28676
f044b9951df5 update etc/HACKING.md for release candidate version numbering
John W. Eaton <jwe@octave.org>
parents: 27970
diff changeset
339 90, 92, etc. (release candidate snapshots leading up to release).
f044b9951df5 update etc/HACKING.md for release candidate version numbering
John W. Eaton <jwe@octave.org>
parents: 27970
diff changeset
340 91, 93, etc. (stabilization period on stable branch during the
f044b9951df5 update etc/HACKING.md for release candidate version numbering
John W. Eaton <jwe@octave.org>
parents: 27970
diff changeset
341 process of making release candidates).
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
342
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
343 * Any version X.Y.0 with Y != 0 means "this is a released version".
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
344
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
345 Shared Library Versioning
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
346 -------------------------
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
347
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
348 Version numbers for the liboctave, liboctinterp, and liboctgui shared
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
349 libraries are set in the module.mk files in the top-level directory for
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
350 each library using the variables
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
351
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
352 %canon_reldir%_%canon_reldir%_current
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
353 %canon_reldir%_%canon_reldir%_revision
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
354 %canon_reldir%_%canon_reldir%_age
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
355
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
356 The rules for updating these version numbers are:
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
357
27216
823b4bcf79fc unless necessary for formatting or code, use ' instead of `
John W. Eaton <jwe@octave.org>
parents: 26615
diff changeset
358 * Start with version information of `0:0:0` for each libtool library.
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
359
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
360 * Update the version information only immediately before a public
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
361 release of your software. More frequent updates are unnecessary,
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
362 and only guarantee that the current interface number gets larger
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
363 faster.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
364
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
365 * If the library source code has changed at all since the last update,
27216
823b4bcf79fc unless necessary for formatting or code, use ' instead of `
John W. Eaton <jwe@octave.org>
parents: 26615
diff changeset
366 then increment revision (`c:r:a` becomes `c:r+1:a`).
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
367
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
368 * If any interfaces have been added, removed, or changed since the
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
369 last update, increment current, and set revision to 0.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
370
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
371 * If any interfaces have been added since the last public release,
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
372 then increment age.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
373
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
374 * If any interfaces have been removed or changed since the last public
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
375 release, then set age to 0.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
376
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
377 Never try to set the interface numbers so that they correspond to the
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
378 Octave version number. This is an abuse that only fosters
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
379 misunderstanding of the purpose of library versions.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
380
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
381 The following explanation may help to understand the above rules a bit
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
382 better: consider that there are three possible kinds of reactions from
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
383 users of your library to changes in a shared library:
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
384
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
385 * Programs using the previous version may use the new version as
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
386 drop-in replacement, and programs using the new version can also
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
387 work with the previous one. In other words, no recompiling nor
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
388 relinking is needed. In this case, bump revision only, don’t touch
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
389 current nor age.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
390
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
391 * Programs using the previous version may use the new version as
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
392 drop-in replacement, but programs using the new version may use APIs
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
393 not present in the previous one. In other words, a program linking
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
394 against the new version may fail with unresolved symbols if linking
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
395 against the old version at runtime: set revision to 0, bump current
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
396 and age.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
397
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
398 * Programs may need to be changed, recompiled, and relinked in order
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
399 to use the new version. Bump current, set revision and age to 0.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
400
27812
b191a91b5157 doc: update reference to "Shared Library Versioning" information.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 26615
diff changeset
401 These guidelines also appear in the GNU libtool manual, see
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
402 <https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html>.
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
403
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
404 Merging the default branch to stable before a release
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
405 -----------------------------------------------------
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
406
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
407 To merge default to stable for a release with version == MAJOR:
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
408
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
409 NOTE, I use two separate repos, one in `/path/to/octave-stable` that is
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
410 updated to the stable branch and one in `/path/to/octave-default` that
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
411 is updated to the default branch.
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
412
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
413 1. Update the repo in `/path/to/octave-stable` to the most recent change
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
414 on the stable branch. Ensure that there are no pending changes (be
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
415 careful to avoid wiping out any changes you are currently working
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
416 on!):
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
417
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
418 cd /path/to/octave-stable
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
419 hg update -C stable
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
420
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
421 2. Merge default to stable (there should never be any conflicts here;
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
422 you are just making the stable branch be whatever is on the current
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
423 default branch):
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
424
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
425 hg merge default
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
426
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
427 3. Commit the change (replace VERSION with the correct version; it
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
428 should be of the form MAJOR.1.0):
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
429
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
430 hg commit -m "maint: Merge default to stable to begin VERSION release process."
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
431
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
432 4. Bump version numbers and release date in `configure.ac` for pre-release:
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
433
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
434 * Set version in `AC_INIT` to MAJOR.0.1
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
435 * `OCTAVE_MAJOR_VERSION` should already be correct.
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
436 * Set `OCTAVE_MINOR_VERSION` to 0.
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
437 * Set `OCTAVE_PATCH_VERSION` to 1.
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
438 * Set `OCTAVE_RELEASE_DATE` to the current date.
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
439 * Set the year in `OCTAVE_COPYRIGHT` to the current year. The
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
440 copyright dates in the source files should have already been
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
441 updated during the development cycle. If not, that should be done
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
442 in a separate change before the merge.
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
443 * `OCTAVE_API_VERSION` and shared library version numbers may be
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
444 updated in a separate changeset just prior to creating the first
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
445 test release.
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
446
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
447 hg commit # Use commit message similar to the one in 8f8fab4c93ae
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
448
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
449 5. Update the repo in `/path/to/octave-default` to the most recent change
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
450 on the default branch. Ensure that there are no pending changes (be
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
451 careful to avoid wiping out any changes you are currently working
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
452 on!):
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
453
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
454 cd /path/to/octave-default
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
455 hg update -C default
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
456
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
457 6. Merge stable back to default (there should not be conflicts in this
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
458 merge):
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
459
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
460 hg merge stable
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
461 hg commit -m "maint: Merge stable to default."
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
462
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
463 7. Bump versions in `configure.ac` to begin active development of MAJOR+1:
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
464
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
465 * Set version in `AC_INIT` to MAJOR+1.0.0
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
466 * Set `OCTAVE_MAJOR_VERSION` to MAJOR+1
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
467 * Set `OCTAVE_MINOR_VERSION` to 0
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
468 * Set `OCTAVE_PATCH_VERSION` to 0
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
469
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
470 hg commit # Use commit message similar to the one in dc1347cab668
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
471
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
472 8. Remove functions and properties deprecated in MAJOR-1 (see ecf207896f76,
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
473 for example)
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
474
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
475 9. Update `NEWS` file for next development cycle (see 0ec5eaabaf2c, for
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
476 example).
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
477
31439
38139b13192c doc: Update Markdown syntax for HACKING.md.
Rik <rik@octave.org>
parents: 30565
diff changeset
478 \################################################################################
12139
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
479
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 30467
diff changeset
480 Copyright (C) 2009-2022 The Octave Project Developers
27918
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 27814
diff changeset
481
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
482 See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
483 distribution or <https://octave.org/copyright/>.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
484
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
485 This file is part of Octave.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
486
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24193
diff changeset
487 Octave is free software: you can redistribute it and/or modify it
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
488 under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24193
diff changeset
489 the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
490 (at your option) any later version.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
491
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
492 Octave is distributed in the hope that it will be useful, but
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
493 WITHOUT ANY WARRANTY; without even the implied warranty of
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
494 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
495 GNU General Public License for more details.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
496
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
497 You should have received a copy of the GNU General Public License
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
498 along with Octave; see the file COPYING. If not, see
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
499 <https://www.gnu.org/licenses/>.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
500
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
501
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
502 This file was adapted for Octave from the HACKING file that is part of
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
503 GNU Bison, which contained the following Copyright notice:
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
504
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
505 Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
506 Free Software Foundation, Inc.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
507
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
508 This file is part of GNU Bison.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
509
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
510 This program is free software: you can redistribute it and/or modify
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
511 it under the terms of the GNU General Public License as published by
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
512 the Free Software Foundation, either version 3 of the License, or
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
513 (at your option) any later version.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
514
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
515 This program is distributed in the hope that it will be useful,
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
516 but WITHOUT ANY WARRANTY; without even the implied warranty of
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
517 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
518 GNU General Public License for more details.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
519
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
520 You should have received a copy of the GNU General Public License
24163
7ff6daa6b558 doc: use tree view in Doxygen documentation and add README and etc/HACKING.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 24162
diff changeset
521 along with this program. If not, see <https://www.gnu.org/licenses/>.