Skip to content

Add template renderer for Databricks templates - #589

Merged
shreyas-goenka merged 30 commits into
mainfrom
add-template-renderer
Jul 21, 2023
Merged

Add template renderer for Databricks templates#589
shreyas-goenka merged 30 commits into
mainfrom
add-template-renderer

Conversation

@shreyas-goenka

Copy link
Copy Markdown
Contributor

Changes

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

Tests

Unit tests

@shreyas-goenkashreyas-goenka changed the title [WIP] Add template renderer for Databricks templatesAdd template renderer for Databricks templatesJul 19, 2023

@pieternpietern left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadlibs/template/renderer.go Outdated
Comment threadlibs/template/renderer.go Outdated
Comment threadlibs/template/renderer.go Outdated
}

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

Copy link
Copy Markdown
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
Copy Markdown
ContributorAuthor

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

Comment threadlibs/template/renderer.go Outdated
Comment threadlibs/template/renderer.go
Comment threadlibs/template/renderer.go Outdated
Comment threadlibs/template/renderer.go Outdated
Comment threadlibs/template/renderer.go Outdated
Comment threadlibs/template/testdata/fail/template/hello Outdated
Comment threadlibs/template/helpers.go Outdated
Comment threadlibs/template/renderer.go

@pieternpietern left a comment

Copy link
Copy Markdown
Contributor

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.

Comment threadlibs/template/renderer.go
Comment threadlibs/template/renderer.go
@shreyas-goenka
shreyas-goenka merged commit 02dbac7 into mainJul 21, 2023
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
@mgyuchtmgyucht mentioned this pull request Jul 27, 2023
github-merge-queueBot 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)).
denik pushed a commit that referenced this pull request May 20, 2026
## Changes
This PR adds the renderer struct, which is a walker that traverses
templates and generates projects from them
## Tests
Unit tests
denik pushed a commit that referenced this pull request May 20, 2026
## 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
denik pushed a commit that referenced this pull request May 20, 2026
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 freeto 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

@shreyas-goenka@pietern@andrewnester