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 when the following changes occur:

- **`Major`** (e.g. `1.4.2` -> `2.0.0`)
- 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`** (e.g. `1.4.2` -> `1.5.0`)
- 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`** (e.g. `1.4.2` -> `1.4.3`)
- 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 summarising the changes made.

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