Development
Outside of docs
- CONTRIBUTING.md main contributing guide
- PROCESS.md contributing process
- GitLab Development Kit (GDK) to install a development version
Styleguides
- API styleguide Use this styleguide if you are contributing to the API.
- Documentation styleguide Use this styleguide if you are contributing to documentation.
- Writing documentation
- SQL Migration Style Guide for creating safe SQL migrations
- Testing standards and style guidelines
- UX guide for building GitLab with existing CSS styles and elements
- Frontend guidelines
- SQL guidelines for working with SQL queries
- Sidekiq guidelines for working with Sidekiq workers
Gemfile
guidelines
Process
- Generate a changelog entry with
bin/changelog
- Limit conflicts with EE when developing on CE
- Code review guidelines for reviewing code and having code reviewed.
- Merge request performance guidelines for ensuring merge requests do not negatively impact GitLab performance
Backend howtos
- Architecture of GitLab
- Gotchas to avoid
- How to dump production data to staging
- Instrumentation
- Performance guidelines
- Rake tasks for development
- Shell commands in the GitLab codebase
- Sidekiq debugging
- Object state models
- Building a package for testing purposes
- Manage feature flags
- View sent emails or preview mailers
- Working with Gitaly
Databases
- Merge Request Checklist
- What requires downtime?
- Adding database indexes
- Post Deployment Migrations
- Foreign Keys & Associations
- Serializing Data
- Polymorphic Associations
- Single Table Inheritance
- Background Migrations
- Storing SHA1 Hashes As Binary
- Iterating Tables In Batches
- Ordering Table Columns
- Verifying Database Capabilities
- Hash Indexes
- Swapping Tables
Internationalization (i18n)
Compliance
- Licensing for ensuring license compliance