Is there an accepted name for a system a level above a source code repository such as a git repo (but perhaps lowever level than github or cpan)? Perhaps a specific kind of CASE tool?

Facilities this might provide include:

  • providing a searchable index of functions or APIs implemented

Maybe also:

  • detecting duplication between repos
  • showing dependencies between projects

The closest definition I can find is perhaps wikipedia which calls this a forge after source forge.

I'm not sure this is the best term (I'm also not sure it refers to quite what I mean). A forge typically adds a set of tools around a repo (or project), such as support for:

  • issue tracking
  • collobaration tools like wikis etc.

Being able to integrate important tools around a repo or project as the core abstraction is certainly critical in modern use. You can add further tools such as:

  • code review,
  • static analysis
  • CI & build pipelines.

gitlab as a downloadable piece of software might be a good example or the software behind githab that provides its "repositories management" services.

But we also have package repositories which can be language specific (cabal, cargo etc) or OS specific (debian, RPM).

Package manager is a much better defined term.

Really I am thinking of tools that look at source code for a set of related projects but operate at the architecture or design level.

Perhaps something that you might use to develop a library collection (like boost).

Or that you might use to organise a collection of projects.

Or that you might use to design and document somehing like the Posix API.

Are there any less common but well defined terms (for less common tools)?

Background to the question

When I was introduced to the concept of a "code repository" >20 years ago it was part of a CASE tool. The idea was in index and categorise (potentially re-usable) software components. This is distinct from a source code version control system.

Nowadays "code respository" is synonymous with version control of source code. I rarely hear people refer to them as version control systems anymore.

Contrast https://en.wikipedia.org/wiki/Software_repository with https://en.wikipedia.org/wiki/Repository_(version_control)

The answers to Are Git repository and software repository same things? relate to this.

  • 1
    In any case, unless you have a very large team, this kind of "knowledge-sharing" is usually done with ordinary, unremarkable documentation systems. Jun 20 at 14:16
  • 2
  • 1
    There are other answers on that post that go into more detail on specifically why questions like this are problematic. Jun 20 at 14:44
  • 2
    Instead of asking for the name of something, ask about a specific software engineering problem you're having and how you might solve it. Jun 20 at 15:07
  • 2
    I think the issue with this question is that it is very vague. As you wrote by yourself, there are nowadays a lot of types of software which might fall under your general description, each one with a different focus. Hence I am very sure the literal answer to your question is simply "no, there is not one name for all the different kind of tools which might help to curate such a collection of software".
    – Doc Brown
    Jun 20 at 16:10


Browse other questions tagged or ask your own question.