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

Add template renderer for Databricks templates #589

Merged
merged 30 commits into from
Jul 21, 2023

Conversation

shreyas-goenka
Copy link
Contributor

Changes

This PR adds the renderer struct, which is a walker that traverses templates and generates projects from them

Tests

Unit tests

@shreyas-goenka shreyas-goenka changed the title [WIP] Add template renderer for Databricks templates Add template renderer for Databricks templates Jul 19, 2023
Copy link
Contributor

@pietern pietern left a comment

Choose a reason for hiding this comment

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

Nice work! Some cleanup remaining and a couple questions.

libs/template/renderer.go Outdated Show resolved Hide resolved
libs/template/renderer.go Outdated Show resolved Hide resolved
libs/template/renderer.go Outdated Show resolved Hide resolved
}

// execute the contents of the file as a template
content, err := r.executeTemplate(string(contentTemplate))
Copy link
Contributor

Choose a reason for hiding this comment

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

This means we also pass binaries/non-template files into the template execution.

I'm thinking we may need to revisit a .tmpl extension for templates because files with binary data likely won't parse as a template, or worse, parse as a template and produce some invalid output.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Doing this as a followup

libs/template/renderer.go Outdated Show resolved Hide resolved
libs/template/renderer.go Show resolved Hide resolved
libs/template/renderer.go Outdated Show resolved Hide resolved
libs/template/renderer.go Outdated Show resolved Hide resolved
libs/template/renderer.go Outdated Show resolved Hide resolved
libs/template/testdata/fail/template/hello Outdated Show resolved Hide resolved
libs/template/helpers.go Outdated Show resolved Hide resolved
libs/template/renderer.go Show resolved Hide resolved
Copy link
Contributor

@pietern pietern left a comment

Choose a reason for hiding this comment

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

Looks great, thank you!

As discussed let's do the mandatory .tmpl extension to avoid parsing non-template files as templates in a follow up PR.

libs/template/renderer.go Show resolved Hide resolved
libs/template/renderer.go Show resolved Hide resolved
@shreyas-goenka shreyas-goenka merged commit 02dbac7 into main Jul 21, 2023
3 of 4 checks passed
shreyas-goenka added a commit that referenced this pull request Jul 21, 2023
@shreyas-goenka shreyas-goenka deleted the add-template-renderer branch July 21, 2023 09:05
shreyas-goenka added a commit that referenced this pull request Jul 21, 2023
## Changes
Due to a bug in Github UI, #589
got merged without passing the go/fmt formatting checks

This PR fixes the formatting which breaks the PR checks
@mgyucht mgyucht mentioned this pull request Jul 27, 2023
github-merge-queue bot pushed a commit that referenced this pull request Jul 27, 2023
Breaking Change:
* Require include glob patterns to be explicitly defined
([#602](#602)).

Bundles:
* Add support for more SDK config options
([#587](#587)).
* Add template renderer for Databricks templates
([#589](#589)).
* Fix formatting in renderer.go
([#593](#593)).
* Fixed python wheel test
([#608](#608)).
* Auto detect Python wheel packages and infer build command
([#603](#603)).
* Added support for artifacts building for bundles
([#583](#583)).
* Add support for cloning repositories
([#544](#544)).
* Add regexp compile helper function for templates
([#601](#601)).
* Add unit test that raw strings are printed as is
([#599](#599)).

Internal:
* Fix tests under ./cmd/configure if DATABRICKS_TOKEN is set
([#605](#605)).
* Remove dependency on global state in generated commands
([#595](#595)).
* Remove dependency on global state for the root command
([#606](#606)).
* Add merge_group trigger for build
([#612](#612)).
* Added support for build command chaining and error on missing wheel
([#607](#607)).
* Add TestAcc prefix to filer test and fix any failing tests
([#611](#611)).
* Add url parse helper function for templates
([#600](#600)).
* Remove dependency on global state for remaining commands
([#613](#613)).
* Update CHANGELOG template
([#588](#588)).
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