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. Maintainer information

4. Registering module in global registry


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.

The core packages should be in the nest root or in plugin/ directory (that is customary when package adopts some existing code for use with U++). Other recommended packages are examples and tests. If module contains package for automated testing, they should go to autotest (such packages should finish with exit code 0 if test passes, with some nonzero exit code otherwise).


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 cxl on 03/04/2021. Do you want to contribute?. T++