Closed crhntr closed 8 months ago
We have created an issue in Pivotal Tracker to manage this. Unfortunately, the Pivotal Tracker project is private so you may be unable to view the contents of the story.
The labels on this github issue will be updated when the story is started.
We reviewed the PR with Riz and Preethi and we think the changes are ok. Derek gave us with some context about the Golden path that helped us understand better the reason behind these changes, however, one feedback we have for future PRs, is to try and separate feature work from refactors since those make the PRs too big and not so easy to review.
@crhntr please let us know when you finish doing changes in the PR and mark it as Ready for Review
so we can go ahead and merge it.
I spent all day Friday trying to figure out why the acceptance test was sometimes failing on new commits in CI. I did not figure it out. I will try to pick it up on Wednesday.
@ram-pivot was super helpful in figuring this out. We got it now! The fix was to now just use unix epoc instead of commit timestamp. "zeroing" time stamps is how Ko does this when you don't override the timestamp. I suspect we don't need to add a flag to override the zero value. Pairing across time zones made finding this bug much easier."
zipinfo -v
and diff
were the main tools we used to figure out the problem.
TL;DR: This change set includes a new command, minor changes to kiln bake, and some public changes to the Go packages.
The theme for these changes is supporting the centralized build system for Tanzu Tiles.
Tiles will now be (sha256) identical between kiln versions.
Dev Notes
Omit Kiln Version from Product Template
kiln bake
no longer adds the kiln version to the product template. To keep track of which kiln version was used to bake a tile, authors should use the--final
flag and commit the resulting bake record to the repository. I considered falling back to add the kiln_version when the --final flag was not used but can add that later if needed and want to propose the smallest change set.Add a
kiln re-bake
CommandThe new command
kiln re-bake
takes a path to a bake record and builds a tile byte for byte like it was built before. I intend to merge this into the kiln bake command but the control flow in the bake command is not clear and this proposed new command keeps the change as small as possible. As bake is refactored, we can merge in the functionality with reduced risk.Add Tile Path to Bake Record
The Bake record now keeps track of a relative path from the repository root to the tile root (aka where the Kilnfile exists). This will make restructuring tile repos easier and reduce coupling between Golden Path configuration and tile repositories across revisions.
Create a
bake
PackageThis will be the destination for refactored baking code. This package currently contains the
bake.Record
which is a data-structure for checksums and metadata about a tile build. The bake record maps source revisions, kiln versions, and tile checksums.