File: HACKING.md

package info (click to toggle)
rss2email 1%3A3.14-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,260 kB
  • sloc: python: 2,565; xml: 156; sh: 6; makefile: 2
file content (56 lines) | stat: -rw-r--r-- 1,647 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
# Hacking on `rss2email`

This document is still TODO. Please contribute to it and file issues
if you have a question (or something is not described sufficiently).


## Cutting a new release

- `nix-shell`
- `update-copyright.py`
- Prepare `CHANGELOG`
- Fix `__version__` in `rss2email/__init__.py`
- `git commit`
- `exit`

- `rm -Rf dist rss2email.egg-info`
- `nix-shell -p python37Packages.{setuptools,wheel,twine}`
- `SOURCE_DATE_EPOCH=315532800 python3 setup.py sdist bdist_wheel`
- `twine upload --repository-url https://test.pypi.org/legacy/ dist/*`
- Check it actually work on test-pypi (NixOS test, run on dev machines…)

- Add git tag, git branch if need be, push it to repository
- `twine upload dist/*`


## Using nix support

`rss2email` has a few nix definitions in order to simplify development.
In order to use them you need to install the [nix package
manager](https://nixos.org/nix) version 2 or later on your system.

### Open a shell with all dependencies

Run `nix-shell` in the top directory. It will open a bash with all
dependencies (python and system) required for working on `rss2email`.
This uses the [`shell.nix`](./shell.nix) file.

### Test `rss2email` against multiple python versions

`nix/release.nix` contains an expression to build and test rss2email
against multiple python versions.

You can build each one of them like this:

```
nix-build -A pythonVersions.rss2email-python_3_6 nix/release.nix
nix-build -A pythonVersions.rss2email-python_3_7 nix/release.nix
nix-build -A pythonVersions.rss2email-python_3_8 nix/release.nix
…
```

and all at once with

```
nix-build -A pythonVersions nix/release.nix
```