Status & Roadmap
Authors & License
Funding Ultimate++
Search on this site

SourceForge.net Logo


Table of contents


1. User perspective

2. UppHub module developer perspective

3. UppHub maintainer information


1. User perspective

UppHub is a system intended to catalogue and install independently developed U++ packages.



UppHub is accessible from TheIDE menu Setup/UppHub or from the package selection.



UppHub modules are basically U++ nests (means they can contain multiple packages, including examples and testing code) which are automatically installed by cloning Git repository into common directory. U++ project system then automatically adds all nests from this folder at the end of assembly which makes all installed UppHub packages available for all projects.

Default location of this common folder is in TheIDE configuration folder, but this can be changed on per assembly setup:



or even globally from TheIDE Setup/Settings... menu:




2. UppHub module developer perspective

U++ modules are developed as git repositories representing U++ nests. The name of module and of core packages that are intended to be used in other projects should have unique name (not that most often there will be one such package and its name will be the same as the name of module). Module nest can also contain some main-package: examples and testing packages. Following rules are suggested:

do not mix packages in single UppHub nest that are solving different problems (like mixing SysInfo with STEM4U)

try to make sure the package names that are to be used are unique (obvious reasons) - does not apply the name of examples, tests and other main packages that come with the module.

if you are adapting 3rd party code (or perhaps format), consider putting it to plugin (like plugin/md)

put examples into examples directory

put U++ style tests (those that can be be compiled / run automatically and fail with non-zero exit, e.g. with ASSERT) into autotest directory

put other tests to test


3. UppHub maintainer information

This information is only important for maintainers of UppHub. Module nests are listed in json files that are accessible through http. JSON file specifies information about individual module lists, but can also reference other lists of modules:



 "nests": [

   { "name": "Turtle",

     "packages": [ "Turtle"],

     "description": "Provides HTML5 web application with U++ plain GUI code",

     "repository": "https://github.com/mirek-fidler/Turtle.git",

     "status": "experimental",

     "category": "networking",

     "readme": "https://raw.githubusercontent.com/mirek-fidler/Turtle/master/README.md"


   { "url": "https://www.ultimatepp.org/forums/index.php?t=msg&goto=55566&#msg_55566"



 "links": [





nests array contains information about modules - its name, set of packages in the list intended to be used in projects, description, status (e.g. unstable, experimental, testing, stable..), category and the location of readme file. The repository contains the location of git https repository. Eventual tag or branch can be specified in branch. Alternatively, the entry can by defined with url which points to https location with the same content.

Additionally, the list can contain links to other lists.


Last edit by klugier on 03/10/2021. Do you want to contribute?. T++