# Definition of code owners for automatic assigment of reviewers.
#
# Blender is structured in modules, which do not always map directly to a
# specific directory or a set of files. This means that if reviewers were
# automatically assigned might not always be the ones to make the final
# decision.
#
# Developers should consider adding themselves to files and directories they
# are interested in review (or where they're often asked to do reviews).

# --------------------------------------------------
# Core module.

## Depsgraph.
source/blender/depsgraph/.*  @sergey

## ID Management.
source/blender/blenkernel/BKE_lib.*                 @mont29
source/blender/blenkernel/intern/lib.*              @mont29
source/blender/blenkernel/BKE_idtype.*              @mont29
source/blender/blenkernel/intern/idtype.*           @mont29
source/blender/blenkernel/BKE_main.*                @mont29
source/blender/blenkernel/intern/main.*             @mont29
source/blender/editors/include/ED_id_management.*   @mont29
source/blender/editors/id_management.*              @mont29

## UI/UX related Core components.
source/blender/blenkernel/BKE_screen.*         @mont29
source/blender/blenkernel/intern/screen.*      @mont29
source/blender/blenkernel/BKE_wm.*             @mont29
source/blender/blenkernel/intern/wm.*          @mont29
source/blender/blenkernel/BKE_workspace.*      @mont29
source/blender/blenkernel/intern/workspace.*   @mont29

## Scene/Collections/Objects.
source/blender/blenkernel/BKE_scene.*          @mont29
source/blender/blenkernel/intern/scene.*       @mont29
source/blender/blenkernel/BKE_collection.*     @mont29
source/blender/blenkernel/intern/collection.*  @mont29
source/blender/blenkernel/BKE_layer.*          @mont29
source/blender/blenkernel/intern/layer.*       @mont29
source/blender/blenkernel/BKE_object.*         @mont29
source/blender/blenkernel/intern/object.*      @mont29

## Blendfile & Undo.
# No proper way with go regex to exclude some `versioning` files,
# so we need to include everything else explicitely (lack of negative lookahead...).
source/blender/blenloader/intern/blend.*               @mont29
source/blender/blenloader/intern/read.*                @mont29
source/blender/blenloader/intern/undo.*                @mont29
source/blender/blenloader/intern/write.*               @mont29
source/blender/blenloader/intern/versioning_common.cc  @mont29
source/blender/blenloader/intern/versioning_dna.cc     @mont29
source/blender/blenloader/[^/]*                        @mont29
source/blender/blenloader/tests/.*                     @mont29
source/blender/blenloader_core/.*                      @mont29
source/blender/blenkernel/BKE_blendfile.*              @mont29
source/blender/blenkernel/intern/blendfile.*           @mont29
source/blender/blenkernel/BKE_packedfile.*             @mont29
source/blender/blenkernel/intern/packedFile.*          @mont29
source/blender/blenkernel/BKE_undo.*                   @mont29
source/blender/blenkernel/intern/undo.*                @mont29
source/blender/editors/include/ED_undo.*               @mont29
source/blender/editors/undo.*                          @mont29

## Misc core utils & components.
# NOTE: Cannot exclude `BKE_blender_version.hh` only here, hence the weird regexes.
source/blender/blenkernel/BKE_blender[^_].*      @mont29
source/blender/blenkernel/BKE_blender_[^v].*     @mont29
source/blender/blenkernel/intern/blender.*       @mont29
source/blender/blenkernel/BKE_bpath.*            @mont29
source/blender/blenkernel/intern/bpath.*         @mont29
source/blender/blenkernel/BKE_idprop.*           @mont29
source/blender/blenkernel/intern/idprop.*        @mont29
source/blender/blenkernel/BKE_report.*           @mont29
source/blender/blenkernel/intern/report.*        @mont29

## DNA.
source/blender/makesdna/intern.*    @mont29
source/blender/makesdna/tests.*     @mont29

## RNA.
source/blender/makesrna/makesrna.*        @mont29
source/blender/makesrna/rna_internal.*    @mont29

