This commit is contained in:
2026-08-08 22:39:18 +08:00
parent d2cda83810
commit 1354aa54ba
7 changed files with 37 additions and 0 deletions
@@ -177,3 +177,6 @@ Before handoff, verify:
- Public headers compile alone and the standalone install consumer works.
- Adminive still builds/tests if the public Structive contract changed.
- Only checks actually run are reported as passing.
## Release workflow
Structive currently ships without third-party library dependencies. Standalone install/export must stay self-contained apart from the C++ standard library, and `RELEASE.md` must remain part of the installed release metadata. The source tree does not declare an outbound license for Structive project-owned code; do not generate one without an explicit owner decision.
+5
View File
@@ -87,3 +87,8 @@ When Structive is edited inside Adminive, also run the relevant Adminive tests b
6. Runtime adapter result semantics, including copy-write support.
7. Extension-to-Core dependency direction.
8. Public-header independence, compile-fail matrix, install consumer, and Adminive consumer compatibility.
## Release policy
- Structive currently has no third-party library dependency in its standalone package. Do not add one casually or inherit Adminive adapter dependencies.
- Keep `RELEASE.md` installed with the standalone package and keep the install-consumer gate green.
- No outbound license for Structive project-owned code is declared in this tree. Do not invent or infer one.
+1
View File
@@ -23,6 +23,7 @@ if(STRUCTIVE_INSTALL)
configure_package_config_file("${CMAKE_CURRENT_LIST_DIR}/cmake/StructiveConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/StructiveConfig.cmake" INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Structive")
write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/StructiveConfigVersion.cmake" VERSION "${PROJECT_VERSION}" COMPATIBILITY SameMajorVersion)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/StructiveConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/StructiveConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Structive")
install(FILES "${CMAKE_CURRENT_LIST_DIR}/RELEASE.md" "${CMAKE_CURRENT_LIST_DIR}/THIRD_PARTY_NOTICES.md" DESTINATION "${CMAKE_INSTALL_DATADIR}/Structive")
endif()
if(PROJECT_IS_TOP_LEVEL AND STRUCTIVE_BUILD_TESTS AND STRUCTIVE_INSTALL)
add_test(NAME structive_install_consumer_test COMMAND "${CMAKE_COMMAND}" "-DSTRUCTIVE_SOURCE_DIR=${CMAKE_CURRENT_LIST_DIR}" "-DSTRUCTIVE_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}" "-DSTRUCTIVE_CONFIG=$<CONFIG>" "-DSTRUCTIVE_GENERATOR=${CMAKE_GENERATOR}" "-DSTRUCTIVE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}" "-DSTRUCTIVE_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET}" -P "${CMAKE_CURRENT_LIST_DIR}/cmake/RunInstallConsumer.cmake")
+2
View File
@@ -365,3 +365,5 @@ Standalone configuration exposes `STRUCTIVE_BUILD_EXAMPLES`, `STRUCTIVE_BUILD_TE
- [设计理念与原则(中文)](docs/DESIGN.zh-CN.md)
- [核心使用指南(中文)](docs/CORE_GUIDE.zh-CN.md)
- [扩展体系(中文)](docs/EXTENSIONS.zh-CN.md)
- [Release Policy](RELEASE.md)
- [Third-Party Notices](THIRD_PARTY_NOTICES.md)
+16
View File
@@ -0,0 +1,16 @@
# Structive Release Policy
Structive Core and the bundled Presentation extension have no third-party library dependency in the current standalone CMake package. Keep that property unless a deliberate architecture change requires otherwise.
The Structive source tree does not currently declare an outbound license for project-owned code. Do not infer a project license from Adminive or from dependencies used by an embedding project.
Standalone release verification must keep these gates green:
- Debug and Release tests.
- Public-header independent compilation.
- Compile-fail contract matrix.
- Standalone install/export consumer using `find_package(Structive CONFIG)`.
- Sanitizer/concurrency checks where supported.
- Adminive consumer tests when Structive public behavior changes.
Installed Structive packages should contain Structive's public headers, CMake package metadata, and this release policy only; they must not acquire Adminive adapter/UI/HTTP dependencies.
+5
View File
@@ -0,0 +1,5 @@
# Structive Third-Party Notices
The current standalone Structive Core and Presentation extension do not bundle or require third-party libraries beyond the C++ standard library.
This notice does not declare or grant an outbound license for Structive project-owned code. No such project license is declared by this source tree.
+5
View File
@@ -20,6 +20,11 @@ execute_process(COMMAND ${install_command} RESULT_VARIABLE install_result)
if(NOT install_result EQUAL 0)
message(FATAL_ERROR "Failed to install Structive")
endif()
foreach(path IN ITEMS "${prefix}/share/Structive/RELEASE.md" "${prefix}/share/Structive/THIRD_PARTY_NOTICES.md")
if(NOT EXISTS "${path}")
message(FATAL_ERROR "Structive install is missing release metadata: ${path}")
endif()
endforeach()
set(configure_command "${CMAKE_COMMAND}" -S "${STRUCTIVE_SOURCE_DIR}/install_consumer" -B "${consumer_binary}" "-DCMAKE_PREFIX_PATH=${prefix}")
if(DEFINED STRUCTIVE_GENERATOR AND NOT STRUCTIVE_GENERATOR STREQUAL "")
list(APPEND configure_command -G "${STRUCTIVE_GENERATOR}")