Skip to content

feat: added registries to community section#2632

Open
lolrobbe2 wants to merge 2 commits intopremake:masterfrom
lolrobbe2:add-registries
Open

feat: added registries to community section#2632
lolrobbe2 wants to merge 2 commits intopremake:masterfrom
lolrobbe2:add-registries

Conversation

@lolrobbe2
Copy link
Contributor

@lolrobbe2 lolrobbe2 commented Feb 27, 2026

What does this PR do?

This creates a new registries page (did no know where to put these otherwise?)

Anything else we should know?

Any Modules are welcome to be registered!

There is a public rate limited search api available if other projects wan't to integrate the public registry

You can now support Premake on our OpenCollective. Your contributions help us spend more time responding to requests like these!

@lolrobbe2 lolrobbe2 changed the title feat: adde registries to community section feat: added registries to community section Feb 27, 2026
Copy link
Contributor

@Jarod42 Jarod42 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't explain to users what it is.

Still unclear what it is for me ^_^

@lolrobbe2
Copy link
Contributor Author

lolrobbe2 commented Feb 28, 2026

@Jarod42
Explanation:

common registry

common registry
A collection of public/popular libraries wich integrate with premake-manager.
These libraries can declare dependencies and ranges etc... Then a versions will be matched by premake-manager-cli and installed. these registries are created via github repo's.

Note

People can create their own common registries and add them to their workflow via premake-manager

public registry

registry
The public registry is for individual premake users who wan't to share their libraries and modules.
these can be registered via the UI and github login.
They also can integrate with premake-manager-cli but they also can be used standalone as git submodule etc..

premake manager:

the IDE extensions for:

  1. visual studio
  2. visual studio code
  3. clion...
    might need some help to word this better :)

@lolrobbe2 lolrobbe2 requested a review from Jarod42 February 28, 2026 19:47
@lolrobbe2
Copy link
Contributor Author

if there are popular libraries you can think about, that i should add. Let me know.

@Jarod42
Copy link
Contributor

Jarod42 commented Mar 3, 2026

As I understand (and it seems it was not clear for whole premake team), registry are a collection of premake scripts for projects (not using premake originally?).
One concern, if it is the case, is the possibility for the scripts to become out of date quickly (without notice).

Unclear to me how to use them without Premake Manager.
Demo/example would probably make the thing more clear.

If purpose is only for Premake Manager, then enrich https://premake.github.io/community/extensions section with those information might be more appropriate.

As I understand, Premake Manager will download the project and the associated script.

Personally, I use submodules, and either use project build system for regular install, or rewrite premake script if simple to incorporate in my solution.

@lolrobbe2
Copy link
Contributor Author

As I understand (and it seems it was not clear for whole premake team), registry are a collection of premake scripts for
projects (not using premake originally?). (yes this is the goal of the common-registry)

If purpose is only for Premake Manager, then enrich https://premake.github.io/community/extensions section with those >information might be more appropriate. (ill move the part about the common-registry there)

premake manager:

  1. will download and version match the requested libraries and gather necesarry dependencies.
  2. and define the versions in the premake-system.lua file. thus allowing specific version changes to be done

public registry (website)

  1. allows people to share their libraries and modules
  2. you can also use these as submodules if desired.
  3. Meant for general use without premake-manager.

common-registries

  1. meant for use with premake-manager-cli
  2. can define dependencies (should make this more clear!)

@Jarod42
Copy link
Contributor

Jarod42 commented Mar 3, 2026

From that description, I understand:

  • premake manager looks like a source package manager, and seems unrelated to premake (alternative to Conan, vcpkg, submodules...).
  • common-registries seems to be the "internal" database of premake manager.
  • public registry: place to indicate (library) projects which use/provide premake scripts. (Might go in https://premake.github.io/community/showcase ?)

Demo/example would probably make the thing more clear.

@lolrobbe2
Copy link
Contributor Author

@Jarod42 ill try and work out a comprehensive demo over the next couple days to make things more clear. but your understanding is pretty much on point.

the only exception is that the default common-registry (database) is also searchable from the public registry.

#common registry: goal:

Provide tailor made premake scripts for projects not initialy using premake, and add dependency resolution using semver ranges.

ill have to work something out for this:
One concern, if it is the case, is the possibility for the scripts to become out of date quickly (without notice).

DEMO

premakeDependencies.yml

this file defines what dependencies volk has:

libraries:
- name: KhronosGroup/Vulkan-Headers
  version: '@' #use parent version

premake5.lua

require "vulkan-headers"
project "volk"
	language    "C"
    kind        "StaticLib"  
	warnings    "Off"
    defines {
        "_LIB",
        "API_NAME=\"vulkan\"",
    }
    includedirs {
        ".",
    }
    files {
        "volk.c",
        "volk.h",
    }
    links {
        "Vulkan-Headers"
    }
    filter "platforms:Windows"
        defines {
            "VK_USE_PLATFORM_WIN32_KHR",
        }
    filter("platforms:Linux")
        defines {
            "VK_USE_PLATFORM_XCB_KHR",
        }

premakeLib.yml

name: volk
description: meta loader for vulkan api

premakeIndex.yml

this file is a collection of all the libraries and brief descriptions meant for searching etc.

remote: https://github.com/lolrobbe2/premake-common-registry
libraries:
  madler:
  - name: zlib
    description: a massively spiffy yet delicately unobtrusive compression library (also free, not to mention unencumbered by patents)
  cyan4973:
  - name: xxhash
    description: extremely fast non-cryptographic hash algorithm
  nothings:
  - name: stb
    description: stb single-file public domain libraries for c/c++
  khronosgroup:
  - name: vulkan-headers
    description: vulkan header files and api registry
  zeux:
  - name: volk
    description: meta loader for vulkan api
  nemtrif:
  - name: utfcpp
    description: utf-8 with c++ in a portable way

Comment on lines +7 to +30
## Premake Manager

The following registries are fully integrated with **premake-manager**.

### [Common Registry](https://github.com/lolrobbe2/premake-common-registry)

A collection of public and popular libraries designed to integrate seamlessly with **premake**.

* **Dependency Management:** Libraries can declare dependencies, version ranges, and more.
* **Version Matching:** The `premake-manager-cli` automatically matches and installs the correct versions.
* **Customizable:** These registries are created via GitHub repositories and premake manager; users can create their own common registries and add them to their specific workflows via **premake-manager-cli** and derived extensions.

### [Public Registry](https://premake-registry-ywxg.onrender.com/)

The public registry is a hub for individual Premake users who want to share their libraries and modules with the community.

* **Easy Registration:** Modules can be registered via a web UI using GitHub login.
* **Flexible Integration:** While they integrate with `premake-manager-cli`, they are also designed to be used standalone (e.g., as Git submodules).
* **Search API:** Provides a public API dedicated to searching for available modules and libraries, allowing for integration into external tools and scripts.

---

> [!NOTE]
> Developers are encouraged to create their own common registries to manage internal dependencies within their team's specific Premake workflow.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is way too much information and reads like this is an official part of Premake - especially with the note at the end. This should follow the same format as Modules and Extensions, where each item is just a single line with just enough information to know what it is.

Something like this:

## Registries

- [premake-common-registry](https://github.com/lolrobbe2/premake-common-registry) : The common registry for [Premake Manager](https://github.com/lolrobbe2/premake-manager).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants