-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add creation of variant docs #113
Conversation
Test Results42 tests 42 ✅ 3m 5s ⏱️ Results for commit 327872c. ♻️ This comment has been updated with latest results. |
f91b678
to
6308d97
Compare
9014896
to
63b230d
Compare
63b230d
to
12cac27
Compare
12cac27
to
642b15f
Compare
5353ef3
to
f0e0caa
Compare
bc4616a
to
fedd9f7
Compare
fedd9f7
to
b5c8923
Compare
8b1fb2d
to
1cae615
Compare
df8278d
to
0da12f4
Compare
cookiecutter = {version="==2.1.1"} | ||
gcovr = "*" | ||
hammocking = "*" | ||
kconfiglib = "*" | ||
|
||
[dev-packages] | ||
jinja2 = "*" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copied all dependencies from SPLED to make sure the docs and spl-core python integration tests are working.
Keep in mind that the integration tests are using the spl-core python venv, that is why we have to add so many dev dependencies.
@@ -1 +1,4 @@ | |||
📄 About |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Create extra chapter to avoid the long list of CHANGELOG entries in the main toc tree.
@@ -0,0 +1,19 @@ | |||
✨ Features |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This chapter describes the main spl-core features for the users.
@@ -4,25 +4,27 @@ Basic Concepts and Naming Conventions | |||
What is a Software Product Line (SPL)? | |||
-------------------------------------- | |||
|
|||
An SPL is a software project that contains shared and configurable source code elements known as `components <https://engweb.marquardt.de/sple/spl-core/develop/getting_started/concepts.html#what-is-a-component>`_, which are used to develop several versions of a computer program, also known as `variants <https://engweb.marquardt.de/sple/spl-core/develop/getting_started/concepts.html#what-is-a-variant>`_. | |||
An SPL is a software project that contains shared and configurable source code elements known as :ref:`components <what_is_a_component>`, which are used to develop several versions of a computer program, also known as :ref:`variants <what_is_a_variant>`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove all hardcoded references!
@@ -1,8 +1,9 @@ | |||
🔧 Reference | |||
🛠️ Reference |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The old emoji was looking like a bone 😞
@@ -26,8 +26,7 @@ def configure(self, variant: Variant, build_kit: str = "prod"): | |||
f" -B{self.workspace_artifacts.get_build_dir(variant, build_kit)}" | |||
f" -G Ninja " | |||
f" -DBUILD_KIT:STRING={build_kit}" | |||
f" -DFLAVOR:STRING={variant.flavor}" | |||
f" -DSUBSYSTEM:STRING={variant.subsystem}" | |||
f" -DVARIANT:STRING={variant.to_string()}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SPL core needs to know about a variant. The flavor and subsystem information is obsolete.
@@ -4,25 +4,30 @@ verify_ssl = true | |||
name = "pypi" | |||
|
|||
[packages] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copy all dependencies from SPLED to get the documentation and integration tests working
cmake/common.cmake
Outdated
|
||
") | ||
|
||
# create the code coverage rst file |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Create coverate rst file to be able to automatically link to the coverage/index.html
\"component_test_junit_xml\": \"${_component_test_junit_xml}\", | ||
\"include_patterns\": [\"${_rel_component_doc_dir}/**\",\"${_rel_sphinx_output_dir}/**\"] | ||
}") | ||
\"component_info\": ${_component_info}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to store multiple keys for a component. All component relevant info is stored in component_info
set(_cov_out_html reports/html/${_rel_component_reports_out_dir}/coverage/index.html) | ||
file(RELATIVE_PATH _cov_out_json ${CMAKE_CURRENT_BINARY_DIR} ${_component_coverage_json}) | ||
add_custom_command( | ||
OUTPUT ${_cov_out_html} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the component report, one needs to generate the coverage/index.html inside the component report sphinx output directory. This will avoid the need to copy the coverage/* directory inside the component report sphinx output directory.
) | ||
|
||
# No OUTPUT is defined to force execution of this target every time | ||
add_custom_target( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to split the component doxygen generation target because it is required by both, the component and variant reports.
") | ||
|
||
# Iterate over all components and create coverage and doxysphinx variant specific targets | ||
foreach(component_info ${COMPONENTS_INFO}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For every component we need to create specific coverage and doxysphinx targets to make sure the output files are generate in the overall variant sphinx output directory. This will avoid the need to copy all the component coverage and doxygen files from the component directories to the variant directory.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🚀🤖
backup