# 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 @ideasman42
source/python/intern/.*    @mont29 @ideasman42
source/python/generic/.*   @mont29 @ideasman42

# --------------------------------------------------
# BPY (Scripts).
scripts/modules/.*     @ideasman42
scripts/modules/_bpy_internal/assets/remote_library.*     @dr.sybren
scripts/modules/_bpy_internal/disk_file_hash_service/.*   @dr.sybren
scripts/modules/_bpy_internal/http/.*                     @dr.sybren
tests/python/bl_disk_file_hash_service_test.py            @dr.sybren
tests/python/bl_http_downloader.py                        @dr.sybren

# --------------------------------------------------
# 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/editors/sculpt_paint/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

# --------------------------------------------------
# UI: Themes/Icons/Templates.
release/datafiles/userdef/.*                @pablovazquez
scripts/presets/interface_theme/.*          @pablovazquez
release/datafiles/icons/.*                  @pablovazquez
release/datafiles/icons_svg/.*              @pablovazquez
release/datafiles/icons_blend/.*            @pablovazquez
release/datafiles/studiolights/.*           @pablovazquez
release/datafiles/cursors/.*                @pablovazquez
release/freedesktop/icons/.*                @pablovazquez
scripts/startup/bl_app_templates_system/.*  @pablovazquez

# --------------------------------------------------
# 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

# --------------------------------------------------
# Editors
source/blender/editors/space_console/.*   @ideasman42
source/blender/editors/space_outliner/.*  @JulianEisel
source/blender/editors/space_text/.*      @ideasman42

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

# --------------------------------------------------
# Compositor.
scripts/startup/bl_ui/node_add_menu_compositor.py                @zazizizou @OmarEmaraDev
source/blender/compositor/.*                                     @OmarEmaraDev
source/blender/nodes/composite/.*                                @OmarEmaraDev
source/blender/draw/engines/compositor/.*                        @OmarEmaraDev
source/blender/render/RE_compositor.hh                           @OmarEmaraDev
source/blender/render/intern/compositor.cc                       @OmarEmaraDev
source/blender/sequencer/intern/modifiers/MOD_compositor.cc      @OmarEmaraDev
source/blender/sequencer/intern/effects/vse_effect_compositor.cc @OmarEmaraDev

# --------------------------------------------------
# Animation Player.
source/blender/windowmanager/intern/wm_playanim.cc      @ideasman42

# --------------------------------------------------
# Gizmos.
source/blender/windowmanager/gizmo/.*                  @ideasman42
source/blender/editors/gizmo_library/.*                @ideasman42
source/blender/editors/space_view3d/view3d_gizmo_.*    @ideasman42

# --------------------------------------------------
# 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

## Wayland Maintenance.
intern/ghost/intern/GHOST_.*Wayland.*          @ideasman42
intern/wayland_dynload/.*                      @ideasman42

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

# --------------------------------------------------
# glTF
scripts/addons_core/io_scene_gltf2/.*       @JulienDuroure
intern/draco_bridge/.*                      @JulienDuroure
intern/meshoptimizer_bridge/*               @JulienDuroure

# --------------------------------------------------
# Asset System
source/blender/asset_system/.* @JulianEisel

# --------------------------------------------------
# Bundled Assets
source/blender/assets/.* @zazizizou

# --------------------------------------------------
# Sculpt, Paint, Texture
source/blender/makesdna/DNA_brush_types.h           @Sean-Kim
source/blender/makesdna/DNA_brush_enums.h           @Sean-Kim
source/blender/makesrna/intern/rna_brush.cc         @Sean-Kim
source/blender/makesrna/intern/rna_sculpt_paint.cc  @Sean-Kim
source/blender/blenkernel/BKE_paint.*               @Sean-Kim
source/blender/blenkernel/intern/brush.*            @Sean-Kim
source/blender/blenkernel/intern/paint.*            @Sean-Kim
source/blender/blenkernel/paint.*                   @Sean-Kim
source/blender/blenkernel/pbvh.*                    @Sean-Kim
source/blender/editors/sculpt_paint/paint_.*        @Sean-Kim
source/blender/editors/sculpt_paint/mesh/.*         @Sean-Kim

# --------------------------------------------------
# Modeling.
source/blender/bmesh/.*            @ideasman42
source/blender/editors/curve/.*    @ideasman42
source/blender/editors/mesh/.*     @ideasman42

# --------------------------------------------------
# Documentation.
doc/.*                                          @ideasman42 @Blendify
scripts/modules/_rna_manual_reference.py        @Blendify
tools/utils_doc/.*                              @ideasman42 @Blendify
