summaryrefslogtreecommitdiff
path: root/doc/releases.txt
blob: abd007e381155d07bce102252112c25b538fbcfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
2019-07-30

This text summarizes some points to pay attention to when a new release
of sane-backends is planned.

Timetable (approximate periods):

Day  0: Announcement of upcoming release on sane-devel including timetable
        and pointer to the GitLab milestone
Day 14: Feature freeze (only bugfixes + documentation updates)
Day 28: Code freeze (only fixes for bugs that can destroy hardware, can cause
        compilation problems or render a backend completely unusable, and
        documentation updates are allowed)
Day 35: Release

Before the release:

* set :new :yes on any new backend .desc files, by looking for added files:

  version=1.0.27
  git ls-files -- backend | while read f; do
    git log --follow --diff-filter=A --find-renames=40% \
            --format="%ai  $f" $version..HEAD -- "$f"
  done | cat

* NEWS: update and enter date of release, etc
  Get list of heavily change backends via: git diff --stat $version..HEAD
  Get list of details from: git log $version..HEAD
* git commit -a
* git push origin master

Making the release:

* temporarily set a PRIVATE_TOKEN variable in the GitLab CI/CD
  variables You have to create one in your own Settings > Access
  Tokens.  Set it to expire in a few hours to avoid abuse.
* git tag -a -s 1.0.28 -m Release
* git push --tags origin master
* trigger the manual 'release' stage of the build via the web UI when
  this becomes possible.  This requires a valid PRIVATE_TOKEN.

Announcing the release:

* [TBD] checkout the sane/website.git module and:
* [TBD] copy sane-backends.html to sane-backends-"old-version".html
* [TBD] update sane-supported-devices.html with link to above "old" file
* [TBD] rebuild sane-backends.html and sane-mfgs.html (make -C doc html-pages)
* [TBD] use man2html from http://hydra.nac.uci.edu/indiv/ehood/man2html.html
  to rebuild html man pages (make -C doc html-man) (no other version works)
* [TBD] add md5 sum to sane-md5sums.txt
* [TBD] check and update platforms page (sane-support.html)
* add announcement to index.html
* git commit -a && git push
* check that website was updated automatically
* [TBD] rebuild descriptions.db (make -C doc descriptions.db)
* announce release on sane-devel and sane-announce mailing lists

After the release:

* [TBD] copy ChangeLog to ChangeLogs/ChangeLog-$version
* [TBD] start a new ChangeLog via git checkout ChangeLog
* [TBD] bump version number in tools/create-changelog.sh
* remove the ':new' tag from all doc/descriptions*/*.desc files
* git add new and changed files and commit
* git push