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! 1. Shortcuts - [x] `shortcuts` @iamphill - [x] `./shortcuts_blob` @iamphill - [x] `./shortcuts_dashboard_navigation` @iamphill - [x] `./shortcuts_navigation` @iamphill - [x] `./shortcuts_find_file` @iamphill - [x] `./shortcuts_issuable` @iamphill - [x] `./shortcuts_network` @iamphill 1. Templates - [x] `./templates/issuable_template_selector` @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15524 - [x] `./templates/issuable_template_selectors` @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15524 1. Commit - [x] `./commit/image_file` 1. Utils - [x] `./lib/utils/bootstrap_linked_tabs` @filipa gitlab-ce!14734 - [x] `./lib/utils/datetime_utility` @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15782 - [x] `./lib/utils/pretty_time` @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15459 - [x] `./lib/utils/text_utility` @filipa gitlab-ce!15320 - [x] `./lib/utils/url_utility` @iamphill gitlab-ce!15783 1. u2f - [x] `./u2f/authenticate` @filipa gitlab-ce!14776 - [x] `./u2f/error` @filipa gitlab-ce!14776 - [x] `./u2f/register` @filipa gitlab-ce!14776 - [x] `./u2f/util` @filipa gitlab-ce!14776 1. Everything else - [x] `./abuse_reports`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14709 - [x] `./activities`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15933 - [x] `./admin`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15933 - [x] `./ajax_loading_spinner`; @filipa gitlab-ce!14738 - [x] `./api`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14774 - [x] `./aside`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15933 - [x] `./autosave`; @mikegreiling gitlab-ce!14856 - [x] `./broadcast_message`; @mikegreiling gitlab-ce!14853 - [x] `./build`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14744 - [x] `./build_artifacts`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14744 - [x] `./build_variables`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14744 - [x] `./ci_lint_editor`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14744 - [x] `./commits`; @filipa gitlab-ce!14735 - [x] `./compare`; @mikegreiling gitlab-ce!14857 - [x] `./compare_autocomplete`; @mikegreiling gitlab-ce!14857 - [ ] `./confirm_danger_modal`; @mikegreiling gitlab-ce!17874 - [x] `./copy_as_gfm`; @mikegreiling gitlab-ce!14859 - [x] `./copy_to_clipboard`; @mikegreiling - [x] `./create_label`; @filipa gitlab-ce!14738 - [x] `./diff`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14965 - [x] `./dropzone_input`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14894 - [x] `./due_date_select`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14881 - [x] `./files_comment_button`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14965 - [x] `./flash`; - [ ] `./gl_dropdown`; @jschatz1 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15992 - [x] `./gl_field_error`; @iamphill - [x] `./gl_field_errors`; @iamphill - [x] `./gl_form`; @iamphill - [x] `./group_avatar`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15006 - [x] `./group_label_subscription`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15006 - [x] `./groups_select`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15008 - [x] `./header`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15090 - [x] `./importer_status`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15058 - [x] `./issuable_index`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15058 - [x] `./issuable_context`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15058 - [x] `./issuable_form`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15058 - [x] `./issue`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15090 - [x] `./issue_status_select`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15090 - [x] `./label_manager`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14794 - [x] `./labels`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14794 - [x] `./labels_select`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15091?w=1 - [x] `./layout_nav`; @iamphill https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/3829 - [x] `./line_highlighter`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15960 - [x] `./logo`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15091?w=1 - [x] `./member_expiration_date`; @filipa gitlab-ce!14808 - [x] `./members`; @filipa gitlab-ce!14808 - [x] `./merge_request`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15960 - [x] `./merge_request_tabs`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15952 - [x] `./milestone`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15503/ - [x] `./milestone_select`; @okoghenun gitlab-ce!16076 - [x] `./mini_pipeline_graph_dropdown`; @filipa gitlab-ce!14734 - [x] `./namespace_select`; - [x] `./new_branch_form`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15503/ - [x] `./new_commit_form`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15503/ - [x] `./notes`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15953 - [x] `./notifications_dropdown`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15952 - [x] `./notifications_form`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15952 - [x] `./pager`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15952 - [x] `./pipelines`; @filipa gitlab-ce!14734 - [x] `./preview_markdown`; @jschatz1 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16025 - [x] `./project`; @filipa gitlab-ce!15355 - [x] `./project_avatar`; @filipa gitlab-ce!15355 - [x] `./project_find_file`; @filipa gitlab-ce!15787 - [x] `./project_import`; @filipa gitlab-ce!15355 - [x] `./project_label_subscription`; @filipa gitlab-ce!15356 - [x] `./project_new`; @filipa gitlab-ce!15356 - [x] `./project_select`; @filipa gitlab-ce!15356 - [x] `./project_show`; @filipa gitlab-ce!15356 - [x] `./project_variables`; @filipa gitlab-ce!15356 - [ ] `./projects_dropdown`; @jschatz1 - [x] `./projects_list`; @filipa gitlab-ce!15787 - [x] `./syntax_highlight`; @filipa gitlab-ce!15787 - [x] `./render_math`; - [x] `./render_gfm`; @jschatz1 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15993 - [x] `./right_sidebar`; @iamphill https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15960 - [x] `./search`; @filipa gitlab-ce!15787 - [x] `./search_autocomplete`; @filipa gitlab-ce!15787 - [x] `./smart_interval`; @psimyn - [x] `./star`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14795 - [x] `./subscription`; - [x] `./subscription_select`; @filipa https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15503/ 1. Export `gl` utility functions as modules - https://gitlab.com/gitlab-org/gitlab-ce/issues/37220 :white_check_mark: 1. Spies in `gl` functions - https://gitlab.com/gitlab-org/gitlab-ce/issues/30998 1. Dispacther - https://gitlab.com/gitlab-org/gitlab-ce/issues/37792 1. Docs! Let's document everything so everyone can use it! - https://gitlab.com/gitlab-org/gitlab-ce/issues/38173 1. Memory - https://gitlab.com/gitlab-org/gitlab-ce/issues/32893 1. Logs - https://gitlab.com/gitlab-org/gitlab-ce/issues/34348 1. Speed up webpack dev server - https://gitlab.com/gitlab-org/gitlab-ce/issues/35305 Followup: https://gitlab.com/gitlab-org/gitlab-ce/issues/41290
issue