Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
af06821
Report solver time limits instead of infeasible problems (SysBioChalm…
edkerk Sep 8, 2026
f8cab59
doc: regenerate HTML documentation for af06821 [skip ci]
github-actions[bot] Sep 8, 2026
90dc76b
Move HPA parsers and scoreModel into INIT/ (SysBioChalmers/RAVEN#750)
edkerk Sep 9, 2026
7efa094
doc: regenerate HTML documentation for 90dc76b [skip ci]
github-actions[bot] Sep 9, 2026
17be63f
writeYAMLmodel: nest ec-rxns enzymes; printOrange: print \n as line b…
edkerk Sep 11, 2026
51f0fdd
doc: regenerate HTML documentation for 17be63f [skip ci]
github-actions[bot] Sep 11, 2026
687271f
feat: complexPolicy, keepGeneFree and preserveNotes in getModelFromHo…
edkerk Oct 7, 2026
45fe35c
doc: regenerate HTML documentation for 687271f [skip ci]
github-actions[bot] Oct 7, 2026
d7db8b1
fix: prefix whole gene ids in grRules in addIdentifierPrefix (SysBioC…
edkerk Oct 7, 2026
1366b44
doc: regenerate HTML documentation for d7db8b1 [skip ci]
github-actions[bot] Oct 7, 2026
3c349cf
refactor: reorganize repository into src/, tests/, docs/ and tutorials/
ae-tafur Oct 10, 2026
bba312e
refactor: organize external/software
ae-tafur Oct 10, 2026
3d10e1c
fix: set path after reorg to external directory
ae-tafur Oct 10, 2026
743c2dd
Point repository, documentation and version-check links to CompMetEng…
edkerk Oct 17, 2026
58d2dcb
doc: regenerate HTML documentation for 743c2dd [skip ci]
github-actions[bot] Oct 17, 2026
ce851de
Merge remote-tracking branch 'origin/develop' into clean_project_stru…
edkerk Oct 17, 2026
204a3d0
Merge pull request #2 from CompMetEng/clean_project_structure
edkerk Oct 17, 2026
54ee5cc
doc: regenerate HTML documentation for 204a3d0 [skip ci]
github-actions[bot] Oct 17, 2026
ba60895
fix: reject gene ids that split in grRules in getModelFromHomology (#3)
edkerk Oct 17, 2026
7efdbd6
doc: regenerate HTML documentation for ba60895 [skip ci]
github-actions[bot] Oct 17, 2026
27da412
feat: hitsFromSuppOrth and runSuppOrth for SuppOrth consensus ortholo…
edkerk Oct 17, 2026
695af4f
doc: regenerate HTML documentation for 27da412 [skip ci]
github-actions[bot] Oct 17, 2026
e44fcf0
Download assets from CompMetEng/toolbox-assets with fetchToolboxAsset…
edkerk Oct 17, 2026
bcdc2b4
doc: regenerate HTML documentation for e44fcf0 [skip ci]
github-actions[bot] Oct 17, 2026
2c6f9b8
Fixes from the RAVEN 3 Guide review (#7)
edkerk Oct 17, 2026
250b0bc
doc: regenerate HTML documentation for 2c6f9b8 [skip ci]
github-actions[bot] Oct 17, 2026
caef029
Check toolbox-assets downloads against the manifest checksums (#9)
edkerk Oct 18, 2026
2ad099c
doc: regenerate HTML documentation for caef029 [skip ci]
github-actions[bot] Oct 18, 2026
4be3d6a
Follow-ups from the RAVEN 3 Guide review (#8)
edkerk Oct 19, 2026
79a7d8c
doc: regenerate HTML documentation for 4be3d6a [skip ci]
github-actions[bot] Oct 19, 2026
beadbc0
fix: quote YAML 1.1 booleans, fix replaceMets, and align task lists, …
edkerk Oct 21, 2026
7bc599d
doc: regenerate HTML documentation for beadbc0 [skip ci]
github-actions[bot] Oct 21, 2026
0406546
fix: read notes maps in readYAMLmodel (#12)
edkerk Oct 23, 2026
f8d6595
doc: regenerate HTML documentation for 0406546 [skip ci]
github-actions[bot] Oct 23, 2026
edf6229
fix: align RAVEN with raven-toolbox (parity review) (#13)
edkerk Oct 28, 2026
c37ceff
fix: keep each subsystem with its reaction when readYAMLmodel flatten…
edkerk Oct 28, 2026
9a2829a
doc: regenerate HTML documentation for c37ceff [skip ci]
github-actions[bot] Oct 28, 2026
c1c8bb7
fix: align RAVEN with raven-toolbox (parity review, round 3) (#15)
edkerk Oct 30, 2026
2d0630e
doc: regenerate HTML documentation for c1c8bb7 [skip ci]
github-actions[bot] Oct 30, 2026
1b742df
Rewrite the help blocks under the documentation prose rules (#16)
edkerk Oct 31, 2026
35d8717
doc: regenerate HTML documentation for 1b742df [skip ci]
github-actions[bot] Oct 31, 2026
68a6e60
fix: four bugs found while rewriting the help blocks, corrected examp…
edkerk Oct 31, 2026
874448c
doc: regenerate HTML documentation for 68a6e60 [skip ci]
github-actions[bot] Oct 31, 2026
b3ff589
writeYAMLmodel: write no enzymes entry for an ec reaction without enz…
edkerk Nov 1, 2026
69fc6d2
doc: regenerate HTML documentation for b3ff589 [skip ci]
github-actions[bot] Nov 1, 2026
a957c80
CHANGELOG: name 2.11.4 as the last 2.x release
edkerk Nov 1, 2026
82a999a
doc: README with the documentation links and the RAVEN logo for dark …
edkerk Nov 1, 2026
8b754bd
Add GNU GPL v3 license file
edkerk Nov 1, 2026
84da78f
Delete LICENSE.md
edkerk Nov 1, 2026
76339c1
Prepare 3.0.0b2 release (#20)
edkerk Nov 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 10 additions & 10 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ Anybody is welcome to contribute to the development of the RAVEN Toolbox, but pl
Each function should start with a commented section describing the function and explaining the parameters. Existing functions can clarify what style should be used.

### Bugfixes, New Features and Functions
* For any development, whether bug fixes, introducing new functions or new/updated features for existing functions: make a separate branch from `devel` and name the branch for instance after the function/feature you are fixing/developing. If you work on a fix, start the branch name with `fix/`, if you work on a feature, start the branch name with `feat/`. Examples: `fix/format_reactions` or `feat/new_algorithms`.
* For any development, whether bug fixes, introducing new functions or new/updated features for existing functions: make a separate branch from `develop` and name the branch for instance after the function/feature you are fixing/developing. If you work on a fix, start the branch name with `fix/`, if you work on a feature, start the branch name with `feat/`. Examples: `fix/format_reactions` or `feat/new_algorithms`.
* Make commits to this branch while developing. Aim for backward compatibility, and try to avoid very new MATLAB functions when possible, to accommodate users with older MATLAB versions.
* When you are happy with your new function/feature, make a pull request to the `devel` branch. Also, see [Pull request](#pull-request) below.
* When you are happy with your new function/feature, make a pull request to the `develop` branch. Also, see [Pull request](#pull-request) below.

### Semantic Commits
Use semantic commit messages to make it easier to show what you are aiming to do:
Expand All @@ -28,26 +28,26 @@ A more detailed explanation or comments can be left in the commit description.

### External Software Update
* Once the newer version for any external software (BLAST+, DIAMOND, HMMER) is available, identify the newest version which is simultaneously available for macOS, Unix/Linux and Windows
* Create a separate branch from the `devel` branch and name it e.g. `chore/updateBinaries`
* Create a separate branch from the `develop` branch and name it e.g. `chore/updateBinaries`
* Commit the changes for each program and operating system separately, e.g. `chore: update HMMER (Win) to 3.2.1`
* As soon as all binaries for particular program are updated through commits, update the corresponding license file, if available and place it in e.g. `software/blast+` directory.
* Update the version number in `RAVENdir/software/version.txt` file.
* Do some testing to ensure that the new binaries are working correctly. Upon successful tests, create a Pull Request to the `devel` branch.
* As soon as all binaries for particular program are updated through commits, update the corresponding license file, if available and place it in e.g. `src/external/blast+` directory.
* Update the version number in `RAVENdir/src/external/version.txt` file.
* Do some testing to ensure that the new binaries are working correctly. Upon successful tests, create a Pull Request to the `develop` branch.

### Pull Requests
* No changes should be directly committed to the `main` or `devel` branches. Commits are made to side branches, after which pull requests are made for merging with `main` or `devel`.
* No changes should be directly committed to the `main` or `develop` branches. Commits are made to side branches, after which pull requests are made for merging with `main` or `develop`.
* The person making the pull request and the one accepting the merge _cannot_ be the same person.
* Typically, wait a few days before merging, to allow for other developers to inspect the pull request.
* A merge with the mainbranch invokes a new release (see [versioning](#versioning)).

### Versioning
RAVEN Toolbox follows [semantic versioning](https://semver.org/). After each successful Pull Request (PR) to `main`, the `version.txt` file should be updated in a separate PR. When this PR is merged, a new [release](https://github.com/SysBioChalmers/RAVEN/releases) should be specified, with a list detailing the most significant changes since the previous release.
RAVEN Toolbox follows [semantic versioning](https://semver.org/). After each successful Pull Request (PR) to `main`, the `version.txt` file should be updated in a separate PR. When this PR is merged, a new [release](https://github.com/CompMetEng/RAVEN/releases) should be specified, with a list detailing the most significant changes since the previous release.

Ensure that the documentation is also updated (in `devel`) before creating a PR to `main`. It can be updated by running `updateDocumentation()`.
Ensure that the documentation is also updated (in `develop`) before creating a PR to `main`. It can be updated by running `updateDocumentation()`.

### Categorize Releases
* PRs pushed into `main` should be patch releases by default.
* Developers who push PRs to `devel` may propose target release categories (e.g. minor or patch) that can be commented on and discussed by reviewers and other developers.
* Developers who push PRs to `develop` may propose target release categories (e.g. minor or patch) that can be commented on and discussed by reviewers and other developers.
* As a result of the above step, minor releases hopefully can be determined.
* To help the process of categorizing releases, some conditions are suggested qualification for minor releases:
* with database updates (e.g. KEGG)
Expand Down
2 changes: 1 addition & 1 deletion .github/issue_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ etc. etc.

**I hereby confirm that I have:**
<!-- Note: replace [ ] with [X] to check the box -->
- [ ] Checked that a similar issue does not [already exist](https://github.com/SysBioChalmers/RAVEN/issues?q=is%3Aissue) or is already [discussed](https://github.com/SysBioChalmers/RAVEN/discussions).
- [ ] Checked that a similar issue does not [already exist](https://github.com/CompMetEng/RAVEN/issues?q=is%3Aissue) or is already [discussed](https://github.com/CompMetEng/RAVEN/discussions).
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@
<!-- Chose ONE of the following two options
and replace [ ] with [X] to check the box.-->
- [ ] This PR has `develop` as target branch, and will be resolved with a *squash-merge*.
- [ ] This PR has `main` as target branch, and will be resolved as descriped [here](https://github.com/SysBioChalmers/RAVEN/wiki/Development-policy#make-a-new-release).
- [ ] This PR has `main` as target branch, and will be resolved as described [here](https://github.com/CompMetEng/RAVEN/blob/develop/.github/CONTRIBUTING.md#versioning).
20 changes: 10 additions & 10 deletions .github/scripts/assemble_offline_software.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#!/usr/bin/env python
"""Populate RAVEN's software/ with every platform's external binaries.
"""Populate RAVEN's src/external/ with every platform's external binaries.

Downloads the per-platform binary ZIPs from raven-data and lays them out under
``<raven>/software/<tool>/`` using RAVEN's suffix scheme — bare name = Linux,
Downloads the per-platform binary ZIPs from toolbox-assets and lays them out under
``<raven>/src/external/<tool>/`` using RAVEN's suffix scheme — bare name = Linux,
``.mac`` = macOS, ``.exe`` = Windows. With all platforms present in one tree, the
whole RAVEN checkout can be zipped into a single **OS-independent** offline
distribution (see the release-bundle workflow).

Run from the RAVEN root, or pass ``--raven <dir>``. Requires network access to
https://github.com/SysBioChalmers/raven-data .
https://github.com/CompMetEng/toolbox-assets .
"""
from __future__ import annotations

Expand All @@ -18,11 +18,11 @@
import zipfile
from pathlib import Path

RAVEN_DATA = "https://github.com/SysBioChalmers/raven-data/releases/download"
# raven-data platform key -> RAVEN binary suffix.
TOOLBOX_ASSETS = "https://github.com/CompMetEng/toolbox-assets/releases/download"
# toolbox-assets platform key -> RAVEN binary suffix.
PLATFORMS = {"linux-x86_64": "", "macos-arm64": ".mac", "windows-x86_64": ".exe"}

# (software subdir, raven-data bundle, {platform|"_": version}, {bare executable names})
# (software subdir, toolbox-assets bundle, {platform|"_": version}, {bare executable names})
CLI_TOOLS = [
("blast+", "blast", {"_": "2.17.0"}, {"blastp", "makeblastdb"}),
("diamond", "diamond", {"_": "2.1.17"}, {"diamond"}),
Expand All @@ -31,7 +31,7 @@


def _fetch(url: str) -> bytes:
with urllib.request.urlopen(url, timeout=120) as resp: # noqa: S310 (pinned raven-data URLs)
with urllib.request.urlopen(url, timeout=120) as resp: # noqa: S310 (pinned toolbox-assets URLs)
return resp.read()


Expand All @@ -50,7 +50,7 @@ def _extract(zip_bytes: bytes, dest: Path, rename: dict[str, str]) -> None:


def assemble(raven: Path) -> None:
soft = raven / "software"
soft = raven / "src" / "external"
for subdir, bundle, vmap, exes in CLI_TOOLS:
dest = soft / subdir
for plat, suffix in PLATFORMS.items():
Expand All @@ -60,7 +60,7 @@ def assemble(raven: Path) -> None:
# macOS ships bare names; rename them to <name>.mac. Linux keeps bare names,
# Windows already carries .exe — so only the macOS members need renaming.
rename = {e: e + ".mac" for e in exes} if suffix == ".mac" else {}
_extract(_fetch(f"{RAVEN_DATA}/{bundle}-{version}/{asset}"), dest, rename)
_extract(_fetch(f"{TOOLBOX_ASSETS}/{bundle}-{version}/{asset}"), dest, rename)


def main(argv: list[str] | None = None) -> None:
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: Documentation

# Regenerate doc/ from the function help texts and commit the result.
# Regenerate docs/html/ from the function help texts and commit the result.
#
# doc/ is generated output that is nevertheless tracked, so it drifts as soon
# docs/html/ is generated output that is nevertheless tracked, so it drifts as soon
# as anyone edits a docstring or adds/removes a function without remembering to
# run updateDocumentation. Running it here instead means nobody has to.
#
Expand All @@ -18,7 +18,7 @@ name: Documentation

on:
push:
branches: [develop3, develop, main]
branches: [develop, main]
paths:
- '**.m'
- '.github/workflows/documentation.yml'
Expand All @@ -34,7 +34,7 @@ concurrency:

jobs:
update-documentation:
name: Regenerate doc/
name: Regenerate docs/html/
runs-on: ubuntu-latest
timeout-minutes: 20

Expand Down Expand Up @@ -71,11 +71,11 @@ jobs:

- name: Commit regenerated documentation
run: |
# updateDocumentation deletes and rebuilds doc/, so stage first:
# updateDocumentation deletes and rebuilds docs/html/, so stage first:
# a plain "git diff" would not see added or removed pages.
git add -A doc
if git diff --cached --quiet -- doc; then
echo "doc/ is already up to date."
git add -A docs/html
if git diff --cached --quiet -- docs/html; then
echo "docs/html/ is already up to date."
exit 0
fi
git config user.name "github-actions[bot]"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release-bundle.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Offline binary bundle

# Build the OS-independent offline RAVEN distribution: the full repo with
# software/ populated with every platform's external binaries, so an air-gapped
# src/external/ populated with every platform's external binaries, so an air-gapped
# user downloads one ZIP and runs RAVEN on any OS without fetching anything.
# Attached automatically to each published release; also runnable on demand
# against an existing tag.
Expand Down Expand Up @@ -37,7 +37,7 @@ jobs:
with:
python-version: '3.12'

- name: Populate software/ with every platform's binaries
- name: Populate src/external/ with every platform's binaries
run: python .github/scripts/assemble_offline_software.py

- name: Build RAVEN-<tag>-full.zip
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
if ~isfolder(resultsDir); mkdir(resultsDir); end
import matlab.unittest.TestRunner
import matlab.unittest.plugins.XMLPlugin
cd(fullfile('testing', 'function_tests'));
cd(fullfile('tests', 'function_tests'));
files = string({dir('*.m').name});
files(files == "RavenTestCase.m") = [];
files(files == "tBinaries.m") = []; % run separately by the binary-tests job (Linux + macOS)
Expand All @@ -72,7 +72,7 @@ jobs:

binary-tests:
name: Binary download (${{ matrix.os }})
# Validate the on-demand fetch of the external binaries from raven-data on
# Validate the on-demand fetch of the external binaries from toolbox-assets on
# Linux and macOS. Running the downloaded binaries also confirms the macOS
# Gatekeeper quarantine is cleared so they can execute.
strategy:
Expand Down
16 changes: 8 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ Temporary Items
# first use (see buildGlobalKEGGModel); none of them belong in the repo. The
# glob (rather than a version-pinned name) keeps this working across a
# KEGG_VERSION.md bump without needing its own update.
reconstruction/kegg/keggModel.mat
reconstruction/kegg/kegg*_core.tar.gz
reconstruction/kegg/kegg*_core/
src/reconstruction/kegg/keggModel.mat
src/reconstruction/kegg/kegg*_core.tar.gz
src/reconstruction/kegg/kegg*_core/
#software
software/scip/
software/blast+/
software/diamond/
software/hmmer/
software/WoLFPSORT/
src/external/scip/
src/external/blast+/
src/external/diamond/
src/external/hmmer/
src/external/WoLFPSORT/
!.keep
#doc

Expand Down
Loading
Loading