Skip to content
Snippets Groups Projects

Prepare common Vue app for Repository header area

All threads resolved!

What does this MR do and why?

This MR is a part of a bigger effort that aims to consolidate various tiny Vue apps in the header area of tree and blob view into one common Vue application.

Note: There's a potential for refactor, but that part will be handled in the following issues within &13018. The MRs for #497051 (closed) goal is to move everything as is.

Even though the end result should not change any UI and behaviour, it is quite a ride :smile: To ensure nothing breaks in the meantime:

  • all changes are behind a common_repository_blob_header_app=true URL param
  • elements are being moved in batches, what you're reviewing may not yet look like the old version
  • breaking the work into smaller parts means that feature tests won't pass, due to missing UI elements. That is why I decided to stub the ff and take care of the feature tests in the last step, after all other MRs are merged
  • please make sure you give it a go and thoroughly test all the buttons

The breakdown of #497051 (closed) MRs:

step status
introduce ff & move first batch of controls, move web ide button for tree header, recreate projects/tree/lock_link in Vue :arrow_left:
move code buttons (desktop & mobile) for tree header :construction:
move contents of app/views/projects/blob/_breadcrumb.html.haml :construction:
turn on feature tests for when the ff is true :construction:

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Context Before After
tree: old version with multiple Vue apps Screenshot_2024-10-11_at_09.24.42 Screenshot_2024-10-11_at_09.21.17
blob: old version with multiple Vue apps Screenshot_2024-10-11_at_09.24.24 Screenshot_2024-10-11_at_09.22.03
tree: different ref than root ref (ff off vs. ff on) Screenshot_2024-10-11_at_09.27.06 Screenshot_2024-10-11_at_09.26.28
blob Screenshot_2024-10-11_at_09.24.24 Screenshot_2024-10-11_at_09.29.40

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

  1. Go to Project overview or Code / Repository
  2. Add common_repository_blob_header_app=true param to the URL
  3. Make sure you can switch Git revision to a different name or branch
  4. After point 3 you should see Compare button. Make sure it redirects to Compare revisions page with correct data
  5. Go back to project overview
  6. Click + button next to the project's breadcrumbs and try adding a file or a branch.
  7. Click History button and make sure it opens Commits page for a revision you've selected in point 2
  8. Go back to project overview
  9. Click Find file button and make sure it opens the search modal with ~ prefix for searching for files
  10. Select a file from the tree list
  11. Make sure you can see blob controls on the right: Find file, Blame, History and Permalink. Check their behaviour.
  12. Optional: with Vue browser extension make sure you can see HeaderArea app. Then refresh the page to get the legacy blob view. The Vue extension should then list the old structure (that's the part to be moved in 4th MR from the breakdown table :top:). Here's how it should look like:
new blob legacy blob
Screenshot_2024-10-11_at_16.55.30 Screenshot_2024-10-11_at_16.53.27

Related to #497051 (closed)

Edited by Jacques Erasmus

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • I finished my review and found nothing to comment on. Nice work! :tada:

    · Leave feedback
    Edited by GitLab Duo
  • added 950 commits

    Compare with previous version

  • added 4 commits

    Compare with previous version

  • added 828 commits

    Compare with previous version

  • Paulina Sedlak-Jakubowska changed the description

    changed the description

  • I have reviewed the code and left a mix of questions and recommendations. The comments cover topics such as error handling, code documentation, feature flag implementation, and testing considerations. I estimate there is a decent amount of work required to address these points, focusing on improving robustness, maintainability, and test coverage of the code.

    · Leave feedback
    Edited by GitLab Duo
  • GitLab Duo
  • GitLab Duo
  • GitLab Duo
  • added 8 commits

    • 5d350798 - Add history button to header area app
    • d34a5f2d - Add blob controls to header area
    • 75ffb3c4 - Add breadcrumbs to header area
    • d375a7af - Add RefSelector component
    • 254cd630 - Add Find file button
    • 95a38246 - Add Compare control
    • 4db06686 - Apply current layout
    • b7d20061 - Temporarily run feature tests only for old version

    Compare with previous version

  • added 1 commit

    • ad74b921 - Temporarily run feature tests only for old version

    Compare with previous version

  • Paulina Sedlak-Jakubowska changed the description

    changed the description

  • :tools: Generated by gitlab_quality-test_tooling.


    :snail: Slow tests detected in this merge request. These slow tests might be related to this merge request's changes.

    Click to expand
    Job File Name Duration Expected duration
    #8059411402 spec/features/projects/show/user_sees_git_instructions_spec.rb#L108 Projects > Show > User sees Git instructions when project is public when project is empty when not signed in shows details 57.41 s < 50.13 s
    #8063974780 spec/features/projects/show/user_sees_git_instructions_spec.rb#L108 Projects > Show > User sees Git instructions when project is public when project is empty when not signed in shows details 57.06 s < 50.13 s
  • A deleted user added rspec:slow test detected label
  • added 1 commit

    Compare with previous version

    • Resolved by Phil Hughes

      Hey @jay_mccure, I need advice :slight_smile: I'm moving a bunch of buttons on Repository page that used to be separate tiny Vue apps into one that contains all of them. It's quite a lot of changes, so I decided to add a derisk feature flag and break it into multiple MRs. Now, the qa:selector job is failing with:

      Oct 11 2024 12:51:00 UTC (QA Tests)] WARN  -- Error: QA::Page::Project::Show - Missing view partial `/builds/gitlab-org/gitlab-foss/app/assets/javascripts/repository/components/breadcrumbs.vue`!

      But breadcrumbs are actually one of the controls that I've already included in the new Vue app :thinking: Not sure how to proceed here.

  • added 1 commit

    • d03e573b - Update a path for a QA selector

    Compare with previous version

  • A deleted user added QA label

    added QA label

  • Paulina Sedlak-Jakubowska marked this merge request as ready

    marked this merge request as ready

  • Paulina Sedlak-Jakubowska changed the description

    changed the description

  • E2E Test Result Summary

    allure-report-publisher generated test report!

    e2e-test-on-gdk: :white_check_mark: test report for f1c78fb2

    expand test summary
    +------------------------------------------------------------------+
    |                          suites summary                          |
    +-------------+--------+--------+---------+-------+-------+--------+
    |             | passed | failed | skipped | flaky | total | result |
    +-------------+--------+--------+---------+-------+-------+--------+
    | Verify      | 45     | 0      | 2       | 0     | 47    | ✅     |
    | Create      | 129    | 0      | 22      | 0     | 151   | ✅     |
    | Package     | 17     | 0      | 18      | 0     | 35    | ✅     |
    | Plan        | 76     | 0      | 0       | 0     | 76    | ✅     |
    | Data Stores | 33     | 0      | 1       | 0     | 34    | ✅     |
    | Govern      | 75     | 0      | 3       | 0     | 78    | ✅     |
    | Release     | 5      | 0      | 0       | 0     | 5     | ✅     |
    | Fulfillment | 2      | 0      | 0       | 0     | 2     | ✅     |
    | Monitor     | 8      | 0      | 0       | 0     | 8     | ✅     |
    | Secure      | 4      | 0      | 0       | 0     | 4     | ✅     |
    | Manage      | 1      | 0      | 1       | 0     | 2     | ✅     |
    | Analytics   | 2      | 0      | 0       | 0     | 2     | ✅     |
    | Ai-powered  | 0      | 0      | 1       | 0     | 1     | ➖     |
    +-------------+--------+--------+---------+-------+-------+--------+
    | Total       | 397    | 0      | 48      | 0     | 445   | ✅     |
    +-------------+--------+--------+---------+-------+-------+--------+

    e2e-test-on-omnibus: :white_check_mark: test report for 32762ade

    expand test summary
    +---------------------------------------------------------------------+
    |                           suites summary                            |
    +----------------+--------+--------+---------+-------+-------+--------+
    |                | passed | failed | skipped | flaky | total | result |
    +----------------+--------+--------+---------+-------+-------+--------+
    | Create         | 559    | 0      | 85      | 8     | 644   | ✅     |
    | Govern         | 108    | 0      | 10      | 2     | 118   | ✅     |
    | Manage         | 27     | 0      | 18      | 4     | 45    | ✅     |
    | Package        | 32     | 0      | 13      | 0     | 45    | ✅     |
    | Verify         | 50     | 0      | 15      | 0     | 65    | ✅     |
    | Data Stores    | 46     | 0      | 11      | 0     | 57    | ✅     |
    | Monitor        | 12     | 0      | 13      | 0     | 25    | ✅     |
    | Plan           | 83     | 0      | 8       | 0     | 91    | ✅     |
    | Systems        | 6      | 0      | 1       | 0     | 7     | ✅     |
    | Analytics      | 3      | 0      | 0       | 0     | 3     | ✅     |
    | Secure         | 4      | 0      | 4       | 0     | 8     | ✅     |
    | Configure      | 1      | 0      | 3       | 0     | 4     | ✅     |
    | GitLab Metrics | 2      | 0      | 1       | 0     | 3     | ✅     |
    | Fulfillment    | 4      | 0      | 7       | 0     | 11    | ✅     |
    | Ai-powered     | 1      | 0      | 2       | 1     | 3     | ✅     |
    | Release        | 5      | 0      | 1       | 0     | 6     | ✅     |
    | ModelOps       | 0      | 0      | 1       | 0     | 1     | ➖     |
    | Growth         | 0      | 0      | 2       | 0     | 2     | ➖     |
    +----------------+--------+--------+---------+-------+-------+--------+
    | Total          | 943    | 0      | 195     | 15    | 1138  | ✅     |
    +----------------+--------+--------+---------+-------+-------+--------+

    e2e-test-on-cng: :white_check_mark: test report for f1c78fb2

    expand test summary
    +------------------------------------------------------------------+
    |                          suites summary                          |
    +-------------+--------+--------+---------+-------+-------+--------+
    |             | passed | failed | skipped | flaky | total | result |
    +-------------+--------+--------+---------+-------+-------+--------+
    | Package     | 24     | 0      | 14      | 0     | 38    | ✅     |
    | Verify      | 50     | 0      | 15      | 0     | 65    | ✅     |
    | Create      | 135    | 0      | 21      | 0     | 156   | ✅     |
    | Govern      | 82     | 0      | 9       | 2     | 91    | ✅     |
    | Release     | 5      | 0      | 1       | 0     | 6     | ✅     |
    | Secure      | 1      | 0      | 6       | 0     | 7     | ✅     |
    | Plan        | 82     | 0      | 8       | 0     | 90    | ✅     |
    | Configure   | 0      | 0      | 3       | 0     | 3     | ➖     |
    | Data Stores | 33     | 0      | 10      | 0     | 43    | ✅     |
    | Monitor     | 8      | 0      | 12      | 0     | 20    | ✅     |
    | Manage      | 1      | 0      | 9       | 0     | 10    | ✅     |
    | Ai-powered  | 0      | 0      | 2       | 0     | 2     | ➖     |
    | Growth      | 0      | 0      | 2       | 0     | 2     | ➖     |
    | Fulfillment | 2      | 0      | 7       | 0     | 9     | ✅     |
    | Analytics   | 2      | 0      | 0       | 0     | 2     | ✅     |
    | ModelOps    | 0      | 0      | 1       | 0     | 1     | ➖     |
    +-------------+--------+--------+---------+-------+-------+--------+
    | Total       | 425    | 0      | 120     | 2     | 545   | ✅     |
    +-------------+--------+--------+---------+-------+-------+--------+
  • Sarah Yasonik approved this merge request

    approved this merge request

  • Sarah Yasonik removed review request for @syasonik

    removed review request for @syasonik

  • Paulina Sedlak-Jakubowska marked this merge request as draft

    marked this merge request as draft

  • removed review request for @john.mcdonnell, @olaoluro, and @ms.mondrian

  • Paulina Sedlak-Jakubowska changed the description

    changed the description

  • changed milestone to %17.6

  • Jacques Erasmus added 3450 commits

    added 3450 commits

    Compare with previous version

  • Jacques Erasmus added 235 commits

    added 235 commits

    Compare with previous version

  • added 1 commit

    • 32762ade - Update file paths in quarantined vue3 specs

    Compare with previous version

  • Jacques Erasmus changed the description

    changed the description

  • Jacques Erasmus marked this merge request as ready

    marked this merge request as ready

  • requested review from @ms.mondrian, @olaoluro, and @jay_mccure

  • Jay McCure approved this merge request

    approved this merge request

  • Olaoluwa Oluro approved this merge request

    approved this merge request

  • Olaoluwa Oluro requested review from @ghinfey and removed review request for @olaoluro

    requested review from @ghinfey and removed review request for @olaoluro

  • I have reviewed the code and left a combination of questions and recommendations. My comments cover topics such as navigation behavior, code organization, and syntax improvements. Based on the issues identified, I estimate there is a small amount of work required to address these concerns, though this is only an estimate.

    · Leave feedback
    Edited by GitLab Duo
  • GitLab Duo
  • GitLab Duo
  • Chaoyue Zhao
  • Chaoyue Zhao
  • Chaoyue Zhao
  • Gavin Hinfey approved this merge request

    approved this merge request

  • added 1 commit

    • 1d2bc9ec - Address code review comments

    Compare with previous version

  • Jacques Erasmus reset approvals from @ghinfey by pushing to the branch

    reset approvals from @ghinfey by pushing to the branch

  • added 1 commit

    • 430b4256 - Address code review comments

    Compare with previous version

  • Jacques Erasmus added 755 commits

    added 755 commits

    Compare with previous version

  • Jacques Erasmus reset approvals from @jay_mccure by pushing to the branch

    reset approvals from @jay_mccure by pushing to the branch

  • Jacques Erasmus changed the description

    changed the description

  • added 1 commit

    • 09a33b87 - Address code review comments

    Compare with previous version

  • mentioned in issue #502383 (closed)

  • Gavin Hinfey approved this merge request

    approved this merge request

  • Chaoyue Zhao
  • Chaoyue Zhao approved this merge request

    approved this merge request

  • Chaoyue Zhao requested review from @iamphill

    requested review from @iamphill

  • Phil Hughes
  • added 1 commit

    • f1c78fb2 - Cleanup $options + create util for history link

    Compare with previous version

  • Jacques Erasmus reset approvals from @ghinfey by pushing to the branch

    reset approvals from @ghinfey by pushing to the branch

  • Jacques Erasmus requested review from @iamphill

    requested review from @iamphill

  • added workflowin review label and removed workflowin dev label

  • Phil Hughes approved this merge request

    approved this merge request

  • Before you set this MR to auto-merge

    This merge request will progress on pipeline tiers until it reaches the last tier: pipelinetier-3. We will trigger a new pipeline for each transition to a higher tier.

    Before you set this MR to auto-merge, please check the following:

    • You are the last maintainer of this merge request
    • The latest pipeline for this merge request is pipelinetier-3 (You can find which tier it is in the pipeline name)
    • This pipeline is recent enough (created in the last 8 hours)

    If all the criteria above apply, please set auto-merge for this merge request.

    See pipeline tiers and merging a merge request for more details.

  • Phil Hughes resolved all threads

    resolved all threads

  • Phil Hughes enabled automatic add to merge train when checks pass

    enabled automatic add to merge train when checks pass

  • merged

  • Phil Hughes mentioned in commit 4232bbb7

    mentioned in commit 4232bbb7

  • Hello @psjakubowska :wave:

    The Analytics Instrumentation team is actively working on improving the metrics implementation and event tracking processes. We would love to hear about your experience and any feedback you might have!

    To provide your feedback, please use this Google Form.

    Thanks for your help! :heart:


    This message was generated automatically. Improve it or delete it.

  • added workflowstaging label and removed workflowcanary label

  • Chaoyue Zhao mentioned in merge request !172632 (merged)

    mentioned in merge request !172632 (merged)

  • mentioned in task #510199 (closed)

  • Please register or sign in to reply
    Loading