feat: added registries to community section#2632
feat: added registries to community section#2632lolrobbe2 wants to merge 2 commits intopremake:masterfrom
Conversation
Jarod42
left a comment
There was a problem hiding this comment.
It doesn't explain to users what it is.
Still unclear what it is for me ^_^
|
@Jarod42 common registrycommon registry Note People can create their own common registries and add them to their workflow via premake-manager public registryregistry premake manager:the IDE extensions for:
|
|
if there are popular libraries you can think about, that i should add. Let me know. |
da206ee to
b020ddd
Compare
|
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?). Unclear to me how to use them without Premake Manager. 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. |
premake manager:
public registry (website)
common-registries
|
|
From that description, I understand:
Demo/example would probably make the thing more clear. |
|
@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.
DEMOpremakeDependencies.ymlthis file defines what dependencies volk has: libraries:
- name: KhronosGroup/Vulkan-Headers
version: '@' #use parent versionpremake5.luarequire "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.ymlname: volk
description: meta loader for vulkan apipremakeIndex.ymlthis 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 |
| ## 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. |
There was a problem hiding this comment.
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).
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!