File: RELEASING.md

package info (click to toggle)
picard 2.13.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,012 kB
  • sloc: python: 68,818; ansic: 89; makefile: 14
file content (111 lines) | stat: -rw-r--r-- 2,163 bytes parent folder | download | duplicates (2)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# Picard release process


## Release preparation (few weeks/days before)


### Synchronize picard.pot with sources

```bash
python setup.py regen_pot_file && git diff --quiet || git commit -m 'Update pot file' -- po/picard.pot
```

And push changes to main remote repository, see [po/README.md](po/README.md) for details about translations

## Ensure git repository tree is clean

From the local repository:

### Check out the repo master branch

```bash
git fetch $PICARD_REMOTE && git checkout master
```

### Ensure nothing is on the way

```bash
git reset --hard $PICARD_REMOTE/master && git clean -f -d
```


#### Remove old compiled modules

```bash
find . -type f -name '*.pyc' -exec rm -f {} \;
```

### Tag to save the current state

```bash
git tag "before-release-$PICARD_VERSION" --force
```

### Remove any BOM nasty bytes from files

This shouldn't be needed, but better to check before releasing

```bash
git ls-tree --full-tree -r HEAD --name-only |while read f; do sed -i '1s/^\xEF\xBB\xBF//' "$f"; done && git diff --quiet || git commit -a -m 'Remove nasty BOM bytes'
```

## Synchronize generated consts

```bash
python setup.py update_constants && git diff --quiet || git commit -a -m 'Update constants' -- picard/const/*.py
```

## Update NEWS.txt

TODO: explain how

## Update Picard version

Edit `picard/__init__.py` and set new version tuple

Run tests:

```bash
python setup.py test
```

Commit changes!


## Tag new version

```bash
git tag -s "$PICARD_RELEASE_TAG" -m "Release $PICARD_VERSION"
```

Stable release tags have the following format: `release-#.#.#`
Example: `release-2.1.0`

## Update Picard version to next dev version

Edit `picard/__init__.py` and set new dev version tuple.

Run tests:

```bash
python setup.py test
```

Commit changes!


## Push new commits and tags to remote

```bash
git push "$PICARD_REMOTE" master:master
git push "$PICARD_REMOTE" tag "$PICARD_RELEASE_TAG"
```

### To revert after push

```bash
git tag -d "release-$PICARD_VERSION"
git reset --hard "before-release-$PICARD_VERSION"
git push "$PICARD_REMOTE" :"$TAG"
git push "$PICARD_REMOTE" "before-release-$PICARD_VERSION":master --force
```