Skip to content

Clean project structure for v3 - #761

Closed
ae-tafur wants to merge 3 commits into
develop3from
clean_project_structure
Closed

ae-tafur wants to merge 3 commits into
develop3from
clean_project_structure

Conversation

@ae-tafur

Copy link
Copy Markdown
Collaborator

Main improvements in this PR:

Justification: The repository root held about 25 top-level folders, with source code, tests, generated docs, third-party code and binaries all mixed together. This made it hard to navigate and put every folder on the MATLAB path. This PR moves to a conventional layout (src/, tests/, docs/, tutorials/, img/). It changes no behaviour, and all paths that depended on the old layout are updated.

  • refactor:
    • Moved all source folders (analysis, annotation, biomass, comparison, conditions, conversion, core, curation, deprecated, gapfilling, INIT, installation, io, localization, manipulation, queries, reconstruction, solver, tasks, utils, visualization) under src/.
    • Moved third-party code and external binaries (GLPKmex, libSBML, m2html, mafft, scip, WoLFPSORT, blast+, diamond, hmmer) from software/ to src/external/.
    • Renamed testing/ to tests/ and tutorial/ to tutorials/ (data files now in tutorials/data/).
    • Moved generated HTML documentation from doc/ to docs/html/ and readme/ to docs/readme/.
    • Moved RAVEN.png to img/.
  • fix:
    • findRAVENroot located the installation through RAVEN.png in the root. It now uses version.txt, so moving the image does not break root detection.
    • Updated hard-coded paths to the new layout in checkRaven, optimizeProb, setRavenSolver, downloadRavenBinaries, getBlast, getDiamond, getKEGGModelForOrganism, ravenCobraWrapper, standardizeModelFieldOrder, runRAVENtests and the KEGG functions.
    • updateDocumentation now scans src/ and writes to docs/html/. It also no longer references the removed legacy/software folder.
    • Updated the test suite (tSyntax, tBinaries, tInstallation, tIO, tTasks, tGenomeData, tReconstruction, tManipulation, RavenTestCase) to the new paths.
  • documentation:
    • Updated README link, tutorial1.m, CONTRIBUTING.md, tests README and _config.yml (logo and keep_files) to the new paths.
  • ci:
    • Updated tests.yml, documentation.yml, release-bundle.yml, assemble_offline_software.py and .gitignore to the new paths.
  • testing:
    • Ran the full function test suite in MATLAB R2026a: 357 passed, 0 failed, 39 incomplete (need a solver, the Parallel Computing Toolbox or binaries not available locally right now).

Instructions on merging this PR:

  • 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.

@ae-tafur
ae-tafur requested a review from edkerk October 10, 2026 19:26
@ae-tafur ae-tafur added the enhancement Possible enhancement that should be considered for future versions. label Oct 10, 2026
@github-actions

Copy link
Copy Markdown

Function test results

393 tests   354 ✅  1m 9s ⏱️
 24 suites   39 💤
  1 files      0 ❌

Results for commit 2677d51.

@edkerk

edkerk commented Oct 16, 2026

Copy link
Copy Markdown
Member

Development of this pull request continues in CompMetEng/RAVEN#2, which has the same commits on the copied history.

@edkerk edkerk closed this Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Possible enhancement that should be considered for future versions.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants