Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package versioning #70

Merged
merged 10 commits into from
Feb 19, 2024
29 changes: 29 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,35 @@ changelogFile: CHANGELOG.md

When a package is modified in any way (including updates of the context information in the `.janno` file), then the `packageVersion` field SHOULD be incremented and the `lastModified` field updated to the current date.

#### Package versioning

The `packageVersion` field is a mandatory entry of the `POSEIDON.yml` file. It denotes the version of the individual package, using a three-component versioning system derived from [semantic versioning](https://semver.org).

Each version number is comprised of three numbers, separated by a `.`. For example: `0.1.0`, `1.0.0` or `2.1.3`. The first number gives the `major`, the second the `minor` and the third the `patch` component of the version number. For a Poseidon package these components SHOULD be incremented, so raised by one, when the following changes occur:
nevrome marked this conversation as resolved.
Show resolved Hide resolved
nevrome marked this conversation as resolved.
Show resolved Hide resolved

- **`major`** (first number)
nevrome marked this conversation as resolved.
Show resolved Hide resolved
- When samples are added to a package.
- When samples are removed from a package.
- When the genotype data (i.e. the contents of the `.bed`/`.bim`/`.fam` or `.geno`/`.snp`/`.ind` files) for any number of samples is changed.
nevrome marked this conversation as resolved.
Show resolved Hide resolved

- **`minor`** (second number)
nevrome marked this conversation as resolved.
Show resolved Hide resolved
- When larger pieces of meta- or context information are added or modified in any package file, except the genotype data. For example:
- An entire `.janno`, `.bib` or `.ssf` file is added or replaced.
- Entire columns in the `.janno` or `.ssf` file are added or replaced.
- Primary publications for samples in the `.janno` and `.bib` file are added or replaced.

- **`patch`** (third number)
nevrome marked this conversation as resolved.
Show resolved Hide resolved
- When smaller pieces of meta- or context information are added or modified in any package file, except the genotype data. For example:
- Individual entries in the `.janno` or `.ssf` file are added or replaced.
- Secondary publications for samples in the `.janno` and `.bib` file are added or replaced.
- BibTeX entries in the `.bib` file are modified.
- The package `description` changes in the `POSEIDON.yml` file.
- The `CHANGELOG.md` file is modified with additional information on previous entries.

When the `packageVersion` is changed, then the `lastModified` date MUST be updated and an entry to the `CHANGELOG.md` file SHOULD be added.
nevrome marked this conversation as resolved.
Show resolved Hide resolved

Packages SHOULD start at `packageVersion` `0.1.0`.
nevrome marked this conversation as resolved.
Show resolved Hide resolved

### Genotype data

Genotype data in Poseidon packages is stored either in (binary) PLINK or EIGENSTRAT format.
Expand Down