annotate etc/HACKING.md @ 31567:59ca7d2805f2 stable

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