## Guarded Allocator.
intern/guardedalloc.*        @mont29

# --------------------------------------------------
# BPY.
source/python/[^/]+        @mont29
source/python/intern/.*    @mont29
source/python/generic/.*   @mont29

# --------------------------------------------------
# Motion tracking and Libmv.
intern/libmv/.* @sergey
source/blender/blenkernel/BKE_tracking.*     @sergey
source/blender/blenkernel/intern/tracking.*  @sergey

# --------------------------------------------------
# Render and Cycles module.
intern/cycles/.*           @sergey @brecht @weizhen @sherholz
source/blender/render/.*   @sergey @brecht

# --------------------------------------------------
# Color management.
source/blender/imbuf/IMB_colormanagement.h     @sergey @brecht
source/blender/imbuf/intern/colormanagement.*  @sergey @brecht
source/blender/imbuf/opencolorio/.*            @sergey @brecht

# --------------------------------------------------
# Grease Pencil.
source/blender/editors/grease_pencil/.*           @filedescriptor
source/blender/blenkernel/BKE_grease_pencil.*     @filedescriptor
source/blender/blenkernel/intern/grease_pencil.*  @filedescriptor

# --------------------------------------------------
# Geometry Nodes.
source/blender/functions/.*                @JacquesLucke
source/blender/nodes/NOD_geometry_nodes.*  @JacquesLucke
source/blender/nodes/geometry/.*           @JacquesLucke

# --------------------------------------------------
# Blenlib.
source/blender/blenlib/BLI_allocator.*                     @JacquesLucke
source/blender/blenlib/BLI_any.*                           @JacquesLucke
source/blender/blenlib/BLI_array.*                         @JacquesLucke
source/blender/blenlib/BLI_atomic_disjoint_set.*           @JacquesLucke
source/blender/blenlib/BLI_binary_search.*                 @JacquesLucke
source/blender/blenlib/BLI_bit.*                           @JacquesLucke
source/blender/blenlib/BLI_cache_mutex.*                   @JacquesLucke
source/blender/blenlib/BLI_compute_context.*               @JacquesLucke
source/blender/blenlib/BLI_concurrent_map.*                @JacquesLucke
source/blender/blenlib/BLI_cpp_type.*                      @JacquesLucke
source/blender/blenlib/BLI_csv_parse.*                     @JacquesLucke
source/blender/blenlib/BLI_disjoint_set.*                  @JacquesLucke
source/blender/blenlib/BLI_dot_export.*                    @JacquesLucke
source/blender/blenlib/BLI_enumerable_thread_specific.*    @JacquesLucke
source/blender/blenlib/BLI_fixed_width_int.*               @JacquesLucke
source/blender/blenlib/BLI_function_ref.*                  @JacquesLucke
source/blender/blenlib/BLI_generic.*                       @JacquesLucke
source/blender/blenlib/BLI_hash.*                          @JacquesLucke
source/blender/blenlib/BLI_implicit_sharing.*              @JacquesLucke
source/blender/blenlib/BLI_index_mask.*                    @JacquesLucke
source/blender/blenlib/BLI_index_range.*                   @JacquesLucke
source/blender/blenlib/BLI_linear_allocator.*              @JacquesLucke
source/blender/blenlib/BLI_map.*                           @JacquesLucke
source/blender/blenlib/BLI_memory_cache.*                  @JacquesLucke
source/blender/blenlib/BLI_memory_counter.*                @JacquesLucke
source/blender/blenlib/BLI_multi_value_map.*               @JacquesLucke
source/blender/blenlib/BLI_mutex.*                         @JacquesLucke
source/blender/blenlib/BLI_offset.*                        @JacquesLucke
source/blender/blenlib/BLI_parameter_pack_utils.*          @JacquesLucke
source/blender/blenlib/BLI_probing_strategies.*            @JacquesLucke
source/blender/blenlib/BLI_random_access_iterator_mixin.*  @JacquesLucke
source/blender/blenlib/BLI_resource_scope.*                @JacquesLucke
source/blender/blenlib/BLI_set.*                           @JacquesLucke
source/blender/blenlib/BLI_span.*                          @JacquesLucke
source/blender/blenlib/BLI_stack.*                         @JacquesLucke
source/blender/blenlib/BLI_string_ref.*                    @JacquesLucke
source/blender/blenlib/BLI_string_search.*                 @JacquesLucke
source/blender/blenlib/BLI_struct_equality_utils.*         @JacquesLucke
source/blender/blenlib/BLI_task.*                          @JacquesLucke
source/blender/blenlib/BLI_unique_sorted_indices.*         @JacquesLucke
source/blender/blenlib/BLI_vector.*                        @JacquesLucke
source/blender/blenlib/BLI_virtual.*                       @JacquesLucke
source/blender/blenlib/intern/atomic_disjoint_set.*        @JacquesLucke
source/blender/blenlib/intern/bit.*                        @JacquesLucke
source/blender/blenlib/intern/cache_mutex.*                @JacquesLucke
source/blender/blenlib/intern/index_mask.*                 @JacquesLucke
source/blender/blenlib/intern/generic.*                    @JacquesLucke
source/blender/blenlib/intern/implicit_sharing.*           @JacquesLucke
source/blender/blenlib/intern/memory_cache.*               @JacquesLucke
source/blender/blenlib/intern/memory_counter.*             @JacquesLucke

