File: RELEASE.md

package info (click to toggle)
primesieve 5.7.2+ds-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,064 kB
  • ctags: 1,079
  • sloc: cpp: 5,871; makefile: 232; ansic: 176; sh: 102
file content (59 lines) | stat: -rw-r--r-- 2,018 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Release process
===============

Benchmark code changes:
```sh
$ ./primesieve 1e13 --dist=1e11
```

Fix all warnings:
```sh
$ make clean
$ make CXXFLAGS="-Wall -Wextra -Werror -Wno-long-long -pedantic -O2"
```

Run integration tests:
```sh
$ make check
```

### Where the source code lives

* The sieve of Eratosthenes implementation lives in [src/primesieve](src/primesieve)
* The sieve of Eratosthenes header files live in [include/primesieve](include/primesieve)
* The primesieve console application lives in [src/apps/console](src/apps/console)
* The primesieve GUI application (uses Qt framework) lives in [src/apps/gui](src/apps/gui)

### Adding a new source file

* Add new cpp file to [src/primesieve](src/primesieve)
* Add its header file to [include/primesieve](include/primesieve)
* Add source and header files to [Makefile.am](Makefile.am) and [Makefile.msvc](Makefile.msvc)
* Add source file to [src/apps/gui/primesieve.pro](src/apps/gui/primesieve.pro)

### Versioning

Increase the primesieve version and the primesieve libtool version before
each new release. The ```update_version.sh``` script automatically
updates the version (and release date) in all files.

```sh
cd scripts

# Usage example: update primesieve version to 1.2.3 and 
# update primesieve libtool version to 7:0:0
./update_version.sh 1.2.3 7:0:0
```
[This page](https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html)
explains libtool versioning.

### Release process

* Run tests using ```make check```
* Increase version number (see <a href="#versioning">Versioning</a>)
* Update [ChangeLog](ChangeLog)
* Tag the new release in git
* Build statically linked primesieve binaries and upload them to [https://bintray.com/kimwalisch/primesieve](https://bintray.com/kimwalisch/primesieve)
* Create new release tarball using ```make dist``` and upload it to [https://bintray.com/kimwalisch/primesieve](https://bintray.com/kimwalisch/primesieve)
* Update http://primesieve.org
* Update http://primesieve.org/api