Skip to content

Conversation

@jemiahw
Copy link
Collaborator

@jemiahw jemiahw commented Jun 3, 2025

The code change itself is relatively small and straightforward:

  • Add the new metalable in etre.go
  • Add the validations in validate.go
  • Maintain the label in store.go
  • Update the CLI to pretty-print in a human readable form (instead of the raw Unix nano time)

The test changes were more involved, particularly because the timestamps are not deterministic. Most of the tests that validate actual data now follow a pattern where they put the actual values into the expected entity for the assert.Equal(t, expected, actual), and then do a separate check that the actual time is a realistic value (in the last few seconds).

Also fixed a bug with Entity.Rev(). It expected an int type, but json.Unmarshal sets it to a float64 which caused a panic. Now that is fixed to allow the various int flavors and float.

@jemiahw jemiahw requested a review from Copilot June 3, 2025 23:48
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds new metadata fields (_created and _updated) to entities and updates related validations, storage, CLI presentation, and tests.

  • Adds getter functions for _created and _updated in the entity model
  • Updates validation logic and tests to account for the new metalabels
  • Adjusts the CLI output and store operations to handle human-readable timestamps

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
etre.go Adds _created/_updated constants and getter methods to expose timestamps
es/es.go Converts metalabel timestamps to RFC3339Nano for CLI output
entity/validate*.go Updates validations and tests to reject metalabels on creation
entity/v09_test.go Adjusts tests to include the new metalabels
entity/store*.go Integrates _created/_updated handling in creation and update operations
client_test.go & api/* Updates tests to correctly convert and verify new timestamp metalabels

Copy link
Collaborator

@qian-squareup qian-squareup left a comment

Choose a reason for hiding this comment

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

lgtm

The code change itself is relatively small and straightforward:
* Add the new metalable in etre.go
* Add the validations in validate.go
* Maintain the label in store.go
* Update the CLI to pretty-print in a human readable form (instead of the raw Unix nano time)

The test changes were more involved, particularly because the timestamps are not deterministic. Most of the tests that validate actual data now follow a pattern where they put the actual values into the expected entity for the assert.Equal(t, expected, actual), and then do a separate check that the actual time is a realistic value (in the last few seconds).

Also fixed a bug with Entity.Rev(). It expected an int type, but json.Unmarshal sets it to a float64 which caused a panic. Now that is fixed to allow the various int flavors _and_ float.
@jemiahw jemiahw merged commit e65cc58 into master Jun 4, 2025
1 check passed
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.

5 participants