Source Code Group: Prioritization & Planning
Planning issues
This Epic contains the Planning Issues for groupsource code
14.0 , 14.1 , 14.2 , 14.3 , 14.4 , 14.5 , 14.6 , 14.7 , 14.8 , 14.9 , 14.10 , 15.0 , 15.1 , 15.2 , 15.3 , 15.4 , 15.5 , 15.6 , 15.7
Source Code Planning 15.7 (create-stage#13078 - closed)
How do we prioritize & How do we plan a milestone
How do we prioritize
- We use this epic description to prioritize
- Our goal is to have a prioritized backlog that carries us for three milestones
- Higher priorities are higher in its list
- For each entry we add enough information so that one can easily assess priority by simple comparison with another entry
- in some cases the labels and the title are enough
- effort is very helpful when it comes to planning and we add that right after the issue as plain number
- We can use the mouse to move things up an down the list
- Note for features (which are typically epics) this is not that easy as they often consist of multiple issues so it makes sense to group them.
- However, the group can be split up into multiple sections using "... continued ..." to allow for incremental and parallel delivery of different epics.
- We prioritize typefeature separate from typebug and typemaintenance
- We aim for a mix of these two: TBD
- We distinguish two types of bugs that we address in a balanced fashion:
- those that reduce risk: availabilitylimit, security, infradev
- those that address customer issues: customer
- We want to honor our GitLab value Collaboration and therefore will help other teams as best as we can by prioritizing what they need from us.
- We can mark individual entries with a tentative milestone. As long as they are not marked as Deliverable, they are not planned and their timeline is more likely to change than it is after they have been labeled Deliverable. The Deliverable label can only be set as part of the planning (see next section).
How do we plan a milestone (practicalities)
When it is time to plan a milestone
- We check which isses are likely going to slip and mark them with a
- We uncheck all the checkboxes. Their pupose is to facilitate the short period of planning and are only used by the PM and the EM. Beyond that they have no meaning.
- Then going from highest priority down we add as many issues to the milestone as the capacity permits by checking the boxes.
- we have to check boxes in typefeature and in typebug and typemaintenance ideally following our goal for the right mix
- When we are happy with the plan,
- we open each issue that was chosen and add the Deliverable and set the milestone
- likewise we update this list here by setting the Deliverable and the milestone, this way we are prepared for the next months planning session
- The PM creates a planning issue based on the planning outcome that serves mainly for telling the story what we are planning to work on
typefeature
FeaturesFaster syntax highlighting using Highlight.js
(only remaining work is listed)
- Deliverable %15.2 - Measure performance benefit of Highlight JS & Refactorization of Blob view frontend
- Deliverable %15.2 - Implement fallback to Rouge for languages not supported by Highlight.js (and track usage) 2 frontend
- Deliverable %15.2 - Spike: test the plugin architecture to add links to ONE type of package manager file (with implementation 2 frontend
- Deliverable %15.2 - Rollout highlight_js feature flag 1 frontend
- Deliverable %15.3 - Resolve binary file that appears to be text in the first 1024 bytes edge case frontend backend
- Deliverable %15.4 - Generate links to package managers (gemfile) 2 frontend
- Deliverable %15.4 - Split content into chunks after Highlight.js has highlighted content 3 frontend
-
EPIC: Link to package managers when viewing dependency files with highlight.js frontend
- This is not a very high priority. When we have capacity in the frontend team we will add one or two of these issues per milestone picking from the top of this child issues list until we are done.
MVP: view source code rules organized by branches
- Deliverable %15.4 - Branch rules MVC: Add GraphQL endpoint to support the Read-only Overview page 2 backend
- Deliverable %15.4 - Branch rules MVC: List branch rules under Repository Settings 3 frontend
- Deliverable %15.6 - Add branch rules details to the list of branch rules 2 frontend backend
- Deliverable %15.6 - Branch rules MVC: Display branch rules details 2 frontend backend
MVP: view and edit source code rules organized by branches (fka "Source Code Rules MVP")
- Deliverable %15.1 - Branch rules MVC: Implement frontend skeleton (gitlab#362205 - closed) 2 frontend
- Deliverable %15.3 - Implement the ability to add branch Protections (gitlab#362212 - closed) 3 frontend
- Implement the ability to add Merge Request appr... (gitlab#362214 - closed) 3 frontend
-
Deliverable %15.3 - Branch rules MVC: Design or reuse the database ... (gitlab#362705 - closed) 2 backend -
Deliverable %15.3 - Branch rules MVC: Add GraphQL endpoint to updat... (gitlab#362707 - closed) 2 backend -
Stretch %15.3 - Branch rules MVC: Add GraphQL endpoint to delet... (gitlab#362219 - closed) 2 backend - Branch rules MVC: List branch rules under Repos... (gitlab#362217 - closed) 2 frontend
- Implement the ability to Delete a Branch rule (gitlab#362218 - closed) 1 frontend
Git SSH ... continued ...
-
Deliverable %15.4 - Remove
group_ip_restrictions_allow_global
feature flag backend - https://gitlab.com/gitlab-org/gitlab-shell/-/issues/495+ backend
Specific Customers at risk
-
Unable to add invited groups to a private projects protected settings without direct membership- https://gitlab.com/gitlab-com/customer-success/account-triage/-/issues/485+ customer
- Workspace team informed that this is intended behavior and won't be fixed.
-
Deliverable %15.2 - Gitlab API: implement the ability to use group_id to protect tags
- https://gitlab.com/gitlab-com/customer-success/account-triage/-/issues/485+ customer (just raised on 28 June that this is an urgent issue)
- 4 customers need this (note there is duplicate that contains the other 3)
- 10 upvotes
Supporting cross-company goal
- Deliverable %15.4 - https://gitlab.com/groups/gitlab-org/-/epics/7987+
-
%15.6 - Extend Project Statistics API to expose transferred data (egress) backend
- needs more product prep work
- helps others: https://gitlab.com/gitlab-com-top-initiatives/free-saas-user-efficiency/free-saas/-/issues/43
- Deliverable %15.6 - SCM metrics to be instrumented to support our customers and GitLab TAMs in understand product adoption phase 1
Highly demanded features
-
Deliverable %15.6 - Branch and tag with same name cause multiple problems
- this is interpreted as a typebug as we do not use git in the correct way.
- very painful for 5 big customers
- Depending on the exact need it may be solve-able by Allow more powerful regexes for protected refs (branches and tags) just below.
- frontend and backend
- backend-weight3 frontend-weight2
- The solution seems to be rather clear. A call with one of the customers to validate the solution is outstanding.
-
Report number of lines per language in repository charts
-
560 upvotes
- 18 customer requests
- effort 8
- Deliverable spike %15.5 - to Determine how and where to count lines of code ... (gitlab#373712 - closed)
-
560 upvotes
-
Allow more powerful regexes for protected refs (branches and tags)
- highly popular: 104 upvotes
- effort 3+1
- Also got pinged by Patrick McBrien
- Decide on a small enhancement e.g. SemVer support as the full regex is a security risk. Also, convention over configuration is a good guidance here.
-
Deliverable %15.6 - Configure default branch name for branches created from merge request
- 92 upvotes / 4 paying customers
- competition offers this
- needs a little design work to be ready for dev.
- won't be too challenging technically
- decide: do we want to implement this although it contradicts convention over configuration
- relates to: gitlab#16080 (comment 1014196798)+ with 109 upvotes.
-
Restrict protected tag creation to specific branch
- 36 upvotes
- competition
- effort unclear
-
Better display of tags in commits list view
-
5 big customers
- 62 upvotes
- backend-weight2 label frontend-weight2
- SUSFY22 Q1 - Incomplete; not SaaS specific
- Albeit Better display of tags and branches in commit view has less upvotes, than the above issue, it seems to be the one that could deliver more value addressing the user needs. In any case, we would likely do both.
- In %15.5 we have done a spike with Better display of tags and branches in commit view to understand how we could make the feature performant.
- Torsten needs to answer this question and prep an opportunity canvas.
-
5 big customers
-
Deliverable %15.6 Ability to update access levels from Protected Branch API 2 backend
- 24 upvotes
-
Dynamically determine mirror update interval based on total number of mirrors, average update time, and available concurrency
- quite some customers asking for this, haven't counted them properly though.
-
Offer to fetch and merge new upstream contents when fork is behind
- Help increase our community contributions
- Could be complex to implement.
- technically somewhat related to gitlab#14491 (comment 1134949196)+
UX improvements
- Deliverable %15.3 - Go to Git blame for specific line of file 2 frontend UX
- Deliverable %15.4 will likely slip to %15.6 - Add ability to link to a line on File Blame page 2 frontend UX
Bigger efforts
- Pull mirroring improvements. There is a very good video linked here.
- Understand inheritance in different contexts:
Other
- Deliverable %15.5 - [Feature flag] Rollout of `escape_gitaly_refs` (gitlab#366437 - closed) 1 backend feature flag
- Deliverable %15.5 - [Feature flag] Rollout of `use_gitaly_paginatio... (gitlab#372049 - closed) 1 backend feature flag
- Deliverable %15.5 - [Feature flag] Cleanup extract_mr_diff_deletions (gitlab#373498 - closed) 1 backend feature flag
typebug
Bugs- Deliverable %15.6 Improve browser Total Blocking Time (TBT) performance of Project Files Tree page into S2 tier 3 typebug bugperformance frontend severity1
- Deliverable %15.6 - Blind SSRF in repository mirroring using DNS re... (gitlab#353018 - closed) backend bugvulnerability due April 2022, see comment
-
%15.6 - Filtered branches and button "Delete merged branches" deletes all merged branches bugux priority1
- awaiting UX guidance
- %15.6 - [ ] Incorrect repository pagination for PaginatedTree response backend
- %15.6 - Improve browser Total Blocking Time (TBT) performance of View File (source) page into S3 tier bugperformance frontend ~"missed-SLO" severity2
- %15.7 - Improve browser Largest Contentful Paint (LCP) performance of Project File Rendered page into S3 tier 2 frontend backend bugperformance
- Deliverable %15.7 - Improve browser Largest Contentful Paint (LCP) performance of Project File Rendered page into S3 tier 2 frontend backend bugperformance
- %15.7 - Can't edit forked files in the web UI typebug severity2 backend ~"missed-SLO"
- %15.7 - Branch and tag with same name cause multiple problems typebug severity2 customer backend frontend
- %15.7 - Repository mirroring from GitHub not updating typebug severity2 customer ~"approaching-SLO"
- %15.7 - Codeowners seems to exhibit flaky behavior when a project token bot is present bugtransient severity2 customer
-
%15.7 - Support for
Corrupted repository edmond-demo/sandbox/sandbox-kubernetes-agent
bugavailability severity2 spike ~"approaching-SLO" - %15.7 - Cleaned Commits can still be accessed after running Repository cleanup typebug customer needs investigation severity2
- %15.7 - spike - Search bar shows limited and inconsistent results when searching for groups customer backend
- %15.7 - Cannot download LFS binary data via API; just downloads the pointer file. severity3 customer
- %15.8 - Confidential bugvulnerability severity2 security
- %15.8 - Commits attributed to push user, not Git author or committer bugux severity2 customer frontend backend
- %15.8 spike - Possible race condition in "merge when pipeline succeeds" push option backend customer severity2
- %15.8 - Gitlab has problems handling ansi files e.g. windows-1252 characters. This also results in merges or "online edits" deleting chars typebug severity2 customer ~"missed-SLO"
- %15.8 - x509 / TLS signed commits: only the first email address in the subjectAltName list is used for verifying commits typebug severity2 customer ~"approaching-SLO"
-
%15.8 - Group project template cannot be seen by inherited member 3 customer backend
- 4 Customers (1 very large ultimate)
- %15.8 - Blocked users in group's members for Merge Request approvers bugfunctional severity2 customer backend
- %15.8 - git clone error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2) typebug severity2 Enterprise Edition customer
- %15.8 - Unable to move new file with same filename named by previous file in a folder 2 customer severity2 backend
-
%15.8 - Unprotecting a branch returning 403 backend
- Sean considers this a prio 1 but with very little customers affected and the ticket being open since 1.5 years
- %15.8 - i/o timeout when pushing LFS objects severity2 customer
- %15.8 spike - Group approval invalidated if user is later removed from the group bugfunctional severity2 backend customer
- %15.8 - Push Options does not create MR from master to other branch typebug severity3 customer
- %15.8 - The newest tag is missing in the compare page branch/tag menu bugfunctional severity2 backend vintage
- %15.8 - ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_lfs_objects_on... bugfunctional severity2
- %15.9 - Investigate performance regression of show.json action (source) for Projects::BlobController bugperformance severity2 ~"approaching-SLO"
-
Project API
mirror
works initially despite of not having a Premium license 2 backend severity4 bugtransient- potential revenue loss, but not reproducible
- Add Gitaly-based search for branches bugperformance severity2 backend
- GRPC::Internal: 13:process spawn timed out after 10s. 3 typebug severity2 backend
-
History timeout for files in large repo customer backend
- Specific Customers at risk
- needs work to understand if we should do this at all
- Torsten is following up with customer team
- https://gitlab.zendesk.com/agent/tickets/296090
- https://gitlab.com/gitlab-org/gitlab-shell/-/issues/495+ security backend
- Multiple concurrent API requests against repository. severity3 backend customer
- Developers are allowed to push to protected branch bugfunctional severity2 workflowvalidation backlog
-
Push option
merge_request.create
does not work for forks bugfunctional
typemaintenance
Maintenance- %15.7 - Custom group-level project templates do not import all project settings typemaintenance customer
- Deliverable %15.2 - https://gitlab.com/gitlab-org/gitlab/-/issues/31066+ 3 availabilitylimit backend typemaintenance
- Deliverable %15.3 - Improve observability of project mirroring backend infradev typemaintenance
-
Deliverable %15.3 - gitlab-sshd: Make it possible to propagate correlation IDs to Workhorse when PROXY protocol enabled typemaintenance backend
- benefit: faster debugging of issues in prod
- Stretch %15.3 - https://gitlab.com/gitlab-org/gitlab/-/issues/350513+ 3 security backend severity3 typemaintenance due 31 August
- Deliverable %15.4 - https://gitlab.com/gitlab-org/gitlab/-/issues/368952+ 2 ~"FedRAMP Milestone::Vuln Remediation" frontend
-
Deliverable %15.4 - Repository pull mirror scheduling design (is part of Pull Mirroring Improvements (&8225)) 2 typemaintenance spike backend
- No. 1 on maintanance priority list
- It has a performance label but it actually affects availability
- Apparently, not having this almost resulted in a Feature Change Locks (FCL)
- As it is not clear if it is ready for implementation we'll start with a spike.
- Deliverable %15.4 - Error budgets exceeded for Create: Source Code (gitlab#360578 - closed) 2 Error Budget Improvement backend typemaintenance
-
%15.4 -
https://gitlab.com/gitlab-org/gitlab/-/issues/362342+security backend typemaintenance - Deliverable %15.4 - Convert `diffs/_diffs` partial into a ViewCompo... (gitlab#321299 - closed) 1 backend typemaintenance
- Deliverable %15.4 - Add unique index for to ApprovalMergeRequestRules for "rule_type=regular" 3 backend typemaintenance
-
Deliverable %15.5 - Improve caching on raw endpoints backend typemaintenance
- Helping others that have a security issue due end of August
- Deliverable %15.5 - Add instrumentation for cache metrics backend typemaintenance
- Stretch %15.5 - Switch to google-protobuf v2 API 2 backend
- Stretch %15.5 - Convert `diffs/_file` partial into a ViewComponent (gitlab#321302 - closed) 3 backend
-
%15.6 - Squash housekeeping period options with a single option backend typemaintenance
- Helping others
- last step to achieve full value of a work that was done by Gitaly.
- Pull mirroring improvements. There is a very good video linked here.
- Application metrics mvc/poc 2 typemaintenance spike backend
- gitlab#356154 (closed) documentation with initial help from backend typemaintenance
- %15.7 - Restart hard-failed mirrors when a subscription is renewed typemaintenance backend
- Add Gitaly-based search for tags typemaintenance backend
- %15.8 - Split content into chunks after Highlight.js has highlighted content typemaintenance frontend
- Show closed items
Link items together to show that they're related or that one is blocking others.