1---
2stage: none
3group: unassigned
4info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
5---
6
7# Developing against interacting components or features
8
9It's not uncommon that a single code change can reflect and interact with multiple parts of GitLab
10codebase. Furthermore, an existing feature might have an underlying integration or behavior that
11might go unnoticed even by reviewers and maintainers.
12
13The goal of this section is to briefly list interacting pieces to think about
14when making _backend_ changes that might involve multiple features or [components](architecture.md#components).
15
16## Uploads
17
18GitLab supports uploads to [object storage](https://docs.gitlab.com/charts/advanced/external-object-storage/). That means every feature and
19change that affects uploads should also be tested against [object storage](https://docs.gitlab.com/charts/advanced/external-object-storage/),
20which is _not_ enabled by default in [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit).
21
22When working on a related feature, make sure to enable and test it
23against [MinIO](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/object_storage.md).
24
25See also [File Storage in GitLab](file_storage.md).
26
27## Merge requests
28
29### Forks
30
31GitLab supports a great amount of features for [merge requests](../user/project/merge_requests/index.md). One
32of them is the ability to create merge requests from and to [forks](../user/project/repository/forking_workflow.md#creating-a-fork),
33which should also be highly considered and tested upon development phase.
34