Commit f16ad417 authored by Marcel Amirault's avatar Marcel Amirault

Merge branch 'eread/add-ruby-to-capitalization-rule' into 'master'

Add Ruby to Markdownlint capitalization rule

See merge request gitlab-org/gitlab!29104
parents bfaf42c4 d5a7618c
...@@ -102,6 +102,7 @@ ...@@ -102,6 +102,7 @@
"Redis", "Redis",
"Redmine", "Redmine",
"reCAPTCHA", "reCAPTCHA",
"Ruby",
"runit", "runit",
"Salesforce", "Salesforce",
"SAML", "SAML",
......
...@@ -241,7 +241,7 @@ separate Rails process to debug the issue: ...@@ -241,7 +241,7 @@ separate Rails process to debug the issue:
app.get 'https://gitlab.com/gitlab-org/gitlab-foss/issues/1?private_token=123456' app.get 'https://gitlab.com/gitlab-org/gitlab-foss/issues/1?private_token=123456'
``` ```
1. In a new window, run `top`. It should show this ruby process using 100% CPU. Write down the PID. 1. In a new window, run `top`. It should show this Ruby process using 100% CPU. Write down the PID.
1. Follow step 2 from the previous section on using gdb. 1. Follow step 2 from the previous section on using gdb.
### GitLab: API is not accessible ### GitLab: API is not accessible
...@@ -275,4 +275,4 @@ The output in `/tmp/unicorn.txt` may help diagnose the root cause. ...@@ -275,4 +275,4 @@ The output in `/tmp/unicorn.txt` may help diagnose the root cause.
## More information ## More information
- [Debugging Stuck Ruby Processes](https://blog.newrelic.com/engineering/debugging-stuck-ruby-processes-what-to-do-before-you-kill-9/) - [Debugging Stuck Ruby Processes](https://blog.newrelic.com/engineering/debugging-stuck-ruby-processes-what-to-do-before-you-kill-9/)
- [Cheatsheet of using gdb and ruby processes](gdb-stuck-ruby.txt) - [Cheatsheet of using gdb and Ruby processes](gdb-stuck-ruby.txt)
...@@ -73,7 +73,7 @@ Root-level queries are defined in ...@@ -73,7 +73,7 @@ Root-level queries are defined in
GitLab supports batching queries into a single request using GitLab supports batching queries into a single request using
[apollo-link-batch-http](https://www.apollographql.com/docs/link/links/batch-http/). More [apollo-link-batch-http](https://www.apollographql.com/docs/link/links/batch-http/). More
information about multiplexed queries is also available for information about multiplexed queries is also available for
[graphql-ruby](https://graphql-ruby.org/queries/multiplex.html) the [GraphQL Ruby](https://graphql-ruby.org/queries/multiplex.html), the
library GitLab uses on the backend. library GitLab uses on the backend.
## Reference ## Reference
......
...@@ -77,6 +77,6 @@ gitlab-runner register \ ...@@ -77,6 +77,6 @@ gitlab-runner register \
--docker-services latest --docker-services latest
``` ```
With the command above, you create a Runner that uses the [ruby:2.6](https://hub.docker.com/_/ruby) image and uses a [PostgreSQL](https://hub.docker.com/_/postgres) database. With the command above, you create a Runner that uses the [`ruby:2.6`](https://hub.docker.com/_/ruby) image and uses a [PostgreSQL](https://hub.docker.com/_/postgres) database.
To access the PostgreSQL database, connect to `host: postgres` as user `postgres` with no password. To access the PostgreSQL database, connect to `host: postgres` as user `postgres` with no password.
...@@ -117,7 +117,7 @@ job log using a regular expression. In the pipelines settings, search for the ...@@ -117,7 +117,7 @@ job log using a regular expression. In the pipelines settings, search for the
![Pipelines settings test coverage](img/pipelines_settings_test_coverage.png) ![Pipelines settings test coverage](img/pipelines_settings_test_coverage.png)
Leave blank if you want to disable it or enter a ruby regular expression. You Leave blank if you want to disable it or enter a Ruby regular expression. You
can use <https://rubular.com> to test your regex. can use <https://rubular.com> to test your regex.
If the pipeline succeeds, the coverage is shown in the merge request widget and If the pipeline succeeds, the coverage is shown in the merge request widget and
......
...@@ -4,7 +4,7 @@ This document outlines the styleguide for GitLab's [GraphQL API](../api/graphql/ ...@@ -4,7 +4,7 @@ This document outlines the styleguide for GitLab's [GraphQL API](../api/graphql/
## How GitLab implements GraphQL ## How GitLab implements GraphQL
We use the [graphql-ruby gem](https://graphql-ruby.org/) written by [Robert Mosolgo](https://github.com/rmosolgo/). We use the [GraphQL Ruby gem](https://graphql-ruby.org/) written by [Robert Mosolgo](https://github.com/rmosolgo/).
All GraphQL queries are directed to a single endpoint All GraphQL queries are directed to a single endpoint
([`app/controllers/graphql_controller.rb#execute`](https://gitlab.com/gitlab-org/gitlab/blob/master/app%2Fcontrollers%2Fgraphql_controller.rb)), ([`app/controllers/graphql_controller.rb#execute`](https://gitlab.com/gitlab-org/gitlab/blob/master/app%2Fcontrollers%2Fgraphql_controller.rb)),
...@@ -865,7 +865,7 @@ the analyzer, and the final value is also available to you. ...@@ -865,7 +865,7 @@ the analyzer, and the final value is also available to you.
[Multiplex queries](https://graphql-ruby.org/queries/multiplex.html) enable [Multiplex queries](https://graphql-ruby.org/queries/multiplex.html) enable
multiple queries to be sent in a single request. This reduces the number of requests sent to the server. multiple queries to be sent in a single request. This reduces the number of requests sent to the server.
(there are custom Multiplex Query Analyzers and Multiplex Instrumentation provided by graphql-ruby). (there are custom Multiplex Query Analyzers and Multiplex Instrumentation provided by GraphQL Ruby).
### Query limits ### Query limits
...@@ -888,7 +888,7 @@ end ...@@ -888,7 +888,7 @@ end
``` ```
More about complexity: More about complexity:
[graphql-ruby docs](https://graphql-ruby.org/queries/complexity_and_depth.html) [GraphQL Ruby documentation](https://graphql-ruby.org/queries/complexity_and_depth.html).
## Documentation and Schema ## Documentation and Schema
......
...@@ -775,7 +775,7 @@ When referring to `~git` in the pictures it means the home directory of the Git ...@@ -775,7 +775,7 @@ When referring to `~git` in the pictures it means the home directory of the Git
GitLab is primarily installed within the `/home/git` user home directory as `git` user. Within the home directory is where the gitlabhq server software resides as well as the repositories (though the repository location is configurable). GitLab is primarily installed within the `/home/git` user home directory as `git` user. Within the home directory is where the gitlabhq server software resides as well as the repositories (though the repository location is configurable).
The bare repositories are located in `/home/git/repositories`. GitLab is a ruby on rails application so the particulars of the inner workings can be learned by studying how a ruby on rails application works. The bare repositories are located in `/home/git/repositories`. GitLab is a Ruby on rails application so the particulars of the inner workings can be learned by studying how a Ruby on rails application works.
To serve repositories over SSH there's an add-on application called GitLab Shell which is installed in `/home/git/gitlab-shell`. To serve repositories over SSH there's an add-on application called GitLab Shell which is installed in `/home/git/gitlab-shell`.
...@@ -794,7 +794,7 @@ GitLab has several components to operate. It requires a persistent database ...@@ -794,7 +794,7 @@ GitLab has several components to operate. It requires a persistent database
Unicorn. All these components should run as different system users to GitLab Unicorn. All these components should run as different system users to GitLab
(e.g., `postgres`, `redis` and `www-data`, instead of `git`). (e.g., `postgres`, `redis` and `www-data`, instead of `git`).
As the `git` user it starts Sidekiq and Unicorn (a simple ruby HTTP server As the `git` user it starts Sidekiq and Unicorn (a simple Ruby HTTP server
running on port `8080` by default). Under the GitLab user there are normally 4 running on port `8080` by default). Under the GitLab user there are normally 4
processes: `unicorn_rails master` (1 process), `unicorn_rails worker` processes: `unicorn_rails master` (1 process), `unicorn_rails worker`
(2 processes), `sidekiq` (1 process). (2 processes), `sidekiq` (1 process).
......
...@@ -58,7 +58,7 @@ of Gitaly and `gitaly-proto` during testing and development. ...@@ -58,7 +58,7 @@ of Gitaly and `gitaly-proto` during testing and development.
- See [below](#running-tests-with-a-locally-modified-version-of-gitaly) for instructions on running GitLab CE tests with a modified version of Gitaly. - See [below](#running-tests-with-a-locally-modified-version-of-gitaly) for instructions on running GitLab CE tests with a modified version of Gitaly.
- In GDK run `gdk install` and restart `gdk run` (or `gdk run app`) to use a locally modified Gitaly version for development - In GDK run `gdk install` and restart `gdk run` (or `gdk run app`) to use a locally modified Gitaly version for development
### Gitaly-ruby ### `gitaly-ruby`
It is possible to implement and test RPC's in Gitaly using Ruby code, It is possible to implement and test RPC's in Gitaly using Ruby code,
in in
......
...@@ -16,7 +16,7 @@ Your feature flag can now be: ...@@ -16,7 +16,7 @@ Your feature flag can now be:
- [Made available to the frontend](../feature_flags/development.md#frontend) via the `gon` - [Made available to the frontend](../feature_flags/development.md#frontend) via the `gon`
- Queried in [tests](../feature_flags/development.md#specs) - Queried in [tests](../feature_flags/development.md#specs)
- Queried in HAML templates and ruby files via the `Feature.enabled?(:my_shiny_new_feature_flag)` method - Queried in HAML templates and Ruby files via the `Feature.enabled?(:my_shiny_new_feature_flag)` method
### More on feature flags ### More on feature flags
......
...@@ -270,4 +270,4 @@ To generate GraphQL schema files based on the GitLab schema, run: ...@@ -270,4 +270,4 @@ To generate GraphQL schema files based on the GitLab schema, run:
bundle exec rake gitlab:graphql:schema:dump bundle exec rake gitlab:graphql:schema:dump
``` ```
This uses graphql-ruby's built-in Rake tasks to generate files in both [IDL](https://www.prisma.io/blog/graphql-sdl-schema-definition-language-6755bcb9ce51) and JSON formats. This uses GraphQL Ruby's built-in Rake tasks to generate files in both [IDL](https://www.prisma.io/blog/graphql-sdl-schema-definition-language-6755bcb9ce51) and JSON formats.
# Uploads development documentation # Uploads development documentation
[GitLab Workhorse](https://gitlab.com/gitlab-org/gitlab-workhorse) has special rules for handling uploads. [GitLab Workhorse](https://gitlab.com/gitlab-org/gitlab-workhorse) has special rules for handling uploads.
To prevent occupying a ruby process on I/O operations, we process the upload in workhorse, where is cheaper. To prevent occupying a Ruby process on I/O operations, we process the upload in workhorse, where is cheaper.
This process can also directly upload to object storage. This process can also directly upload to object storage.
## The problem description ## The problem description
...@@ -40,7 +40,7 @@ We have three challenges here: performance, availability, and scalability. ...@@ -40,7 +40,7 @@ We have three challenges here: performance, availability, and scalability.
### Performance ### Performance
Rails process are expensive in terms of both CPU and memory. Ruby [global interpreter lock](https://en.wikipedia.org/wiki/Global_interpreter_lock) adds to cost too because the ruby process will spend time on I/O operations on step 3 causing incoming requests to pile up. Rails process are expensive in terms of both CPU and memory. Ruby [global interpreter lock](https://en.wikipedia.org/wiki/Global_interpreter_lock) adds to cost too because the Ruby process will spend time on I/O operations on step 3 causing incoming requests to pile up.
In order to improve this, [disk buffered upload](#disk-buffered-upload) was implemented. With this, Rails no longer deals with writing uploaded files to disk. In order to improve this, [disk buffered upload](#disk-buffered-upload) was implemented. With this, Rails no longer deals with writing uploaded files to disk.
......
...@@ -420,7 +420,7 @@ spec: ...@@ -420,7 +420,7 @@ spec:
- Auto Build and Auto Test may fail in detecting your language/framework. There - Auto Build and Auto Test may fail in detecting your language/framework. There
may be no buildpack for your application, or your application may be missing the may be no buildpack for your application, or your application may be missing the
key files the buildpack is looking for. For example, for ruby apps, you must key files the buildpack is looking for. For example, for Ruby applications, you must
have a `Gemfile` to be properly detected, even though it is possible to write a have a `Gemfile` to be properly detected, even though it is possible to write a
Ruby app without a `Gemfile`. Try specifying a [custom Ruby app without a `Gemfile`. Try specifying a [custom
buildpack](customize.md#custom-buildpacks). buildpack](customize.md#custom-buildpacks).
......
...@@ -10,7 +10,7 @@ If GitLab is guessing wrong, you can override its choice of language using the ` ...@@ -10,7 +10,7 @@ If GitLab is guessing wrong, you can override its choice of language using the `
When you check in and push that change, all `*.pl` files in your project will be highlighted as Prolog. When you check in and push that change, all `*.pl` files in your project will be highlighted as Prolog.
The paths here are simply Git's built-in [`.gitattributes` interface](https://git-scm.com/docs/gitattributes). So, if you were to invent a file format called a `Nicefile` at the root of your project that used ruby syntax, all you need is: The paths here are simply Git's built-in [`.gitattributes` interface](https://git-scm.com/docs/gitattributes). So, if you were to invent a file format called a `Nicefile` at the root of your project that used Ruby syntax, all you need is:
``` conf ``` conf
/Nicefile gitlab-language=ruby /Nicefile gitlab-language=ruby
......
...@@ -175,10 +175,10 @@ a number of community contributed libraries. ...@@ -175,10 +175,10 @@ a number of community contributed libraries.
Official clients: Official clients:
- [unleash/unleash-client-java](https://github.com/unleash/unleash-client-java) - [Unleash client SDK for Java](https://github.com/unleash/unleash-client-java)
- [unleash/unleash-client-node](https://github.com/unleash/unleash-client-node) - [Unleash client SDK for Node.js](https://github.com/unleash/unleash-client-node)
- [unleash/unleash-client-go](https://github.com/unleash/unleash-client-go) - [Unleash client for Go](https://github.com/unleash/unleash-client-go)
- [unleash/unleash-client-ruby](https://github.com/unleash/unleash-client-ruby) - [Unleash client for Ruby](https://github.com/unleash/unleash-client-ruby)
Community contributed clients: Community contributed clients:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment