Skip to content
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

Expand upon the SourceElement idea #860

Merged
merged 31 commits into from
Feb 28, 2024

Conversation

lacasseio
Copy link
Member

The SourceElement concept comes from the newer native effort from Gradle core (way back) and is a very convenient way to isolate elements of sources for text fixtures. We used the same fixtures to create the source code for the samples as it's a general-purpose programmatic templating engine. The major drawback with the SourceElement API is the inability to edit the embedded source code easily. We wrote some custom logic a while back to generate the matching SourceElement for pre-defined directories. Although the idea is good, we must switch between three contexts: SourceElement, pre-defined directories and the build system itself. A better approach is to stay with the SourceElement when authoring the fixtures and optionally attach the element to a file/directory on disk. Then, we can leave the build system to perform the link and ensure the files/directories are accessible at runtime.

It simplifies everything with the following steps:
1- Author "test projects" to ensure the correctness of the source element required
2- Create the source element API layer (built however a developer wants)
3- Use the SourceElement as normal classes for our template needs

This work will unblock the better sample authoring story.

We want to move all of our plugins to use the ModelMap API as it will
allow for better discovery and reporting.

Signed-off-by: Daniel Lacasse <[email protected]>
Signed-off-by: Daniel Lacasse <[email protected]>
We should have a specific API for this use case, but for now, this
solution is good enough.

Signed-off-by: Daniel Lacasse <[email protected]>
Signed-off-by: Daniel Lacasse <[email protected]>
We will circle back to those project later.

Signed-off-by: Daniel Lacasse <[email protected]>
@lacasseio lacasseio self-assigned this Feb 28, 2024
@lacasseio lacasseio merged commit d734313 into lacasseio/release-1.0-development Feb 28, 2024
6 of 13 checks passed
@lacasseio lacasseio deleted the lacasseio/source-elements branch February 28, 2024 18:45
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.

1 participant