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

[ui] Version Tags on the job versions page #24013

Conversation

philrenaud
Copy link
Contributor

@philrenaud philrenaud commented Sep 19, 2024

Version tag CRUD in the UI. Allows a user to create, modify, and remove version tags.

image

@philrenaud philrenaud self-assigned this Sep 19, 2024
Copy link

github-actions bot commented Sep 19, 2024

Ember Test Audit comparison

23846-nomad-job-tag-cli-command-scaffolding 74aae33 change
passes 1578 1581 +3
failures 0 0 0
flaky 0 0 0
duration 11m 54s 608ms 12m 07s 568ms +12s 960ms

<footer class="boxed-section-foot {{if this.isEditing "editing"}}">
{{#if this.isEditing}}
<form class="tag-options" autocomplete="off" {{on "submit" (action "saveTag")}}>
{{! template-lint-disable no-down-event-binding }}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is to prevent {{on "keydown" (action this.handleKeydown)}} from throwing a linting error. This method watches for an ESC keypress to close edit mode.

I have a difference of opinion with our linter, expressed better than I can do it at https://x.com/ID_AA_Carmack/status/1787850053912064005

Comment on lines +2432 to +2436
if args.Tag != nil {
reply.Name = args.Tag.Name
reply.Description = args.Tag.Description
reply.TaggedTime = args.Tag.TaggedTime
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Side effect: wanted to use the POST/PUT response here and realized I was sending back instantiated-but-not-populated data.

Copy link
Member

Choose a reason for hiding this comment

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

non-blocking: this reflects back to the user just what they passed in, but so long as we can depend on the raftApply erroring if it failed to enact their intentions, then this seems fine.

@@ -32,7 +32,7 @@
/>
<Hds::Button
data-test-confirm-button
@size="medium"
@size={{@size}}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Side effect: our two-step-buttons were always medium sized. This gives them all the flexibility of our other Helios buttons.

@philrenaud philrenaud marked this pull request as ready for review September 24, 2024 05:16
@philrenaud philrenaud force-pushed the 23846-nomad-job-tag-cli-command-scaffolding branch from 7568f47 to 185ec20 Compare September 24, 2024 13:30
@philrenaud philrenaud force-pushed the 24008-version-tag-crud-on-the-jobversions-page branch from 8421dfc to 76574d5 Compare September 24, 2024 13:47
@aimeeu aimeeu added the theme/golden-versions Tagging and preserving job versions label Sep 24, 2024
@philrenaud philrenaud force-pushed the 23846-nomad-job-tag-cli-command-scaffolding branch from 2dcc1f7 to f0905e8 Compare September 24, 2024 20:07
Copy link
Member

@gulducat gulducat left a comment

Choose a reason for hiding this comment

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

looks good to my untrained eye! (and the walkthrough you gave us made enough sense)

@philrenaud philrenaud merged commit 30c743d into 23846-nomad-job-tag-cli-command-scaffolding Sep 25, 2024
28 checks passed
@philrenaud philrenaud deleted the 24008-version-tag-crud-on-the-jobversions-page branch September 25, 2024 18:00
philrenaud added a commit that referenced this pull request Sep 25, 2024
* Tag and Untag at API level on down, but am I unblocking the wrong thing?

* Code and comment cleanup

* Unset methods generally now I stare long into the namespace abyss

* Namespace passes through with QueryOptions removed from a write requesting struct

* Comment and PR review cleanup

* Version back to VersionStr

* Generally consolidate unset logic into apply for version tagging

* Addressed some PR comments

* Auth check and RPC forwarding

* uint64 instead of pointer for job version after api layer and renamed copy

* job tag command split into apply and unset

* latest-version convenience handling moved to CLI command level

* CLI tests for tagging/untagging

* UI parts removed

* Add to job table when unsetting job tag on latest version

* Vestigial no more

* Compare versions by name and version number with the nomad history command (#23889)

* First pass at passing a tagname and/or diff version to plan/versions requests

* versions API now takes compare_to flags

* Job history command output can have tag names and descriptions

* compare_to to diff-tag and diff-version, plus adding flags to history command

* 0th version now shows a diff if a specific diff target is requested

* Addressing some PR comments

* Simplify the diff-appending part of jobVersions and hide None-type diffs from CLI

* Remove the diff-tag and diff-version parts of nomad job plan, with an eye toward making them a new top-level CLI command soon

* Version diff tests

* re-implement JobVersionByTagName

* Test mods and simplification

* Documentation for nomad job history additions

* Prevent pruning and reaping of TaggedVersion jobs (#23983)

tagged versions should not count against JobTrackedVersions
i.e. new job versions being inserted should not evict tagged versions

and GC should not delete a job if any of its versions are tagged

Co-authored-by: Daniel Bennett <[email protected]>

---------

Co-authored-by: Daniel Bennett <[email protected]>

* [ui] Version Tags on the job versions page (#24013)

* Timeline styles and their buttons modernized, and tags added

* styled but not yet functional version blocks

* Rough pass at edit/unedit UX

* Styles consolidated

* better UX around version tag crud, plus adapter and serializers

* Mirage and acceptance tests

* Modify percy to not show time-based things

---------

Co-authored-by: Daniel Bennett <[email protected]>
philrenaud added a commit that referenced this pull request Sep 25, 2024
* TaggedVersion information in structs, rather than job_endpoint (#23841)

* TaggedVersion information in structs, rather than job_endpoint

* Test for taggedVersion description length

* Some API plumbing

* Tag and Untag job versions (#23863)

* Tag and Untag at API level on down, but am I unblocking the wrong thing?

* Code and comment cleanup

* Unset methods generally now I stare long into the namespace abyss

* Namespace passes through with QueryOptions removed from a write requesting struct

* Comment and PR review cleanup

* Version back to VersionStr

* Generally consolidate unset logic into apply for version tagging

* Addressed some PR comments

* Auth check and RPC forwarding

* uint64 instead of pointer for job version after api layer and renamed copy

* job tag command split into apply and unset

* latest-version convenience handling moved to CLI command level

* CLI tests for tagging/untagging

* UI parts removed

* Add to job table when unsetting job tag on latest version

* Vestigial no more

* Compare versions by name and version number with the nomad history command (#23889)

* First pass at passing a tagname and/or diff version to plan/versions requests

* versions API now takes compare_to flags

* Job history command output can have tag names and descriptions

* compare_to to diff-tag and diff-version, plus adding flags to history command

* 0th version now shows a diff if a specific diff target is requested

* Addressing some PR comments

* Simplify the diff-appending part of jobVersions and hide None-type diffs from CLI

* Remove the diff-tag and diff-version parts of nomad job plan, with an eye toward making them a new top-level CLI command soon

* Version diff tests

* re-implement JobVersionByTagName

* Test mods and simplification

* Documentation for nomad job history additions

* Prevent pruning and reaping of TaggedVersion jobs (#23983)

tagged versions should not count against JobTrackedVersions
i.e. new job versions being inserted should not evict tagged versions

and GC should not delete a job if any of its versions are tagged

Co-authored-by: Daniel Bennett <[email protected]>

---------

Co-authored-by: Daniel Bennett <[email protected]>

* [ui] Version Tags on the job versions page (#24013)

* Timeline styles and their buttons modernized, and tags added

* styled but not yet functional version blocks

* Rough pass at edit/unedit UX

* Styles consolidated

* better UX around version tag crud, plus adapter and serializers

* Mirage and acceptance tests

* Modify percy to not show time-based things

---------

Co-authored-by: Daniel Bennett <[email protected]>

* Job revert command and API endpoint can take a string version tag name (#24059)

* Job revert command and API endpoint can take a string version tag name

* RevertOpts as a signature-modified alternative to Revert()

* job revert CLI test

* Version pointers in endpoint tests

* Dont copy over the tag when a job is reverted to a version with a tag

* Convert tag name to version number at CLI level

* Client method for version lookup by tag

* No longer double-declaring client

* [ui] Add tag filter to the job versions page (#24064)

* Rough pass at the UI for version diff dropdown

* Cleanup and diff fetching via adapter method

* TaggedVersion now VersionTag (#24066)

---------

Co-authored-by: Daniel Bennett <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
theme/golden-versions Tagging and preserving job versions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants