Webpack Roadmap

What

We got webpack in and that is great. But we can't take full advantage until we remove global code.

After a chat with @jschatz1, we decided to make a roadmap to allow for things to get scheduled. This issue is done in collaboration by @filipa @mikegreiling and @iamphill.

For this to happen we need to divide and conquer. This is not an hard task to do, just a boring one.

We also need to teach. We all use it, but webpack can be hard to understand and there is no shame in that :) We can't force everyone to read full documentation, we could do a small talk explaining the need of webpack and how to use it.

How

  1. main.js - Divide and conquer!

  2. Shortcuts

    • shortcuts @iamphill
    • ./shortcuts_blob @iamphill
    • ./shortcuts_dashboard_navigation @iamphill
    • ./shortcuts_navigation @iamphill
    • ./shortcuts_find_file @iamphill
    • ./shortcuts_issuable @iamphill
    • ./shortcuts_network @iamphill
  3. Templates

    • ./templates/issuable_template_selector @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15524
    • ./templates/issuable_template_selectors @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15524
  4. Commit

    • ./commit/image_file
  5. Utils

    • ./lib/utils/bootstrap_linked_tabs @filipa gitlab-ce!14734
    • ./lib/utils/datetime_utility @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15782
    • ./lib/utils/pretty_time @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15459
    • ./lib/utils/text_utility @filipa gitlab-ce!15320
    • ./lib/utils/url_utility @iamphill gitlab-ce!15783
  6. u2f

    • ./u2f/authenticate @filipa gitlab-ce!14776
    • ./u2f/error @filipa gitlab-ce!14776
    • ./u2f/register @filipa gitlab-ce!14776
    • ./u2f/util @filipa gitlab-ce!14776
  7. Everything else

    • ./abuse_reports; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14709
    • ./activities; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15933
    • ./admin; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15933
    • ./ajax_loading_spinner; @filipa gitlab-ce!14738
    • ./api; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14774
    • ./aside; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15933
    • ./autosave; @mikegreiling gitlab-ce!14856
    • ./broadcast_message; @mikegreiling gitlab-ce!14853
    • ./build; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14744
    • ./build_artifacts; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14744
    • ./build_variables; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14744
    • ./ci_lint_editor; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14744
    • ./commits; @filipa gitlab-ce!14735
    • ./compare; @mikegreiling gitlab-ce!14857
    • ./compare_autocomplete; @mikegreiling gitlab-ce!14857
    • ./confirm_danger_modal; @mikegreiling gitlab-ce!17874
    • ./copy_as_gfm; @mikegreiling gitlab-ce!14859
    • ./copy_to_clipboard; @mikegreiling
    • ./create_label; @filipa gitlab-ce!14738
    • ./diff; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14965
    • ./dropzone_input; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14894
    • ./due_date_select; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14881
    • ./files_comment_button; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14965
    • ./flash;
    • ./gl_dropdown; @jschatz1 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15992
    • ./gl_field_error; @iamphill
    • ./gl_field_errors; @iamphill
    • ./gl_form; @iamphill
    • ./group_avatar; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15006
    • ./group_label_subscription; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15006
    • ./groups_select; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15008
    • ./header; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15090
    • ./importer_status; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15058
    • ./issuable_index; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15058
    • ./issuable_context; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15058
    • ./issuable_form; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15058
    • ./issue; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15090
    • ./issue_status_select; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15090
    • ./label_manager; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14794
    • ./labels; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14794
    • ./labels_select; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15091?w=1
    • ./layout_nav; @iamphill https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3829
    • ./line_highlighter; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15960
    • ./logo; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15091?w=1
    • ./member_expiration_date; @filipa gitlab-ce!14808
    • ./members; @filipa gitlab-ce!14808
    • ./merge_request; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15960
    • ./merge_request_tabs; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15952
    • ./milestone; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15503/
    • ./milestone_select; @okoghenun gitlab-ce!16076
    • ./mini_pipeline_graph_dropdown; @filipa gitlab-ce!14734
    • ./namespace_select;
    • ./new_branch_form; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15503/
    • ./new_commit_form; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15503/
    • ./notes; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15953
    • ./notifications_dropdown; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15952
    • ./notifications_form; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15952
    • ./pager; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15952
    • ./pipelines; @filipa gitlab-ce!14734
    • ./preview_markdown; @jschatz1 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16025
    • ./project; @filipa gitlab-ce!15355
    • ./project_avatar; @filipa gitlab-ce!15355
    • ./project_find_file; @filipa gitlab-ce!15787
    • ./project_import; @filipa gitlab-ce!15355
    • ./project_label_subscription; @filipa gitlab-ce!15356
    • ./project_new; @filipa gitlab-ce!15356
    • ./project_select; @filipa gitlab-ce!15356
    • ./project_show; @filipa gitlab-ce!15356
    • ./project_variables; @filipa gitlab-ce!15356
    • ./projects_dropdown; @jschatz1
    • ./projects_list; @filipa gitlab-ce!15787
    • ./syntax_highlight; @filipa gitlab-ce!15787
    • ./render_math;
    • ./render_gfm; @jschatz1 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15993
    • ./right_sidebar; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15960
    • ./search; @filipa gitlab-ce!15787
    • ./search_autocomplete; @filipa gitlab-ce!15787
    • ./smart_interval; @psimyn
    • ./star; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14795
    • ./subscription;
    • ./subscription_select; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15503/
  8. Export gl utility functions as modules - https://gitlab.com/gitlab-org/gitlab-ce/issues/37220 ✅

  9. Spies in gl functions - https://gitlab.com/gitlab-org/gitlab-ce/issues/30998

  10. Dispacther - https://gitlab.com/gitlab-org/gitlab-ce/issues/37792

  11. Docs! Let's document everything so everyone can use it! - https://gitlab.com/gitlab-org/gitlab-ce/issues/38173

  12. Memory - https://gitlab.com/gitlab-org/gitlab-ce/issues/32893

  13. Logs - https://gitlab.com/gitlab-org/gitlab-ce/issues/34348

  14. Speed up webpack dev server - https://gitlab.com/gitlab-org/gitlab-ce/issues/35305

Followup: https://gitlab.com/gitlab-org/gitlab-ce/issues/41290

Edited Mar 20, 2018 by Mike Greiling
Assignee Loading
Time tracking Loading