wiki:G8SourceLayout

Version 3 (modified by wenzeslaus, 4 years ago) ( diff )

--

GRASS 8 new source layout

Rationale: At the moment source directory top level is a mess — distribution / OS specific folders are mixed with source code folders. Moving all source to src would make directory layout cleaner. G8 release is a great opportunity to break everything to make life better. Keep in mind — this is just a proposal to start discussion! Add your input to make it happen.

Folder structure

How to read: new folder name at the top level, current folders listed below. How to write: add your comments to any item you think should be moved somewhere else etc.

CI

Continuous Integration: scripts, lists of dependencies, configurations which are not part of the specific CI configuration files.

Not all files will be here. For example workflows of GitHub Actions will be in their dedicated directory.

Questions:

  • Do we need this as a separate entry or it should go into packaging?
    • It is not clear which dependencies go.
    • CI is also running tests which is not necessarily (main focus of) packaging.

doc

Documentation, that is not individual module help files.

  • doc

src

All source of GRASS. Should contain everything worth compiling.

Questions:

  • What would qualify as compiling or source code?
  • Should include be part of this? Some projects have it at the top level.

Subdirectories:

  • db
  • display
  • general
  • gui
  • imagery
  • include
  • lib
  • locale or should go to the top level?
  • misc
  • ps
  • raster
  • raster3d
  • scripts
  • temporal
  • vector

packaging

Every distribution or platform specific scripts, build recipes etc. Question Are there some packaging systems that require its related files to live on the top level?

  • docker
  • macosx
  • mswindows
  • rpm
  • singularity
  • tools/vagrant => vagrant

utils

Helper scripts not intended to be installed as a part of GRASS package.

  • tools

tests

Testing infrastructure.

  • demolocation
  • testsuite
Note: See TracWiki for help on using the wiki.