7.1 KiB
		
	
	
	
	
	
			
		
		
	
	
			7.1 KiB
		
	
	
	
	
	
| stage | group | info | 
|---|---|---|
| none | Development | See the Technical Writers assigned to Development Guidelines: https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments-to-development-guidelines | 
Feature development
Consult these topics for information on contributing to specific GitLab features.
UX and Frontend guides
- GitLab Design System, for building GitLab with existing CSS styles and elements
 - Frontend guidelines
 - Emoji guide
 
Backend guides
General
- Directory structure
 - GitLab EventStore to publish/subscribe to domain events
 - GitLab utilities
 - Newlines style guide
 - Logging
 - Dealing with email/mailers
 - Kubernetes integration guidelines
 - Permissions
 - Code comments
 - Windows Development on GCP
 - FIPS compliance
 Gemfileguidelines- Ruby upgrade guidelines
 
Things to be aware of
- Gotchas to avoid
 - Avoid modules with instance variables, if possible
 - Guidelines for reusing abstractions
 - Ruby 3 gotchas
 
Rails Framework related
- Routing
 - Rails initializers
 - Mass Inserting Models
 - Issuable-like Rails models
 - Issue types vs first-class types
 - DeclarativePolicy framework
 - Rails update guidelines
 
Debugging
Git specifics
API
- API style guide for contributing to the API
 - GraphQL API style guide for contributing to the GraphQL API
 
GitLab components and features
- Developing against interacting components or features
 - Manage feature flags
 - Implementing Enterprise Edition features
 - Accessing session data
 - How to dump production data to staging
 - Geo development
 - Redis guidelines
 - Sidekiq guidelines for working with Sidekiq workers
 - Working with Gitaly
 - Elasticsearch integration docs
 - Working with merge request diffs
 - Approval Rules
 - Repository mirroring
 - Uploads development guide
 - Auto DevOps development guide
 - Renaming features
 - Code Intelligence
 - Feature categorization
 - Wikis development guide
 - Image scaling guide
 - Cascading Settings
 - Shell commands in the GitLab codebase
 - Value Stream Analytics development guide
 - Application limits
 
Import and Export
- Working with the GitHub importer
 - Import/Export development documentation
 - Test Import Project
 - Group migration
 - Export to CSV
 
Performance guides
- Performance guidelines for writing code, benchmarks, and certain patterns to avoid.
 - Caching guidelines for using caching in Rails under a GitLab environment.
 - Merge request performance guidelines for ensuring merge requests do not negatively impact GitLab performance
 - Profiling a URL or tracking down N+1 queries using Bullet.
 - Cached queries guidelines, for tracking down N+1 queries masked by query caching, memory profiling and why should we avoid cached queries.
 
Database guides
See database guidelines.
Integration guides
- Integrations development guide
 - Jira Connect app
 - Security Scanners
 - Secure Partner Integration
 - How to run Jenkins in development environment
 - How to run local 
Codesandboxintegration for Web IDE Live Preview 
Testing guides
Refactoring guides
Deprecation guides
Documentation guides
Internationalization (i18n) guides
Product Intelligence guides
Experiment guide
Build guides
Compliance
- Licensing for ensuring license compliance
 
Domain-specific guides
Technical Reference by Group
Other development guides
- Defining relations between files using projections
 - Reference processing
 - Compatibility with multiple versions of the application running at the same time
 - Features inside 
.gitlab/ - Dashboards for stage groups
 - Preventing transient bugs
 - GitLab Application SLIs
 - Spam protection and CAPTCHA development guide