about summary refs log tree commit diff
path: root/HACKING.md
blob: 7df6d022e702d03828a646ee0d866f04fddd9179 (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
# Set up development environment

Drop into a development environment using `guix shell`. This shell includes additional packages required for development, and not simply the dependencies required to build ravanan.
```
guix shell -L .guix -m manifest.scm
```

# Run end-to-end tests

ravanan comes with a suite of end-to-end tests under `e2e-tests`. End-to-end tests require a running Guix daemon. To run them, create and change into a new empty directory.
```
mkdir rundir
cd rundir
```
Then, build and run the tests.
```
$(guix build -L ../.guix -f ../.guix/e2e-tests.scm)
```
Since ravanan depends on guix, and that guix may be too old, you may need to run this command outside the usual development environment.

When hacking on ravanan, you may be trying to get a specific test to pass, and may want to repeatedly run that specific test alone. You can do this by passing additional cwltest arguments. For example, to only run the `hello-world` test:
```
$(guix build -L ../.guix -f ../.guix/e2e-tests.scm) -s hello-world
```

# Run the CWL v1.2 conformance test suite

The CWL v1.2 conformance test suite is run similar to the end-to-end tests. Create and change into a new empty directory.
```
mkdir rundir
cd rundir
```
Then, build and run the tests.
```
$(guix build -L ../.guix -f ../.guix/cwl-conformance.scm)
```
To run a specific test alone (say, the `wf_simple` test):
```
$(guix build -L ../.guix -f ../.guix/cwl-conformance.scm) -s wf_simple
```
Since ravanan depends on guix, and that guix may be too old, you may need to run these commands outside the usual development environment.

# Make a release
## Bump version
Bump the `version` variable in `Makefile`.
## Tag a release
Tag a release `vx.x.x` putting news into the tag message.
## Create a release tarball, test it, and sign it
```
cp $(guix build -f .guix/ravanan-release.scm) ravanan-x.x.x.tar.lz
guix build --with-source=ravanan=ravanan-x.x.x.tar.lz -f .guix/ravanan-package.scm
make distsign
```
## Publish release tarball
Add release tarball and signature to website and GitHub.
## Update Guix package
## Publicize
Publicize on the ravanan@systemreboot.net and guix-science@gnu.org mailing lists, and on the [CWL Discourse forum](https://cwl.discourse.group/).