# --------------------------------------------------
# Viewport & EEVEE Module.
extern/renderdoc/.*                                     @Jeroen-Bakker
extern/vulkan_memory_allocator/.*                       @Jeroen-Bakker
intern/ghost/intern/GHOST_ContextVK.*                   @Jeroen-Bakker
intern/ghost/intern/GHOST_Xr.*                          @Jeroen-Bakker
intern/opensubdiv/internal/evaluator/gpu.*              @Jeroen-Bakker
intern/opensubdiv/internal/evaluator/shaders/.*         @Jeroen-Bakker
source/blender/blenkernel/intern/image_gpu.*            @Jeroen-Bakker
source/blender/blenkernel/intern/image_partial_update.* @Jeroen-Bakker
source/blender/gpu/vulkan/.*                            @Jeroen-Bakker
source/blender/python/gpu/.*                            @Jeroen-Bakker
source/blender/eevee/.*                                 @fclem
source/blender/gpu/opengl/.*                            @fclem
source/blender/gpu/shader_tool/.*                       @fclem
source/blender/gpu/shaders/.*                           @fclem

# --------------------------------------------------
# VSE.
source/blender/sequencer/.*                  @eliphaz 
source/blender/editors/space_sequencer/.*    @eliphaz

# --------------------------------------------------
# XR
source/blender/windowmanager/xr/.*                     @Brainzman
intern/ghost/intern/GHOST_Xr.*                         @Brainzman

# --------------------------------------------------
# I18N.
source/blender/blentranslation.*      @mont29

# --------------------------------------------------
# Platforms & Builds
build_files/.*                  @ThomasDinges
release/bin/.*                  @ThomasDinges
release/darwin/.*               @ThomasDinges
release/freedesktop/.*          @ThomasDinges
release/license/.*              @ThomasDinges
release/lts/.*                  @ThomasDinges
release/pypi/.*                 @ThomasDinges
release/release_notes/.*        @ThomasDinges
release/text/.*                 @ThomasDinges
release/windows/.*              @ThomasDinges

## macOS Maintenance
intern/ghost/intern/GHOST_.*Cocoa.*             @Brainzman
build_files/cmake/platform/platform_apple.*     @Brainzman

## macOS Objective-C code
.*\\.mm                                         @Brainzman

# --------------------------------------------------
# DevOps & CI/CD
build_files/buildbot/.*         @bartvdbraak
build_files/config/.*           @bartvdbraak
.gitea/workflows/.*             @bartvdbraak
.github/.*                      @bartvdbraak
