annotate etc/HACKING.md @ 31221:f5755dbacd8d

maint: merge stable to default
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Wed, 31 Aug 2022 22:04:02 +0200
parents 83f9f8bda883
children 38139b13192c
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
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
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
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
24 cd octave
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
25 ./bootstrap
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
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
30 mkdir .build
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
31 cd .build
789d2376db2d maint: update etc/HACKING
John W. Eaton <jwe@octave.org>
parents: 16235
diff changeset
32 ../configure
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
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.
9977
711aa22ff83d Elaborate which DIRNAME to use for --gnulib-srcdir option in HACKING file
Rik <rdrider0-list@yahoo.com>
parents: 9949
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
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
153 See the file BUGS in this directory for more guidance on reporting bugs
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
12139
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
240
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
241 - `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
242 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
243 - `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
244 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
245 - `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
246 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
247 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
248 - `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
249 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
250 - `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
251 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
252 - `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
253 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
254 - `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
255 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
256 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
257 - `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
258 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
259
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
260 - `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
261
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
262 - `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
263 - `@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
264 - `+containers` container classes (Map)
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
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
275 - `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
276 - `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
277 - `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
278 - `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
279 - `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
280 - `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
281 - `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
282 - `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
283 - `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
284 - `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
285 - `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
286 - `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
287 - `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
288 - `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
289 - `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
290 - `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
291 - `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
292 - `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
293 - `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
294 - `time` time and date functions
15198
c3d463c93604 * HACKING: Update for libinterp and libgui changes.
John W. Eaton <jwe@octave.org>
parents: 15194
diff changeset
295
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
296 - `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
297 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
298 `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
299
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
300 - `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
301 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
302 - `*.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
303 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
304 - `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
305 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
306
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
307 Release Numbering
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
308 -----------------
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
309
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
310 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
311
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
312 Version Dev Phase When
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
313
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
314 5.0.0 (experimental) active development of Octave 5 on default branch
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
315 5.0.1 (pre-release) stabilization period of Octave 5 on stable branch
26615
3945d8dd56a1 * HACKING.md: Explain release candidate version numbers.
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
316 5.0.90 (pre-release) first release candidate for 5.1.0
28676
f044b9951df5 update etc/HACKING.md for release candidate version numbering
John W. Eaton <jwe@octave.org>
parents: 27970
diff changeset
317 5.0.91 (pre-release) continued stabilization of Octave 5 on stable branch
25590
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
318 6.0.0 (experimental) active development of Octave 6 on default branch
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
319 5.1.0 (release) first release of Octave 5 from stable branch
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
320 5.1.1 (pre-release) bug fixing on stable branch after 5.1.0 release
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
321 5.2.0 (release) second release of Octave 5 from stable branch
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
322 5.2.1 (pre-release) bug fixing on stable branch after 5.2.0 release
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
323 ...
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
324
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
325 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
326 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
327 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
328
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
329 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
330
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
331 * 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
332 version".
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
333
26615
3945d8dd56a1 * HACKING.md: Explain release candidate version numbers.
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
334 * 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
335 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
336 (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
337 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
338 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
339 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
340
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
341 * 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
342
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
343 Shared Library Versioning
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
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
346 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
347 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
348 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
349
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
350 %canon_reldir%_%canon_reldir%_current
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
351 %canon_reldir%_%canon_reldir%_revision
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
352 %canon_reldir%_%canon_reldir%_age
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
353
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
354 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
355
27216
823b4bcf79fc unless necessary for formatting or code, use ' instead of `
John W. Eaton <jwe@octave.org>
parents: 26615
diff changeset
356 * 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
357
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
358 * 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
359 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
360 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
361 faster.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
362
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
363 * 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
364 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
365
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
366 * 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
367 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
368
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
369 * 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
370 then increment age.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
371
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
372 * 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
373 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
374
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
375 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
376 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
377 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
378
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
379 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
380 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
381 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
382
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
383 * 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
384 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
385 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
386 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
387 current nor age.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
388
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
389 * 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
390 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
391 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
392 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
393 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
394 and age.
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
395
02766a14c461 add info about version numbers in etc/HACKING.md file
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
396 * 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
397 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
398
27812
b191a91b5157 doc: update reference to "Shared Library Versioning" information.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 26615
diff changeset
399 These guidelines also appear in the GNU libtool manual, see
b191a91b5157 doc: update reference to "Shared Library Versioning" information.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents: 26615
diff changeset
400 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
401
30345
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
402 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
403 -----------------------------------------------------
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
404
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
405 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
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 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
408 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
409 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
410
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
411 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
412 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
413 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
414 on!):
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
415
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
416 cd /path/to/octave-stable
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
417 hg update -C stable
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
418
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
419 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
420 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
421 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
422
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
423 hg merge default
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
424
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
425 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
426 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
427
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
428 hg commit -m "maint: Merge default to stable to begin VERSION release process."
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
429
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
430 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
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 * Set version in AC_INIT to MAJOR.0.1
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
433 * OCTAVE_MAJOR_VERSION should already be correct.
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
434 * Set OCTAVE_MINOR_VERSION to 0.
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
435 * Set OCTAVE_PATCH_VERSION to 1.
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
436 * Set OCTAVE_RELEASE_DATE to the current date.
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
437 * Set the year in OCTAVE_COPYRIGHT to the current year. The
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
438 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
439 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
440 in a separate change before the merge.
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
441 * OCTAVE_API_VERSION and shared library version numbers may be
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
442 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
443 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
444
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
445 hg commit ## Use commit message similar to the one in 8f8fab4c93ae
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
446
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
447 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
448 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
449 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
450 on!):
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
451
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
452 cd /path/to/octave-default
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
453 hg update -C default
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
454
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
455 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
456 merge):
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
457
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
458 hg merge stable
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
459 hg commit -m "maint: Merge stable to default."
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
460
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
461 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
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 * Set version in AC_INIT to MAJOR+1.0.0
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
464 * Set OCTAVE_MAJOR_VERSION to 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
465 * Set OCTAVE_MINOR_VERSION to 0
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
466 * Set OCTAVE_PATCH_VERSION to 0
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
467
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
468 hg commit ## Use commit message similar to the one in 1455418a5c4c
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
469
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
470 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
471 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
472
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
473 9. Update NEWS file for next development cycle (see 0ec5eaabaf2c, for
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
474 example).
ba03a127bee1 * etc/HACKING.md: Add notes about how to merge default to stable.
John W. Eaton <jwe@octave.org>
parents: 29358
diff changeset
475
12139
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
476
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
477 ################################################################################
2162104d40b1 Revise HACKING file and incorporate all of ROADMAP file.
Rik <octave@nomad.inbox5.com>
parents: 9977
diff changeset
478
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 30467
diff changeset
479 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
480
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
481 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
482 distribution or <https://octave.org/copyright/>.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
483
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
484 This file is part of Octave.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
485
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24193
diff changeset
486 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
487 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
488 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
489 (at your option) any later version.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
490
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
491 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
492 WITHOUT ANY WARRANTY; without even the implied warranty of
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
493 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22383
diff changeset
494 GNU General Public License for more details.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
495
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
496 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
497 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
498 <https://www.gnu.org/licenses/>.
9946
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
499
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 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
502 GNU Bison, which contained the following Copyright notice:
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
503
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
504 Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
505 Free Software Foundation, Inc.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
506
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
507 This file is part of GNU Bison.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
508
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
509 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
510 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
511 the Free Software Foundation, either version 3 of the License, or
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
512 (at your option) any later version.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
513
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
514 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
515 but WITHOUT ANY WARRANTY; without even the implied warranty of
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
516 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
517 GNU General Public License for more details.
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
518
55061c7c8d6e start using gnulib
John W. Eaton <jwe@octave.org>
parents:
diff changeset
519 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
520 along with this program. If not, see <https://www.gnu.org/licenses/>.