diff --git a/.gitlab/ci/test-on-cng/main.gitlab-ci.yml b/.gitlab/ci/test-on-cng/main.gitlab-ci.yml index 0859cd5051a..c3fed7916ac 100644 --- a/.gitlab/ci/test-on-cng/main.gitlab-ci.yml +++ b/.gitlab/ci/test-on-cng/main.gitlab-ci.yml @@ -78,7 +78,7 @@ workflow: QA_ALLOW_LOCAL_REQUESTS: "true" QA_SUITE_STATUS_ENV_FILE: $CI_PROJECT_DIR/suite_status.env QA_RUN_IN_PARALLEL: "true" - QA_PARALLEL_PROCESSES: 4 + QA_PARALLEL_PROCESSES: 5 GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN before_script: - echo "SUITE_RAN=true" > "$QA_SUITE_STATUS_ENV_FILE" diff --git a/.gitlab/issue_templates/Security developer workflow.md b/.gitlab/issue_templates/Security developer workflow.md index e497bbbb241..b60a7852e98 100644 --- a/.gitlab/issue_templates/Security developer workflow.md +++ b/.gitlab/issue_templates/Security developer workflow.md @@ -34,7 +34,8 @@ After your merge request has been approved according to our [approval guidelines - You can use the script `bin/secpick` instead of the following steps, to help you cherry-picking. See the [secpick documentation] - [ ] Create each MR targeting the stable branch `X-Y-stable`, using the [Security merge request template]. - Every merge request will have its own set of to-dos, so make sure to complete those. -- [ ] On the "Related merge requests" section, ensure that `4` merge requests are associated: The one targeting `master` and the `3` backports. +- [ ] On the `Related merge requests` section, ensure that **ONLY** `4` merge requests are associated: **ONLY** one targeting `master` and the `3` backports. + - [ ] If there are more associated MRs, re-create another security issue and ensure there are only 4 merge requests associated with that one. - [ ] If this issue requires less than `4` merge requests, add the ~"reduced backports" label. ## Assigning to a release diff --git a/.rubocop_todo/gitlab/bounded_contexts.yml b/.rubocop_todo/gitlab/bounded_contexts.yml index 0741962bf45..47544ee5ef0 100644 --- a/.rubocop_todo/gitlab/bounded_contexts.yml +++ b/.rubocop_todo/gitlab/bounded_contexts.yml @@ -3603,6 +3603,7 @@ Gitlab/BoundedContexts: - 'ee/lib/ee/event_filter.rb' - 'ee/lib/ee/feature.rb' - 'ee/lib/ee/feature/definition.rb' + - 'ee/lib/ee/sidebars/admin/menus/admin_overview_menu.rb' - 'ee/lib/ee/sidebars/admin/menus/admin_settings_menu.rb' - 'ee/lib/ee/sidebars/admin/menus/monitoring_menu.rb' - 'ee/lib/ee/sidebars/admin/panel.rb' diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml index 7088afe74b1..005f70f2d1a 100644 --- a/.rubocop_todo/layout/line_length.yml +++ b/.rubocop_todo/layout/line_length.yml @@ -1959,7 +1959,6 @@ Layout/LineLength: - 'lib/api/commit_statuses.rb' - 'lib/api/commits.rb' - 'lib/api/composer_packages.rb' - - 'lib/api/concerns/packages/conan_endpoints.rb' - 'lib/api/concerns/packages/debian_distribution_endpoints.rb' - 'lib/api/concerns/packages/debian_package_endpoints.rb' - 'lib/api/debian_group_packages.rb' diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index 3237e12671d..bc471ddb436 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -6250b300df6b3559e377ac6d218bba674ee045bf +ed8e69891a82913e19430e094c192833ea5cb066 diff --git a/app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue b/app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue index e73aef521d2..90d5aa1c29e 100644 --- a/app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue +++ b/app/assets/javascripts/ci/catalog/components/details/ci_resource_components.vue @@ -1,18 +1,19 @@ @@ -69,12 +87,18 @@ export default { + > + + + + diff --git a/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/components/mlflow_usage_modal.vue b/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/components/mlflow_usage_modal.vue new file mode 100644 index 00000000000..512d7f38b15 --- /dev/null +++ b/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/components/mlflow_usage_modal.vue @@ -0,0 +1,73 @@ + + + diff --git a/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/constants.js b/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/constants.js index c94e7648d1d..2a8c39ebdf3 100644 --- a/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/constants.js +++ b/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/constants.js @@ -2,9 +2,9 @@ import { s__ } from '~/locale'; import { helpPagePath } from '~/helpers/help_page_helper'; export const CREATE_EXPERIMENT_HELP_PATH = helpPagePath( - 'user/project/ml/experiment_tracking/index', + 'user/project/ml/experiment_tracking/mlflow_client', { - anchor: 'track-new-experiments-and-candidates', + anchor: 'model-experiments', }, ); @@ -15,3 +15,5 @@ export const EXPERIMENTS_TABLE_FIELDS = Object.freeze([ label: s__('MlExperimentTracking|Logged candidates for experiment'), }, ]); + +export const MLFLOW_USAGE_MODAL_ID = 'experiment-tracking-mlflow-experiment-usage-model'; diff --git a/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/translations.js b/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/translations.js index f556197633b..78800c53ca5 100644 --- a/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/translations.js +++ b/app/assets/javascripts/ml/experiment_tracking/routes/experiments/index/translations.js @@ -4,10 +4,14 @@ export const TITLE_LABEL = s__('MlExperimentTracking|Model experiments'); export const CREATE_NEW_LABEL = s__('MlExperimentTracking|Create a new experiment'); +export const CREATE_USING_MLFLOW_LABEL = s__( + 'MlExperimentTracking|Create an experiment using MLflow', +); + export const EMPTY_STATE_TITLE_LABEL = s__( 'MlExperimentTracking|Get started with model experiments!', ); export const EMPTY_STATE_DESCRIPTION_LABEL = s__( - 'MlExperimentTracking|Experiments keep track of comparable model candidates, and determine which parameters provides the best performance. Create experiments using the MLflow client', + 'MlExperimentTracking|Experiments keep track of comparable model candidates, and determine which parameters provides the best performance.', ); diff --git a/app/assets/javascripts/pages/projects/merge_requests/index/index.js b/app/assets/javascripts/pages/projects/merge_requests/index/index.js index a367c0b5498..3eb9958b7d3 100644 --- a/app/assets/javascripts/pages/projects/merge_requests/index/index.js +++ b/app/assets/javascripts/pages/projects/merge_requests/index/index.js @@ -1,4 +1,7 @@ import addExtraTokensForMergeRequests from 'ee_else_ce/filtered_search/add_extra_tokens_for_merge_requests'; +import getMergeRequestsQuery from 'ee_else_ce/merge_requests/list/queries/project/get_merge_requests.query.graphql'; +import getMergeRequestsCountsQuery from 'ee_else_ce/merge_requests/list/queries/project/get_merge_requests_counts.query.graphql'; + import { addShortcutsExtension } from '~/behaviors/shortcuts'; import ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation'; import IssuableFilteredSearchTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys'; @@ -23,4 +26,4 @@ addShortcutsExtension(ShortcutsNavigation); initIssuableByEmail(); initCsvImportExportButtons(); mountMoreActionsDropdown(); -mountMergeRequestListsApp(); +mountMergeRequestListsApp({ getMergeRequestsQuery, getMergeRequestsCountsQuery }); diff --git a/app/assets/javascripts/pages/projects/ml/experiments/index/index.js b/app/assets/javascripts/pages/projects/ml/experiments/index/index.js index b054022b6d6..f38cf12b3ea 100644 --- a/app/assets/javascripts/pages/projects/ml/experiments/index/index.js +++ b/app/assets/javascripts/pages/projects/ml/experiments/index/index.js @@ -8,11 +8,12 @@ const initIndexMlExperiments = () => { return undefined; } - const { experiments, pageInfo, emptyStateSvgPath } = element.dataset; + const { experiments, pageInfo, emptyStateSvgPath, mlflowTrackingUrl } = element.dataset; const props = { experiments: JSON.parse(experiments), pageInfo: convertObjectPropsToCamelCase(JSON.parse(pageInfo)), emptyStateSvgPath, + mlflowTrackingUrl, }; return new Vue({ diff --git a/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/interval_pattern_input.vue b/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/interval_pattern_input.vue index 1e8fb7d81e7..41ca1745ddb 100644 --- a/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/interval_pattern_input.vue +++ b/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/interval_pattern_input.vue @@ -1,8 +1,9 @@