From 03c509e17bfa71a124a69b6cf4897414d3bd1cb5 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 2 Nov 2022 06:09:00 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/CODEOWNERS | 2 +- ...Geo Replicate a new Git repository type.md | 66 +- .../Geo Replicate a new blob type.md | 62 +- app/assets/javascripts/ide/components/ide.vue | 14 + .../components/panes/collapsible_sidebar.vue | 15 + .../ide/components/panes/right.vue | 17 +- .../switch_editors/switch_editors_view.vue | 103 ++ app/assets/javascripts/ide/constants.js | 1 + app/assets/javascripts/ide/index.js | 4 + .../javascripts/ide/stores/mutations.js | 2 + app/assets/javascripts/ide/stores/state.js | 2 + .../makrdown_drawer.stories.js | 54 + .../markdown_drawer/markdown_drawer.vue | 117 ++ .../components/markdown_drawer/utils/fetch.js | 32 + app/helpers/ide_helper.rb | 2 + app/models/ci/build.rb | 4 - data/deprecations/14-3-serverless.yml | 4 +- .../14-7-deprecate-static-site-editor.yml | 4 +- data/deprecations/14-8-Elasticsearch-6-8.yml | 2 +- data/deprecations/14-8-request-profiling.yml | 4 +- ...keyvalue_pair_from_the_payload_of_dora.yml | 2 +- .../14_0/removals-14-testing-team.yml | 4 +- ...15-0-advanced-search-elasticsearch-6-8.yml | 2 +- data/removals/15_0/15-0-request-profiling.yml | 2 +- .../removals/15_0/15-0-static-site-editor.yml | 4 +- data/whats_new/202011230001_13_06.yml | 2 +- data/whats_new/202103220001_13_10.yml | 4 +- data/whats_new/202105220001_13_12.yml | 2 +- data/whats_new/202205220001_15_0.yml | 2 +- doc/update/deprecations.md | 6 +- doc/update/removals.md | 12 +- doc/user/project/web_ide/index.md | 9 + .../output_example_snapshots/html.yml | 198 +-- .../snapshot_spec.html | 1452 ++++++++--------- glfm_specification/output_spec/spec.html | 30 +- lib/banzai/filter/math_filter.rb | 9 +- lib/banzai/filter/syntax_highlight_filter.rb | 45 +- lib/banzai/pipeline/ascii_doc_pipeline.rb | 2 +- lib/banzai/pipeline/gfm_pipeline.rb | 4 +- .../Browser-Performance-Testing.gitlab-ci.yml | 2 +- ...r-Performance-Testing.latest.gitlab-ci.yml | 2 +- .../Verify/Browser-Performance.gitlab-ci.yml | 2 +- .../Browser-Performance.latest.gitlab-ci.yml | 2 +- .../Load-Performance-Testing.gitlab-ci.yml | 2 +- locale/gitlab.pot | 21 + spec/features/ide_spec.rb | 107 +- .../markdown_golden_master_examples.yml | 14 +- spec/frontend/ide/components/ide_spec.js | 31 +- .../panes/collapsible_sidebar_spec.js | 26 +- .../ide/components/panes/right_spec.js | 45 + .../switch_editors_view_spec.js | 214 +++ spec/frontend/ide/stores/mutations_spec.js | 2 + .../markdown_drawer/markdown_drawer_spec.js | 205 +++ .../components/markdown_drawer/mock_data.js | 42 + .../markdown_drawer/utils/fetch_spec.js | 43 + spec/helpers/ide_helper_spec.rb | 2 + spec/lib/banzai/filter/math_filter_spec.rb | 10 +- .../filter/syntax_highlight_filter_spec.rb | 22 +- spec/lib/gitlab/asciidoc_spec.rb | 19 +- spec/models/ci/processable_spec.rb | 14 +- .../lib/glfm/update_specification_spec.rb | 6 +- 61 files changed, 2077 insertions(+), 1058 deletions(-) create mode 100644 app/assets/javascripts/ide/components/switch_editors/switch_editors_view.vue create mode 100644 app/assets/javascripts/vue_shared/components/markdown_drawer/makrdown_drawer.stories.js create mode 100644 app/assets/javascripts/vue_shared/components/markdown_drawer/markdown_drawer.vue create mode 100644 app/assets/javascripts/vue_shared/components/markdown_drawer/utils/fetch.js create mode 100644 spec/frontend/ide/components/switch_editors/switch_editors_view_spec.js create mode 100644 spec/frontend/vue_shared/components/markdown_drawer/markdown_drawer_spec.js create mode 100644 spec/frontend/vue_shared/components/markdown_drawer/mock_data.js create mode 100644 spec/frontend/vue_shared/components/markdown_drawer/utils/fetch_spec.js diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 85ad4adbede..0635006943e 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -156,7 +156,7 @@ Dangerfile @gl-quality/eng-prod /app/assets/javascripts/ci_variable_list/ @gitlab-org/ci-cd/verify/frontend /app/assets/javascripts/pipeline_schedules/ @gitlab-org/ci-cd/verify/frontend /app/assets/javascripts/pipeline_editor/ @gitlab-org/ci-cd/verify/frontend -/ee/app/assets/javascripts/ci_minutes_usage/ @gitlab-org/ci-cd/verify/frontend +/ee/app/assets/javascripts/ci/ci_minutes_usage/ @gitlab-org/ci-cd/verify/frontend /ee/app/assets/javascripts/usage_quotas/ci_minutes_usage/ @gitlab-org/ci-cd/verify/frontend /ee/app/assets/javascripts/usage_quotas/pipelines/ @gitlab-org/ci-cd/verify/frontend /ee/app/assets/javascripts/reports/ @gitlab-org/ci-cd/verify/frontend diff --git a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md index 6c9b8bb6d78..2348fa5b86f 100644 --- a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md +++ b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md @@ -57,46 +57,38 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org # frozen_string_literal: true class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.0] - disable_ddl_transaction! + def change + create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t| + t.bigint :cool_widget_id, null: false + t.datetime_with_timezone :created_at, null: false + t.datetime_with_timezone :last_synced_at + t.datetime_with_timezone :retry_at + t.datetime_with_timezone :verified_at + t.datetime_with_timezone :verification_started_at + t.datetime_with_timezone :verification_retry_at + t.integer :state, default: 0, null: false, limit: 2 + t.integer :verification_state, default: 0, null: false, limit: 2 + t.integer :retry_count, default: 0, limit: 2, null: false + t.integer :verification_retry_count, default: 0, limit: 2, null: false + t.boolean :checksum_mismatch, default: false, null: false + t.boolean :force_to_redownload, default: false, null: false + t.boolean :missing_on_primary, default: false, null: false + t.binary :verification_checksum + t.binary :verification_checksum_mismatched + t.text :verification_failure, limit: 255 + t.text :last_sync_failure, limit: 255 - def up - Geo::TrackingBase.transaction do - create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t| - t.bigint :cool_widget_id, null: false - t.datetime_with_timezone :created_at, null: false - t.datetime_with_timezone :last_synced_at - t.datetime_with_timezone :retry_at - t.datetime_with_timezone :verified_at - t.datetime_with_timezone :verification_started_at - t.datetime_with_timezone :verification_retry_at - t.integer :state, default: 0, null: false, limit: 2 - t.integer :verification_state, default: 0, null: false, limit: 2 - t.integer :retry_count, default: 0, limit: 2, null: false - t.integer :verification_retry_count, default: 0, limit: 2, null: false - t.boolean :checksum_mismatch, default: false, null: false - t.boolean :force_to_redownload, default: false, null: false - t.boolean :missing_on_primary, default: false, null: false - t.binary :verification_checksum - t.binary :verification_checksum_mismatched - t.text :verification_failure, limit: 255 - t.text :last_sync_failure, limit: 255 - - t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true - t.index :retry_at - t.index :state - # To optimize performance of CoolWidgetRegistry.verification_failed_batch - t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" - # To optimize performance of CoolWidgetRegistry.needs_verification_count - t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" - # To optimize performance of CoolWidgetRegistry.verification_pending_batch - t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" - end + t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true + t.index :retry_at + t.index :state + # To optimize performance of CoolWidgetRegistry.verification_failed_batch + t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" + # To optimize performance of CoolWidgetRegistry.needs_verification_count + t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" + # To optimize performance of CoolWidgetRegistry.verification_pending_batch + t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" end end - - def down - drop_table :cool_widget_registry - end end ``` diff --git a/.gitlab/issue_templates/Geo Replicate a new blob type.md b/.gitlab/issue_templates/Geo Replicate a new blob type.md index 76fe1772921..2bb8918df60 100644 --- a/.gitlab/issue_templates/Geo Replicate a new blob type.md +++ b/.gitlab/issue_templates/Geo Replicate a new blob type.md @@ -59,44 +59,36 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org # frozen_string_literal: true class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.0] - disable_ddl_transaction! + def change + create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t| + t.bigint :cool_widget_id, null: false + t.datetime_with_timezone :created_at, null: false + t.datetime_with_timezone :last_synced_at + t.datetime_with_timezone :retry_at + t.datetime_with_timezone :verified_at + t.datetime_with_timezone :verification_started_at + t.datetime_with_timezone :verification_retry_at + t.integer :state, default: 0, null: false, limit: 2 + t.integer :verification_state, default: 0, null: false, limit: 2 + t.integer :retry_count, default: 0, limit: 2, null: false + t.integer :verification_retry_count, default: 0, limit: 2, null: false + t.boolean :checksum_mismatch, default: false, null: false + t.binary :verification_checksum + t.binary :verification_checksum_mismatched + t.text :verification_failure, limit: 255 + t.text :last_sync_failure, limit: 255 - def up - Geo::TrackingBase.transaction do - create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t| - t.bigint :cool_widget_id, null: false - t.datetime_with_timezone :created_at, null: false - t.datetime_with_timezone :last_synced_at - t.datetime_with_timezone :retry_at - t.datetime_with_timezone :verified_at - t.datetime_with_timezone :verification_started_at - t.datetime_with_timezone :verification_retry_at - t.integer :state, default: 0, null: false, limit: 2 - t.integer :verification_state, default: 0, null: false, limit: 2 - t.integer :retry_count, default: 0, limit: 2, null: false - t.integer :verification_retry_count, default: 0, limit: 2, null: false - t.boolean :checksum_mismatch, default: false, null: false - t.binary :verification_checksum - t.binary :verification_checksum_mismatched - t.text :verification_failure, limit: 255 - t.text :last_sync_failure, limit: 255 - - t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true - t.index :retry_at - t.index :state - # To optimize performance of CoolWidgetRegistry.verification_failed_batch - t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" - # To optimize performance of CoolWidgetRegistry.needs_verification_count - t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" - # To optimize performance of CoolWidgetRegistry.verification_pending_batch - t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" - end + t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true + t.index :retry_at + t.index :state + # To optimize performance of CoolWidgetRegistry.verification_failed_batch + t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))" + # To optimize performance of CoolWidgetRegistry.needs_verification_count + t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))" + # To optimize performance of CoolWidgetRegistry.verification_pending_batch + t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))" end end - - def down - drop_table :cool_widget_registry - end end ``` diff --git a/app/assets/javascripts/ide/components/ide.vue b/app/assets/javascripts/ide/components/ide.vue index d589f56dd7c..838debf1ceb 100644 --- a/app/assets/javascripts/ide/components/ide.vue +++ b/app/assets/javascripts/ide/components/ide.vue @@ -47,6 +47,7 @@ export default { data() { return { loadDeferred: false, + skipBeforeUnload: false, }; }, computed: { @@ -78,9 +79,14 @@ export default { mounted() { window.onbeforeunload = (e) => this.onBeforeUnload(e); + eventHub.$on('skip-beforeunload', this.handleSkipBeforeUnload); + if (this.themeName) document.querySelector('.navbar-gitlab').classList.add(`theme-${this.themeName}`); }, + destroyed() { + eventHub.$off('skip-beforeunload', this.handleSkipBeforeUnload); + }, beforeCreate() { performanceMarkAndMeasure({ mark: WEBIDE_MARK_APP_START, @@ -94,6 +100,11 @@ export default { methods: { ...mapActions(['toggleFileFinder']), onBeforeUnload(e = {}) { + if (this.skipBeforeUnload) { + this.skipBeforeUnload = false; + return undefined; + } + const returnValue = __('Are you sure you want to lose unsaved changes?'); if (!this.someUncommittedChanges) return undefined; @@ -103,6 +114,9 @@ export default { }); return returnValue; }, + handleSkipBeforeUnload() { + this.skipBeforeUnload = true; + }, openFile(file) { this.$router.push(this.getUrlForPath(file.path)); }, diff --git a/app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue b/app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue index 6f42ae48cc9..bf99538a2ad 100644 --- a/app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue +++ b/app/assets/javascripts/ide/components/panes/collapsible_sidebar.vue @@ -13,6 +13,11 @@ export default { required: false, default: () => [], }, + initOpenView: { + type: String, + required: false, + default: '', + }, side: { type: String, required: true, @@ -44,6 +49,9 @@ export default { return this.tabViews.filter((view) => this.isAliveView(view.name)); }, }, + created() { + this.openViewByName(this.initOpenView); + }, methods: { ...mapActions({ toggleOpen(dispatch) { @@ -53,6 +61,13 @@ export default { return dispatch(`${this.namespace}/open`, view); }, }), + openViewByName(viewName) { + const view = viewName && this.tabViews.find((x) => x.name === viewName); + + if (view) { + this.open(view); + } + }, }, }; diff --git a/app/assets/javascripts/ide/components/panes/right.vue b/app/assets/javascripts/ide/components/panes/right.vue index da2d4fbe7f0..c74a5052573 100644 --- a/app/assets/javascripts/ide/components/panes/right.vue +++ b/app/assets/javascripts/ide/components/panes/right.vue @@ -7,6 +7,7 @@ import PipelinesList from '../pipelines/list.vue'; import Clientside from '../preview/clientside.vue'; import ResizablePanel from '../resizable_panel.vue'; import TerminalView from '../terminal/view.vue'; +import SwitchEditorsView from '../switch_editors/switch_editors_view.vue'; import CollapsibleSidebar from './collapsible_sidebar.vue'; // Need to add the width of the nav buttons since the resizable container contains those as well @@ -20,7 +21,7 @@ export default { }, computed: { ...mapState('terminal', { isTerminalVisible: 'isVisible' }), - ...mapState(['currentMergeRequestId', 'clientsidePreviewEnabled']), + ...mapState(['currentMergeRequestId', 'clientsidePreviewEnabled', 'canUseNewWebIde']), ...mapGetters(['packageJson']), ...mapState('rightPane', ['isOpen']), showLivePreview() { @@ -28,6 +29,12 @@ export default { }, rightExtensionTabs() { return [ + { + show: this.canUseNewWebIde, + title: __('Switch editors'), + views: [{ component: SwitchEditorsView, ...rightSidebarViews.switchEditors }], + icon: 'bullhorn', + }, { show: true, title: __('Pipelines'), @@ -53,6 +60,7 @@ export default { }, }, WIDTH, + SWITCH_EDITORS_VIEW_NAME: rightSidebarViews.switchEditors.name, }; @@ -64,6 +72,11 @@ export default { :min-size="$options.WIDTH" :resizable="isOpen" > - + diff --git a/app/assets/javascripts/ide/components/switch_editors/switch_editors_view.vue b/app/assets/javascripts/ide/components/switch_editors/switch_editors_view.vue new file mode 100644 index 00000000000..00164f65e33 --- /dev/null +++ b/app/assets/javascripts/ide/components/switch_editors/switch_editors_view.vue @@ -0,0 +1,103 @@ + + + diff --git a/app/assets/javascripts/ide/constants.js b/app/assets/javascripts/ide/constants.js index bfe4c3ac271..c8e737fa6f5 100644 --- a/app/assets/javascripts/ide/constants.js +++ b/app/assets/javascripts/ide/constants.js @@ -61,6 +61,7 @@ export const leftSidebarViews = { }; export const rightSidebarViews = { + switchEditors: { name: 'switch-editors', keepAlive: true }, pipelines: { name: 'pipelines-list', keepAlive: true }, jobsDetail: { name: 'jobs-detail', keepAlive: false }, mergeRequestInfo: { name: 'merge-request-info', keepAlive: true }, diff --git a/app/assets/javascripts/ide/index.js b/app/assets/javascripts/ide/index.js index 1a191f6f76f..dec282239d9 100644 --- a/app/assets/javascripts/ide/index.js +++ b/app/assets/javascripts/ide/index.js @@ -60,9 +60,11 @@ export const initLegacyWebIDE = (el, options = {}) => { committedStateSvgPath: el.dataset.committedStateSvgPath, pipelinesEmptyStateSvgPath: el.dataset.pipelinesEmptyStateSvgPath, promotionSvgPath: el.dataset.promotionSvgPath, + switchEditorSvgPath: el.dataset.switchEditorSvgPath, }); this.setLinks({ webIDEHelpPagePath: el.dataset.webIdeHelpPagePath, + newWebIDEHelpPagePath: el.dataset.newWebIdeHelpPagePath, forkInfo: el.dataset.forkInfo ? JSON.parse(el.dataset.forkInfo) : null, }); this.init({ @@ -72,6 +74,8 @@ export const initLegacyWebIDE = (el, options = {}) => { codesandboxBundlerUrl: el.dataset.codesandboxBundlerUrl, environmentsGuidanceAlertDismissed: !parseBoolean(el.dataset.enableEnvironmentsGuidance), previewMarkdownPath: el.dataset.previewMarkdownPath, + canUseNewWebIde: parseBoolean(el.dataset.canUseNewWebIde), + userPreferencesPath: el.dataset.userPreferencesPath, }); }, beforeDestroy() { diff --git a/app/assets/javascripts/ide/stores/mutations.js b/app/assets/javascripts/ide/stores/mutations.js index 48648796e66..d11fc388d5e 100644 --- a/app/assets/javascripts/ide/stores/mutations.js +++ b/app/assets/javascripts/ide/stores/mutations.js @@ -110,6 +110,7 @@ export default { committedStateSvgPath, pipelinesEmptyStateSvgPath, promotionSvgPath, + switchEditorSvgPath, }, ) { Object.assign(state, { @@ -118,6 +119,7 @@ export default { committedStateSvgPath, pipelinesEmptyStateSvgPath, promotionSvgPath, + switchEditorSvgPath, }); }, [types.TOGGLE_FILE_FINDER](state, fileFindVisible) { diff --git a/app/assets/javascripts/ide/stores/state.js b/app/assets/javascripts/ide/stores/state.js index 526987c750a..70efda970bf 100644 --- a/app/assets/javascripts/ide/stores/state.js +++ b/app/assets/javascripts/ide/stores/state.js @@ -33,4 +33,6 @@ export default () => ({ environmentsGuidanceAlertDismissed: false, environmentsGuidanceAlertDetected: false, previewMarkdownPath: '', + userPreferencesPath: '', + canUseNewWebIde: false, }); diff --git a/app/assets/javascripts/vue_shared/components/markdown_drawer/makrdown_drawer.stories.js b/app/assets/javascripts/vue_shared/components/markdown_drawer/makrdown_drawer.stories.js new file mode 100644 index 00000000000..03bd64e2a57 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/markdown_drawer/makrdown_drawer.stories.js @@ -0,0 +1,54 @@ +import { GlButton } from '@gitlab/ui'; +import { MOCK_HTML } from '../../../../../../spec/frontend/vue_shared/components/markdown_drawer/mock_data'; +import MarkdownDrawer from './markdown_drawer.vue'; + +export default { + component: MarkdownDrawer, + title: 'vue_shared/markdown_drawer', + parameters: { + mirage: { + timing: 1000, + handlers: { + get: { + '/help/user/search/global_search/advanced_search_syntax.json': [ + 200, + {}, + { html: MOCK_HTML }, + ], + }, + }, + }, + }, +}; + +const createStory = ({ ...options }) => (_, { argTypes }) => ({ + components: { MarkdownDrawer, GlButton }, + props: Object.keys(argTypes), + data() { + return { + render: false, + }; + }, + methods: { + toggleDrawer() { + this.$refs.drawer.toggleDrawer(); + }, + }, + mounted() { + window.requestAnimationFrame(() => { + this.render = true; + }); + }, + template: ` +
+ Open Drawer + +
+ `, + ...options, +}); + +export const Default = createStory({}); diff --git a/app/assets/javascripts/vue_shared/components/markdown_drawer/markdown_drawer.vue b/app/assets/javascripts/vue_shared/components/markdown_drawer/markdown_drawer.vue new file mode 100644 index 00000000000..a4b509f8656 --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/markdown_drawer/markdown_drawer.vue @@ -0,0 +1,117 @@ + + diff --git a/app/assets/javascripts/vue_shared/components/markdown_drawer/utils/fetch.js b/app/assets/javascripts/vue_shared/components/markdown_drawer/utils/fetch.js new file mode 100644 index 00000000000..7c8e1bc160a --- /dev/null +++ b/app/assets/javascripts/vue_shared/components/markdown_drawer/utils/fetch.js @@ -0,0 +1,32 @@ +import * as Sentry from '@sentry/browser'; +import { helpPagePath } from '~/helpers/help_page_helper'; +import axios from '~/lib/utils/axios_utils'; + +export const splitDocument = (htmlString) => { + const htmlDocument = new DOMParser().parseFromString(htmlString, 'text/html'); + const title = htmlDocument.querySelector('h1')?.innerText; + htmlDocument.querySelector('h1')?.remove(); + return { + title, + body: htmlDocument.querySelector('body').innerHTML.toString(), + }; +}; + +export const getRenderedMarkdown = (documentPath) => { + return axios + .get(helpPagePath(documentPath)) + .then(({ data }) => { + const { body, title } = splitDocument(data.html); + return { + body, + title, + hasFetchError: false, + }; + }) + .catch((e) => { + Sentry.captureException(e); + return { + hasFetchError: true, + }; + }); +}; diff --git a/app/helpers/ide_helper.rb b/app/helpers/ide_helper.rb index cdc3804d192..69a9519291f 100644 --- a/app/helpers/ide_helper.rb +++ b/app/helpers/ide_helper.rb @@ -5,6 +5,7 @@ module IdeHelper { 'can-use-new-web-ide' => can_use_new_web_ide?.to_s, 'use-new-web-ide' => use_new_web_ide?.to_s, + 'new-web-ide-help-page-path' => help_page_path('user/project/web_ide/index.md', anchor: 'vscode-reimplementation'), 'user-preferences-path' => profile_preferences_path, 'branch-name' => @branch }.merge(use_new_web_ide? ? new_ide_data : legacy_ide_data) @@ -33,6 +34,7 @@ module IdeHelper 'no-changes-state-svg-path' => image_path('illustrations/multi-editor_no_changes_empty.svg'), 'committed-state-svg-path' => image_path('illustrations/multi-editor_all_changes_committed_empty.svg'), 'pipelines-empty-state-svg-path': image_path('illustrations/pipelines_empty.svg'), + 'switch-editor-svg-path': image_path('illustrations/rocket-launch-md.svg'), 'promotion-svg-path': image_path('illustrations/web-ide_promotion.svg'), 'ci-help-page-path' => help_page_path('ci/quick_start/index'), 'web-ide-help-page-path' => help_page_path('user/project/web_ide/index.md'), diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb index 466e83c5cc6..1bacd65b574 100644 --- a/app/models/ci/build.rb +++ b/app/models/ci/build.rb @@ -218,10 +218,6 @@ module Ci preload(:job_artifacts_archive, :job_artifacts, :tags, project: [:namespace]) end - def extra_accessors - [] - end - def clone_accessors %i[pipeline project ref tag options name allow_failure stage stage_idx trigger_request diff --git a/data/deprecations/14-3-serverless.yml b/data/deprecations/14-3-serverless.yml index aac3cc9cd6a..08a54046f4a 100644 --- a/data/deprecations/14-3-serverless.yml +++ b/data/deprecations/14-3-serverless.yml @@ -5,10 +5,10 @@ removal_date: "2022-05-22" breaking_change: true body: | - [GitLab Serverless](https://docs.gitlab.com/ee/user/project/clusters/serverless/) is a feature set to support Knative-based serverless development with automatic deployments and monitoring. + GitLab Serverless is a feature set to support Knative-based serverless development with automatic deployments and monitoring. We decided to remove the GitLab Serverless features as they never really resonated with our users. Besides, given the continuous development of Kubernetes and Knative, our current implementations do not even work with recent versions. stage: Configure tiers: [Core, Premium, Ultimate] issue_url: "https://gitlab.com/groups/gitlab-org/configure/-/epics/6" - documentation_url: "https://docs.gitlab.com/ee/user/project/clusters/serverless/" + documentation_url: "https://gitlab.com/groups/gitlab-org/configure/-/epics/6" diff --git a/data/deprecations/14-7-deprecate-static-site-editor.yml b/data/deprecations/14-7-deprecate-static-site-editor.yml index 0960bffe4cf..7d1d324c0ca 100644 --- a/data/deprecations/14-7-deprecate-static-site-editor.yml +++ b/data/deprecations/14-7-deprecate-static-site-editor.yml @@ -6,11 +6,11 @@ body: | # Do not modify this line, instead modify the lines below. The Static Site Editor will no longer be available starting in GitLab 15.0. Improvements to the Markdown editing experience across GitLab will deliver smiliar benefit but with a wider reach. Incoming requests to the Static Site Editor will be redirected to the [Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/index.html). - Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/static_site_editor/) for more information, including how to remove the configuration files from existing projects. + Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/web_ide/index.html) for more information, including how to remove the configuration files from existing projects. # The following items are not published on the docs page, but may be used in the future. stage: Create # (optional - may be required in the future) String value of the stage that the feature was created in. e.g., Growth tiers: [Free, Premium, Ultimate] # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate] issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/347137 # (optional) This is a link to the deprecation issue in GitLab - documentation_url: https://docs.gitlab.com/ee/user/project/static_site_editor/ # (optional) This is a link to the current documentation page + documentation_url: https://docs.gitlab.com/ee/user/project/web_ide/index.html # (optional) This is a link to the current documentation page image_url: # (optional) This is a link to a thumbnail image depicting the feature video_url: # (optional) Use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg diff --git a/data/deprecations/14-8-Elasticsearch-6-8.yml b/data/deprecations/14-8-Elasticsearch-6-8.yml index 28a25803d41..e52e237ffbc 100644 --- a/data/deprecations/14-8-Elasticsearch-6-8.yml +++ b/data/deprecations/14-8-Elasticsearch-6-8.yml @@ -14,4 +14,4 @@ stage: Enablement tiers: [Premium, Ultimate] issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/350275 - documentation_url: https://docs.gitlab.com/ee/integration/elasticsearch.html#version-requirements + documentation_url: https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#version-requirements diff --git a/data/deprecations/14-8-request-profiling.yml b/data/deprecations/14-8-request-profiling.yml index ea3833d98ef..e6c20abf2b1 100644 --- a/data/deprecations/14-8-request-profiling.yml +++ b/data/deprecations/14-8-request-profiling.yml @@ -6,7 +6,7 @@ breaking_change: true reporter: iroussos body: | # Do not modify this line, instead modify the lines below. - [Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) is deprecated in GitLab 14.8 and scheduled for removal in GitLab 15.0. + [Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/index.html) is deprecated in GitLab 14.8 and scheduled for removal in GitLab 15.0. We're working on [consolidating our profiling tools](https://gitlab.com/groups/gitlab-org/-/epics/7327) and making them more easily accessible. We [evaluated](https://gitlab.com/gitlab-org/gitlab/-/issues/350152) the use of this feature and we found that it is not widely used. @@ -16,4 +16,4 @@ stage: Monitor tiers: [Free, Premium, Ultimate] issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/352488 - documentation_url: https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html + documentation_url: https://docs.gitlab.com/ee/administration/monitoring/performance/index.html diff --git a/data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml b/data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml index 47c58bcb143..98aef74fd03 100644 --- a/data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml +++ b/data/removals/14_0/release_remove_redundant_keyvalue_pair_from_the_payload_of_dora.yml @@ -5,4 +5,4 @@ issue_url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/325931' breaking_change: true body: | - The [deployment frequency project-level API](https://docs.gitlab.com/ee/api/dora4_project_analytics.html#list-project-deployment-frequencies) endpoint has been deprecated in favor of the [DORA 4 API](https://docs.gitlab.com/ee/api/dora/metrics.html), which consolidates all the metrics under one API with the specific metric as a required field. As a result, the timestamp field, which doesn't allow adding future extensions and causes performance issues, will be removed. With the old API, an example response would be `{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }`. The first key/value (`"2021-03-01": 3`) will be removed and replaced by the last two (`"date": "2021-03-01", "value": 3`). + The [deployment frequency project-level API](https://docs.gitlab.com/ee/api/dora/metrics.html#list-project-deployment-frequencies) endpoint has been deprecated in favor of the [DORA 4 API](https://docs.gitlab.com/ee/api/dora/metrics.html), which consolidates all the metrics under one API with the specific metric as a required field. As a result, the timestamp field, which doesn't allow adding future extensions and causes performance issues, will be removed. With the old API, an example response would be `{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }`. The first key/value (`"2021-03-01": 3`) will be removed and replaced by the last two (`"date": "2021-03-01", "value": 3`). diff --git a/data/removals/14_0/removals-14-testing-team.yml b/data/removals/14_0/removals-14-testing-team.yml index 2012f8738b8..8b877ece6cc 100644 --- a/data/removals/14_0/removals-14-testing-team.yml +++ b/data/removals/14_0/removals-14-testing-team.yml @@ -4,7 +4,7 @@ reporter: jheimbuck_gl breaking_change: true body: | - Browser Performance Testing has run in a job named `performance` by default. With the introduction of [Load Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/load_performance_testing.html) in GitLab 13.2, this naming could be confusing. To make it clear which job is running [Browser Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html), the default job name is changed from `performance` to `browser_performance` in the template in GitLab 14.0. + Browser Performance Testing has run in a job named `performance` by default. With the introduction of [Load Performance Testing](https://docs.gitlab.com/ee/ci/testing/code_quality.html) in GitLab 13.2, this naming could be confusing. To make it clear which job is running [Browser Performance Testing](https://docs.gitlab.com/ee/ci/testing/browser_performance_testing.html), the default job name is changed from `performance` to `browser_performance` in the template in GitLab 14.0. Relevant Issue: [Rename default Browser Performance Testing job](https://gitlab.com/gitlab-org/gitlab/-/issues/225914) - name: "Code Quality RuboCop support changed" @@ -13,7 +13,7 @@ reporter: jheimbuck_gl breaking_change: true body: | - By default, the Code Quality feature has not provided support for Ruby 2.6+ if you're using the Code Quality template. To better support the latest versions of Ruby, the default RuboCop version is updated to add support for Ruby 2.4 through 3.0. As a result, support for Ruby 2.1, 2.2, and 2.3 is removed. You can re-enable support for older versions by [customizing your configuration](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#rubocop-errors). + By default, the Code Quality feature has not provided support for Ruby 2.6+ if you're using the Code Quality template. To better support the latest versions of Ruby, the default RuboCop version is updated to add support for Ruby 2.4 through 3.0. As a result, support for Ruby 2.1, 2.2, and 2.3 is removed. You can re-enable support for older versions by [customizing your configuration](https://docs.gitlab.com/ee/ci/testing/code_quality.html#rubocop-errors). Relevant Issue: [Default `codeclimate-rubocop` engine does not support Ruby 2.6+](https://gitlab.com/gitlab-org/ci-cd/codequality/-/issues/28) - name: "Ruby version changed in `Ruby.gitlab-ci.yml`" diff --git a/data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml b/data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml index 5877b9cf0af..e40e48ba9e9 100644 --- a/data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml +++ b/data/removals/15_0/15-0-advanced-search-elasticsearch-6-8.yml @@ -10,7 +10,7 @@ If you use Elasticsearch 6.8, **you must upgrade your Elasticsearch version to 7.x** prior to upgrading to GitLab 15.0. You should not upgrade to Elasticsearch 8 until you have completed the GitLab 15.0 upgrade. - View the [version requirements](https://docs.gitlab.com/ee/integration/elasticsearch.html#version-requirements) for details. + View the [version requirements](https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#version-requirements) for details. # The following items are not published on the docs page, but may be used in the future. stage: "Enablement" issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/350275 diff --git a/data/removals/15_0/15-0-request-profiling.yml b/data/removals/15_0/15-0-request-profiling.yml index 0ca6919130c..f5cea4e0d11 100644 --- a/data/removals/15_0/15-0-request-profiling.yml +++ b/data/removals/15_0/15-0-request-profiling.yml @@ -6,7 +6,7 @@ breaking_change: true reporter: iroussos body: | # Do not modify this line, instead modify the lines below. - [Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) has been removed in GitLab 15.0. + [Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/index.html) has been removed in GitLab 15.0. We're working on [consolidating our profiling tools](https://gitlab.com/groups/gitlab-org/-/epics/7327) and making them more easily accessible. We [evaluated](https://gitlab.com/gitlab-org/gitlab/-/issues/350152) the use of this feature and we found that it is not widely used. diff --git a/data/removals/15_0/15-0-static-site-editor.yml b/data/removals/15_0/15-0-static-site-editor.yml index 492c3b5e3d2..bea1b14232a 100644 --- a/data/removals/15_0/15-0-static-site-editor.yml +++ b/data/removals/15_0/15-0-static-site-editor.yml @@ -8,10 +8,10 @@ stage: create # (required) String value of the stage that the feature was created in. e.g., Growth issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/347137 # (required) Link to the deprecation issue in GitLab body: | # (required) Do not modify this line, instead modify the lines below. - The Static Site Editor was deprecated in GitLab 14.7 and the feature is being removed in GitLab 15.0. Incoming requests to the Static Site Editor will be redirected and open the target file to edit in the Web IDE. Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/static_site_editor/) for more information, including how to remove the configuration files from existing projects. We will continue investing in improvements to the Markdown editing experience by [maturing the Content Editor](https://gitlab.com/groups/gitlab-org/-/epics/5401) and making it available as a way to edit content across GitLab. + The Static Site Editor was deprecated in GitLab 14.7 and the feature is being removed in GitLab 15.0. Incoming requests to the Static Site Editor will be redirected and open the target file to edit in the Web IDE. Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/web_ide/index.html) for more information, including how to remove the configuration files from existing projects. We will continue investing in improvements to the Markdown editing experience by [maturing the Content Editor](https://gitlab.com/groups/gitlab-org/-/epics/5401) and making it available as a way to edit content across GitLab. # The following items are not published on the docs page, but may be used in the future. tiers: # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate] - documentation_url: https://docs.gitlab.com/ee/user/project/static_site_editor/ + documentation_url: https://docs.gitlab.com/ee/user/project/web_ide/index.html image_url: # (optional) This is a link to a thumbnail image depicting the feature video_url: # (optional) Use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg diff --git a/data/whats_new/202011230001_13_06.yml b/data/whats_new/202011230001_13_06.yml index effaa243812..8701a050d4c 100644 --- a/data/whats_new/202011230001_13_06.yml +++ b/data/whats_new/202011230001_13_06.yml @@ -23,7 +23,7 @@ self-managed: true gitlab-com: true available_in: [Free, Premium, Ultimate] - documentation_link: https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#code-quality-widget + documentation_link: https://docs.gitlab.com/ee/ci/testing/code_quality.html#code-quality-widget image_url: https://about.gitlab.com/images/13_6/code_quality_severity.png published_at: 2020-11-22 release: 13.6 diff --git a/data/whats_new/202103220001_13_10.yml b/data/whats_new/202103220001_13_10.yml index bba60a60ca2..077f97afe81 100644 --- a/data/whats_new/202103220001_13_10.yml +++ b/data/whats_new/202103220001_13_10.yml @@ -41,12 +41,12 @@ release: 13.10 - name: "DORA4-based lead time for changes" description: | - Measuring the efficiency of your software development lifecycle is an important step to grow DevOps adoption for any organization. In the previous milestone, we added support for [DORA4-based Deployment Frequency](https://docs.gitlab.com/ee/api/dora4_project_analytics.html). In this release, we are excited to announce the support of a new API for lead time for changes (via merge requests) on the project level. The lead time for changes gives you an indication of how long it takes for code to be committed and deployed to your production environment. Understanding and tracking this data is a great starting point in your journey to continuous improvement in your DevOps process. + Measuring the efficiency of your software development lifecycle is an important step to grow DevOps adoption for any organization. In the previous milestone, we added support for [DORA4-based Deployment Frequency](https://docs.gitlab.com/ee/api/dora/metrics.html). In this release, we are excited to announce the support of a new API for lead time for changes (via merge requests) on the project level. The lead time for changes gives you an indication of how long it takes for code to be committed and deployed to your production environment. Understanding and tracking this data is a great starting point in your journey to continuous improvement in your DevOps process. stage: Release self-managed: true gitlab-com: true available_in: [Ultimate] - documentation_link: https://docs.gitlab.com/ee/api/dora4_project_analytics.html#list-project-merge-request-lead-times + documentation_link: https://docs.gitlab.com/ee/api/dora/metrics.html#list-project-merge-request-lead-times image_url: https://about.gitlab.com/images/13_10/api.png published_at: 2021-03-22 release: 13.10 diff --git a/data/whats_new/202105220001_13_12.yml b/data/whats_new/202105220001_13_12.yml index 893ea694988..bcb2da40f63 100644 --- a/data/whats_new/202105220001_13_12.yml +++ b/data/whats_new/202105220001_13_12.yml @@ -74,7 +74,7 @@ self-managed: true gitlab-com: true available_in: [Ultimate] - documentation_link: https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#code-quality-in-diff-view + documentation_link: https://docs.gitlab.com/ee/ci/testing/code_quality.html#code-quality-in-diff-view image_url: https://about.gitlab.com/images/13_12/code-quality-mr-diff-mvc.png published_at: 2021-05-22 release: 13.12 diff --git a/data/whats_new/202205220001_15_0.yml b/data/whats_new/202205220001_15_0.yml index e1449f13c0a..112154d9352 100644 --- a/data/whats_new/202205220001_15_0.yml +++ b/data/whats_new/202205220001_15_0.yml @@ -22,7 +22,7 @@ self-managed: true # Boolean value (true or false) gitlab-com: true # Boolean value (true or false) available_in: [Premium, Ultimate] # Array of strings. The Array brackets are required here. e.g., [Free, Starter, Premium, Ultimate] - documentation_link: https://docs.gitlab.com/ee/integration/elasticsearch.html # This is the documentation URL, but can be a URL to a video if there is one + documentation_link: https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html # This is the documentation URL, but can be a URL to a video if there is one image_url: https://about.gitlab.com/images/15_0/gitlab_advanced_search_is_now_compatible_with_opensearch.png # This should be a full URL, generally taken from the release post content. If a video, use the youtube thumbnail URL with the structure of https://img.youtube.com/vi/UNIQUEID/hqdefault.jpg published_at: 2022-05-22 # YYYY-MM-DD release: 15.0 # XX.Y diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md index b4247e4b984..a8762ed67c1 100644 --- a/doc/update/deprecations.md +++ b/doc/update/deprecations.md @@ -1079,7 +1079,7 @@ WARNING: This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/). Review the details carefully before upgrading. -[Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) is deprecated in GitLab 14.8 and scheduled for removal in GitLab 15.0. +[Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/index.html) is deprecated in GitLab 14.8 and scheduled for removal in GitLab 15.0. We're working on [consolidating our profiling tools](https://gitlab.com/groups/gitlab-org/-/epics/7327) and making them more easily accessible. We [evaluated](https://gitlab.com/gitlab-org/gitlab/-/issues/350152) the use of this feature and we found that it is not widely used. @@ -1672,7 +1672,7 @@ Planned removal: GitLab 15.0 (2022-05-22) The Static Site Editor will no longer be available starting in GitLab 15.0. Improvements to the Markdown editing experience across GitLab will deliver smiliar benefit but with a wider reach. Incoming requests to the Static Site Editor will be redirected to the [Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/index.html). -Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/static_site_editor/) for more information, including how to remove the configuration files from existing projects. +Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/web_ide/index.html) for more information, including how to remove the configuration files from existing projects. @@ -2106,7 +2106,7 @@ WARNING: This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/). Review the details carefully before upgrading. -[GitLab Serverless](https://docs.gitlab.com/ee/user/project/clusters/serverless/) is a feature set to support Knative-based serverless development with automatic deployments and monitoring. +GitLab Serverless is a feature set to support Knative-based serverless development with automatic deployments and monitoring. We decided to remove the GitLab Serverless features as they never really resonated with our users. Besides, given the continuous development of Kubernetes and Knative, our current implementations do not even work with recent versions. diff --git a/doc/update/removals.md b/doc/update/removals.md index 392259176bb..84450006d82 100644 --- a/doc/update/removals.md +++ b/doc/update/removals.md @@ -251,7 +251,7 @@ Elasticsearch 6.8 support has been removed in GitLab 15.0. Elasticsearch 6.8 has If you use Elasticsearch 6.8, **you must upgrade your Elasticsearch version to 7.x** prior to upgrading to GitLab 15.0. You should not upgrade to Elasticsearch 8 until you have completed the GitLab 15.0 upgrade. -View the [version requirements](https://docs.gitlab.com/ee/integration/elasticsearch.html#version-requirements) for details. +View the [version requirements](https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#version-requirements) for details. ### End of support for Python 3.6 in Dependency Scanning @@ -444,7 +444,7 @@ WARNING: This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/). Review the details carefully before upgrading. -[Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) has been removed in GitLab 15.0. +[Request profiling](https://docs.gitlab.com/ee/administration/monitoring/performance/index.html) has been removed in GitLab 15.0. We're working on [consolidating our profiling tools](https://gitlab.com/groups/gitlab-org/-/epics/7327) and making them more easily accessible. We [evaluated](https://gitlab.com/gitlab-org/gitlab/-/issues/350152) the use of this feature and we found that it is not widely used. @@ -574,7 +574,7 @@ If you installed GitLab from source, verify manually that both servers are confi ### Static Site Editor -The Static Site Editor was deprecated in GitLab 14.7 and the feature is being removed in GitLab 15.0. Incoming requests to the Static Site Editor will be redirected and open the target file to edit in the Web IDE. Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/static_site_editor/) for more information, including how to remove the configuration files from existing projects. We will continue investing in improvements to the Markdown editing experience by [maturing the Content Editor](https://gitlab.com/groups/gitlab-org/-/epics/5401) and making it available as a way to edit content across GitLab. +The Static Site Editor was deprecated in GitLab 14.7 and the feature is being removed in GitLab 15.0. Incoming requests to the Static Site Editor will be redirected and open the target file to edit in the Web IDE. Current users of the Static Site Editor can view the [documentation](https://docs.gitlab.com/ee/user/project/web_ide/index.html) for more information, including how to remove the configuration files from existing projects. We will continue investing in improvements to the Markdown editing experience by [maturing the Content Editor](https://gitlab.com/groups/gitlab-org/-/epics/5401) and making it available as a way to edit content across GitLab. ### Support for `gitaly['internal_socket_dir']` @@ -849,7 +849,7 @@ WARNING: This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/). Review the details carefully before upgrading. -By default, the Code Quality feature has not provided support for Ruby 2.6+ if you're using the Code Quality template. To better support the latest versions of Ruby, the default RuboCop version is updated to add support for Ruby 2.4 through 3.0. As a result, support for Ruby 2.1, 2.2, and 2.3 is removed. You can re-enable support for older versions by [customizing your configuration](https://docs.gitlab.com/ee/user/project/merge_requests/code_quality.html#rubocop-errors). +By default, the Code Quality feature has not provided support for Ruby 2.6+ if you're using the Code Quality template. To better support the latest versions of Ruby, the default RuboCop version is updated to add support for Ruby 2.4 through 3.0. As a result, support for Ruby 2.1, 2.2, and 2.3 is removed. You can re-enable support for older versions by [customizing your configuration](https://docs.gitlab.com/ee/ci/testing/code_quality.html#rubocop-errors). Relevant Issue: [Default `codeclimate-rubocop` engine does not support Ruby 2.6+](https://gitlab.com/gitlab-org/ci-cd/codequality/-/issues/28) @@ -892,7 +892,7 @@ WARNING: This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/). Review the details carefully before upgrading. -Browser Performance Testing has run in a job named `performance` by default. With the introduction of [Load Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/load_performance_testing.html) in GitLab 13.2, this naming could be confusing. To make it clear which job is running [Browser Performance Testing](https://docs.gitlab.com/ee/user/project/merge_requests/browser_performance_testing.html), the default job name is changed from `performance` to `browser_performance` in the template in GitLab 14.0. +Browser Performance Testing has run in a job named `performance` by default. With the introduction of [Load Performance Testing](https://docs.gitlab.com/ee/ci/testing/code_quality.html) in GitLab 13.2, this naming could be confusing. To make it clear which job is running [Browser Performance Testing](https://docs.gitlab.com/ee/ci/testing/browser_performance_testing.html), the default job name is changed from `performance` to `browser_performance` in the template in GitLab 14.0. Relevant Issue: [Rename default Browser Performance Testing job](https://gitlab.com/gitlab-org/gitlab/-/issues/225914) @@ -1158,7 +1158,7 @@ WARNING: This is a [breaking change](https://docs.gitlab.com/ee/development/deprecation_guidelines/). Review the details carefully before upgrading. -The [deployment frequency project-level API](https://docs.gitlab.com/ee/api/dora4_project_analytics.html#list-project-deployment-frequencies) endpoint has been deprecated in favor of the [DORA 4 API](https://docs.gitlab.com/ee/api/dora/metrics.html), which consolidates all the metrics under one API with the specific metric as a required field. As a result, the timestamp field, which doesn't allow adding future extensions and causes performance issues, will be removed. With the old API, an example response would be `{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }`. The first key/value (`"2021-03-01": 3`) will be removed and replaced by the last two (`"date": "2021-03-01", "value": 3`). +The [deployment frequency project-level API](https://docs.gitlab.com/ee/api/dora/metrics.html#list-project-deployment-frequencies) endpoint has been deprecated in favor of the [DORA 4 API](https://docs.gitlab.com/ee/api/dora/metrics.html), which consolidates all the metrics under one API with the specific metric as a required field. As a result, the timestamp field, which doesn't allow adding future extensions and causes performance issues, will be removed. With the old API, an example response would be `{ "2021-03-01": 3, "date": "2021-03-01", "value": 3 }`. The first key/value (`"2021-03-01": 3`) will be removed and replaced by the last two (`"date": "2021-03-01", "value": 3`). ### Release description in the Tags API diff --git a/doc/user/project/web_ide/index.md b/doc/user/project/web_ide/index.md index 7ecd1bb7782..0200e9c4e7d 100644 --- a/doc/user/project/web_ide/index.md +++ b/doc/user/project/web_ide/index.md @@ -459,3 +459,12 @@ The Web IDE has a few limitations: - If the terminal displays **Connection Failure**, then the terminal could not connect to the runner. Try to stop and restart the terminal. If the problem persists, double check your runner configuration. + +## VSCode Reimplementation + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/95169) in GitLab 15.4 [with a flag](../../../administration/feature_flags.md) named `vscode_web_ide`. Disabled by default. + +As announced in [this blog post](https://about.gitlab.com/blog/2022/05/23/the-future-of-the-gitlab-web-ide/), +the current implementation of the Web IDE will be replaced with a [VSCode inspired implementation](https://gitlab.com/groups/gitlab-org/-/epics/7683). + +This effort is currently under development. Follow [this epic](https://gitlab.com/groups/gitlab-org/-/epics/7683) for updates and more information. diff --git a/glfm_specification/output_example_snapshots/html.yml b/glfm_specification/output_example_snapshots/html.yml index 69cff67d27d..a16ee2e7200 100644 --- a/glfm_specification/output_example_snapshots/html.yml +++ b/glfm_specification/output_example_snapshots/html.yml @@ -2,22 +2,22 @@ 02_01_00__preliminaries__tabs__001: canonical: "
foo\tbaz\t\tbim\n
\n" static: "
\n
foo\tbaz\t\tbim
\n\n
" wysiwyg: "
foo\tbaz\t\tbim
" 02_01_00__preliminaries__tabs__002: canonical: "
foo\tbaz\t\tbim\n
\n" static: "
\n
foo\tbaz\t\tbim
\n\n
" wysiwyg: "
foo\tbaz\t\tbim
" 02_01_00__preliminaries__tabs__003: canonical: "
a\ta\nὐ\ta\n
\n" static: "
\n
a\ta\nὐ\ta
\n\n
" wysiwyg: "
a\ta\nὐ\ta
" @@ -52,7 +52,7 @@
  • foo

    -
      bar
    +
      bar
  • @@ -68,7 +68,7 @@ static: |-
    -
      foo
    +
      foo
    @@ -86,7 +86,7 @@