diff --git a/app/assets/javascripts/boards/index.js b/app/assets/javascripts/boards/index.js index 1c5f8ec6986..cbd3280f0d3 100644 --- a/app/assets/javascripts/boards/index.js +++ b/app/assets/javascripts/boards/index.js @@ -86,6 +86,7 @@ export default () => { boardId: $boardApp.dataset.boardId, groupId: Number($boardApp.dataset.groupId) || null, rootPath: $boardApp.dataset.rootPath, + canUpdate: $boardApp.dataset.canUpdate, }, store, apolloProvider, diff --git a/app/views/projects/ci/lints/show.html.haml b/app/views/projects/ci/lints/show.html.haml index 2e79852f4c9..ca169f808b5 100644 --- a/app/views/projects/ci/lints/show.html.haml +++ b/app/views/projects/ci/lints/show.html.haml @@ -1,6 +1,6 @@ - page_title _("CI Lint") - page_description _("Validate your GitLab CI configuration file") -- unless Feature.enabled?(:monaco_ci) +- unless Feature.enabled?(:monaco_ci, default_enabled: true) - content_for :library_javascripts do = page_specific_javascript_tag('lib/ace.js') @@ -17,7 +17,7 @@ .file-holder .js-file-title.file-title.clearfix = _("Contents of .gitlab-ci.yml") - - if Feature.enabled?(:monaco_ci) + - if Feature.enabled?(:monaco_ci, default_enabled: true) .file-editor.code .js-edit-mode-pane.qa-editor#editor{ data: { 'editor-loading': true } }< %pre.editor-loading-content= params[:content] diff --git a/changelogs/unreleased/198612-monaco-ci-default.yml b/changelogs/unreleased/198612-monaco-ci-default.yml new file mode 100644 index 00000000000..3fbef70f629 --- /dev/null +++ b/changelogs/unreleased/198612-monaco-ci-default.yml @@ -0,0 +1,5 @@ +--- +title: Replaced ACE with Editor Lite for CI linting +merge_request: 42814 +author: +type: added diff --git a/changelogs/unreleased/migrate-recover-hidden-stage.yml b/changelogs/unreleased/migrate-recover-hidden-stage.yml new file mode 100644 index 00000000000..e4cf4992a94 --- /dev/null +++ b/changelogs/unreleased/migrate-recover-hidden-stage.yml @@ -0,0 +1,5 @@ +--- +title: Migrate Recover hidden stage dropdown +merge_request: 43032 +author: +type: other diff --git a/config/feature_flags/development/build_service_proxy.yml b/config/feature_flags/development/build_service_proxy.yml index 165e3c15f81..0c0aaa8aca9 100644 --- a/config/feature_flags/development/build_service_proxy.yml +++ b/config/feature_flags/development/build_service_proxy.yml @@ -1,7 +1,7 @@ --- name: build_service_proxy -introduced_by_url: -rollout_issue_url: -group: +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9723 +rollout_issue_url: +group: group::editor type: development default_enabled: false diff --git a/config/feature_flags/development/monaco_ci.yml b/config/feature_flags/development/monaco_ci.yml index 5d6ace8d8ad..0f1c8b521f2 100644 --- a/config/feature_flags/development/monaco_ci.yml +++ b/config/feature_flags/development/monaco_ci.yml @@ -1,7 +1,7 @@ --- name: monaco_ci -introduced_by_url: -rollout_issue_url: -group: +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23666 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/249137 +group: group::editor type: development -default_enabled: false +default_enabled: true diff --git a/config/feature_flags/development/resource_access_token.yml b/config/feature_flags/development/resource_access_token.yml index 80c5b2a5eb4..af91cfde89c 100644 --- a/config/feature_flags/development/resource_access_token.yml +++ b/config/feature_flags/development/resource_access_token.yml @@ -1,7 +1,7 @@ --- name: resource_access_token -introduced_by_url: -rollout_issue_url: -group: +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/29622 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/235765 +group: group::access type: development default_enabled: true diff --git a/config/feature_flags/development/snippet_multiple_files.yml b/config/feature_flags/development/snippet_multiple_files.yml index 28520cea19c..f495c3d4e64 100644 --- a/config/feature_flags/development/snippet_multiple_files.yml +++ b/config/feature_flags/development/snippet_multiple_files.yml @@ -1,7 +1,7 @@ --- name: snippet_multiple_files -introduced_by_url: -rollout_issue_url: -group: +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/32416 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/217809 +group: group::editor type: development default_enabled: false diff --git a/doc/development/pipelines.md b/doc/development/pipelines.md index 7756ef376fc..d12220d8c95 100644 --- a/doc/development/pipelines.md +++ b/doc/development/pipelines.md @@ -122,7 +122,6 @@ graph RL; click 2_2-5 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=8404303&udv=0" subgraph "Needs `setup-test-env` & `compile-test-assets`"; 2_2-2 & 2_2-4 & 2_2-5 --> 1-6 & 1-3; - 2_2-3 --> 1-6 & 1-4; end 2_3-1["build-assets-image (2.5 minutes)"]; @@ -228,7 +227,6 @@ graph RL; click 2_2-5 "https://app.periscopedata.com/app/gitlab/652085/Engineering-Productivity---Pipeline-Build-Durations?widget=8404303&udv=0" subgraph "Needs `setup-test-env` & `compile-test-assets`"; 2_2-2 & 2_2-4 & 2_2-5 --> 1-6 & 1-3; - 2_2-3 --> 1-6 & 1-4; end 2_3-1["build-assets-image (2.5 minutes)"]; diff --git a/doc/user/project/merge_requests/test_coverage_visualization.md b/doc/user/project/merge_requests/test_coverage_visualization.md index 56b5774f15b..39c15d49749 100644 --- a/doc/user/project/merge_requests/test_coverage_visualization.md +++ b/doc/user/project/merge_requests/test_coverage_visualization.md @@ -5,13 +5,13 @@ info: To determine the technical writer assigned to the Stage/Group associated w type: reference, howto --- -# Test Coverage Visualization **(CORE ONLY)** +# Test Coverage Visualization > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3708) in GitLab 12.9. > - [Feature flag enabled](https://gitlab.com/gitlab-org/gitlab/-/issues/211410) in GitLab 13.4. > - It's enabled on GitLab.com. > - It can be disabled per-project. -> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enabling-the-feature). **(CORE ONLY)** +> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-code-coverage-visualization). **(CORE ONLY)** With the help of [GitLab CI/CD](../../../ci/README.md), you can collect the test coverage information of your favorite testing or coverage-analysis tool, and visualize @@ -74,21 +74,12 @@ test: cobertura: coverage/cobertura-coverage.xml ``` -## Enabling the feature +## Enable or disable code coverage visualization This feature comes with the `:coverage_report_view` feature flag enabled by default. It is enabled on GitLab.com. [GitLab administrators with access to the GitLab Rails console](../../../administration/feature_flags.md) can disable it for your instance. Test coverage visualization can be enabled or disabled per-project. -To enable it: - -```ruby -# Instance-wide -Feature.enable(:coverage_report_view) -# or by project -Feature.enable(:coverage_report_view, Project.find()) -``` - To disable it: ```ruby @@ -97,3 +88,12 @@ Feature.disable(:coverage_report_view) # or by project Feature.disable(:coverage_report_view, Project.find()) ``` + +To enable it: + +```ruby +# Instance-wide +Feature.enable(:coverage_report_view) +# or by project +Feature.enable(:coverage_report_view, Project.find()) +``` diff --git a/lib/gitlab/gon_helper.rb b/lib/gitlab/gon_helper.rb index 66517ecd743..c945fe96116 100644 --- a/lib/gitlab/gon_helper.rb +++ b/lib/gitlab/gon_helper.rb @@ -45,7 +45,7 @@ module Gitlab # made globally available to the frontend push_frontend_feature_flag(:snippets_vue, default_enabled: true) push_frontend_feature_flag(:monaco_blobs, default_enabled: true) - push_frontend_feature_flag(:monaco_ci, default_enabled: false) + push_frontend_feature_flag(:monaco_ci, default_enabled: true) push_frontend_feature_flag(:snippets_edit_vue, default_enabled: true) push_frontend_feature_flag(:webperf_experiment, default_enabled: false) push_frontend_feature_flag(:snippets_binary_blob, default_enabled: false) diff --git a/lib/gitlab/webpack/manifest.rb b/lib/gitlab/webpack/manifest.rb index b92890757f4..3424f16b852 100644 --- a/lib/gitlab/webpack/manifest.rb +++ b/lib/gitlab/webpack/manifest.rb @@ -24,6 +24,8 @@ module Gitlab AssetMissingError = Class.new(StandardError) class << self + include Gitlab::Utils::StrongMemoize + def entrypoint_paths(source) raise WebpackError, manifest["errors"] unless manifest_bundled? @@ -55,6 +57,10 @@ module Gitlab end end + def clear_manifest! + clear_memoization(:manifest) + end + private def manifest_bundled? @@ -67,7 +73,7 @@ module Gitlab load_manifest else # ... otherwise cache at class level, as JSON loading/parsing can be expensive - @manifest ||= load_manifest + strong_memoize(:manifest) { load_manifest } end end diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 88dd95d539b..9815d5fac4d 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -1014,6 +1014,11 @@ msgid_plural "%d Days" msgstr[0] "" msgstr[1] "" +msgid "1 Issue" +msgid_plural "%d Issues" +msgstr[0] "" +msgstr[1] "" + msgid "1 closed issue" msgid_plural "%{issues} closed issues" msgstr[0] "" diff --git a/spec/lib/gitlab/webpack/manifest_spec.rb b/spec/lib/gitlab/webpack/manifest_spec.rb index 65a2d8c750f..606a94ace8d 100644 --- a/spec/lib/gitlab/webpack/manifest_spec.rb +++ b/spec/lib/gitlab/webpack/manifest_spec.rb @@ -16,6 +16,14 @@ RSpec.describe Gitlab::Webpack::Manifest do EOF end + around do |example| + Gitlab::Webpack::Manifest.clear_manifest! + + example.run + + Gitlab::Webpack::Manifest.clear_manifest! + end + shared_examples_for "a valid manifest" do it "returns single entry asset paths from the manifest" do expect(Gitlab::Webpack::Manifest.asset_paths("entry2")).to eq(["/public_path/entry2.js"])