mirror of
https://gitlab.com/gitlab-org/gitlab-foss.git
synced 2025-08-13 13:31:19 +00:00

Some markdown headers needed tweaking to adhere to standards, including blank lines above and below, only one space after hash, first header should be h1, and only one h1 per doc
comments, description
comments | description |
---|---|
false | Learn how to contribute to GitLab. |
GitLab development guides
Get started!
- Set up GitLab's development environment with GitLab Development Kit (GDK)
- GitLab contributing guide
- Architecture of GitLab
- Rake tasks for development
Processes
- GitLab core team & GitLab Inc. contribution process
- Generate a changelog entry with
bin/changelog
- Code review guidelines for reviewing code and having code reviewed
- Database review guidelines for reviewing database-related changes and complex SQL queries
- Automatic CE->EE merge
- Guidelines for implementing Enterprise Edition features
- Security process for developers
- Requesting access to Chatops on GitLab.com (for GitLabbers)
UX and Frontend guides
- GitLab Design System for building GitLab with existing CSS styles and elements
- Frontend guidelines
- Emoji guide
Backend guides
- GitLab utilities
- Logging
- API styleguide Use this styleguide if you are contributing to the API
- GraphQL API styleguide Use this styleguide if you are contributing to the GraphQL API
- Sidekiq guidelines for working with Sidekiq workers
- Working with Gitaly
- Manage feature flags
- Licensed feature availability
- View sent emails or preview mailers
- Shell commands in the GitLab codebase
Gemfile
guidelines- Pry debugging
- Sidekiq debugging
- Accessing session data
- Gotchas to avoid
- Avoid modules with instance variables if possible
- How to dump production data to staging
- Working with the GitHub importer
- Import/Export development documentation
- Elasticsearch integration docs
- Working with Merge Request diffs
- Kubernetes integration guidelines
- Permissions
- Prometheus metrics
- Guidelines for reusing abstractions
- DeclarativePolicy framework
- How Git object deduplication works in GitLab
- Geo development
- Routing
- Repository mirroring
- Git LFS
- Developing against interacting components or features
Performance guides
- Instrumentation for Ruby code running in production environments
- Performance guidelines for writing code, benchmarks, and certain patterns to avoid
- Merge request performance guidelines for ensuring merge requests do not negatively impact GitLab performance
- Profiling a URL, measuring performance using Sherlock, or tracking down N+1 queries using Bullet
Database guides
Tooling
- Understanding EXPLAIN plans
- explain.depesz.com for visualising the output
of
EXPLAIN
- pgFormatter a PostgreSQL SQL syntax beautifier
Migrations
- What requires downtime?
- SQL guidelines for working with SQL queries
- Migrations style guide for creating safe SQL migrations
- Post deployment migrations
- Background migrations
- Swapping tables
Best practices
- Merge Request checklist
- Adding database indexes
- Foreign keys & associations
- Single table inheritance
- Polymorphic associations
- Serializing data
- Hash indexes
- Storing SHA1 hashes as binary
- Iterating tables in batches
- Ordering table columns
- Verifying database capabilities
- Database Debugging and Troubleshooting
- Query Count Limits
- Database helper modules
- Code comments
Integration guides
Testing guides
Documentation guides
Internationalization (i18n) guides
Build guides
Compliance
- Licensing for ensuring license compliance